Compare commits

...

517 Commits

Author SHA1 Message Date
Neeraj Gupta
b377217ece Merge branch 'mob_6_march' into f-droid 2025-03-10 15:10:56 +05:30
Neeraj Gupta
7242176243 [mob] Bump version code 2025-03-06 15:46:52 +05:30
Ashil
fcc249b989 [mob][photos] Properly handle and log error/exception thrown in isolate (#5234) 2025-03-06 15:24:54 +05:30
ashilkn
ff82245293 [mob][photos] Rethrow 2025-03-06 15:08:59 +05:30
Vishnu Mohandas
4bd08f02f8 [docs] Update passkeys.md 2025-03-06 15:08:06 +05:30
Vishnu Mohandas
9650d3865a [docs] Update (#5237) 2025-03-06 12:40:04 +05:30
vishnukvmd
a4f64a73cb [docs] Update 2025-03-06 12:39:24 +05:30
Ashil
16baa84cf0 [mob][photos] Bump up build number (#5236) 2025-03-06 12:35:38 +05:30
ashilkn
db7f669198 [mob][photos] Bump up build number 2025-03-06 12:04:25 +05:30
ashilkn
5ec52541bf [mob][photos] Pass back any exceptions/errors back to main isolate when thrown from a different isolate when using _getLocalIDsAndFilesFromAssets + catch and log in the main isolate so that its reported on sentry 2025-03-06 01:13:49 +05:30
Manav Rathi
c7326c2efc [web] PhotoSwipe Update - WIP (#5233)
Nearing completion, perhaps the second last WIP PR in this series.
2025-03-05 20:08:56 +05:30
Ashil
904c93cf4e [mob][photos] Fix free up space bug (#5231)
## Description

If free up space fails, now we retry after removing `localIDs` that have
no asset returned by Photo Manager. If it still fails, we re-try after
running
[this](https://github.com/fluttercandies/flutter_photo_manager?tab=readme-ov-file#remove-all-non-exist-entities).

Note: It's not clear if this fixes received bug reports since we haven't
been able to reproduce
[deleteWithIds](https://github.com/fluttercandies/flutter_photo_manager?tab=readme-ov-file#delete-entities)
failing on using the Free up space feature.
2025-03-05 20:04:25 +05:30
Manav Rathi
d98394272e Fix formatting lints 2025-03-05 20:03:10 +05:30
Manav Rathi
1eed87e117 Revert "Temporary workbench"
This reverts commit 8ac9751891.
2025-03-05 20:00:29 +05:30
Manav Rathi
22cd3763b7 delegate 2025-03-05 19:59:03 +05:30
Manav Rathi
a18db13899 simpl 2025-03-05 19:25:42 +05:30
Manav Rathi
89d6ddf2c6 backdrop 2025-03-05 19:05:58 +05:30
Manav Rathi
aff27e662a More 2025-03-05 19:02:38 +05:30
Prateek Sunal
cc569eb192 chore: bump build number 2025-03-05 18:45:33 +05:30
ashilkn
8e1d931c1f [mob][photos] Extract string 2025-03-05 18:06:24 +05:30
ashilkn
abe313fff2 [mob][photos] Use better name 2025-03-05 18:03:06 +05:30
Neeraj
20095620c8 [mob][fix] share & description in android (#5229) 2025-03-05 17:57:01 +05:30
ashilkn
ec90db7b7d [mob][photos] Fix merge conflict and merge main 2025-03-05 17:48:15 +05:30
ashilkn
bb781e257e [mob][photos] More logging 2025-03-05 17:41:17 +05:30
Prateek Sunal
8902b99ae7 fix: add buffering indicator for media kit player 2025-03-05 17:31:36 +05:30
ashilkn
d5c9eea40f [mob][photos] Try checking for and handling already deleted local IDs during free up space only if freeing up space without it fails
This is to make free up space faster in most cases
2025-03-05 17:05:32 +05:30
Manav Rathi
4a8b130738 sc4 2025-03-05 16:22:25 +05:30
Manav Rathi
ed76b41392 sc3 2025-03-05 15:17:26 +05:30
Manav Rathi
270158dadc sc 2 2025-03-05 15:04:08 +05:30
Manav Rathi
5ea4f8b897 shortcut 1 2025-03-05 14:47:29 +05:30
Manav Rathi
e12a9aa800 fs 2 2025-03-05 14:08:10 +05:30
Manav Rathi
b4a853acc5 fs 1
Refs
 * https://developer.mozilla.org/en-US/docs/Web/API/Fullscreen_API
 * https://mdn.github.io/dom-examples/fullscreen-api/index.html
2025-03-05 13:51:36 +05:30
Prateek Sunal
6c748f6c87 chore: bump locks 2025-03-05 13:36:37 +05:30
Prateek Sunal
f36666bd0a fix: show video description in previews for android 2025-03-05 13:36:22 +05:30
Manav Rathi
fb8f7901b1 Impl + shift top bar 2025-03-05 13:35:09 +05:30
Prateek Sunal
32ceac423b fix: share in android 2025-03-05 13:19:04 +05:30
Neeraj
7bbd432294 [mob] Refactor utils (#5228)
## Description

## Tests
2025-03-05 12:59:44 +05:30
Neeraj Gupta
72ba881e26 [mob] Remove assert 2025-03-05 12:36:25 +05:30
Neeraj Gupta
1c8860d08e Merge remote-tracking branch 'origin/main' into move_refactor 2025-03-05 12:28:44 +05:30
Manav Rathi
731c19d6a9 Notes of what needs to be done 2025-03-05 12:13:39 +05:30
Neeraj Gupta
3ac937a244 move 2025-03-05 12:00:02 +05:30
ashilkn
74ff170672 [mob][photos] Fix merge conflicts and merge main 2025-03-05 11:49:06 +05:30
Manav Rathi
1897285380 Don't show delete in shared
This functionality has not yet been implemented
2025-03-05 11:46:30 +05:30
Manav Rathi
7d8683640b vid 1 2025-03-05 11:19:12 +05:30
Manav Rathi
81e3593b74 PNG 2025-03-05 11:03:52 +05:30
Manav Rathi
21f87b7cba Different tack 2025-03-05 10:45:34 +05:30
Neeraj
5e4862cc3c [fix] steaming fixes (#5168)
## Description

- Update queuing logic
- Use native_video_player + exoplayer branch to fix artifacts for
android
- Support newer namespace and sdk 35
- Store failures and don't retry them
- Modify how sync file data status is happening i.e. don't remote sync
everytime we need to update previewIds, instead update it locally
- Add bandwidth check before queuing
- Remove rotate metadata parameter


Now the player decision logic is:
- Android: Native video Player for both Stream and original source
- iOS: Media Kit for stream and Native Video Player for Original

The UseMediaKitEvent is still there in case of any error or if user long
presses on that button (android) for original source.

## Tests
2025-03-05 10:43:42 +05:30
Manav Rathi
879f28599c Copy 2 2025-03-05 10:07:40 +05:30
Manav Rathi
11413ee77b Move closer to source 2025-03-05 09:47:30 +05:30
Manav Rathi
bb6c2f1656 Tweak 2025-03-05 08:12:37 +05:30
Manav Rathi
1bc8c44b54 copy 1 2025-03-05 07:56:16 +05:30
Manav Rathi
8f8cdbb13f mh 2025-03-05 07:43:38 +05:30
Manav Rathi
f3a079e734 Prevent rerenders 2025-03-05 07:32:40 +05:30
Manav Rathi
c0b3b4b38e link 2025-03-05 07:25:27 +05:30
Manav Rathi
848ec03827 Route 2025-03-05 07:12:13 +05:30
Manav Rathi
642320b1d9 icons 2 2025-03-05 06:55:57 +05:30
Manav Rathi
6f8f997f93 icons 2025-03-05 06:55:57 +05:30
Manav Rathi
fd13c737aa Download in bar 2025-03-05 06:55:57 +05:30
Manav Rathi
7fc96285f1 route 2025-03-05 06:55:57 +05:30
Manav Rathi
76efe1290c menu 2025-03-05 06:55:57 +05:30
Manav Rathi
3d44700010 Position 2025-03-05 06:55:56 +05:30
Manav Rathi
2541febb53 Download 2025-03-05 06:55:56 +05:30
Manav Rathi
62222b0228 Fix height
356b885778/packages/mui-material/src/MenuItem/MenuItem.js (L147)
2025-03-05 06:55:56 +05:30
Manav Rathi
9072766169 Fix 2025-03-05 06:55:56 +05:30
Manav Rathi
12f5c1db87 Handle singleton album deletes 2025-03-05 06:55:56 +05:30
Manav Rathi
60d3cad540 Also for favs 2025-03-05 06:55:56 +05:30
Manav Rathi
8e9eb79f2b Slightly better 2025-03-05 06:55:56 +05:30
Manav Rathi
ca276ba1fe Fix rerenders on remote sync 2025-03-05 06:55:56 +05:30
Manav Rathi
349ef3263c Workaround 2025-03-05 06:55:56 +05:30
Manav Rathi
7c1dae7c77 Update color 2025-03-05 06:55:56 +05:30
Manav Rathi
4fe12c46aa hov 2025-03-05 06:55:56 +05:30
Manav Rathi
b363e3663f del 2 2025-03-05 06:55:56 +05:30
Manav Rathi
043d3324ca del 1 2025-03-05 06:55:56 +05:30
Manav Rathi
a9540307bf Menu 2 2025-03-05 06:55:56 +05:30
Manav Rathi
35b3dbe650 Menu 1 2025-03-05 06:55:56 +05:30
Manav Rathi
e376bf00e0 Use same opacity throughout 2025-03-05 06:55:56 +05:30
Manav Rathi
fd87d196ac Handle 2025-03-05 06:55:56 +05:30
Manav Rathi
bad8a9c9b8 Rename and pass file 2025-03-05 06:55:56 +05:30
Manav Rathi
9c5adfe7cb Reset cache 2025-03-05 06:55:56 +05:30
Manav Rathi
6676668c86 alt 2025-03-05 06:55:55 +05:30
Manav Rathi
ca24541ea5 Limit text field rows 2025-03-05 06:55:55 +05:30
Manav Rathi
0e32e60dbd Tweak 2025-03-05 06:55:55 +05:30
Manav Rathi
79ac17a742 Vids 2025-03-05 06:55:55 +05:30
Manav Rathi
2490b5ca4f caption fin 2025-03-05 06:55:55 +05:30
Manav Rathi
72aab3f53c cap 2 2025-03-05 06:55:55 +05:30
Manav Rathi
a9def0ccc1 cap 1 2025-03-05 06:55:55 +05:30
Manav Rathi
8ac9751891 Temporary workbench
This reverts commit 2859e02dac.
2025-03-05 06:55:55 +05:30
Vishnu Mohandas
e2dceef8a4 [mob][photos] fix: Allow uploads when link shared from collect photos section (#5225) 2025-03-04 20:04:00 +05:30
Aman Raj Singh Mourya
6083992bfd [mob][photos] fix: Allow uploads when link shared from collect photos 2025-03-04 19:31:45 +05:30
Prateek Sunal
9507c6f882 Merge remote-tracking branch 'origin/main' into stream-queue-fix 2025-03-04 16:33:44 +05:30
Neeraj
e01a2b7d65 [mob] Remove PrimitiveWrapper & simplify FilesDB::insertMultiple (#5222)
## Description

## Tests
2025-03-04 16:27:18 +05:30
Prateek Sunal
5ef1a0d3f7 chore: bump version 2025-03-04 16:11:12 +05:30
Neeraj
9ba2010293 [mob][photos] Video memory (#5211)
## Description
This PR introduces a feature that takes a list of images as input and
generates a video output. Each image is displayed for 2 seconds before
transitioning to the next image with smooth animations (fade, slide,
etc.).
2025-03-04 15:59:03 +05:30
Prateek Sunal
ebab9fd1a0 fix: remove stop code as there is no memory leak now 2025-03-04 15:44:04 +05:30
Aman Raj Singh Mourya
017692d80f [mob][photos] fix: change title to (i) Video Memory to identify its a internal feature 2025-03-04 15:35:43 +05:30
Prateek Sunal
de2bd40401 chore: bump package and add docs to them 2025-03-04 15:35:38 +05:30
Neeraj
50a0af23aa [mob][photos] Home memories [internal] (#5223)
## Description

MVP of new memories, for internal user only.

## Tests

Tested in debug mode on my pixel phone.
2025-03-04 15:24:48 +05:30
laurenspriem
ba6b34be2a [mob][photos] Move models 2025-03-04 15:17:19 +05:30
Prateek Sunal
f41c12cde8 fix: keep r8 enabled 2025-03-04 15:15:41 +05:30
Prateek Sunal
7d9e2eccd6 fix: add info to update to latest verison whenever update is available 2025-03-04 15:13:26 +05:30
laurenspriem
8792167986 [mob][photos] Move clearCache 2025-03-04 15:12:46 +05:30
laurenspriem
dcf6d3a9e1 [mob][photos] Fix title bug 2025-03-04 15:04:31 +05:30
laurenspriem
d9691ac089 [mob][photos] Resolve merge conflixt properly 2025-03-04 15:03:48 +05:30
Prateek Sunal
610c1ffc9f fix: add conflict resolution algorithm as replace 2025-03-04 15:03:42 +05:30
Laurens Priem
35bdacdc56 Merge branch 'main' into home_memories 2025-03-04 14:50:17 +05:30
laurenspriem
2147e13af4 [mob][photos] Fix 2025-03-04 14:45:34 +05:30
Neeraj Gupta
0c722171be move 2025-03-04 14:39:37 +05:30
Prateek Sunal
1f18c65ff6 fix: add other information like objectId and objectSize to previewIds 2025-03-04 14:38:30 +05:30
Prateek Sunal
985d530aef fix: don't make failureFiles a late variable 2025-03-04 14:20:29 +05:30
Aman Raj Singh Mourya
23dc378888 [mob][photos] fix: feature flag 2025-03-04 14:09:39 +05:30
Neeraj Gupta
fd5501882b [mob] Move toast 2025-03-04 13:54:26 +05:30
laurenspriem
b922bacb78 [mob][photos] Move dot product inside MLComputer 2025-03-04 13:45:26 +05:30
Prateek Sunal
33cd46583e fix: only update init if called from correct function 2025-03-04 13:02:16 +05:30
Prateek Sunal
5a2be86524 fix: make uploadedFileID as the primary key 2025-03-04 12:57:30 +05:30
Prateek Sunal
62e55cfd96 Merge remote-tracking branch 'origin/main' into stream-queue-fix 2025-03-04 12:35:32 +05:30
Prateek Sunal
4439d97f31 chore: add doc for appendPreview 2025-03-04 12:20:17 +05:30
laurenspriem
71b7589de3 [mob][photos] method to compare embeddings in MLComputer 2025-03-04 11:40:11 +05:30
Neeraj Gupta
e145da5a8b [mob] move 2025-03-04 11:36:23 +05:30
Neeraj Gupta
3f721abc4d [mob] Simplify batch insert for files 2025-03-04 11:30:13 +05:30
mangesh
7ce9cc7468 [server][self-hosting] clear instructions to tweak compose (#5221) 2025-03-04 11:09:27 +05:30
mngshm
038692ad06 fix KEY_ID & s3 bucket url 2025-03-04 11:07:58 +05:30
mngshm
2dc71143b7 update 2025-03-04 10:45:44 +05:30
mngshm
1eec079a85 update dummy pass in minio provision script 2025-03-04 10:39:33 +05:30
mngshm
1eddf1f75a fix 2025-03-03 19:55:20 +05:30
mngshm
0940b8b3be [server] Instructions to tweak compose 2025-03-03 19:53:59 +05:30
laurenspriem
e459da3908 [mob][photos] Fix 2025-03-03 18:25:03 +05:30
laurenspriem
809fe6ab2c [mob][photos] show internal in UI only 2025-03-03 18:12:09 +05:30
laurenspriem
7b5ed1deaa [mob][photos] Fix correct sort 2025-03-03 18:03:00 +05:30
laurenspriem
d3d5aa5a8b [mob][photos] Fix 2025-03-03 17:54:24 +05:30
Neeraj
5466d80da9 [mobile] New translations (#5213)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-app)
2025-03-03 17:37:40 +05:30
Neeraj
52aa997807 [mob] Refactor: reorganize code (#5220)
## Description

## Tests
2025-03-03 17:33:42 +05:30
Neeraj Gupta
73efdbbf4d move 2025-03-03 17:29:03 +05:30
Neeraj Gupta
be6ca79c2d move 2025-03-03 17:21:31 +05:30
Neeraj Gupta
f2550bb253 move constant 2025-03-03 17:04:45 +05:30
Neeraj Gupta
3bf715fd46 [mob] Move 2025-03-03 17:00:50 +05:30
laurenspriem
28c19b8916 [mob][photos] filler memories 2025-03-03 16:18:39 +05:30
Neeraj
b4b5f834f7 [mob] Remove UserRemoteFlagService & switch to flagService (#5219)
## Description

## Tests
2025-03-03 16:15:13 +05:30
Caboose
ee41052eda [auth] BingX & CoinSpot Icons (#5186)
Added BingX & CoinSpot .svg files as well as updated the .JSON file to
include them
2025-03-03 16:13:04 +05:30
Neeraj Gupta
8898ac7060 clean up 2025-03-03 16:10:34 +05:30
Neeraj Gupta
976634f8c7 [mob] Show verification banner after 3 days 2025-03-03 16:08:26 +05:30
Neeraj Gupta
137a5cd772 Switch to flagService for mlConsent 2025-03-03 14:58:54 +05:30
Manav Rathi
631257de3c [web] Match mobile's internal user spec (#5217) 2025-03-03 14:33:43 +05:30
Neeraj Gupta
f556950c07 Remove unused constant 2025-03-03 14:32:38 +05:30
Neeraj Gupta
f8e2714315 [mob] Use flagservice for map consent 2025-03-03 14:30:52 +05:30
Manav Rathi
4b5618e1f2 [web] Match mobile's internal user spec 2025-03-03 14:27:10 +05:30
Neeraj Gupta
e34b70a8f9 [mob] Stop special treatment for @ente.io as internal users 2025-03-03 14:05:36 +05:30
laurenspriem
025fc46022 [mob][photos] constant for day itself duration 2025-03-03 13:40:47 +05:30
Neeraj Gupta
bcf49763e6 [mob] Avoid multiple calls to fetch flags 2025-03-03 13:32:59 +05:30
Manav Rathi
99b84fe4e7 [infra] Import Grafana conf (#5215) 2025-03-03 12:44:36 +05:30
Manav Rathi
2d1e6312af [infra] Import Grafana conf 2025-03-03 12:05:47 +05:30
mangesh
0b110ecead [docs] details about replication for self hosters (#5206) 2025-03-03 11:03:52 +05:30
Neeraj
dad6da26fb [auth] New translations (#5214)
New translations from
[Crowdin](https://crowdin.com/project/ente-authenticator-app)
2025-03-03 10:52:19 +05:30
Crowdin Bot
1d01b913e1 New Crowdin translations by GitHub Action 2025-03-03 01:17:41 +00:00
Crowdin Bot
f37f1c3703 New Crowdin translations by GitHub Action 2025-03-03 01:05:17 +00:00
Aman Raj Singh Mourya
d49a90c616 [mob][photos] Show video memory option on file selection action 2025-03-02 23:55:23 +05:30
Aman Raj Singh Mourya
0bfb48bde4 [mob][photos] Implemented ffmpeg to create video memory 2025-03-02 23:54:41 +05:30
laurenspriem
751e19abae [mob][photos] Adjust trip time show 2025-03-01 19:02:11 +05:30
laurenspriem
36f90014a2 [mob][photos] People surface logic 2025-03-01 18:50:06 +05:30
mngshm
74051ad6bb Some more details about Replication 2025-03-01 18:40:03 +05:30
Vishnu Mohandas
c66adcb677 [mob] Fix grammar (#5202) 2025-03-01 12:30:49 +05:30
vishnukvmd
c7bc560d53 [mob] Fix grammar 2025-03-01 12:30:27 +05:30
Neeraj
c6ea0f1fd7 [mob] Move model & remove unused file (#5201)
## Description

## Tests
2025-03-01 10:55:51 +05:30
Neeraj Gupta
8516d8364c [mob] Remove unused file 2025-03-01 10:48:03 +05:30
Neeraj Gupta
5b88b2b563 [mob] Move model 2025-03-01 10:43:37 +05:30
Prateek Sunal
2a5ba8480c chore: bump build number 2025-02-28 21:44:14 +05:30
Prateek Sunal
19607d488f Merge remote-tracking branch 'origin/main' into stream-queue-fix 2025-02-28 21:43:57 +05:30
Prateek Sunal
fcbba19129 fix: remove rotate property, add scroll widget in failure or any dialog, seekbar smooth, player ux buttons same position, failure title for preview 2025-02-28 21:43:35 +05:30
Manav Rathi
f402fb3887 [web] PhotoSwipe update - WIP (#5200) 2025-02-28 19:57:51 +05:30
Manav Rathi
7355d99299 Simplify 2025-02-28 19:54:38 +05:30
Manav Rathi
b20de9ed83 Convert deprecated prop 2025-02-28 19:46:18 +05:30
Manav Rathi
2859e02dac Revert "Temporary workbench"
This reverts commit 8e08a0d71d.
2025-02-28 19:40:39 +05:30
Manav Rathi
80859d91b0 schedule update 2025-02-28 19:40:15 +05:30
Manav Rathi
acaf1939e7 edit 2025-02-28 19:23:36 +05:30
Manav Rathi
d7587d12ed vis 2025-02-28 19:04:30 +05:30
Manav Rathi
61779a6ca7 More aria
taken from the basic example in https://mui.com/material-ui/react-menu/
2025-02-28 18:53:34 +05:30
Manav Rathi
02a7024cdc id 2025-02-28 16:57:24 +05:30
Manav Rathi
9d61eaa04d :\ 2025-02-28 16:50:07 +05:30
Manav Rathi
a73e7af704 Don't initialize face DB in non-desktop builds 2025-02-28 16:44:32 +05:30
Manav Rathi
14bfaf97f3 Update deprecated 2025-02-28 16:35:06 +05:30
Manav Rathi
cae5b2ad4d Update deps to pick up new MUI
MenuListProps are (will eventually be) deprecated, but the alternative is only
in the latest release.
2025-02-28 16:32:48 +05:30
Manav Rathi
8050422313 Fix 2025-02-28 16:32:48 +05:30
Neeraj Gupta
4323ae9422 [mob] Move 2025-02-28 16:10:53 +05:30
Manav Rathi
d3cec93c03 type 2025-02-28 16:02:55 +05:30
Manav Rathi
5adac095a6 Anchor 2025-02-28 15:59:35 +05:30
Manav Rathi
dce95ad4f1 more 2025-02-28 15:49:00 +05:30
Manav Rathi
67dc1b77d4 Fix 2025-02-28 15:32:33 +05:30
Manav Rathi
de9cad09c4 sigh 2025-02-28 15:28:43 +05:30
Manav Rathi
df21d20dd0 Workable 2025-02-28 15:23:31 +05:30
laurenspriem
374979894a [mob][photos] Cache path 2025-02-28 15:08:49 +05:30
laurenspriem
49c0e32fff [mob][photos] Fix null issue 2025-02-28 14:46:12 +05:30
Manav Rathi
0f732c0b61 Impl 2025-02-28 14:37:30 +05:30
Prateek Sunal
11a42e7ee3 fix: remove ticks from seekbar & change video source correctly 2025-02-28 14:26:42 +05:30
Neeraj
398f39e2b0 [mob] Clean up deprecated invalidFileIDs (#5199)
## Description

## Tests
2025-02-28 14:25:58 +05:30
laurenspriem
09e65e8d00 [mob][photos] Remove singleton pattern 2025-02-28 14:24:04 +05:30
laurenspriem
103901bbd3 [mob][photos] Fix ordering 2025-02-28 14:15:40 +05:30
Neeraj Gupta
2cdd919c37 [mob] Clean up deprecated invalidFileIDs 2025-02-28 14:14:32 +05:30
Manav Rathi
c1a2f226ef Move 2025-02-28 14:13:34 +05:30
laurenspriem
8e8610beda [mob][photos] More robust caching and models 2025-02-28 14:11:33 +05:30
Manav Rathi
1605f71a54 Fill in 2025-02-28 14:11:32 +05:30
Neeraj
a11ba4d14f [mob] Clean up migration for livePhoto (#5198)
## Description

## Tests
2025-02-28 13:51:23 +05:30
Manav Rathi
eb7f0c0bed Fix extra invalidations 2025-02-28 13:48:53 +05:30
Manav Rathi
ffc1db7369 err 1 2025-02-28 13:35:45 +05:30
Manav Rathi
cea88b91d2 dis 2 2025-02-28 13:24:21 +05:30
Neeraj Gupta
d98fbd6dc5 [mob] Clean up 2025-02-28 13:13:16 +05:30
Manav Rathi
28d412a12b disabled 2025-02-28 13:09:21 +05:30
Neeraj Gupta
9d601a6b4e [mob] Clean up migration for livePhoto 2025-02-28 13:06:38 +05:30
Manav Rathi
b851a30c18 Change both in sync 2025-02-28 12:42:05 +05:30
Manav Rathi
ec11bc7092 Complete 2025-02-28 12:25:35 +05:30
Manav Rathi
093ba4895d d4 2025-02-28 12:22:22 +05:30
Manav Rathi
502507abf5 d3 2025-02-28 11:00:54 +05:30
Manav Rathi
15b49816cc d2 2025-02-28 09:58:46 +05:30
Manav Rathi
15a4e3cd98 wip delegate 2025-02-28 09:20:19 +05:30
Manav Rathi
067e44e10a st 2 2025-02-28 08:48:16 +05:30
Manav Rathi
67206b013b stable ident 2025-02-28 08:31:31 +05:30
Manav Rathi
df86904e6a fav 1 2025-02-28 08:26:10 +05:30
Manav Rathi
66f43a9c9a more 2 2025-02-28 08:08:56 +05:30
Manav Rathi
561b0ea71e more 2025-02-28 06:32:46 +05:30
Manav Rathi
2fbc26c9eb scale 2025-02-28 06:25:32 +05:30
Manav Rathi
b11636bfdf zoom left 2025-02-28 05:59:01 +05:30
Manav Rathi
8e08a0d71d Temporary workbench
Revert "Prep for merge"

This reverts commit e75165d01e.
2025-02-28 05:46:02 +05:30
Manav Rathi
f49fcd7984 [web] PhotoSwipe update - WIP (#5195) 2025-02-27 18:35:57 +05:30
Manav Rathi
e75165d01e Prep for merge
Revert "Temporary workbench"

This reverts commit 06b84e8067.
2025-02-27 18:28:56 +05:30
Manav Rathi
70abbeebc2 Fix hiding 2025-02-27 18:28:36 +05:30
Manav Rathi
215ed6d6c8 Fix toggle 2025-02-27 17:50:01 +05:30
Manav Rathi
e453f5bf36 icons 2025-02-27 17:34:11 +05:30
Manav Rathi
e87d596b4c fav 1 2025-02-27 17:12:07 +05:30
Prateek Sunal
e9633e48ab fix: separation is the key 2025-02-27 16:57:35 +05:30
Manav Rathi
0bfd355233 Save 2025-02-27 16:51:19 +05:30
Prateek Sunal
cf96c4dc44 chore: bump version 2025-02-27 16:30:24 +05:30
Manav Rathi
0803ef4da6 Btn 2025-02-27 16:07:23 +05:30
Prateek Sunal
daada5e1c8 fix: disable full r8 mode 2025-02-27 15:59:14 +05:30
Vishnu Mohandas
a7ea2859fa [docs] faq (#5161)
## Description

## How to reset my password if I lost it?
2025-02-27 15:54:26 +05:30
Vishnu Mohandas
8336589a22 docs-edit hiding (#5194)
## Description

Removed Hiding is currently only supported in the Ente mobile app, and
items hidden from the mobile app will not be visible in the web and
desktop app.
2025-02-27 15:53:59 +05:30
Jay
074a4d96a6 docs-edit hiding 2025-02-27 15:39:48 +05:30
Manav Rathi
e1d08899a5 Scaffold 2025-02-27 15:39:31 +05:30
Manav Rathi
5576f8379c Fix close animation 2025-02-27 15:31:03 +05:30
Prateek Sunal
42cb7902c6 chore: bump things 2025-02-27 14:51:21 +05:30
Prateek Sunal
11c7d5f0de fix: keep things light 2025-02-27 14:51:12 +05:30
Prateek Sunal
c36cee2ed1 Merge remote-tracking branch 'origin/main' into stream-queue-fix 2025-02-27 14:17:42 +05:30
Prateek Sunal
65614adc1a fix: build it finally 2025-02-27 14:15:42 +05:30
Manav Rathi
b06b8a5794 Manage fi open/close 2025-02-27 13:12:57 +05:30
Manav Rathi
25935f6219 Remaining fi props 2025-02-27 13:07:47 +05:30
Manav Rathi
51effed5a3 Other props 2025-02-27 12:51:21 +05:30
laurenspriem
7cecf84841 [mob][photos] Time as parameter 2025-02-27 12:39:40 +05:30
Manav Rathi
d50391ea13 not async 2025-02-27 12:19:58 +05:30
Manav Rathi
9c6bfaa460 Undo the effects of contentDestroy 2025-02-27 12:15:37 +05:30
Manav Rathi
ee201ff24b use orig 2025-02-27 12:04:37 +05:30
laurenspriem
7e10c077d3 [mob][photos] Logging 2025-02-27 11:51:39 +05:30
laurenspriem
75800f41e4 [mob][photos] Try catch 2025-02-27 11:45:44 +05:30
laurenspriem
7d84ed3e8b [mob][photos] Rename 2025-02-27 11:40:44 +05:30
laurenspriem
d3acd79de6 [mob][photos] Simplify 2025-02-27 11:39:25 +05:30
laurenspriem
89afa9fbc7 [mob][photos] Separate cache model 2025-02-27 11:15:06 +05:30
Manav Rathi
7fc03a71e7 Fix npe 2025-02-27 11:12:04 +05:30
Manav Rathi
06b84e8067 Temporary workbench 2025-02-27 11:01:20 +05:30
Manav Rathi
2919590b05 [desktop] Improve export_status.json writes (#5193) 2025-02-27 09:28:23 +05:30
Manav Rathi
4e6e3e7abf [desktop] Improve export_status.json writes 2025-02-27 09:20:15 +05:30
ashilkn
9b2af45f16 [mob][photos] Bump up build number 2025-02-26 19:56:43 +05:30
Manav Rathi
8fb463028d [web] Del screen refactoring (#5189) 2025-02-26 19:49:30 +05:30
ashilkn
5307c1fda6 [mob][photos] Bump up build number 2025-02-26 19:48:49 +05:30
ashilkn
f96db9cfd3 Merge branch 'main' into fix_free_up_space_bug 2025-02-26 19:44:31 +05:30
ashilkn
afc8fbf7b2 [mob][photos] If free up space fails the first time, retry after removing non-existing assets (only for android) 2025-02-26 19:41:57 +05:30
Manav Rathi
833b564acc Promise 2025-02-26 18:53:10 +05:30
Manav Rathi
3013709540 Move 2025-02-26 18:49:20 +05:30
Manav Rathi
cba85799f0 del api 2025-02-26 18:48:02 +05:30
Manav Rathi
818fba9435 Prune 2025-02-26 18:40:47 +05:30
Manav Rathi
8ec75834e8 [web] Minor code improvements (towards removing yup) (#5187) 2025-02-26 17:17:00 +05:30
laurenspriem
e32b23409c [mob][photos] fallback on old memories 2025-02-26 17:14:16 +05:30
Manav Rathi
9103d73874 touched 2025-02-26 17:06:01 +05:30
Manav Rathi
504a8bdab6 Use newer 2025-02-26 17:02:26 +05:30
Manav Rathi
1be2286279 Move 2025-02-26 16:52:10 +05:30
Manav Rathi
059275a486 fetch 2025-02-26 16:42:57 +05:30
laurenspriem
c32974cf95 [mob][photos] Log old memories properly 2025-02-26 16:37:27 +05:30
Manav Rathi
5e583da6f0 unyup 2025-02-26 16:29:30 +05:30
Manav Rathi
bb613cd384 validate 2025-02-26 16:23:16 +05:30
Manav Rathi
359bbd2628 Unindent 2025-02-26 16:18:56 +05:30
Manav Rathi
fb869b7f44 [web] New translations (#5185)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2025-02-26 15:54:59 +05:30
Crowdin Bot
4455a3c793 New Crowdin translations by GitHub Action 2025-02-26 10:23:03 +00:00
Manav Rathi
d781adeba5 [web] Consolidated duplicated translation key (#5184) 2025-02-26 15:52:12 +05:30
Manav Rathi
e7d0977346 [web] Consolidated duplicated translation key 2025-02-26 15:48:11 +05:30
Manav Rathi
488ca1f6d9 [web] New translations (#5183)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2025-02-26 15:41:40 +05:30
Crowdin Bot
00939ff2b8 New Crowdin translations by GitHub Action 2025-02-26 10:10:18 +00:00
Manav Rathi
69488c2db6 [web] File info code cleanup (#5182) 2025-02-26 15:38:11 +05:30
Manav Rathi
c70fa4391c cap fin 2025-02-26 15:31:48 +05:30
Manav Rathi
26c4481658 cap2 2025-02-26 15:07:02 +05:30
Neeraj
f487565398 [server] Retry for size fetch & parallelize check (#5155)
## Description

## Tests
2025-02-26 15:06:45 +05:30
Manav Rathi
96b9743270 cap1 2025-02-26 14:59:31 +05:30
Neeraj Gupta
42d2136d32 Merge branch 'main' into sizeRetry 2025-02-26 14:54:56 +05:30
Neeraj
21247a892f [server] Read embeddings from different bucket & logging improvements (#5180)
## Description

## Tests
2025-02-26 14:50:28 +05:30
Manav Rathi
33e7ccb9ae Extract 2025-02-26 14:50:16 +05:30
Manav Rathi
a157273b42 Remove spurious error on saving edited file in desktop 2025-02-26 14:50:16 +05:30
Manav Rathi
d0f30a1198 Wider 2025-02-26 14:50:16 +05:30
Manav Rathi
d5987dd882 rework rename dialog 2025-02-26 14:50:16 +05:30
Manav Rathi
1bd44351d9 Unnest 2025-02-26 14:50:16 +05:30
Manav Rathi
930bd4ce2e Unwrap 2025-02-26 14:50:16 +05:30
Manav Rathi
3e527e3c41 Rearrange 2025-02-26 14:50:16 +05:30
Manav Rathi
847e647437 Inline 2025-02-26 14:50:16 +05:30
Manav Rathi
cd3bd1cdbb Move 2025-02-26 14:50:16 +05:30
Manav Rathi
82082e2cbf Move 2025-02-26 14:50:16 +05:30
Manav Rathi
7545047647 abstract 2025-02-26 14:50:16 +05:30
Manav Rathi
1c1fe7f1df Scope 2025-02-26 14:50:16 +05:30
Manav Rathi
cc2be30f53 Scope 2025-02-26 14:50:16 +05:30
Manav Rathi
9fc5483eb8 Shorten 2025-02-26 14:50:16 +05:30
Manav Rathi
3468bdea7b Fix 2025-02-26 14:50:16 +05:30
Manav Rathi
bc23f1dec9 R 2025-02-26 14:50:16 +05:30
Manav Rathi
9327cb114c rejig 2025-02-26 14:50:16 +05:30
Manav Rathi
2fee6e87f9 Use 2025-02-26 14:50:16 +05:30
Manav Rathi
052367cccb Move to base context 2025-02-26 14:50:16 +05:30
Manav Rathi
4afa486c19 R 2025-02-26 14:50:16 +05:30
Manav Rathi
4b03d1bd0c Prune 2025-02-26 14:50:16 +05:30
Manav Rathi
93108c45d8 photosd-next (#5181) 2025-02-26 14:46:43 +05:30
Manav Rathi
3b1ec81db8 photosd-next 2025-02-26 14:45:25 +05:30
Ashil
ebeeb189fd [mob][photos] Handle error + refactoring (#5172) 2025-02-26 14:33:25 +05:30
Neeraj Gupta
98ebf98d17 [server] Bump default worker for filedata replication 2025-02-26 14:32:17 +05:30
Neeraj Gupta
d494bb8d38 [server] doc 2025-02-26 14:25:45 +05:30
Neeraj Gupta
b688706935 [server] Enchance logging for metadata failure 2025-02-26 14:20:28 +05:30
Neeraj Gupta
d0ef4f234d [server] Prefer reading from b5 2025-02-26 14:04:28 +05:30
Manav Rathi
0fa664a4cb photosd-v1.7.10 (#5179) 2025-02-26 14:02:00 +05:30
Neeraj
c2833d11b0 [server] Panic instead of fatal err (#5178) 2025-02-26 14:00:17 +05:30
Manav Rathi
ec594acafc photosd-v1.7.10 2025-02-26 14:00:09 +05:30
Prateek Sunal
8ce9baf920 fix: stop then dispose for now 2025-02-26 13:59:03 +05:30
laurenspriem
1b1c5c0e7b [mob][photos] cleanup init 2025-02-26 13:20:07 +05:30
ashilkn
81124566f2 Merge branch 'main' into fix_free_up_space_bug 2025-02-26 00:36:42 +05:30
Vishnu Mohandas
0d42cc7b68 [server] Swallow file data fetch err (#5177)
## Description

## Tests
2025-02-25 22:46:00 +05:30
Neeraj Gupta
8fb5f44b62 [server] Swallow mldata fetch err 2025-02-25 22:44:05 +05:30
Vishnu Mohandas
908b0d9dc4 [server] Prefer b6 for read (#5176)
## Description

## Tests
2025-02-25 22:31:56 +05:30
Neeraj Gupta
c0086efdbc [server] Prefer b6 for read 2025-02-25 22:30:39 +05:30
Vishnu Mohandas
49101bfddb [server] Add missing bucketId (#5175)
## Description

## Tests
2025-02-25 22:12:00 +05:30
Neeraj Gupta
83b322770d [server] Add missing bucketId 2025-02-25 22:10:36 +05:30
Neeraj
72bcd8e450 [server] Wait for fileData put & fail fetch if more than 5 object fails (#5174)
## Description

## Tests
2025-02-25 21:41:45 +05:30
ashilkn
1e05c9d701 [mob][photos] Log stacktrace 2025-02-25 18:56:39 +05:30
laurenspriem
fdf4a3d336 [mob][photos] Unify all caching in cache service only 2025-02-25 17:15:45 +05:30
ashilkn
e61d212ad0 [mob][photos] Handle errors/exceptions in getThumbnailFileOfPerson 2025-02-25 17:13:09 +05:30
Prateek Sunal
837d2bbf77 fix: failure previewed case and fire bus event 2025-02-25 17:06:11 +05:30
Prateek Sunal
f7f5e924aa fix: add new table for stream upload errors 2025-02-25 16:25:24 +05:30
Neeraj Gupta
1eed650812 [server] Return custom errors 2025-02-25 15:47:41 +05:30
Neeraj Gupta
b62f82c81e Minor fix 2025-02-25 15:42:00 +05:30
Andrés Ignacio Torres
7b6fe4a9d7 [auth] Add custom icons for No-IP, Prey Project, Workflowy + extra name for Nintendo Account (#5127)
## Description

Added three new custom icons:

- No-IP
- Prey Project
- Workflowy

Additionally add one more alternate name for the Nintendo custom icon:
Nintendo Account.

These are a few of the services I noticed had no icons after migrating
my 2FA codes to Ente.

## Tests

Icon change only, no code changes.
2025-02-25 15:41:10 +05:30
Neeraj
38d207d28e [mob] Check lock before reporting file & limit retry for network errors (#5171)
## Description
This should significantly reduce the instances of
- Duplicate file uploads
- File replacement instances
## Tests
2025-02-25 15:37:44 +05:30
Prateek Sunal
05cec775aa chore: bump version 2025-02-25 15:29:25 +05:30
Prateek Sunal
19073951c8 fix: shuffle deck 2025-02-25 15:29:12 +05:30
Prateek Sunal
0b56575939 fix: add more proguard rules 2025-02-25 15:27:36 +05:30
Prateek Sunal
e9c6ad39f7 Merge remote-tracking branch 'origin/main' into stream-queue-fix 2025-02-25 15:05:28 +05:30
Prateek Sunal
655bbd36da chore: bump version code 2025-02-25 15:04:38 +05:30
Prateek Sunal
d1a5e94886 fix: aspect ratio resolution 2025-02-25 15:04:26 +05:30
Neeraj Gupta
840fc3c061 [mob] Check lock again before reporting file 2025-02-25 15:02:44 +05:30
laurenspriem
a5cb78bf95 [mob][photos] memories cache first iteration 2025-02-25 14:48:25 +05:30
Prateek Sunal
5659b93555 fix: add code to append preview 2025-02-25 14:48:24 +05:30
ashilkn
f772a48bc0 Merge branch 'main' into person_linking_improvements 2025-02-25 14:43:31 +05:30
Prateek Sunal
fc429d88c5 chore: add proguard rules 2025-02-25 14:43:31 +05:30
ashilkn
55015f4a62 Merge branch 'main' into person_linking_improvements 2025-02-25 13:37:42 +05:30
Neeraj Gupta
2ff97c29ff [mob] Limit retry to noStatusCode 2025-02-25 13:36:25 +05:30
Neeraj Gupta
1c94807c36 [mob] generated strings 2025-02-25 13:27:59 +05:30
Manav Rathi
e009151667 [web] Fix rendering of files without extension (#5170)
Fixes: https://github.com/ente-io/ente/issues/5125
2025-02-25 13:23:16 +05:30
Manav Rathi
4a03e34a20 [web] Fix rendering of files without extension
Fixes: https://github.com/ente-io/ente/issues/5125
2025-02-25 13:18:53 +05:30
Manav Rathi
6aa6b667e3 [web] Minor code reorg (#5169) 2025-02-25 12:57:46 +05:30
Prateek Sunal
99a579f7f3 fix: revert to some original code 2025-02-25 12:03:19 +05:30
Prateek Sunal
5c64a1a5e5 Merge remote-tracking branch 'origin/main' into stream-queue-fix 2025-02-25 11:53:48 +05:30
Neeraj
3c902bc1c1 [mobile] New translations (#5007)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-app)
2025-02-25 11:53:26 +05:30
Neeraj
0fb8ccc029 [mob] Clean up (#5165)
## Description

## Tests
2025-02-25 11:53:13 +05:30
Crowdin Bot
ba000c2304 New Crowdin translations by GitHub Action 2025-02-25 06:21:48 +00:00
Prateek Sunal
d9f15dad45 Merge remote-tracking branch 'origin/main' into stream-queue-fix 2025-02-25 11:42:03 +05:30
mangesh
07fac1a354 [server] don't allow setting storageLimit for INVITED users (#5167) 2025-02-25 11:27:41 +05:30
mngshm
3ae65e1de9 [server] don't allow setting storageLimit for INVITED users 2025-02-25 11:16:22 +05:30
Manav Rathi
62471dad3e Move 2025-02-25 10:58:30 +05:30
Neeraj Gupta
19ea1ad1f4 [mob] Clean up 2025-02-25 10:56:42 +05:30
Manav Rathi
2ece083d4d Rename 2025-02-25 10:49:12 +05:30
laurenspriem
53d71de31f [mob][photos] More central flag 2025-02-25 10:38:41 +05:30
Neeraj
3cf627a290 [server] Add index on file_data(user_id,updated_at) (#5164)
## Description

## Tests
2025-02-25 09:47:12 +05:30
Neeraj Gupta
792353bb9e [server] Add index on file_data(user_id,updated_at) 2025-02-25 09:34:26 +05:30
Manav Rathi
b0c17fee6d [web] Prevent extra submission of 2fa when a request is in progress (#5162) 2025-02-24 21:21:36 +05:30
Manav Rathi
4db25b1b8f Fix error handling 2025-02-24 20:58:37 +05:30
Manav Rathi
d0c93338fa await route changes 2025-02-24 20:48:02 +05:30
Manav Rathi
af89a2202c Cleanup 2025-02-24 20:47:22 +05:30
Manav Rathi
6208531902 Fix the double submit bug 2025-02-24 20:34:16 +05:30
Manav Rathi
47539e93f9 Simplify 2025-02-24 20:32:23 +05:30
Manav Rathi
15d77b7551 Use correct error 2025-02-24 20:25:22 +05:30
Manav Rathi
841de87a33 Combine 2025-02-24 20:23:04 +05:30
Manav Rathi
25ba019a57 Vis 2025-02-24 20:07:55 +05:30
Manav Rathi
1c8a796bec Reduce indent 2025-02-24 20:01:28 +05:30
Manav Rathi
277c7e452a Cleanup 2025-02-24 19:49:37 +05:30
Manav Rathi
9ab110c4c3 Vis 2025-02-24 19:39:29 +05:30
Manav Rathi
7420eb5a66 Vis 2025-02-24 19:35:36 +05:30
Manav Rathi
37775b9ee5 Conv 2025-02-24 19:29:14 +05:30
Manav Rathi
7d5205d57d Conv 2025-02-24 19:27:21 +05:30
Manav Rathi
16246d8d58 Conv 2025-02-24 19:24:37 +05:30
Manav Rathi
4442b3af28 Inline 2025-02-24 19:12:04 +05:30
mangesh
b67a33fcaf Create Tailscale.md (#5140)
ente photos with tailscale
2025-02-24 19:06:41 +05:30
Manav Rathi
989708cf58 Use 2025-02-24 19:05:11 +05:30
mngshm
425954257b add missing sidebar link 2025-02-24 19:04:52 +05:30
Manav Rathi
7725b14935 Conv 2025-02-24 18:50:26 +05:30
mngshm
58fe69638e Community 2025-02-24 18:49:15 +05:30
Manav Rathi
290ae40296 Conv 2025-02-24 18:42:22 +05:30
Manav Rathi
ebc310d742 z 2025-02-24 18:38:55 +05:30
Manav Rathi
28d04f7725 Inline 2025-02-24 18:36:06 +05:30
Jay
3c90b0dfca docs-faq 2025-02-24 17:21:05 +05:30
Manav Rathi
8de3619cf1 [desktop] Reattempt indexing if needed (#5160) 2025-02-24 17:20:09 +05:30
Manav Rathi
8036aae292 [desktop] Reattempt indexing if needed 2025-02-24 17:13:22 +05:30
Prateek Sunal
87555194fe chore: bump lock files 2025-02-24 16:43:33 +05:30
ashilkn
6c67f11cc0 Merge branch 'main' into person_linking_improvements 2025-02-24 16:37:14 +05:30
Neeraj Gupta
b9573c057e [server] Use cached result for canUpload 2025-02-24 16:34:57 +05:30
Neeraj Gupta
54d2813329 [server] Parallize size fetch for file & thumb 2025-02-24 15:59:11 +05:30
Prateek Sunal
7175e1d43a fix: don't show media kit button for preview 2025-02-24 15:47:15 +05:30
Prateek Sunal
8237229823 fix: loop behavior media kit 2025-02-24 15:46:13 +05:30
Prateek Sunal
a36958503d fix: smooth native video player experience 2025-02-24 15:34:25 +05:30
Neeraj Gupta
19efbad336 [server] Add retry for sizeOf fetch 2025-02-24 15:21:34 +05:30
frost
e0dd39dd95 Update Tailscale.md 2025-02-23 13:11:58 +05:00
Prateek Sunal
386554ac70 fix: don't check for preview if video streaming is disabled 2025-02-23 05:33:02 +05:30
Prateek Sunal
e99bc335d9 chore: bump deps 2025-02-23 05:32:46 +05:30
frost
48f6071f5c Create Tailscale.md
This is ente photos setup running with tailscale
2025-02-22 20:50:49 +05:00
Aman Raj Singh Mourya
34a672fb7c [mob][photos] Initial setup for Video-memory 2025-02-21 23:10:27 +05:30
Prateek Sunal
8a5cc0c221 feat: push all changes 2025-02-21 20:55:52 +05:30
ashilkn
5e6860f2cd [mob][photos] Avoid localIDs of non-existant assets from being passed to photo_manager's deleteWithIds() when using free up space feature to avoid complete failure of free up space operation 2025-02-21 20:04:12 +05:30
Prateek Sunal
10e675a81c chore: bump pod file 2025-02-21 17:53:04 +05:30
Prateek Sunal
98b890aa99 Merge remote-tracking branch 'origin/main' into stream-queue-fix 2025-02-21 17:52:21 +05:30
Prateek Sunal
0d7f87381a chore: down version 2025-02-21 17:51:11 +05:30
Prateek Sunal
d50171bf7f fix: android sdk 35 2025-02-21 17:50:44 +05:30
Prateek Sunal
64712e5600 chore: bump version again 2025-02-21 17:37:35 +05:30
Prateek Sunal
8a615c34ef fix: for media kit android 2025-02-21 17:37:22 +05:30
Prateek Sunal
8b94304754 feat: add stream switched event 2025-02-21 17:30:00 +05:30
laurenspriem
9da79dc99a [mob][photos] Don't show others in spotlight 2025-02-21 16:59:43 +05:30
Prateek Sunal
b09e911f18 fix: bump native video player 2025-02-21 16:25:52 +05:30
laurenspriem
78a7ae7c5f [mob][photos] photo selection of people memories 2025-02-21 15:28:52 +05:30
Prateek Sunal
61bb3ce16b fix: is preview player setting 2025-02-21 14:55:50 +05:30
Prateek Sunal
2688ca446e chore: bump version 2025-02-21 14:09:53 +05:30
Prateek Sunal
80e86f6f65 fix: update queuing logic 2025-02-21 14:08:48 +05:30
laurenspriem
bfe39be07e [mob][photos] Update clip query 2025-02-21 12:43:44 +05:30
ashilkn
708b17cef3 [mob][photos] Resolve merge conflicts and merge main 2025-02-20 18:35:40 +05:30
ashilkn
1746db0d44 [mob][photos] Gracefully handle no avatar of recent file for face in UI where every getThumbnailFileOfPerson is used 2025-02-20 17:38:37 +05:30
ashilkn
af676e6107 [mob][photos] Refactor 2025-02-20 17:20:41 +05:30
ashilkn
11c75dc5c8 [mob][photos] Log info 2025-02-20 16:58:27 +05:30
laurenspriem
512cf3b395 [mob][photos] More activities 2025-02-20 11:26:32 +05:30
laurenspriem
87f2957e19 [mob][photos] Lower threshold 2025-02-20 11:20:12 +05:30
laurenspriem
f4d73e683c [mob][photos] Fix lastTimeWith 2025-02-20 11:14:43 +05:30
laurenspriem
cac846f0e2 [mob][photos] Change surfacing order 2025-02-20 11:12:56 +05:30
laurenspriem
58c10ad204 [mob][photos] Increase activity threshold 2025-02-20 10:31:28 +05:30
laurenspriem
321d3d6031 [mob][photos] Small fix 2025-02-20 10:24:32 +05:30
laurenspriem
41e5cf03e4 [mob][photos] Increase activity threshold 2025-02-20 10:08:55 +05:30
laurenspriem
22b91a164b [mob][photos] Sign that smart memories are for internal users only 2025-02-20 10:08:33 +05:30
laurenspriem
4e6b86118f [mob][photos] Comment 2025-02-20 09:14:54 +05:30
laurenspriem
e222d091d8 [mob][photos] Extra check against me for lastTimeMemory 2025-02-20 09:14:16 +05:30
laurenspriem
664c40064d [mob][photos] people memories MVP 2025-02-19 19:07:46 +05:30
laurenspriem
844f969f1c [mob][photos] people memory model 2025-02-18 17:00:28 +05:30
laurenspriem
8ff8a0f0d2 [mob][photos] Don't use computer anywhere (yet) 2025-02-18 13:21:34 +05:30
laurenspriem
22e2d5edd9 [mob][photos] Init locale 2025-02-18 12:18:50 +05:30
laurenspriem
9298e22c5c [mob][photos] cache clip embedding 2025-02-17 17:02:38 +05:30
laurenspriem
8de380d4cf [mob][photos] Clear memories seenTime after a while 2025-02-17 16:51:48 +05:30
laurenspriem
d874882866 [mob][photos] Use seen times 2025-02-17 16:49:39 +05:30
laurenspriem
78ca393760 [mob][photos] cache methods 2025-02-17 14:47:50 +05:30
laurenspriem
19976136ab [mob][photos] todo 2025-02-17 12:25:59 +05:30
laurenspriem
5fd18807cc [mob][photos] Clean up search service 2025-02-17 11:58:44 +05:30
laurenspriem
1fe6987acf [mob][photos] Move to home gallery 2025-02-17 11:39:13 +05:30
Neeraj Gupta
b3123a6440 Merge branch '0.9.98_release_branch' into f-droid 2025-02-14 20:07:06 +05:30
Neeraj Gupta
7e91152431 [mob] Bump version v0.9.98+999 2025-02-14 19:35:51 +05:30
Neeraj
27e906421a [mob] Remove internal flag (#5071)
## Description

## Tests
2025-02-14 19:35:11 +05:30
laurenspriem
e13b88881e [mob][photos] Separate memory types 2025-02-14 13:10:28 +05:30
laurenspriem
9f06de3889 [mob][photos] enum 2025-02-13 15:16:58 +05:30
ashilkn
f4eb511beb Merge tag 'photos-v0.9.97' into f-droid 2025-02-12 22:07:36 +05:30
ashilkn
fae8200920 [mob][photos] Bump up to v0.9.97 2025-02-12 21:22:43 +05:30
Ashil
dc9292b280 [mob][photos] Join link confirmation dialog (#5046) 2025-02-12 21:21:27 +05:30
Ashil
cf43bd6698 [mobile][photos] Fix: show account owner's email in 'Link email' screen if it's not assigned to any person yet (#5045) 2025-02-12 21:19:57 +05:30
Neeraj Gupta
1a689b2c19 Merge branch 'main' into f-droid 2025-02-10 14:29:21 +05:30
Neeraj Gupta
b0c6ffdbb2 Merge branch 'main' into f-droid 2025-01-15 13:06:56 +05:30
Neeraj Gupta
b7ccf4aaf9 Merge branch 'f-droid' of https://github.com/ente-io/auth into f-droid 2025-01-15 13:06:47 +05:30
ashilkn
e7c8265ae1 Merge branch 'main' into f-droid 2025-01-08 12:39:54 +05:30
ashilkn
21dc35355d Merge branch 'main' into f-droid 2025-01-03 18:40:49 +05:30
ashilkn
f86994b1d3 Merge tag 'photos-v0.9.72' into f-droid 2024-12-20 11:44:00 +05:30
Neeraj Gupta
260a26d45c Merge branch 'main' into f-droid 2024-12-11 21:58:29 +05:30
ashilkn
cdfa368a8c Merge branch 'main' into f-droid 2024-12-09 12:51:05 +05:30
Neeraj Gupta
d67c6aef53 Merge branch 'main' into f-droid 2024-11-28 11:01:39 +05:30
Neeraj Gupta
6ebb5d5bf4 Merge branch 'f-droid' of https://github.com/ente-io/auth into f-droid 2024-11-28 11:00:11 +05:30
ashilkn
224b79b648 Merge tag 'photos-v0.9.58' into f-droid 2024-11-08 16:08:08 +05:30
Neeraj Gupta
7e0a3cdd6c Merge branch 'main' into f-droid 2024-10-24 13:29:54 +05:30
ashilkn
f6db381e20 [mob][photos] Resolve merge conflicts and merge main 2024-10-23 11:25:54 +05:30
ashilkn
f0c29fef5c Merge branch 'main' into f-droid 2024-10-16 17:06:01 +05:30
Neeraj Gupta
2a3e317725 Merge branch 'main' into f-droid 2024-10-15 21:01:21 +05:30
ashilkn
1a1b3ebf12 [mob][photos] Resolve merge conflicts and merge main 2024-10-09 13:52:19 +05:30
Neeraj Gupta
f995589a02 Merge branch 'main' into f-droid 2024-09-29 12:04:26 +05:30
Neeraj Gupta
6e0990d658 Merge branch 'main' into f-droid 2024-09-20 15:56:08 +05:30
Neeraj Gupta
4da4261f4c Update flutter to 3.24.3 2024-09-20 15:00:23 +05:30
Neeraj Gupta
0abe66ea8c Merge branch 'main' into f-droid 2024-09-20 14:49:17 +05:30
Neeraj Gupta
193b27a186 Merge commit '0a1e062c' into f-droid 2024-09-06 15:30:52 +05:30
Neeraj Gupta
e323096172 Merge tag 'photos-v0.9.30' into f-droid 2024-08-27 17:20:23 +05:30
ashilkn
e41f306ac8 [mob][photos] Resolve merge conflicts and merge main 2024-07-31 12:02:25 +05:30
Neeraj Gupta
01d45d7c14 Merge branch 'main' into f-droid 2024-07-19 15:53:08 +05:30
ashilkn
d55a29336f Merge branch 'main' into f-droid 2024-07-08 20:50:35 +05:30
Neeraj Gupta
cfcbd0fbb2 Merge branch 'f-droid' of https://github.com/ente-io/auth into f-droid 2024-06-17 11:47:58 +05:30
Neeraj Gupta
21174548b5 Merge branch 'main' into f-droid 2024-06-17 11:47:42 +05:30
Neeraj Gupta
910f13e9a8 [mob][fdroid] Update flutter to v3.22.0 2024-06-17 11:31:36 +05:30
ashilkn
762688db28 Merge branch 'main' into f-droid 2024-06-13 10:29:55 +05:30
ashilkn
9df1ea0c57 Merge branch 'main' into f-droid 2024-06-12 17:33:12 +05:30
ashilkn
e48ab71fa4 [mob][photos] f-droid: upgrade flutter submodule to version 3.22.2 2024-06-12 17:33:02 +05:30
ashilkn
246314367a [mob][photos] Update flutter submodule on f-droid 2024-06-04 13:14:24 +05:30
ashilkn
ad70bbb571 Merge branch 'main' into f-droid 2024-06-04 13:11:17 +05:30
Neeraj Gupta
3962c55140 Update flutter submodule: v3.22.0 2024-06-03 11:26:02 +05:30
Neeraj Gupta
82e478bb12 Merge branch 'f-droid' of https://github.com/ente-io/auth into f-droid 2024-06-03 11:25:26 +05:30
Neeraj Gupta
63c8e98492 Merge branch 'main' into f-droid 2024-06-03 11:21:35 +05:30
ashilkn
ae92d2f759 Merge branch 'main' into f-droid 2024-05-28 12:37:14 +05:30
ashilkn
761c3e6ac2 [mob][photos] Update flutter submodule on f-droid branch 2024-05-28 12:34:37 +05:30
ashilkn
f9a3009c60 [mob][photos] Resolve merge conflicts and merge 2024-05-28 12:28:03 +05:30
Neeraj Gupta
ca0474faca Updated submodule mobile/thirdparty/flutter to 3.22.1 2024-05-23 17:00:33 +05:30
Neeraj Gupta
b469985277 Removed submodule mobile/thirdparty/isar 2024-05-23 16:58:51 +05:30
Neeraj Gupta
2a5dacb460 Merge branch 'main' into f-droid 2024-05-23 16:55:27 +05:30
vishnukvmd
d16f98cf07 v0.8.95 2024-05-12 08:44:26 +05:30
vishnukvmd
8677cbb4f8 Increase JVM allocation pool 2024-05-12 08:43:55 +05:30
vishnukvmd
0e33299863 Merge branch 'main' into f-droid 2024-05-07 12:54:44 +05:30
ashilkn
93ba4e011a Merge branch 'main' into f-droid 2024-04-20 15:23:14 +05:30
vishnukvmd
7977bebcaa Update Flutter to v3.19.3 2024-04-16 11:35:32 +05:30
ashilkn
f28f49d724 Merge main 2024-04-15 11:20:03 +05:30
ashilkn
d9a93ddad6 Merge branch 'main' into f-droid 2024-04-13 15:24:56 +05:30
ashilkn
07808d6139 Merge branch 'main' into f-droid 2024-04-02 17:22:34 +05:30
vishnukvmd
1e1633bb45 Merge branch 'main' into f-droid 2024-03-13 21:57:19 +05:30
vishnukvmd
c0f33de0c8 Remove dead code 2024-03-13 21:56:09 +05:30
vishnukvmd
417621b17c Pull code for transistor-background-fetch 2024-03-13 14:14:19 +05:30
vishnukvmd
8322540732 Add submodule for Flutter 2024-03-13 14:13:40 +05:30
vishnukvmd
2d61be37bb Add submodule for Isar 2024-03-13 14:12:23 +05:30
vishnukvmd
2a10aa7d61 Merge branch 'fdroid_cleanup' into f-droid 2024-03-13 13:52:25 +05:30
vishnukvmd
004eb310b3 Prepare for F-Droid 2024-03-13 13:43:46 +05:30
559 changed files with 17390 additions and 9399 deletions

3
.gitmodules vendored
View File

@@ -13,3 +13,6 @@
path = web/apps/photos/thirdparty/photoswipe
url = https://github.com/ente-io/PhotoSwipe.git
branch = single-thread
[submodule "mobile/thirdparty/flutter"]
path = mobile/thirdparty/flutter
url = https://github.com/flutter/flutter

View File

@@ -749,7 +749,8 @@
{
"title": "nintendo",
"altNames": [
"任天堂"
"任天堂",
"Nintendo Account"
]
},
{
@@ -766,6 +767,15 @@
{
"title": "Notesnook"
},
{
"title": "NoIp",
"slug": "noip",
"altNames": [
"No IP",
"No-IP",
"noip.com"
]
},
{
"title": "Notion"
},
@@ -851,6 +861,13 @@
"PostScanMail"
]
},
{
"title": "Prey Project",
"slug": "prey_project",
"altNames": [
"PreyProject"
]
},
{
"title": "Privacy Guides",
"slug": "privacyguides"
@@ -1184,6 +1201,9 @@
{
"title": "Wolvesville"
},
{
"title": "Workflowy"
},
{
"title": "WorkOS",
"altNames": [
@@ -1225,6 +1245,12 @@
},
{
"title": "Zoom"
},
{
"title": "BingX"
},
{
"title": "CoinSpot"
}
]
}

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><svg id="a" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 150 150"><defs><style>.e{fill:#2a54ff;}.f{fill:url(#d);}.g{fill:none;}</style><linearGradient id="d" x1="17.68" y1="116.45" x2="132.14" y2="32.11" gradientTransform="matrix(1, 0, 0, 1, 0, 0)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#2a54ff"/><stop offset=".52" stop-color="#2143cb"/><stop offset="1" stop-color="#2a54ff"/></linearGradient></defs><g id="b"><path id="c" class="g" d="M0,0H150V150H0V0Z"/></g><path class="f" d="M140.2,22.33c-25.18-.09-49.79,10.83-66.63,29.47-6.06,6.27-10.1,13.95-14.96,21.06-11.64,15.93-29.81,25.14-49.5,25.13h0v28.65h0c25.17,.1,49.78-10.86,66.63-29.5,6.03-6.27,10.13-13.94,14.96-21.06,11.64-15.91,29.81-25.12,49.5-25.11V22.33h0Z"/><path class="e" d="M140.2,97.99c-19.68,0-37.86-9.2-49.5-25.11-4.81-7.12-8.92-14.78-14.94-21.06C58.95,33.18,34.3,22.24,9.13,22.35h0v28.65h0c21.8-.11,42.05,11.62,53.01,30.46,3.22,5.62,7.06,10.9,11.45,15.74,16.83,18.63,41.46,29.59,66.63,29.5l-.02-28.7h0Z"/></svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -0,0 +1,130 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 27.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 30 30" style="enable-background:new 0 0 30 30;" xml:space="preserve">
<style type="text/css">
.st0{fill:#C5C8CA;}
.st1{fill:#9DA4A8;}
.st2{fill:#B7BBBD;}
.st3{fill:#CBCFD1;}
.st4{fill:#BBBFC2;}
.st5{fill:#CACDCE;}
.st6{fill:#BFC3C5;}
.st7{fill:#BCC0C2;}
.st8{fill:#BDC1C4;}
.st9{fill:#C7CACC;}
.st10{fill:url(#SVGID_1_);}
.st11{fill:#FFFFFF;}
.st12{fill:#B8BCBF;}
.st13{fill:#C4C7C9;}
.st14{fill:#C1C5C7;}
.st15{fill:url(#SVGID_00000003093454306001190100000011813141018663887528_);}
.st16{fill:url(#SVGID_00000017503418065689336600000007511615486600436881_);}
.st17{fill:url(#SVGID_00000057845154053127761930000017803385842445649033_);}
.st18{fill:url(#SVGID_00000156571711195124538550000006687723982713171592_);}
.st19{fill:#DF3030;}
.st20{fill:url(#SVGID_00000001636660173574603980000008731795684331757470_);}
.st21{fill:#17181C;}
.st22{fill:url(#SVGID_00000180343933242210086490000003762167186865041053_);}
.st23{fill:url(#SVGID_00000015338415700440354440000005681408021599925436_);}
</style>
<g>
<path class="st0" d="M14.4,29.5c0.1,0,0.1,0,0.2,0c0.1,0,0.2,0,0.2,0H14.4z"/>
<path class="st1" d="M15.3,29.5h0.1c0,0,0,0,0,0c0,0,0,0,0,0c0,0,0,0,0,0c0,0,0,0,0,0c0,0,0,0,0,0L15.3,29.5
C15.2,29.5,15.3,29.5,15.3,29.5z"/>
<path class="st2" d="M15.3,29.5L15.3,29.5l-0.2,0C15.2,29.5,15.2,29.5,15.3,29.5z"/>
<path class="st3" d="M15.5,29.5L15.5,29.5L15.5,29.5L15.5,29.5L15.5,29.5z"/>
<path class="st0" d="M14.1,29.5c0.1,0,0.1,0,0.2,0H14.1z"/>
<path class="st4" d="M13.9,29.5C13.9,29.5,14,29.5,13.9,29.5c0.1,0,0.1,0,0.2,0H13.9z"/>
<path class="st5" d="M13.6,29.5C13.6,29.5,13.6,29.5,13.6,29.5c0.1,0,0.1,0,0.1,0H13.6z"/>
<path class="st6" d="M13.7,29.5C13.8,29.5,13.8,29.5,13.7,29.5c0.1,0,0.1,0,0.1,0H13.7z"/>
<path class="st7" d="M13.3,29.4C13.3,29.4,13.3,29.4,13.3,29.4C13.4,29.4,13.4,29.4,13.3,29.4L13.3,29.4z"/>
<path class="st8" d="M13.4,29.5C13.4,29.4,13.5,29.4,13.4,29.5C13.5,29.4,13.5,29.4,13.4,29.5L13.4,29.5z"/>
<path class="st8" d="M13.1,29.4C13.1,29.4,13.1,29.4,13.1,29.4C13.1,29.4,13.1,29.4,13.1,29.4L13.1,29.4z"/>
<path class="st9" d="M13.2,29.4C13.2,29.4,13.2,29.4,13.2,29.4C13.2,29.4,13.2,29.4,13.2,29.4C13.2,29.4,13.2,29.4,13.2,29.4
C13.3,29.4,13.3,29.4,13.2,29.4L13.2,29.4z"/>
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="21.8812" y1="-88.078" x2="8.2545" y2="-104.6955" gradientTransform="matrix(1 0 0 -1 0 -81.48)">
<stop offset="0" style="stop-color:#020037"/>
<stop offset="1" style="stop-color:#050F62"/>
</linearGradient>
<path class="st10" d="M15,0.4C11.1,0.4,7.5,2,4.7,4.7C2,7.4,0.5,11.1,0.5,15c0,1.7,0.3,3.4,0.9,5.1c0.3,0,0.5,0,0.8,0
c2.9,0,5.8,0.9,8.2,2.6c2.4,1.7,4.2,4.1,5.1,6.9c3.8-0.1,7.4-1.7,10-4.4c2.6-2.7,4.1-6.4,4.1-10.1c0-3.9-1.5-7.6-4.3-10.3
C22.6,2,18.9,0.4,15,0.4"/>
<path class="st11" d="M20.7,22.5C20.7,22.5,20.7,22.5,20.7,22.5L20.7,22.5c0,0.4,0.1,0.8,0.3,1c0.2,0.2,0.6,0.3,1,0.3c0,0,0,0,0,0
c0,0,0,0,0,0c0,0,0,0,0,0c0,0,0,0,0,0c0,0,0,0,0,0l0,0c-0.4,0-0.7,0.1-1,0.3c-0.2,0.2-0.3,0.6-0.3,1c0,0,0,0,0,0c0,0,0,0,0,0
c0,0,0,0,0,0c0,0,0,0,0,0h0l0,0c0-0.4-0.1-0.7-0.3-1c-0.2-0.2-0.6-0.3-1-0.3c0,0,0,0,0,0l0,0c0,0,0,0,0,0s0,0,0,0c0,0,0,0,0,0
c0,0,0,0,0,0c0.4,0,0.7-0.1,1-0.3S20.7,22.9,20.7,22.5C20.7,22.5,20.7,22.5,20.7,22.5C20.7,22.5,20.7,22.5,20.7,22.5z"/>
<path class="st11" d="M6.9,15.5C6.9,15.5,6.9,15.5,6.9,15.5L6.9,15.5c0,0.4,0.1,0.8,0.3,1c0.2,0.2,0.6,0.3,1,0.3c0,0,0,0,0,0
c0,0,0,0,0,0c0,0,0,0,0,0c0,0,0,0,0,0c0,0,0,0,0,0l0,0c-0.4,0-0.7,0.1-1,0.3c-0.2,0.2-0.3,0.6-0.3,1c0,0,0,0,0,0c0,0,0,0,0,0
c0,0,0,0,0,0c0,0,0,0,0,0h0l0,0c0-0.4-0.1-0.7-0.3-1c-0.2-0.2-0.6-0.3-1-0.3c0,0,0,0,0,0l0,0c0,0,0,0,0,0c0,0,0,0,0,0c0,0,0,0,0,0
c0,0,0,0,0,0c0.4,0,0.7-0.1,1-0.3C6.8,16.2,6.9,15.9,6.9,15.5C6.9,15.5,6.9,15.5,6.9,15.5C6.9,15.5,6.9,15.5,6.9,15.5z"/>
<path class="st11" d="M10.6,4.1L10.6,4.1C10.7,4.1,10.7,4.1,10.6,4.1c0,0.3,0.1,0.5,0.3,0.7c0.2,0.2,0.4,0.3,0.7,0.2h0v0l0,0l0,0
l0,0l0,0c-0.3,0-0.5,0.1-0.7,0.2c-0.2,0.2-0.3,0.4-0.2,0.7l0,0l0,0l0,0l0,0h0v0c0-0.3-0.1-0.5-0.2-0.7C10.2,5.1,10,5,9.7,5.1h0v0v0
h0C10,5,10.2,5,10.4,4.8C10.6,4.6,10.7,4.3,10.6,4.1C10.6,4.1,10.6,4.1,10.6,4.1C10.6,4.1,10.6,4.1,10.6,4.1z"/>
<path class="st12" d="M12.8,29.4C12.8,29.4,12.8,29.4,12.8,29.4C12.8,29.4,12.8,29.4,12.8,29.4C12.8,29.4,12.8,29.4,12.8,29.4
C12.8,29.4,12.8,29.4,12.8,29.4L12.8,29.4z"/>
<path class="st13" d="M13,29.4C13,29.4,13,29.4,13,29.4C13,29.4,13,29.4,13,29.4L13,29.4z"/>
<path class="st14" d="M12.9,29.4C12.9,29.4,12.9,29.4,12.9,29.4C12.9,29.4,12.9,29.4,12.9,29.4L12.9,29.4z"/>
<linearGradient id="SVGID_00000173122186048074043340000017421439166240502921_" gradientUnits="userSpaceOnUse" x1="19.2457" y1="-89.3156" x2="22.9553" y2="-91.7188" gradientTransform="matrix(1 0 0 -1 0 -81.48)">
<stop offset="0" style="stop-color:#E5E5E5"/>
<stop offset="1" style="stop-color:#B7B8C1"/>
</linearGradient>
<path style="fill:url(#SVGID_00000173122186048074043340000017421439166240502921_);" d="M21.8,1.2c-1.4,0.7-3,1.9-4.4,4.2
c-2.5,3.9-3.2,7.4-3.2,7.4L16,14l0.3,0.2l1.9,1.2c0,0,2.9-2,5.4-5.9c1.5-2.3,2-4.3,2-5.8c-0.8-0.1-1.5-0.4-2.2-0.8
C22.8,2.5,22.2,1.9,21.8,1.2z"/>
<linearGradient id="SVGID_00000127763695479642710240000017533313096818365313_" gradientUnits="userSpaceOnUse" x1="21.2378" y1="-99.9826" x2="19.0472" y2="-97.8815" gradientTransform="matrix(1 0 0 -1 0 -81.48)">
<stop offset="0" style="stop-color:#EC4F4F"/>
<stop offset="1" style="stop-color:#A91919"/>
</linearGradient>
<path style="fill:url(#SVGID_00000127763695479642710240000017533313096818365313_);" d="M20.8,16.8c0.9-1.4,0.3-3.2,0-3.8
c-0.7,0.8-1.5,1.5-2.3,2.1c0.1,0.4,0.3,0.8,0.3,1.2c0,0.1,0,0.2-0.1,0.3c-0.4,0.6-0.8,1.3-1.1,2c-0.1,0.1-0.1,0.2-0.1,0.3
c-0.1,0.2-0.1,0.3,0,0.5c0,0.3,0.2,0.5,0.3,0.8c0,0,0.1,0.1,0.1,0.1c0.1,0,0.1,0.1,0.2,0.1s0.1,0,0.2-0.1c0.1-0.1,0.3-0.2,0.4-0.4
C19.5,19,19.8,18.5,20.8,16.8z"/>
<linearGradient id="SVGID_00000060717637781723915790000002744012061535479481_" gradientUnits="userSpaceOnUse" x1="11.3158" y1="-99.2586" x2="14.8122" y2="-101.5237" gradientTransform="matrix(1 0 0 -1 0 -81.48)">
<stop offset="0" style="stop-color:#F2A518"/>
<stop offset="1" style="stop-color:#F4E23E"/>
</linearGradient>
<path style="fill:url(#SVGID_00000060717637781723915790000002744012061535479481_);" d="M15.1,15.7l-1.7-1.1c-2,3.1-3.3,7-2.4,7.5
c0.9,0.6,3.9-2.2,5.9-5.3L15.1,15.7z"/>
<linearGradient id="SVGID_00000070084874335106853820000008402293642909580433_" gradientUnits="userSpaceOnUse" x1="-4386.2534" y1="747.6443" x2="-4497.9517" y2="769.0099" gradientTransform="matrix(1 0 0 -1 0 -81.48)">
<stop offset="0" style="stop-color:#EC4F4F"/>
<stop offset="1" style="stop-color:#A91919"/>
</linearGradient>
<path style="fill:url(#SVGID_00000070084874335106853820000008402293642909580433_);" d="M15.2,9.5c-0.7-0.1-2.5,0.1-3.4,1.5
c-1.1,1.6-1.5,2.1-2,3.2c-0.1,0.2-0.1,0.3-0.2,0.5c0,0.1,0,0.1,0,0.2C9.6,15,9.7,15,9.7,15c0,0,0.1,0,0.2,0.1c0.3,0.1,0.6,0,0.8,0
c0.2,0,0.3-0.1,0.4-0.2c0.1-0.1,0.2-0.2,0.3-0.3c0.5-0.6,0.9-1.2,1.3-1.8c0.1-0.1,0.2-0.2,0.3-0.2c0.4-0.1,0.8-0.1,1.2-0.2l0,0
C14.5,11.4,14.8,10.4,15.2,9.5z"/>
<path class="st19" d="M25,0.6c-0.2-0.1-1.5-0.2-3.2,0.7c0.4,0.7,1,1.2,1.6,1.7c0.7,0.4,1.4,0.7,2.2,0.8C25.7,1.9,25.1,0.7,25,0.6z"
/>
<path class="st19" d="M18.4,15.5L14,12.7c-0.1,0-0.1,0-0.2,0l-0.9,1.4c0,0.1,0,0.1,0,0.2l4.4,2.8c0.1,0,0.1,0,0.2,0l0.9-1.4
C18.4,15.6,18.4,15.6,18.4,15.5z"/>
<linearGradient id="SVGID_00000044894753735506851200000013592864944465274029_" gradientUnits="userSpaceOnUse" x1="14.9436" y1="-95.9217" x2="16.3716" y2="-96.8468" gradientTransform="matrix(1 0 0 -1 0 -81.48)">
<stop offset="0" style="stop-color:#B71E1E"/>
<stop offset="0.44" style="stop-color:#DF3030"/>
<stop offset="1" style="stop-color:#C51D1D"/>
</linearGradient>
<path style="fill:url(#SVGID_00000044894753735506851200000013592864944465274029_);" d="M17.8,11.6c-0.4-0.2-2.1,1.6-3.2,3.3
c-0.8,1.2-1.4,3-1.1,3.2c0.4,0.2,1.7-1,2.5-2.3C17.1,14.2,18.1,11.9,17.8,11.6z"/>
<path class="st21" d="M21.2,8.6c1.3,0,2.3-1,2.3-2.3s-1-2.3-2.3-2.3c-1.3,0-2.3,1-2.3,2.3S20,8.6,21.2,8.6z"/>
<linearGradient id="SVGID_00000090987122570624474440000002432161440392897685_" gradientUnits="userSpaceOnUse" x1="20.068" y1="-87.0655" x2="22.3556" y2="-88.5473" gradientTransform="matrix(1 0 0 -1 0 -81.48)">
<stop offset="0" style="stop-color:#CED1EC"/>
<stop offset="1" style="stop-color:#FFFFFF"/>
</linearGradient>
<path style="fill:url(#SVGID_00000090987122570624474440000002432161440392897685_);" d="M21.2,7.7c0.8,0,1.4-0.6,1.4-1.4
S22,5,21.2,5c-0.8,0-1.4,0.6-1.4,1.4S20.5,7.7,21.2,7.7z"/>
<linearGradient id="SVGID_00000044151119195171880090000016489263670362291109_" gradientUnits="userSpaceOnUse" x1="14.4192" y1="-110.4727" x2="2.0973" y2="-101.7197" gradientTransform="matrix(1 0 0 -1 0 -81.48)">
<stop offset="0" style="stop-color:#B7B7BD"/>
<stop offset="0.68" style="stop-color:#EFEFEF"/>
</linearGradient>
<path style="fill:url(#SVGID_00000044151119195171880090000016489263670362291109_);" d="M2.1,20c-0.3,0-0.5,0-0.8,0
c1,2.8,2.9,5.2,5.3,6.9s5.3,2.6,8.3,2.6c0.1,0,0.3,0,0.4,0c-0.9-2.8-2.7-5.2-5.1-6.9C7.9,20.9,5.1,20,2.1,20z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 9.2 KiB

View File

@@ -0,0 +1,22 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" x="0px" y="0px" width="100%" viewBox="0 0 200 200" enable-background="new 0 0 200 200" xml:space="preserve">
<path fill="#E9EAE8" opacity="1.000000" stroke="none" d=" M1.000001,121.000000 C1.000000,107.979103 1.000000,94.958214 1.330396,81.781845 C2.105629,80.808945 2.781408,80.039177 2.961370,79.167091 C6.970184,59.740398 16.508305,43.142090 30.377947,29.382053 C43.761433,16.104332 59.986267,7.182058 78.573097,2.942371 C79.482437,2.734949 80.195526,1.667158 81.000000,1.000001 C94.020897,1.000000 107.041786,1.000000 120.216652,1.335631 C126.713715,3.778750 133.179947,5.577904 139.376389,8.052591 C156.703827,14.972685 171.012131,25.956200 181.986893,41.089684 C190.099167,52.275986 196.134094,64.470306 199.117294,78.069069 C199.211044,78.496483 200.348892,78.694855 201.000000,79.000000 C201.000000,93.354225 201.000000,107.708458 200.669632,122.218155 C199.894424,123.189087 199.220856,123.956680 199.038727,124.827095 C195.802597,140.292557 188.666824,153.987869 178.511795,165.781891 C164.123367,182.492554 146.476486,194.499832 124.422401,199.082748 C123.840591,199.203659 123.469414,200.338181 123.000000,201.000000 C108.645775,201.000000 94.291542,201.000000 79.781174,200.674042 C78.977226,199.905136 78.385597,199.219894 77.673386,199.054794 C61.298405,195.258774 46.725803,187.667160 34.294682,176.602264 C18.003170,162.101318 7.102591,144.135208 2.914476,122.432388 C2.802733,121.853340 1.661271,121.473000 1.000001,121.000000 M162.957382,65.141830 C157.650208,70.691360 152.343033,76.240898 146.301605,81.755386 C145.732269,82.047028 145.042847,82.218056 144.611099,82.647896 C132.762451,94.444138 120.925987,106.252800 109.147583,118.119026 C108.427895,118.844093 108.202583,120.059868 107.093681,121.126122 C94.730469,133.412537 82.367249,145.698959 69.317253,158.025375 C62.966175,164.528809 56.615101,171.032227 49.973309,177.833344 C51.968117,178.908905 53.966496,179.986389 56.373127,181.619629 C60.931099,183.466125 65.489067,185.312622 70.530418,187.664200 C78.728378,189.429962 86.926338,191.195740 96.041878,193.048172 C135.589554,194.037872 165.346161,177.209564 183.339188,142.206635 C198.044006,113.600494 197.050034,84.312935 180.956207,55.283768 C179.868546,53.520458 178.780869,51.757149 177.222046,49.229988 C172.345459,54.885849 167.967255,59.963684 162.957382,65.141830 M108.466240,57.866222 C108.959000,57.471405 109.451752,57.076591 110.380226,56.193321 C112.081604,54.903320 113.950760,53.783173 115.456879,52.295490 C124.572472,43.291451 133.611420,34.209698 142.658142,25.136135 C143.883804,23.906826 145.009445,22.577780 146.408920,21.045849 C134.481003,14.180294 122.154709,10.443705 109.110474,9.413567 C92.088882,8.069327 75.690033,10.494845 59.889217,19.071775 C52.575058,24.411427 45.260902,29.751078 37.284908,35.186230 C4.630878,65.629463 1.719374,115.370926 21.645718,146.481766 C27.512495,140.245255 33.273243,134.121445 39.623917,127.697594 C47.726917,119.475052 55.829922,111.252510 64.624794,103.006409 C66.467079,100.992920 68.309372,98.979439 70.717163,96.651299 C82.356544,85.062904 94.022423,73.500809 105.590721,61.841888 C106.646294,60.778049 107.076263,59.093464 107.883652,57.776287 C107.883652,57.776287 107.786400,57.842323 108.466240,57.866222 z"/>
<path fill="#ffffff" opacity="1.000000" stroke="none" d=" M80.531342,1.000001 C80.195526,1.667158 79.482437,2.734949 78.573097,2.942371 C59.986267,7.182058 43.761433,16.104332 30.377947,29.382053 C16.508305,43.142090 6.970184,59.740398 2.961370,79.167091 C2.781408,80.039177 2.105629,80.808945 1.330396,81.313187 C1.000000,54.406445 1.000000,27.812887 1.000000,1.000000 C27.353823,1.000000 53.708252,1.000000 80.531342,1.000001 z"/>
<path fill="#ffffff" opacity="1.000000" stroke="none" d=" M201.000000,78.531342 C200.348892,78.694855 199.211044,78.496483 199.117294,78.069069 C196.134094,64.470306 190.099167,52.275986 181.986893,41.089684 C171.012131,25.956200 156.703827,14.972685 139.376389,8.052591 C133.179947,5.577904 126.713715,3.778750 120.685310,1.335631 C147.592621,1.000000 174.185257,1.000000 201.000000,1.000000 C201.000000,26.687134 201.000000,52.374908 201.000000,78.531342 z"/>
<path fill="#ffffff" opacity="1.000000" stroke="none" d=" M1.000001,121.468658 C1.661271,121.473000 2.802733,121.853340 2.914476,122.432388 C7.102591,144.135208 18.003170,162.101318 34.294682,176.602264 C46.725803,187.667160 61.298405,195.258774 77.673386,199.054794 C78.385597,199.219894 78.977226,199.905136 79.312515,200.674042 C53.072189,201.000000 27.144375,201.000000 1.000000,201.000000 C1.000000,174.646164 1.000000,148.291748 1.000001,121.468658 z"/>
<path fill="#ffffff" opacity="1.000000" stroke="none" d=" M123.468658,201.000000 C123.469414,200.338181 123.840591,199.203659 124.422401,199.082748 C146.476486,194.499832 164.123367,182.492554 178.511795,165.781891 C188.666824,153.987869 195.802597,140.292557 199.038727,124.827095 C199.220856,123.956680 199.894424,123.189087 200.669632,122.686813 C201.000000,148.926880 201.000000,174.853760 201.000000,201.000000 C175.312851,201.000000 149.625092,201.000000 123.468658,201.000000 z"/>
<path fill="#90BF02" opacity="1.000000" stroke="none" d=" M70.151657,96.965950 C68.309372,98.979439 66.467079,100.992920 64.276588,102.547241 C63.928383,86.369431 63.928383,70.650787 63.928383,54.871948 C55.257160,54.871948 47.224957,54.871948 39.033997,54.871948 C39.033997,79.516510 39.033997,103.757080 39.033997,127.997643 C33.273243,134.121445 27.512495,140.245255 21.645718,146.481766 C1.719374,115.370926 4.630878,65.629463 37.719608,35.462364 C39.135883,36.852516 39.984581,38.130096 41.121098,39.053391 C47.414471,44.166069 58.368134,43.270470 63.330196,37.318970 C67.946770,31.781837 66.780022,24.056263 60.570244,19.044075 C75.690033,10.494845 92.088882,8.069327 109.110474,9.413567 C122.154709,10.443705 134.481003,14.180294 146.408920,21.045849 C145.009445,22.577780 143.883804,23.906826 142.658142,25.136135 C133.611420,34.209698 124.572472,43.291451 115.456879,52.295490 C113.950760,53.783173 112.081604,54.903320 109.848991,56.507885 C108.807304,57.162407 108.296852,57.502369 107.786400,57.842323 C107.786400,57.842323 107.883652,57.776287 107.499512,57.814442 C103.123413,60.609695 99.131447,63.366795 95.061790,66.177551 C94.532784,62.603703 94.002762,59.023003 93.451675,55.299969 C85.547775,55.299969 77.881607,55.299969 70.151657,55.299969 C70.151657,69.433502 70.151657,83.199722 70.151657,96.965950 z"/>
<path fill="#90BE02" opacity="1.000000" stroke="none" d=" M181.064896,55.965897 C197.050034,84.312935 198.044006,113.600494 183.339188,142.206635 C165.346161,177.209564 135.589554,194.037872 95.558487,192.539490 C95.011642,175.365601 94.948189,158.700363 94.957329,141.656860 C95.029930,139.761459 95.029930,138.244339 95.029930,136.217133 C96.400269,137.088867 97.162216,137.573578 98.053833,138.371689 C101.904762,140.815338 105.425377,143.476242 109.385910,144.973618 C120.098732,149.023911 131.263062,149.217529 142.344849,146.892456 C159.790939,143.232071 172.455902,133.383316 177.684326,116.021088 C182.850937,98.864090 180.467819,82.760155 167.840240,68.827202 C167.809296,68.599007 167.711411,68.148964 168.030243,67.993683 C172.587692,63.880894 176.826294,59.923397 181.064896,55.965897 z"/>
<path fill="#FFFFFF" opacity="1.000000" stroke="none" d=" M39.328957,127.847618 C39.033997,103.757080 39.033997,79.516510 39.033997,54.871948 C47.224957,54.871948 55.257160,54.871948 63.928383,54.871948 C63.928383,70.650787 63.928383,86.369431 63.930653,102.559021 C55.829922,111.252510 47.726917,119.475052 39.328957,127.847618 z"/>
<path fill="#FFFFFF" opacity="1.000000" stroke="none" d=" M94.884727,142.035141 C94.948189,158.700363 95.011642,175.365601 95.099701,192.496170 C86.926338,191.195740 78.728378,189.429962 70.271156,186.931229 C69.954536,179.802521 69.897171,173.406799 69.921326,166.764832 C70.056465,166.354218 70.110100,166.189819 70.436935,165.848373 C78.768333,157.792603 86.826530,149.913879 94.884727,142.035141 z"/>
<path fill="#FFFFFE" opacity="1.000000" stroke="none" d=" M70.434410,96.808624 C70.151657,83.199722 70.151657,69.433502 70.151657,55.299969 C77.881607,55.299969 85.547775,55.299969 93.451675,55.299969 C94.002762,59.023003 94.532784,62.603703 95.061790,66.177551 C99.131447,63.366795 103.123413,60.609695 107.456062,57.774864 C107.076263,59.093464 106.646294,60.778049 105.590721,61.841888 C94.022423,73.500809 82.356544,85.062904 70.434410,96.808624 z"/>
<path fill="#FEFEFD" opacity="1.000000" stroke="none" d=" M60.229729,19.057926 C66.780022,24.056263 67.946770,31.781837 63.330196,37.318970 C58.368134,43.270470 47.414471,44.166069 41.121098,39.053391 C39.984581,38.130096 39.135883,36.852516 38.050526,35.414612 C45.260902,29.751078 52.575058,24.411427 60.229729,19.057926 z"/>
<path fill="#E5E5E4" opacity="1.000000" stroke="none" d=" M94.957329,141.656860 C86.826530,149.913879 78.768333,157.792603 70.368210,165.406586 C70.018867,162.756363 70.011452,160.370865 70.004036,157.985382 C82.367249,145.698959 94.730469,133.412537 107.756348,121.164223 C109.639374,121.798706 110.859749,122.395088 112.115219,123.158279 C112.150314,123.325104 112.155739,123.666389 112.012955,123.992271 C107.221497,128.898193 102.572823,133.478241 97.924149,138.058289 C97.162216,137.573578 96.400269,137.088867 95.029930,136.217133 C95.029930,138.244339 95.029930,139.761459 94.957329,141.656860 z"/>
<path fill="#81AB00" opacity="1.000000" stroke="none" d=" M112.080116,122.991463 C110.859749,122.395088 109.639374,121.798706 108.083130,121.124825 C108.202583,120.059868 108.427895,118.844093 109.147583,118.119026 C120.925987,106.252800 132.762451,94.444138 144.611099,82.647896 C145.042847,82.218056 145.732269,82.047028 146.827606,82.054634 C148.247528,83.549278 149.141449,84.744675 149.880432,86.239487 C138.292679,98.049911 126.875618,109.576714 115.395844,121.040718 C114.517334,121.918007 113.195747,122.351624 112.080116,122.991463 z"/>
<path fill="#90BE03" opacity="1.000000" stroke="none" d=" M69.839813,167.011063 C69.897171,173.406799 69.954536,179.802521 70.029465,186.678680 C65.489067,185.312622 60.931099,183.466125 56.322063,181.041183 C60.793938,175.978851 65.316872,171.494949 69.839813,167.011063 z"/>
<path fill="#82AC01" opacity="1.000000" stroke="none" d=" M69.921326,166.764832 C65.316872,171.494949 60.793938,175.978851 56.117935,180.763306 C53.966496,179.986389 51.968117,178.908905 49.973309,177.833344 C56.615101,171.032227 62.966175,164.528809 69.660645,158.005371 C70.011452,160.370865 70.018867,162.756363 70.095001,165.583633 C70.110100,166.189819 70.056465,166.354218 69.921326,166.764832 z"/>
<path fill="#E3E4E0" opacity="1.000000" stroke="none" d=" M150.035370,85.940079 C149.141449,84.744675 148.247528,83.549278 147.194733,82.072159 C152.343033,76.240898 157.650208,70.691360 163.580933,65.209869 C165.373459,66.234924 166.542435,67.191940 167.711411,68.148964 C167.711411,68.148964 167.809296,68.599007 167.557053,68.983429 C161.830566,74.973953 156.356323,80.580055 150.670471,86.124481 C150.458832,86.062805 150.035370,85.940079 150.035370,85.940079 z"/>
<path fill="#82AC02" opacity="1.000000" stroke="none" d=" M168.030243,67.993683 C166.542435,67.191940 165.373459,66.234924 163.896759,65.159714 C167.967255,59.963684 172.345459,54.885849 177.222046,49.229988 C178.780869,51.757149 179.868546,53.520458 181.010559,55.624832 C176.826294,59.923397 172.587692,63.880894 168.030243,67.993683 z"/>
<path fill="#FFFFFE" opacity="1.000000" stroke="none" d=" M108.126320,57.854275 C108.296852,57.502369 108.807304,57.162407 109.631134,56.752113 C109.451752,57.076591 108.959000,57.471405 108.126320,57.854275 z"/>
<path fill="#FEFEFC" opacity="1.000000" stroke="none" d=" M150.882095,86.186157 C156.356323,80.580055 161.830566,74.973953 167.587982,69.211624 C180.467819,82.760155 182.850937,98.864090 177.684326,116.021088 C172.455902,133.383316 159.790939,143.232071 142.344849,146.892456 C131.263062,149.217529 120.098732,149.023911 109.385910,144.973618 C105.425377,143.476242 101.904762,140.815338 98.053833,138.371689 C102.572823,133.478241 107.221497,128.898193 112.397583,124.067833 C114.508804,124.310890 116.064545,124.938728 117.680908,125.276192 C129.675720,127.780441 140.746811,126.206741 149.044968,116.391853 C156.985992,106.999374 156.451813,96.634232 150.882095,86.186157 z"/>
<path fill="#90BF02" opacity="1.000000" stroke="none" d=" M150.670471,86.124481 C156.451813,96.634232 156.985992,106.999374 149.044968,116.391853 C140.746811,126.206741 129.675720,127.780441 117.680908,125.276192 C116.064545,124.938728 114.508804,124.310890 112.540359,123.741951 C112.155739,123.666389 112.150314,123.325104 112.115219,123.158279 C113.195747,122.351624 114.517334,121.918007 115.395844,121.040718 C126.875618,109.576714 138.292679,98.049911 149.880432,86.239487 C150.035370,85.940079 150.458832,86.062805 150.670471,86.124481 z"/>
</svg>

After

Width:  |  Height:  |  Size: 13 KiB

View File

@@ -0,0 +1 @@
<svg enable-background="new 0 0 512 512" height="512" viewBox="0 0 512 512" width="512" xmlns="http://www.w3.org/2000/svg"><path d="m256.024 29.736-80.851 46.679 53.892 31.112 26.887-15.556 27.017 15.548 53.881-31.119z" fill="#3c77b9"/><path d="m256.036 512 202.079-116.681-.006-124.454-53.912 31.115.019 62.224-148.204 85.569-148.221-85.586-.005-62.221-53.871-31.102v124.442z" fill="#3c77b9"/><path d="m215.607 301.986-53.91 31.117 94.318 54.433 94.288-54.443-53.879-31.118 188.657-108.927-.041-62.184 26.96-15.564-.021-77.759-229.045 132.233-26.929-15.554-26.949 15.554-229.056-132.222v77.789l26.98 15.574-.01 62.153z" fill="#1f2938"/></svg>

After

Width:  |  Height:  |  Size: 643 B

View File

@@ -0,0 +1,8 @@
<svg width="34" height="34" viewBox="0 0 34 34" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M6.625 2.77295H30.3256C31.8396 2.77295 33.0669 3.99814 33.0669 5.5095C33.0669 7.02087 31.8396 8.24604 30.3256 8.24604H6.625V2.77295Z" fill="#B2CADB"/>
<path d="M12.4502 14.5747H30.3256C31.8396 14.5747 33.0669 15.7999 33.0669 17.3113C33.0669 18.8226 31.8396 20.0478 30.3256 20.0478H12.4502V14.5747Z" fill="#B2CADB"/>
<path d="M6.625 26.376H30.3256C31.8396 26.376 33.0669 27.6012 33.0669 29.1125C33.0669 30.6239 31.8396 31.8491 30.3256 31.8491H6.625V26.376Z" fill="#B2CADB"/>
<path d="M4.74009 10.2417C7.35797 10.2417 9.48018 8.12317 9.48018 5.50979C9.48018 2.8964 7.35797 0.777832 4.74009 0.777832C2.12221 0.777832 0 2.8964 0 5.50979C0 8.12317 2.12221 10.2417 4.74009 10.2417Z" fill="#47525B"/>
<path d="M13.4208 22.043C16.0387 22.043 18.1609 19.9244 18.1609 17.3111C18.1609 14.6977 16.0387 12.5791 13.4208 12.5791C10.8029 12.5791 8.68066 14.6977 8.68066 17.3111C8.68066 19.9244 10.8029 22.043 13.4208 22.043Z" fill="#47525B"/>
<path d="M4.74009 33.8448C7.35797 33.8448 9.48018 31.7262 9.48018 29.1128C9.48018 26.4994 7.35797 24.3809 4.74009 24.3809C2.12221 24.3809 0 26.4994 0 29.1128C0 31.7262 2.12221 33.8448 4.74009 33.8448Z" fill="#47525B"/>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@@ -482,7 +482,6 @@
"importFailureDescNew": "تعذر إعراب الملف المنتقى.",
"duplicateCodes": "رموز مكررة",
"noDuplicates": "✨ لا تكرارات",
"youveNoDuplicateCodesThatCanBeCleared": "ليس لديك رموز مكررة يمكن مسحها",
"deselectAll": "ألغِ تحديد الكل",
"selectAll": "حدد الكل",
"deleteDuplicates": "احذف التكرار"

View File

@@ -499,10 +499,11 @@
"appLockOfflineModeWarning": "Избрахте да продължите без резервни копия. Ако забравите паролата на приложението си, ще бъдете заключени от достъп до вашите данни.",
"duplicateCodes": "Повтарящи се кодове",
"noDuplicates": "✨ Няма дубликати",
"youveNoDuplicateCodesThatCanBeCleared": "Нямате повтарящи се кодове, които могат да бъдат изчистени",
"deduplicateCodes": "Премахване на повтарящи се кодове",
"deselectAll": "Демаркиране на всички",
"selectAll": "Избиране на всички",
"deleteDuplicates": "Изтриване на дубликатите",
"plainHTML": "Обикновен HTML"
"plainHTML": "Обикновен HTML",
"tellUsWhatYouThink": "Кажете ни какво мислите",
"freeStorageOfferDescription": "Използвайте промокод „AUTH“, за да получите 10% отстъпка през първата година"
}

View File

@@ -499,7 +499,6 @@
"appLockOfflineModeWarning": "Has triat procedir sense còpies de seguretat. Si oblides el bloqueig de l'aplicació, no podràs accedir a les teves dades.",
"duplicateCodes": "Codis duplicats",
"noDuplicates": "✨ Sense duplicats",
"youveNoDuplicateCodesThatCanBeCleared": "No teniu codis duplicats que es puguin esborrar",
"deduplicateCodes": "Desduplica codis",
"deselectAll": "Desselecciona-ho tot",
"selectAll": "Seleccionar-ho tot",

View File

@@ -495,7 +495,6 @@
"appLockOfflineModeWarning": "Zvolili jste si pokračování bez zálohování. Pokud zapomenete heslo do aplikace, přístup k datům bude uzamčen.",
"duplicateCodes": "Duplikovat kódy",
"noDuplicates": "✨ Žádné duplikáty",
"youveNoDuplicateCodesThatCanBeCleared": "Nemáte žádné duplicitní kódy k odstranění",
"deduplicateCodes": "Deduplikovat kódy",
"deselectAll": "Zrušit výběr všech položek",
"selectAll": "Vybrat vše",

View File

@@ -495,7 +495,6 @@
"authToViewPasskey": "Bitte authentifizieren, um deinen Passkey zu sehen",
"duplicateCodes": "Doppelte Codes",
"noDuplicates": "✨ Keine Duplikate",
"youveNoDuplicateCodesThatCanBeCleared": "Sie haben keine doppelten Codes, die gelöscht werden können",
"deselectAll": "Alle abwählen",
"selectAll": "Alles auswählen",
"deleteDuplicates": "Duplikate löschen",

View File

@@ -499,7 +499,7 @@
"appLockOfflineModeWarning": "You have chosen to proceed without backups. If you forget your applock, you will be locked out from accessing your data.",
"duplicateCodes": "Duplicate codes",
"noDuplicates": "✨ No duplicates",
"youveNoDuplicateCodesThatCanBeCleared": "You've no duplicate codes that can be cleared",
"youveNoDuplicateCodesThatCanBeCleared": "You don't have any duplicate codes that can be cleared",
"deduplicateCodes": "Deduplicate codes",
"deselectAll": "Deselect all",
"selectAll": "Select all",

View File

@@ -499,7 +499,6 @@
"appLockOfflineModeWarning": "Has elegido proceder sin copia de seguridad. Si olvidas el código de desbloqueo de la aplicación, se bloqueará el acceso a sus datos.",
"duplicateCodes": "Duplicar códigos",
"noDuplicates": "✨ No hay duplicados",
"youveNoDuplicateCodesThatCanBeCleared": "No tienes códigos duplicados que se puedan borrar",
"deduplicateCodes": "Desduplicar códigos",
"deselectAll": "Deseleccionar todo",
"selectAll": "Seleccionar todo",

View File

@@ -499,7 +499,6 @@
"appLockOfflineModeWarning": "Vous avez choisi de fonctionner sans sauvegardes. Si vous oubliez votre outil Applock, vous serez bloqué dans l'accès à vos données.",
"duplicateCodes": "Codes dupliqués",
"noDuplicates": "✨ Pas de doublons",
"youveNoDuplicateCodesThatCanBeCleared": "Vous n'avez aucun code en doublon pouvant être supprimé",
"deduplicateCodes": "Codes dédupliqués",
"deselectAll": "Tout désélectionner",
"selectAll": "Tout sélectionner",

View File

@@ -6,12 +6,15 @@
"@counterAppBarTitle": {
"description": "Text shown in the AppBar of the Counter Page"
},
"onBoardingBody": "अपने 2FA कोड का सुरक्षित रूप से बैकअप लें",
"onBoardingGetStarted": "प्रारंभ करें",
"setupFirstAccount": "अपना पहला अकाउंट सेटअप करें",
"importScanQrCode": "एक QR कोड स्कैन करें",
"qrCode": "QR कोड",
"importEnterSetupKey": "",
"importAccountPageTitle": "अकाउंट विवरण डालें",
"secretCanNotBeEmpty": "सीक्रेट खाली नहीं हो सकता है",
"bothIssuerAndAccountCanNotBeEmpty": "दोनों इश्यूअर और अकाउंट ख़ाली नहीं हो सकते है",
"incorrectDetails": "ग़लत विवरण",
"pleaseVerifyDetails": "कृपया विवरण सत्यापित करें और पुनः प्रयास करें",
"codeIssuerHint": "ज़ारीकर्ता",
@@ -32,18 +35,24 @@
},
"codeAccountHint": "अकाउंट (you@domain.com)",
"codeTagHint": "टैग",
"accountKeyType": "की का प्रकार",
"sessionExpired": "सत्र की अवधि समाप्त",
"@sessionExpired": {
"description": "Title of the dialog when the users current session is invalid/expired"
},
"pleaseLoginAgain": "कृपया फिर से लॉगिन करें",
"loggingOut": "लॉग आउट हो रहा है...",
"timeBasedKeyType": "समय आधारित (TOTP)",
"counterBasedKeyType": "काउंटर आधारित (HOTP)",
"saveAction": "सेव करें",
"nextTotpTitle": "अगला",
"deleteCodeTitle": "कोड डिलीट करें?",
"deleteCodeMessage": "क्या आप वाकई इस कोड को हटाना चाहते हैं? इस क्रिया को वापस नहीं किया जा सकता",
"trashCode": "?",
"trashCodeMessage": "क्या आप वाकई {account} के लिए कोड नष्ट करना चाहते हैं?",
"trash": "नष्ट करें",
"viewLogsAction": "लॉग देखें",
"sendLogsDescription": "यह आपकी समस्या को सुलझाने में हमारी सहायता के लिए लॉग भेजेगा। हालाँकि हम यह सुनिश्चित करने के लिए सावधानी बरतते हैं कि संवेदनशील जानकारी लॉग न हो, हम आपको इन लॉग को साझा करने से पहले देखने के लिए प्रोत्साहित करते हैं।",
"preparingLogsTitle": "लॉग तैयार किये जा रहे हैं...",
"emailLogsTitle": "लॉग ईमेल करें",
"emailLogsMessage": "कृपया {email} पर लॉग ईमेल करें",
@@ -57,6 +66,7 @@
"copyEmailAction": "ईमेल कॉपी करें",
"exportLogsAction": "लॉग एक्सपोर्ट करें",
"reportABug": "बग रिपोर्ट करें",
"crashAndErrorReporting": "क्रैश एवं त्रुटि रिपोर्टिंग",
"reportBug": "बग रिपोर्ट करें",
"emailUsMessage": "कृपया हमें {email} पर ईमेल करें",
"@emailUsMessage": {
@@ -69,14 +79,37 @@
"contactSupport": "सपोर्ट टीम से संपर्क करें",
"rateUsOnStore": "हमें {storeName} पर रेट करें",
"blog": "ब्लॉग",
"merchandise": "मर्चेंडाइज़",
"verifyPassword": "पासवर्ड सत्यापित करें",
"pleaseWait": "कृपया प्रतीक्षा करें...",
"generatingEncryptionKeysTitle": "एन्क्रिप्शन कुंजियाँ उत्पन्न हो रही हैं...",
"recreatePassword": "पासवर्ड दोबारा बनाएं",
"recreatePasswordMessage": "वर्तमान डिवाइस आपके पासवर्ड को सत्यापित करने के लिए पर्याप्त शक्तिशाली नहीं है, इसलिए हमें इसे सभी डिवाइसों के साथ काम करने वाले तरीके से एक बार पुन: उत्पन्न करने की आवश्यकता है। \n\nकृपया अपनी पुनर्प्राप्ति कुंजी का उपयोग करके लॉगिन करें और अपना पासवर्ड पुनः बनाएं (यदि आप चाहें तो उसी का दोबारा उपयोग कर सकते हैं)।",
"useRecoveryKey": "रिकवरी कुंजी का उपयोग करें",
"incorrectPasswordTitle": "ग़लत पासवर्ड",
"welcomeBack": "आपका पुनः स्वागत है!",
"emailAlreadyRegistered": "ईमेल पहले से ही पंजीकृत है।",
"emailNotRegistered": "ईमेल पंजीकृत नहीं है।",
"madeWithLoveAtPrefix": " ❤️ से बनाया गया ",
"supportDevs": "हमें समर्थन देने के लिए <bold-green>ente</bold-green> की सदस्यता लें",
"supportDiscount": "पहले साल 10% छूट पाने के लिए कूपन कोड \"AUTH\" का उपयोग करें",
"changeEmail": "ईमेल बदलें",
"changePassword": "पासवर्ड बदलें",
"data": "डेटा",
"importCodes": "कोड आयात करें",
"importTypePlainText": "साधारण टेक्स्ट",
"importTypeEnteEncrypted": "Ente द्वारा एनक्रिप्टेड टेक्स्ट",
"passwordForDecryptingExport": "डीक्रिप्ट करने के लिए पासवर्ड",
"passwordEmptyError": "पासवर्ड रिक्त नहीं हो सकता है",
"importFromApp": "{appName} से कोड इंपोर्ट करें",
"importGoogleAuthGuide": "ट्रांसफर अकाउंट्स\" विकल्प का उपयोग करके अपने खातों को Google प्रमाणक से एक क्यूआर कोड में निर्यात करें। फिर किसी अन्य डिवाइस का उपयोग करके QR कोड को स्कैन करें।\n\nटिप: क्यूआर कोड की तस्वीर लेने के लिए आप अपने लैपटॉप के वेबकैम का उपयोग कर सकते हैं।",
"importSelectJsonFile": "JSON फाइल चुनें",
"importSelectAppExport": "{appName} की निर्यात फ़ाइल का चयन करें",
"importEnteEncGuide": "Ente से निर्यात की गई एन्क्रिप्टेड JSON फ़ाइल का चयन करें",
"importRaivoGuide": "Raivo की सेटिंग्स में \"एक्सपोर्ट ओटीपी टू जिप आर्काइव\" विकल्प का उपयोग करें।\n\nज़िप फ़ाइल निकालें और JSON फ़ाइल आयात करें।",
"importBitwardenGuide": "बिटवर्डन टूल्स के भीतर \"एक्सपोर्ट वॉल्ट\" विकल्प का उपयोग करें और अनएन्क्रिप्टेड JSON फ़ाइल आयात करें।",
"importAegisGuide": "Aegis की सेटिंग्स में \"एक्सपोर्ट द वॉल्ट\" विकल्प का उपयोग करें।\n\nयदि आपकी वॉल्ट एन्क्रिप्टेड है, तो आपको वॉल्ट को डिक्रिप्ट करने के लिए वॉल्ट पासवर्ड दर्ज करना होगा।",
"import2FasGuide": "2FAS में \"सेटिंग्स->बैकअप-एक्सपोर्ट\" विकल्प का उपयोग करें।\n\nयदि आपका बैकअप एन्क्रिप्टेड है, तो आपको बैकअप को डिक्रिप्ट करने के लिए पासवर्ड दर्ज करना होगा",
"importLabel": "इंपोर्ट",
"selectFile": "फ़ाइल का चयन करें",
"emailVerificationToggle": "ईमेल सत्यापन",

View File

@@ -499,7 +499,6 @@
"appLockOfflineModeWarning": "Úgy döntött, hogy biztonsági mentés nélkül folytatja. Ha elfelejti az alkalmazászárat, akkor nem férhet hozzá adataihoz.",
"duplicateCodes": "Ismétlődő kódok",
"noDuplicates": "✨Nincs ismétlődés",
"youveNoDuplicateCodesThatCanBeCleared": "Nincsenek ismétlődő kódjai, amelyeket törölni lehetne",
"deduplicateCodes": "Ismétlődő kódok",
"deselectAll": "Összes kijelölés megszüntetése",
"selectAll": "Összes kijelölése",

View File

@@ -497,7 +497,6 @@
"appLockOfflineModeWarning": "Anda telah memilih untuk mengunci aplikasi tanpa cadangan apa pun. Jika Anda lupa kode Pengunci Apl Anda, Anda tidak akan dapat mengakses data-data Anda.",
"duplicateCodes": "Kode duplikat",
"noDuplicates": "✨ Tak ada duplikat",
"youveNoDuplicateCodesThatCanBeCleared": "Kamu tidak memiliki kode duplikat yang dapat dihapus",
"deduplicateCodes": "Hapus kode duplikat",
"deselectAll": "Batalkan semua pilihan",
"selectAll": "Pilih semua",

View File

@@ -499,7 +499,6 @@
"appLockOfflineModeWarning": "Hai scelto di procedere senza backup. Se dimentichi il tuo codice di blocco dell'app, non potrai più accedere ai tuoi dati.",
"duplicateCodes": "Codici duplicati",
"noDuplicates": "✨ Nessun doppione",
"youveNoDuplicateCodesThatCanBeCleared": "Non ci sono codici duplicati che possono essere cancellati",
"deduplicateCodes": "Codici deduplicati",
"deselectAll": "Deselezionare tutti",
"selectAll": "Seleziona tutti",

View File

@@ -499,7 +499,6 @@
"appLockOfflineModeWarning": "バックアップなしで進むことを選択しました。アプリロックを忘れると、データにアクセスできなくなります。",
"duplicateCodes": "重複コード",
"noDuplicates": "✨ 重複なし",
"youveNoDuplicateCodesThatCanBeCleared": "削除できる重複コードはありません",
"deduplicateCodes": "重複コード",
"deselectAll": "すべての選択を解除",
"selectAll": "すべて選択",

View File

@@ -499,7 +499,6 @@
"appLockOfflineModeWarning": "백업 없이 진행하는 것을 선택하셨습니다. App 잠금 방법을 잊어버리신 경우, 데이터에 접근하실 수 없게 됩니다.",
"duplicateCodes": "중복된 코드",
"noDuplicates": "✨ 중복 없음",
"youveNoDuplicateCodesThatCanBeCleared": "지울 수 있는 중복 코드가 없습니다",
"deduplicateCodes": "중복된 코드 제거",
"deselectAll": "모두 선택 해제",
"selectAll": "모두 선택",

View File

@@ -499,7 +499,6 @@
"appLockOfflineModeWarning": "Pasirinkote tęsti be atsarginių kopijų. Jei pamiršite programos užraktą, jums bus užrakinta prieiga prie duomenų.",
"duplicateCodes": "Dubliuoti kodus",
"noDuplicates": "✨ Dublikatų nėra",
"youveNoDuplicateCodesThatCanBeCleared": "Neturite dubliuotų kodų, kuriuos būtų galima išvalyti.",
"deduplicateCodes": "Atdubliuoti kodus",
"deselectAll": "Naikinti visų pasirinkimą",
"selectAll": "Pasirinkti viską",

View File

@@ -499,7 +499,6 @@
"appLockOfflineModeWarning": "Je hebt ervoor gekozen om verder te gaan zonder backups. Als je jouw applock vergeet, wordt je uitgesloten van toegang tot je gegevens.",
"duplicateCodes": "Dubbele codes",
"noDuplicates": "✨ Geen dubbele",
"youveNoDuplicateCodesThatCanBeCleared": "Je hebt geen dubbele codes die kunnen worden gewist",
"deduplicateCodes": "Dubbele codes",
"deselectAll": "Alles deselecteren",
"selectAll": "Alles selecteren",

View File

@@ -499,7 +499,7 @@
"appLockOfflineModeWarning": "Wybrano kontynuowanie bez kopii zapasowych. Jeśli zapomnisz blokady aplikacji, utracisz dostęp do swoich danych.",
"duplicateCodes": "Zduplikowane kody",
"noDuplicates": "✨ Brak duplikatów",
"youveNoDuplicateCodesThatCanBeCleared": "Nie masz duplikatów kodów, które mogą być wyczyszczone",
"youveNoDuplicateCodesThatCanBeCleared": "Nie masz żadnych duplikatów kodów do usunięcia",
"deduplicateCodes": "Deduplikuj kody",
"deselectAll": "Odznacz wszystko",
"selectAll": "Zaznacz wszystko",

View File

@@ -499,7 +499,7 @@
"appLockOfflineModeWarning": "Você prosseguiu sem cópias de segurança. Caso, se esqueça de seu aplicativo de bloqueio, você não poderá mais acessar seus dados.",
"duplicateCodes": "Duplicar códigos",
"noDuplicates": "✨ Sem duplicados",
"youveNoDuplicateCodesThatCanBeCleared": "Você não possui códigos duplicados para limpar",
"youveNoDuplicateCodesThatCanBeCleared": "Você não possui códigos duplicados que possam ser excluídos",
"deduplicateCodes": "Desduplicar códigos",
"deselectAll": "Deselecionar tudo",
"selectAll": "Selecionar tudo",

View File

@@ -451,7 +451,6 @@
"appLockOfflineModeWarning": "Du har valt att fortsätta utan säkerhetskopior. Om du glömmer ditt applås, kommer du att bli utelåst från att komma åt dina data.",
"duplicateCodes": "Dubblettkoder",
"noDuplicates": "✨ Inga dubbletter",
"youveNoDuplicateCodesThatCanBeCleared": "Du har inga dubblettkoder som kan rensas bort",
"deduplicateCodes": "Deduplicera koder",
"deselectAll": "Avmarkera alla",
"selectAll": "Markera alla",

View File

@@ -499,7 +499,6 @@
"appLockOfflineModeWarning": "Yedekleme olmadan devam etmeyi seçtiniz. Eğer uygulama parolanızı unutursanız, verilerinize erişiminiz engellenir.",
"duplicateCodes": "Yinelenen kodlar",
"noDuplicates": "✨ Yinelenen yok",
"youveNoDuplicateCodesThatCanBeCleared": "Temizlenebilecek yinelenen kodunuz yok",
"deduplicateCodes": "Kodları tekilleştir",
"deselectAll": "Tümünün seçimini kaldır",
"selectAll": "Tümünü seç",

View File

@@ -497,7 +497,6 @@
"appLockOfflineModeWarning": "Ви обрали продовжити без резервних копій. Якщо ви забудете свій пароль, доступ до ваших даних буде заблоковано.",
"duplicateCodes": "Дублікати кодів",
"noDuplicates": "✨ Немає дублікатів",
"youveNoDuplicateCodesThatCanBeCleared": "У вас немає дублікатів кодів, які можна очистити",
"deduplicateCodes": "Дедуплікувати коди",
"deselectAll": "Зняти виділення",
"selectAll": "Вибрати все",

View File

@@ -499,7 +499,6 @@
"appLockOfflineModeWarning": "Bạn đã chọn tiếp tục mà không có bản sao lưu. Nếu bạn quên khóa ứng dụng, bạn sẽ bị khóa khỏi việc truy cập dữ liệu của mình.",
"duplicateCodes": "Mã trùng lặp",
"noDuplicates": "✨ Không có trùng lặp",
"youveNoDuplicateCodesThatCanBeCleared": "Bạn không có mã trùng lặp nào có thể được xóa",
"deduplicateCodes": "Loại bỏ mã trùng lặp",
"deselectAll": "Bỏ chọn tất cả",
"selectAll": "Chọn tất cả",

View File

@@ -499,7 +499,6 @@
"appLockOfflineModeWarning": "您已选择继续而不备份。如果您忘记了应用锁,您将无法访问数据。",
"duplicateCodes": "重复代码",
"noDuplicates": "✨ 没有重复",
"youveNoDuplicateCodesThatCanBeCleared": "您没有可清除的重复代码",
"deduplicateCodes": "删除重复代码",
"deselectAll": "取消全选",
"selectAll": "全选",

View File

@@ -1,11 +1,14 @@
# CHANGELOG
## v1.7.10 (Unreleased)
## v1.7.11 (Unreleased)
- .
## v1.7.10
- Speed up selection for large libraries.
- Support Japanese translations.
- Fix video thumbnail generation on drag and drop.
- .
## v1.7.9

View File

@@ -1,6 +1,6 @@
{
"name": "ente",
"version": "1.7.10-beta",
"version": "1.7.11-beta",
"private": true,
"description": "Desktop client for Ente Photos",
"repository": "github:ente-io/photos-desktop",

View File

@@ -41,6 +41,7 @@ import {
fsRm,
fsRmdir,
fsWriteFile,
fsWriteFileViaBackup,
} from "./services/fs";
import { convertToJPEG, generateImageThumbnail } from "./services/image";
import { logout } from "./services/logout";
@@ -154,6 +155,12 @@ export const attachIPCHandlers = () => {
fsWriteFile(path, contents),
);
ipcMain.handle(
"fsWriteFileViaBackup",
(_, path: string, contents: string) =>
fsWriteFileViaBackup(path, contents),
);
ipcMain.handle("fsIsDir", (_, dirPath: string) => fsIsDir(dirPath));
ipcMain.handle("fsFindFiles", (_, folderPath: string) =>

View File

@@ -24,6 +24,12 @@ export const fsReadTextFile = async (filePath: string) =>
export const fsWriteFile = (path: string, contents: string) =>
fs.writeFile(path, contents, { flush: true });
export const fsWriteFileViaBackup = async (path: string, contents: string) => {
const backupPath = path + ".backup";
await fs.writeFile(backupPath, contents, { flush: true });
return fs.rename(backupPath, path);
};
export const fsIsDir = async (dirPath: string) => {
if (!existsSync(dirPath)) return false;
const stat = await fs.stat(dirPath);

View File

@@ -178,6 +178,9 @@ const fsReadTextFile = (path: string) =>
const fsWriteFile = (path: string, contents: string) =>
ipcRenderer.invoke("fsWriteFile", path, contents);
const fsWriteFileViaBackup = (path: string, contents: string) =>
ipcRenderer.invoke("fsWriteFileViaBackup", path, contents);
const fsIsDir = (dirPath: string) => ipcRenderer.invoke("fsIsDir", dirPath);
// - Conversion
@@ -373,6 +376,7 @@ contextBridge.exposeInMainWorld("electron", {
rm: fsRm,
readTextFile: fsReadTextFile,
writeFile: fsWriteFile,
writeFileViaBackup: fsWriteFileViaBackup,
isDir: fsIsDir,
findFiles: fsFindFiles,
},

View File

@@ -267,6 +267,10 @@ export const sidebar = [
text: "Hosting Ente without Docker",
link: "/self-hosting/guides/standalone-ente",
},
{
text: "Ente via Tailscale (Community)",
link: "/self-hosting/guides/Tailscale.md",
},
{
text: "Configure CLI for Self Hosted Instance",
link: "/self-hosting/guides/selfhost-cli",

View File

@@ -112,3 +112,7 @@ https://github.com/ente-io/ente/tree/main/cli#readme.
Currently, the Ente mobile app allows you to see a map view of all the albums by
clicking on "Your map" under "Locations" on the search screen.
## How to reset my password if I lost it?
On the login page, enter your email and click on Forgot Password. Then, enter your recovery key and create a new password.

View File

@@ -19,9 +19,6 @@ Keep in mind that hidden items will still show up in the "On device" albums
within Ente as long as they are present in your native gallery. But once you
remove them from your device, they'll stop showing up here.
Hiding is currently only supported in the Ente mobile app, and items hidden from
the mobile app will not be visible in the web and desktop app.
For more details, see [features/hide](/photos/features/hide).
### Archive

View File

@@ -58,14 +58,17 @@ in the unlikely event of a server breach, your data remains protected.
## Account Security
### What happens if I forget my password?
### What happens if I forget my password? {#account-recovery}
You can reset your password using your recovery key that was provided to you
during account creation. Please store this key securely, as it's your lifeline
if you forget your password.
If you are logged into Ente on any of your existing devices, you can use that
device to reset your password and use your new password to log in.
If you lose both your password and recovery key, we cannot recover your account
or data due to our end-to-end encrypted architecture.
If you are logged out of Ente on all your devices, you can reset your password
using your recovery key that was provided to you during account creation.
If you are logged out of Ente on all your devices and you have lost both your
password and recovery key, we cannot recover your account or data due to our
end-to-end encrypted architecture.
If you wish to delete your account in such scenarios, please reach out to
support@ente.io and we will help you out.

View File

@@ -59,3 +59,6 @@ then select the "Recover two-factor" option in the error message that gets
shown. This will take you to a place where you can enter your Ente recovery key
and login into your account. Now you can go to the _Passkey_ page to delete the
lost passkey and/or add a new one.
If you have lost access to both your passkey and recovery key, please reach out
to [support@ente.io](mailto:support@ente.io) for help.

View File

@@ -0,0 +1,286 @@
---
title: Self Hosting with Tailscale (Community)
description: Guides for self-hosting Ente Photos and/or Ente Auth with Tailscale
---
# Guide
This guide aims to achieve self-hosting Ente photos or Ente-Auth with tailscale (TSDPROXY) without exposing any port OR if someone is behind CGNAT and cannot open any port on the internet but want to run their own selfhosted service for themselves, friends and family only.
Before getting start keep the following NOTE in mind.
> [!NOTE]
> If someone is behind double or triple CGNAT; must install tailscale system wide by running `curl -fsSL https://tailscale.com/install.sh | sh` in your linux terminal and `sudo tailscale up` otherwise dns resolver will fail and uploading will not work. This is not necessary for those who are not behing CGNAT.
> This guide also work on docker rootless and normal.
> [!CAUTION]
Remember that current docker update 28.0.0 has some bug and cannot connect to external network. Make sure to install docker-ce 27.5.0, docker-ce-rootless-extras 27.5.0 and docker-ce-cli 27.5.0. Hopefully docker 28.1.0 will resolve this issue in next week. Refrence links are [Moby Github Repo Issues 49511](https://github.com/moby/moby/issues/49511) and [Moby Github Repo Issues 49519](https://github.com/moby/moby/issues/49519)
> [!IMPORTANT]
> For Docker rootless, the user must have local permissions for all directories required by the Ente-photos self-hosted server. This can be achieved by running `sudo chown -R 1000:1000 /home/ubuntu/docker/ente`. In the Linux terminal, you can check the UID with `id -u` or simply `id`. The first user typically has UID 1000.
> To allow listening and pinging on any port without root privileges, create a file called `/etc/sysctl.d/99-rootless.conf` with the following content:
> ```
> net.ipv4.ip_unprivileged_port_start=0
> net.ipv4.ping_group_range = 0 2147483647
> ```
> than run `sudo sysctl --system`.
> Create `~/.config/systemd/user/docker.service.d/override.conf` with the following content:
> ```
> [Service]
> Environment="DOCKERD_ROOTLESS_ROOTLESSKIT_NET=slirp4netns"
> Environment="DOCKERD_ROOTLESS_ROOTLESSKIT_PORT_DRIVER=slirp4netns"
> ```
> and Restart the docker daemon
> `systemctl --user restart docker`
> Instead of `--volume /var/run/docker.sock:/var/run/docker.sock` in TSDPROXY compose.yaml, use `--volume $XDG_RUNTIME_DIR/docker.sock:/var/run/docker.sock`
## GETTING START WITH SETUP ##
First of all create a directory `sudo mkdir -p /home/ubuntu/docker/tsdproxy/config` than `cd docker/tsdproxy` and create compose.yaml file by running `sudo nano compose.yaml`. Populate it with the following:
```
services:
tsdproxy:
image: almeidapaulopt/tsdproxy
container_name: tsdproxy
restart: unless-stopped
environment:
TZ: Asia/Singapur # change me
volumes:
- $XDG_RUNTIME_DIR/docker.sock:/var/run/docker.sock # for docker rootless otherwise /var/run/docker.sock:/var/run/docker.sock
- tsdproxy_data:/data
- /home/lee/docker/tsdproxy/config:/config
networks:
- proxy
labels: # giving the labels here will create tsdproxy instance in tailscale admin counsle and GUI can be accessable through tailscale if device is connected
- tsdproxy.enable=true
- tsdproxy.name=tsdproxy
- tsdproxy.ephemeral=false # this is optional but useful
volumes:
tsdproxy_data:
name: tsdproxy_data
networks:
proxy:
name: proxy
```
Now login into your tailscale account admin counsle > settings > keys > Generate authkey. Give any description and must select resuable, because the key get purged if not selected after rebooting machine. It is advisable to create **Tags** in **ACLs settings** `tag: tsdproxy` `tag: ente` `tag: minio` as well. This will create a tag nodes with no key expirory. One is safe to reboot restart docker or machine.
> Copy the generated authkey as it is shown only once.
Make tsdproxy.yaml file in `cd docker/tsdproxy/config` by running `sudo nano tsdproxy.yaml` and pupolate it with the following contant:
```
defaultproxyprovider: default
docker:
local:
host: unix:///var/run/docker.sock
defaultproxyprovider: default
files: {}
tailscale:
providers:
default:
authkey: ""
authkeyfile: "/config/authkey"
controlurl: https://controlplane.tailscale.com
datadir: /data/
http:
hostname: 0.0.0.0
port: 8080
log:
level: info
json: false
proxyaccesslog: true
```
In the same directory run `sudo nano authkey` and paste the authkey just copied earlier from tailscale admin counsel.
> Here Tailscale (TSDPROXY) setup is complet in all respect. Just run `docker compose up -d`. Check your tailscale amdin counsel and you will see tsdproxy node up and running. Make sure that **HTTPS** is enabled in tailscale DNS settings.
> You can visit the TSDPROXY web GUI by https://tsdproxy.xyz.ts.net. (xyz is change value for everyone)
## ente Part ##
First make the following necessary files/directories:
```
sudo mkdir -p /home/ubuntu/docker/ente/custom-logs
sudo mkdir -p /home/ubuntu/docker/ente/data
sudo mkdir -p /home/ubuntu/docker/ente/minio-data
sudo mkdir -p /home/ubuntu/docker/ente/postgres-data
sudo mkdir -p /home/ubuntu/docker/ente/scripts/compose
```
Than give user permission for each of the above directory. `sudo chown -R 1000:1000 /home/ubuntu/docker/ente/custom-logs` etc etc. Make sure not to skip `/home/ubuntu/docker/tsdproxy/config`
`cd docker/ente/script/compose` and run `sudo nano credentials.yaml` than populate it with the following:
```
db:
host: postgres
port: 5432
name: ente_db
user: pguser # change me
password: pgpass #change me
s3:
are_local_buckets: true
b2-eu-cen:
key: test # change me
secret: testtest # change me
endpoint: https://minio.xyz.ts.net
region: eu-central-2
bucket: b2-eu-cen
wasabi-eu-central-2-v3:
key: test # change me
secret: testtest # change me
endpoint: localhost:3200
region: eu-central-2
bucket: wasabi-eu-central-2-v3
compliance: false
scw-eu-fr-v3:
key: test # change me
secret: testtest # change me
endpoint: localhost:3200
region: eu-central-2
bucket: scw-eu-fr-v3
```
In the same directory run `sudo nano minio-provision.sh` and populate it with the following contant:
```
#!/bin/sh
# Script used to prepare the minio instance that runs as part of the development
# Docker compose cluster.
while ! mc config host add h0 http://minio:3200 test testtest #(change me)
do
echo "waiting for minio..."
sleep 0.5
done
cd /data
mc mb -p b2-eu-cen
mc mb -p wasabi-eu-central-2-v3
mc mb -p scw-eu-fr-v3
```
Now `cd docker/ente` and run `sudo nano docker-compose.yaml` and populate it with the following:
```
services:
museum:
image: ghcr.io/ente-io/server
ports:
- 9080:8080 # 9080 because tsdproxy is running on 8080:8080
# - 2112:2112 # Prometheus metrics
depends_on:
postgres:
condition: service_healthy
environment:
# Pass-in the config to connect to the DB and MinIO
ENTE_CREDENTIALS_FILE: /credentials.yaml
# ENTE_CLI_SECRETS_PATH: /cli-data/secret.txt
# ENTE_CLI_CONFIG_PATH: /cli-data/
volumes:
- /home/ubuntu/docker/ente/custom-logs:/var/logs
- /home/ubuntu/docker/ente/museum.yaml:/museum.yaml:ro
- /home/ubuntu/docker/ente/scripts/compose/credentials.yaml:/credentials.yaml:ro
#- /home/ubuntu/docker/ente/cli-data:/cli-data
#- /home/ubuntu/docker/ente/exports/ente-photos:/exports
- /home/ubuntu/docker/ente/data:/data:ro
networks:
- ente
- proxy
labels:
tsdproxy.enable: "true"
tsdproxy.name: "ente"
# # Resolve "localhost:3200" in the museum container to the minio container.
socat:
image: alpine/socat
network_mode: service:museum
depends_on:
- museum
command: "TCP-LISTEN:3200,fork,reuseaddr TCP:minio:3200"
postgres:
image: postgres:15
ports:
- 5432:5432
environment:
POSTGRES_USER: pguser # change me
POSTGRES_PASSWORD: pgpass # change me
POSTGRES_DB: ente_db
# Wait for postgres to be accept connections before starting museum.
healthcheck:
test:
[
"CMD",
"pg_isready",
"-q",
"-d",
"ente_db",
"-U",
"pguser" # change it accouding to the POSTGRES_USER: pguser
]
start_period: 40s
start_interval: 1s
volumes:
- /home/ubuntu/docker/ente/postgres-data:/var/lib/postgresql/data
networks:
- ente
minio:
image: minio/minio
# Use different ports than the minio defaults to avoid conflicting
# with the ports used by Prometheus.
ports:
- 3200:3200 # API
- 3201:3201 # Console
environment:
MINIO_ROOT_USER: test # change me
MINIO_ROOT_PASSWORD: testtest # change me
MINIO_SERVER_URL: https://minio.xyz.ts.net
command: server /data --address ":3200" --console-address ":3201"
volumes:
- /home/ubuntu/docker/ente/minio-data:/data
networks:
- ente
- proxy
labels:
tsdproxy.enable: "true"
tsdproxy.name: "minio"
minio-provision:
image: minio/mc
depends_on:
- minio
volumes:
- /home/ubuntu/docker/ente/scripts/compose/minio-provision.sh:/provision.sh:ro
- /home/ubuntu/docker/ente/minio-data:/data
networks:
- ente
entrypoint: sh /provision.sh
networks:
ente:
name: ente
proxy:
external: true
```
> Thats it. Run `docker compose up -d`. Wait till every container become healthy. Open web browser. Make sure tailscale is installed on the machine. Visit https://ente.xyz.ts.net/ping. It will pong. All good if you see it. First time it will take minute or two to get SSL cert. Downnload Desktop or mobile app. Tap 7 time on the screen, which will prompt developer mode. Add https://ente.xyz.ts.net. Add new user. When asked for OTP. Just go to linux terminal and run `docker logs ente-museum-1`. Search for userauth. Feed the six digit and Done.
> For getting 100TB (limitless) storage. Just Install ente-cli for windows. Extract it and add folder. Name it **export**. Add config.yaml file along and populate it with the following:
```
endpoint:
api: "https://ente.xyz.ts.net"
accounts: "http://localhost:3001"
log: false
```
Right-Click in the directory where you have extracted ente-cli. Select `open in terminal`. Run
```
.\ente.exe account bob # change bob to yours
```
Hit Enter twice.
For export directory, just write export. As already created **export** folder earlier.
**Write email. The one which is already used befor when creating ente account in ente desktop app.**
Type the same Password used before for the account.Run
```
.\ente.ext account list
```
This will list all account details. Copy Acount ID.
> Navigate to museum.yaml file. `cd docker/ente`. Run `sudo nano museum.yaml` and add the account ID under Admins. Delete any previous entries.
Restart ente-museum-1 container from linux terminal. Run `docker restart ente-museum-1`. All well, now you will have 100TB storage. Repeat if for any other accounts you want to give unlimited storage access.

View File

@@ -54,20 +54,30 @@ The same principle applies if you're deploying to your custom domain.
## Replication
If you're wondering why there are 3 buckets on MinIO UI - that's because our
production instance uses these to perform [replication](https://ente.io/reliability/).
In a self hosted Ente Instance replication is turned off by default.
When replication is turned off, only the first bucket (`b2-eu-cen`) is used,
and you can ignore the other two. Use the `s3.hot_storage.primary` option
if you'd like to set one of the other predefined buckets as the primary bucket.
> [!IMPORTANT]
> As of now, Replication works only if all the 3 storage type
> needs are fulfilled (1 Hot, 1 Cold and 1 Glacier Storage).
>
> [Reference](https://github.com/ente-io/ente/discussions/3167#discussioncomment-10585970)
If you're wondering why there are 3 buckets on MinIO UI - that's because our
production instance uses these to perform [replication](https://ente.io/reliability/).
If you're also wondering about why the bucket names are specifically what they are,
it's because that is exactly what we are using on our production instance.
We use `b2-eu-cen` as hot, `wasabi-eu-central-2-v3` as cold (also the secondary hot)
and `scw-eu-fr-v3` as glacier storage. As of now, all of this is hardcoded.
Hence, the same hardcoded configuration is applied when you self host Ente.
In a Self hosted Ente Instance replication is turned off by default.
When replication is turned off, only the first bucket (`b2-eu-cen`) is used,
and the other two are ignored. Only the names here are specifically fixed, but
in the configuration body you can put any other keys. It does not have any relation
with `b2`, `wasabi` or even `scaleway`.
Use the `s3.hot_storage.primary` option if you'd like to set one of the other
predefined buckets as the primary bucket.
## SSL Configuration
> [!NOTE]

View File

@@ -0,0 +1,37 @@
# Grafana
Grafana data is stored in a persistent Docker volume named `grafana-storage`. To
create a backup of this, use
```sh
docker run --rm \
--mount source=grafana-storage,target=/g \
-v $(pwd):/backup \
busybox \
tar -cvzf /backup/grafana-storage.backup.tar.gz /g
```
## Installation
Restore the volume:
```sh
docker run --rm \
--mount source=grafana-storage,target=/g \
-v $(pwd):/backup \
busybox \
tar -xvzf /backup/grafana-storage.backup.tar.gz -C /
```
Add the Grafana nginx config
```sh
sudo mv grafana.nginx.conf /root/nginx/conf.d
```
and reload the nginx service before starting Grafana for the first time.
```sh
sudo systemctl reload nginx
sudo systemctl start grafana
```

View File

@@ -0,0 +1,24 @@
# Needed for web sockets
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
ssl_certificate /etc/ssl/certs/cert.pem;
ssl_certificate_key /etc/ssl/private/key.pem;
server_name grafana.ente.io;
location / {
proxy_pass http://host.docker.internal:3001;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
}
}

View File

@@ -0,0 +1,14 @@
[Unit]
Documentation=https://grafana.com/docs/grafana/latest/setup-grafana/configure-docker/
Requires=docker.service
After=docker.service
[Service]
ExecStartPre=docker pull grafana/grafana-oss
ExecStartPre=-docker stop grafana
ExecStartPre=-docker rm grafana
ExecStart=docker run --name grafana \
-p 3001:3001 \
-v grafana-storage:/var/lib/grafana \
-e "GF_SERVER_HTTP_PORT=3001" \
grafana/grafana-oss

View File

@@ -4,7 +4,7 @@
# This file should be version controlled and should not be manually edited.
version:
revision: 0b8abb4724aa590dd0f429683339b1e045a1594d
channel: stable
revision: "2663184aa79047d0a33a14a3b607954f8fdd8730"
channel: "stable"
project_type: app

View File

@@ -5,3 +5,9 @@ gradle-wrapper.jar
/gradlew.bat
/local.properties
GeneratedPluginRegistrant.java
# Remember to never publicly share your keystore.
# See https://flutter.dev/to/reference-keystore
key.properties
**/*.keystore
**/*.jks

View File

@@ -28,13 +28,23 @@ if (keystorePropertiesFile.exists()) {
}
android {
compileSdkVersion 34
ndkVersion "26.0.10792818"
namespace = "io.ente.photos"
compileSdk = 35
ndkVersion = flutter.ndkVersion
compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = JavaVersion.VERSION_1_8
}
sourceSets {
main.java.srcDirs += 'src/main/kotlin'
}
lintOptions {
disable 'InvalidPackage'
warningsAsErrors false
@@ -42,11 +52,11 @@ android {
}
defaultConfig {
applicationId "io.ente.photos"
minSdkVersion 26
targetSdkVersion 34
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
applicationId = "io.ente.photos"
minSdk = 26
targetSdk = flutter.targetSdkVersion
versionCode = flutter.versionCode
versionName = flutter.versionName
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
multiDexEnabled true
consumerProguardFiles 'proguard-rules.pro'
@@ -115,14 +125,14 @@ rootProject.allprojects {
if (details.requested.group == 'com.github.bumptech.glide'
&& details.requested.name.contains('glide')) {
details.useVersion "4.15.1"
}
}
}
}
}
}
flutter {
source '../..'
source = "../.."
}
dependencies {

View File

@@ -4,3 +4,4 @@
-keepattributes LineNumberTable,SourceFile
-keep class org.chromium.net.** { *; }
-keep class org.xmlpull.v1.** { *; }

View File

@@ -1,7 +1,9 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="io.ente.photos">
<application android:name="${applicationName}"
<application
tools:replace="android:label"
android:name="${applicationName}"
android:label="@string/app_name"
android:icon="@mipmap/launcher_icon"
android:usesCleartextTraffic="true"

View File

@@ -1,5 +1,5 @@
ext {
appCompatVersion = '1.1.0' // for background_fetch
appCompatVersion = '1.4.2' // for background_fetch
}
allprojects {
@@ -7,23 +7,20 @@ allprojects {
google()
jcenter()
mavenCentral()
// mavenLocal() // for FDroid
maven {
url "${project(':background_fetch').projectDir}/libs"
}
}
ext {
compileSdkVersion = 34
targetSdkVersion = 34
appCompatVersion = "1.7.0"
mavenLocal() // for FDroid
// maven {
// url "${project(':background_fetch').projectDir}/libs"
// }
}
}
rootProject.buildDir = '../build'
rootProject.buildDir = "../build"
subprojects {
project.buildDir = "${rootProject.buildDir}/${project.name}"
project.evaluationDependsOn(':app')
}
subprojects {
project.evaluationDependsOn(":app")
}
tasks.register("clean", Delete) {

View File

@@ -1,3 +1,3 @@
org.gradle.jvmargs=-Xmx4608m
android.useAndroidX=true
android.enableJetifier=true
android.enableJetifier=true

View File

@@ -1,7 +1,5 @@
#Fri Jun 23 08:50:38 CEST 2017
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-all.zip
distributionSha256Sum=a8da5b02437a60819cad23e10fc7e9cf32bcb57029d9cb277e26eeff76ce014b
distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-all.zip

View File

@@ -18,8 +18,8 @@ pluginManagement {
plugins {
id "dev.flutter.flutter-plugin-loader" version "1.0.0"
id "com.android.application" version "7.1.2" apply false
id "org.jetbrains.kotlin.android" version "1.8.21" apply false
id "com.android.application" version "8.1.0" apply false
id "org.jetbrains.kotlin.android" version "1.8.22" apply false
}
include ":app"
include ":app"

View File

@@ -1,6 +1,6 @@
ente, fotoğraflarınızı ve videolarınızı yedeklemek ve paylaşmak için basit bir uygulamadır.
ente, fotoğraflarınızı ve videolarınızı yedekleyip paylaşmanızı sağlayan kullanimi kolay bir uygulamadır.
Google Fotoğraflar'a gizlilik dostu bir alternatif arıyorsanız doğru yere geldiniz. Ente ile uçtan uca şifrelenmiş olarak (e2ee) saklanırlar. Bu, onları yalnızca sizin görebileceğiniz anlamına gelir.
Anılarınızı saklamak için gizlilik dostu bir alternatif arıyorsanız, doğru yere geldiniz. Ente ile uçtan uca şifrelenmiş olarak (e2ee) saklanırlar. Bu, onları yalnızca sizin görebileceğiniz anlamına gelir.
Android, iOS, web ve masaüstünde açık kaynaklı uygulamalarımız var ve fotoğraflarınız bunların tümü arasında uçtan uca şifrelenmiş (e2ee) şekilde sorunsuz bir şekilde senkronize edilecek.

View File

@@ -1 +1 @@
ente fotoğraf uygulaması
Ente Fotoğraflar

View File

@@ -1 +1 @@
Şifrelenmiş depolama sistemi
Ente - şifrelenmiş depolama sistemi

View File

@@ -5,7 +5,6 @@ PODS:
- Flutter
- connectivity_plus (0.0.1):
- Flutter
- FlutterMacOS
- cupertino_http (0.0.1):
- Flutter
- FlutterMacOS
@@ -22,31 +21,31 @@ PODS:
- Flutter
- file_saver (0.0.1):
- Flutter
- Firebase/CoreOnly (11.2.0):
- FirebaseCore (= 11.2.0)
- Firebase/Messaging (11.2.0):
- Firebase/CoreOnly (11.8.0):
- FirebaseCore (~> 11.8.0)
- Firebase/Messaging (11.8.0):
- Firebase/CoreOnly
- FirebaseMessaging (~> 11.2.0)
- firebase_core (3.6.0):
- Firebase/CoreOnly (= 11.2.0)
- FirebaseMessaging (~> 11.8.0)
- firebase_core (3.12.0):
- Firebase/CoreOnly (= 11.8.0)
- Flutter
- firebase_messaging (15.1.3):
- Firebase/Messaging (= 11.2.0)
- firebase_messaging (15.2.3):
- Firebase/Messaging (= 11.8.0)
- firebase_core
- Flutter
- FirebaseCore (11.2.0):
- FirebaseCoreInternal (~> 11.0)
- FirebaseCore (11.8.1):
- FirebaseCoreInternal (~> 11.8.0)
- GoogleUtilities/Environment (~> 8.0)
- GoogleUtilities/Logger (~> 8.0)
- FirebaseCoreInternal (11.6.0):
- FirebaseCoreInternal (11.8.0):
- "GoogleUtilities/NSData+zlib (~> 8.0)"
- FirebaseInstallations (11.4.0):
- FirebaseCore (~> 11.0)
- FirebaseInstallations (11.8.0):
- FirebaseCore (~> 11.8.0)
- GoogleUtilities/Environment (~> 8.0)
- GoogleUtilities/UserDefaults (~> 8.0)
- PromisesObjC (~> 2.4)
- FirebaseMessaging (11.2.0):
- FirebaseCore (~> 11.0)
- FirebaseMessaging (11.8.0):
- FirebaseCore (~> 11.8.0)
- FirebaseInstallations (~> 11.0)
- GoogleDataTransport (~> 10.0)
- GoogleUtilities/AppDelegateSwizzler (~> 8.0)
@@ -57,7 +56,7 @@ PODS:
- Flutter (1.0.0)
- flutter_email_sender (0.0.1):
- Flutter
- flutter_image_compress (1.0.0):
- flutter_image_compress_common (1.0.0):
- Flutter
- Mantle
- SDWebImage
@@ -71,7 +70,7 @@ PODS:
- OrderedSet (~> 6.0.3)
- flutter_local_notifications (0.0.1):
- Flutter
- flutter_native_splash (0.0.1):
- flutter_native_splash (2.4.3):
- Flutter
- flutter_secure_storage (6.0.0):
- Flutter
@@ -79,7 +78,6 @@ PODS:
- Flutter
- fluttertoast (0.0.2):
- Flutter
- Toast
- GoogleDataTransport (10.1.0):
- nanopb (~> 3.30910.0)
- PromisesObjC (~> 2.4)
@@ -118,17 +116,17 @@ PODS:
- FlutterMacOS
- integration_test (0.0.1):
- Flutter
- libwebp (1.3.2):
- libwebp/demux (= 1.3.2)
- libwebp/mux (= 1.3.2)
- libwebp/sharpyuv (= 1.3.2)
- libwebp/webp (= 1.3.2)
- libwebp/demux (1.3.2):
- libwebp (1.5.0):
- libwebp/demux (= 1.5.0)
- libwebp/mux (= 1.5.0)
- libwebp/sharpyuv (= 1.5.0)
- libwebp/webp (= 1.5.0)
- libwebp/demux (1.5.0):
- libwebp/webp
- libwebp/mux (1.3.2):
- libwebp/mux (1.5.0):
- libwebp/demux
- libwebp/sharpyuv (1.3.2)
- libwebp/webp (1.3.2):
- libwebp/sharpyuv (1.5.0)
- libwebp/webp (1.5.0):
- libwebp/sharpyuv
- local_auth_darwin (0.0.1):
- Flutter
@@ -185,19 +183,19 @@ PODS:
- privacy_screen (0.0.1):
- Flutter
- PromisesObjC (2.4.0)
- receive_sharing_intent (1.8.0):
- receive_sharing_intent (1.8.1):
- Flutter
- SDWebImage (5.20.0):
- SDWebImage/Core (= 5.20.0)
- SDWebImage/Core (5.20.0)
- SDWebImage (5.21.0):
- SDWebImage/Core (= 5.21.0)
- SDWebImage/Core (5.21.0)
- SDWebImageWebPCoder (0.14.6):
- libwebp (~> 1.0)
- SDWebImage/Core (~> 5.17)
- Sentry/HybridSDK (8.36.0)
- sentry_flutter (8.9.0):
- Sentry/HybridSDK (8.44.0)
- sentry_flutter (8.13.2):
- Flutter
- FlutterMacOS
- Sentry/HybridSDK (= 8.36.0)
- Sentry/HybridSDK (= 8.44.0)
- share_plus (0.0.1):
- Flutter
- shared_preferences_foundation (0.0.1):
@@ -206,28 +204,28 @@ PODS:
- sqflite_darwin (0.0.4):
- Flutter
- FlutterMacOS
- "sqlite3 (3.46.1+1)":
- "sqlite3/common (= 3.46.1+1)"
- "sqlite3/common (3.46.1+1)"
- "sqlite3/dbstatvtab (3.46.1+1)":
- sqlite3 (3.49.1):
- sqlite3/common (= 3.49.1)
- sqlite3/common (3.49.1)
- sqlite3/dbstatvtab (3.49.1):
- sqlite3/common
- "sqlite3/fts5 (3.46.1+1)":
- sqlite3/fts5 (3.49.1):
- sqlite3/common
- "sqlite3/perf-threadsafe (3.46.1+1)":
- sqlite3/perf-threadsafe (3.49.1):
- sqlite3/common
- "sqlite3/rtree (3.46.1+1)":
- sqlite3/rtree (3.49.1):
- sqlite3/common
- sqlite3_flutter_libs (0.0.1):
- Flutter
- "sqlite3 (~> 3.46.0+1)"
- FlutterMacOS
- sqlite3 (~> 3.49.0)
- sqlite3/dbstatvtab
- sqlite3/fts5
- sqlite3/perf-threadsafe
- sqlite3/rtree
- system_info_plus (0.0.1):
- Flutter
- Toast (4.1.1)
- ua_client_hints (1.4.0):
- ua_client_hints (1.4.1):
- Flutter
- uni_links (0.0.1):
- Flutter
@@ -247,7 +245,7 @@ PODS:
DEPENDENCIES:
- background_fetch (from `.symlinks/plugins/background_fetch/ios`)
- battery_info (from `.symlinks/plugins/battery_info/ios`)
- connectivity_plus (from `.symlinks/plugins/connectivity_plus/darwin`)
- connectivity_plus (from `.symlinks/plugins/connectivity_plus/ios`)
- cupertino_http (from `.symlinks/plugins/cupertino_http/darwin`)
- dart_ui_isolate (from `.symlinks/plugins/dart_ui_isolate/ios`)
- device_info_plus (from `.symlinks/plugins/device_info_plus/ios`)
@@ -257,7 +255,7 @@ DEPENDENCIES:
- firebase_messaging (from `.symlinks/plugins/firebase_messaging/ios`)
- Flutter (from `Flutter`)
- flutter_email_sender (from `.symlinks/plugins/flutter_email_sender/ios`)
- flutter_image_compress (from `.symlinks/plugins/flutter_image_compress/ios`)
- flutter_image_compress_common (from `.symlinks/plugins/flutter_image_compress_common/ios`)
- flutter_inappwebview_ios (from `.symlinks/plugins/flutter_inappwebview_ios/ios`)
- flutter_local_notifications (from `.symlinks/plugins/flutter_local_notifications/ios`)
- flutter_native_splash (from `.symlinks/plugins/flutter_native_splash/ios`)
@@ -292,7 +290,7 @@ DEPENDENCIES:
- share_plus (from `.symlinks/plugins/share_plus/ios`)
- shared_preferences_foundation (from `.symlinks/plugins/shared_preferences_foundation/darwin`)
- sqflite_darwin (from `.symlinks/plugins/sqflite_darwin/darwin`)
- sqlite3_flutter_libs (from `.symlinks/plugins/sqlite3_flutter_libs/ios`)
- sqlite3_flutter_libs (from `.symlinks/plugins/sqlite3_flutter_libs/darwin`)
- system_info_plus (from `.symlinks/plugins/system_info_plus/ios`)
- ua_client_hints (from `.symlinks/plugins/ua_client_hints/ios`)
- uni_links (from `.symlinks/plugins/uni_links/ios`)
@@ -323,7 +321,6 @@ SPEC REPOS:
- SDWebImageWebPCoder
- Sentry
- sqlite3
- Toast
EXTERNAL SOURCES:
background_fetch:
@@ -331,7 +328,7 @@ EXTERNAL SOURCES:
battery_info:
:path: ".symlinks/plugins/battery_info/ios"
connectivity_plus:
:path: ".symlinks/plugins/connectivity_plus/darwin"
:path: ".symlinks/plugins/connectivity_plus/ios"
cupertino_http:
:path: ".symlinks/plugins/cupertino_http/darwin"
dart_ui_isolate:
@@ -350,8 +347,8 @@ EXTERNAL SOURCES:
:path: Flutter
flutter_email_sender:
:path: ".symlinks/plugins/flutter_email_sender/ios"
flutter_image_compress:
:path: ".symlinks/plugins/flutter_image_compress/ios"
flutter_image_compress_common:
:path: ".symlinks/plugins/flutter_image_compress_common/ios"
flutter_inappwebview_ios:
:path: ".symlinks/plugins/flutter_inappwebview_ios/ios"
flutter_local_notifications:
@@ -421,7 +418,7 @@ EXTERNAL SOURCES:
sqflite_darwin:
:path: ".symlinks/plugins/sqflite_darwin/darwin"
sqlite3_flutter_libs:
:path: ".symlinks/plugins/sqlite3_flutter_libs/ios"
:path: ".symlinks/plugins/sqlite3_flutter_libs/darwin"
system_info_plus:
:path: ".symlinks/plugins/system_info_plus/ios"
ua_client_hints:
@@ -440,82 +437,81 @@ EXTERNAL SOURCES:
:path: ".symlinks/plugins/wakelock_plus/ios"
SPEC CHECKSUMS:
background_fetch: 39f11371c0dce04b001c4bfd5e782bcccb0a85e2
battery_info: 09f5c9ee65394f2291c8c6227bedff345b8a730c
connectivity_plus: ddd7f30999e1faaef5967c23d5b6d503d10434db
cupertino_http: 947a233f40cfea55167a49f2facc18434ea117ba
dart_ui_isolate: d5bcda83ca4b04f129d70eb90110b7a567aece14
device_info_plus: c6fb39579d0f423935b0c9ce7ee2f44b71b9fce6
background_fetch: 94b36ee293e82972852dba8ede1fbcd3bd3d9d57
battery_info: 83f3aae7be2fccefab1d2bf06b8aa96f11c8bcdd
connectivity_plus: cb623214f4e1f6ef8fe7403d580fdad517d2f7dd
cupertino_http: 94ac07f5ff090b8effa6c5e2c47871d48ab7c86c
dart_ui_isolate: 46f6714abe6891313267153ef6f9748d8ecfcab1
device_info_plus: 335f3ce08d2e174b9fdc3db3db0f4e3b1f66bd89
ffmpeg-kit-ios-full-gpl: 80adc341962e55ef709e36baa8ed9a70cf4ea62b
ffmpeg_kit_flutter_full_gpl: 8d15c14c0c3aba616fac04fe44b3d27d02e3c330
file_saver: 503e386464dbe118f630e17b4c2e1190fa0cf808
Firebase: 98e6bf5278170668a7983e12971a66b2cd57fc8c
firebase_core: 2bedc3136ec7c7b8561c6123ed0239387b53f2af
firebase_messaging: 15d114e1a41fc31e4fbabcd48d765a19eec94a38
FirebaseCore: a282032ae9295c795714ded2ec9c522fc237f8da
FirebaseCoreInternal: d98ab91e2d80a56d7b246856a8885443b302c0c2
FirebaseInstallations: 6ef4a1c7eb2a61ee1f74727d7f6ce2e72acf1414
FirebaseMessaging: c9ec7b90c399c7a6100297e9d16f8a27fc7f7152
ffmpeg_kit_flutter_full_gpl: ce18b888487c05c46ed252cd2e7956812f2e3bd1
file_saver: 6cdbcddd690cb02b0c1a0c225b37cd805c2bf8b6
Firebase: d80354ed7f6df5f9aca55e9eb47cc4b634735eaf
firebase_core: 6cbed78b4f298ed103a9fd034e6dbc846320480f
firebase_messaging: 5e0adf2eb18b0ee59aa0c109314c091a0497ecac
FirebaseCore: 99fe0c4b44a39f37d99e6404e02009d2db5d718d
FirebaseCoreInternal: df24ce5af28864660ecbd13596fc8dd3a8c34629
FirebaseInstallations: 6c963bd2a86aca0481eef4f48f5a4df783ae5917
FirebaseMessaging: 487b634ccdf6f7b7ff180fdcb2a9935490f764e8
Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7
flutter_email_sender: 02d7443217d8c41483223627972bfdc09f74276b
flutter_image_compress: 5a5e9aee05b6553048b8df1c3bc456d0afaac433
flutter_inappwebview_ios: 6f63631e2c62a7c350263b13fa5427aedefe81d4
flutter_local_notifications: 4cde75091f6327eb8517fa068a0a5950212d2086
flutter_native_splash: edf599c81f74d093a4daf8e17bd7a018854bc778
flutter_secure_storage: d33dac7ae2ea08509be337e775f6b59f1ff45f12
flutter_sodium: c84426b4de738514b5b66cfdeb8a06634e72fe0b
fluttertoast: e9a18c7be5413da53898f660530c56f35edfba9c
flutter_email_sender: aa1e9772696691d02cd91fea829856c11efb8e58
flutter_image_compress_common: 1697a328fd72bfb335507c6bca1a65fa5ad87df1
flutter_inappwebview_ios: b89ba3482b96fb25e00c967aae065701b66e9b99
flutter_local_notifications: ad39620c743ea4c15127860f4b5641649a988100
flutter_native_splash: 6cad9122ea0fad137d23137dd14b937f3e90b145
flutter_secure_storage: 1ed9476fba7e7a782b22888f956cce43e2c62f13
flutter_sodium: 7e4621538491834eba53bd524547854bcbbd6987
fluttertoast: 2c67e14dce98bbdb200df9e1acf610d7a6264ea1
GoogleDataTransport: aae35b7ea0c09004c3797d53c8c41f66f219d6a7
GoogleUtilities: 26a3abef001b6533cf678d3eb38fd3f614b7872d
home_widget: 0434835a4c9a75704264feff6be17ea40e0f0d57
image_editor_common: d6f6644ae4a6de80481e89fe6d0a8c49e30b4b43
image_picker_ios: c560581cceedb403a6ff17f2f816d7fea1421fc1
in_app_purchase_storekit: 8c3b0b3eb1b0f04efbff401c3de6266d4258d433
integration_test: 252f60fa39af5e17c3aa9899d35d908a0721b573
libwebp: 1786c9f4ff8a279e4dac1e8f385004d5fc253009
local_auth_darwin: 66e40372f1c29f383a314c738c7446e2f7fdadc3
local_auth_ios: 5046a18c018dd973247a0564496c8898dbb5adf9
home_widget: f169fc41fd807b4d46ab6615dc44d62adbf9f64f
image_editor_common: 3de87e7c4804f4ae24c8f8a998362b98c105cac1
image_picker_ios: 7fe1ff8e34c1790d6fff70a32484959f563a928a
in_app_purchase_storekit: d1a48cb0f8b29dbf5f85f782f5dd79b21b90a5e6
integration_test: 4a889634ef21a45d28d50d622cf412dc6d9f586e
libwebp: 02b23773aedb6ff1fd38cec7a77b81414c6842a8
local_auth_darwin: 553ce4f9b16d3fdfeafce9cf042e7c9f77c1c391
local_auth_ios: f7a1841beef3151d140a967c2e46f30637cdf451
Mantle: c5aa8794a29a022dfbbfc9799af95f477a69b62d
maps_launcher: 2e5b6a2d664ec6c27f82ffa81b74228d770ab203
media_extension: 6d30dc1431ebaa63f43c397c37917b1a0a597a4c
media_kit_libs_ios_video: a5fe24bc7875ccd6378a0978c13185e1344651c1
media_kit_video: 5da63f157170e5bf303bf85453b7ef6971218a2e
motion_sensors: 03f55b7c637a7e365a0b5f9697a449f9059d5d91
motionphoto: d4a432b8c8f22fb3ad966258597c0103c9c5ff16
move_to_background: 39a5b79b26d577b0372cbe8a8c55e7aa9fcd3a2d
maps_launcher: edf829809ba9e894d70e569bab11c16352dedb45
media_extension: 671e2567880d96c95c65c9a82ccceed8f2e309fd
media_kit_libs_ios_video: 5a18affdb97d1f5d466dc79988b13eff6c5e2854
media_kit_video: 1746e198cb697d1ffb734b1d05ec429d1fcd1474
motion_sensors: 741e702c17467b9569a92165dda8d4d88c6167f1
motionphoto: 23e2aeb5c6380112f69468d71f970fa7438e5ed1
move_to_background: 7e3467dd2a1d1013e98c9c1cb93fd53cd7ef9d84
nanopb: fad817b59e0457d11a5dfbde799381cd727c1275
native_video_player: d12af78a1a4a8cf09775a5177d5b392def6fd23c
objective_c: 77e887b5ba1827970907e10e832eec1683f3431d
onnxruntime: e7c2ae44385191eaad5ae64c935a72debaddc997
native_video_player: e363dd14f6a498ad8a8f7e6486a0db046ad19f13
objective_c: 89e720c30d716b036faf9c9684022048eee1eee2
onnxruntime: f9b296392c96c42882be020a59dbeac6310d81b2
onnxruntime-c: a909204639a1f035f575127ac406f781ac797c9c
onnxruntime-objc: b6fab0f1787aa6f7190c2013f03037df4718bd8b
open_mail_app: 794172f6a22cd16319d3ddaf45e945b2f74952b0
open_mail_app: 7314a609e88eed22d53671279e189af7a0ab0f11
OrderedSet: e539b66b644ff081c73a262d24ad552a69be3a94
package_info_plus: c0502532a26c7662a62a356cebe2692ec5fe4ec4
path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46
permission_handler_apple: 9878588469a2b0d0fc1e048d9f43605f92e6cec2
photo_manager: ff695c7a1dd5bc379974953a2b5c0a293f7c4c8a
privacy_screen: 1a131c052ceb3c3659934b003b0d397c2381a24e
package_info_plus: af8e2ca6888548050f16fa2f1938db7b5a5df499
path_provider_foundation: 080d55be775b7414fd5a5ef3ac137b97b097e564
permission_handler_apple: 4ed2196e43d0651e8ff7ca3483a069d469701f2d
photo_manager: d2fbcc0f2d82458700ee6256a15018210a81d413
privacy_screen: 3159a541f5d3a31bea916cfd4e58f9dc722b3fd4
PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47
receive_sharing_intent: df9c334dc9feadcbd3266e5cb49c8443405e1c9f
SDWebImage: 73c6079366fea25fa4bb9640d5fb58f0893facd8
receive_sharing_intent: 222384f00ffe7e952bbfabaa9e3967cb87e5fe00
SDWebImage: f84b0feeb08d2d11e6a9b843cb06d75ebf5b8868
SDWebImageWebPCoder: e38c0a70396191361d60c092933e22c20d5b1380
Sentry: f8374b5415bc38dfb5645941b3ae31230fbeae57
sentry_flutter: 0eb93e5279eb41e2392212afe1ccd2fecb4f8cbe
share_plus: 8875f4f2500512ea181eef553c3e27dba5135aad
shared_preferences_foundation: fcdcbc04712aee1108ac7fda236f363274528f78
sqflite_darwin: a553b1fd6fe66f53bbb0fe5b4f5bab93f08d7a13
sqlite3: 0bb0e6389d824e40296f531b858a2a0b71c0d2fb
sqlite3_flutter_libs: c00457ebd31e59fa6bb830380ddba24d44fbcd3b
system_info_plus: 5393c8da281d899950d751713575fbf91c7709aa
Toast: 1f5ea13423a1e6674c4abdac5be53587ae481c4e
ua_client_hints: 46bb5817a868f9e397c0ba7e3f2f5c5d90c35156
uni_links: d97da20c7701486ba192624d99bffaaffcfc298a
url_launcher_ios: 5334b05cef931de560670eeae103fd3e431ac3fe
video_player_avfoundation: 7c6c11d8470e1675df7397027218274b6d2360b3
video_thumbnail: c4e2a3c539e247d4de13cd545344fd2d26ffafd1
volume_controller: 2e3de73d6e7e81a0067310d17fb70f2f86d71ac7
wakelock_plus: 373cfe59b235a6dd5837d0fb88791d2f13a90d56
Sentry: 0f9bc9adfc0b960e7f3bb5ec67e9a3d8193f3bdb
sentry_flutter: f4a0466dc8855998ffd59378ec33507c7dc32d7b
share_plus: 50da8cb520a8f0f65671c6c6a99b3617ed10a58a
shared_preferences_foundation: 9e1978ff2562383bd5676f64ec4e9aa8fa06a6f7
sqflite_darwin: 20b2a3a3b70e43edae938624ce550a3cbf66a3d0
sqlite3: fc1400008a9b3525f5914ed715a5d1af0b8f4983
sqlite3_flutter_libs: 3c323550ef3b928bc0aa9513c841e45a7d242832
system_info_plus: 555ce7047fbbf29154726db942ae785c29211740
ua_client_hints: 92fe0d139619b73ec9fcb46cc7e079a26178f586
uni_links: f191d616c4db8750f74c72c988e79a83dd297fac
url_launcher_ios: 694010445543906933d732453a59da0a173ae33d
video_player_avfoundation: 2cef49524dd1f16c5300b9cd6efd9611ce03639b
video_thumbnail: 584ccfa55d8fd2f3d5507218b0a18d84c839c620
volume_controller: 3657a1f65bedb98fa41ff7dc5793537919f31b12
wakelock_plus: 04623e3f525556020ebd4034310f20fe7fda8b49
PODFILE CHECKSUM: 20e086e6008977d43a3d40260f3f9bffcac748dd

View File

@@ -288,7 +288,6 @@
"${BUILT_PRODUCTS_DIR}/SDWebImage/SDWebImage.framework",
"${BUILT_PRODUCTS_DIR}/SDWebImageWebPCoder/SDWebImageWebPCoder.framework",
"${BUILT_PRODUCTS_DIR}/Sentry/Sentry.framework",
"${BUILT_PRODUCTS_DIR}/Toast/Toast.framework",
"${BUILT_PRODUCTS_DIR}/background_fetch/background_fetch.framework",
"${BUILT_PRODUCTS_DIR}/battery_info/battery_info.framework",
"${BUILT_PRODUCTS_DIR}/connectivity_plus/connectivity_plus.framework",
@@ -297,7 +296,7 @@
"${BUILT_PRODUCTS_DIR}/device_info_plus/device_info_plus.framework",
"${BUILT_PRODUCTS_DIR}/file_saver/file_saver.framework",
"${BUILT_PRODUCTS_DIR}/flutter_email_sender/flutter_email_sender.framework",
"${BUILT_PRODUCTS_DIR}/flutter_image_compress/flutter_image_compress.framework",
"${BUILT_PRODUCTS_DIR}/flutter_image_compress_common/flutter_image_compress_common.framework",
"${BUILT_PRODUCTS_DIR}/flutter_inappwebview_ios/flutter_inappwebview_ios.framework",
"${BUILT_PRODUCTS_DIR}/flutter_local_notifications/flutter_local_notifications.framework",
"${BUILT_PRODUCTS_DIR}/flutter_native_splash/flutter_native_splash.framework",
@@ -383,7 +382,6 @@
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImage.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImageWebPCoder.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Sentry.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Toast.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/background_fetch.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/battery_info.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/connectivity_plus.framework",
@@ -392,7 +390,7 @@
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/device_info_plus.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/file_saver.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/flutter_email_sender.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/flutter_image_compress.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/flutter_image_compress_common.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/flutter_inappwebview_ios.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/flutter_local_notifications.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/flutter_native_splash.framework",

View File

@@ -16,7 +16,7 @@ import "package:photos/l10n/l10n.dart";
import "package:photos/service_locator.dart";
import 'package:photos/services/app_lifecycle_service.dart';
import "package:photos/services/home_widget_service.dart";
import 'package:photos/services/sync_service.dart';
import 'package:photos/services/sync/sync_service.dart';
import 'package:photos/ui/tabs/home_widget.dart';
import "package:photos/ui/viewer/actions/file_viewer.dart";
import "package:photos/utils/intent_util.dart";

View File

@@ -13,7 +13,7 @@ import 'package:photos/core/error-reporting/super_logging.dart';
import 'package:photos/core/event_bus.dart';
import 'package:photos/db/collections_db.dart';
import 'package:photos/db/files_db.dart';
import 'package:photos/db/memories_db.dart';
import "package:photos/db/memories_db.dart";
import "package:photos/db/ml/db.dart";
import 'package:photos/db/trash_db.dart';
import 'package:photos/db/upload_locks_db.dart';
@@ -30,7 +30,7 @@ import 'package:photos/services/ignored_files_service.dart';
import "package:photos/services/machine_learning/face_ml/person/person_service.dart";
import 'package:photos/services/memories_service.dart';
import 'package:photos/services/search_service.dart';
import 'package:photos/services/sync_service.dart';
import 'package:photos/services/sync/sync_service.dart';
import 'package:photos/utils/file_uploader.dart';
import "package:photos/utils/lock_screen_settings.dart";
import 'package:photos/utils/validator_util.dart';

View File

@@ -113,3 +113,5 @@ final tempDirCleanUpInterval = kDebugMode
const kFilterChipHeight = 32.0;
const kMaxAppbarFilters = 14;
const kLivePhotoHashSeparator = ':';

View File

@@ -58,6 +58,8 @@ bool isHandledSyncError(Object errObj) {
class LockAlreadyAcquiredError extends Error {}
class LockFreedError extends Error{}
class UnauthorizedError extends Error {}
class RequestCancelledError extends Error {}

View File

@@ -1,4 +1,4 @@
import 'package:photos/utils/date_time_util.dart';
import 'package:photos/utils/standalone/date_time.dart';
class YearsData {
final List<YearData> yearsData = [];

View File

@@ -14,7 +14,6 @@ class FileUpdationDB {
static const tableName = 're_upload_tracker';
static const columnLocalID = 'local_id';
static const columnReason = 'reason';
static const livePhotoCheck = 'livePhotoCheck';
static const androidMissingGPS = 'androidMissingGPS';
static const modificationTimeUpdated = 'modificationTimeUpdated';

View File

@@ -6,6 +6,7 @@ import 'package:flutter/foundation.dart';
import 'package:logging/logging.dart';
import 'package:path/path.dart';
import 'package:path_provider/path_provider.dart';
import "package:photos/db/enum/conflict_algo.dart";
import "package:photos/extensions/stop_watch.dart";
import 'package:photos/models/backup_status.dart';
import 'package:photos/models/file/file.dart';
@@ -15,8 +16,6 @@ import 'package:photos/models/location/location.dart';
import "package:photos/models/metadata/common_keys.dart";
import "package:photos/services/filter/db_filters.dart";
import 'package:photos/utils/file_uploader_util.dart';
import "package:photos/utils/primitive_wrapper.dart";
import "package:photos/utils/sqlite_util.dart";
import 'package:sqlite_async/sqlite_async.dart';
class FilesDB {
@@ -468,72 +467,61 @@ class FilesDB {
final startTime = DateTime.now();
final db = await sqliteAsyncDB;
///Strong batch counter in an object so that it gets passed by reference
///Primitives are passed by value
final genIdNotNullbatchCounter = PrimitiveWrapper(0);
final genIdNullbatchCounter = PrimitiveWrapper(0);
final genIdNullParameterSets = <List<Object?>>[];
final genIdNotNullParameterSets = <List<Object?>>[];
final withIdParams = <List<Object?>>[];
const withIdColumnNames = _columnNames;
final withoutIdParams = <List<Object?>>[];
final withoutIdColumns =
_columnNames.where((column) => column != columnGeneratedID).toList();
final genIdNullcolumnNames =
_columnNames.where((element) => element != columnGeneratedID);
// Sort files into appropriate parameter sets
for (final file in files) {
if (file.generatedID == null) {
withoutIdParams.add(_getParameterSetForFile(file));
for (EnteFile file in files) {
final fileGenIdIsNull = file.generatedID == null;
if (!fileGenIdIsNull) {
await _batchAndInsertFile(
file,
conflictAlgorithm,
db,
genIdNotNullParameterSets,
genIdNotNullbatchCounter,
isGenIdNull: fileGenIdIsNull,
);
if (withoutIdParams.length == 400) {
await _insertBatch(
conflictAlgorithm,
withoutIdColumns,
db,
withoutIdParams,
);
withoutIdParams.clear();
}
} else {
await _batchAndInsertFile(
file,
conflictAlgorithm,
db,
genIdNullParameterSets,
genIdNullbatchCounter,
isGenIdNull: fileGenIdIsNull,
);
withIdParams.add(_getParameterSetForFile(file));
if (withIdParams.length == 400) {
await _insertBatch(
conflictAlgorithm,
withIdColumnNames,
db,
withIdParams,
);
withIdParams.clear();
}
}
}
if (genIdNotNullbatchCounter.value > 0) {
// Insert any remaining files
if (withIdParams.isNotEmpty) {
await _insertBatch(
conflictAlgorithm,
_columnNames,
withIdColumnNames,
db,
genIdNotNullParameterSets,
withIdParams,
);
genIdNotNullbatchCounter.value = 0;
genIdNotNullParameterSets.clear();
}
if (genIdNullbatchCounter.value > 0) {
await _insertBatch(
conflictAlgorithm,
genIdNullcolumnNames,
db,
genIdNullParameterSets,
);
genIdNullbatchCounter.value = 0;
genIdNullParameterSets.clear();
}
final endTime = DateTime.now();
final duration = Duration(
microseconds:
endTime.microsecondsSinceEpoch - startTime.microsecondsSinceEpoch,
);
if (withoutIdParams.isNotEmpty) {
await _insertBatch(
conflictAlgorithm,
withoutIdColumns,
db,
withoutIdParams,
);
}
final duration = DateTime.now().difference(startTime);
_logger.info(
"Batch insert of " +
files.length.toString() +
" took " +
duration.inMilliseconds.toString() +
"ms.",
"Batch insert of ${files.length} took ${duration.inMilliseconds}ms.",
);
}
@@ -1272,15 +1260,26 @@ class FilesDB {
);
}
Future<List<EnteFile>> getLocalFiles(List<String> localIDs) async {
Future<List<EnteFile>> getLocalFiles(
List<String> localIDs, {
bool dedupeByLocalID = false,
}) async {
late final String query;
final inParam = localIDs.map((id) => "'$id'").join(',');
final db = await instance.sqliteAsyncDB;
final results = await db.getAll(
'''
if (dedupeByLocalID) {
query = '''
SELECT * FROM $filesTable
WHERE $columnLocalID IN ($inParam)
GROUP BY $columnLocalID;
''';
} else {
query = '''
SELECT * FROM $filesTable
WHERE $columnLocalID IN ($inParam);
''',
);
''';
}
final results = await db.getAll(query);
return convertToFiles(results);
}
@@ -1943,28 +1942,6 @@ class FilesDB {
return values;
}
Future<void> _batchAndInsertFile(
EnteFile file,
SqliteAsyncConflictAlgorithm conflictAlgorithm,
SqliteDatabase db,
List<List<Object?>> parameterSets,
PrimitiveWrapper batchCounter, {
required bool isGenIdNull,
}) async {
parameterSets.add(_getParameterSetForFile(file));
batchCounter.value++;
final columnNames = isGenIdNull
? _columnNames.where((column) => column != columnGeneratedID)
: _columnNames;
if (batchCounter.value == 400) {
_logger.info("Inserting batch with genIdNull: $isGenIdNull");
await _insertBatch(conflictAlgorithm, columnNames, db, parameterSets);
batchCounter.value = 0;
parameterSets.clear();
}
}
Future<void> _insertBatch(
SqliteAsyncConflictAlgorithm conflictAlgorithm,
Iterable<String> columnNames,

View File

@@ -3,7 +3,7 @@ import 'dart:io';
import 'package:path/path.dart';
import 'package:path_provider/path_provider.dart';
import 'package:photos/models/memory.dart';
import 'package:photos/models/memories/memory.dart';
import 'package:sqflite/sqflite.dart';
class MemoriesDB {

View File

@@ -108,9 +108,6 @@ abstract class IMLDataDB<T> {
Future<List<EmbeddingVector>> getAllClipVectors();
Future<Map<int, int>> clipIndexedFileWithVersion();
Future<Map<int, EmbeddingVector>> getClipVectorsForFileIDs(
Iterable<int> fileIDs,
);
Future<int> getClipIndexedFileCount({int minimumMlVersion});
Future<void> putClip(List<ClipEmbedding> embeddings);
Future<void> deleteClipEmbeddings(List<T> fileIDs);

View File

@@ -1196,22 +1196,6 @@ class MLDataDB extends IMLDataDB<int> {
return _convertToVectors(results);
}
@override
Future<Map<int, EmbeddingVector>> getClipVectorsForFileIDs(
Iterable<int> fileIDs,
) async {
final db = await MLDataDB.instance.asyncDB;
final results = await db.getAll(
'SELECT * FROM $clipTable WHERE $fileIDColumn IN (${fileIDs.join(", ")})',
);
final Map<int, EmbeddingVector> embeddings = {};
for (final result in results) {
final embedding = _getVectorFromRow(result);
embeddings[embedding.fileID] = embedding;
}
return embeddings;
}
// Get indexed FileIDs
@override
Future<Map<int, int>> clipIndexedFileWithVersion() async {

View File

@@ -101,20 +101,6 @@ class TrashDB {
await db.delete(tableName);
}
// getRecentlyTrashedFile returns the file which was trashed recently
Future<TrashFile?> getRecentlyTrashedFile() async {
final db = await instance.database;
final rows = await db.query(
tableName,
orderBy: '$columnTrashDeleteBy DESC',
limit: 1,
);
if (rows.isEmpty) {
return null;
}
return _getTrashFromRow(rows[0]);
}
Future<int> count() async {
final db = await instance.database;
final count = Sqflite.firstIntValue(
@@ -156,15 +142,6 @@ class TrashDB {
);
}
Future<int> insert(TrashFile trash) async {
final db = await instance.database;
return db.insert(
tableName,
_getRowForTrash(trash),
conflictAlgorithm: ConflictAlgorithm.replace,
);
}
Future<int> delete(List<int> uploadedFileIDs) async {
final db = await instance.database;
return db.delete(

View File

@@ -45,6 +45,14 @@ class UploadLocksDB {
columnPartStatus: "part_status",
);
static const _streamUploadErrorTable = (
table: "stream_upload_error",
columnUploadedFileID: "uploaded_file_id",
columnErrorMessage: "error_message",
columnLastAttemptedAt: "last_attempted_at",
columnCreatedAt: "created_at",
);
static final initializationScript = [
..._createUploadLocksTable(),
];
@@ -118,6 +126,14 @@ class UploadLocksDB {
PRIMARY KEY (${_partsTable.columnObjectKey}, ${_partsTable.columnPartNumber})
)
''',
'''
CREATE TABLE IF NOT EXISTS ${_streamUploadErrorTable.table} (
${_streamUploadErrorTable.columnUploadedFileID} INTEGER PRIMARY KEY,
${_streamUploadErrorTable.columnErrorMessage} TEXT NOT NULL,
${_streamUploadErrorTable.columnLastAttemptedAt} INTEGER NOT NULL,
${_streamUploadErrorTable.columnCreatedAt} INTEGER DEFAULT CURRENT_TIMESTAMP NOT NULL
)
''',
];
}
@@ -291,6 +307,68 @@ class UploadLocksDB {
);
}
Future<void> appendStreamEntry(
int uploadedFileID,
String errorMessage,
) async {
final db = await UploadLocksDB.instance.database;
await db.insert(
_streamUploadErrorTable.table,
{
_streamUploadErrorTable.columnUploadedFileID: uploadedFileID,
_streamUploadErrorTable.columnErrorMessage: errorMessage,
_streamUploadErrorTable.columnLastAttemptedAt:
DateTime.now().millisecondsSinceEpoch,
},
conflictAlgorithm: ConflictAlgorithm.replace,
);
}
Future<void> updateStreamStatus(
int uploadedFileID,
String errorMessage,
) async {
final db = await instance.database;
await db.update(
_streamUploadErrorTable.table,
{
_streamUploadErrorTable.columnErrorMessage: errorMessage,
_streamUploadErrorTable.columnLastAttemptedAt:
DateTime.now().millisecondsSinceEpoch,
},
where: '${_streamUploadErrorTable.columnUploadedFileID} = ?',
whereArgs: [uploadedFileID],
);
}
Future<int> deleteStreamUploadErrorEntry(int uploadedFileID) async {
final db = await instance.database;
return await db.delete(
_streamUploadErrorTable.table,
where: '${_streamUploadErrorTable.columnUploadedFileID} = ?',
whereArgs: [uploadedFileID],
);
}
Future<Map<int, String>> getStreamUploadError() {
return instance.database.then((db) async {
final rows = await db.query(
_streamUploadErrorTable.table,
columns: [
_streamUploadErrorTable.columnUploadedFileID,
_streamUploadErrorTable.columnErrorMessage,
],
);
final map = <int, String>{};
for (final row in rows) {
map[row[_streamUploadErrorTable.columnUploadedFileID] as int] =
row[_streamUploadErrorTable.columnErrorMessage] as String;
}
return map;
});
}
Future<void> createTrackUploadsEntry(
String localId,
String fileHash,

View File

@@ -23,9 +23,9 @@ import "package:photos/ui/components/models/button_type.dart";
import "package:photos/ui/components/notification_widget.dart";
import 'package:photos/ui/components/title_bar_title_widget.dart';
import 'package:photos/ui/components/title_bar_widget.dart';
import "package:photos/ui/notification/toast.dart";
import "package:photos/ui/sharing/user_avator_widget.dart";
import "package:photos/utils/navigation_util.dart";
import "package:photos/utils/toast_util.dart";
class EmergencyPage extends StatefulWidget {
const EmergencyPage({

View File

@@ -13,7 +13,7 @@ import "package:photos/generated/l10n.dart";
import "package:photos/models/api/user/key_attributes.dart";
import "package:photos/models/api/user/set_keys_request.dart";
import "package:photos/models/api/user/srp.dart";
import "package:photos/services/user_service.dart";
import "package:photos/services/account/user_service.dart";
import "package:photos/ui/common/user_dialogs.dart";
import "package:photos/utils/dialog_util.dart";
import "package:photos/utils/email_util.dart";

View File

@@ -17,9 +17,9 @@ import "package:photos/ui/components/menu_item_widget/menu_item_widget.dart";
import "package:photos/ui/components/menu_section_title.dart";
import "package:photos/ui/components/models/button_type.dart";
import "package:photos/ui/components/title_bar_title_widget.dart";
import "package:photos/utils/date_time_util.dart";
import "package:photos/utils/dialog_util.dart";
import "package:photos/utils/navigation_util.dart";
import "package:photos/utils/standalone/date_time.dart";
// OtherContactPage is used to start recovery process for other user's account
// Based on the state of the contact & recovery session, it will show

View File

@@ -11,8 +11,8 @@ import "package:photos/generated/l10n.dart";
import "package:photos/models/api/user/key_attributes.dart";
import "package:photos/models/api/user/set_keys_request.dart";
import 'package:photos/ui/common/dynamic_fab.dart';
import 'package:photos/ui/notification/toast.dart';
import 'package:photos/utils/dialog_util.dart';
import 'package:photos/utils/toast_util.dart';
class RecoverOthersAccount extends StatefulWidget {
final String recoveryKey;

View File

@@ -6,8 +6,8 @@ import "package:photos/emergency/emergency_service.dart";
import "package:photos/emergency/model.dart";
import "package:photos/generated/l10n.dart";
import "package:photos/models/api/collection/user.dart";
import "package:photos/services/account/user_service.dart";
import 'package:photos/services/collections_service.dart';
import "package:photos/services/user_service.dart";
import 'package:photos/theme/ente_theme.dart';
import 'package:photos/ui/actions/collection/collection_sharing_actions.dart';
import 'package:photos/ui/components/buttons/button_widget.dart';

View File

@@ -0,0 +1,7 @@
import "package:photos/events/event.dart";
class SeekbarTriggeredEvent extends Event {
final int position;
SeekbarTriggeredEvent({required this.position});
}

View File

@@ -0,0 +1,10 @@
import "package:photos/events/event.dart";
class StreamSwitchedEvent extends Event {
final bool selectedPreview;
final PlayerType type;
StreamSwitchedEvent(this.selectedPreview, this.type);
}
enum PlayerType { mediaKit, nativeVideoPlayer }

View File

@@ -45,8 +45,6 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage("ما من مفتاح استرداد؟"),
"noRecoveryKeyNoDecryption": MessageLookupByLibrary.simpleMessage(
"لا يمكن فك تشفير بياناتك دون كلمة المرور أو مفتاح الاسترداد بسبب طبيعة بروتوكول التشفير الخاص بنا من النهاية إلى النهاية"),
"orPickFromYourContacts":
MessageLookupByLibrary.simpleMessage("or pick from your contacts"),
"recoverButton": MessageLookupByLibrary.simpleMessage("استرداد"),
"recoverySuccessful":
MessageLookupByLibrary.simpleMessage("نجح الاسترداد!"),

View File

@@ -175,8 +175,6 @@ class MessageLookup extends MessageLookupByLibrary {
"notifications": MessageLookupByLibrary.simpleMessage("Апавяшчэнні"),
"ok": MessageLookupByLibrary.simpleMessage("Добра"),
"oops": MessageLookupByLibrary.simpleMessage("Вой"),
"orPickFromYourContacts":
MessageLookupByLibrary.simpleMessage("or pick from your contacts"),
"password": MessageLookupByLibrary.simpleMessage("Пароль"),
"passwordChangedSuccessfully":
MessageLookupByLibrary.simpleMessage("Пароль паспяхова зменены"),

View File

@@ -21,8 +21,5 @@ class MessageLookup extends MessageLookupByLibrary {
String get localeName => 'bg';
final messages = _notInlinedMessages(_notInlinedMessages);
static Map<String, Function> _notInlinedMessages(_) => <String, Function>{
"orPickFromYourContacts":
MessageLookupByLibrary.simpleMessage("or pick from your contacts")
};
static Map<String, Function> _notInlinedMessages(_) => <String, Function>{};
}

View File

@@ -21,8 +21,5 @@ class MessageLookup extends MessageLookupByLibrary {
String get localeName => 'ca';
final messages = _notInlinedMessages(_notInlinedMessages);
static Map<String, Function> _notInlinedMessages(_) => <String, Function>{
"orPickFromYourContacts":
MessageLookupByLibrary.simpleMessage("or pick from your contacts")
};
static Map<String, Function> _notInlinedMessages(_) => <String, Function>{};
}

View File

@@ -26,8 +26,6 @@ class MessageLookup extends MessageLookupByLibrary {
"Jaký je váš hlavní důvod, proč mažete svůj účet?"),
"checkInboxAndSpamFolder": MessageLookupByLibrary.simpleMessage(
"Zkontrolujte prosím svou doručenou poštu (a spam) pro dokončení ověření"),
"incorrectRecoveryKeyBody": MessageLookupByLibrary.simpleMessage(""),
"orPickFromYourContacts":
MessageLookupByLibrary.simpleMessage("or pick from your contacts")
"incorrectRecoveryKeyBody": MessageLookupByLibrary.simpleMessage("")
};
}

View File

@@ -241,8 +241,6 @@ class MessageLookup extends MessageLookupByLibrary {
"oops": MessageLookupByLibrary.simpleMessage("Ups"),
"oopsSomethingWentWrong":
MessageLookupByLibrary.simpleMessage("Ups, noget gik galt"),
"orPickFromYourContacts":
MessageLookupByLibrary.simpleMessage("or pick from your contacts"),
"password": MessageLookupByLibrary.simpleMessage("Adgangskode"),
"passwordChangedSuccessfully": MessageLookupByLibrary.simpleMessage(
"Adgangskoden er blevet ændret"),

File diff suppressed because it is too large Load Diff

View File

@@ -23,8 +23,6 @@ class MessageLookup extends MessageLookupByLibrary {
final messages = _notInlinedMessages(_notInlinedMessages);
static Map<String, Function> _notInlinedMessages(_) => <String, Function>{
"enterYourEmailAddress": MessageLookupByLibrary.simpleMessage(
"Εισάγετε την διεύθυνση ηλ. ταχυδρομείου σας"),
"orPickFromYourContacts":
MessageLookupByLibrary.simpleMessage("or pick from your contacts")
"Εισάγετε την διεύθυνση ηλ. ταχυδρομείου σας")
};
}

View File

@@ -20,258 +20,258 @@ typedef String MessageIfAbsent(String messageStr, List<dynamic> args);
class MessageLookup extends MessageLookupByLibrary {
String get localeName => 'en';
static String m89(title) => "${title} (Me)";
static String m9(count) =>
"${Intl.plural(count, zero: 'Add collaborator', one: 'Add collaborator', other: 'Add collaborators')}";
static String m9(title) => "${title} (Me)";
static String m10(count) =>
"${Intl.plural(count, zero: 'Add collaborator', one: 'Add collaborator', other: 'Add collaborators')}";
static String m11(count) =>
"${Intl.plural(count, one: 'Add item', other: 'Add items')}";
static String m11(storageAmount, endDate) =>
static String m12(storageAmount, endDate) =>
"Your ${storageAmount} add-on is valid till ${endDate}";
static String m12(count) =>
static String m13(count) =>
"${Intl.plural(count, zero: 'Add viewer', one: 'Add viewer', other: 'Add viewers')}";
static String m13(emailOrName) => "Added by ${emailOrName}";
static String m14(emailOrName) => "Added by ${emailOrName}";
static String m14(albumName) => "Added successfully to ${albumName}";
static String m15(albumName) => "Added successfully to ${albumName}";
static String m15(count) =>
static String m16(count) =>
"${Intl.plural(count, zero: 'No Participants', one: '1 Participant', other: '${count} Participants')}";
static String m16(versionValue) => "Version: ${versionValue}";
static String m17(versionValue) => "Version: ${versionValue}";
static String m17(freeAmount, storageUnit) =>
static String m18(freeAmount, storageUnit) =>
"${freeAmount} ${storageUnit} free";
static String m18(paymentProvider) =>
static String m19(paymentProvider) =>
"Please cancel your existing subscription from ${paymentProvider} first";
static String m3(user) =>
"${user} will not be able to add more photos to this album\n\nThey will still be able to remove existing photos added by them";
static String m19(isFamilyMember, storageAmountInGb) =>
static String m20(isFamilyMember, storageAmountInGb) =>
"${Intl.select(isFamilyMember, {
'true': 'Your family has claimed ${storageAmountInGb} GB so far',
'false': 'You have claimed ${storageAmountInGb} GB so far',
'other': 'You have claimed ${storageAmountInGb} GB so far!',
})}";
static String m20(albumName) => "Collaborative link created for ${albumName}";
static String m21(albumName) => "Collaborative link created for ${albumName}";
static String m21(count) =>
static String m22(count) =>
"${Intl.plural(count, zero: 'Added 0 collaborator', one: 'Added 1 collaborator', other: 'Added ${count} collaborators')}";
static String m22(email, numOfDays) =>
static String m23(email, numOfDays) =>
"You are about to add ${email} as a trusted contact. They will be able to recover your account if you are absent for ${numOfDays} days.";
static String m23(familyAdminEmail) =>
static String m24(familyAdminEmail) =>
"Please contact <green>${familyAdminEmail}</green> to manage your subscription";
static String m24(provider) =>
static String m25(provider) =>
"Please contact us at support@ente.io to manage your ${provider} subscription.";
static String m25(endpoint) => "Connected to ${endpoint}";
static String m26(endpoint) => "Connected to ${endpoint}";
static String m26(count) =>
static String m27(count) =>
"${Intl.plural(count, one: 'Delete ${count} item', other: 'Delete ${count} items')}";
static String m27(currentlyDeleting, totalCount) =>
static String m28(currentlyDeleting, totalCount) =>
"Deleting ${currentlyDeleting} / ${totalCount}";
static String m28(albumName) =>
static String m29(albumName) =>
"This will remove the public link for accessing \"${albumName}\".";
static String m29(supportEmail) =>
static String m30(supportEmail) =>
"Please drop an email to ${supportEmail} from your registered email address";
static String m30(count, storageSaved) =>
static String m31(count, storageSaved) =>
"You have cleaned up ${Intl.plural(count, one: '${count} duplicate file', other: '${count} duplicate files')}, saving (${storageSaved}!)";
static String m31(count, formattedSize) =>
static String m32(count, formattedSize) =>
"${count} files, ${formattedSize} each";
static String m32(newEmail) => "Email changed to ${newEmail}";
static String m33(newEmail) => "Email changed to ${newEmail}";
static String m90(email) => "${email} does not have an Ente account.";
static String m34(email) => "${email} does not have an Ente account.";
static String m33(email) =>
static String m35(email) =>
"${email} does not have an Ente account.\n\nSend them an invite to share photos.";
static String m34(text) => "Extra photos found for ${text}";
static String m36(text) => "Extra photos found for ${text}";
static String m35(count, formattedNumber) =>
static String m37(count, formattedNumber) =>
"${Intl.plural(count, one: '1 file', other: '${formattedNumber} files')} on this device have been backed up safely";
static String m36(count, formattedNumber) =>
static String m38(count, formattedNumber) =>
"${Intl.plural(count, one: '1 file', other: '${formattedNumber} files')} in this album has been backed up safely";
static String m4(storageAmountInGB) =>
"${storageAmountInGB} GB each time someone signs up for a paid plan and applies your code";
static String m37(endDate) => "Free trial valid till ${endDate}";
static String m39(endDate) => "Free trial valid till ${endDate}";
static String m38(count) =>
static String m40(count) =>
"You can still access ${Intl.plural(count, one: 'it', other: 'them')} on Ente as long as you have an active subscription";
static String m39(sizeInMBorGB) => "Free up ${sizeInMBorGB}";
static String m41(sizeInMBorGB) => "Free up ${sizeInMBorGB}";
static String m40(count, formattedSize) =>
static String m42(count, formattedSize) =>
"${Intl.plural(count, one: 'It can be deleted from the device to free up ${formattedSize}', other: 'They can be deleted from the device to free up ${formattedSize}')}";
static String m41(currentlyProcessing, totalCount) =>
static String m43(currentlyProcessing, totalCount) =>
"Processing ${currentlyProcessing} / ${totalCount}";
static String m42(count) =>
static String m44(count) =>
"${Intl.plural(count, one: '${count} item', other: '${count} items')}";
static String m43(email) =>
static String m45(email) =>
"${email} has invited you to be a trusted contact";
static String m44(expiryTime) => "Link will expire on ${expiryTime}";
static String m46(expiryTime) => "Link will expire on ${expiryTime}";
static String m91(email) => "Link person to ${email}";
static String m47(email) => "Link person to ${email}";
static String m92(personName, email) =>
static String m48(personName, email) =>
"This will link ${personName} to ${email}";
static String m5(count, formattedCount) =>
"${Intl.plural(count, zero: 'no memories', one: '${formattedCount} memory', other: '${formattedCount} memories')}";
static String m45(count) =>
static String m49(count) =>
"${Intl.plural(count, one: 'Move item', other: 'Move items')}";
static String m46(albumName) => "Moved successfully to ${albumName}";
static String m50(albumName) => "Moved successfully to ${albumName}";
static String m47(personName) => "No suggestions for ${personName}";
static String m51(personName) => "No suggestions for ${personName}";
static String m48(name) => "Not ${name}?";
static String m52(name) => "Not ${name}?";
static String m49(familyAdminEmail) =>
static String m53(familyAdminEmail) =>
"Please contact ${familyAdminEmail} to change your code.";
static String m0(passwordStrengthValue) =>
"Password strength: ${passwordStrengthValue}";
static String m50(providerName) =>
static String m54(providerName) =>
"Please talk to ${providerName} support if you were charged";
static String m51(count) =>
static String m55(count) =>
"${Intl.plural(count, zero: '0 photo', one: '1 photo', other: '${count} photos')}";
static String m52(endDate) =>
static String m56(endDate) =>
"Free trial valid till ${endDate}.\nYou can choose a paid plan afterwards.";
static String m53(toEmail) => "Please email us at ${toEmail}";
static String m57(toEmail) => "Please email us at ${toEmail}";
static String m54(toEmail) => "Please send the logs to \n${toEmail}";
static String m58(toEmail) => "Please send the logs to \n${toEmail}";
static String m55(folderName) => "Processing ${folderName}...";
static String m59(folderName) => "Processing ${folderName}...";
static String m56(storeName) => "Rate us on ${storeName}";
static String m60(storeName) => "Rate us on ${storeName}";
static String m93(name) => "Reassigned you to ${name}";
static String m61(name) => "Reassigned you to ${name}";
static String m57(days, email) =>
static String m62(days, email) =>
"You can access the account after ${days} days. A notification will be sent to ${email}.";
static String m58(email) =>
static String m63(email) =>
"You can now recover ${email}\'s account by setting a new password.";
static String m59(email) => "${email} is trying to recover your account.";
static String m64(email) => "${email} is trying to recover your account.";
static String m60(storageInGB) =>
static String m65(storageInGB) =>
"3. Both of you get ${storageInGB} GB* free";
static String m61(userEmail) =>
static String m66(userEmail) =>
"${userEmail} will be removed from this shared album\n\nAny photos added by them will also be removed from the album";
static String m62(endDate) => "Subscription renews on ${endDate}";
static String m67(endDate) => "Subscription renews on ${endDate}";
static String m63(count) =>
static String m68(count) =>
"${Intl.plural(count, one: '${count} result found', other: '${count} results found')}";
static String m64(snapshotLength, searchLength) =>
static String m69(snapshotLength, searchLength) =>
"Sections length mismatch: ${snapshotLength} != ${searchLength}";
static String m6(count) => "${count} selected";
static String m65(count, yourCount) =>
static String m70(count, yourCount) =>
"${count} selected (${yourCount} yours)";
static String m66(verificationID) =>
static String m71(verificationID) =>
"Here\'s my verification ID: ${verificationID} for ente.io.";
static String m7(verificationID) =>
"Hey, can you confirm that this is your ente.io verification ID: ${verificationID}";
static String m67(referralCode, referralStorageInGB) =>
static String m72(referralCode, referralStorageInGB) =>
"Ente referral code: ${referralCode} \n\nApply it in Settings → General → Referrals to get ${referralStorageInGB} GB free after you signup for a paid plan\n\nhttps://ente.io";
static String m68(numberOfPeople) =>
static String m73(numberOfPeople) =>
"${Intl.plural(numberOfPeople, zero: 'Share with specific people', one: 'Shared with 1 person', other: 'Shared with ${numberOfPeople} people')}";
static String m69(emailIDs) => "Shared with ${emailIDs}";
static String m74(emailIDs) => "Shared with ${emailIDs}";
static String m70(fileType) =>
static String m75(fileType) =>
"This ${fileType} will be deleted from your device.";
static String m71(fileType) =>
static String m76(fileType) =>
"This ${fileType} is in both Ente and your device.";
static String m72(fileType) => "This ${fileType} will be deleted from Ente.";
static String m77(fileType) => "This ${fileType} will be deleted from Ente.";
static String m1(storageAmountInGB) => "${storageAmountInGB} GB";
static String m73(
static String m78(
usedAmount, usedStorageUnit, totalAmount, totalStorageUnit) =>
"${usedAmount} ${usedStorageUnit} of ${totalAmount} ${totalStorageUnit} used";
static String m74(id) =>
static String m79(id) =>
"Your ${id} is already linked to another Ente account.\nIf you would like to use your ${id} with this account, please contact our support\'\'";
static String m75(endDate) =>
static String m80(endDate) =>
"Your subscription will be cancelled on ${endDate}";
static String m76(completed, total) =>
static String m81(completed, total) =>
"${completed}/${total} memories preserved";
static String m77(ignoreReason) =>
static String m82(ignoreReason) =>
"Tap to upload, upload is currently ignored due to ${ignoreReason}";
static String m8(storageAmountInGB) =>
"They also get ${storageAmountInGB} GB";
static String m78(email) => "This is ${email}\'s Verification ID";
static String m83(email) => "This is ${email}\'s Verification ID";
static String m79(count) =>
static String m84(count) =>
"${Intl.plural(count, zero: 'Soon', one: '1 day', other: '${count} days')}";
static String m80(email) =>
static String m85(email) =>
"You have been invited to be a legacy contact by ${email}.";
static String m81(galleryType) =>
static String m86(galleryType) =>
"Type of gallery ${galleryType} is not supported for rename";
static String m82(ignoreReason) => "Upload is ignored due to ${ignoreReason}";
static String m87(ignoreReason) => "Upload is ignored due to ${ignoreReason}";
static String m83(count) => "Preserving ${count} memories...";
static String m88(count) => "Preserving ${count} memories...";
static String m84(endDate) => "Valid till ${endDate}";
static String m89(endDate) => "Valid till ${endDate}";
static String m85(email) => "Verify ${email}";
static String m90(email) => "Verify ${email}";
static String m86(count) =>
static String m91(count) =>
"${Intl.plural(count, zero: 'Added 0 viewer', one: 'Added 1 viewer', other: 'Added ${count} viewers')}";
static String m2(email) => "We have sent a mail to <green>${email}</green>";
static String m87(count) =>
static String m92(count) =>
"${Intl.plural(count, one: '${count} year ago', other: '${count} years ago')}";
static String m88(storageSaved) =>
static String m93(storageSaved) =>
"You have successfully freed up ${storageSaved}!";
final messages = _notInlinedMessages(_notInlinedMessages);
@@ -284,7 +284,7 @@ class MessageLookup extends MessageLookupByLibrary {
"account": MessageLookupByLibrary.simpleMessage("Account"),
"accountIsAlreadyConfigured": MessageLookupByLibrary.simpleMessage(
"Account is already configured."),
"accountOwnerPersonAppbarTitle": m89,
"accountOwnerPersonAppbarTitle": m9,
"accountWelcomeBack":
MessageLookupByLibrary.simpleMessage("Welcome back!"),
"ackPasswordLostWarning": MessageLookupByLibrary.simpleMessage(
@@ -296,11 +296,11 @@ class MessageLookup extends MessageLookupByLibrary {
"addANewEmail": MessageLookupByLibrary.simpleMessage("Add a new email"),
"addCollaborator":
MessageLookupByLibrary.simpleMessage("Add collaborator"),
"addCollaborators": m9,
"addCollaborators": m10,
"addFiles": MessageLookupByLibrary.simpleMessage("Add Files"),
"addFromDevice":
MessageLookupByLibrary.simpleMessage("Add from device"),
"addItem": m10,
"addItem": m11,
"addLocation": MessageLookupByLibrary.simpleMessage("Add location"),
"addLocationButton": MessageLookupByLibrary.simpleMessage("Add"),
"addMore": MessageLookupByLibrary.simpleMessage("Add more"),
@@ -311,7 +311,7 @@ class MessageLookup extends MessageLookupByLibrary {
"addNewPerson": MessageLookupByLibrary.simpleMessage("Add new person"),
"addOnPageSubtitle":
MessageLookupByLibrary.simpleMessage("Details of add-ons"),
"addOnValidTill": m11,
"addOnValidTill": m12,
"addOns": MessageLookupByLibrary.simpleMessage("Add-ons"),
"addPhotos": MessageLookupByLibrary.simpleMessage("Add photos"),
"addSelected": MessageLookupByLibrary.simpleMessage("Add selected"),
@@ -322,12 +322,12 @@ class MessageLookup extends MessageLookupByLibrary {
"addTrustedContact":
MessageLookupByLibrary.simpleMessage("Add Trusted Contact"),
"addViewer": MessageLookupByLibrary.simpleMessage("Add viewer"),
"addViewers": m12,
"addViewers": m13,
"addYourPhotosNow":
MessageLookupByLibrary.simpleMessage("Add your photos now"),
"addedAs": MessageLookupByLibrary.simpleMessage("Added as"),
"addedBy": m13,
"addedSuccessfullyTo": m14,
"addedBy": m14,
"addedSuccessfullyTo": m15,
"addingToFavorites":
MessageLookupByLibrary.simpleMessage("Adding to favorites..."),
"advanced": MessageLookupByLibrary.simpleMessage("Advanced"),
@@ -338,7 +338,7 @@ class MessageLookup extends MessageLookupByLibrary {
"after1Week": MessageLookupByLibrary.simpleMessage("After 1 week"),
"after1Year": MessageLookupByLibrary.simpleMessage("After 1 year"),
"albumOwner": MessageLookupByLibrary.simpleMessage("Owner"),
"albumParticipantsCount": m15,
"albumParticipantsCount": m16,
"albumTitle": MessageLookupByLibrary.simpleMessage("Album title"),
"albumUpdated": MessageLookupByLibrary.simpleMessage("Album updated"),
"albums": MessageLookupByLibrary.simpleMessage("Albums"),
@@ -384,7 +384,7 @@ class MessageLookup extends MessageLookupByLibrary {
"appLock": MessageLookupByLibrary.simpleMessage("App lock"),
"appLockDescriptions": MessageLookupByLibrary.simpleMessage(
"Choose between your device\'s default lock screen and a custom lock screen with a PIN or password."),
"appVersion": m16,
"appVersion": m17,
"appleId": MessageLookupByLibrary.simpleMessage("Apple ID"),
"apply": MessageLookupByLibrary.simpleMessage("Apply"),
"applyCodeTitle": MessageLookupByLibrary.simpleMessage("Apply code"),
@@ -466,7 +466,7 @@ class MessageLookup extends MessageLookupByLibrary {
"autoPairDesc": MessageLookupByLibrary.simpleMessage(
"Auto pair works only with devices that support Chromecast."),
"available": MessageLookupByLibrary.simpleMessage("Available"),
"availableStorageSpace": m17,
"availableStorageSpace": m18,
"backedUpFolders":
MessageLookupByLibrary.simpleMessage("Backed up folders"),
"backup": MessageLookupByLibrary.simpleMessage("Backup"),
@@ -503,7 +503,7 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage("Cancel recovery"),
"cancelAccountRecoveryBody": MessageLookupByLibrary.simpleMessage(
"Are you sure you want to cancel recovery?"),
"cancelOtherSubscription": m18,
"cancelOtherSubscription": m19,
"cancelSubscription":
MessageLookupByLibrary.simpleMessage("Cancel subscription"),
"cannotAddMorePhotosAfterBecomingViewer": m3,
@@ -554,7 +554,7 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage("Claim free storage"),
"claimMore": MessageLookupByLibrary.simpleMessage("Claim more!"),
"claimed": MessageLookupByLibrary.simpleMessage("Claimed"),
"claimedStorageSoFar": m19,
"claimedStorageSoFar": m20,
"cleanUncategorized":
MessageLookupByLibrary.simpleMessage("Clean Uncategorized"),
"cleanUncategorizedDescription": MessageLookupByLibrary.simpleMessage(
@@ -583,12 +583,12 @@ class MessageLookup extends MessageLookupByLibrary {
"Create a link to allow people to add and view photos in your shared album without needing an Ente app or account. Great for collecting event photos."),
"collaborativeLink":
MessageLookupByLibrary.simpleMessage("Collaborative link"),
"collaborativeLinkCreatedFor": m20,
"collaborativeLinkCreatedFor": m21,
"collaborator": MessageLookupByLibrary.simpleMessage("Collaborator"),
"collaboratorsCanAddPhotosAndVideosToTheSharedAlbum":
MessageLookupByLibrary.simpleMessage(
"Collaborators can add photos and videos to the shared album."),
"collaboratorsSuccessfullyAdded": m21,
"collaboratorsSuccessfullyAdded": m22,
"collageLayout": MessageLookupByLibrary.simpleMessage("Layout"),
"collageSaved":
MessageLookupByLibrary.simpleMessage("Collage saved to gallery"),
@@ -605,7 +605,7 @@ class MessageLookup extends MessageLookupByLibrary {
"Are you sure you want to disable two-factor authentication?"),
"confirmAccountDeletion":
MessageLookupByLibrary.simpleMessage("Confirm Account Deletion"),
"confirmAddingTrustedContact": m22,
"confirmAddingTrustedContact": m23,
"confirmDeletePrompt": MessageLookupByLibrary.simpleMessage(
"Yes, I want to permanently delete this account and its data across all apps."),
"confirmPassword":
@@ -618,10 +618,10 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage("Confirm your recovery key"),
"connectToDevice":
MessageLookupByLibrary.simpleMessage("Connect to device"),
"contactFamilyAdmin": m23,
"contactFamilyAdmin": m24,
"contactSupport":
MessageLookupByLibrary.simpleMessage("Contact support"),
"contactToManageSubscription": m24,
"contactToManageSubscription": m25,
"contacts": MessageLookupByLibrary.simpleMessage("Contacts"),
"contents": MessageLookupByLibrary.simpleMessage("Contents"),
"continueLabel": MessageLookupByLibrary.simpleMessage("Continue"),
@@ -667,7 +667,7 @@ class MessageLookup extends MessageLookupByLibrary {
"currentlyRunning":
MessageLookupByLibrary.simpleMessage("currently running"),
"custom": MessageLookupByLibrary.simpleMessage("Custom"),
"customEndpoint": m25,
"customEndpoint": m26,
"darkTheme": MessageLookupByLibrary.simpleMessage("Dark"),
"dayToday": MessageLookupByLibrary.simpleMessage("Today"),
"dayYesterday": MessageLookupByLibrary.simpleMessage("Yesterday"),
@@ -704,11 +704,11 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage("Delete from device"),
"deleteFromEnte":
MessageLookupByLibrary.simpleMessage("Delete from Ente"),
"deleteItemCount": m26,
"deleteItemCount": m27,
"deleteLocation":
MessageLookupByLibrary.simpleMessage("Delete location"),
"deletePhotos": MessageLookupByLibrary.simpleMessage("Delete photos"),
"deleteProgress": m27,
"deleteProgress": m28,
"deleteReason1": MessageLookupByLibrary.simpleMessage(
"Its missing a key feature that I need"),
"deleteReason2": MessageLookupByLibrary.simpleMessage(
@@ -747,7 +747,7 @@ class MessageLookup extends MessageLookupByLibrary {
"Viewers can still take screenshots or save a copy of your photos using external tools"),
"disableDownloadWarningTitle":
MessageLookupByLibrary.simpleMessage("Please note"),
"disableLinkMessage": m28,
"disableLinkMessage": m29,
"disableTwofactor":
MessageLookupByLibrary.simpleMessage("Disable two-factor"),
"disablingTwofactorAuthentication":
@@ -789,9 +789,9 @@ class MessageLookup extends MessageLookupByLibrary {
"downloadFailed":
MessageLookupByLibrary.simpleMessage("Download failed"),
"downloading": MessageLookupByLibrary.simpleMessage("Downloading..."),
"dropSupportEmail": m29,
"duplicateFileCountWithStorageSaved": m30,
"duplicateItemsGroup": m31,
"dropSupportEmail": m30,
"duplicateFileCountWithStorageSaved": m31,
"duplicateItemsGroup": m32,
"edit": MessageLookupByLibrary.simpleMessage("Edit"),
"editLocation": MessageLookupByLibrary.simpleMessage("Edit location"),
"editLocationTagTitle":
@@ -805,9 +805,9 @@ class MessageLookup extends MessageLookupByLibrary {
"email": MessageLookupByLibrary.simpleMessage("Email"),
"emailAlreadyRegistered":
MessageLookupByLibrary.simpleMessage("Email already registered."),
"emailChangedTo": m32,
"emailDoesNotHaveEnteAccount": m90,
"emailNoEnteAccount": m33,
"emailChangedTo": m33,
"emailDoesNotHaveEnteAccount": m34,
"emailNoEnteAccount": m35,
"emailNotRegistered":
MessageLookupByLibrary.simpleMessage("Email not registered."),
"emailVerificationToggle":
@@ -888,7 +888,7 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage("Export your data"),
"extraPhotosFound":
MessageLookupByLibrary.simpleMessage("Extra photos found"),
"extraPhotosFoundFor": m34,
"extraPhotosFoundFor": m36,
"faceNotClusteredYet": MessageLookupByLibrary.simpleMessage(
"Face not clustered yet, please come back later"),
"faceRecognition":
@@ -938,8 +938,8 @@ class MessageLookup extends MessageLookupByLibrary {
"fileTypes": MessageLookupByLibrary.simpleMessage("File types"),
"fileTypesAndNames":
MessageLookupByLibrary.simpleMessage("File types and names"),
"filesBackedUpFromDevice": m35,
"filesBackedUpInAlbum": m36,
"filesBackedUpFromDevice": m37,
"filesBackedUpInAlbum": m38,
"filesDeleted": MessageLookupByLibrary.simpleMessage("Files deleted"),
"filesSavedToGallery":
MessageLookupByLibrary.simpleMessage("Files saved to gallery"),
@@ -959,22 +959,22 @@ class MessageLookup extends MessageLookupByLibrary {
"freeStorageUsable":
MessageLookupByLibrary.simpleMessage("Free storage usable"),
"freeTrial": MessageLookupByLibrary.simpleMessage("Free trial"),
"freeTrialValidTill": m37,
"freeUpAccessPostDelete": m38,
"freeUpAmount": m39,
"freeTrialValidTill": m39,
"freeUpAccessPostDelete": m40,
"freeUpAmount": m41,
"freeUpDeviceSpace":
MessageLookupByLibrary.simpleMessage("Free up device space"),
"freeUpDeviceSpaceDesc": MessageLookupByLibrary.simpleMessage(
"Save space on your device by clearing files that have been already backed up."),
"freeUpSpace": MessageLookupByLibrary.simpleMessage("Free up space"),
"freeUpSpaceSaving": m40,
"freeUpSpaceSaving": m42,
"gallery": MessageLookupByLibrary.simpleMessage("Gallery"),
"galleryMemoryLimitInfo": MessageLookupByLibrary.simpleMessage(
"Up to 1000 memories shown in gallery"),
"general": MessageLookupByLibrary.simpleMessage("General"),
"generatingEncryptionKeys": MessageLookupByLibrary.simpleMessage(
"Generating encryption keys..."),
"genericProgress": m41,
"genericProgress": m43,
"goToSettings": MessageLookupByLibrary.simpleMessage("Go to settings"),
"googlePlayId": MessageLookupByLibrary.simpleMessage("Google Play ID"),
"grantFullAccessPrompt": MessageLookupByLibrary.simpleMessage(
@@ -1055,7 +1055,7 @@ class MessageLookup extends MessageLookupByLibrary {
"itLooksLikeSomethingWentWrongPleaseRetryAfterSome":
MessageLookupByLibrary.simpleMessage(
"It looks like something went wrong. Please retry after some time. If the error persists, please contact our support team."),
"itemCount": m42,
"itemCount": m44,
"itemsShowTheNumberOfDaysRemainingBeforePermanentDeletion":
MessageLookupByLibrary.simpleMessage(
"Items show the number of days remaining before permanent deletion"),
@@ -1085,7 +1085,7 @@ class MessageLookup extends MessageLookupByLibrary {
"legacy": MessageLookupByLibrary.simpleMessage("Legacy"),
"legacyAccounts":
MessageLookupByLibrary.simpleMessage("Legacy accounts"),
"legacyInvite": m43,
"legacyInvite": m45,
"legacyPageDesc": MessageLookupByLibrary.simpleMessage(
"Legacy allows trusted contacts to access your account in your absence."),
"legacyPageDesc2": MessageLookupByLibrary.simpleMessage(
@@ -1101,7 +1101,7 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage("for faster sharing"),
"linkEnabled": MessageLookupByLibrary.simpleMessage("Enabled"),
"linkExpired": MessageLookupByLibrary.simpleMessage("Expired"),
"linkExpiresOn": m44,
"linkExpiresOn": m46,
"linkExpiry": MessageLookupByLibrary.simpleMessage("Link expiry"),
"linkHasExpired":
MessageLookupByLibrary.simpleMessage("Link has expired"),
@@ -1109,8 +1109,8 @@ class MessageLookup extends MessageLookupByLibrary {
"linkPerson": MessageLookupByLibrary.simpleMessage("Link person"),
"linkPersonCaption": MessageLookupByLibrary.simpleMessage(
"for better sharing experience"),
"linkPersonToEmail": m91,
"linkPersonToEmailConfirmation": m92,
"linkPersonToEmail": m47,
"linkPersonToEmailConfirmation": m48,
"livePhotos": MessageLookupByLibrary.simpleMessage("Live Photos"),
"loadMessage1": MessageLookupByLibrary.simpleMessage(
"You can share your subscription with your family"),
@@ -1224,11 +1224,11 @@ class MessageLookup extends MessageLookupByLibrary {
"moreDetails": MessageLookupByLibrary.simpleMessage("More details"),
"mostRecent": MessageLookupByLibrary.simpleMessage("Most recent"),
"mostRelevant": MessageLookupByLibrary.simpleMessage("Most relevant"),
"moveItem": m45,
"moveItem": m49,
"moveToAlbum": MessageLookupByLibrary.simpleMessage("Move to album"),
"moveToHiddenAlbum":
MessageLookupByLibrary.simpleMessage("Move to hidden album"),
"movedSuccessfullyTo": m46,
"movedSuccessfullyTo": m50,
"movedToTrash": MessageLookupByLibrary.simpleMessage("Moved to trash"),
"movingFilesToAlbum":
MessageLookupByLibrary.simpleMessage("Moving files to album..."),
@@ -1278,10 +1278,10 @@ class MessageLookup extends MessageLookupByLibrary {
"noResults": MessageLookupByLibrary.simpleMessage("No results"),
"noResultsFound":
MessageLookupByLibrary.simpleMessage("No results found"),
"noSuggestionsForPerson": m47,
"noSuggestionsForPerson": m51,
"noSystemLockFound":
MessageLookupByLibrary.simpleMessage("No system lock found"),
"notPersonLabel": m48,
"notPersonLabel": m52,
"nothingSharedWithYouYet":
MessageLookupByLibrary.simpleMessage("Nothing shared with you yet"),
"nothingToSeeHere":
@@ -1291,7 +1291,7 @@ class MessageLookup extends MessageLookupByLibrary {
"onDevice": MessageLookupByLibrary.simpleMessage("On device"),
"onEnte": MessageLookupByLibrary.simpleMessage(
"On <branding>ente</branding>"),
"onlyFamilyAdminCanChangeCode": m49,
"onlyFamilyAdminCanChangeCode": m53,
"onlyThem": MessageLookupByLibrary.simpleMessage("Only them"),
"oops": MessageLookupByLibrary.simpleMessage("Oops"),
"oopsCouldNotSaveEdits":
@@ -1339,7 +1339,7 @@ class MessageLookup extends MessageLookupByLibrary {
"paymentFailed": MessageLookupByLibrary.simpleMessage("Payment failed"),
"paymentFailedMessage": MessageLookupByLibrary.simpleMessage(
"Unfortunately your payment failed. Please contact support and we\'ll help you out!"),
"paymentFailedTalkToProvider": m50,
"paymentFailedTalkToProvider": m54,
"pendingItems": MessageLookupByLibrary.simpleMessage("Pending items"),
"pendingSync": MessageLookupByLibrary.simpleMessage("Pending sync"),
"people": MessageLookupByLibrary.simpleMessage("People"),
@@ -1361,14 +1361,14 @@ class MessageLookup extends MessageLookupByLibrary {
"photosAddedByYouWillBeRemovedFromTheAlbum":
MessageLookupByLibrary.simpleMessage(
"Photos added by you will be removed from the album"),
"photosCount": m51,
"photosCount": m55,
"pickCenterPoint":
MessageLookupByLibrary.simpleMessage("Pick center point"),
"pinAlbum": MessageLookupByLibrary.simpleMessage("Pin album"),
"pinLock": MessageLookupByLibrary.simpleMessage("PIN lock"),
"playOnTv": MessageLookupByLibrary.simpleMessage("Play album on TV"),
"playOriginal": MessageLookupByLibrary.simpleMessage("Play original"),
"playStoreFreeTrialValidTill": m52,
"playStoreFreeTrialValidTill": m56,
"playStream": MessageLookupByLibrary.simpleMessage("Play stream"),
"playstoreSubscription":
MessageLookupByLibrary.simpleMessage("PlayStore subscription"),
@@ -1381,14 +1381,14 @@ class MessageLookup extends MessageLookupByLibrary {
"pleaseContactSupportIfTheProblemPersists":
MessageLookupByLibrary.simpleMessage(
"Please contact support if the problem persists"),
"pleaseEmailUsAt": m53,
"pleaseEmailUsAt": m57,
"pleaseGrantPermissions":
MessageLookupByLibrary.simpleMessage("Please grant permissions"),
"pleaseLoginAgain":
MessageLookupByLibrary.simpleMessage("Please login again"),
"pleaseSelectQuickLinksToRemove": MessageLookupByLibrary.simpleMessage(
"Please select quick links to remove"),
"pleaseSendTheLogsTo": m54,
"pleaseSendTheLogsTo": m58,
"pleaseTryAgain":
MessageLookupByLibrary.simpleMessage("Please try again"),
"pleaseVerifyTheCodeYouHaveEntered":
@@ -1400,6 +1400,8 @@ class MessageLookup extends MessageLookupByLibrary {
"pleaseWaitForSometimeBeforeRetrying":
MessageLookupByLibrary.simpleMessage(
"Please wait for sometime before retrying"),
"pleaseWaitThisWillTakeAWhile": MessageLookupByLibrary.simpleMessage(
"Please wait, this will take a while."),
"preparingLogs":
MessageLookupByLibrary.simpleMessage("Preparing logs..."),
"preserveMore": MessageLookupByLibrary.simpleMessage("Preserve more"),
@@ -1417,7 +1419,7 @@ class MessageLookup extends MessageLookupByLibrary {
"proceed": MessageLookupByLibrary.simpleMessage("Proceed"),
"processed": MessageLookupByLibrary.simpleMessage("Processed"),
"processing": MessageLookupByLibrary.simpleMessage("Processing"),
"processingImport": m55,
"processingImport": m59,
"processingVideos":
MessageLookupByLibrary.simpleMessage("Processing videos"),
"publicLinkCreated":
@@ -1430,9 +1432,9 @@ class MessageLookup extends MessageLookupByLibrary {
"raiseTicket": MessageLookupByLibrary.simpleMessage("Raise ticket"),
"rateTheApp": MessageLookupByLibrary.simpleMessage("Rate the app"),
"rateUs": MessageLookupByLibrary.simpleMessage("Rate us"),
"rateUsOnStore": m56,
"rateUsOnStore": m60,
"reassignMe": MessageLookupByLibrary.simpleMessage("Reassign \"Me\""),
"reassignedToName": m93,
"reassignedToName": m61,
"reassigningLoading":
MessageLookupByLibrary.simpleMessage("Reassigning..."),
"recover": MessageLookupByLibrary.simpleMessage("Recover"),
@@ -1443,7 +1445,7 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage("Recover account"),
"recoveryInitiated":
MessageLookupByLibrary.simpleMessage("Recovery initiated"),
"recoveryInitiatedDesc": m57,
"recoveryInitiatedDesc": m62,
"recoveryKey": MessageLookupByLibrary.simpleMessage("Recovery key"),
"recoveryKeyCopiedToClipboard": MessageLookupByLibrary.simpleMessage(
"Recovery key copied to clipboard"),
@@ -1457,12 +1459,12 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage("Recovery key verified"),
"recoveryKeyVerifyReason": MessageLookupByLibrary.simpleMessage(
"Your recovery key is the only way to recover your photos if you forget your password. You can find your recovery key in Settings > Account.\n\nPlease enter your recovery key here to verify that you have saved it correctly."),
"recoveryReady": m58,
"recoveryReady": m63,
"recoverySuccessful":
MessageLookupByLibrary.simpleMessage("Recovery successful!"),
"recoveryWarning": MessageLookupByLibrary.simpleMessage(
"A trusted contact is trying to access your account"),
"recoveryWarningBody": m59,
"recoveryWarningBody": m64,
"recreatePasswordBody": MessageLookupByLibrary.simpleMessage(
"The current device is not powerful enough to verify your password, but we can regenerate in a way that works with all devices.\n\nPlease login using your recovery key and regenerate your password (you can use the same one again if you wish)."),
"recreatePasswordTitle":
@@ -1477,7 +1479,7 @@ class MessageLookup extends MessageLookupByLibrary {
"1. Give this code to your friends"),
"referralStep2": MessageLookupByLibrary.simpleMessage(
"2. They sign up for a paid plan"),
"referralStep3": m60,
"referralStep3": m65,
"referrals": MessageLookupByLibrary.simpleMessage("Referrals"),
"referralsAreCurrentlyPaused": MessageLookupByLibrary.simpleMessage(
"Referrals are currently paused"),
@@ -1506,7 +1508,7 @@ class MessageLookup extends MessageLookupByLibrary {
"removeLink": MessageLookupByLibrary.simpleMessage("Remove link"),
"removeParticipant":
MessageLookupByLibrary.simpleMessage("Remove participant"),
"removeParticipantBody": m61,
"removeParticipantBody": m66,
"removePersonLabel":
MessageLookupByLibrary.simpleMessage("Remove person label"),
"removePublicLink":
@@ -1526,7 +1528,7 @@ class MessageLookup extends MessageLookupByLibrary {
"renameFile": MessageLookupByLibrary.simpleMessage("Rename file"),
"renewSubscription":
MessageLookupByLibrary.simpleMessage("Renew subscription"),
"renewsOn": m62,
"renewsOn": m67,
"reportABug": MessageLookupByLibrary.simpleMessage("Report a bug"),
"reportBug": MessageLookupByLibrary.simpleMessage("Report bug"),
"resendEmail": MessageLookupByLibrary.simpleMessage("Resend email"),
@@ -1604,8 +1606,8 @@ class MessageLookup extends MessageLookupByLibrary {
"Invite people, and you\'ll see all photos shared by them here"),
"searchPersonsEmptySection": MessageLookupByLibrary.simpleMessage(
"People will be shown here once processing and syncing is complete"),
"searchResultCount": m63,
"searchSectionsLengthMismatch": m64,
"searchResultCount": m68,
"searchSectionsLengthMismatch": m69,
"security": MessageLookupByLibrary.simpleMessage("Security"),
"seePublicAlbumLinksInApp": MessageLookupByLibrary.simpleMessage(
"See public album links in app"),
@@ -1644,7 +1646,7 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage(
"Selected items will be deleted from all albums and moved to trash."),
"selectedPhotos": m6,
"selectedPhotosWithYours": m65,
"selectedPhotosWithYours": m70,
"send": MessageLookupByLibrary.simpleMessage("Send"),
"sendEmail": MessageLookupByLibrary.simpleMessage("Send email"),
"sendInvite": MessageLookupByLibrary.simpleMessage("Send invite"),
@@ -1673,16 +1675,16 @@ class MessageLookup extends MessageLookupByLibrary {
"shareAnAlbumNow":
MessageLookupByLibrary.simpleMessage("Share an album now"),
"shareLink": MessageLookupByLibrary.simpleMessage("Share link"),
"shareMyVerificationID": m66,
"shareMyVerificationID": m71,
"shareOnlyWithThePeopleYouWant": MessageLookupByLibrary.simpleMessage(
"Share only with the people you want"),
"shareTextConfirmOthersVerificationID": m7,
"shareTextRecommendUsingEnte": MessageLookupByLibrary.simpleMessage(
"Download Ente so we can easily share original quality photos and videos\n\nhttps://ente.io"),
"shareTextReferralCode": m67,
"shareTextReferralCode": m72,
"shareWithNonenteUsers":
MessageLookupByLibrary.simpleMessage("Share with non-Ente users"),
"shareWithPeopleSectionTitle": m68,
"shareWithPeopleSectionTitle": m73,
"shareYourFirstAlbum":
MessageLookupByLibrary.simpleMessage("Share your first album"),
"sharedAlbumSectionDescription": MessageLookupByLibrary.simpleMessage(
@@ -1693,7 +1695,7 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage("New shared photos"),
"sharedPhotoNotificationsExplanation": MessageLookupByLibrary.simpleMessage(
"Receive notifications when someone adds a photo to a shared album that you\'re a part of"),
"sharedWith": m69,
"sharedWith": m74,
"sharedWithMe": MessageLookupByLibrary.simpleMessage("Shared with me"),
"sharedWithYou":
MessageLookupByLibrary.simpleMessage("Shared with you"),
@@ -1708,11 +1710,11 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage("Sign out other devices"),
"signUpTerms": MessageLookupByLibrary.simpleMessage(
"I agree to the <u-terms>terms of service</u-terms> and <u-policy>privacy policy</u-policy>"),
"singleFileDeleteFromDevice": m70,
"singleFileDeleteFromDevice": m75,
"singleFileDeleteHighlight": MessageLookupByLibrary.simpleMessage(
"It will be deleted from all albums."),
"singleFileInBothLocalAndRemote": m71,
"singleFileInRemoteOnly": m72,
"singleFileInBothLocalAndRemote": m76,
"singleFileInRemoteOnly": m77,
"skip": MessageLookupByLibrary.simpleMessage("Skip"),
"social": MessageLookupByLibrary.simpleMessage("Social"),
"someItemsAreInBothEnteAndYourDevice":
@@ -1760,11 +1762,11 @@ class MessageLookup extends MessageLookupByLibrary {
"storageInGB": m1,
"storageLimitExceeded":
MessageLookupByLibrary.simpleMessage("Storage limit exceeded"),
"storageUsageInfo": m73,
"storageUsageInfo": m78,
"streamDetails": MessageLookupByLibrary.simpleMessage("Stream details"),
"strongStrength": MessageLookupByLibrary.simpleMessage("Strong"),
"subAlreadyLinkedErrMessage": m74,
"subWillBeCancelledOn": m75,
"subAlreadyLinkedErrMessage": m79,
"subWillBeCancelledOn": m80,
"subscribe": MessageLookupByLibrary.simpleMessage("Subscribe"),
"subscribeToEnableSharing": MessageLookupByLibrary.simpleMessage(
"You need an active paid subscription to enable sharing."),
@@ -1781,7 +1783,7 @@ class MessageLookup extends MessageLookupByLibrary {
"suggestFeatures":
MessageLookupByLibrary.simpleMessage("Suggest features"),
"support": MessageLookupByLibrary.simpleMessage("Support"),
"syncProgress": m76,
"syncProgress": m81,
"syncStopped": MessageLookupByLibrary.simpleMessage("Sync stopped"),
"syncing": MessageLookupByLibrary.simpleMessage("Syncing..."),
"systemTheme": MessageLookupByLibrary.simpleMessage("System"),
@@ -1790,7 +1792,7 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage("Tap to enter code"),
"tapToUnlock": MessageLookupByLibrary.simpleMessage("Tap to unlock"),
"tapToUpload": MessageLookupByLibrary.simpleMessage("Tap to upload"),
"tapToUploadIsIgnoredDue": m77,
"tapToUploadIsIgnoredDue": m82,
"tempErrorContactSupportIfPersists": MessageLookupByLibrary.simpleMessage(
"It looks like something went wrong. Please retry after some time. If the error persists, please contact our support team."),
"terminate": MessageLookupByLibrary.simpleMessage("Terminate"),
@@ -1831,7 +1833,7 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage("This image has no exif data"),
"thisIsMeExclamation":
MessageLookupByLibrary.simpleMessage("This is me!"),
"thisIsPersonVerificationId": m78,
"thisIsPersonVerificationId": m83,
"thisIsYourVerificationId": MessageLookupByLibrary.simpleMessage(
"This is your Verification ID"),
"thisWillLogYouOutOfTheFollowingDevice":
@@ -1855,11 +1857,11 @@ class MessageLookup extends MessageLookupByLibrary {
"total": MessageLookupByLibrary.simpleMessage("total"),
"totalSize": MessageLookupByLibrary.simpleMessage("Total size"),
"trash": MessageLookupByLibrary.simpleMessage("Trash"),
"trashDaysLeft": m79,
"trashDaysLeft": m84,
"trim": MessageLookupByLibrary.simpleMessage("Trim"),
"trustedContacts":
MessageLookupByLibrary.simpleMessage("Trusted contacts"),
"trustedInviteBody": m80,
"trustedInviteBody": m85,
"tryAgain": MessageLookupByLibrary.simpleMessage("Try again"),
"turnOnBackupForAutoUpload": MessageLookupByLibrary.simpleMessage(
"Turn on backup to automatically upload files added to this device folder to Ente."),
@@ -1877,7 +1879,7 @@ class MessageLookup extends MessageLookupByLibrary {
"Two-factor authentication successfully reset"),
"twofactorSetup":
MessageLookupByLibrary.simpleMessage("Two-factor setup"),
"typeOfGallerGallerytypeIsNotSupportedForRename": m81,
"typeOfGallerGallerytypeIsNotSupportedForRename": m86,
"unarchive": MessageLookupByLibrary.simpleMessage("Unarchive"),
"unarchiveAlbum":
MessageLookupByLibrary.simpleMessage("Unarchive album"),
@@ -1900,10 +1902,10 @@ class MessageLookup extends MessageLookupByLibrary {
"updatingFolderSelection": MessageLookupByLibrary.simpleMessage(
"Updating folder selection..."),
"upgrade": MessageLookupByLibrary.simpleMessage("Upgrade"),
"uploadIsIgnoredDueToIgnorereason": m82,
"uploadIsIgnoredDueToIgnorereason": m87,
"uploadingFilesToAlbum":
MessageLookupByLibrary.simpleMessage("Uploading files to album..."),
"uploadingMultipleMemories": m83,
"uploadingMultipleMemories": m88,
"uploadingSingleMemory":
MessageLookupByLibrary.simpleMessage("Preserving 1 memory..."),
"upto50OffUntil4thDec": MessageLookupByLibrary.simpleMessage(
@@ -1921,7 +1923,7 @@ class MessageLookup extends MessageLookupByLibrary {
"useSelectedPhoto":
MessageLookupByLibrary.simpleMessage("Use selected photo"),
"usedSpace": MessageLookupByLibrary.simpleMessage("Used space"),
"validTill": m84,
"validTill": m89,
"verificationFailedPleaseTryAgain":
MessageLookupByLibrary.simpleMessage(
"Verification failed, please try again"),
@@ -1929,7 +1931,7 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage("Verification ID"),
"verify": MessageLookupByLibrary.simpleMessage("Verify"),
"verifyEmail": MessageLookupByLibrary.simpleMessage("Verify email"),
"verifyEmailID": m85,
"verifyEmailID": m90,
"verifyIDLabel": MessageLookupByLibrary.simpleMessage("Verify"),
"verifyPasskey": MessageLookupByLibrary.simpleMessage("Verify passkey"),
"verifyPassword":
@@ -1955,7 +1957,7 @@ class MessageLookup extends MessageLookupByLibrary {
"viewRecoveryKey":
MessageLookupByLibrary.simpleMessage("View recovery key"),
"viewer": MessageLookupByLibrary.simpleMessage("Viewer"),
"viewersSuccessfullyAdded": m86,
"viewersSuccessfullyAdded": m91,
"visitWebToManage": MessageLookupByLibrary.simpleMessage(
"Please visit web.ente.io to manage your subscription"),
"waitingForVerification":
@@ -1976,7 +1978,7 @@ class MessageLookup extends MessageLookupByLibrary {
"Trusted contact can help in recovering your data."),
"yearShort": MessageLookupByLibrary.simpleMessage("yr"),
"yearly": MessageLookupByLibrary.simpleMessage("Yearly"),
"yearsAgo": m87,
"yearsAgo": m92,
"yes": MessageLookupByLibrary.simpleMessage("Yes"),
"yesCancel": MessageLookupByLibrary.simpleMessage("Yes, cancel"),
"yesConvertToViewer":
@@ -2008,7 +2010,7 @@ class MessageLookup extends MessageLookupByLibrary {
"You cannot share with yourself"),
"youDontHaveAnyArchivedItems": MessageLookupByLibrary.simpleMessage(
"You don\'t have any archived items."),
"youHaveSuccessfullyFreedUp": m88,
"youHaveSuccessfullyFreedUp": m93,
"yourAccountHasBeenDeleted": MessageLookupByLibrary.simpleMessage(
"Your account has been deleted"),
"yourMap": MessageLookupByLibrary.simpleMessage("Your map"),
@@ -2031,7 +2033,7 @@ class MessageLookup extends MessageLookupByLibrary {
"Your verification code has expired"),
"youveNoDuplicateFilesThatCanBeCleared":
MessageLookupByLibrary.simpleMessage(
"You\'ve no duplicate files that can be cleared"),
"You don\'t have any duplicate files that can be cleared"),
"youveNoFilesInThisAlbumThatCanBeDeleted":
MessageLookupByLibrary.simpleMessage(
"You\'ve no files in this album that can be deleted"),

File diff suppressed because it is too large Load Diff

View File

@@ -169,8 +169,6 @@ class MessageLookup extends MessageLookupByLibrary {
"oops": MessageLookupByLibrary.simpleMessage("Oih"),
"oopsSomethingWentWrong":
MessageLookupByLibrary.simpleMessage("Oih, midagi läks valesti"),
"orPickFromYourContacts":
MessageLookupByLibrary.simpleMessage("or pick from your contacts"),
"password": MessageLookupByLibrary.simpleMessage("Parool"),
"photoSmallCase": MessageLookupByLibrary.simpleMessage("foto"),
"pleaseTryAgain":

View File

@@ -20,24 +20,24 @@ typedef String MessageIfAbsent(String messageStr, List<dynamic> args);
class MessageLookup extends MessageLookupByLibrary {
String get localeName => 'fa';
static String m16(versionValue) => "نسخه: ${versionValue}";
static String m17(versionValue) => "نسخه: ${versionValue}";
static String m17(freeAmount, storageUnit) =>
static String m18(freeAmount, storageUnit) =>
"${freeAmount} ${storageUnit} رایگان";
static String m29(supportEmail) =>
static String m30(supportEmail) =>
"لطفا یک ایمیل از آدرس ایمیلی که ثبت نام کردید به ${supportEmail} ارسال کنید";
static String m0(passwordStrengthValue) =>
"قدرت رمز عبور: ${passwordStrengthValue}";
static String m56(storeName) => "به ما در ${storeName} امتیاز دهید";
static String m60(storeName) => "به ما در ${storeName} امتیاز دهید";
static String m73(
static String m78(
usedAmount, usedStorageUnit, totalAmount, totalStorageUnit) =>
"${usedAmount} ${usedStorageUnit} از ${totalAmount} ${totalStorageUnit} استفاده شده";
static String m85(email) => "تایید ${email}";
static String m90(email) => "تایید ${email}";
static String m2(email) =>
"ما یک ایمیل به <green>${email}</green> ارسال کرده‌ایم";
@@ -75,7 +75,7 @@ class MessageLookup extends MessageLookupByLibrary {
"androidCancelButton": MessageLookupByLibrary.simpleMessage("لغو"),
"androidIosWebDesktop": MessageLookupByLibrary.simpleMessage(
"اندروید، آی‌اواس، وب، رایانه رومیزی"),
"appVersion": m16,
"appVersion": m17,
"archive": MessageLookupByLibrary.simpleMessage("بایگانی"),
"areYouSureYouWantToLogout": MessageLookupByLibrary.simpleMessage(
"آیا برای خارج شدن مطمئن هستید؟"),
@@ -86,7 +86,7 @@ class MessageLookup extends MessageLookupByLibrary {
"authToViewYourActiveSessions": MessageLookupByLibrary.simpleMessage(
"لطفاً برای مشاهده دستگاه‌های فعال خود احراز هویت کنید"),
"available": MessageLookupByLibrary.simpleMessage("در دسترس"),
"availableStorageSpace": m17,
"availableStorageSpace": m18,
"backedUpFolders":
MessageLookupByLibrary.simpleMessage("پوشه‌های پشتیبان گیری شده"),
"backup": MessageLookupByLibrary.simpleMessage("پشتیبان گیری"),
@@ -166,7 +166,7 @@ class MessageLookup extends MessageLookupByLibrary {
"discord": MessageLookupByLibrary.simpleMessage("دیسکورد"),
"doThisLater": MessageLookupByLibrary.simpleMessage("بعداً انجام شود"),
"downloading": MessageLookupByLibrary.simpleMessage("در حال دانلود..."),
"dropSupportEmail": m29,
"dropSupportEmail": m30,
"editLocationTagTitle":
MessageLookupByLibrary.simpleMessage("ویرایش مکان"),
"email": MessageLookupByLibrary.simpleMessage("ایمیل"),
@@ -269,8 +269,6 @@ class MessageLookup extends MessageLookupByLibrary {
"notifications": MessageLookupByLibrary.simpleMessage("آگاه‌سازی‌ها"),
"ok": MessageLookupByLibrary.simpleMessage("تایید"),
"oops": MessageLookupByLibrary.simpleMessage("اوه"),
"orPickFromYourContacts":
MessageLookupByLibrary.simpleMessage("or pick from your contacts"),
"password": MessageLookupByLibrary.simpleMessage("رمز عبور"),
"passwordChangedSuccessfully": MessageLookupByLibrary.simpleMessage(
"رمز عبور با موفقیت تغییر کرد"),
@@ -294,7 +292,7 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage("پشتیبان گیری خصوصی"),
"privateSharing":
MessageLookupByLibrary.simpleMessage("اشتراک گذاری خصوصی"),
"rateUsOnStore": m56,
"rateUsOnStore": m60,
"recover": MessageLookupByLibrary.simpleMessage("بازیابی"),
"recoverAccount":
MessageLookupByLibrary.simpleMessage("بازیابی حساب کاربری"),
@@ -370,7 +368,7 @@ class MessageLookup extends MessageLookupByLibrary {
"storageBreakupFamily":
MessageLookupByLibrary.simpleMessage("خانوادگی"),
"storageBreakupYou": MessageLookupByLibrary.simpleMessage("شما"),
"storageUsageInfo": m73,
"storageUsageInfo": m78,
"strongStrength": MessageLookupByLibrary.simpleMessage("قوی"),
"support": MessageLookupByLibrary.simpleMessage("پشتیبانی"),
"systemTheme": MessageLookupByLibrary.simpleMessage("سیستم"),
@@ -411,7 +409,7 @@ class MessageLookup extends MessageLookupByLibrary {
"از کلید بازیابی استفاده کنید"),
"verify": MessageLookupByLibrary.simpleMessage("تایید"),
"verifyEmail": MessageLookupByLibrary.simpleMessage("تایید ایمیل"),
"verifyEmailID": m85,
"verifyEmailID": m90,
"verifyIDLabel": MessageLookupByLibrary.simpleMessage("تایید"),
"verifyPassword":
MessageLookupByLibrary.simpleMessage("تایید رمز عبور"),

File diff suppressed because it is too large Load Diff

View File

@@ -21,8 +21,5 @@ class MessageLookup extends MessageLookupByLibrary {
String get localeName => 'gu';
final messages = _notInlinedMessages(_notInlinedMessages);
static Map<String, Function> _notInlinedMessages(_) => <String, Function>{
"orPickFromYourContacts":
MessageLookupByLibrary.simpleMessage("or pick from your contacts")
};
static Map<String, Function> _notInlinedMessages(_) => <String, Function>{};
}

View File

@@ -20,113 +20,113 @@ typedef String MessageIfAbsent(String messageStr, List<dynamic> args);
class MessageLookup extends MessageLookupByLibrary {
String get localeName => 'he';
static String m10(count) =>
static String m11(count) =>
"${Intl.plural(count, one: 'הוסף פריט', two: 'הוסף פריטים', many: 'הוסף פריטים', other: 'הוסף פריטים')}";
static String m15(count) =>
static String m16(count) =>
"${Intl.plural(count, zero: 'אין משתתפים', one: '1 משתתף', two: '2 משתתפים', other: '${count} משתתפים')}";
static String m18(paymentProvider) =>
static String m19(paymentProvider) =>
"אנא בטל את המנוי הקיים מ-${paymentProvider} קודם";
static String m3(user) =>
"${user} לא יוכל להוסיף עוד תמונות לאלבום זה\n\nהם עדיין יכולו להסיר תמונות קיימות שנוספו על ידיהם";
static String m19(isFamilyMember, storageAmountInGb) =>
static String m20(isFamilyMember, storageAmountInGb) =>
"${Intl.select(isFamilyMember, {
'true': 'קיבלת ${storageAmountInGb} GB עד כה',
'false': 'קיבלת ${storageAmountInGb} GB עד כה',
'other': 'קיבלת ${storageAmountInGb} GB עד כה!',
})}";
static String m23(familyAdminEmail) =>
static String m24(familyAdminEmail) =>
"אנא צור קשר עם <green>${familyAdminEmail}</green> על מנת לנהל את המנוי שלך";
static String m24(provider) =>
static String m25(provider) =>
"אנא צור איתנו קשר ב-support@ente.io על מנת לנהל את המנוי ${provider}.";
static String m26(count) =>
static String m27(count) =>
"${Intl.plural(count, one: 'מחק ${count} פריט', two: 'מחק ${count} פריטים', other: 'מחק ${count} פריטים')}";
static String m27(currentlyDeleting, totalCount) =>
static String m28(currentlyDeleting, totalCount) =>
"מוחק ${currentlyDeleting} / ${totalCount}";
static String m28(albumName) =>
static String m29(albumName) =>
"זה יסיר את הלינק הפומבי שדרכו ניתן לגשת ל\"${albumName}\".";
static String m29(supportEmail) =>
static String m30(supportEmail) =>
"אנא תשלח דוא\"ל ל${supportEmail} מהכתובת דוא\"ל שנרשמת איתה";
static String m31(count, formattedSize) =>
static String m32(count, formattedSize) =>
"${count} קבצים, כל אחד ${formattedSize}";
static String m33(email) =>
static String m35(email) =>
"לא נמצא חשבון ente ל-${email}.\n\nשלח להם הזמנה על מנת לשתף תמונות.";
static String m4(storageAmountInGB) =>
"${storageAmountInGB} GB כל פעם שמישהו נרשם עבור תוכנית בתשלום ומחיל את הקוד שלך";
static String m37(endDate) => "ניסיון חינם בתוקף עד ל-${endDate}";
static String m39(endDate) => "ניסיון חינם בתוקף עד ל-${endDate}";
static String m42(count) =>
static String m44(count) =>
"${Intl.plural(count, one: '${count} פריט', two: '${count} פריטים', many: '${count} פריטים', other: '${count} פריטים')}";
static String m44(expiryTime) => "תוקף הקישור יפוג ב-${expiryTime}";
static String m46(expiryTime) => "תוקף הקישור יפוג ב-${expiryTime}";
static String m5(count, formattedCount) =>
"${Intl.plural(count, one: '${formattedCount} זכרון', two: '${formattedCount} זכרונות', many: '${formattedCount} זכרונות', other: '${formattedCount} זכרונות')}";
static String m45(count) =>
static String m49(count) =>
"${Intl.plural(count, one: 'הזז פריט', two: 'הזז פריטים', many: 'הזז פריטים', other: 'הזז פריטים')}";
static String m0(passwordStrengthValue) =>
"חוזק הסיסמא: ${passwordStrengthValue}";
static String m50(providerName) =>
static String m54(providerName) =>
"אנא דבר עם התמיכה של ${providerName} אם אתה חוייבת";
static String m56(storeName) => "דרג אותנו ב-${storeName}";
static String m60(storeName) => "דרג אותנו ב-${storeName}";
static String m60(storageInGB) => "3. שניכים מקבלים ${storageInGB} GB* בחינם";
static String m65(storageInGB) => "3. שניכים מקבלים ${storageInGB} GB* בחינם";
static String m61(userEmail) =>
static String m66(userEmail) =>
"${userEmail} יוסר מהאלבום המשותף הזה\n\nגם תמונות שנוספו על ידיהם יוסרו מהאלבום";
static String m6(count) => "${count} נבחרו";
static String m65(count, yourCount) => "${count} נבחרו (${yourCount} שלך)";
static String m70(count, yourCount) => "${count} נבחרו (${yourCount} שלך)";
static String m66(verificationID) =>
static String m71(verificationID) =>
"הנה מזהה האימות שלי: ${verificationID} עבור ente.io.";
static String m7(verificationID) =>
"היי, תוכל לוודא שזה מזהה האימות שלך של ente.io: ${verificationID}";
static String m68(numberOfPeople) =>
static String m73(numberOfPeople) =>
"${Intl.plural(numberOfPeople, zero: 'שתף עם אנשים ספציפיים', one: 'שותף עם איש 1', two: 'שותף עם 2 אנשים', other: 'שותף עם ${numberOfPeople} אנשים')}";
static String m69(emailIDs) => "הושתף ע\"י ${emailIDs}";
static String m74(emailIDs) => "הושתף ע\"י ${emailIDs}";
static String m70(fileType) => "${fileType} יימחק מהמכשיר שלך.";
static String m75(fileType) => "${fileType} יימחק מהמכשיר שלך.";
static String m1(storageAmountInGB) => "${storageAmountInGB} GB";
static String m75(endDate) => "המנוי שלך יבוטל ב-${endDate}";
static String m80(endDate) => "המנוי שלך יבוטל ב-${endDate}";
static String m76(completed, total) => "${completed}/${total} זכרונות נשמרו";
static String m81(completed, total) => "${completed}/${total} זכרונות נשמרו";
static String m8(storageAmountInGB) => "הם גם יקבלו ${storageAmountInGB} GB";
static String m78(email) => "זה מזהה האימות של ${email}";
static String m83(email) => "זה מזהה האימות של ${email}";
static String m85(email) => "אמת ${email}";
static String m90(email) => "אמת ${email}";
static String m2(email) => "שלחנו דוא\"ל ל<green>${email}</green>";
static String m87(count) =>
static String m92(count) =>
"${Intl.plural(count, one: 'לפני ${count} שנה', two: 'לפני ${count} שנים', many: 'לפני ${count} שנים', other: 'לפני ${count} שנים')}";
static String m88(storageSaved) => "הצלחת לפנות ${storageSaved}!";
static String m93(storageSaved) => "הצלחת לפנות ${storageSaved}!";
final messages = _notInlinedMessages(_notInlinedMessages);
static Map<String, Function> _notInlinedMessages(_) => <String, Function>{
@@ -141,7 +141,7 @@ class MessageLookup extends MessageLookupByLibrary {
"addANewEmail": MessageLookupByLibrary.simpleMessage("הוסף דוא\"ל חדש"),
"addCollaborator":
MessageLookupByLibrary.simpleMessage("הוסף משתף פעולה"),
"addItem": m10,
"addItem": m11,
"addLocationButton": MessageLookupByLibrary.simpleMessage("הוסף"),
"addMore": MessageLookupByLibrary.simpleMessage("הוסף עוד"),
"addPhotos": MessageLookupByLibrary.simpleMessage("הוסף תמונות"),
@@ -158,7 +158,7 @@ class MessageLookup extends MessageLookupByLibrary {
"after1Week": MessageLookupByLibrary.simpleMessage("אחרי שבוע 1"),
"after1Year": MessageLookupByLibrary.simpleMessage("אחרי שנה 1"),
"albumOwner": MessageLookupByLibrary.simpleMessage("בעלים"),
"albumParticipantsCount": m15,
"albumParticipantsCount": m16,
"albumTitle": MessageLookupByLibrary.simpleMessage("כותרת האלבום"),
"albumUpdated": MessageLookupByLibrary.simpleMessage("האלבום עודכן"),
"albums": MessageLookupByLibrary.simpleMessage("אלבומים"),
@@ -244,7 +244,7 @@ class MessageLookup extends MessageLookupByLibrary {
"canOnlyRemoveFilesOwnedByYou": MessageLookupByLibrary.simpleMessage(
"יכול להסיר רק קבצים שבבעלותך"),
"cancel": MessageLookupByLibrary.simpleMessage("בטל"),
"cancelOtherSubscription": m18,
"cancelOtherSubscription": m19,
"cancelSubscription": MessageLookupByLibrary.simpleMessage("בטל מנוי"),
"cannotAddMorePhotosAfterBecomingViewer": m3,
"cannotDeleteSharedFiles": MessageLookupByLibrary.simpleMessage(
@@ -262,7 +262,7 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage("תבע מקום אחסון בחינם"),
"claimMore": MessageLookupByLibrary.simpleMessage("תבע עוד!"),
"claimed": MessageLookupByLibrary.simpleMessage("נתבע"),
"claimedStorageSoFar": m19,
"claimedStorageSoFar": m20,
"click": MessageLookupByLibrary.simpleMessage("• לחץ"),
"close": MessageLookupByLibrary.simpleMessage("סגור"),
"clubByCaptureTime":
@@ -302,10 +302,10 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage("אמת את מפתח השחזור"),
"confirmYourRecoveryKey":
MessageLookupByLibrary.simpleMessage("אמת את מפתח השחזור"),
"contactFamilyAdmin": m23,
"contactFamilyAdmin": m24,
"contactSupport":
MessageLookupByLibrary.simpleMessage("צור קשר עם התמיכה"),
"contactToManageSubscription": m24,
"contactToManageSubscription": m25,
"continueLabel": MessageLookupByLibrary.simpleMessage("המשך"),
"continueOnFreeTrial":
MessageLookupByLibrary.simpleMessage("המשך עם ניסיון חינמי"),
@@ -363,9 +363,9 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage("למחוק אלבומים ריקים?"),
"deleteFromBoth": MessageLookupByLibrary.simpleMessage("מחק משניהם"),
"deleteFromDevice": MessageLookupByLibrary.simpleMessage("מחק מהמכשיר"),
"deleteItemCount": m26,
"deleteItemCount": m27,
"deletePhotos": MessageLookupByLibrary.simpleMessage("מחק תמונות"),
"deleteProgress": m27,
"deleteProgress": m28,
"deleteReason1":
MessageLookupByLibrary.simpleMessage("חסר מאפיין מרכזי שאני צריך"),
"deleteReason2": MessageLookupByLibrary.simpleMessage(
@@ -390,7 +390,7 @@ class MessageLookup extends MessageLookupByLibrary {
"צופים יכולים עדיין לקחת צילומי מסך או לשמור עותק של התמונות שלך בעזרת כלים חיצוניים"),
"disableDownloadWarningTitle":
MessageLookupByLibrary.simpleMessage("שים לב"),
"disableLinkMessage": m28,
"disableLinkMessage": m29,
"disableTwofactor":
MessageLookupByLibrary.simpleMessage("השבת דו-גורמי"),
"discord": MessageLookupByLibrary.simpleMessage("Discord"),
@@ -401,12 +401,12 @@ class MessageLookup extends MessageLookupByLibrary {
"download": MessageLookupByLibrary.simpleMessage("הורד"),
"downloadFailed": MessageLookupByLibrary.simpleMessage("ההורדה נכשלה"),
"downloading": MessageLookupByLibrary.simpleMessage("מוריד..."),
"dropSupportEmail": m29,
"duplicateItemsGroup": m31,
"dropSupportEmail": m30,
"duplicateItemsGroup": m32,
"edit": MessageLookupByLibrary.simpleMessage("ערוך"),
"eligible": MessageLookupByLibrary.simpleMessage("זכאי"),
"email": MessageLookupByLibrary.simpleMessage("דוא\"ל"),
"emailNoEnteAccount": m33,
"emailNoEnteAccount": m35,
"emailVerificationToggle":
MessageLookupByLibrary.simpleMessage("אימות מייל"),
"empty": MessageLookupByLibrary.simpleMessage("ריק"),
@@ -479,7 +479,7 @@ class MessageLookup extends MessageLookupByLibrary {
"freeStorageUsable":
MessageLookupByLibrary.simpleMessage("מקום אחסון שמיש"),
"freeTrial": MessageLookupByLibrary.simpleMessage("ניסיון חינמי"),
"freeTrialValidTill": m37,
"freeTrialValidTill": m39,
"freeUpDeviceSpace":
MessageLookupByLibrary.simpleMessage("פנה אחסון במכשיר"),
"freeUpSpace": MessageLookupByLibrary.simpleMessage("פנה מקום"),
@@ -517,7 +517,7 @@ class MessageLookup extends MessageLookupByLibrary {
"invite": MessageLookupByLibrary.simpleMessage("הזמן"),
"inviteYourFriends":
MessageLookupByLibrary.simpleMessage("הזמן את חברייך"),
"itemCount": m42,
"itemCount": m44,
"itemsWillBeRemovedFromAlbum": MessageLookupByLibrary.simpleMessage(
"הפריטים שנבחרו יוסרו מהאלבום הזה"),
"keepPhotos": MessageLookupByLibrary.simpleMessage("השאר תמונות"),
@@ -539,7 +539,7 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage("מגבלת כמות מכשירים"),
"linkEnabled": MessageLookupByLibrary.simpleMessage("מאופשר"),
"linkExpired": MessageLookupByLibrary.simpleMessage("פג תוקף"),
"linkExpiresOn": m44,
"linkExpiresOn": m46,
"linkExpiry": MessageLookupByLibrary.simpleMessage("תאריך תפוגה ללינק"),
"linkHasExpired":
MessageLookupByLibrary.simpleMessage("הקישור פג תוקף"),
@@ -571,7 +571,7 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage("פלאפון, דפדפן, שולחן עבודה"),
"moderateStrength": MessageLookupByLibrary.simpleMessage("מתונה"),
"monthly": MessageLookupByLibrary.simpleMessage("חודשי"),
"moveItem": m45,
"moveItem": m49,
"moveToAlbum": MessageLookupByLibrary.simpleMessage("הזז לאלבום"),
"movedToTrash": MessageLookupByLibrary.simpleMessage("הועבר לאשפה"),
"movingFilesToAlbum":
@@ -606,8 +606,6 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage("אופציונלי, קצר ככל שתרצה..."),
"orPickAnExistingOne":
MessageLookupByLibrary.simpleMessage("או בחר באחד קיים"),
"orPickFromYourContacts":
MessageLookupByLibrary.simpleMessage("or pick from your contacts"),
"password": MessageLookupByLibrary.simpleMessage("סיסמא"),
"passwordChangedSuccessfully":
MessageLookupByLibrary.simpleMessage("הססמה הוחלפה בהצלחה"),
@@ -617,7 +615,7 @@ class MessageLookup extends MessageLookupByLibrary {
"אנחנו לא שומרים את הסיסמא הזו, לכן אם אתה שוכח אותה, <underline>אנחנו לא יכולים לפענח את המידע שלך</underline>"),
"paymentDetails": MessageLookupByLibrary.simpleMessage("פרטי תשלום"),
"paymentFailed": MessageLookupByLibrary.simpleMessage("התשלום נכשל"),
"paymentFailedTalkToProvider": m50,
"paymentFailedTalkToProvider": m54,
"peopleUsingYourCode":
MessageLookupByLibrary.simpleMessage("אנשים משתמשים בקוד שלך"),
"permanentlyDelete":
@@ -659,7 +657,7 @@ class MessageLookup extends MessageLookupByLibrary {
"raiseTicket": MessageLookupByLibrary.simpleMessage("צור ticket"),
"rateTheApp": MessageLookupByLibrary.simpleMessage("דרג את האפליקציה"),
"rateUs": MessageLookupByLibrary.simpleMessage("דרג אותנו"),
"rateUsOnStore": m56,
"rateUsOnStore": m60,
"recover": MessageLookupByLibrary.simpleMessage("שחזר"),
"recoverAccount": MessageLookupByLibrary.simpleMessage("שחזר חשבון"),
"recoverButton": MessageLookupByLibrary.simpleMessage("שחזר"),
@@ -685,7 +683,7 @@ class MessageLookup extends MessageLookupByLibrary {
"1. תמסור את הקוד הזה לחברייך"),
"referralStep2": MessageLookupByLibrary.simpleMessage(
"2. הם נרשמים עבור תוכנית בתשלום"),
"referralStep3": m60,
"referralStep3": m65,
"referrals": MessageLookupByLibrary.simpleMessage("הפניות"),
"referralsAreCurrentlyPaused":
MessageLookupByLibrary.simpleMessage("הפניות כרגע מושהות"),
@@ -701,7 +699,7 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage("הסר מהאלבום?"),
"removeLink": MessageLookupByLibrary.simpleMessage("הסרת קישור"),
"removeParticipant": MessageLookupByLibrary.simpleMessage("הסר משתתף"),
"removeParticipantBody": m61,
"removeParticipantBody": m66,
"removePublicLink":
MessageLookupByLibrary.simpleMessage("הסר לינק ציבורי"),
"removeShareItemsWarning": MessageLookupByLibrary.simpleMessage(
@@ -753,7 +751,7 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage(
"התיקיות שנבחרו יוצפנו ויגובו"),
"selectedPhotos": m6,
"selectedPhotosWithYours": m65,
"selectedPhotosWithYours": m70,
"send": MessageLookupByLibrary.simpleMessage("שלח"),
"sendEmail": MessageLookupByLibrary.simpleMessage("שלח דוא\"ל"),
"sendInvite": MessageLookupByLibrary.simpleMessage("שלח הזמנה"),
@@ -772,7 +770,7 @@ class MessageLookup extends MessageLookupByLibrary {
"shareAnAlbumNow":
MessageLookupByLibrary.simpleMessage("שתף אלבום עכשיו"),
"shareLink": MessageLookupByLibrary.simpleMessage("שתף קישור"),
"shareMyVerificationID": m66,
"shareMyVerificationID": m71,
"shareOnlyWithThePeopleYouWant":
MessageLookupByLibrary.simpleMessage("שתף רק אם אנשים שאתה בוחר"),
"shareTextConfirmOthersVerificationID": m7,
@@ -780,7 +778,7 @@ class MessageLookup extends MessageLookupByLibrary {
"הורד את ente על מנת שנוכל לשתף תמונות וסרטונים באיכות המקור באופן קל\n\nhttps://ente.io"),
"shareWithNonenteUsers": MessageLookupByLibrary.simpleMessage(
"שתף עם משתמשים שהם לא של ente"),
"shareWithPeopleSectionTitle": m68,
"shareWithPeopleSectionTitle": m73,
"shareYourFirstAlbum":
MessageLookupByLibrary.simpleMessage("שתף את האלבום הראשון שלך"),
"sharedAlbumSectionDescription": MessageLookupByLibrary.simpleMessage(
@@ -791,13 +789,13 @@ class MessageLookup extends MessageLookupByLibrary {
"sharedPhotoNotificationsExplanation":
MessageLookupByLibrary.simpleMessage(
"קבל התראות כשמישהו מוסיף תמונה לאלבום משותף שאתה חלק ממנו"),
"sharedWith": m69,
"sharedWith": m74,
"sharedWithMe": MessageLookupByLibrary.simpleMessage("שותף איתי"),
"sharing": MessageLookupByLibrary.simpleMessage("משתף..."),
"showMemories": MessageLookupByLibrary.simpleMessage("הצג זכרונות"),
"signUpTerms": MessageLookupByLibrary.simpleMessage(
"אני מסכים ל<u-terms>תנאי שירות</u-terms> ול<u-policy>מדיניות הפרטיות</u-policy>"),
"singleFileDeleteFromDevice": m70,
"singleFileDeleteFromDevice": m75,
"singleFileDeleteHighlight":
MessageLookupByLibrary.simpleMessage("זה יימחק מכל האלבומים."),
"skip": MessageLookupByLibrary.simpleMessage("דלג"),
@@ -830,14 +828,14 @@ class MessageLookup extends MessageLookupByLibrary {
"storageLimitExceeded":
MessageLookupByLibrary.simpleMessage("גבול מקום האחסון נחרג"),
"strongStrength": MessageLookupByLibrary.simpleMessage("חזקה"),
"subWillBeCancelledOn": m75,
"subWillBeCancelledOn": m80,
"subscribe": MessageLookupByLibrary.simpleMessage("הרשם"),
"subscription": MessageLookupByLibrary.simpleMessage("מנוי"),
"success": MessageLookupByLibrary.simpleMessage("הצלחה"),
"suggestFeatures":
MessageLookupByLibrary.simpleMessage("הציעו מאפיינים"),
"support": MessageLookupByLibrary.simpleMessage("תמיכה"),
"syncProgress": m76,
"syncProgress": m81,
"syncing": MessageLookupByLibrary.simpleMessage("מסנכרן..."),
"systemTheme": MessageLookupByLibrary.simpleMessage("מערכת"),
"tapToCopy": MessageLookupByLibrary.simpleMessage("הקש כדי להעתיק"),
@@ -858,7 +856,7 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage(
"זה יכול לשמש לשחזור החשבון שלך במקרה ותאבד את הגורם השני"),
"thisDevice": MessageLookupByLibrary.simpleMessage("מכשיר זה"),
"thisIsPersonVerificationId": m78,
"thisIsPersonVerificationId": m83,
"thisIsYourVerificationId":
MessageLookupByLibrary.simpleMessage("זה מזהה האימות שלך"),
"thisWillLogYouOutOfTheFollowingDevice":
@@ -902,7 +900,7 @@ class MessageLookup extends MessageLookupByLibrary {
"verificationId": MessageLookupByLibrary.simpleMessage("מזהה אימות"),
"verify": MessageLookupByLibrary.simpleMessage("אמת"),
"verifyEmail": MessageLookupByLibrary.simpleMessage("אימות דוא\"ל"),
"verifyEmailID": m85,
"verifyEmailID": m90,
"verifyIDLabel": MessageLookupByLibrary.simpleMessage("אמת"),
"verifyPassword": MessageLookupByLibrary.simpleMessage("אמת סיסמא"),
"verifyingRecoveryKey":
@@ -923,7 +921,7 @@ class MessageLookup extends MessageLookupByLibrary {
"weakStrength": MessageLookupByLibrary.simpleMessage("חלשה"),
"welcomeBack": MessageLookupByLibrary.simpleMessage("ברוך שובך!"),
"yearly": MessageLookupByLibrary.simpleMessage("שנתי"),
"yearsAgo": m87,
"yearsAgo": m92,
"yes": MessageLookupByLibrary.simpleMessage("כן"),
"yesCancel": MessageLookupByLibrary.simpleMessage("כן, בטל"),
"yesConvertToViewer":
@@ -946,7 +944,7 @@ class MessageLookup extends MessageLookupByLibrary {
"אתה לא יכול לשנמך לתוכנית הזו"),
"youCannotShareWithYourself":
MessageLookupByLibrary.simpleMessage("אתה לא יכול לשתף עם עצמך"),
"youHaveSuccessfullyFreedUp": m88,
"youHaveSuccessfullyFreedUp": m93,
"yourAccountHasBeenDeleted":
MessageLookupByLibrary.simpleMessage("החשבון שלך נמחק"),
"yourPlanWasSuccessfullyDowngraded":
@@ -961,9 +959,6 @@ class MessageLookup extends MessageLookupByLibrary {
"yourSubscriptionHasExpired":
MessageLookupByLibrary.simpleMessage("פג תוקף המנוי שלך"),
"yourSubscriptionWasUpdatedSuccessfully":
MessageLookupByLibrary.simpleMessage("המנוי שלך עודכן בהצלחה"),
"youveNoDuplicateFilesThatCanBeCleared":
MessageLookupByLibrary.simpleMessage(
"אין לך קבצים כפולים שניתן לנקות אותם")
MessageLookupByLibrary.simpleMessage("המנוי שלך עודכן בהצלחה")
};
}

View File

@@ -81,8 +81,6 @@ class MessageLookup extends MessageLookupByLibrary {
"हमारे एंड-टू-एंड एन्क्रिप्शन प्रोटोकॉल की प्रकृति के कारण, आपके डेटा को आपके पासवर्ड या रिकवरी कुंजी के बिना डिक्रिप्ट नहीं किया जा सकता है"),
"ok": MessageLookupByLibrary.simpleMessage("ठीक है"),
"oops": MessageLookupByLibrary.simpleMessage("ओह!"),
"orPickFromYourContacts":
MessageLookupByLibrary.simpleMessage("or pick from your contacts"),
"password": MessageLookupByLibrary.simpleMessage("पासवर्ड"),
"recoverButton": MessageLookupByLibrary.simpleMessage("पुनः प्राप्त"),
"recoverySuccessful":

View File

@@ -38,8 +38,6 @@ class MessageLookup extends MessageLookupByLibrary {
"feedback": MessageLookupByLibrary.simpleMessage("Visszajelzés"),
"invalidEmailAddress":
MessageLookupByLibrary.simpleMessage("Érvénytelen e-mail cím"),
"orPickFromYourContacts":
MessageLookupByLibrary.simpleMessage("or pick from your contacts"),
"verify": MessageLookupByLibrary.simpleMessage("Hitelesítés")
};
}

View File

@@ -20,33 +20,33 @@ typedef String MessageIfAbsent(String messageStr, List<dynamic> args);
class MessageLookup extends MessageLookupByLibrary {
String get localeName => 'id';
static String m9(count) =>
static String m10(count) =>
"${Intl.plural(count, other: 'Tambahkan kolaborator')}";
static String m10(count) => "${Intl.plural(count, other: 'Tambahkan item')}";
static String m11(count) => "${Intl.plural(count, other: 'Tambahkan item')}";
static String m11(storageAmount, endDate) =>
static String m12(storageAmount, endDate) =>
"Add-on ${storageAmount} kamu berlaku sampai ${endDate}";
static String m13(emailOrName) => "Ditambahkan oleh ${emailOrName}";
static String m14(emailOrName) => "Ditambahkan oleh ${emailOrName}";
static String m14(albumName) => "Berhasil ditambahkan ke ${albumName}";
static String m15(albumName) => "Berhasil ditambahkan ke ${albumName}";
static String m15(count) =>
static String m16(count) =>
"${Intl.plural(count, zero: '0 Peserta', one: '1 Peserta', other: '${count} Peserta')}";
static String m16(versionValue) => "Versi: ${versionValue}";
static String m17(versionValue) => "Versi: ${versionValue}";
static String m17(freeAmount, storageUnit) =>
static String m18(freeAmount, storageUnit) =>
"${freeAmount} ${storageUnit} tersedia";
static String m18(paymentProvider) =>
static String m19(paymentProvider) =>
"Harap batalkan langganan kamu di ${paymentProvider} terlebih dahulu";
static String m3(user) =>
"${user} tidak akan dapat menambahkan foto lagi ke album ini\n\nIa masih dapat menghapus foto yang ditambahkan olehnya sendiri";
static String m19(isFamilyMember, storageAmountInGb) =>
static String m20(isFamilyMember, storageAmountInGb) =>
"${Intl.select(isFamilyMember, {
'true':
'Keluargamu saat ini telah memperoleh ${storageAmountInGb} GB',
@@ -54,153 +54,153 @@ class MessageLookup extends MessageLookupByLibrary {
'other': 'Kamu saat ini telah memperoleh ${storageAmountInGb} GB!',
})}";
static String m20(albumName) => "Link kolaborasi terbuat untuk ${albumName}";
static String m21(albumName) => "Link kolaborasi terbuat untuk ${albumName}";
static String m23(familyAdminEmail) =>
static String m24(familyAdminEmail) =>
"Silakan hubungi <green>${familyAdminEmail}</green> untuk mengatur langgananmu";
static String m24(provider) =>
static String m25(provider) =>
"Silakan hubungi kami di support@ente.io untuk mengatur langganan ${provider} kamu.";
static String m25(endpoint) => "Terhubung ke ${endpoint}";
static String m26(endpoint) => "Terhubung ke ${endpoint}";
static String m26(count) =>
static String m27(count) =>
"${Intl.plural(count, one: 'Hapus ${count} item', other: 'Hapus ${count} item')}";
static String m27(currentlyDeleting, totalCount) =>
static String m28(currentlyDeleting, totalCount) =>
"Menghapus ${currentlyDeleting} / ${totalCount}";
static String m28(albumName) =>
static String m29(albumName) =>
"Ini akan menghapus link publik yang digunakan untuk mengakses \"${albumName}\".";
static String m29(supportEmail) =>
static String m30(supportEmail) =>
"Silakan kirimkan email ke ${supportEmail} dari alamat email terdaftar kamu";
static String m30(count, storageSaved) =>
static String m31(count, storageSaved) =>
"Kamu telah menghapus ${Intl.plural(count, other: '${count} file duplikat')} dan membersihkan (${storageSaved}!)";
static String m32(newEmail) => "Email diubah menjadi ${newEmail}";
static String m33(newEmail) => "Email diubah menjadi ${newEmail}";
static String m33(email) =>
static String m35(email) =>
"${email} tidak punya akun Ente.\n\nUndang dia untuk berbagi foto.";
static String m35(count, formattedNumber) =>
static String m37(count, formattedNumber) =>
"${Intl.plural(count, other: '${formattedNumber} file')} di perangkat ini telah berhasil dicadangkan";
static String m36(count, formattedNumber) =>
static String m38(count, formattedNumber) =>
"${Intl.plural(count, other: '${formattedNumber} file')} dalam album ini telah berhasil dicadangkan";
static String m4(storageAmountInGB) =>
"${storageAmountInGB} GB setiap kali orang mendaftar dengan paket berbayar lalu menerapkan kode milikmu";
static String m37(endDate) => "Percobaan gratis berlaku hingga ${endDate}";
static String m39(endDate) => "Percobaan gratis berlaku hingga ${endDate}";
static String m38(count) =>
static String m40(count) =>
"Kamu masih bisa mengakses ${Intl.plural(count, other: 'filenya')} di Ente selama kamu masih berlangganan";
static String m39(sizeInMBorGB) => "Bersihkan ${sizeInMBorGB}";
static String m41(sizeInMBorGB) => "Bersihkan ${sizeInMBorGB}";
static String m40(count, formattedSize) =>
static String m42(count, formattedSize) =>
"${Intl.plural(count, other: 'File tersebut bisa dihapus dari perangkat ini untuk membersihkan ${formattedSize}')}";
static String m41(currentlyProcessing, totalCount) =>
static String m43(currentlyProcessing, totalCount) =>
"Memproses ${currentlyProcessing} / ${totalCount}";
static String m42(count) => "${Intl.plural(count, other: '${count} item')}";
static String m44(count) => "${Intl.plural(count, other: '${count} item')}";
static String m44(expiryTime) => "Link akan kedaluwarsa pada ${expiryTime}";
static String m46(expiryTime) => "Link akan kedaluwarsa pada ${expiryTime}";
static String m5(count, formattedCount) =>
"${Intl.plural(count, zero: 'tiada kenangan', one: '${formattedCount} kenangan', other: '${formattedCount} kenangan')}";
static String m45(count) => "${Intl.plural(count, other: 'Pindahkan item')}";
static String m49(count) => "${Intl.plural(count, other: 'Pindahkan item')}";
static String m46(albumName) => "Berhasil dipindahkan ke ${albumName}";
static String m50(albumName) => "Berhasil dipindahkan ke ${albumName}";
static String m49(familyAdminEmail) =>
static String m53(familyAdminEmail) =>
"Harap hubungi ${familyAdminEmail} untuk mengubah kode kamu.";
static String m0(passwordStrengthValue) =>
"Keamanan sandi: ${passwordStrengthValue}";
static String m50(providerName) =>
static String m54(providerName) =>
"Harap hubungi dukungan ${providerName} jika kamu dikenai biaya";
static String m52(endDate) =>
static String m56(endDate) =>
"Percobaan gratis berlaku hingga ${endDate}.\nKamu dapat memilih paket berbayar setelahnya.";
static String m53(toEmail) => "Silakan kirimi kami email di ${toEmail}";
static String m57(toEmail) => "Silakan kirimi kami email di ${toEmail}";
static String m54(toEmail) => "Silakan kirim log-nya ke \n${toEmail}";
static String m58(toEmail) => "Silakan kirim log-nya ke \n${toEmail}";
static String m56(storeName) => "Beri nilai di ${storeName}";
static String m60(storeName) => "Beri nilai di ${storeName}";
static String m60(storageInGB) =>
static String m65(storageInGB) =>
"3. Kalian berdua mendapat ${storageInGB} GB* gratis";
static String m61(userEmail) =>
static String m66(userEmail) =>
"${userEmail} akan dikeluarkan dari album berbagi ini\n\nSemua foto yang ia tambahkan juga akan dihapus dari album ini";
static String m62(endDate) => "Langganan akan diperpanjang pada ${endDate}";
static String m67(endDate) => "Langganan akan diperpanjang pada ${endDate}";
static String m63(count) =>
static String m68(count) =>
"${Intl.plural(count, other: '${count} hasil ditemukan')}";
static String m6(count) => "${count} terpilih";
static String m65(count, yourCount) =>
static String m70(count, yourCount) =>
"${count} dipilih (${yourCount} milikmu)";
static String m66(verificationID) =>
static String m71(verificationID) =>
"Ini ID Verifikasi saya di ente.io: ${verificationID}.";
static String m7(verificationID) =>
"Halo, bisakah kamu pastikan bahwa ini adalah ID Verifikasi ente.io milikmu: ${verificationID}";
static String m67(referralCode, referralStorageInGB) =>
static String m72(referralCode, referralStorageInGB) =>
"Kode rujukan Ente: ${referralCode} \n\nTerapkan pada Pengaturan → Umum → Rujukan untuk mendapatkan ${referralStorageInGB} GB gratis setelah kamu mendaftar paket berbayar\n\nhttps://ente.io";
static String m68(numberOfPeople) =>
static String m73(numberOfPeople) =>
"${Intl.plural(numberOfPeople, zero: 'Bagikan dengan orang tertentu', one: 'Berbagi dengan 1 orang', other: 'Berbagi dengan ${numberOfPeople} orang')}";
static String m69(emailIDs) => "Dibagikan dengan ${emailIDs}";
static String m74(emailIDs) => "Dibagikan dengan ${emailIDs}";
static String m70(fileType) =>
static String m75(fileType) =>
"${fileType} ini akan dihapus dari perangkat ini.";
static String m71(fileType) =>
static String m76(fileType) =>
"${fileType} ini tersimpan di Ente dan juga di perangkat ini.";
static String m72(fileType) => "${fileType} ini akan dihapus dari Ente.";
static String m77(fileType) => "${fileType} ini akan dihapus dari Ente.";
static String m1(storageAmountInGB) => "${storageAmountInGB} GB";
static String m73(
static String m78(
usedAmount, usedStorageUnit, totalAmount, totalStorageUnit) =>
"${usedAmount} ${usedStorageUnit} dari ${totalAmount} ${totalStorageUnit} terpakai";
static String m74(id) =>
static String m79(id) =>
"${id} kamu telah terhubung dengan akun Ente lain.\nJika kamu ingin menggunakan ${id} kamu untuk akun ini, silahkan hubungi tim bantuan kami";
static String m75(endDate) =>
static String m80(endDate) =>
"Langganan kamu akan dibatalkan pada ${endDate}";
static String m8(storageAmountInGB) =>
"Ia juga mendapat ${storageAmountInGB} GB";
static String m78(email) => "Ini adalah ID Verifikasi milik ${email}";
static String m83(email) => "Ini adalah ID Verifikasi milik ${email}";
static String m84(endDate) => "Berlaku hingga ${endDate}";
static String m89(endDate) => "Berlaku hingga ${endDate}";
static String m85(email) => "Verifikasi ${email}";
static String m90(email) => "Verifikasi ${email}";
static String m2(email) =>
"Kami telah mengirimkan email ke <green>${email}</green>";
static String m87(count) =>
static String m92(count) =>
"${Intl.plural(count, other: '${count} tahun lalu')}";
static String m88(storageSaved) =>
static String m93(storageSaved) =>
"Kamu telah berhasil membersihkan ${storageSaved}!";
final messages = _notInlinedMessages(_notInlinedMessages);
@@ -219,14 +219,14 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage("Tambah email baru"),
"addCollaborator":
MessageLookupByLibrary.simpleMessage("Tambah kolaborator"),
"addCollaborators": m9,
"addCollaborators": m10,
"addFromDevice":
MessageLookupByLibrary.simpleMessage("Tambahkan dari perangkat"),
"addItem": m10,
"addItem": m11,
"addLocation": MessageLookupByLibrary.simpleMessage("Tambah tempat"),
"addLocationButton": MessageLookupByLibrary.simpleMessage("Tambah"),
"addMore": MessageLookupByLibrary.simpleMessage("Tambah lagi"),
"addOnValidTill": m11,
"addOnValidTill": m12,
"addPhotos": MessageLookupByLibrary.simpleMessage("Tambah foto"),
"addSelected":
MessageLookupByLibrary.simpleMessage("Tambahkan yang dipilih"),
@@ -236,8 +236,8 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage("Tambah ke album tersembunyi"),
"addViewer": MessageLookupByLibrary.simpleMessage("Tambahkan pemirsa"),
"addedAs": MessageLookupByLibrary.simpleMessage("Ditambahkan sebagai"),
"addedBy": m13,
"addedSuccessfullyTo": m14,
"addedBy": m14,
"addedSuccessfullyTo": m15,
"addingToFavorites":
MessageLookupByLibrary.simpleMessage("Menambahkan ke favorit..."),
"advanced": MessageLookupByLibrary.simpleMessage("Lanjutan"),
@@ -248,7 +248,7 @@ class MessageLookup extends MessageLookupByLibrary {
"after1Week": MessageLookupByLibrary.simpleMessage("Setelah 1 minggu"),
"after1Year": MessageLookupByLibrary.simpleMessage("Setelah 1 tahun"),
"albumOwner": MessageLookupByLibrary.simpleMessage("Pemilik"),
"albumParticipantsCount": m15,
"albumParticipantsCount": m16,
"albumTitle": MessageLookupByLibrary.simpleMessage("Judul album"),
"albumUpdated":
MessageLookupByLibrary.simpleMessage("Album diperbarui"),
@@ -279,7 +279,7 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage("Android, iOS, Web, Desktop"),
"androidSignInTitle":
MessageLookupByLibrary.simpleMessage("Autentikasi diperlukan"),
"appVersion": m16,
"appVersion": m17,
"appleId": MessageLookupByLibrary.simpleMessage("ID Apple"),
"apply": MessageLookupByLibrary.simpleMessage("Terapkan"),
"applyCodeTitle": MessageLookupByLibrary.simpleMessage("Terapkan kode"),
@@ -345,7 +345,7 @@ class MessageLookup extends MessageLookupByLibrary {
"autoPairDesc": MessageLookupByLibrary.simpleMessage(
"Taut otomatis hanya tersedia di perangkat yang mendukung Chromecast."),
"available": MessageLookupByLibrary.simpleMessage("Tersedia"),
"availableStorageSpace": m17,
"availableStorageSpace": m18,
"backedUpFolders":
MessageLookupByLibrary.simpleMessage("Folder yang dicadangkan"),
"backup": MessageLookupByLibrary.simpleMessage("Pencadangan"),
@@ -368,7 +368,7 @@ class MessageLookup extends MessageLookupByLibrary {
"canOnlyRemoveFilesOwnedByYou": MessageLookupByLibrary.simpleMessage(
"Hanya dapat menghapus berkas yang dimiliki oleh mu"),
"cancel": MessageLookupByLibrary.simpleMessage("Batal"),
"cancelOtherSubscription": m18,
"cancelOtherSubscription": m19,
"cancelSubscription":
MessageLookupByLibrary.simpleMessage("Batalkan langganan"),
"cannotAddMorePhotosAfterBecomingViewer": m3,
@@ -401,7 +401,7 @@ class MessageLookup extends MessageLookupByLibrary {
"claimMore":
MessageLookupByLibrary.simpleMessage("Peroleh lebih banyak!"),
"claimed": MessageLookupByLibrary.simpleMessage("Diperoleh"),
"claimedStorageSoFar": m19,
"claimedStorageSoFar": m20,
"clearIndexes": MessageLookupByLibrary.simpleMessage("Hapus indeks"),
"click": MessageLookupByLibrary.simpleMessage("• Click"),
"close": MessageLookupByLibrary.simpleMessage("Tutup"),
@@ -417,7 +417,7 @@ class MessageLookup extends MessageLookupByLibrary {
"Buat link untuk memungkinkan orang lain menambahkan dan melihat foto yang ada pada album bersama kamu tanpa memerlukan app atau akun Ente. Ideal untuk mengumpulkan foto pada suatu acara."),
"collaborativeLink":
MessageLookupByLibrary.simpleMessage("Link kolaborasi"),
"collaborativeLinkCreatedFor": m20,
"collaborativeLinkCreatedFor": m21,
"collaborator": MessageLookupByLibrary.simpleMessage("Kolaborator"),
"collaboratorsCanAddPhotosAndVideosToTheSharedAlbum":
MessageLookupByLibrary.simpleMessage(
@@ -443,10 +443,10 @@ class MessageLookup extends MessageLookupByLibrary {
"Konfirmasi kunci pemulihan kamu"),
"connectToDevice":
MessageLookupByLibrary.simpleMessage("Hubungkan ke perangkat"),
"contactFamilyAdmin": m23,
"contactFamilyAdmin": m24,
"contactSupport":
MessageLookupByLibrary.simpleMessage("Hubungi dukungan"),
"contactToManageSubscription": m24,
"contactToManageSubscription": m25,
"contacts": MessageLookupByLibrary.simpleMessage("Kontak"),
"continueLabel": MessageLookupByLibrary.simpleMessage("Lanjut"),
"continueOnFreeTrial": MessageLookupByLibrary.simpleMessage(
@@ -487,7 +487,7 @@ class MessageLookup extends MessageLookupByLibrary {
"currentUsageIs":
MessageLookupByLibrary.simpleMessage("Pemakaian saat ini sebesar "),
"custom": MessageLookupByLibrary.simpleMessage("Kustom"),
"customEndpoint": m25,
"customEndpoint": m26,
"darkTheme": MessageLookupByLibrary.simpleMessage("Gelap"),
"dayToday": MessageLookupByLibrary.simpleMessage("Hari Ini"),
"dayYesterday": MessageLookupByLibrary.simpleMessage("Kemarin"),
@@ -516,9 +516,9 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage("Hapus dari perangkat ini"),
"deleteFromEnte":
MessageLookupByLibrary.simpleMessage("Hapus dari Ente"),
"deleteItemCount": m26,
"deleteItemCount": m27,
"deletePhotos": MessageLookupByLibrary.simpleMessage("Hapus foto"),
"deleteProgress": m27,
"deleteProgress": m28,
"deleteReason1": MessageLookupByLibrary.simpleMessage(
"Fitur penting yang saya perlukan tidak ada"),
"deleteReason2": MessageLookupByLibrary.simpleMessage(
@@ -554,7 +554,7 @@ class MessageLookup extends MessageLookupByLibrary {
"Orang yang melihat masih bisa mengambil tangkapan layar atau menyalin foto kamu menggunakan alat eksternal"),
"disableDownloadWarningTitle":
MessageLookupByLibrary.simpleMessage("Perlu diketahui"),
"disableLinkMessage": m28,
"disableLinkMessage": m29,
"disableTwofactor": MessageLookupByLibrary.simpleMessage(
"Nonaktifkan autentikasi dua langkah"),
"disablingTwofactorAuthentication":
@@ -589,8 +589,8 @@ class MessageLookup extends MessageLookupByLibrary {
"downloadFailed":
MessageLookupByLibrary.simpleMessage("Gagal mengunduh"),
"downloading": MessageLookupByLibrary.simpleMessage("Mengunduh..."),
"dropSupportEmail": m29,
"duplicateFileCountWithStorageSaved": m30,
"dropSupportEmail": m30,
"duplicateFileCountWithStorageSaved": m31,
"edit": MessageLookupByLibrary.simpleMessage("Edit"),
"editLocation": MessageLookupByLibrary.simpleMessage("Edit lokasi"),
"editLocationTagTitle":
@@ -602,8 +602,8 @@ class MessageLookup extends MessageLookupByLibrary {
"Perubahan lokasi hanya akan terlihat di Ente"),
"eligible": MessageLookupByLibrary.simpleMessage("memenuhi syarat"),
"email": MessageLookupByLibrary.simpleMessage("Email"),
"emailChangedTo": m32,
"emailNoEnteAccount": m33,
"emailChangedTo": m33,
"emailNoEnteAccount": m35,
"emailVerificationToggle":
MessageLookupByLibrary.simpleMessage("Verifikasi email"),
"empty": MessageLookupByLibrary.simpleMessage("Kosongkan"),
@@ -700,8 +700,8 @@ class MessageLookup extends MessageLookupByLibrary {
"fileTypes": MessageLookupByLibrary.simpleMessage("Jenis file"),
"fileTypesAndNames":
MessageLookupByLibrary.simpleMessage("Nama dan jenis file"),
"filesBackedUpFromDevice": m35,
"filesBackedUpInAlbum": m36,
"filesBackedUpFromDevice": m37,
"filesBackedUpInAlbum": m38,
"filesDeleted": MessageLookupByLibrary.simpleMessage("File terhapus"),
"filesSavedToGallery":
MessageLookupByLibrary.simpleMessage("File tersimpan ke galeri"),
@@ -719,19 +719,19 @@ class MessageLookup extends MessageLookupByLibrary {
"freeStorageUsable": MessageLookupByLibrary.simpleMessage(
"Kuota gratis yang dapat digunakan"),
"freeTrial": MessageLookupByLibrary.simpleMessage("Percobaan gratis"),
"freeTrialValidTill": m37,
"freeUpAccessPostDelete": m38,
"freeUpAmount": m39,
"freeTrialValidTill": m39,
"freeUpAccessPostDelete": m40,
"freeUpAmount": m41,
"freeUpDeviceSpace": MessageLookupByLibrary.simpleMessage(
"Bersihkan penyimpanan perangkat"),
"freeUpDeviceSpaceDesc": MessageLookupByLibrary.simpleMessage(
"Hemat ruang penyimpanan di perangkatmu dengan membersihkan file yang sudah tercadangkan."),
"freeUpSpace": MessageLookupByLibrary.simpleMessage("Bersihkan ruang"),
"freeUpSpaceSaving": m40,
"freeUpSpaceSaving": m42,
"general": MessageLookupByLibrary.simpleMessage("Umum"),
"generatingEncryptionKeys": MessageLookupByLibrary.simpleMessage(
"Menghasilkan kunci enkripsi..."),
"genericProgress": m41,
"genericProgress": m43,
"goToSettings": MessageLookupByLibrary.simpleMessage("Buka pengaturan"),
"googlePlayId": MessageLookupByLibrary.simpleMessage("ID Google Play"),
"grantFullAccessPrompt": MessageLookupByLibrary.simpleMessage(
@@ -791,7 +791,7 @@ class MessageLookup extends MessageLookupByLibrary {
"itLooksLikeSomethingWentWrongPleaseRetryAfterSome":
MessageLookupByLibrary.simpleMessage(
"Sepertinya terjadi kesalahan. Silakan coba lagi setelah beberapa saat. Jika kesalahan terus terjadi, silakan hubungi tim dukungan kami."),
"itemCount": m42,
"itemCount": m44,
"itemsWillBeRemovedFromAlbum": MessageLookupByLibrary.simpleMessage(
"Item yang dipilih akan dihapus dari album ini"),
"joinDiscord":
@@ -818,7 +818,7 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage("Batas perangkat"),
"linkEnabled": MessageLookupByLibrary.simpleMessage("Aktif"),
"linkExpired": MessageLookupByLibrary.simpleMessage("Kedaluwarsa"),
"linkExpiresOn": m44,
"linkExpiresOn": m46,
"linkExpiry":
MessageLookupByLibrary.simpleMessage("Waktu kedaluwarsa link"),
"linkHasExpired":
@@ -898,10 +898,10 @@ class MessageLookup extends MessageLookupByLibrary {
"moderateStrength": MessageLookupByLibrary.simpleMessage("Sedang"),
"moments": MessageLookupByLibrary.simpleMessage("Momen"),
"monthly": MessageLookupByLibrary.simpleMessage("Bulanan"),
"moveItem": m45,
"moveItem": m49,
"moveToHiddenAlbum": MessageLookupByLibrary.simpleMessage(
"Pindahkan ke album tersembunyi"),
"movedSuccessfullyTo": m46,
"movedSuccessfullyTo": m50,
"movedToTrash":
MessageLookupByLibrary.simpleMessage("Pindah ke sampah"),
"movingFilesToAlbum": MessageLookupByLibrary.simpleMessage(
@@ -952,7 +952,7 @@ class MessageLookup extends MessageLookupByLibrary {
"onDevice": MessageLookupByLibrary.simpleMessage("Di perangkat ini"),
"onEnte": MessageLookupByLibrary.simpleMessage(
"Di <branding>ente</branding>"),
"onlyFamilyAdminCanChangeCode": m49,
"onlyFamilyAdminCanChangeCode": m53,
"oops": MessageLookupByLibrary.simpleMessage("Aduh"),
"oopsCouldNotSaveEdits": MessageLookupByLibrary.simpleMessage(
"Aduh, tidak dapat menyimpan perubahan"),
@@ -966,8 +966,6 @@ class MessageLookup extends MessageLookupByLibrary {
"Opsional, pendek pun tak apa..."),
"orPickAnExistingOne":
MessageLookupByLibrary.simpleMessage("Atau pilih yang sudah ada"),
"orPickFromYourContacts":
MessageLookupByLibrary.simpleMessage("or pick from your contacts"),
"pair": MessageLookupByLibrary.simpleMessage("Tautkan"),
"pairWithPin":
MessageLookupByLibrary.simpleMessage("Tautkan dengan PIN"),
@@ -990,7 +988,7 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage("Pembayaran gagal"),
"paymentFailedMessage": MessageLookupByLibrary.simpleMessage(
"Sayangnya, pembayaranmu gagal. Silakan hubungi tim bantuan agar dapat kami bantu!"),
"paymentFailedTalkToProvider": m50,
"paymentFailedTalkToProvider": m54,
"pendingItems": MessageLookupByLibrary.simpleMessage("Item menunggu"),
"pendingSync":
MessageLookupByLibrary.simpleMessage("Sinkronisasi tertunda"),
@@ -1013,7 +1011,7 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage(
"Foto yang telah kamu tambahkan akan dihapus dari album ini"),
"playOnTv": MessageLookupByLibrary.simpleMessage("Putar album di TV"),
"playStoreFreeTrialValidTill": m52,
"playStoreFreeTrialValidTill": m56,
"playstoreSubscription":
MessageLookupByLibrary.simpleMessage("Langganan PlayStore"),
"pleaseCheckYourInternetConnectionAndTryAgain":
@@ -1025,12 +1023,12 @@ class MessageLookup extends MessageLookupByLibrary {
"pleaseContactSupportIfTheProblemPersists":
MessageLookupByLibrary.simpleMessage(
"Silakan hubungi tim bantuan jika masalah terus terjadi"),
"pleaseEmailUsAt": m53,
"pleaseEmailUsAt": m57,
"pleaseGrantPermissions":
MessageLookupByLibrary.simpleMessage("Harap berikan izin"),
"pleaseLoginAgain":
MessageLookupByLibrary.simpleMessage("Silakan masuk akun lagi"),
"pleaseSendTheLogsTo": m54,
"pleaseSendTheLogsTo": m58,
"pleaseTryAgain":
MessageLookupByLibrary.simpleMessage("Silakan coba lagi"),
"pleaseVerifyTheCodeYouHaveEntered":
@@ -1064,7 +1062,7 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage("Buat tiket dukungan"),
"rateTheApp": MessageLookupByLibrary.simpleMessage("Nilai app ini"),
"rateUs": MessageLookupByLibrary.simpleMessage("Beri kami nilai"),
"rateUsOnStore": m56,
"rateUsOnStore": m60,
"recover": MessageLookupByLibrary.simpleMessage("Pulihkan"),
"recoverAccount": MessageLookupByLibrary.simpleMessage("Pulihkan akun"),
"recoverButton": MessageLookupByLibrary.simpleMessage("Pulihkan"),
@@ -1092,7 +1090,7 @@ class MessageLookup extends MessageLookupByLibrary {
"1. Berikan kode ini ke teman kamu"),
"referralStep2": MessageLookupByLibrary.simpleMessage(
"2. Ia perlu daftar ke paket berbayar"),
"referralStep3": m60,
"referralStep3": m65,
"referrals": MessageLookupByLibrary.simpleMessage("Referensi"),
"referralsAreCurrentlyPaused":
MessageLookupByLibrary.simpleMessage("Rujukan sedang dijeda"),
@@ -1114,7 +1112,7 @@ class MessageLookup extends MessageLookupByLibrary {
"removeLink": MessageLookupByLibrary.simpleMessage("Hapus link"),
"removeParticipant":
MessageLookupByLibrary.simpleMessage("Hapus peserta"),
"removeParticipantBody": m61,
"removeParticipantBody": m66,
"removePersonLabel":
MessageLookupByLibrary.simpleMessage("Hapus label orang"),
"removePublicLink":
@@ -1130,7 +1128,7 @@ class MessageLookup extends MessageLookupByLibrary {
"renameFile": MessageLookupByLibrary.simpleMessage("Ubah nama file"),
"renewSubscription":
MessageLookupByLibrary.simpleMessage("Perpanjang langganan"),
"renewsOn": m62,
"renewsOn": m67,
"reportABug": MessageLookupByLibrary.simpleMessage("Laporkan bug"),
"reportBug": MessageLookupByLibrary.simpleMessage("Laporkan bug"),
"resendEmail":
@@ -1181,7 +1179,7 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage("Album, nama dan jenis file"),
"searchHint5": MessageLookupByLibrary.simpleMessage(
"Segera tiba: Penelusuran wajah & ajaib ✨"),
"searchResultCount": m63,
"searchResultCount": m68,
"security": MessageLookupByLibrary.simpleMessage("Keamanan"),
"selectALocation": MessageLookupByLibrary.simpleMessage("Pilih lokasi"),
"selectALocationFirst": MessageLookupByLibrary.simpleMessage(
@@ -1207,7 +1205,7 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage(
"Item terpilih akan dihapus dari semua album dan dipindahkan ke sampah."),
"selectedPhotos": m6,
"selectedPhotosWithYours": m65,
"selectedPhotosWithYours": m70,
"send": MessageLookupByLibrary.simpleMessage("Kirim"),
"sendEmail": MessageLookupByLibrary.simpleMessage("Kirim email"),
"sendInvite": MessageLookupByLibrary.simpleMessage("Kirim undangan"),
@@ -1228,16 +1226,16 @@ class MessageLookup extends MessageLookupByLibrary {
"shareAnAlbumNow":
MessageLookupByLibrary.simpleMessage("Bagikan album sekarang"),
"shareLink": MessageLookupByLibrary.simpleMessage("Bagikan link"),
"shareMyVerificationID": m66,
"shareMyVerificationID": m71,
"shareOnlyWithThePeopleYouWant": MessageLookupByLibrary.simpleMessage(
"Bagikan hanya dengan orang yang kamu inginkan"),
"shareTextConfirmOthersVerificationID": m7,
"shareTextRecommendUsingEnte": MessageLookupByLibrary.simpleMessage(
"Unduh Ente agar kita bisa berbagi foto dan video kualitas asli dengan mudah\n\nhttps://ente.io"),
"shareTextReferralCode": m67,
"shareTextReferralCode": m72,
"shareWithNonenteUsers": MessageLookupByLibrary.simpleMessage(
"Bagikan ke pengguna non-Ente"),
"shareWithPeopleSectionTitle": m68,
"shareWithPeopleSectionTitle": m73,
"shareYourFirstAlbum":
MessageLookupByLibrary.simpleMessage("Bagikan album pertamamu"),
"sharedAlbumSectionDescription": MessageLookupByLibrary.simpleMessage(
@@ -1250,7 +1248,7 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage("Foto terbagi baru"),
"sharedPhotoNotificationsExplanation": MessageLookupByLibrary.simpleMessage(
"Terima notifikasi apabila seseorang menambahkan foto ke album bersama yang kamu ikuti"),
"sharedWith": m69,
"sharedWith": m74,
"sharedWithMe":
MessageLookupByLibrary.simpleMessage("Dibagikan dengan saya"),
"sharedWithYou":
@@ -1265,11 +1263,11 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage("Keluar di perangkat lain"),
"signUpTerms": MessageLookupByLibrary.simpleMessage(
"Saya menyetujui <u-terms>ketentuan layanan</u-terms> dan <u-policy>kebijakan privasi</u-policy> Ente"),
"singleFileDeleteFromDevice": m70,
"singleFileDeleteFromDevice": m75,
"singleFileDeleteHighlight": MessageLookupByLibrary.simpleMessage(
"Ia akan dihapus dari semua album."),
"singleFileInBothLocalAndRemote": m71,
"singleFileInRemoteOnly": m72,
"singleFileInBothLocalAndRemote": m76,
"singleFileInRemoteOnly": m77,
"skip": MessageLookupByLibrary.simpleMessage("Lewati"),
"social": MessageLookupByLibrary.simpleMessage("Sosial"),
"someItemsAreInBothEnteAndYourDevice":
@@ -1314,10 +1312,10 @@ class MessageLookup extends MessageLookupByLibrary {
"storageInGB": m1,
"storageLimitExceeded": MessageLookupByLibrary.simpleMessage(
"Batas penyimpanan terlampaui"),
"storageUsageInfo": m73,
"storageUsageInfo": m78,
"strongStrength": MessageLookupByLibrary.simpleMessage("Kuat"),
"subAlreadyLinkedErrMessage": m74,
"subWillBeCancelledOn": m75,
"subAlreadyLinkedErrMessage": m79,
"subWillBeCancelledOn": m80,
"subscribe": MessageLookupByLibrary.simpleMessage("Berlangganan"),
"subscription": MessageLookupByLibrary.simpleMessage("Langganan"),
"success": MessageLookupByLibrary.simpleMessage("Berhasil"),
@@ -1371,7 +1369,7 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage("Email ini telah digunakan"),
"thisImageHasNoExifData": MessageLookupByLibrary.simpleMessage(
"Gambar ini tidak memiliki data exif"),
"thisIsPersonVerificationId": m78,
"thisIsPersonVerificationId": m83,
"thisIsYourVerificationId": MessageLookupByLibrary.simpleMessage(
"Ini adalah ID Verifikasi kamu"),
"thisWillLogYouOutOfTheFollowingDevice":
@@ -1437,14 +1435,14 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage("Gunakan kunci pemulihan"),
"useSelectedPhoto":
MessageLookupByLibrary.simpleMessage("Gunakan foto terpilih"),
"validTill": m84,
"validTill": m89,
"verificationFailedPleaseTryAgain":
MessageLookupByLibrary.simpleMessage(
"Verifikasi gagal, silakan coba lagi"),
"verificationId": MessageLookupByLibrary.simpleMessage("ID Verifikasi"),
"verify": MessageLookupByLibrary.simpleMessage("Verifikasi"),
"verifyEmail": MessageLookupByLibrary.simpleMessage("Verifikasi email"),
"verifyEmailID": m85,
"verifyEmailID": m90,
"verifyPasskey":
MessageLookupByLibrary.simpleMessage("Verifikasi passkey"),
"verifyPassword":
@@ -1480,7 +1478,7 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage("Selamat datang kembali!"),
"whatsNew": MessageLookupByLibrary.simpleMessage("Hal yang baru"),
"yearly": MessageLookupByLibrary.simpleMessage("Tahunan"),
"yearsAgo": m87,
"yearsAgo": m92,
"yes": MessageLookupByLibrary.simpleMessage("Ya"),
"yesCancel": MessageLookupByLibrary.simpleMessage("Ya, batalkan"),
"yesConvertToViewer":
@@ -1507,7 +1505,7 @@ class MessageLookup extends MessageLookupByLibrary {
"Kamu tidak bisa berbagi dengan dirimu sendiri"),
"youDontHaveAnyArchivedItems": MessageLookupByLibrary.simpleMessage(
"Kamu tidak memiliki item di arsip."),
"youHaveSuccessfullyFreedUp": m88,
"youHaveSuccessfullyFreedUp": m93,
"yourAccountHasBeenDeleted":
MessageLookupByLibrary.simpleMessage("Akunmu telah dihapus"),
"yourMap": MessageLookupByLibrary.simpleMessage("Peta kamu"),
@@ -1528,9 +1526,6 @@ class MessageLookup extends MessageLookupByLibrary {
"Langgananmu telah berhasil diperbarui"),
"yourVerificationCodeHasExpired": MessageLookupByLibrary.simpleMessage(
"Kode verifikasi kamu telah kedaluwarsa"),
"youveNoDuplicateFilesThatCanBeCleared":
MessageLookupByLibrary.simpleMessage(
"Kamu tidak memiliki file duplikat yang dapat dihapus"),
"zoomOutToSeePhotos": MessageLookupByLibrary.simpleMessage(
"Perkecil peta untuk melihat foto lainnya")
};

View File

@@ -20,37 +20,39 @@ typedef String MessageIfAbsent(String messageStr, List<dynamic> args);
class MessageLookup extends MessageLookupByLibrary {
String get localeName => 'it';
static String m9(count) =>
"${Intl.plural(count, zero: 'Aggiungi collaboratore', one: 'Aggiungi collaboratore', other: 'Aggiungi collaboratori')}";
static String m9(title) => "${title} (Io)";
static String m10(count) =>
"${Intl.plural(count, zero: 'Aggiungi collaboratore', one: 'Aggiungi collaboratore', other: 'Aggiungi collaboratori')}";
static String m11(count) =>
"${Intl.plural(count, one: 'Aggiungi elemento', other: 'Aggiungi elementi')}";
static String m11(storageAmount, endDate) =>
static String m12(storageAmount, endDate) =>
"Il tuo spazio aggiuntivo di ${storageAmount} è valido fino al ${endDate}";
static String m12(count) =>
static String m13(count) =>
"${Intl.plural(count, zero: 'Aggiungi visualizzatore', one: 'Aggiungi visualizzatore', other: 'Aggiungi visualizzatori')}";
static String m13(emailOrName) => "Aggiunto da ${emailOrName}";
static String m14(emailOrName) => "Aggiunto da ${emailOrName}";
static String m14(albumName) => "Aggiunto con successo su ${albumName}";
static String m15(albumName) => "Aggiunto con successo su ${albumName}";
static String m15(count) =>
static String m16(count) =>
"${Intl.plural(count, zero: 'Nessun partecipante', one: '1 Partecipante', other: '${count} Partecipanti')}";
static String m16(versionValue) => "Versione: ${versionValue}";
static String m17(versionValue) => "Versione: ${versionValue}";
static String m17(freeAmount, storageUnit) =>
static String m18(freeAmount, storageUnit) =>
"${freeAmount} ${storageUnit} liberi";
static String m18(paymentProvider) =>
static String m19(paymentProvider) =>
"Annulla prima il tuo abbonamento esistente da ${paymentProvider}";
static String m3(user) =>
"${user} non sarà più in grado di aggiungere altre foto a questo album\n\nSarà ancora in grado di rimuovere le foto esistenti aggiunte da lui o lei";
static String m19(isFamilyMember, storageAmountInGb) =>
static String m20(isFamilyMember, storageAmountInGb) =>
"${Intl.select(isFamilyMember, {
'true':
'Il tuo piano famiglia ha già richiesto ${storageAmountInGb} GB finora',
@@ -58,206 +60,210 @@ class MessageLookup extends MessageLookupByLibrary {
'other': 'Hai già richiesto ${storageAmountInGb} GB finora!',
})}";
static String m20(albumName) => "Link collaborativo creato per ${albumName}";
static String m21(albumName) => "Link collaborativo creato per ${albumName}";
static String m21(count) =>
static String m22(count) =>
"${Intl.plural(count, zero: 'Aggiunti 0 collaboratori', one: 'Aggiunto 1 collaboratore', other: 'Aggiunti ${count} collaboratori')}";
static String m22(email, numOfDays) =>
static String m23(email, numOfDays) =>
"Stai per aggiungere ${email} come contatto fidato. Potranno recuperare il tuo account se sei assente per ${numOfDays} giorni.";
static String m23(familyAdminEmail) =>
static String m24(familyAdminEmail) =>
"Contatta <green>${familyAdminEmail}</green> per gestire il tuo abbonamento";
static String m24(provider) =>
static String m25(provider) =>
"Scrivi all\'indirizzo support@ente.io per gestire il tuo abbonamento ${provider}.";
static String m25(endpoint) => "Connesso a ${endpoint}";
static String m26(endpoint) => "Connesso a ${endpoint}";
static String m26(count) =>
static String m27(count) =>
"${Intl.plural(count, one: 'Elimina ${count} elemento', other: 'Elimina ${count} elementi')}";
static String m27(currentlyDeleting, totalCount) =>
static String m28(currentlyDeleting, totalCount) =>
"Eliminazione di ${currentlyDeleting} / ${totalCount}";
static String m28(albumName) =>
static String m29(albumName) =>
"Questo rimuoverà il link pubblico per accedere a \"${albumName}\".";
static String m29(supportEmail) =>
static String m30(supportEmail) =>
"Per favore invia un\'email a ${supportEmail} dall\'indirizzo email con cui ti sei registrato";
static String m30(count, storageSaved) =>
static String m31(count, storageSaved) =>
"Hai ripulito ${Intl.plural(count, one: '${count} doppione', other: '${count} doppioni')}, salvando (${storageSaved}!)";
static String m31(count, formattedSize) =>
static String m32(count, formattedSize) =>
"${count} file, ${formattedSize} l\'uno";
static String m32(newEmail) => "Email cambiata in ${newEmail}";
static String m33(newEmail) => "Email cambiata in ${newEmail}";
static String m33(email) =>
static String m35(email) =>
"${email} non ha un account Ente.\n\nInvia un invito per condividere foto.";
static String m34(text) => "Trovate foto aggiuntive per ${text}";
static String m36(text) => "Trovate foto aggiuntive per ${text}";
static String m35(count, formattedNumber) =>
static String m37(count, formattedNumber) =>
"${Intl.plural(count, one: '1 file', other: '${formattedNumber} file')} di quest\'album sono stati salvati in modo sicuro";
static String m36(count, formattedNumber) =>
static String m38(count, formattedNumber) =>
"${Intl.plural(count, one: '1 file', other: '${formattedNumber} file')} di quest\'album sono stati salvati in modo sicuro";
static String m4(storageAmountInGB) =>
"${storageAmountInGB} GB ogni volta che qualcuno si iscrive a un piano a pagamento e applica il tuo codice";
static String m37(endDate) => "La prova gratuita termina il ${endDate}";
static String m39(endDate) => "La prova gratuita termina il ${endDate}";
static String m38(count) =>
static String m40(count) =>
"Puoi ancora accedere a ${Intl.plural(count, one: '', other: 'loro')} su ente finché hai un abbonamento attivo";
static String m39(sizeInMBorGB) => "Libera ${sizeInMBorGB}";
static String m41(sizeInMBorGB) => "Libera ${sizeInMBorGB}";
static String m40(count, formattedSize) =>
static String m42(count, formattedSize) =>
"${Intl.plural(count, one: 'Può essere cancellata per liberare ${formattedSize}', other: 'Possono essere cancellati per liberare ${formattedSize}')}";
static String m41(currentlyProcessing, totalCount) =>
static String m43(currentlyProcessing, totalCount) =>
"Elaborazione ${currentlyProcessing} / ${totalCount}";
static String m42(count) =>
static String m44(count) =>
"${Intl.plural(count, one: '${count} elemento', other: '${count} elementi')}";
static String m43(email) =>
static String m45(email) =>
"${email} ti ha invitato a essere un contatto fidato";
static String m44(expiryTime) => "Il link scadrà il ${expiryTime}";
static String m46(expiryTime) => "Il link scadrà il ${expiryTime}";
static String m47(email) => "Collega persona a ${email}";
static String m5(count, formattedCount) =>
"${Intl.plural(count, one: '${formattedCount} ricordo', other: '${formattedCount} ricordi')}";
static String m45(count) =>
static String m49(count) =>
"${Intl.plural(count, one: 'Sposta elemento', other: 'Sposta elementi')}";
static String m46(albumName) => "Spostato con successo su ${albumName}";
static String m50(albumName) => "Spostato con successo su ${albumName}";
static String m47(personName) => "Nessun suggerimento per ${personName}";
static String m51(personName) => "Nessun suggerimento per ${personName}";
static String m48(name) => "Non è ${name}?";
static String m52(name) => "Non è ${name}?";
static String m49(familyAdminEmail) =>
static String m53(familyAdminEmail) =>
"Per favore contatta ${familyAdminEmail} per cambiare il tuo codice.";
static String m0(passwordStrengthValue) =>
"Sicurezza password: ${passwordStrengthValue}";
static String m50(providerName) =>
static String m54(providerName) =>
"Si prega di parlare con il supporto di ${providerName} se ti è stato addebitato qualcosa";
static String m51(count) =>
static String m55(count) =>
"${Intl.plural(count, zero: '0 foto', one: '1 foto', other: '${count} foto')}";
static String m52(endDate) =>
static String m56(endDate) =>
"Prova gratuita valida fino al ${endDate}.\nIn seguito potrai scegliere un piano a pagamento.";
static String m53(toEmail) => "Per favore invia un\'email a ${toEmail}";
static String m57(toEmail) => "Per favore invia un\'email a ${toEmail}";
static String m54(toEmail) => "Invia i log a \n${toEmail}";
static String m58(toEmail) => "Invia i log a \n${toEmail}";
static String m55(folderName) => "Elaborando ${folderName}...";
static String m59(folderName) => "Elaborando ${folderName}...";
static String m56(storeName) => "Valutaci su ${storeName}";
static String m60(storeName) => "Valutaci su ${storeName}";
static String m57(days, email) =>
static String m61(name) => "Riassegnato a ${name}";
static String m62(days, email) =>
"Puoi accedere all\'account dopo ${days} giorni. Una notifica verrà inviata a ${email}.";
static String m58(email) =>
static String m63(email) =>
"Ora puoi recuperare l\'account di ${email} impostando una nuova password.";
static String m59(email) =>
static String m64(email) =>
"${email} sta cercando di recuperare il tuo account.";
static String m60(storageInGB) =>
static String m65(storageInGB) =>
"3. Ottenete entrambi ${storageInGB} GB* gratis";
static String m61(userEmail) =>
static String m66(userEmail) =>
"${userEmail} verrà rimosso da questo album condiviso\n\nQualsiasi foto aggiunta dall\'utente verrà rimossa dall\'album";
static String m62(endDate) => "Si rinnova il ${endDate}";
static String m67(endDate) => "Si rinnova il ${endDate}";
static String m63(count) =>
static String m68(count) =>
"${Intl.plural(count, one: '${count} risultato trovato', other: '${count} risultati trovati')}";
static String m6(count) => "${count} selezionati";
static String m65(count, yourCount) =>
static String m70(count, yourCount) =>
"${count} selezionato (${yourCount} tuoi)";
static String m66(verificationID) =>
static String m71(verificationID) =>
"Ecco il mio ID di verifica: ${verificationID} per ente.io.";
static String m7(verificationID) =>
"Hey, puoi confermare che questo è il tuo ID di verifica: ${verificationID} su ente.io";
static String m67(referralCode, referralStorageInGB) =>
static String m72(referralCode, referralStorageInGB) =>
"Codice invito Ente: ${referralCode} \n\nInseriscilo in Impostazioni → Generali → Inviti per ottenere ${referralStorageInGB} GB gratis dopo la sottoscrizione a un piano a pagamento\n\nhttps://ente.io";
static String m68(numberOfPeople) =>
static String m73(numberOfPeople) =>
"${Intl.plural(numberOfPeople, zero: 'Condividi con persone specifiche', one: 'Condividi con una persona', other: 'Condividi con ${numberOfPeople} persone')}";
static String m69(emailIDs) => "Condiviso con ${emailIDs}";
static String m74(emailIDs) => "Condiviso con ${emailIDs}";
static String m70(fileType) =>
static String m75(fileType) =>
"Questo ${fileType} verrà eliminato dal tuo dispositivo.";
static String m71(fileType) =>
static String m76(fileType) =>
"Questo ${fileType} è sia su Ente che sul tuo dispositivo.";
static String m72(fileType) => "Questo ${fileType} verrà eliminato da Ente.";
static String m77(fileType) => "Questo ${fileType} verrà eliminato da Ente.";
static String m1(storageAmountInGB) => "${storageAmountInGB} GB";
static String m73(
static String m78(
usedAmount, usedStorageUnit, totalAmount, totalStorageUnit) =>
"${usedAmount} ${usedStorageUnit} di ${totalAmount} ${totalStorageUnit} utilizzati";
static String m74(id) =>
static String m79(id) =>
"Il tuo ${id} è già collegato a un altro account Ente.\nSe desideri utilizzare il tuo ${id} con questo account, per favore contatta il nostro supporto\'\'";
static String m75(endDate) => "L\'abbonamento verrà cancellato il ${endDate}";
static String m80(endDate) => "L\'abbonamento verrà cancellato il ${endDate}";
static String m76(completed, total) =>
static String m81(completed, total) =>
"${completed}/${total} ricordi conservati";
static String m77(ignoreReason) =>
static String m82(ignoreReason) =>
"Tocca per caricare, il caricamento è attualmente ignorato a causa di ${ignoreReason}";
static String m8(storageAmountInGB) =>
"Anche loro riceveranno ${storageAmountInGB} GB";
static String m78(email) => "Questo è l\'ID di verifica di ${email}";
static String m83(email) => "Questo è l\'ID di verifica di ${email}";
static String m79(count) =>
static String m84(count) =>
"${Intl.plural(count, zero: 'Presto', one: '1 giorno', other: '${count} giorni')}";
static String m80(email) =>
static String m85(email) =>
"Sei stato invitato a essere un contatto Legacy da ${email}.";
static String m82(ignoreReason) =>
static String m87(ignoreReason) =>
"Il caricamento è ignorato a causa di ${ignoreReason}";
static String m83(count) => "Conservando ${count} ricordi...";
static String m88(count) => "Conservando ${count} ricordi...";
static String m84(endDate) => "Valido fino al ${endDate}";
static String m89(endDate) => "Valido fino al ${endDate}";
static String m85(email) => "Verifica ${email}";
static String m90(email) => "Verifica ${email}";
static String m86(count) =>
static String m91(count) =>
"${Intl.plural(count, zero: 'Aggiunti 0 visualizzatori', one: 'Aggiunto 1 visualizzatore', other: 'Aggiunti ${count} visualizzatori')}";
static String m2(email) =>
"Abbiamo inviato una mail a <green>${email}</green>";
static String m87(count) =>
static String m92(count) =>
"${Intl.plural(count, one: '${count} anno fa', other: '${count} anni fa')}";
static String m88(storageSaved) =>
static String m93(storageSaved) =>
"Hai liberato con successo ${storageSaved}!";
final messages = _notInlinedMessages(_notInlinedMessages);
@@ -270,6 +276,7 @@ class MessageLookup extends MessageLookupByLibrary {
"account": MessageLookupByLibrary.simpleMessage("Account"),
"accountIsAlreadyConfigured": MessageLookupByLibrary.simpleMessage(
"L\'account è già configurato."),
"accountOwnerPersonAppbarTitle": m9,
"accountWelcomeBack":
MessageLookupByLibrary.simpleMessage("Bentornato!"),
"ackPasswordLostWarning": MessageLookupByLibrary.simpleMessage(
@@ -282,11 +289,11 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage("Aggiungi una nuova email"),
"addCollaborator":
MessageLookupByLibrary.simpleMessage("Aggiungi collaboratore"),
"addCollaborators": m9,
"addCollaborators": m10,
"addFiles": MessageLookupByLibrary.simpleMessage("Aggiungi File"),
"addFromDevice":
MessageLookupByLibrary.simpleMessage("Aggiungi dal dispositivo"),
"addItem": m10,
"addItem": m11,
"addLocation": MessageLookupByLibrary.simpleMessage("Aggiungi luogo"),
"addLocationButton": MessageLookupByLibrary.simpleMessage("Aggiungi"),
"addMore": MessageLookupByLibrary.simpleMessage("Aggiungi altri"),
@@ -298,7 +305,7 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage("Aggiungi nuova persona"),
"addOnPageSubtitle": MessageLookupByLibrary.simpleMessage(
"Dettagli dei componenti aggiuntivi"),
"addOnValidTill": m11,
"addOnValidTill": m12,
"addOns": MessageLookupByLibrary.simpleMessage("Componenti aggiuntivi"),
"addPhotos": MessageLookupByLibrary.simpleMessage("Aggiungi foto"),
"addSelected":
@@ -312,12 +319,12 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage("Aggiungi contatto fidato"),
"addViewer":
MessageLookupByLibrary.simpleMessage("Aggiungi in sola lettura"),
"addViewers": m12,
"addViewers": m13,
"addYourPhotosNow":
MessageLookupByLibrary.simpleMessage("Aggiungi le tue foto ora"),
"addedAs": MessageLookupByLibrary.simpleMessage("Aggiunto come"),
"addedBy": m13,
"addedSuccessfullyTo": m14,
"addedBy": m14,
"addedSuccessfullyTo": m15,
"addingToFavorites":
MessageLookupByLibrary.simpleMessage("Aggiunto ai preferiti..."),
"advanced": MessageLookupByLibrary.simpleMessage("Avanzate"),
@@ -329,7 +336,7 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage("Dopo una settimana"),
"after1Year": MessageLookupByLibrary.simpleMessage("Dopo un anno"),
"albumOwner": MessageLookupByLibrary.simpleMessage("Proprietario"),
"albumParticipantsCount": m15,
"albumParticipantsCount": m16,
"albumTitle": MessageLookupByLibrary.simpleMessage("Titolo album"),
"albumUpdated":
MessageLookupByLibrary.simpleMessage("Album aggiornato"),
@@ -344,10 +351,14 @@ class MessageLookup extends MessageLookupByLibrary {
"Permetti anche alle persone con il link di aggiungere foto all\'album condiviso."),
"allowAddingPhotos": MessageLookupByLibrary.simpleMessage(
"Consenti l\'aggiunta di foto"),
"allowAppToOpenSharedAlbumLinks": MessageLookupByLibrary.simpleMessage(
"Consenti all\'app di aprire link all\'album condiviso"),
"allowDownloads":
MessageLookupByLibrary.simpleMessage("Consenti download"),
"allowPeopleToAddPhotos": MessageLookupByLibrary.simpleMessage(
"Permetti alle persone di aggiungere foto"),
"allowPermBody": MessageLookupByLibrary.simpleMessage(
"Permetti l\'accesso alle tue foto da Impostazioni in modo che Ente possa visualizzare e fare il backup della tua libreria."),
"allowPermTitle": MessageLookupByLibrary.simpleMessage(
"Consenti l\'accesso alle foto"),
"androidBiometricHint":
@@ -374,7 +385,7 @@ class MessageLookup extends MessageLookupByLibrary {
"appLock": MessageLookupByLibrary.simpleMessage("Blocco app"),
"appLockDescriptions": MessageLookupByLibrary.simpleMessage(
"Scegli tra la schermata di blocco predefinita del dispositivo e una schermata di blocco personalizzata con PIN o password."),
"appVersion": m16,
"appVersion": m17,
"appleId": MessageLookupByLibrary.simpleMessage("Apple ID"),
"apply": MessageLookupByLibrary.simpleMessage("Applica"),
"applyCodeTitle":
@@ -458,11 +469,12 @@ class MessageLookup extends MessageLookupByLibrary {
"autoPairDesc": MessageLookupByLibrary.simpleMessage(
"L\'associazione automatica funziona solo con i dispositivi che supportano Chromecast."),
"available": MessageLookupByLibrary.simpleMessage("Disponibile"),
"availableStorageSpace": m17,
"availableStorageSpace": m18,
"backedUpFolders":
MessageLookupByLibrary.simpleMessage("Cartelle salvate"),
"backup": MessageLookupByLibrary.simpleMessage("Backup"),
"backupFailed": MessageLookupByLibrary.simpleMessage("Backup fallito"),
"backupFile": MessageLookupByLibrary.simpleMessage("File di backup"),
"backupOverMobileData":
MessageLookupByLibrary.simpleMessage("Backup su dati mobili"),
"backupSettings":
@@ -495,7 +507,7 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage("Annulla il recupero"),
"cancelAccountRecoveryBody": MessageLookupByLibrary.simpleMessage(
"Sei sicuro di voler annullare il recupero?"),
"cancelOtherSubscription": m18,
"cancelOtherSubscription": m19,
"cancelSubscription":
MessageLookupByLibrary.simpleMessage("Annulla abbonamento"),
"cannotAddMorePhotosAfterBecomingViewer": m3,
@@ -544,7 +556,7 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage("Richiedi spazio gratuito"),
"claimMore": MessageLookupByLibrary.simpleMessage("Richiedine di più!"),
"claimed": MessageLookupByLibrary.simpleMessage("Riscattato"),
"claimedStorageSoFar": m19,
"claimedStorageSoFar": m20,
"cleanUncategorized":
MessageLookupByLibrary.simpleMessage("Pulisci Senza Categoria"),
"cleanUncategorizedDescription": MessageLookupByLibrary.simpleMessage(
@@ -573,12 +585,12 @@ class MessageLookup extends MessageLookupByLibrary {
"Crea un link per consentire alle persone di aggiungere e visualizzare foto nel tuo album condiviso senza bisogno di un\'applicazione o di un account Ente. Ottimo per raccogliere foto di un evento."),
"collaborativeLink":
MessageLookupByLibrary.simpleMessage("Link collaborativo"),
"collaborativeLinkCreatedFor": m20,
"collaborativeLinkCreatedFor": m21,
"collaborator": MessageLookupByLibrary.simpleMessage("Collaboratore"),
"collaboratorsCanAddPhotosAndVideosToTheSharedAlbum":
MessageLookupByLibrary.simpleMessage(
"I collaboratori possono aggiungere foto e video all\'album condiviso."),
"collaboratorsSuccessfullyAdded": m21,
"collaboratorsSuccessfullyAdded": m22,
"collageLayout": MessageLookupByLibrary.simpleMessage("Disposizione"),
"collageSaved": MessageLookupByLibrary.simpleMessage(
"Collage salvato nella galleria"),
@@ -596,7 +608,7 @@ class MessageLookup extends MessageLookupByLibrary {
"Sei sicuro di voler disattivare l\'autenticazione a due fattori?"),
"confirmAccountDeletion": MessageLookupByLibrary.simpleMessage(
"Conferma eliminazione account"),
"confirmAddingTrustedContact": m22,
"confirmAddingTrustedContact": m23,
"confirmDeletePrompt": MessageLookupByLibrary.simpleMessage(
"Sì, voglio eliminare definitivamente questo account e i dati associati a esso su tutte le applicazioni."),
"confirmPassword":
@@ -609,10 +621,10 @@ class MessageLookup extends MessageLookupByLibrary {
"Conferma la tua chiave di recupero"),
"connectToDevice":
MessageLookupByLibrary.simpleMessage("Connetti al dispositivo"),
"contactFamilyAdmin": m23,
"contactFamilyAdmin": m24,
"contactSupport":
MessageLookupByLibrary.simpleMessage("Contatta il supporto"),
"contactToManageSubscription": m24,
"contactToManageSubscription": m25,
"contacts": MessageLookupByLibrary.simpleMessage("Contatti"),
"contents": MessageLookupByLibrary.simpleMessage("Contenuti"),
"continueLabel": MessageLookupByLibrary.simpleMessage("Continua"),
@@ -659,7 +671,7 @@ class MessageLookup extends MessageLookupByLibrary {
"currentlyRunning":
MessageLookupByLibrary.simpleMessage("attualmente in esecuzione"),
"custom": MessageLookupByLibrary.simpleMessage("Personalizza"),
"customEndpoint": m25,
"customEndpoint": m26,
"darkTheme": MessageLookupByLibrary.simpleMessage("Scuro"),
"dayToday": MessageLookupByLibrary.simpleMessage("Oggi"),
"dayYesterday": MessageLookupByLibrary.simpleMessage("Ieri"),
@@ -697,11 +709,11 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage("Elimina dal dispositivo"),
"deleteFromEnte":
MessageLookupByLibrary.simpleMessage("Elimina da Ente"),
"deleteItemCount": m26,
"deleteItemCount": m27,
"deleteLocation":
MessageLookupByLibrary.simpleMessage("Elimina posizione"),
"deletePhotos": MessageLookupByLibrary.simpleMessage("Elimina foto"),
"deleteProgress": m27,
"deleteProgress": m28,
"deleteReason1": MessageLookupByLibrary.simpleMessage(
"Manca una caratteristica chiave di cui ho bisogno"),
"deleteReason2": MessageLookupByLibrary.simpleMessage(
@@ -742,7 +754,7 @@ class MessageLookup extends MessageLookupByLibrary {
"I visualizzatori possono scattare screenshot o salvare una copia delle foto utilizzando strumenti esterni"),
"disableDownloadWarningTitle":
MessageLookupByLibrary.simpleMessage("Nota bene"),
"disableLinkMessage": m28,
"disableLinkMessage": m29,
"disableTwofactor": MessageLookupByLibrary.simpleMessage(
"Disabilita autenticazione a due fattori"),
"disablingTwofactorAuthentication":
@@ -778,6 +790,7 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage(
"Vuoi scartare le modifiche che hai fatto?"),
"done": MessageLookupByLibrary.simpleMessage("Completato"),
"dontSave": MessageLookupByLibrary.simpleMessage("Non salvare"),
"doubleYourStorage":
MessageLookupByLibrary.simpleMessage("Raddoppia il tuo spazio"),
"download": MessageLookupByLibrary.simpleMessage("Scarica"),
@@ -785,9 +798,9 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage("Scaricamento fallito"),
"downloading":
MessageLookupByLibrary.simpleMessage("Scaricamento in corso..."),
"dropSupportEmail": m29,
"duplicateFileCountWithStorageSaved": m30,
"duplicateItemsGroup": m31,
"dropSupportEmail": m30,
"duplicateFileCountWithStorageSaved": m31,
"duplicateItemsGroup": m32,
"edit": MessageLookupByLibrary.simpleMessage("Modifica"),
"editLocation": MessageLookupByLibrary.simpleMessage("Modifica luogo"),
"editLocationTagTitle":
@@ -799,8 +812,12 @@ class MessageLookup extends MessageLookupByLibrary {
"Le modifiche alla posizione saranno visibili solo all\'interno di Ente"),
"eligible": MessageLookupByLibrary.simpleMessage("idoneo"),
"email": MessageLookupByLibrary.simpleMessage("Email"),
"emailChangedTo": m32,
"emailNoEnteAccount": m33,
"emailAlreadyRegistered":
MessageLookupByLibrary.simpleMessage("Email già registrata."),
"emailChangedTo": m33,
"emailNoEnteAccount": m35,
"emailNotRegistered":
MessageLookupByLibrary.simpleMessage("Email non registrata."),
"emailVerificationToggle":
MessageLookupByLibrary.simpleMessage("Verifica Email"),
"emailYourLogs": MessageLookupByLibrary.simpleMessage(
@@ -880,7 +897,7 @@ class MessageLookup extends MessageLookupByLibrary {
"exportYourData": MessageLookupByLibrary.simpleMessage("Esporta dati"),
"extraPhotosFound":
MessageLookupByLibrary.simpleMessage("Trovate foto aggiuntive"),
"extraPhotosFoundFor": m34,
"extraPhotosFoundFor": m36,
"faceNotClusteredYet": MessageLookupByLibrary.simpleMessage(
"Faccia non ancora raggruppata, per favore torna più tardi"),
"faceRecognition":
@@ -930,8 +947,8 @@ class MessageLookup extends MessageLookupByLibrary {
"fileTypes": MessageLookupByLibrary.simpleMessage("Tipi di file"),
"fileTypesAndNames":
MessageLookupByLibrary.simpleMessage("Tipi e nomi di file"),
"filesBackedUpFromDevice": m35,
"filesBackedUpInAlbum": m36,
"filesBackedUpFromDevice": m37,
"filesBackedUpInAlbum": m38,
"filesDeleted": MessageLookupByLibrary.simpleMessage("File eliminati"),
"filesSavedToGallery":
MessageLookupByLibrary.simpleMessage("File salvati nella galleria"),
@@ -951,22 +968,22 @@ class MessageLookup extends MessageLookupByLibrary {
"freeStorageUsable":
MessageLookupByLibrary.simpleMessage("Spazio libero utilizzabile"),
"freeTrial": MessageLookupByLibrary.simpleMessage("Prova gratuita"),
"freeTrialValidTill": m37,
"freeUpAccessPostDelete": m38,
"freeUpAmount": m39,
"freeTrialValidTill": m39,
"freeUpAccessPostDelete": m40,
"freeUpAmount": m41,
"freeUpDeviceSpace":
MessageLookupByLibrary.simpleMessage("Libera spazio"),
"freeUpDeviceSpaceDesc": MessageLookupByLibrary.simpleMessage(
"Risparmia spazio sul tuo dispositivo cancellando i file che sono già stati salvati online."),
"freeUpSpace": MessageLookupByLibrary.simpleMessage("Libera spazio"),
"freeUpSpaceSaving": m40,
"freeUpSpaceSaving": m42,
"gallery": MessageLookupByLibrary.simpleMessage("Galleria"),
"galleryMemoryLimitInfo": MessageLookupByLibrary.simpleMessage(
"Fino a 1000 ricordi mostrati nella galleria"),
"general": MessageLookupByLibrary.simpleMessage("Generali"),
"generatingEncryptionKeys": MessageLookupByLibrary.simpleMessage(
"Generazione delle chiavi di crittografia..."),
"genericProgress": m41,
"genericProgress": m43,
"goToSettings":
MessageLookupByLibrary.simpleMessage("Vai alle impostazioni"),
"googlePlayId": MessageLookupByLibrary.simpleMessage("Google Play ID"),
@@ -1051,7 +1068,7 @@ class MessageLookup extends MessageLookupByLibrary {
"itLooksLikeSomethingWentWrongPleaseRetryAfterSome":
MessageLookupByLibrary.simpleMessage(
"Sembra che qualcosa sia andato storto. Riprova tra un po\'. Se l\'errore persiste, contatta il nostro team di supporto."),
"itemCount": m42,
"itemCount": m44,
"itemsShowTheNumberOfDaysRemainingBeforePermanentDeletion":
MessageLookupByLibrary.simpleMessage(
"Gli elementi mostrano il numero di giorni rimanenti prima della cancellazione permanente"),
@@ -1077,7 +1094,7 @@ class MessageLookup extends MessageLookupByLibrary {
"legacy": MessageLookupByLibrary.simpleMessage("Legacy"),
"legacyAccounts":
MessageLookupByLibrary.simpleMessage("Account Legacy"),
"legacyInvite": m43,
"legacyInvite": m45,
"legacyPageDesc": MessageLookupByLibrary.simpleMessage(
"Legacy consente ai contatti fidati di accedere al tuo account in tua assenza."),
"legacyPageDesc2": MessageLookupByLibrary.simpleMessage(
@@ -1088,13 +1105,19 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage("Link copiato negli appunti"),
"linkDeviceLimit":
MessageLookupByLibrary.simpleMessage("Limite dei dispositivi"),
"linkEmailToContactBannerCaption": MessageLookupByLibrary.simpleMessage(
"per una condivisione più veloce"),
"linkEnabled": MessageLookupByLibrary.simpleMessage("Attivato"),
"linkExpired": MessageLookupByLibrary.simpleMessage("Scaduto"),
"linkExpiresOn": m44,
"linkExpiresOn": m46,
"linkExpiry": MessageLookupByLibrary.simpleMessage("Scadenza del link"),
"linkHasExpired":
MessageLookupByLibrary.simpleMessage("Il link è scaduto"),
"linkNeverExpires": MessageLookupByLibrary.simpleMessage("Mai"),
"linkPerson": MessageLookupByLibrary.simpleMessage("Collega persona"),
"linkPersonCaption": MessageLookupByLibrary.simpleMessage(
"per una migliore esperienza di condivisione"),
"linkPersonToEmail": m47,
"livePhotos": MessageLookupByLibrary.simpleMessage("Live Photo"),
"loadMessage1": MessageLookupByLibrary.simpleMessage(
"Puoi condividere il tuo abbonamento con la tua famiglia"),
@@ -1146,6 +1169,7 @@ class MessageLookup extends MessageLookupByLibrary {
"La sessione è scaduta. Si prega di accedere nuovamente."),
"loginTerms": MessageLookupByLibrary.simpleMessage(
"Cliccando sul pulsante Accedi, accetti i <u-terms>termini di servizio</u-terms> e la <u-policy>politica sulla privacy</u-policy>"),
"loginWithTOTP": MessageLookupByLibrary.simpleMessage("Login con TOTP"),
"logout": MessageLookupByLibrary.simpleMessage("Disconnetti"),
"logsDialogBody": MessageLookupByLibrary.simpleMessage(
"Invia i log per aiutarci a risolvere il tuo problema. Si prega di notare che i nomi dei file saranno inclusi per aiutare a tenere traccia di problemi con file specifici."),
@@ -1183,6 +1207,7 @@ class MessageLookup extends MessageLookupByLibrary {
"maps": MessageLookupByLibrary.simpleMessage("Mappe"),
"mastodon": MessageLookupByLibrary.simpleMessage("Mastodon"),
"matrix": MessageLookupByLibrary.simpleMessage("Matrix"),
"me": MessageLookupByLibrary.simpleMessage("Io"),
"memoryCount": m5,
"merchandise": MessageLookupByLibrary.simpleMessage("Merchandise"),
"mergeWithExisting":
@@ -1211,12 +1236,12 @@ class MessageLookup extends MessageLookupByLibrary {
"moreDetails": MessageLookupByLibrary.simpleMessage("Più dettagli"),
"mostRecent": MessageLookupByLibrary.simpleMessage("Più recenti"),
"mostRelevant": MessageLookupByLibrary.simpleMessage("Più rilevanti"),
"moveItem": m45,
"moveItem": m49,
"moveToAlbum":
MessageLookupByLibrary.simpleMessage("Sposta nell\'album"),
"moveToHiddenAlbum":
MessageLookupByLibrary.simpleMessage("Sposta in album nascosto"),
"movedSuccessfullyTo": m46,
"movedSuccessfullyTo": m50,
"movedToTrash":
MessageLookupByLibrary.simpleMessage("Spostato nel cestino"),
"movingFilesToAlbum": MessageLookupByLibrary.simpleMessage(
@@ -1269,10 +1294,10 @@ class MessageLookup extends MessageLookupByLibrary {
"noResults": MessageLookupByLibrary.simpleMessage("Nessun risultato"),
"noResultsFound":
MessageLookupByLibrary.simpleMessage("Nessun risultato trovato"),
"noSuggestionsForPerson": m47,
"noSuggestionsForPerson": m51,
"noSystemLockFound": MessageLookupByLibrary.simpleMessage(
"Nessun blocco di sistema trovato"),
"notPersonLabel": m48,
"notPersonLabel": m52,
"nothingSharedWithYouYet": MessageLookupByLibrary.simpleMessage(
"Ancora nulla di condiviso con te"),
"nothingToSeeHere":
@@ -1282,13 +1307,17 @@ class MessageLookup extends MessageLookupByLibrary {
"onDevice": MessageLookupByLibrary.simpleMessage("Sul dispositivo"),
"onEnte": MessageLookupByLibrary.simpleMessage(
"Su <branding>ente</branding>"),
"onlyFamilyAdminCanChangeCode": m49,
"onlyFamilyAdminCanChangeCode": m53,
"onlyThem": MessageLookupByLibrary.simpleMessage("Solo loro"),
"oops": MessageLookupByLibrary.simpleMessage("Oops"),
"oopsCouldNotSaveEdits": MessageLookupByLibrary.simpleMessage(
"Ops, impossibile salvare le modifiche"),
"oopsSomethingWentWrong": MessageLookupByLibrary.simpleMessage(
"Oops! Qualcosa è andato storto"),
"openAlbumInBrowser":
MessageLookupByLibrary.simpleMessage("Apri album nel browser"),
"openAlbumInBrowserTitle": MessageLookupByLibrary.simpleMessage(
"Utilizza l\'app web per aggiungere foto a questo album"),
"openFile": MessageLookupByLibrary.simpleMessage("Apri file"),
"openSettings":
MessageLookupByLibrary.simpleMessage("Apri Impostazioni"),
@@ -1302,8 +1331,6 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage("O unisci con esistente"),
"orPickAnExistingOne": MessageLookupByLibrary.simpleMessage(
"Oppure scegline una esistente"),
"orPickFromYourContacts":
MessageLookupByLibrary.simpleMessage("or pick from your contacts"),
"pair": MessageLookupByLibrary.simpleMessage("Abbina"),
"pairWithPin": MessageLookupByLibrary.simpleMessage("Associa con PIN"),
"pairingComplete":
@@ -1330,7 +1357,7 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage("Pagamento non riuscito"),
"paymentFailedMessage": MessageLookupByLibrary.simpleMessage(
"Purtroppo il tuo pagamento non è riuscito. Contatta l\'assistenza e ti aiuteremo!"),
"paymentFailedTalkToProvider": m50,
"paymentFailedTalkToProvider": m54,
"pendingItems":
MessageLookupByLibrary.simpleMessage("Elementi in sospeso"),
"pendingSync":
@@ -1355,14 +1382,14 @@ class MessageLookup extends MessageLookupByLibrary {
"photosAddedByYouWillBeRemovedFromTheAlbum":
MessageLookupByLibrary.simpleMessage(
"Le foto aggiunte da te verranno rimosse dall\'album"),
"photosCount": m51,
"photosCount": m55,
"pickCenterPoint": MessageLookupByLibrary.simpleMessage(
"Selezionare il punto centrale"),
"pinAlbum": MessageLookupByLibrary.simpleMessage("Fissa l\'album"),
"pinLock": MessageLookupByLibrary.simpleMessage("Blocco con PIN"),
"playOnTv":
MessageLookupByLibrary.simpleMessage("Riproduci album sulla TV"),
"playStoreFreeTrialValidTill": m52,
"playStoreFreeTrialValidTill": m56,
"playstoreSubscription":
MessageLookupByLibrary.simpleMessage("Abbonamento su PlayStore"),
"pleaseCheckYourInternetConnectionAndTryAgain":
@@ -1374,14 +1401,14 @@ class MessageLookup extends MessageLookupByLibrary {
"pleaseContactSupportIfTheProblemPersists":
MessageLookupByLibrary.simpleMessage(
"Riprova. Se il problema persiste, ti invitiamo a contattare l\'assistenza"),
"pleaseEmailUsAt": m53,
"pleaseEmailUsAt": m57,
"pleaseGrantPermissions":
MessageLookupByLibrary.simpleMessage("Concedi i permessi"),
"pleaseLoginAgain": MessageLookupByLibrary.simpleMessage(
"Effettua nuovamente l\'accesso"),
"pleaseSelectQuickLinksToRemove": MessageLookupByLibrary.simpleMessage(
"Si prega di selezionare i link rapidi da rimuovere"),
"pleaseSendTheLogsTo": m54,
"pleaseSendTheLogsTo": m58,
"pleaseTryAgain": MessageLookupByLibrary.simpleMessage("Riprova"),
"pleaseVerifyTheCodeYouHaveEntered":
MessageLookupByLibrary.simpleMessage(
@@ -1406,7 +1433,9 @@ class MessageLookup extends MessageLookupByLibrary {
"privateSharing":
MessageLookupByLibrary.simpleMessage("Condivisioni private"),
"proceed": MessageLookupByLibrary.simpleMessage("Prosegui"),
"processingImport": m55,
"processingImport": m59,
"processingVideos":
MessageLookupByLibrary.simpleMessage("Elaborando video"),
"publicLinkCreated":
MessageLookupByLibrary.simpleMessage("Link pubblico creato"),
"publicLinkEnabled":
@@ -1417,7 +1446,11 @@ class MessageLookup extends MessageLookupByLibrary {
"raiseTicket": MessageLookupByLibrary.simpleMessage("Invia ticket"),
"rateTheApp": MessageLookupByLibrary.simpleMessage("Valuta l\'app"),
"rateUs": MessageLookupByLibrary.simpleMessage("Lascia una recensione"),
"rateUsOnStore": m56,
"rateUsOnStore": m60,
"reassignMe": MessageLookupByLibrary.simpleMessage("Riassegna \"Io\""),
"reassignedToName": m61,
"reassigningLoading":
MessageLookupByLibrary.simpleMessage("Riassegnando..."),
"recover": MessageLookupByLibrary.simpleMessage("Recupera"),
"recoverAccount":
MessageLookupByLibrary.simpleMessage("Recupera account"),
@@ -1426,7 +1459,7 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage("Recupera l\'account"),
"recoveryInitiated":
MessageLookupByLibrary.simpleMessage("Recupero avviato"),
"recoveryInitiatedDesc": m57,
"recoveryInitiatedDesc": m62,
"recoveryKey":
MessageLookupByLibrary.simpleMessage("Chiave di recupero"),
"recoveryKeyCopiedToClipboard": MessageLookupByLibrary.simpleMessage(
@@ -1441,12 +1474,12 @@ class MessageLookup extends MessageLookupByLibrary {
"Chiave di recupero verificata"),
"recoveryKeyVerifyReason": MessageLookupByLibrary.simpleMessage(
"Se hai dimenticato la password, la tua chiave di ripristino è l\'unico modo per recuperare le tue foto. La puoi trovare in Impostazioni > Account.\n\nInserisci la tua chiave di recupero per verificare di averla salvata correttamente."),
"recoveryReady": m58,
"recoveryReady": m63,
"recoverySuccessful":
MessageLookupByLibrary.simpleMessage("Recupero riuscito!"),
"recoveryWarning": MessageLookupByLibrary.simpleMessage(
"Un contatto fidato sta tentando di accedere al tuo account"),
"recoveryWarningBody": m59,
"recoveryWarningBody": m64,
"recreatePasswordBody": MessageLookupByLibrary.simpleMessage(
"Il dispositivo attuale non è abbastanza potente per verificare la tua password, ma la possiamo rigenerare in un modo che funzioni su tutti i dispositivi.\n\nEffettua il login utilizzando la tua chiave di recupero e rigenera la tua password (puoi utilizzare nuovamente la stessa se vuoi)."),
"recreatePasswordTitle":
@@ -1462,7 +1495,7 @@ class MessageLookup extends MessageLookupByLibrary {
"1. Condividi questo codice con i tuoi amici"),
"referralStep2": MessageLookupByLibrary.simpleMessage(
"2. Si iscrivono per un piano a pagamento"),
"referralStep3": m60,
"referralStep3": m65,
"referrals": MessageLookupByLibrary.simpleMessage("Invita un Amico"),
"referralsAreCurrentlyPaused": MessageLookupByLibrary.simpleMessage(
"I referral code sono attualmente in pausa"),
@@ -1491,7 +1524,7 @@ class MessageLookup extends MessageLookupByLibrary {
"removeLink": MessageLookupByLibrary.simpleMessage("Elimina link"),
"removeParticipant":
MessageLookupByLibrary.simpleMessage("Rimuovi partecipante"),
"removeParticipantBody": m61,
"removeParticipantBody": m66,
"removePersonLabel":
MessageLookupByLibrary.simpleMessage("Rimuovi etichetta persona"),
"removePublicLink":
@@ -1511,7 +1544,7 @@ class MessageLookup extends MessageLookupByLibrary {
"renameFile": MessageLookupByLibrary.simpleMessage("Rinomina file"),
"renewSubscription":
MessageLookupByLibrary.simpleMessage("Rinnova abbonamento"),
"renewsOn": m62,
"renewsOn": m67,
"reportABug": MessageLookupByLibrary.simpleMessage("Segnala un bug"),
"reportBug": MessageLookupByLibrary.simpleMessage("Segnala un bug"),
"resendEmail": MessageLookupByLibrary.simpleMessage("Rinvia email"),
@@ -1588,7 +1621,7 @@ class MessageLookup extends MessageLookupByLibrary {
"Invita persone e vedrai qui tutte le foto condivise da loro"),
"searchPersonsEmptySection": MessageLookupByLibrary.simpleMessage(
"Le persone saranno mostrate qui una volta che l\'elaborazione e la sincronizzazione saranno completate"),
"searchResultCount": m63,
"searchResultCount": m68,
"security": MessageLookupByLibrary.simpleMessage("Sicurezza"),
"selectALocation":
MessageLookupByLibrary.simpleMessage("Seleziona un luogo"),
@@ -1606,6 +1639,8 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage("Seleziona una lingua"),
"selectMorePhotos":
MessageLookupByLibrary.simpleMessage("Seleziona più foto"),
"selectPersonToLink": MessageLookupByLibrary.simpleMessage(
"Seleziona persona da collegare"),
"selectReason":
MessageLookupByLibrary.simpleMessage("Seleziona un motivo"),
"selectYourPlan":
@@ -1619,7 +1654,7 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage(
"Gli elementi selezionati verranno eliminati da tutti gli album e spostati nel cestino."),
"selectedPhotos": m6,
"selectedPhotosWithYours": m65,
"selectedPhotosWithYours": m70,
"send": MessageLookupByLibrary.simpleMessage("Invia"),
"sendEmail": MessageLookupByLibrary.simpleMessage("Invia email"),
"sendInvite": MessageLookupByLibrary.simpleMessage("Invita"),
@@ -1651,16 +1686,16 @@ class MessageLookup extends MessageLookupByLibrary {
"shareAnAlbumNow":
MessageLookupByLibrary.simpleMessage("Condividi un album"),
"shareLink": MessageLookupByLibrary.simpleMessage("Condividi link"),
"shareMyVerificationID": m66,
"shareMyVerificationID": m71,
"shareOnlyWithThePeopleYouWant": MessageLookupByLibrary.simpleMessage(
"Condividi solo con le persone che vuoi"),
"shareTextConfirmOthersVerificationID": m7,
"shareTextRecommendUsingEnte": MessageLookupByLibrary.simpleMessage(
"Scarica Ente in modo da poter facilmente condividere foto e video in qualità originale\n\nhttps://ente.io"),
"shareTextReferralCode": m67,
"shareTextReferralCode": m72,
"shareWithNonenteUsers": MessageLookupByLibrary.simpleMessage(
"Condividi con utenti che non hanno un account Ente"),
"shareWithPeopleSectionTitle": m68,
"shareWithPeopleSectionTitle": m73,
"shareYourFirstAlbum": MessageLookupByLibrary.simpleMessage(
"Condividi il tuo primo album"),
"sharedAlbumSectionDescription": MessageLookupByLibrary.simpleMessage(
@@ -1671,7 +1706,7 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage("Nuove foto condivise"),
"sharedPhotoNotificationsExplanation": MessageLookupByLibrary.simpleMessage(
"Ricevi notifiche quando qualcuno aggiunge una foto a un album condiviso, di cui fai parte"),
"sharedWith": m69,
"sharedWith": m74,
"sharedWithMe":
MessageLookupByLibrary.simpleMessage("Condivisi con me"),
"sharedWithYou":
@@ -1688,11 +1723,11 @@ class MessageLookup extends MessageLookupByLibrary {
"Esci dagli altri dispositivi"),
"signUpTerms": MessageLookupByLibrary.simpleMessage(
"Accetto i <u-terms>termini di servizio</u-terms> e la <u-policy>politica sulla privacy</u-policy>"),
"singleFileDeleteFromDevice": m70,
"singleFileDeleteFromDevice": m75,
"singleFileDeleteHighlight": MessageLookupByLibrary.simpleMessage(
"Verrà eliminato da tutti gli album."),
"singleFileInBothLocalAndRemote": m71,
"singleFileInRemoteOnly": m72,
"singleFileInBothLocalAndRemote": m76,
"singleFileInRemoteOnly": m77,
"skip": MessageLookupByLibrary.simpleMessage("Salta"),
"social": MessageLookupByLibrary.simpleMessage("Social"),
"someItemsAreInBothEnteAndYourDevice":
@@ -1744,10 +1779,10 @@ class MessageLookup extends MessageLookupByLibrary {
"storageInGB": m1,
"storageLimitExceeded": MessageLookupByLibrary.simpleMessage(
"Limite d\'archiviazione superato"),
"storageUsageInfo": m73,
"storageUsageInfo": m78,
"strongStrength": MessageLookupByLibrary.simpleMessage("Forte"),
"subAlreadyLinkedErrMessage": m74,
"subWillBeCancelledOn": m75,
"subAlreadyLinkedErrMessage": m79,
"subWillBeCancelledOn": m80,
"subscribe": MessageLookupByLibrary.simpleMessage("Iscriviti"),
"subscribeToEnableSharing": MessageLookupByLibrary.simpleMessage(
"È necessario un abbonamento a pagamento attivo per abilitare la condivisione."),
@@ -1764,7 +1799,7 @@ class MessageLookup extends MessageLookupByLibrary {
"suggestFeatures":
MessageLookupByLibrary.simpleMessage("Suggerisci una funzionalità"),
"support": MessageLookupByLibrary.simpleMessage("Assistenza"),
"syncProgress": m76,
"syncProgress": m81,
"syncStopped":
MessageLookupByLibrary.simpleMessage("Sincronizzazione interrotta"),
"syncing": MessageLookupByLibrary.simpleMessage(
@@ -1777,7 +1812,7 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage("Tocca per sbloccare"),
"tapToUpload":
MessageLookupByLibrary.simpleMessage("Premi per caricare"),
"tapToUploadIsIgnoredDue": m77,
"tapToUploadIsIgnoredDue": m82,
"tempErrorContactSupportIfPersists": MessageLookupByLibrary.simpleMessage(
"Sembra che qualcosa sia andato storto. Riprova tra un po\'. Se l\'errore persiste, contatta il nostro team di supporto."),
"terminate": MessageLookupByLibrary.simpleMessage("Terminata"),
@@ -1815,7 +1850,9 @@ class MessageLookup extends MessageLookupByLibrary {
"Questo indirizzo email è già registrato"),
"thisImageHasNoExifData": MessageLookupByLibrary.simpleMessage(
"Questa immagine non ha dati EXIF"),
"thisIsPersonVerificationId": m78,
"thisIsMeExclamation":
MessageLookupByLibrary.simpleMessage("Questo sono io!"),
"thisIsPersonVerificationId": m83,
"thisIsYourVerificationId": MessageLookupByLibrary.simpleMessage(
"Questo è il tuo ID di verifica"),
"thisWillLogYouOutOfTheFollowingDevice":
@@ -1839,11 +1876,11 @@ class MessageLookup extends MessageLookupByLibrary {
"total": MessageLookupByLibrary.simpleMessage("totale"),
"totalSize": MessageLookupByLibrary.simpleMessage("Dimensioni totali"),
"trash": MessageLookupByLibrary.simpleMessage("Cestino"),
"trashDaysLeft": m79,
"trashDaysLeft": m84,
"trim": MessageLookupByLibrary.simpleMessage("Taglia"),
"trustedContacts":
MessageLookupByLibrary.simpleMessage("Contatti fidati"),
"trustedInviteBody": m80,
"trustedInviteBody": m85,
"tryAgain": MessageLookupByLibrary.simpleMessage("Riprova"),
"turnOnBackupForAutoUpload": MessageLookupByLibrary.simpleMessage(
"Attiva il backup per caricare automaticamente i file aggiunti a questa cartella del dispositivo su Ente."),
@@ -1889,10 +1926,10 @@ class MessageLookup extends MessageLookupByLibrary {
"Aggiornamento della selezione delle cartelle..."),
"upgrade":
MessageLookupByLibrary.simpleMessage("Acquista altro spazio"),
"uploadIsIgnoredDueToIgnorereason": m82,
"uploadIsIgnoredDueToIgnorereason": m87,
"uploadingFilesToAlbum": MessageLookupByLibrary.simpleMessage(
"Caricamento dei file nell\'album..."),
"uploadingMultipleMemories": m83,
"uploadingMultipleMemories": m88,
"uploadingSingleMemory":
MessageLookupByLibrary.simpleMessage("Conservando 1 ricordo..."),
"upto50OffUntil4thDec": MessageLookupByLibrary.simpleMessage(
@@ -1911,7 +1948,7 @@ class MessageLookup extends MessageLookupByLibrary {
"useSelectedPhoto":
MessageLookupByLibrary.simpleMessage("Usa la foto selezionata"),
"usedSpace": MessageLookupByLibrary.simpleMessage("Spazio utilizzato"),
"validTill": m84,
"validTill": m89,
"verificationFailedPleaseTryAgain":
MessageLookupByLibrary.simpleMessage(
"Verifica fallita, per favore prova di nuovo"),
@@ -1919,7 +1956,7 @@ class MessageLookup extends MessageLookupByLibrary {
MessageLookupByLibrary.simpleMessage("ID di verifica"),
"verify": MessageLookupByLibrary.simpleMessage("Verifica"),
"verifyEmail": MessageLookupByLibrary.simpleMessage("Verifica email"),
"verifyEmailID": m85,
"verifyEmailID": m90,
"verifyIDLabel": MessageLookupByLibrary.simpleMessage("Verifica"),
"verifyPasskey":
MessageLookupByLibrary.simpleMessage("Verifica passkey"),
@@ -1947,7 +1984,7 @@ class MessageLookup extends MessageLookupByLibrary {
"viewRecoveryKey": MessageLookupByLibrary.simpleMessage(
"Visualizza chiave di recupero"),
"viewer": MessageLookupByLibrary.simpleMessage("Sola lettura"),
"viewersSuccessfullyAdded": m86,
"viewersSuccessfullyAdded": m91,
"visitWebToManage": MessageLookupByLibrary.simpleMessage(
"Visita web.ente.io per gestire il tuo abbonamento"),
"waitingForVerification":
@@ -1968,7 +2005,7 @@ class MessageLookup extends MessageLookupByLibrary {
"Un contatto fidato può aiutare a recuperare i tuoi dati."),
"yearShort": MessageLookupByLibrary.simpleMessage("anno"),
"yearly": MessageLookupByLibrary.simpleMessage("Annuale"),
"yearsAgo": m87,
"yearsAgo": m92,
"yes": MessageLookupByLibrary.simpleMessage("Si"),
"yesCancel": MessageLookupByLibrary.simpleMessage("Sì, cancella"),
"yesConvertToViewer": MessageLookupByLibrary.simpleMessage(
@@ -2000,7 +2037,7 @@ class MessageLookup extends MessageLookupByLibrary {
"Non puoi condividere con te stesso"),
"youDontHaveAnyArchivedItems": MessageLookupByLibrary.simpleMessage(
"Non hai nulla di archiviato."),
"youHaveSuccessfullyFreedUp": m88,
"youHaveSuccessfullyFreedUp": m93,
"yourAccountHasBeenDeleted": MessageLookupByLibrary.simpleMessage(
"Il tuo account è stato eliminato"),
"yourMap": MessageLookupByLibrary.simpleMessage("La tua mappa"),
@@ -2021,9 +2058,6 @@ class MessageLookup extends MessageLookupByLibrary {
"Il tuo abbonamento è stato modificato correttamente"),
"yourVerificationCodeHasExpired": MessageLookupByLibrary.simpleMessage(
"Il tuo codice di verifica è scaduto"),
"youveNoDuplicateFilesThatCanBeCleared":
MessageLookupByLibrary.simpleMessage(
"Non hai file duplicati che possono essere cancellati"),
"youveNoFilesInThisAlbumThatCanBeDeleted":
MessageLookupByLibrary.simpleMessage(
"Non hai file in questo album che possono essere eliminati"),

File diff suppressed because it is too large Load Diff

View File

@@ -21,8 +21,5 @@ class MessageLookup extends MessageLookupByLibrary {
String get localeName => 'km';
final messages = _notInlinedMessages(_notInlinedMessages);
static Map<String, Function> _notInlinedMessages(_) => <String, Function>{
"orPickFromYourContacts":
MessageLookupByLibrary.simpleMessage("or pick from your contacts")
};
static Map<String, Function> _notInlinedMessages(_) => <String, Function>{};
}

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