Compare commits

..

2027 Commits

Author SHA1 Message Date
Neeraj Gupta
37dec0018c [cli] Skip export with bad time stamp (#2702)
## Description

## Tests
2024-08-14 17:14:51 +05:30
Neeraj Gupta
39e505a3ec update docs 2024-08-14 17:14:35 +05:30
Neeraj Gupta
ae98af9f8c bump cli version 2024-08-14 17:12:49 +05:30
Neeraj Gupta
5bd7170755 [cli] Fix error log 2024-08-14 17:11:13 +05:30
Neeraj Gupta
ab17ae71d0 [cli] Continue export on bad timestamp marshal error 2024-08-14 17:10:58 +05:30
Neeraj Gupta
fda7722adb [mob] Add option under advance settings to enable multi part upload (#2697)
## Description

## Tests
- Verified that by turning off the flag from server, we are not seeing
the option to enable multi part upload.
2024-08-14 16:36:23 +05:30
Neeraj Gupta
4fc1d708b9 [server] Add auth key validation (#2696)
## Description
This avoids the 5xx error for authEntity which happens when we try to
create an auth entity without reporting the corresponding key

## Tests
2024-08-14 16:35:42 +05:30
Manav Rathi
efb89e710c [desktop] Clustering WIP - Part 2/x (#2701) 2024-08-14 16:06:17 +05:30
Neeraj Gupta
359572f4b2 Remove keyValidation from diff 2024-08-14 16:05:22 +05:30
Manav Rathi
5d9d3457ec [server] Use the go.sum cache during CI lint (#2699)
Unrelated to the lint failures, I noticed that we were not using the
go.sum file during the lint steps.
2024-08-14 16:02:27 +05:30
Manav Rathi
e21a4b4f9e Handle deleted better 2024-08-14 15:39:04 +05:30
Manav Rathi
e946749b2e Fixes for person v2 2024-08-14 15:29:28 +05:30
Manav Rathi
b6b87c196f Update comment 2024-08-14 15:20:05 +05:30
Manav Rathi
367a715aa8 Reduce CLIP threshold to 0.175 2024-08-14 15:19:10 +05:30
Manav Rathi
6a8fe71000 Extra 2024-08-14 14:38:33 +05:30
Manav Rathi
bb56fddd45 lf 2024-08-14 14:20:23 +05:30
Manav Rathi
4e1d80380c pv2 2024-08-14 14:00:39 +05:30
Manav Rathi
fd1f3c6710 Sync 1 2024-08-14 13:51:43 +05:30
Manav Rathi
ee5acf6a2e Sketch 2024-08-14 13:46:27 +05:30
Manav Rathi
3a85e9dcae ek type 2024-08-14 13:04:08 +05:30
Manav Rathi
dffe364c51 Read ss 2024-08-14 12:49:21 +05:30
Manav Rathi
da4ba85c7c wip ek 2024-08-14 12:26:11 +05:30
Manav Rathi
62652ea617 [server] Send 5xx if query to validate token fails (#2695)
## Description

## Tests
2024-08-14 11:56:46 +05:30
Manav Rathi
4ea6f1cbfc [server] Fix lint failures on CI 2024-08-14 11:30:32 +05:30
Manav Rathi
c164b0710a key 2024-08-14 11:24:29 +05:30
Neeraj Gupta
d8b338a1e8 [cli] Add filters for Export (#2596)
## Description

Feature: Add support for selective export with filters for account,
albums, and options to exclude hidden or shared files.

    Flags Added:
        --shared: Include shared albums in export (default: true).
        --hidden: Include hidden albums in export (default: true).
        --albums: Comma-separated list of album names to export.
--emails: Comma-separated list of emails of the accounts that needs to
be exported

Behavior: By default, both hidden and shared albums are exported.

## Tests
Tested locally
2024-08-14 11:23:50 +05:30
Manav Rathi
81885d6814 Tweak 2024-08-14 11:21:04 +05:30
Neeraj Gupta
7b402e46bd [mob] Control the enable multipart option via feature flag 2024-08-14 11:20:30 +05:30
Manav Rathi
ad156bc33a Diff 2024-08-14 11:16:26 +05:30
Manav Rathi
050bbfbbb3 Discussion 2024-08-14 11:11:43 +05:30
Neeraj Gupta
7ba4aebf86 [mob] Add toggle button to enable multipart upload 2024-08-14 11:09:43 +05:30
Neeraj Gupta
1eea5ffab1 [mob] Switch to 20MB for multipart upload 2024-08-14 11:09:03 +05:30
Neeraj Gupta
04343b2a6c [server] Add auth key validation 2024-08-14 10:43:18 +05:30
Neeraj Gupta
9d48fa4a50 [server] Send 5xx if query to validate token fails 2024-08-14 10:22:57 +05:30
Manav Rathi
1314b8ccbb sync 2 2024-08-14 09:48:08 +05:30
Manav Rathi
d5d0e98197 Person 2024-08-14 09:11:56 +05:30
Manav Rathi
82b8658268 lint-fix 2024-08-14 08:45:00 +05:30
Manav Rathi
f802e87215 To search person 2024-08-13 21:03:22 +05:30
Manav Rathi
565546755a Split the type 2024-08-13 21:03:22 +05:30
Manav Rathi
113bd9744e Update all 2024-08-13 21:03:22 +05:30
Manav Rathi
3097810f2c Top scorer 2024-08-13 21:03:22 +05:30
Manav Rathi
207f9c50cf Clean 2024-08-13 21:03:22 +05:30
Manav Rathi
1c9a14cfdc Tweak 2024-08-13 21:03:22 +05:30
Manav Rathi
5e4f0d4caf A2 2024-08-13 21:03:22 +05:30
Manav Rathi
7f9391f89f Parse 2024-08-13 21:03:22 +05:30
Manav Rathi
614c312876 Tentative DB schema 2024-08-13 21:03:22 +05:30
Manav Rathi
5081dc904b Enhance 2024-08-13 21:03:22 +05:30
Manav Rathi
ef7b978cd5 Outline 2024-08-13 21:03:22 +05:30
Manav Rathi
2376327e52 zt 2024-08-13 21:03:22 +05:30
Manav Rathi
49f069c9cf Add timeout for replication lock query & allow updating metadata with less keys (#2692)
## Description

## Tests
2024-08-13 15:25:24 +05:30
Neeraj Gupta
2228874898 [Fix] Handle case when existing metadata is null 2024-08-13 15:22:02 +05:30
Manav Rathi
c6bdeeb722 [server] Minor tweaks to the new FileData API URLs (#2689)
- Start with leading slash for easier greppability
- Omit trailing slash for consistency

No production clients are using this yet, so should be safe.

Tested the two embedding related ones on localhost.
2024-08-13 15:19:11 +05:30
Neeraj Gupta
8299c029ec Add 10 second timeout while locking row for replication 2024-08-13 15:17:33 +05:30
Neeraj Gupta
9132fc5ec8 Allow updating metadata with fewer keys 2024-08-13 15:15:40 +05:30
Manav Rathi
8a67eb7417 [web] Fix width of all albums dialog (#2691)
Fixes bug introduced in 1c0261bc5c
2024-08-13 13:49:47 +05:30
Manav Rathi
b0c18f9fd4 [web] Fix width of all albums dialog
Fixes bug introduced in 1c0261bc5c
2024-08-13 13:41:55 +05:30
Manav Rathi
91de9c38cc [desktop] Tweak the integration of the new file data APIs (#2690) 2024-08-13 13:32:08 +05:30
Manav Rathi
3980d6b614 Nomen 2024-08-13 13:27:03 +05:30
Manav Rathi
fd6cab6c26 Add CHANGELOG entry 2024-08-13 13:19:36 +05:30
Manav Rathi
3604fbe352 Clarify and note 2024-08-13 13:18:57 +05:30
Manav Rathi
9422398922 New and fold 2024-08-13 13:15:29 +05:30
Manav Rathi
cb8a5a72f5 Rename 2024-08-13 13:11:19 +05:30
Manav Rathi
3b63089b42 Fin2 2024-08-13 12:58:31 +05:30
Manav Rathi
eb2520e55c Fin 2024-08-13 12:48:33 +05:30
Manav Rathi
96948c8699 Fix context 2024-08-13 12:24:21 +05:30
Manav Rathi
0e04dd7393 [web] New translations (#2688)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2024-08-13 12:20:01 +05:30
Manav Rathi
d9d4ffa9e7 [server] Minor tweaks to the new FileData API URLs
- Start with leading slash for easier greppability
- Omit trailing slash for consistency

No production clients are using this yet, so should be safe.
2024-08-13 12:17:53 +05:30
Manav Rathi
ff1c20288f More 2024-08-13 12:13:57 +05:30
Manav Rathi
55bd59ec6a WIP cleanup 2024-08-13 12:07:48 +05:30
Manav Rathi
520647d77f Split 2024-08-13 12:07:48 +05:30
Manav Rathi
fa91430276 Rename 2024-08-13 12:07:48 +05:30
Crowdin Bot
a995a2ff0c New Crowdin translations by GitHub Action 2024-08-13 06:36:03 +00:00
Manav Rathi
28a97a39b2 [desktop] Update consent prompts (#2687) 2024-08-13 12:05:14 +05:30
Manav Rathi
dd74a0d6c3 [desktop] Update consent prompts 2024-08-13 11:39:32 +05:30
Manav Rathi
3c92ac9100 [web] New translations (#2677)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2024-08-13 11:28:13 +05:30
Crowdin Bot
048c5aa540 New Crowdin translations by GitHub Action 2024-08-13 05:50:21 +00:00
Neeraj Gupta
f1d828455d [server] Skip logging large payloads on successful requests (#2683)
## Description

## Tests
2024-08-13 11:20:08 +05:30
Manav Rathi
efcad99737 [web] Remove the potentially confusing modification time from UI (#2685)
Also, gracefully handle a missing modification time and public magic
metadata.
2024-08-13 11:18:54 +05:30
Manav Rathi
146b4ac296 Remove the confusing modification time option from the UI
It is not the upload time
2024-08-13 11:06:18 +05:30
Manav Rathi
0c3a676572 Handle missing pub magic mdt 2024-08-13 11:04:38 +05:30
Manav Rathi
c23ba06b0d Dedup 2024-08-13 10:59:20 +05:30
Manav Rathi
6b30bb52b8 Same file also doesn't have public magic metadata
file id 52422
2024-08-13 10:53:20 +05:30
Manav Rathi
6f1ddb892f Gracefully handle a missing modification time 2024-08-13 10:46:49 +05:30
Neeraj Gupta
7b610dbc34 [server] Log request body in output for error 2024-08-13 10:26:57 +05:30
Neeraj Gupta
5d0c337bfb [server] Reduce log noise 2024-08-13 10:22:16 +05:30
Prateek Sunal
2274be94c3 [auth] don't use privacy screen for desktop (#2680)
## Description

## Tests
2024-08-12 22:09:34 +05:30
Prateek Sunal
546820542a chore: bump version 2024-08-12 22:06:58 +05:30
Prateek Sunal
0a66098ee6 fix(auth): don't use privacy screen for desktop 2024-08-12 22:06:25 +05:30
Neeraj Gupta
cfadd700ff [server][file-data] Fix query to mark replication as done 2024-08-12 21:59:00 +05:30
Neeraj Gupta
6fc24f6900 Reduce ctx timeout duration 2024-08-12 21:39:49 +05:30
Neeraj Gupta
ff72590958 Fix bug in GetAndLockUnreplicatedObject query 2024-08-12 21:39:49 +05:30
Manav Rathi
f38d9deb11 [desktop] [docs] Rename ML (#2676) 2024-08-12 20:26:27 +05:30
Manav Rathi
bcc5cde399 Rename doc 2024-08-12 20:22:10 +05:30
Manav Rathi
c3eafb50b6 Change translations 2024-08-12 20:18:19 +05:30
Shamshid
c1ee9a5d37 [Auth] fix Booking and Blockchain icons (#2656)
Fix Booking.com and Blockchain.com icons loading issue
2024-08-12 18:08:54 +05:30
Neeraj Gupta
988d1ef895 [server] Fix multi part get url (#2672)
## Description

## Tests
2024-08-12 17:14:37 +05:30
Neeraj Gupta
c62842e6bb Fix multi part get 2024-08-12 17:13:32 +05:30
Manav Rathi
644827aea1 [desktop] Use new ML apis (#2670) 2024-08-12 16:40:37 +05:30
Neeraj Gupta
54bca8570e [server] Minor fixes (#2671)
## Description

## Tests
2024-08-12 16:40:26 +05:30
Neeraj Gupta
641a9c9e1a [server] Minor fixes 2024-08-12 16:39:36 +05:30
Manav Rathi
3feeb40a9e Update 2024-08-12 16:29:47 +05:30
Manav Rathi
17de43a857 worker's can't localStorage 2024-08-12 16:27:25 +05:30
Neeraj Gupta
6259a97f0e [server] Add support for file-data (#2662)
## Description

## Tests
2024-08-12 16:21:09 +05:30
Manav Rathi
b4ba6834e9 Use newer file-data APIs 2024-08-12 16:20:03 +05:30
Neeraj Gupta
ac64aadb3a [sever][replication] Avoid long running txn during replication (#2669)
## Description
Going forward, we pick a row for replication, and immediately mark
replication attempt. Once that's done, we try to replicate the object,
and update it's status without any transaction.

The initial locking and marking the replication attempt should ideally
ensure that no other worker will pick up the row for replication for
next 24hours.

## Tests
2024-08-12 16:09:41 +05:30
Prateek Sunal
be21ef9c50 [auth] allow without backups use for windows (#2650)
## Description

Windows client without pin/password should also be able to use the app,
without backups as they can set app lock afterwards.

## Tests
2024-08-12 15:54:52 +05:30
Neeraj Gupta
4ce3362186 document 2024-08-12 15:52:46 +05:30
Neeraj Gupta
8b33612879 clean up 2024-08-12 15:49:14 +05:30
Neeraj Gupta
992ac53a27 [sever][replication] Avoid long txn during replication 2024-08-12 15:41:29 +05:30
Manav Rathi
fc63e683a7 [web] New translations (#2668)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2024-08-12 14:45:07 +05:30
Neeraj Gupta
06bd039a80 Update index query 2024-08-12 14:43:48 +05:30
Crowdin Bot
d37f7a5314 New Crowdin translations by GitHub Action 2024-08-12 09:12:38 +00:00
Manav Rathi
6266d16544 [web] Tweak translation keys (#2667) 2024-08-12 14:41:48 +05:30
Manav Rathi
f2ae7c6ff9 Rename 2024-08-12 14:36:34 +05:30
Manav Rathi
04fd2d4410 echo '494m502\nwq' | ed -s $f 2024-08-12 14:35:07 +05:30
Manav Rathi
0c3ef07b3b [web] Rename tr keys 2024-08-12 14:32:45 +05:30
Ashil
6aee3a50f5 [mob][photos] Fix Autofill Issue with Proton Pass in App Lock (#2664) 2024-08-12 14:28:47 +05:30
Manav Rathi
7cc3e1cf99 [web] New translations (#2666)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2024-08-12 14:24:56 +05:30
Crowdin Bot
e8d804468e New Crowdin translations by GitHub Action 2024-08-12 08:53:59 +00:00
Manav Rathi
ea01c43e6a [desktop] Towards public beta of advanced (ML) search - Part 2/x (#2665) 2024-08-12 14:23:17 +05:30
Aman Raj Singh Mourya
e8a78cd818 [mob][photos] Auto-fill password for Applock 2024-08-12 14:07:08 +05:30
Manav Rathi
20fb9e99f0 context 2024-08-12 14:05:18 +05:30
Neeraj Gupta
a6c5d03286 rename 2024-08-12 13:21:11 +05:30
Neeraj Gupta
1564d9c0ca refactor 2024-08-12 13:10:54 +05:30
Manav Rathi
3502fcac5e Move strings to translations 2024-08-12 13:10:15 +05:30
Neeraj Gupta
c88dd22e9c [server] Add bucket b6 2024-08-12 13:07:55 +05:30
Neeraj Gupta
108e103e64 Add an icon to open the active location on Maps (#2663)
## Description

This change introduces a navigate button on the top-right corner that
will use [maps_launcher](https://pub.dev/packages/maps_launcher) to open
the center-point of the view port (by default the location of the photo
that was opened) in the device's default maps application.

<img width="200"
src="https://github.com/user-attachments/assets/baca54b8-5757-4c9b-a10f-3fccead2f142"/>
2024-08-12 13:04:52 +05:30
Neeraj Gupta
0c392a22a4 [server] Rename 2024-08-12 13:04:13 +05:30
Neeraj Gupta
4a13b04b1c [server] Update db script 2024-08-12 13:03:51 +05:30
Manav Rathi
bbac3a2a94 Update key 2024-08-12 12:54:58 +05:30
vishnukvmd
bcf29d971e Fix more warnings 2024-08-12 12:49:45 +05:30
vishnukvmd
ec8bd5bc7f Fix lint warnings 2024-08-12 12:46:25 +05:30
vishnukvmd
43e711274e Add an icon to open the active location on Maps 2024-08-12 12:39:41 +05:30
github-actions[bot]
930c080dcf [auth] New translations (#2660)
New translations from
[Crowdin](https://crowdin.com/project/ente-authenticator-app)

Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2024-08-12 12:14:45 +05:30
github-actions[bot]
9be3051671 [mobile] New translations (#2659)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-app)

Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2024-08-12 12:13:54 +05:30
Manav Rathi
7a113a3aba Preciser 2024-08-12 11:50:59 +05:30
Manav Rathi
d1b7d942b1 [desktop] [docs] Towards public beta of advanced (ML) search (#2661) 2024-08-12 11:14:57 +05:30
Manav Rathi
2830d32c79 Shorten 2024-08-12 11:10:18 +05:30
Manav Rathi
92adb3ad6f Remove old one 2024-08-12 11:05:50 +05:30
Manav Rathi
83e9b18eba Update link 2024-08-12 10:38:05 +05:30
Manav Rathi
a70a3c7078 edit 2024-08-12 10:27:33 +05:30
Manav Rathi
66726846da d1 2024-08-12 10:23:25 +05:30
Manav Rathi
f80e91a65c [web] New translations (#2658)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2024-08-12 09:53:23 +05:30
Crowdin Bot
62a979656f New Crowdin translations by GitHub Action 2024-08-12 00:32:10 +00:00
Manav Rathi
e618f13041 [web] Improve layering of the crypto abstractions (#2651) 2024-08-10 20:40:10 +05:30
Manav Rathi
215899f35a Nicer 2024-08-10 20:28:35 +05:30
Manav Rathi
004dd3bd0c Rearrange to make webpack happy
Something in the previous arrangement was causing webpack to not pack
worker/worker.ts as a web worker.
2024-08-10 20:28:17 +05:30
Manav Rathi
98a9fc39ec Direct 2024-08-10 20:12:36 +05:30
Manav Rathi
e6250e2cc3 Reorder 2024-08-10 20:11:29 +05:30
Manav Rathi
ccceb8c26a Direct 2024-08-10 20:10:02 +05:30
Manav Rathi
a7fcf7da9b Fixes 2024-08-10 20:04:50 +05:30
Manav Rathi
2b7ee9f42f Forward 2024-08-10 20:03:40 +05:30
Manav Rathi
de03265675 Leftovers 2024-08-10 20:00:16 +05:30
Manav Rathi
b7de8ca9e5 Update import 2024-08-10 19:57:12 +05:30
Manav Rathi
b8830144be Remove the no longer needed indirection 2024-08-10 19:55:24 +05:30
Manav Rathi
8acc5ac62d Propagate 2024-08-10 19:50:36 +05:30
Manav Rathi
041ad135c9 Use during upload 2024-08-10 19:31:20 +05:30
Manav Rathi
ff7718a878 Fin 2024-08-10 19:17:23 +05:30
Manav Rathi
95cfdc4eaa Rearrange 2024-08-10 19:11:24 +05:30
Manav Rathi
e29c9288c0 Abstract 2024-08-10 18:02:44 +05:30
Manav Rathi
50d7d7e9a1 Proxy 2024-08-10 17:55:39 +05:30
Manav Rathi
d6bf243701 More 2024-08-10 17:53:12 +05:30
Manav Rathi
4e49a352be Integrate 2024-08-10 17:39:29 +05:30
Neeraj Gupta
bac660f7a0 [server] Lint fix 2024-08-10 17:20:03 +05:30
Neeraj Gupta
97c9253127 [server] Support for reporting preview video 2024-08-10 17:16:35 +05:30
Manav Rathi
d5d7786b24 Types 2024-08-10 17:09:43 +05:30
Manav Rathi
ca9726969c Impl 2 2024-08-10 16:32:30 +05:30
Manav Rathi
f5b6145da1 Impl 1 2024-08-10 16:32:30 +05:30
Manav Rathi
231e831c75 Refactor 2024-08-10 16:32:30 +05:30
Manav Rathi
85020a490e Rearrange 2024-08-10 16:32:30 +05:30
Manav Rathi
d13c23f2d8 Doc 2024-08-10 16:32:30 +05:30
Manav Rathi
a029b16851 Transparent but handrolled proxy 2024-08-10 16:32:29 +05:30
Ashil
5044a0c33f [mob][photos] Guest view final changes (#2645) 2024-08-10 16:17:42 +05:30
Prateek Sunal
18b0bd4996 fix(auth): allow without backups for windows 2024-08-10 16:00:31 +05:30
Neeraj Gupta
407364b626 Add Shakepay and Newton Crypto icons (#2634)
## Description

* Adds icons for Shakepay and Newton Crypto exchanges
* Shakepay icon derived from [press
kit](https://shakepay.com/images/shakepay_media_assets_2023.zip)
* Newton icon derived from [homepage](https://newton.co) (their press
kit leads to 404)

## Tests
2024-08-10 15:24:07 +05:30
ludespeedny
23da3b1c84 Custom icons for auth (#2646)
Added "enom" as a custom icon and added the entry in custom-icons.json
file.
2024-08-10 15:23:35 +05:30
vktr2b
42c3482423 Added & Improved Logos (#2642)
## Description
Added logos for:

- Infomaniak
- OpenObserve
- Vikunja
- SMSPool
- SMTP2GO

Improvements / Minor Changes 

- Brave Icon config
- Crypto.com Icon config
2024-08-10 15:23:04 +05:30
Manav Rathi
4ea95c7d77 [desktop] Use MobileCLIP for magic search (#2649) 2024-08-10 14:08:37 +05:30
Manav Rathi
ac8a5b491d Update refs 2024-08-10 13:47:10 +05:30
Manav Rathi
72bce123a5 Cleanup 2024-08-10 13:42:26 +05:30
Manav Rathi
5bbc2615e4 Tune the threshold for MobileCLIP
Experimentation.

- 0.15 was noisy
- 0.23 was too strict
2024-08-10 13:39:14 +05:30
Manav Rathi
1f28fdada2 Bilinear 2024-08-10 13:11:18 +05:30
Manav Rathi
b503f75999 Don't need the mean/std 2024-08-10 13:09:23 +05:30
Manav Rathi
5ce8d9838f 224 => 256
https://github.com/apple/ml-mobileclip/blob/main/mobileclip/configs/mobileclip_s2.json
2024-08-10 09:51:37 +05:30
Manav Rathi
93c5825364 Add MobileCLIP URLs 2024-08-10 09:47:10 +05:30
Manav Rathi
82ecbe6866 [desktop] Clustering - Part 2/x (#2647) 2024-08-10 09:33:25 +05:30
Manav Rathi
62e27916b7 lf 2024-08-10 09:09:50 +05:30
Manav Rathi
5d28f75c1a Dedup 2024-08-09 20:30:03 +05:30
Manav Rathi
e7e74c17f8 Fix debug flow 2024-08-09 20:24:56 +05:30
Prateek Sunal
4d8e80041d [mob][panorama] update panorama checking mechanism (#2532)
## Description

Panorama was getting checked every time and was not getting cached. This
PR creates mediaType to classify image whether it's panorama or not.

- If a image can be panorama (Any side Dimensions >8000px and 2 * height
>= width or 2 * width >= height) it will try to check metadata if image
could be panorama.
- Opening details pane will check metadata if image is panorama or not.
- Gyroscope button is introduced along with proper panoramic view
instead of 360* view for Images that have Cropped metadata.
2024-08-09 20:22:12 +05:30
Prateek Sunal
72cdb2424a Merge branch 'main' into mobile-panorama-fix 2024-08-09 20:21:49 +05:30
Prateek Sunal
38c3e73638 fix: move panorama icon to middle 2024-08-09 20:18:28 +05:30
Aman Raj Singh Mourya
2d768c9c61 [mob][photos] Fallback for no device lock found for guest view and extracted strings 2024-08-09 16:44:44 +05:30
Manav Rathi
839727393b Debugging code 2024-08-09 16:17:09 +05:30
Neeraj Gupta
251a627219 delete 2024-08-09 15:51:38 +05:30
Neeraj Gupta
cd2fde2c2e [server] 1/n Support for persisting preview video 2024-08-09 15:50:29 +05:30
Manav Rathi
7bde0dea8c test harness 2024-08-09 15:48:30 +05:30
Manav Rathi
46082796d7 Decrypt 2024-08-09 15:36:15 +05:30
Manav Rathi
7d52f917c1 [docs] Clarifications (#2644) 2024-08-09 14:50:08 +05:30
Manav Rathi
980ff741ba yarn pretty 2024-08-09 14:48:08 +05:30
Manav Rathi
286517338e pretty 2024-08-09 14:47:23 +05:30
Manav Rathi
e5eb9fee7a [docs] Clarifications 2024-08-09 14:46:22 +05:30
Manav Rathi
8f167d81fc Types 2024-08-09 14:36:27 +05:30
Manav Rathi
1c84b32608 Specifize 2024-08-09 14:22:26 +05:30
Vishnu Mohandas
1e3110ca9c [docs] updated Googletakeout (#2643) 2024-08-09 14:15:44 +05:30
Vishnu Mohandas
0412c37bf5 Update index.md 2024-08-09 14:14:52 +05:30
Manav Rathi
777ce3f4a8 Sketch 2024-08-09 13:41:39 +05:30
Manav Rathi
5fa719f3e9 Sketch 2024-08-09 13:26:32 +05:30
Neeraj Gupta
7834662340 [server] Clean up 2024-08-09 13:08:46 +05:30
Manav Rathi
29d7403cda Non-trivial ones 2024-08-09 12:43:56 +05:30
ashilkn
46a7880f05 [mob][photos] Extract strings 2024-08-09 12:41:04 +05:30
Neeraj Gupta
ffbd76b88b [server] Support for replicating ml data 2024-08-09 12:40:52 +05:30
ashilkn
762daa6bd5 [mob][photos] Change icon of guest view 2024-08-09 12:33:45 +05:30
Manav Rathi
890ea6c8d1 Closer 2024-08-09 12:33:33 +05:30
Ashil
fdf3b6e85d [mob][photos] Swipe lock for multiple files (#2631) 2024-08-09 12:13:51 +05:30
Manav Rathi
cfcfade152 People list 2024-08-09 12:00:31 +05:30
Neeraj Gupta
da09a5261b [server] Fix key look up 2024-08-09 11:57:21 +05:30
Manav Rathi
5c7c4ad35a Fix 2024-08-09 11:41:59 +05:30
Manav Rathi
771327a551 gen 2024-08-09 11:35:50 +05:30
Manav Rathi
526546da59 Promise 2024-08-09 11:30:21 +05:30
Jay
a32a9dea3f [docs] updated googletakeout 2024-08-09 11:18:17 +05:30
Manav Rathi
69627ee8d6 Start moving the plumbing out 2024-08-09 11:14:23 +05:30
Manav Rathi
292a8eb00f Group state 2024-08-09 10:33:24 +05:30
Manav Rathi
685680c6da Integrate 2024-08-09 09:48:01 +05:30
Prateek Sunal
8db29a25a4 fix: review changes 2024-08-09 02:41:44 +05:30
Prateek Sunal
10d6caa4e1 fix: review changes 2024-08-09 02:40:03 +05:30
Prateek Sunal
fb2c17c510 fix: update panorama package to support sensor tweaks 2024-08-09 02:32:14 +05:30
Aman Raj Singh Mourya
5925dfb3fc [mob][photos] Minor fixes 2024-08-08 21:41:46 +05:30
Manav Rathi
65b0a061b7 [desktop] Cluster - Initial steps (#2640)
- No functional changes
- Also add nanoid dep
2024-08-08 21:01:41 +05:30
Manav Rathi
7c435b9ae5 [web] Fix referrer policy (#2639)
Ref: https://web.dev/articles/referrer-best-practices
2024-08-08 20:20:29 +05:30
Manav Rathi
7dcfe12d1d [web] Fix referrer policy
Ref: https://web.dev/articles/referrer-best-practices
2024-08-08 20:17:16 +05:30
Neeraj Gupta
4920ecf643 rename 2024-08-08 14:44:42 +05:30
Neeraj Gupta
58e55a7a00 [server] Clean up 2024-08-08 14:19:50 +05:30
Neeraj Gupta
86ad432d5b [server] Implement file data deleted using existing table as queue 2024-08-08 14:16:40 +05:30
Manav Rathi
0fcecc7786 [web] Improve handling of cancelled sub updates (#2635)
This fixes an issue where a user with a cancelled _and_ expired
subscription would try to purchase a plan, and would instead get
redirected to the updated subscription flow in stripe (instead of the
buy flow).

Smoke tested a few scenarios locally.
2024-08-08 14:15:55 +05:30
Manav Rathi
a3c51044c4 Unused 2024-08-08 14:02:24 +05:30
Manav Rathi
488c239cf2 Use 2024-08-08 13:59:44 +05:30
Manav Rathi
d26aafc5f4 Flowchart 2024-08-08 13:57:17 +05:30
Neeraj Gupta
272d17615e [server] Remove fileData cleanup via queue 2024-08-08 13:03:34 +05:30
Neeraj Gupta
50f6fd7440 Add request to get preview url 2024-08-08 12:51:42 +05:30
Manav Rathi
5ad1bacf3e Swap 2024-08-08 12:46:13 +05:30
Manav Rathi
1c8512ad81 wip harness 2024-08-08 12:38:33 +05:30
Manav Rathi
c784831ded Test 2024-08-08 12:35:04 +05:30
Manav Rathi
d53d39b400 Loop 2024-08-08 12:27:19 +05:30
ashilkn
eaf6147f2b Merge branch 'main' into guest_view 2024-08-08 12:12:12 +05:30
Manav Rathi
e31f0b042d Sketch 2024-08-08 12:05:20 +05:30
Neeraj Gupta
2eb0cb3487 Update DB Schema 2024-08-08 12:04:05 +05:30
Manav Rathi
395fe16d8a dp 2024-08-08 11:52:30 +05:30
Manav Rathi
ce421eded4 nanoids 2024-08-08 11:17:18 +05:30
Manav Rathi
5cc8479354 Outline 2 2024-08-08 10:50:49 +05:30
Manav Rathi
08303d2bb6 Outline 2024-08-08 10:36:48 +05:30
httpjamesm
00d0cfe72c feat: add shakepay and newton icon metadata 2024-08-08 00:12:51 -04:00
httpjamesm
f3b13042ca feat: newton crypto icon 2024-08-08 00:11:42 -04:00
httpjamesm
6fbc807225 feat: shakepay icon 2024-08-08 00:09:55 -04:00
Manav Rathi
9ec1affcbb docs: section links Method (#2633)
## Description
Link separate by hyphen for scrolling through intended section title.
## Tests
2024-08-08 09:13:05 +05:30
Guspan Tanadi
67d0fb1c31 docs: section links Method 2024-08-08 07:32:39 +07:00
Prateek Sunal
b6602d052f Merge remote-tracking branch 'origin/main' into mobile-panorama-fix 2024-08-08 04:01:24 +05:30
Prateek Sunal
7cafa9ccb6 fix(mob/panorama): add background pattern 2024-08-08 04:00:59 +05:30
Aman Raj Singh Mourya
b7bd8c83ba [mob][photos] Swipe lock for multiple files 2024-08-08 00:44:27 +05:30
Manav Rathi
36de2db175 [web] Finalize migration to new Exif library (#2630) 2024-08-07 21:07:37 +05:30
Prateek Sunal
a09794304c [auth] redirect support issues to github discussion (#2605)
## Description

same as title
2024-08-07 20:22:55 +05:30
Manav Rathi
fe97828328 Remove debug log 2024-08-07 19:50:00 +05:30
Neeraj Gupta
1bb4940e14 Handle deletion from inFlight replica 2024-08-07 16:46:02 +05:30
Manav Rathi
959f887d2f Remove unused flexibility 2024-08-07 16:08:20 +05:30
Manav Rathi
6967d1235e derived 2024-08-07 15:55:10 +05:30
Manav Rathi
ca1039884f Remove exif extraction during indexing 2024-08-07 15:50:10 +05:30
Manav Rathi
777f9e9704 - @xmldom/xmldom
(In next commit we'll remove it from the indexer)
2024-08-07 15:42:44 +05:30
Manav Rathi
527dfc3721 Remove exifr 2024-08-07 15:34:55 +05:30
Neeraj Gupta
5f14057b65 Update schema to add in-flight list of regions 2024-08-07 15:34:21 +05:30
Manav Rathi
8cde8d6d66 [web] Use new Exif library during uploads (#2629) 2024-08-07 15:16:51 +05:30
Manav Rathi
0b279111dd Use during uploads 2024-08-07 15:07:50 +05:30
Manav Rathi
1fdeebed28 Integrate 2024-08-07 14:37:12 +05:30
dnred
139d3b99a1 Change Auth mobile apps' names to "Ente Auth" (#2622)
## Description

Changed the name of the Auth mobile app to "Ente Auth" on both Android
and iOS to make it consistent with the naming of Ente Photos and to also
make it consistent on both platforms.
2024-08-07 14:34:01 +05:30
Manav Rathi
0a3182be53 Not deprecated 2024-08-07 14:15:12 +05:30
Shamshid
1db7bf2902 [Auth] Add 3 new icons (#2627)
## Description

Add icons for:
- [Booking.com](http://booking.com/)
- [Blockchain.com](https://blockchain.com/)
- [BitOasis](https://bitoasis.net/)
2024-08-07 14:07:14 +05:30
Manav Rathi
920b4e6823 Unnull 2024-08-07 13:55:18 +05:30
Manav Rathi
fe399762f5 Doc 2024-08-07 13:22:15 +05:30
Manav Rathi
9a60bf3ba6 Doc 2024-08-07 13:06:46 +05:30
Manav Rathi
862495c29e Up 2024-08-07 13:00:59 +05:30
Manav Rathi
5c0a80415d Give both a shot 2024-08-07 12:56:59 +05:30
Neeraj Gupta
075096258f Rename 2024-08-07 12:56:39 +05:30
Manav Rathi
728c3a80f4 Scaffold 2024-08-07 12:47:19 +05:30
Manav Rathi
6adbb82d54 p1 2024-08-07 12:40:18 +05:30
Manav Rathi
1fc1d3f4c0 Rearrange 2024-08-07 12:30:49 +05:30
Manav Rathi
05725dfdeb lay of the land 2024-08-07 12:26:02 +05:30
Manav Rathi
25c97dea48 Switch 2024-08-07 12:21:17 +05:30
Manav Rathi
9cc8469ed9 Remove unused 2024-08-07 12:04:34 +05:30
Manav Rathi
fead530786 Use in fixer 2024-08-07 11:41:29 +05:30
Manav Rathi
4d6b57b96c [web] Use the new date/time persistence format for edits (#2628) 2024-08-07 11:13:42 +05:30
Manav Rathi
74e50a8e37 Show from both places 2024-08-07 11:02:17 +05:30
Manav Rathi
62436db1c3 Add sync variant 2024-08-07 10:56:25 +05:30
Manav Rathi
f4adea5a60 Add wrapper 2024-08-07 10:33:53 +05:30
Manav Rathi
7ecfa20f03 Up 2024-08-07 10:19:12 +05:30
Manav Rathi
71b909d950 Outline 2024-08-07 10:15:14 +05:30
Manav Rathi
36673997dd lf 2024-08-07 09:37:05 +05:30
Manav Rathi
5d16f5735b Inline 2024-08-06 20:39:34 +05:30
Manav Rathi
8e284c1139 Don't use the offset 2024-08-06 20:30:05 +05:30
Manav Rathi
657ea68122 Keep in sync 2024-08-06 20:21:56 +05:30
Manav Rathi
a6cc6f24d0 Use newer fields 2024-08-06 20:05:27 +05:30
Neeraj Gupta
98a6bf9164 Store bucketID for temp objects 2024-08-06 17:01:06 +05:30
Manav Rathi
af4064b97a Prepare for merge 2024-08-06 16:24:40 +05:30
Neeraj Gupta
84fa8f343b clean up 2024-08-06 15:34:27 +05:30
Neeraj Gupta
ec91e75780 [server] Handle fileData cleanup on file Deletion 2024-08-06 15:31:53 +05:30
Manav Rathi
9ceae94071 Update docs 2024-08-06 15:30:38 +05:30
Manav Rathi
962a260e4b Copy over another hack 2024-08-06 15:27:05 +05:30
Manav Rathi
d30773e68a Fix 2024-08-06 15:22:38 +05:30
Manav Rathi
2c6298d6c3 Test 2 2024-08-06 14:56:21 +05:30
Manav Rathi
07786140f9 Give it a spin 2024-08-06 14:47:30 +05:30
Manav Rathi
7d36808bb5 Sprinkled with TODOs, but a checkpoint 2024-08-06 14:28:51 +05:30
Manav Rathi
a61ea9338e Add note about Zod and exactOptionalPropertyTypes 2024-08-06 14:07:21 +05:30
Manav Rathi
1c4ae46270 wip 1 2024-08-06 13:53:55 +05:30
Manav Rathi
1570b0a551 Entry point 2024-08-06 13:06:26 +05:30
Ashil
b8cb480d23 [mob][photos] Fix bug in parsing rotation metadata from video using FFProbe (#2595)
### Description

Parse width and height of video correctly using FFProbe by 
- Considering both `coded_height` & `height` + `coded_width` + `width`
keys to parse height and width of video. Came across two videos where
`coded_width` and `coded_height` were both `0` where as `height` and
`width` had the correct values.
- Parse `rotation` from `side_data_list` and consider `rotation` for
accurate (i.e, not flipped) dimensions.

Have made sure the correct height and width of the video is shown on the
video's file info. Sometimes there could be a slight difference from
what a user would expect, if the `coded_side` is different from `side`
(`side` is `width` or `height`). Will be fixing this in future.
Ref:
https://superuser.com/questions/1523944/whats-the-difference-between-coded-width-and-width-in-ffprobe
2024-08-06 11:25:13 +05:30
Prateek Sunal
d9bd96ce34 Merge remote-tracking branch 'origin/main' into mobile-panorama-fix 2024-08-06 02:31:52 +05:30
Manav Rathi
a821d1f283 [web] Magic metadata related refactoring (#2621)
This is mostly prep, no (major) changes to the functional codepaths yet.
2024-08-05 20:56:46 +05:30
Manav Rathi
4470fe0425 Clean 2024-08-05 20:41:22 +05:30
Manav Rathi
296bcbc8c2 Move and grow 2024-08-05 20:33:54 +05:30
Manav Rathi
f38d432bf9 It's also used for collections 2024-08-05 20:22:33 +05:30
Manav Rathi
543b180137 Rename II 2024-08-05 20:20:58 +05:30
Manav Rathi
2e683bb625 Doc 2024-08-05 20:19:10 +05:30
Manav Rathi
164d875324 Rename 2024-08-05 20:11:48 +05:30
Manav Rathi
70d691207c Doc 2024-08-05 20:04:21 +05:30
Manav Rathi
b12f981f5b Sibling 2024-08-05 20:00:17 +05:30
Manav Rathi
28ca94265d More 2024-08-05 19:54:20 +05:30
Manav Rathi
b16a717776 Doc 2024-08-05 19:15:39 +05:30
Manav Rathi
20ac146b50 Remove unnecessary alias 2024-08-05 18:25:44 +05:30
ashilkn
2916bcfda8 [mob][photos] chore 2024-08-05 18:24:29 +05:30
Manav Rathi
b91d854a92 New 2024-08-05 18:14:50 +05:30
ashilkn
f69214461d [mob][photos] Add todo comment 2024-08-05 18:09:07 +05:30
Crowdin Bot
cbb1a57ffe New Crowdin translations by GitHub Action 2024-08-05 18:06:28 +05:30
Neeraj Gupta
543aa6b9cf Clean up 2024-08-05 17:46:00 +05:30
Neeraj Gupta
744d6bc6ea Add helper method to empty bucket for given user 2024-08-05 17:35:05 +05:30
Neeraj Gupta
81c3626c6c Rename 2024-08-05 17:31:12 +05:30
Neeraj Gupta
27eb5ecc2b [server] Update DB Script 2024-08-05 16:44:34 +05:30
Neeraj Gupta
18d58a9eee [server] Parse config for file-data buckets 2024-08-05 16:44:01 +05:30
Manav Rathi
9991f0bfc0 [web] Better standardize the crypto nomenclature used in code (#2620) 2024-08-05 15:44:49 +05:30
Manav Rathi
9640d485a2 Rename 2024-08-05 15:37:46 +05:30
Manav Rathi
9b896c5c2f Dedup 2024-08-05 15:37:29 +05:30
Manav Rathi
838840bfa8 Decrypt thumb 2024-08-05 15:36:34 +05:30
Manav Rathi
2952c4a4c6 Consistency 2024-08-05 15:19:20 +05:30
ashilkn
e1713851b3 [mob][photos] Show accurate height and width in file info for a video 2024-08-05 15:09:16 +05:30
Manav Rathi
2d1a8e5b85 Doc 2024-08-05 15:08:47 +05:30
Manav Rathi
a59b11c9f8 Rearrange 2024-08-05 15:04:46 +05:30
Manav Rathi
40c360a1bd Rename 2024-08-05 15:03:55 +05:30
Manav Rathi
d599a6dcfa Thumb 2024-08-05 15:03:39 +05:30
Manav Rathi
219cc405da Terms 2024-08-05 14:58:35 +05:30
Manav Rathi
8cabf13e5a lint 2024-08-05 14:46:16 +05:30
Manav Rathi
f8c12ba127 Rename 2024-08-05 14:44:37 +05:30
Manav Rathi
9583b31bfc Prune 2024-08-05 14:44:03 +05:30
Manav Rathi
506dc36c69 Rest 2024-08-05 14:43:36 +05:30
Manav Rathi
61935a0037 More 2024-08-05 14:41:56 +05:30
Manav Rathi
25541ecd3a More 2024-08-05 14:41:05 +05:30
Manav Rathi
5e3cae39ec Entities too 2024-08-05 14:38:21 +05:30
Manav Rathi
e60506586e Prune 2024-08-05 14:33:29 +05:30
Manav Rathi
0d8a49317a Upload 2024-08-05 14:32:57 +05:30
Manav Rathi
6b52f1e53b all but 1 2024-08-05 14:26:45 +05:30
Manav Rathi
9ff4aa47d0 Collection 2024-08-05 14:22:28 +05:30
Manav Rathi
edbe40d2fa Use 2024-08-05 14:21:03 +05:30
Manav Rathi
4c28646ecc Expand to collections 2024-08-05 14:20:03 +05:30
Manav Rathi
8ec2d3e87c Forward 2024-08-05 14:01:46 +05:30
Crowdin Bot
2a00313159 New Crowdin translations by GitHub Action 2024-08-05 14:01:35 +05:30
Manav Rathi
22b2c49b63 metadata 2024-08-05 13:57:05 +05:30
Manav Rathi
13ab0d4309 enc new 2024-08-05 13:49:21 +05:30
Manav Rathi
5536f7ac03 Update the embedding layer 2024-08-05 13:42:55 +05:30
Manav Rathi
bd42650b9e More docs etc 2024-08-05 13:28:02 +05:30
Manav Rathi
13f31a7d09 Dec 2024-08-05 12:12:14 +05:30
Manav Rathi
124552eda3 New 2024-08-05 12:04:38 +05:30
Manav Rathi
a9359d15d3 Doc 2024-08-05 11:39:31 +05:30
Manav Rathi
15f80e3fa6 Ontology 2024-08-05 11:33:16 +05:30
Manav Rathi
2dcc199556 Unused 2024-08-05 11:10:56 +05:30
Manav Rathi
9bce3bba7c Rename and prune 2024-08-05 11:07:57 +05:30
Manav Rathi
32a602725a Unnest 2024-08-05 10:34:01 +05:30
Manav Rathi
0bff899713 Doc 2024-08-05 10:31:07 +05:30
Neeraj Gupta
d0fd868705 Merge branch 'main' into file_data 2024-08-05 10:24:02 +05:30
Manav Rathi
a02a4ca5c1 [web] New translations (#2616)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2024-08-05 09:53:17 +05:30
Crowdin Bot
2860a94dae New Crowdin translations by GitHub Action 2024-08-05 00:31:53 +00:00
Manav Rathi
ccc20c5bbd [server] Mention extra in docs (#2613)
Ref: https://github.com/ente-io/ente/pull/2607
2024-08-03 18:13:30 +05:30
Manav Rathi
98de9082b9 [server] Mention extra in docs
Ref: https://github.com/ente-io/ente/pull/2607
2024-08-03 18:11:15 +05:30
Manav Rathi
c703f46243 [web] Miscellaneous improvements (#2612) 2024-08-03 18:02:43 +05:30
Manav Rathi
6bd9607c94 allow setting extra parameter for dsn (#2607)
## Description
For https://github.com/ente-io/ente/discussions/2603
2024-08-03 18:01:32 +05:30
Manav Rathi
d68c04a8fb Increase tap area for better mobile UX 2024-08-03 17:57:41 +05:30
Manav Rathi
eea4958ee7 Non-ente ext links 2024-08-03 17:42:49 +05:30
Manav Rathi
6feb3b7897 Move 2024-08-03 17:20:21 +05:30
Manav Rathi
17e57b7486 Inline 2024-08-03 17:14:21 +05:30
Manav Rathi
9673aa1c19 Remove redundant preload
We show the img tag immediately
2024-08-03 17:11:27 +05:30
Manav Rathi
ebf51b99c8 Remove unused image (and its preload) 2024-08-03 17:05:41 +05:30
Manav Rathi
56c4b39d75 Button already handles this 2024-08-03 16:41:33 +05:30
Neeraj Gupta
14d003dd8f [server] Add API to update referral code 2024-08-03 16:39:15 +05:30
Manav Rathi
a01077a1a4 Inline 2024-08-03 16:38:27 +05:30
Neeraj Gupta
29cf5b91a5 [server] Fix deviceLimit tracker 2024-08-03 16:37:00 +05:30
Neeraj Gupta
3392e39f7c [server] Change default link expiry to never 2024-08-03 16:37:00 +05:30
Manav Rathi
c604078736 Prune 2024-08-03 16:31:36 +05:30
Manav Rathi
80dccca62c Accurater 2024-08-03 16:11:59 +05:30
Manav Rathi
04d632b50e Opt
https://mui.com/material-ui/react-use-media-query/#client-side-only-rendering
2024-08-03 16:09:40 +05:30
Neeraj Gupta
c41933edc4 [server] Fix typo (#2608)
## Description

## Tests
2024-08-03 16:07:17 +05:30
Neeraj Gupta
d1dc977d5e [server] Add struct for fileData config 2024-08-03 16:06:47 +05:30
Manav Rathi
0db9bd04a1 Inline 2024-08-03 16:04:41 +05:30
Manav Rathi
179acd7e47 Prune more 2024-08-03 16:00:04 +05:30
Manav Rathi
97486818d8 [web] Use pointer media query to approximate mobile device detection 2024-08-03 15:51:49 +05:30
Vishnu Mohandas
22cff206b3 Update README.md 2024-08-03 15:35:52 +05:30
Manav Rathi
b8e20eb263 [web] Start using new Exif library during date modifications (#2604) 2024-08-03 10:15:31 +05:30
Manav Rathi
d530562552 Update docs 2024-08-03 10:14:30 +05:30
Manav Rathi
ef38b639eb Fix appearance in the info drawer 2024-08-03 10:10:36 +05:30
Manav Rathi
7db35fd8bd I don't see a pen icon anymore
Not sure what this was for
2024-08-03 09:54:19 +05:30
Manav Rathi
59d772f609 Fix the layout shift 2024-08-03 09:54:06 +05:30
Manav Rathi
d5e54214da Fix another bunch of issues
This also fixes the problem with the separator (the colon in 08:54) not aligning
in the default orientation.
2024-08-03 08:57:51 +05:30
Manav Rathi
1227991300 Customize the paper slot the new way 2024-08-03 08:42:16 +05:30
Manav Rathi
cf81d25b6a Migrate renderInput 2024-08-03 08:35:01 +05:30
Manav Rathi
cc596ae4f0 freshen 2024-08-03 06:14:49 +05:30
John Doe
dbab1bad55 allow setting extra parameter for dsn 2024-08-02 21:09:23 +01:00
ashilkn
7c202a4edb [mob][photos] Consider the 'width' and 'height' key also when parsing dimensions of video 2024-08-02 17:26:36 +05:30
Prateek Sunal
289718f7f6 fix(auth/support): update support email to auth@ente.io 2024-08-02 16:40:39 +05:30
Prateek Sunal
986c00f4e8 fix(auth/support): remove support email and redirect to github discussions 2024-08-02 16:36:05 +05:30
Manav Rathi
025b8f7bcf Handle initial option 2024-08-02 15:24:58 +05:30
Victor Muthiani
5f7b411b67 [Auth] Add new icons and fix some icons (#2559)
## Description
1. Icons added:

- Ecitizen Kenya
- Bitget Wallet

2. Fixed icons that were invisble:

- Crypto
- 1xbet

3. Updated icons to cater for both dark and light mode:

- Github
- OKX 
- Bitmart

4. Reduced deriv.svg icon width
2024-08-02 15:22:01 +05:30
Manav Rathi
487cf125c1 Lint fix 2024-08-02 15:17:51 +05:30
Neeraj Gupta
e32cd7b64c [server] Expose API to get and put metadata 2024-08-02 15:09:52 +05:30
Manav Rathi
839b86ce88 uncon 2024-08-02 14:58:51 +05:30
Manav Rathi
2ebfc79420 Handle initial value 2024-08-02 14:54:50 +05:30
Manav Rathi
eb848eb4c6 The other place 2024-08-02 14:51:30 +05:30
Manav Rathi
ea36517832 Move back
Too many requisites first need to be moved to move those functions to new.
2024-08-02 14:49:55 +05:30
Manav Rathi
0bbb15337f Rework 2024-08-02 14:35:11 +05:30
Manav Rathi
8a2d3600e9 wip move 2024-08-02 14:21:51 +05:30
Manav Rathi
4335df1634 mig wip 2024-08-02 13:58:09 +05:30
Manav Rathi
967149c04b New home 2024-08-02 13:44:31 +05:30
Manav Rathi
a19179cacd Fix type 2024-08-02 13:42:12 +05:30
Manav Rathi
edc3337192 2 2024-08-02 13:33:10 +05:30
Manav Rathi
0241e408e1 Make it work 1
Rely on default 1900 instead of 1800
2024-08-02 13:18:50 +05:30
Manav Rathi
32469adcc5 Update MUI date picker to try and obtain the UTC functionality
Per https://mui.com/blog/mui-x-v6/#decoupling-versions-from-mui-core, the
version of MUI X is now decoupled from MUI core so this should work even when
our MUI remains at 5.

Migration:
- https://mui.com/x/migration/migration-pickers-v5/
- https://mui.com/x/migration/migration-tree-view-v6/
2024-08-02 12:28:26 +05:30
Manav Rathi
c8fcac8b55 (doesn't work) attempt to use UTC dates
We need to update MUI
2024-08-02 12:24:13 +05:30
Manav Rathi
fa89ed3a7c Switch to dayjs for UTC support 2024-08-02 12:14:30 +05:30
Manav Rathi
1364feeac8 Scope 2024-08-02 11:55:29 +05:30
Manav Rathi
3bf81dda3b Make it work 2024-08-02 11:51:03 +05:30
Manav Rathi
066c41a6df Upgrade 2024-08-02 11:38:10 +05:30
Manav Rathi
57dd8b0c67 Doc 2024-08-02 11:21:25 +05:30
Manav Rathi
54d97c222e Fix lint 2024-08-02 11:14:31 +05:30
Manav Rathi
ee233eab71 Tweak 2024-08-02 11:07:41 +05:30
Manav Rathi
706c288220 Remove unused prop 2024-08-02 10:48:47 +05:30
Manav Rathi
93b7d71543 Use the mui option 2024-08-02 10:47:04 +05:30
Manav Rathi
d6433155db New home 2024-08-02 10:42:51 +05:30
Manav Rathi
993943ccfa Prep 2024-08-02 10:41:28 +05:30
Manav Rathi
99c6c22fe1 [web] Non functional code rearrangement for the plan list (#2597) 2024-08-01 21:19:04 +05:30
Manav Rathi
bf6dc59429 Up 2024-08-01 21:12:07 +05:30
Manav Rathi
7c71277759 Inline 2024-08-01 21:11:10 +05:30
Manav Rathi
88996eddea Inline 2024-08-01 21:08:26 +05:30
Manav Rathi
dbd2addeea Scope 2024-08-01 21:06:44 +05:30
Manav Rathi
ab652ee3fe Inline 2024-08-01 21:05:04 +05:30
Manav Rathi
d14b18867a Remove unused 2024-08-01 21:00:16 +05:30
Manav Rathi
cfe2e96227 Inline 2024-08-01 20:59:26 +05:30
Manav Rathi
ad0b8ae017 Inline 2024-08-01 20:55:52 +05:30
Manav Rathi
7e5577ecd7 Inline 2024-08-01 20:53:19 +05:30
Manav Rathi
cd73a736f4 Remove unused 2024-08-01 20:51:44 +05:30
Manav Rathi
0a03df9242 Inline 2024-08-01 20:50:03 +05:30
Manav Rathi
1c4a6ca8b1 Remove unused 2024-08-01 20:39:28 +05:30
Manav Rathi
f15729d73f Inline 2024-08-01 20:37:14 +05:30
Manav Rathi
8edf6d8253 Remove unnecessary cast 2024-08-01 20:36:18 +05:30
Aman Raj Singh Mourya
43525128eb [mob][photos] Multi-Item Selection and Deletion Feature for Quick Links (#2589)
**Description**
This PR introduces a new feature that allows users to select multiple
links from quick links and delete them in one action.
2024-08-01 20:21:47 +05:30
Aman Raj Singh Mourya
ea585903b7 Merge branch 'quick_links' of https://github.com/ente-io/ente into quick_links 2024-08-01 20:17:32 +05:30
Aman Raj Singh Mourya
42c508b9ce [mob][photos] Use string for ValueKey 2024-08-01 20:16:56 +05:30
ashilkn
2fd960eb0e Merge branch 'main' into quick_links 2024-08-01 20:10:43 +05:30
Aman Raj Singh Mourya
e72c858315 [mob][photos] Fixed animation 2024-08-01 19:55:47 +05:30
Aman Raj Singh Mourya
2af07d9211 [mob][photos] Added animation 2024-08-01 19:55:19 +05:30
Aman Raj Singh Mourya
5f40b2e251 [mob][photos] Extracted strings 2024-08-01 19:31:21 +05:30
Ashil
50b6616680 [mob][auth] Bump up to v3.1.0 (#2582) 2024-08-01 19:25:43 +05:30
Ashil
ca3b477d4c [mob][photo] Fix incorrect SQLite syntax (missing whitespace) (#2587) 2024-08-01 19:25:17 +05:30
Neeraj Gupta
395f0384a0 [cli] Add option to exlude shared or hidden folders 2024-08-01 19:13:03 +05:30
Aman Raj Singh Mourya
1c1135a9b2 [mob][photos] Minor UI changes 2024-08-01 19:03:25 +05:30
Aman Raj Singh Mourya
105ab79cdb [mob][photos] Changed dialog copy 2024-08-01 18:19:27 +05:30
Neeraj Gupta
0526c63681 [cli] Extend export command to pass filters 2024-08-01 17:52:58 +05:30
Neeraj Gupta
7d8a7257b4 [cli] Add list of filters 2024-08-01 17:46:05 +05:30
ashilkn
af5e9b51e1 [mob][photos] Fix bug in parsing rotation metadata from video using FFProbe 2024-08-01 16:51:36 +05:30
Manav Rathi
884ff970ad [desktop] Make the Exif backfill optional (#2594) 2024-08-01 16:33:53 +05:30
Manav Rathi
22f4a3751f [desktop] Don't use the indexable-files API (#2593)
Discussed. It is meant for mobile app use cases - us using it also on
desktop (where the constraints are different) doesn't really improve on
much latency and adds the overhead of extra API requests on each sync.

Supercedes: https://github.com/ente-io/ente/pull/2591
2024-08-01 16:33:06 +05:30
Manav Rathi
e640302ce0 [desktop] Make the exif backfill optional 2024-08-01 16:30:41 +05:30
Manav Rathi
4e51d76791 [desktop] Don't use the indexable-files API
Discussed. It is meant for mobile app use cases - us using it also on desktop
(where the constraints are different) doesn't really improve on much latency and
adds the overhead of extra API requests on each sync.
2024-08-01 16:12:21 +05:30
Manav Rathi
be00f015a7 [desktop] Handle logout for utility process (#2592) 2024-08-01 15:30:58 +05:30
Manav Rathi
9c883eebc6 [desktop] Handle logout for utility process 2024-08-01 15:27:14 +05:30
Ashil
50f601b66b [mob][photos] Handle/fix issues with media dimensions (#2580)
## Description

- Stopped updating image width and height in public metadata since the
these could be incorrect (width and height inverted to be precise).
- Parse `rotation` metadata from video metadata when parsing video
properties with `ffprobe` to get the correct video width and height
considering `rotation`.
2024-08-01 14:46:02 +05:30
Neeraj Gupta
bfe5632477 [server] Support for inserting and fetching s3 metadata 2024-08-01 13:24:46 +05:30
Neeraj Gupta
a67bc6aee7 [server] Add bucket5 2024-08-01 13:24:25 +05:30
Manav Rathi
c0011ef10b [desktop] Pull existing embeddings first before starting on indexing (#2591)
Speeds up the initial sync on a new client.
2024-08-01 12:36:14 +05:30
Manav Rathi
985de0a5ce Fix the actual issue described in 940c647d50 2024-08-01 12:26:27 +05:30
Manav Rathi
940c647d50 Prevent multiple ticks from being enqueued
Noticed multiple ticks when uploading an item, which brought back focus into the
app and caused wakeUp also to get triggered because of sync. Not sure if this
was the issue, but felt like a potential one.
2024-08-01 12:19:06 +05:30
Manav Rathi
97bbf4811f Save 2024-08-01 11:45:25 +05:30
Manav Rathi
eed991a7b2 Construct the scaffolding 2024-08-01 11:22:10 +05:30
Manav Rathi
5a362b5d45 Move wip 2024-08-01 11:06:41 +05:30
Manav Rathi
523af2600a pull wip 2024-08-01 10:49:45 +05:30
Manav Rathi
f869447c7d File IDs 2024-08-01 10:41:31 +05:30
Manav Rathi
586d8f86f7 Up 2024-08-01 10:32:47 +05:30
Manav Rathi
c369db9453 Impl handler for /embeddings/indexed-files
https://github.com/ente-io/ente/pull/2511/
2024-08-01 10:15:04 +05:30
Manav Rathi
c4103f9136 Restore the pull scaffolding
Partially reverts 61b98a9964
2024-08-01 09:49:54 +05:30
Aman Raj Singh Mourya
ba9d656b38 [mob][photos] Added dialog box for confirmation 2024-07-31 19:47:08 +05:30
Vishnu Mohandas
31493541a1 Update pricing faq (#2588)
## Description

## Tests
2024-07-31 19:34:42 +05:30
vishnukvmd
af90bfade7 Update pricing faq 2024-07-31 19:33:35 +05:30
ashilkn
95e342830b [mob][photo] Fix incorrectly formatted query (missing whitespace) 2024-07-31 18:20:53 +05:30
Manav Rathi
eb2557b2b0 [desktop] Use a utility process for ML indexing (#2583)
* This ensures that the UI remains responsive when indexing is running.
* This allows us to parallelize the in-flight networking etc instead of
waterfalling everything.
* The actual CPU intensive indexing is still serial.
2024-07-31 16:27:28 +05:30
Manav Rathi
9ae979abbe [web] New translations (#2586)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2024-07-31 15:54:48 +05:30
Crowdin Bot
03805b6e75 New Crowdin translations by GitHub Action 2024-07-31 10:23:46 +00:00
Manav Rathi
b10d674711 [web] Free forever copy changes (#2585) 2024-07-31 15:53:00 +05:30
Aman Raj Singh Mourya
6361859a1b [mob][photos] Batch operation to delete quick links 2024-07-31 15:52:07 +05:30
Manav Rathi
e2f1d7488b [web] Free forever copy changes 2024-07-31 15:49:36 +05:30
Manav Rathi
8a39e4330b [web] New translations (#2584)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2024-07-31 15:45:29 +05:30
Crowdin Bot
81d1b15aaf New Crowdin translations by GitHub Action 2024-07-31 10:14:24 +00:00
Manav Rathi
f925d4cf27 Update plan IDs for pricing-v4 (#2573) 2024-07-31 15:32:24 +05:30
vishnukvmd
d52ea49a96 Update plan IDs for pricing-v4 2024-07-31 15:30:14 +05:30
Manav Rathi
0bc360c55c Add link 2024-07-31 15:21:52 +05:30
Manav Rathi
154fffd620 Clean unused 2024-07-31 15:11:23 +05:30
Manav Rathi
46cc696ccd Avoid jargon people might not understand 2024-07-31 14:58:24 +05:30
Manav Rathi
5e055b6039 opt unnecessary uploads 2024-07-31 14:44:42 +05:30
Manav Rathi
59cc01053a Handle refresh 2024-07-31 14:35:47 +05:30
Manav Rathi
1b0fe5fd4c Tighten timings 2024-07-31 14:19:25 +05:30
Manav Rathi
bf6aa5f840 Fix 2024-07-31 14:08:16 +05:30
Manav Rathi
ef32313807 x4 2024-07-31 14:04:29 +05:30
Neeraj Gupta
5bd75a8567 [server] Add req/res model files 2024-07-31 13:42:31 +05:30
Manav Rathi
ebbb9a61ee Don't fail on exif errors 2024-07-31 13:14:09 +05:30
Neeraj Gupta
b9b22fa4dc [server] Add DB triggers for validating row sanity 2024-07-31 13:04:51 +05:30
ashilkn
3d730f4d14 [mob][auth] Bump up to v3.1.0 2024-07-31 12:55:57 +05:30
Manav Rathi
4647f9fac2 Undup and scope 2024-07-31 12:47:52 +05:30
Manav Rathi
192e491acb Match the documented behaviour 2024-07-31 12:46:09 +05:30
Ashil
627a34a231 [mob][auth] Lockscreen option auth (#2465)
### Pull Request Description

*Features Added:*

1. *App Lock Options:*
- *Device Lock*: Users can set the app lock to utilize the device's
default lock mechanism (e.g., fingerprint, face recognition, or device
PIN/password).
- *Custom PIN/Password*: Users have the option to set a custom PIN or
password for app lock.

2. *Authentication for App Lock Settings:*
- When users attempt to change the app lock settings, they must
authenticate using the currently set PIN/password or, if none is set,
the device lock.

3. *App Lock on Background and Quit:*
- The app will prompt for authentication when it is brought back to the
foreground after being in the background or when the app is restarted.
4. *Incremental Lock Timer:*
- A timer mechanism is implemented which starts at 30 seconds after few
incorrect unlock attempts.
- The lockout time doubles after each incorrect attempt, increasing
delay penalties.
- After 10 incorrect attempts, the user is automatically logged out.
2024-07-31 12:43:15 +05:30
Manav Rathi
3a5843f532 tail 2024-07-31 12:34:30 +05:30
Manav Rathi
5a3838be34 Route via workers 2024-07-31 12:30:15 +05:30
Manav Rathi
e55a7facc3 Replace our homebrew RPC 2024-07-31 12:11:53 +05:30
Manav Rathi
6ad27a2d42 Cleanup 2024-07-31 11:58:22 +05:30
ashilkn
423f0b6719 [mob][auth] Reorder security section 2024-07-31 11:50:10 +05:30
Manav Rathi
62f723e50c Adapt 2024-07-31 11:33:18 +05:30
Manav Rathi
a97e01171a Commit incorrect but original motivations 2024-07-31 11:27:15 +05:30
Manav Rathi
daed8a72da Only once 2024-07-31 10:17:08 +05:30
Manav Rathi
b69d23028b Remove test code 2024-07-31 09:56:45 +05:30
Manav Rathi
1ae0f9723c Fix 1 2024-07-31 09:56:00 +05:30
Manav Rathi
f2f7b483fd comlink wip 2024-07-31 09:40:08 +05:30
Manav Rathi
95facd60e0 integrate wip 1 2024-07-31 09:20:35 +05:30
Aman Raj Singh Mourya
30cecf53b3 [mob][auth] Hide content default value set to true when applock enabled 2024-07-30 22:02:50 +05:30
Aman Raj Singh Mourya
2101817b23 [mob][auth] Code clean up 2024-07-30 21:49:40 +05:30
Manav Rathi
7baacc6a77 For real - 1 2024-07-30 20:22:09 +05:30
Manav Rathi
65cfcc27a8 Rearrange 2024-07-30 20:00:21 +05:30
Manav Rathi
3f3d10f57b Error 2 2024-07-30 19:53:39 +05:30
Manav Rathi
18cb596d57 Error 1 2024-07-30 19:41:51 +05:30
Manav Rathi
4ca40085c1 init 2024-07-30 19:13:54 +05:30
ashilkn
878d22fd4a [mob][auth]: Show auto lock feature only on mobile 2024-07-30 18:46:03 +05:30
ashilkn
c3c2dd5cc6 [mob][auth] Fix 'App lock' not working onTap from security section on macOS and Linux 2024-07-30 18:14:59 +05:30
ashilkn
08ba58d790 [mob][photos] Write getters to access correct height and width considering the rotation data and keep the raw codec height and width properties private in FFProbeProps 2024-07-30 17:30:20 +05:30
ashilkn
60d9a819f4 [mob][photos] Rename 2024-07-30 16:52:36 +05:30
ashilkn
6842218d2b [mob][photos] Remove unnecessary int to double conversion 2024-07-30 16:37:10 +05:30
ashilkn
3f0855d9a4 [mob][photos] write getter for video dimensions considering rotation in FFProbeProps 2024-07-30 16:27:43 +05:30
ashilkn
b2556e893b [mob][photos] Parse rotation also when parsing video properties using ffprobe 2024-07-30 16:18:30 +05:30
Manav Rathi
81b52419a5 debug strings 2024-07-30 16:03:57 +05:30
Manav Rathi
e66e9251db Fancier 2024-07-30 15:48:44 +05:30
Manav Rathi
37367f7260 Logging 1 2024-07-30 15:41:48 +05:30
ashilkn
48e566ae68 [mob][photos] Stop updating dimension in pubmmd as it could be inverted for some images 2024-07-30 15:40:17 +05:30
Manav Rathi
29877d119c Let it flow 2024-07-30 14:51:40 +05:30
Manav Rathi
c124cdff20 Fix ordering 2024-07-30 14:49:31 +05:30
Manav Rathi
3d83786f6c Workaround 2024-07-30 14:46:54 +05:30
Aman Raj Singh Mourya
a14a8b0cfb [mob][auth] Lockscreen fixes 2024-07-30 14:40:32 +05:30
Manav Rathi
d92a31d8d8 Indicate error 2024-07-30 14:27:27 +05:30
Manav Rathi
3eaa9b449a IPC 2024-07-30 14:16:10 +05:30
Manav Rathi
b28e8c2fb4 IPC 2024-07-30 13:41:58 +05:30
Manav Rathi
24bc175f1c Forward 2024-07-30 13:21:31 +05:30
Manav Rathi
e54910f8d0 Fix origin 2024-07-30 12:44:22 +05:30
Manav Rathi
0195a9b494 Add workaround 2024-07-30 12:43:07 +05:30
Manav Rathi
ea8bb4529f We need to go via the preload 2024-07-30 12:29:11 +05:30
Manav Rathi
180389f3e2 Can't circumvert that way 2024-07-30 12:00:44 +05:30
Manav Rathi
7d42f23abf Send to the right person 2024-07-30 11:48:00 +05:30
Manav Rathi
4087c6ef4e Fix path 2024-07-30 11:39:58 +05:30
Manav Rathi
67a9417528 Scaffold 2024-07-30 11:37:46 +05:30
Manav Rathi
1e720b4b7d Scaffold 2024-07-30 11:23:32 +05:30
Manav Rathi
1a9170632e Take 1 2024-07-30 11:16:04 +05:30
Neeraj Gupta
3a962cfe52 [server] Extend ObjectType instead of creating new enum 2024-07-30 10:30:57 +05:30
Manav Rathi
65d2bfe1c1 Split on the main/utility axis 2024-07-30 10:19:03 +05:30
Manav Rathi
82f808e533 Outline 2024-07-30 09:59:33 +05:30
Ashil
27ae4b83c4 [mob][photos] Subscription screen redesign (#2576) 2024-07-29 22:54:34 +05:30
ashilkn
142a4ddbc4 [mob][photo] Bump up to v0.9.16 2024-07-29 21:44:18 +05:30
ashilkn
406404f8d0 Merge branch 'main' into subscription_screen_redesign 2024-07-29 21:43:19 +05:30
ashilkn
088cec2716 [mob][photos] Fix on tap not working on free plan when onboarding 2024-07-29 21:38:45 +05:30
Manav Rathi
cf6336d100 [web] Minor tweak for the indexer (#2577)
Continuation of https://github.com/ente-io/ente/pull/2574.
2024-07-29 21:13:00 +05:30
Aman Raj Singh Mourya
c6bf6bd7b6 [mob][photos] Changed max quick link count to 4 2024-07-29 21:09:49 +05:30
Manav Rathi
3dbdea472b Add a top level catch handler instead of silent swallows 2024-07-29 20:46:05 +05:30
ashilkn
d5711095f9 [mob][photos] Change border of plans in subscription screen 2024-07-29 19:34:47 +05:30
ashilkn
2a3fe8c49f [mob][photos] Copy stripe subscription page changes to store subscription page 2024-07-29 19:22:53 +05:30
ashilkn
7d94ef0bbd [mob][photos] Subscription page final UI tweaks 2024-07-29 17:56:58 +05:30
ashilkn
4e589840ff [mob][photos] Subscription page UI improvements 2024-07-29 17:15:03 +05:30
Neeraj Gupta
3571281bef [auth] New translations (#2568)
New translations from
[Crowdin](https://crowdin.com/project/ente-authenticator-app)
2024-07-29 17:03:03 +05:30
Neeraj Gupta
7b0ec2991a [mobile] New translations (#2567)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-app)
2024-07-29 17:00:03 +05:30
Ashil
3572efc02b [mob][photos] Add preview to the album link (#2553) 2024-07-29 16:14:26 +05:30
Manav Rathi
3013d68203 [web] Exif - Migrate to a maintained library - Part 6/x (#2574) 2024-07-29 16:12:19 +05:30
Aman Raj Singh Mourya
c7857110ac [mob][photos] Minor changes 2024-07-29 16:11:52 +05:30
Manav Rathi
505e1de14c lint 2024-07-29 16:09:33 +05:30
Manav Rathi
d116c5ccb1 Prune false positives for times picked from file names 2024-07-29 15:59:55 +05:30
Aman Raj Singh Mourya
8f08ab18fc [mob][photos] MInor changes 2024-07-29 15:56:48 +05:30
Neeraj Gupta
dc143bbaaf [server] Minor fix 2024-07-29 15:48:22 +05:30
Neeraj Gupta
8f8f5d2f51 [server] Avoid redirect 2024-07-29 15:47:44 +05:30
Manav Rathi
aad7300e4b Take 2 2024-07-29 15:41:44 +05:30
Neeraj Gupta
2cc87140ed Add basic endpoint to unblock testing 2024-07-29 15:37:58 +05:30
Manav Rathi
0290991e2c DOMParser is not available in web workers
Exif extraction from XMP thus fails with the following console warning

    Warning: DOMParser is not available. It is needed to be able to parse XMP tags

Thus we need to explicitly take a dep on xmldom.
2024-07-29 15:16:33 +05:30
Manav Rathi
9e2e8e4d63 Fix 2024-07-29 14:54:31 +05:30
Aman Raj Singh Mourya
509b7bda67 [mob][photos] Moving code to share_util.dart 2024-07-29 14:48:42 +05:30
Manav Rathi
30db24721a Fix video spinner 2024-07-29 14:46:29 +05:30
Manav Rathi
b121daa607 Trace 2024-07-29 14:40:11 +05:30
Manav Rathi
bae717dc69 Prepare for internal users 2024-07-29 14:19:17 +05:30
Manav Rathi
b61e4f4ac6 Integrate exif 2024-07-29 13:55:37 +05:30
Manav Rathi
a7e0c5b61d Use the new server enum 2024-07-29 13:20:25 +05:30
Manav Rathi
7a2d925737 [server] Stop exposing /metrics for self-hosted users (#2569)
Doesn't impact Ente's production instances since this endpoint was
disallowed on the load balancer, but instead of requiring the same for
folks who are self hosting we modify the source to not expose /metrics
on :8080 (they'll still be available on :2112).

Refs:
-
2199a42d96/middleware.go (L345)
- https://github.com/ente-io/ente/discussions/2562
2024-07-29 12:05:07 +05:30
Vishnu Mohandas
84ee895b93 Fix typo (#2570) 2024-07-29 11:56:53 +05:30
Vishnu Mohandas
92068fbbd6 Fix typo 2024-07-29 11:56:40 +05:30
Neeraj Gupta
950b2bb997 [server] Update db script 2024-07-29 11:42:14 +05:30
Manav Rathi
d989a3b631 [server] Stop exposing /metrics for self-hosted users
Doesn't impact Ente's production instances since this endpoint was disallowed on
the load balancer, but instead of requiring the same for folks who are self
hosting we modify the source to not expose /metrics on :8080 (they'll still be
available on :2112).

Refs:
- 2199a42d96/middleware.go (L345)
- https://github.com/ente-io/ente/discussions/2562
2024-07-29 11:22:34 +05:30
Ashil
a8c9c33aaa [mob][photos]App lock screen UI improvements (#2536) 2024-07-29 11:22:12 +05:30
Neeraj Gupta
198dab9f58 [server] Add db script to store data 2024-07-29 10:37:13 +05:30
Manav Rathi
184e6090fd [web] New translations (#2566)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2024-07-29 09:51:49 +05:30
Crowdin Bot
d1417f364a New Crowdin translations by GitHub Action 2024-07-29 01:16:41 +00:00
Crowdin Bot
d2a6440cba New Crowdin translations by GitHub Action 2024-07-29 01:04:16 +00:00
Crowdin Bot
f09a8c4c51 New Crowdin translations by GitHub Action 2024-07-29 00:31:41 +00:00
Manav Rathi
8d91b857fb [web] Exif - Migrate to a maintained library - Part 5/x (#2558)
Things are reaching a state where we can flip the switch.
2024-07-27 21:51:26 +05:30
Manav Rathi
d1a74da4a4 Rely on the lib's formatters 2024-07-27 21:35:43 +05:30
Manav Rathi
08833390bc Retain previous behaviour 2024-07-27 20:24:59 +05:30
Manav Rathi
e1923fdebd Prone to confusion between the object and the type 2024-07-27 20:13:06 +05:30
Manav Rathi
06be08a382 Fix accidental aliasing 2024-07-27 20:08:56 +05:30
Manav Rathi
99066b8fea Use 2024-07-27 20:02:06 +05:30
Manav Rathi
487fd62feb Rearrange 2024-07-27 20:00:34 +05:30
Manav Rathi
26c40ab2ec Test
Chrome, Safari, Firefox, Node.js (macOS)

    const parseMetadataDate = (s) => {
        const timestamp = new Date(s).getTime() * 1000;
        if (isNaN(timestamp)) return undefined;

        let offsetTime;
        let sWithoutOffset;

        const m = s.match(/Z|[+-]\d\d:?\d\d$/);
        if (m?.index) {
            sWithoutOffset = s.substring(0, m.index);
            offsetTime = s.substring(m.index);
        } else {
            sWithoutOffset = s;
        }

        const date = new Date(
            sWithoutOffset + (sWithoutOffset.length <= 10 ? "" : "Z"),
        );
        const dateTime = dropLast(date.toISOString());

        return { dateTime, offsetTime, timestamp };
    };

    const dropLast = (s) => (s ? s.substring(0, s.length - 1) : s);

    const test = () => {
        console.log(parseMetadataDate("2023"));
        console.log(parseMetadataDate("2023-08"));
        console.log(parseMetadataDate("2023-08-23"));
        console.log(parseMetadataDate("2023-08-23T18:03:00"));
        console.log(parseMetadataDate("2023-08-23T18:03:00+05:30"));
        console.log(parseMetadataDate("2023-08-23T18:03:00.000+05:30"));
        console.log(parseMetadataDate("2023-08-23T12:33:00.000Z"));
    };

    test();
2024-07-27 19:45:15 +05:30
Manav Rathi
4deb9c8f13 Impl wip 2024-07-27 19:22:41 +05:30
ashilkn
efab8918f2 [mob][photos] Many changes to subscription page 2024-07-27 17:47:13 +05:30
Manav Rathi
74c5b22927 Outline 2024-07-27 17:42:54 +05:30
Manav Rathi
8b30d52e94 New home 2024-07-27 16:03:29 +05:30
ashilkn
b5d577f090 [mob][photos] Tweak animation 2024-07-27 13:23:11 +05:30
ashilkn
6440b2176d [mob][photos] Update font size in subscription screen 2024-07-27 13:17:12 +05:30
ashilkn
d3d859f252 [mob][photos] Update asset 2024-07-27 12:56:16 +05:30
ashilkn
63fe67d677 [mob][photos] Add animation when to price when switching between monthly and yearly plans 2024-07-27 12:48:07 +05:30
Neeraj Gupta
23d4156a12 [server] Make linter happy and new entityType: person_v2 (#2545)
## Description

## Tests
2024-07-27 12:36:50 +05:30
ashilkn
41f59ec9ca [mob][photos] Move SubscriptionToggle widget to subscription_common_widgets.dart 2024-07-27 12:16:47 +05:30
ashilkn
bebaa76085 [mob][photos] Show which plan is popular and active in subscription screen 2024-07-27 12:09:43 +05:30
Manav Rathi
c28b6e3a62 Stay within JavaScript
https://www.typescriptlang.org/docs/handbook/enums.html#objects-vs-enums
2024-07-27 10:29:46 +05:30
Manav Rathi
19304daeab Auto rename didn't catch this 2024-07-27 10:24:12 +05:30
Manav Rathi
5c0942f2b7 Remove unused 2024-07-27 10:15:41 +05:30
Manav Rathi
1adab703b8 Rename FILE_TYPE 2024-07-27 10:14:19 +05:30
Manav Rathi
9613361151 Outline 2024-07-27 10:04:47 +05:30
Manav Rathi
77fcd04613 [web] Exif - Migrate to a maintained library - Part x/x (#2556) 2024-07-27 08:56:28 +05:30
Manav Rathi
47f22cf7e4 [desktop] Attempts to improve large drag drops on Windows (#2555)
Trying to diagnose a customer issue where they reported that the
renderer was crashing when trying to drag and drop a 1TB folder on
Windows. Fixing some things that popped out in the memory allocations or
the CPU time when testing with a synthetic workflow (on macOS) - these
may or may not fix their issue, but these are anyway improvements and
will only make things better.
2024-07-26 21:21:48 +05:30
Manav Rathi
90cd6502c1 [desktop] Attempts to improve large drag drops on Windows
Trying to diagnose a customer issue where they reported that the renderer was
crashing when trying to drag and drop a 1TB folder on Windows. Fixing some
things that popped out in the memory allocations or the CPU time when testing
with a synthetic workflow (on macOS) - these may or may not fix their issue, but
these are anyway improvements and will only make things better.
2024-07-26 21:18:17 +05:30
ashilkn
b2103e3893 [mob][photos] Update subscription page colors 2024-07-26 20:09:02 +05:30
ashilkn
6d5af2e6a5 [mob][photos] Update colors and text style 2024-07-26 19:43:25 +05:30
ashilkn
ef1429685b [mob][photos] Make subscription toggle work 2024-07-26 19:19:42 +05:30
ashilkn
fc93deb575 [mob][photos] Create new subscription toggle 2024-07-26 18:50:11 +05:30
Aman Raj Singh Mourya
8bbef91103 [mob][photos] Add preview to the album link 2024-07-26 18:02:17 +05:30
Manav Rathi
7f357d0f65 lint 2024-07-26 16:11:06 +05:30
ashilkn
87e3aa4d11 [mob][photos] Redesign header widget of subscription page 2024-07-26 16:09:35 +05:30
Manav Rathi
6c7f8e5fae Mention we're ignoring NaNs too 2024-07-26 15:25:17 +05:30
Manav Rathi
b637f2fe08 Handle exif subsecs 2024-07-26 15:15:32 +05:30
Manav Rathi
5995730659 Rearrange 2024-07-26 14:54:51 +05:30
Manav Rathi
689d3c4c82 New lib works in more cases than before 2024-07-26 14:46:52 +05:30
Manav Rathi
d9a8eafbe3 Tweak 2024-07-26 14:29:56 +05:30
Manav Rathi
e14e06dc1a Handle errors 2024-07-26 14:22:09 +05:30
Manav Rathi
ce4063c892 There is always some data (from the image itself e.g.) 2024-07-26 13:33:48 +05:30
ashilkn
f01b3b9def [mob][photos] Redesign app bar of subscription screen 2024-07-26 13:29:33 +05:30
Manav Rathi
8cde630e01 Tweaks 2024-07-26 13:09:39 +05:30
Manav Rathi
55a86cc85c Test 1 2024-07-26 13:04:20 +05:30
Manav Rathi
8bf88c2059 Full listing 2024-07-26 12:51:47 +05:30
ashilkn
af42c42141 [mob][photos] Make borders, bg color, stroke color and padding same as design on SubscriptionPlanWidget 2024-07-26 12:49:07 +05:30
Manav Rathi
0d01ed5c00 Full listing 2024-07-26 12:38:50 +05:30
ashilkn
3edc323272 [mob][photos] Redesign and change logic in SubscriptionPlanWidget to match new design 2024-07-26 12:20:39 +05:30
Manav Rathi
f6c8e13816 Update wip 2024-07-26 12:07:59 +05:30
Manav Rathi
beace4cbde Parse wip 2024-07-26 11:57:46 +05:30
Manav Rathi
bac49c7058 Ontology wip 2024-07-26 11:03:18 +05:30
Manav Rathi
76faf4c1d7 Use raw exif - wip 1 2024-07-26 09:42:57 +05:30
Manav Rathi
47ded8b302 Dates 2024-07-25 21:07:18 +05:30
Manav Rathi
1501e055a9 Rename 2024-07-25 20:56:25 +05:30
Manav Rathi
2cb9c915aa Narrow down scope: index => extract raw exif 2024-07-25 20:49:36 +05:30
Ashil
8072b2943a [mob][photos] Improve UX on "Create new account" screen (#2548)
## Description

Since the app doesn't let a user create an account with a weak password
and since isn't clear for the user how the app classifies a password as
"Weak", "Moderate" or "Strong", users would find it hard to come up with
a moderate or strong password. Also, the app wasn't surfacing the
strength every time.

All these UX issues have been fixed in this PR. 
 
Before: 


https://github.com/user-attachments/assets/c9630c44-4591-4bdd-a05d-8098ff5afef8

After:


https://github.com/user-attachments/assets/a9c1abfa-de1e-44c6-9f7e-157abe4f8de3


## Tests

Tested new account creation flow, did not find any regressions and can't
think of any that could have been introduced.
2024-07-25 19:51:57 +05:30
Manav Rathi
b4ea15f00b Tweak the debug logging 2024-07-25 19:02:32 +05:30
Manav Rathi
191f1fd097 creationTime will always be present 2024-07-25 15:51:46 +05:30
ashilkn
fb25888129 [mob][photos] Release resources in dispose() and increase tap area of password strength info 2024-07-25 15:08:24 +05:30
Vishnu Mohandas
f0d5c7d51f Add breakdown of AppStore's privacy disclosure (#2549) 2024-07-25 15:06:39 +05:30
vishnukvmd
d5b59765aa Add breakdown of AppStore's privacy disclosure 2024-07-25 15:05:51 +05:30
ashilkn
d847141eb7 [mob][photos] Extract string 2024-07-25 13:43:04 +05:30
ashilkn
5d417f3825 [mob][photos] Give info to user how password strength is calculated in 'Create new account' screen 2024-07-25 13:40:51 +05:30
ashilkn
422a36319e [mob][photos] Create reuseble infoDialog 2024-07-25 13:36:07 +05:30
Aman Raj Singh Mourya
10e19ffae2 [mob][auth] Minor UI changes 2024-07-25 13:22:06 +05:30
Aman Raj Singh Mourya
28b9d5512f [mob][auth] Add animation when toggling app lock 2024-07-25 13:19:19 +05:30
ashilkn
939363fd7a [mob][photos] Always show password strength when needed in create new account screen 2024-07-25 12:55:26 +05:30
Neeraj Gupta
584db778ee [server] Add person_v2 entity type 2024-07-25 11:51:29 +05:30
Neeraj Gupta
336aa7ac5f [server] Make linter happy 2024-07-25 11:47:06 +05:30
Neeraj Gupta
4bcec9d43b [server] Temporarily disable fetch from Wasabi (#2544)
## Description

## Tests
2024-07-25 11:41:18 +05:30
Ashil
e5239e588b [mob][photos] Reorder security section in settings for consistent UI (#2538) 2024-07-25 11:40:55 +05:30
Neeraj Gupta
553c153155 [server] Temporarily disable fetch from Wasabi 2024-07-25 11:39:19 +05:30
Manav Rathi
a4a4b7f941 debug logging 2024-07-25 09:51:50 +05:30
Manav Rathi
89a8a45935 [web] Exif - New library migration - Part 4/x (#2542) 2024-07-24 21:05:33 +05:30
Manav Rathi
adf68a82c5 Add some debugging code 2024-07-24 21:00:51 +05:30
Manav Rathi
0d313825d6 debug logging 2024-07-24 20:46:37 +05:30
Manav Rathi
218a5ce5f9 Tie together 2024-07-24 20:42:49 +05:30
Manav Rathi
719f056841 Interface 2024-07-24 20:28:03 +05:30
Manav Rathi
c835984e40 Single date 2024-07-24 20:08:08 +05:30
Manav Rathi
5a36e37e93 Fuse 2024-07-24 19:54:39 +05:30
Manav Rathi
16ec4db546 Use 2024-07-24 19:41:31 +05:30
Manav Rathi
ae0b701319 Parse IPTC dates 2024-07-24 19:29:04 +05:30
ashilkn
31043f5f4e [mob][photos] Reorder security section in settings for consistent UI 2024-07-24 18:59:12 +05:30
Manav Rathi
4e29f1e03a Return pairs 2024-07-24 18:44:52 +05:30
ashilkn
dafa155903 Revert "[mob][photos] Fix internal release workflow failing"
This reverts commit 5764734f14.
2024-07-24 18:37:26 +05:30
Ashil
f3a69b0d0b [mob][photos] Fix internal release workflow failing (#2537)
To fix
`Changes cannot be sent for review automatically. Please set the query
parameter changesNotSentForReview to true. Once committed, the changes
in this edit can be sent for review from the Google Play Console UI.`
2024-07-24 18:23:53 +05:30
ashilkn
5764734f14 [mob][photos] Fix internal release workflow failing 2024-07-24 18:18:36 +05:30
ashilkn
2be4c7e470 [mob][photos] Minor UI changes 2024-07-24 17:52:44 +05:30
ashilkn
87ed684ce9 [mob][photos] Add animation when toggling app lock 2024-07-24 17:46:48 +05:30
Aman Raj Singh Mourya
3fd7100dd7 [mob][auth] Used better names 2024-07-24 17:26:49 +05:30
ashilkn
1545f75217 [mob][photos] Bump up to v0.9.15 2024-07-24 17:26:01 +05:30
Ashil
816061774e [mob][photos] Show app content (#2522)
**Toggle Implementation:** Added a new feature in the app settings to
enable or disable the visibility of app content in app switcher mode.
2024-07-24 17:20:26 +05:30
ashilkn
4451d39ac9 [mob][photos] Revert change to remove bug 2024-07-24 17:15:28 +05:30
ashilkn
12fbc6c801 [mob][photos] Use better names 2024-07-24 17:11:51 +05:30
Aman Raj Singh Mourya
386a2f841e [mob][auth] Extracted strings 2024-07-24 16:35:47 +05:30
Aman Raj Singh Mourya
275e521c40 [mob][auth] Fixes 2024-07-24 16:12:31 +05:30
ashilkn
2f6530d6d6 [mob][photos] Add comment for context 2024-07-24 16:02:25 +05:30
ashilkn
40f0829f6b [mob][photos] Make code better readable 2024-07-24 16:00:18 +05:30
Manav Rathi
cb0be8a624 [web] Exif - New library migration - Part 3/x (#2534) 2024-07-24 15:36:38 +05:30
Manav Rathi
3da9361271 Make the linter happy 2024-07-24 15:32:18 +05:30
Neeraj Gupta
aab6bb47b1 [server] Add new type for derived data (#2533)
## Description

## Tests
Tested locally, both DB insertion & value for client.
2024-07-24 15:27:33 +05:30
Manav Rathi
65863d1b8f Match the current order 2024-07-24 15:26:30 +05:30
Manav Rathi
7b80c5bf77 Do it as per the XMP spec
This is the format I've seen in all the XMP files I've encountered so far too
(not relying on this evidence, just that it corroborates what the spec says).

The wording in the exiftool spec was confusing, I now think what it means is
that _exiftool_ will use that format, not XMP.
2024-07-24 15:18:40 +05:30
Neeraj Gupta
626bc71b25 [server] Use req header for client info 2024-07-24 15:02:28 +05:30
Manav Rathi
1bcf232d25 Split 2024-07-24 14:53:18 +05:30
Aman Raj Singh Mourya
b1907ff091 [mob][photos] Extracted strings 2024-07-24 14:46:15 +05:30
Aman Raj Singh Mourya
940c02bbbc [mob][photos] Merge branch 'main' into show_app_content 2024-07-24 14:31:55 +05:30
Manav Rathi
66ed561d07 ExifReader trims the exif: or tiff: prefix from the XMP tags
12360dd8f3/src/xmp-tags.js (L252)
2024-07-24 14:17:13 +05:30
Neeraj Gupta
66e1062cd3 [server] Add derived model type 2024-07-24 13:56:48 +05:30
Manav Rathi
bd8057ede3 Dimensions 2024-07-24 13:53:23 +05:30
Aman Raj Singh Mourya
9c5d958250 [mob][photos] Minor fixes 2024-07-24 13:35:01 +05:30
Manav Rathi
db52780cee Lat lng 2024-07-24 13:00:01 +05:30
Manav Rathi
0730ba72a6 Build up 2024-07-24 12:54:37 +05:30
Manav Rathi
2ff6a2f73c XMP 2024-07-24 12:27:32 +05:30
Manav Rathi
f5f0af2ed8 Rely on the JS parser 2024-07-24 12:08:47 +05:30
Prateek Sunal
4f14fafa34 fix(panorama): update panorama checking mechanism to reduce checks 2024-07-24 11:59:35 +05:30
Manav Rathi
65f2c92d41 Parse 2 2024-07-24 11:56:57 +05:30
Manav Rathi
b37fbab2dc Parse 1 2024-07-24 11:51:02 +05:30
Neeraj Gupta
7c7299aa09 CLI: Allow setting secrets path via env var (#2426)
## Description

Adds a new enviroment variable `ENTE_CLI_SECRETS_PATH`, that allows
specifying the path to a `secrets.txt` like the one used in the
dockerized version. If no path is provided, the old behaviour is
maintained.

The configuration variable and behaviour is analog to the already
present `ENTE_CONFIG_PATH` variable, which allows specifying a
configuration.

This provides a solution for people running without gnome-keyring
(https://github.com/ente-io/ente/issues/722 and
https://github.com/ente-io/ente/issues/1328)
2024-07-24 11:31:41 +05:30
Ashil
005d786535 [mob][photos] Fix appbar getting clipped on custom font and display size on pixel 7 (#2526) 2024-07-24 11:30:48 +05:30
Manav Rathi
f17600a7c8 Separate 2024-07-24 11:27:38 +05:30
Manav Rathi
18ac20fd80 Sketch 2024-07-24 11:26:05 +05:30
Manav Rathi
870697daf8 Outline 2024-07-24 11:09:20 +05:30
Manav Rathi
ea0cc47c9c Outline 2024-07-24 10:39:37 +05:30
Aman Raj Singh Mourya
869ecb832e [mob][auth] Minor fixes and used better names 2024-07-23 23:30:36 +05:30
Aman Raj Singh Mourya
1e5cbc8422 [mob][photos] Minor changes 2024-07-23 21:59:59 +05:30
Manav Rathi
feeda425a5 [desktop] Further clarify the comment (#2528)
Updates 79fcf18f62
2024-07-23 20:00:45 +05:30
Manav Rathi
7d8961fbc5 [desktop] Further clarify the comment
Updates 79fcf18f62
2024-07-23 19:55:36 +05:30
Manav Rathi
79fcf18f62 [desktop] Fix desktop app direct uploads when self-hosting (#2527)
It seems that Backblaze returns `null` as the ACAO response if the
scheme is not http(s), even if we have set allowedOrigins to "*". The
desktop app has a custom scheme, "ente://app", which is thus causing B2
to return null.

    # Works:
curl -v -X OPTIONS -H 'Origin: http://example.org' -H
'Access-Control-Request-Method: PUT'
'https://xxx.s3.eu-central-003.backblazeb2.com/yyy'

    # Fails:
curl -v -X OPTIONS -H 'Origin: ente://example.org' -H
'Access-Control-Request-Method: PUT'
'https://xxx.s3.eu-central-003.backblazeb2.com/yyy'

Ref:
https://github.com/ente-io/ente/discussions/2461#discussioncomment-10125881
2024-07-23 19:47:28 +05:30
Manav Rathi
7f28d2bfe9 [desktop] Fix desktop app direct uploads when self-hosting
It seems that Backblaze returns `null` as the ACAO response if the scheme is not
http(s), even if we have set allowedOrigins to "*". The desktop app has a custom
scheme, "ente://app", which is thus causing B2 to return null.

    # Works:
    curl -v -X OPTIONS -H 'Origin: http://example.org' -H 'Access-Control-Request-Method: PUT' 'https://xxx.s3.eu-central-003.backblazeb2.com/yyy'

    # Fails:
    curl -v -X OPTIONS -H 'Origin: ente://example.org' -H 'Access-Control-Request-Method: PUT' 'https://xxx.s3.eu-central-003.backblazeb2.com/yyy'

Ref: https://github.com/ente-io/ente/discussions/2461#discussioncomment-10125881
2024-07-23 19:44:34 +05:30
ashilkn
dbed9fb91c [mob][photos] Fix appbar getting clipped on custom font and display size on pixel 7 2024-07-23 18:45:12 +05:30
ashilkn
a73de2848e [mob][auth] Remove unused import 2024-07-23 17:19:04 +05:30
ashilkn
875b079850 [mob] Minor refactor 2024-07-23 17:17:04 +05:30
ashilkn
47203af4ff [mob][auth] Bump up pinput 2024-07-23 17:13:30 +05:30
ashilkn
8a35b71bb8 [mob][auth] Extract strings 2024-07-23 17:12:58 +05:30
Manav Rathi
3e02c748ce Delete the raw xmp 2024-07-23 16:20:53 +05:30
Manav Rathi
4b7fe45963 Prune embedded thumbnails and images
Ref:
- https://github.com/mattiasw/ExifReader/issues/108#issuecomment-752422822
2024-07-23 16:15:34 +05:30
Manav Rathi
af66c55444 Determine the flags 2024-07-23 15:58:51 +05:30
ashilkn
439a7771b0 Merge branch 'main' into lockscreen_option_auth 2024-07-23 15:55:35 +05:30
Manav Rathi
e4a288d6cf Move to separate file 2024-07-23 15:13:35 +05:30
Aman Raj Singh Mourya
39a693edac [mob][photos] Quick fixes 2024-07-23 15:04:19 +05:30
Aman Raj Singh Mourya
57ec8771fb [mob][photos] Show app content fixes 2024-07-23 14:05:57 +05:30
Ashil
088b4b9cff [mob][photos] Animate visibility toggling of appbar and bottom bar when toggling swipe lock (#2520) 2024-07-23 11:57:01 +05:30
ashilkn
6cb5c06ea8 [mob][photos] Animate visibility toggling of appbar and bottom bar when toggling swipe lock 2024-07-23 11:49:05 +05:30
Manav Rathi
cfb8c6a192 [docs] Mention mobile app for iCloud imports (#2519) 2024-07-23 10:52:53 +05:30
Manav Rathi
e7a399ff48 [docs] Mention mobile app for iCloud imports 2024-07-23 10:50:22 +05:30
Manav Rathi
7364b4f3ef [web] Exif improvements - Part 2/x (#2516)
Refs:
-
https://photo.stackexchange.com/questions/130570/can-i-assume-the-datetimeoriginal-of-an-image-without-an-offsettimeoriginal-is-a
2024-07-22 21:30:44 +05:30
Manav Rathi
339182b73f [web] Exif improvments
Refs:
- https://photo.stackexchange.com/questions/130570/can-i-assume-the-datetimeoriginal-of-an-image-without-an-offsettimeoriginal-is-a
2024-07-22 21:27:57 +05:30
Manav Rathi
6a9befd566 [web] Exif write-back improvements (#2515) 2024-07-22 21:04:32 +05:30
Manav Rathi
fc03d2196d Tell eslint that we want the ? 2024-07-22 21:01:36 +05:30
Manav Rathi
3ff3841565 zero pad 2024-07-22 20:48:40 +05:30
Aman Raj Singh Mourya
5c28780bc0 [mob][photos] Add Swipe Restriction and Authentication for Media Files (#2502)
This PR introduces a feature to lock individual media files (photos,
live photos, and videos) in the gallery.
This feature ensures that sensitive content remains protected,
especially when the device is handed to others.

Key aspects include:
- **Locking Mechanism:** Users can lock a media file, which hides all
other options and restricts access when the device is handed to others..
- **Authentication:** To view other files, users must authenticate via
the device's lock screen or a custom app PIN/pattern.
- **Swipe Restriction:** Swiping to navigate other files triggers an
authentication prompt to ensure secure access.
2024-07-22 19:50:00 +05:30
Manav Rathi
6e37a78d54 [docs] Document the Google Takeout Intel macOS video thumbnail scenario (#2514)
Ref:
- https://github.com/ente-io/ente/issues/2189#issuecomment-2184095189
- https://discord.com/channels/948937918347608085/1254116633237127198
2024-07-22 19:29:34 +05:30
Manav Rathi
d20e880bed Add doc note 2024-07-22 19:23:22 +05:30
Manav Rathi
2568e4cbb4 Document the case from user logs
[rndr] [error] Native thumbnail generation failed: Error: Error invoking remote method 'ffmpegExec': Error: Command failed: '/Applications/ente.app/Contents/Resources/app.asar.unpacked/node_modules/ffmpeg-static/ffmpeg' -i /var/folders/61/8lm3qh2s1vx9905_jkvgcsqh0000gn/T/ente/9P6wsR5mPA -ss '00:00:00' -vframes 1 -vf 'scale=-1:720' '/var/folders/61/8lm3qh2s1vx9
905_jkvgcsqh0000gn/T/ente/wvkVRFNgpy.jpeg'

    /bin/sh: /Applications/ente.app/Contents/Resources/app.asar.unpacked/node_modules/ffmpeg-static/ffmpeg: Bad CPU type in executable

    [rndr] [warn] Not using browser based thumbnail generation fallback for video at path takeout-xxx.zip,Takeout/yyy.mp4
2024-07-22 19:05:41 +05:30
ashilkn
4cfc38c4db [mob][photos] Resolve merge conflicts and merge main 2024-07-22 17:12:06 +05:30
ashilkn
27cd567225 [mob][photos] Remove unused translations 2024-07-22 16:49:34 +05:30
Neeraj Gupta
cdbf8c5f09 [server] Use regular go context in repo (#2512)
## Description

## Tests
2024-07-22 16:32:39 +05:30
Aman Raj Singh Mourya
e0beb414f9 [mob][auth] Removed app lock subtitle from the setting_section_widget 2024-07-22 16:32:34 +05:30
Neeraj Gupta
f35d2773aa [server]Use regular go context in repo 2024-07-22 16:29:20 +05:30
Aman Raj Singh Mourya
78306ccf1d [mob][auth] Implemented logic for show app content 2024-07-22 16:27:12 +05:30
ashilkn
310e20598e [mob][photos] Extract strings 2024-07-22 16:24:55 +05:30
Neeraj Gupta
c5731e8894 [server] Add API to return indexed files for given model (#2511)
## Description
Planning to consume this API on mobile to fetch already indexed files 

## Tests
Tested locally
2024-07-22 16:19:51 +05:30
Neeraj Gupta
40a4f783f7 [server] Add API to return indexed files for given model 2024-07-22 16:15:25 +05:30
Ashil
6afd47ce3c Autolock options implemented (#2420) 2024-07-22 15:42:37 +05:30
Aman Raj Singh Mourya
972b7b82dd [mob][photos] Quick fixes and fallback when no system lock found 2024-07-22 15:28:09 +05:30
Manav Rathi
19e7c2d65c Fix 2024-07-22 15:25:53 +05:30
Manav Rathi
cff6570ebb Move to a layer that should be dealing with the piexifjs internals 2024-07-22 15:23:37 +05:30
Manav Rathi
3b1fd78fbe Selective handling 2024-07-22 15:21:35 +05:30
Manav Rathi
ca8ae8c6e7 Fix the fallback 2024-07-22 15:16:58 +05:30
Manav Rathi
09036bb57f Move the catch up 2024-07-22 15:02:36 +05:30
Aman Raj Singh Mourya
e3e58eb9c2 [mob][auth] Show app content option added 2024-07-22 14:58:03 +05:30
Manav Rathi
9e81591c63 Rearrange 2024-07-22 14:52:16 +05:30
Manav Rathi
fda6f68688 The default type deduced by tsc from the JS works
This file was apparently never in use (its extension was not .d.ts).
2024-07-22 14:43:11 +05:30
Manav Rathi
bd2e8bb728 Rename 2024-07-22 14:42:44 +05:30
Manav Rathi
c918a796af Add types 2024-07-22 14:27:02 +05:30
ashilkn
85413e6269 [mob][photos] Resolve merge conflicts and merge main 2024-07-22 14:23:01 +05:30
ashilkn
87bd90870b [mob][photos] Extract strings 2024-07-22 14:18:28 +05:30
Manav Rathi
67d1d6c597 Move 2024-07-22 13:57:59 +05:30
Manav Rathi
d59e50ff93 Mention why 2024-07-22 13:52:54 +05:30
Manav Rathi
c92e08c8d4 Rewrite
to the same result
2024-07-22 13:43:53 +05:30
Manav Rathi
67df790d28 Shorten
We don't have a CSP yet (it is report only, and there we already allow data:)

Ref:
- https://stackoverflow.com/questions/12168909/blob-from-dataurl
2024-07-22 12:09:50 +05:30
Manav Rathi
34e13caa77 Doc 2024-07-22 11:55:16 +05:30
Manav Rathi
5a79658e58 Tweak 2024-07-22 11:39:59 +05:30
Manav Rathi
f97d5b19d9 Inline
I did try and search both in git history and on the internet if caching the
FileReader itself has any performance benefits, but I didn't find anything.
2024-07-22 11:37:44 +05:30
Neeraj Gupta
1972239bb0 [auth] New translations (#2508)
New translations from
[Crowdin](https://crowdin.com/project/ente-authenticator-app)
2024-07-22 10:23:58 +05:30
Neeraj Gupta
1da1aee845 [mobile] New translations (#2507)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-app)
2024-07-22 10:23:05 +05:30
Manav Rathi
d4accf09f9 [web] New translations (#2506)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2024-07-22 09:57:31 +05:30
Crowdin Bot
e1dac063f6 New Crowdin translations by GitHub Action 2024-07-22 01:16:50 +00:00
Crowdin Bot
3954464648 New Crowdin translations by GitHub Action 2024-07-22 01:04:08 +00:00
Crowdin Bot
068b5e6dd2 New Crowdin translations by GitHub Action 2024-07-22 00:32:01 +00:00
Aman Raj Singh Mourya
3fbe161576 [mob][photos] Fixes 2024-07-21 23:46:11 +05:30
Aman Raj Singh Mourya
1381cfc6e4 [mob][photos] Used privacy_screen instead of secure_app_switcher to hide app content 2024-07-21 23:44:55 +05:30
Manav Rathi
ab3bb113ea [web] Dialog related refactoring (#2503) 2024-07-20 21:25:07 +05:30
Manav Rathi
92fae72760 Move and merge 2024-07-20 21:13:26 +05:30
Manav Rathi
4834cfb3ff Inline 2024-07-20 21:03:22 +05:30
Manav Rathi
542de42875 Remove from context 2024-07-20 20:58:49 +05:30
Manav Rathi
b57c6ba556 Rem unused 2024-07-20 20:56:15 +05:30
Manav Rathi
046275a09c Inline 2024-07-20 20:55:48 +05:30
Manav Rathi
0a3ee6e7bb Remove unused 2024-07-20 20:54:55 +05:30
Manav Rathi
caf6728876 Inline 2024-07-20 20:53:26 +05:30
Manav Rathi
e23bce3537 Inline 2024-07-20 20:52:55 +05:30
Manav Rathi
2adb93fb1b Inline 2024-07-20 20:51:47 +05:30
Manav Rathi
c0b80315ec Remove unused prop 2024-07-20 20:47:46 +05:30
Manav Rathi
4f41a32647 More 2024-07-20 20:43:22 +05:30
Manav Rathi
eadff3b7b3 More 2024-07-20 20:34:12 +05:30
Manav Rathi
eb8fa6db84 Make the connection explicit 2024-07-20 20:27:47 +05:30
Manav Rathi
8202c9b4d3 Reuse pattern 2024-07-20 20:26:28 +05:30
Manav Rathi
1c0261bc5c Remove default props 2024-07-20 20:13:14 +05:30
Aman Raj Singh Mourya
254fb418ce [mob][photos] Auto lock default time set to 5 seconds 2024-07-20 20:03:56 +05:30
Manav Rathi
e55de904b4 Fix the width restriction when going fullscreen 2024-07-20 19:56:04 +05:30
Manav Rathi
296dc21e88 Systematize 2024-07-20 19:14:28 +05:30
ashilkn
73b57ffb34 Merge branch 'main' into autolock_options 2024-07-20 18:27:13 +05:30
Aman Raj Singh Mourya
e73bb0d374 [mob][photos] Used PopScope instead of WillPopScope 2024-07-20 17:54:43 +05:30
Aman Raj Singh Mourya
b8cb1332c6 [mob][photos] File lock implemented 2024-07-20 16:16:54 +05:30
Manav Rathi
1cf2b24049 [web] Prominently indicate the enabled state of the continuous export switch (#2501) 2024-07-20 14:35:55 +05:30
Manav Rathi
e7dbbbf74b Tweak 2024-07-20 14:17:26 +05:30
Manav Rathi
d7f96863b2 Remove duplicate 2024-07-20 14:07:19 +05:30
Manav Rathi
22d2f7a520 [web] Prominently indicate the enabled state of the switch
color="accent" was not doing anything, it appeared gray in both enabled and disabled states.
2024-07-20 14:04:52 +05:30
Manav Rathi
e72aa6e7e6 [web] Remove unnecessary eventemitter dependency (#2499) 2024-07-20 13:51:32 +05:30
Manav Rathi
9e83a4de81 [web] Remove unnecessary eventemitter dependency 2024-07-20 13:44:55 +05:30
Manav Rathi
f15851e6de Remove unused code path 2024-07-20 13:44:01 +05:30
Manav Rathi
b0b7ec5347 Direct 2024-07-20 13:41:08 +05:30
Manav Rathi
5a128f1e48 [web] New translations (#2498)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2024-07-20 13:02:57 +05:30
Crowdin Bot
77de820c45 New Crowdin translations by GitHub Action 2024-07-20 07:32:19 +00:00
Manav Rathi
16acbc6dfa [web] Translation improvements (#2497) 2024-07-20 12:28:13 +05:30
Manav Rathi
11f127781f Remove unnecessary space 2024-07-20 12:19:21 +05:30
Manav Rathi
8c32a25a6e Rename 2024-07-20 12:17:46 +05:30
Manav Rathi
9aec0903cf Rename 2024-07-20 12:15:36 +05:30
Manav Rathi
d2aeb3101c EXIF => Exif
The standard uses "Exif"
2024-07-20 12:12:22 +05:30
Manav Rathi
a4142ff800 Rename 2024-07-20 12:08:51 +05:30
Manav Rathi
122e3bb5f8 Move 2024-07-20 12:06:43 +05:30
Manav Rathi
a7d93861b6 Move 2024-07-20 12:03:12 +05:30
Manav Rathi
5a48aeb2ab Remove ref of non-existent formatter 2024-07-20 11:33:22 +05:30
Manav Rathi
40c489ebf0 Rename 2024-07-20 11:32:18 +05:30
Manav Rathi
f388d912f9 Rename 2024-07-20 11:31:08 +05:30
Manav Rathi
df2ae4f60b Move 2024-07-20 11:28:54 +05:30
Manav Rathi
cd67fdbb8b Rename 2024-07-20 11:25:24 +05:30
Manav Rathi
e427e7df13 Move 153m138\nwq 2024-07-20 11:24:27 +05:30
Manav Rathi
23d9e2db45 Rename 2024-07-20 11:17:11 +05:30
Manav Rathi
dd68a0d3de Rename 2024-07-20 11:15:35 +05:30
Manav Rathi
9166c5c80d New convention 2024-07-20 11:14:54 +05:30
Manav Rathi
ffda45faf7 Rename 2024-07-20 11:13:06 +05:30
Manav Rathi
8d9be5b7b7 Rename 2024-07-20 11:12:09 +05:30
Manav Rathi
37f676c0e9 Rename 2024-07-20 11:10:22 +05:30
Manav Rathi
ade3a41fa1 echo '68,70m162\nwq' | ed -s $f
Move chunks using
for f in packages/base/locales/**/translation.json; do echo '68,70m162\nwq' | ed -s $f; done
2024-07-20 11:08:16 +05:30
Manav Rathi
dab0e610db Rename 2024-07-20 10:16:49 +05:30
Manav Rathi
3060916d47 Fix 2024-07-20 10:11:08 +05:30
Manav Rathi
1cf51cb7b3 Use new formatter 2024-07-20 10:11:04 +05:30
Manav Rathi
68de8c9f48 Add a custom cached formatter 2024-07-19 20:59:21 +05:30
atyabbin
3cabafe128 Dashboard with some changes (#2494) 2024-07-19 17:27:23 +05:30
atyabbin
92d4329aac Solved lint issues 2024-07-19 16:51:25 +05:30
atyabbin
9c23020e05 Changed UserComponent.tsx 2024-07-19 16:39:04 +05:30
Manav Rathi
8600400179 [desktop] Extract Exif during indexing - Part 1/x (#2493) 2024-07-19 15:52:03 +05:30
Manav Rathi
bee3875e89 Add note 2024-07-19 15:43:23 +05:30
Manav Rathi
be06e5ae25 lf 2024-07-19 15:34:31 +05:30
Manav Rathi
e7c470a9ff Tentative 2024-07-19 15:22:52 +05:30
Manav Rathi
4bdb1c7922 Explore 2024-07-19 15:01:32 +05:30
Manav Rathi
9c04c9075e Tie it together 2024-07-19 13:38:15 +05:30
atyabbin
664f89aeec Changes in App.tsx 2024-07-19 13:14:54 +05:30
atyabbin
4c7f2c7c4e Reduced the space between input fields and the tabs section 2024-07-19 13:12:25 +05:30
atyabbin
c387b59c78 Dashboard with the new UI (#2486) 2024-07-19 12:41:31 +05:30
Neeraj Gupta
3881be0ace [mob] bump version: 0.9.14+914 (#2492)
## Description

## Tests
2024-07-19 11:25:51 +05:30
Neeraj Gupta
d1c66dbdcf [mob] bump version: 0.9.14+914 2024-07-19 11:25:29 +05:30
Manav Rathi
8c9195e783 Fix crop 2024-07-19 11:17:22 +05:30
Manav Rathi
1b59a5bf87 Rework lower 2024-07-19 11:11:05 +05:30
Manav Rathi
41851c97be wip scaffold 2024-07-19 10:46:07 +05:30
Manav Rathi
67e41f4bcd wip scaffold 2024-07-19 10:13:43 +05:30
Manav Rathi
941b02f750 (start) Switch to a more maintained library 2024-07-19 09:57:13 +05:30
Manav Rathi
0ace569e97 Start scaffolding 2024-07-19 09:44:27 +05:30
Manav Rathi
b07d82ebc2 Restore developability 2024-07-19 09:27:06 +05:30
Manav Rathi
51f1a88c21 [desktop] Change name of model to disallow even WIP uploads (#2491)
Just in case someone goes out of their way to build from source, enable
the WIP dev flag and upload WIP embeddings.
2024-07-19 06:25:11 +05:30
Manav Rathi
16a11a663e [desktop] Change name of model to disallow even WIP uploads
Just in case someone goes out of their way to build from source, enable the WIP dev flag and upload WIP embeddings.
2024-07-19 06:21:32 +05:30
Aman Raj Singh Mourya
5b3b3b577b [mob][photos] Hide content when app is in background using secure_app_switcher 2024-07-18 23:52:13 +05:30
Manav Rathi
7b0646987b [web] Add a hook for detecting mobile sized screens (#2490) 2024-07-18 21:21:16 +05:30
Manav Rathi
82b12fcb37 Type 2024-07-18 21:18:18 +05:30
Manav Rathi
cf7020ab78 Use prebuilt dialog box 2024-07-18 21:08:25 +05:30
Manav Rathi
5fa65da58e Use 2024-07-18 20:40:41 +05:30
Manav Rathi
471a6eff0d [web] Add a hook for detecting mobile sized screens 2024-07-18 20:31:12 +05:30
Manav Rathi
8ac27aef31 [web] Move @/new/shared into @/base (#2489) 2024-07-18 19:42:34 +05:30
Manav Rathi
6e0cbb2a37 Update ref 2024-07-18 19:35:46 +05:30
Manav Rathi
88e05f63cd Merge @/new/shared into @/base 2024-07-18 19:33:27 +05:30
Manav Rathi
19ccf8a788 Unused 2024-07-18 19:18:30 +05:30
Manav Rathi
21563a62ed Inline 2024-07-18 19:17:09 +05:30
Manav Rathi
3c0d12250e Inline 2024-07-18 19:14:58 +05:30
Manav Rathi
084f4cc055 Unused 2024-07-18 19:09:19 +05:30
Manav Rathi
2071bd07ae 404 2024-07-18 19:06:37 +05:30
Manav Rathi
7f5dec216d Remove usused 2024-07-18 19:02:14 +05:30
Manav Rathi
88cd8f4349 [web] New translations (#2488)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2024-07-18 19:01:40 +05:30
Crowdin Bot
578485d6ce New Crowdin translations by GitHub Action 2024-07-18 13:29:39 +00:00
Manav Rathi
0947c5ebea [web] @/next => @/base (#2487) 2024-07-18 18:58:59 +05:30
Manav Rathi
7d13666a2e @/next => @/base 2024-07-18 18:55:33 +05:30
Manav Rathi
27cc2aee51 Remove unused 2024-07-18 18:46:17 +05:30
atyabbin
371a1805f0 Updated some new components 2024-07-18 18:42:40 +05:30
atyabbin
0c6d27c134 Full dashboard 2024-07-18 17:58:42 +05:30
Manav Rathi
ca61dd5637 [desktop] Include app version in X-Client-Package (#2485) 2024-07-18 15:55:22 +05:30
Manav Rathi
1b039de35d Fix path 2024-07-18 15:49:11 +05:30
Manav Rathi
cc0dea5c34 Use the same source 2024-07-18 15:48:26 +05:30
Manav Rathi
46a12ed698 [desktop] Include app version in X-Client-Package 2024-07-18 15:45:40 +05:30
Manav Rathi
46cbff4018 [desktop] ML new combined format - Part 2/2 (#2484)
Continues (and except minor touchups) and completes
https://github.com/ente-io/ente/pull/2460
2024-07-18 15:31:48 +05:30
Aman Raj Singh Mourya
b114b6674e [mob][photos] Upgrade pinput pakage from 2.0.2 -> 5.0.0 (#2483) 2024-07-18 15:17:26 +05:30
Manav Rathi
53a418c2cd Fix 2024-07-18 15:14:44 +05:30
Aman Raj Singh Mourya
cf7791f9f8 [mob][photos] Upgrade pinput pakage from 2.0.2 -> 5.0.0 2024-07-18 15:13:26 +05:30
Neeraj Gupta
80d021ba90 [mob] Disable panorama for external users (#2482)
## Description

## Tests
2024-07-18 14:49:00 +05:30
Neeraj Gupta
2078e139c1 [mob] Bump version: v0.9.12 2024-07-18 14:44:29 +05:30
Neeraj Gupta
3b10c909b1 [mob][photos] Disable panorama check 2024-07-18 14:44:06 +05:30
Prateek Sunal
0616c12a21 [mobile] add placeholder for favorites slideshow widget (#2481)
## Description


![image](https://github.com/user-attachments/assets/e6865b9d-cbdf-4c45-96f7-97ac2652617c)
2024-07-18 14:40:07 +05:30
Aman Raj Singh Mourya
e5a5d9c08d [mob][photos] Auto lock time changed 2024-07-18 14:32:49 +05:30
Manav Rathi
ecbed8c02a Prep for merge 2024-07-18 14:23:53 +05:30
Manav Rathi
a9f47fe362 fix: yarn workspace photos run tsc 2024-07-18 14:14:47 +05:30
Prateek Sunal
8b40465a05 feat(homewidget): add placeholder for Favorites slideshow widget 2024-07-18 14:06:27 +05:30
Manav Rathi
33bf7f7754 Cleanup 2024-07-18 14:04:35 +05:30
Manav Rathi
a1cb4ea2e9 Within the same tx 2024-07-18 13:59:57 +05:30
Prateek Sunal
745b0dece0 fix(auth/code): add option to view raw codes in case of parse fail (#2474)
## Description

![Screenshot 2024-07-17
190450](https://github.com/user-attachments/assets/886fc943-8462-48c6-a713-bae7a606f034)



![image](https://github.com/user-attachments/assets/ee750d07-5901-4864-88c9-7166abd9f1d1)


## Tests
2024-07-18 13:33:40 +05:30
Manav Rathi
2d2140eaca Reuse 2024-07-18 13:24:33 +05:30
Manav Rathi
e49ebdfc2e Handle versioning 2024-07-18 13:20:46 +05:30
Manav Rathi
07c2d3cf28 Upsert 2 2024-07-18 13:04:08 +05:30
Neeraj Gupta
ec94b1197c [mob] Panorama state fix (#2480)
## Description

## Tests
2024-07-18 13:00:44 +05:30
Neeraj Gupta
af469ac23b [mob] Panorama state fix 2024-07-18 12:56:21 +05:30
Manav Rathi
df9c153714 Upsert 1 2024-07-18 12:43:19 +05:30
Manav Rathi
6d1e3f99d6 Annotate 2024-07-18 12:29:27 +05:30
Neeraj Gupta
18fd8734a6 [mobile] add panorama viewer (#2362)
## Description

## Tests
2024-07-18 12:21:29 +05:30
Neeraj Gupta
87383ea038 [mob] Bump version 2024-07-18 12:19:38 +05:30
Neeraj Gupta
fdd84b3bc0 [mob] Enable video info for everyone 2024-07-18 12:19:21 +05:30
Manav Rathi
e916694fa6 Raw 2024-07-18 12:12:56 +05:30
Neeraj Gupta
6166aa5e00 -mRefactor 2024-07-18 12:02:04 +05:30
Manav Rathi
a2f719d215 Keep both 2024-07-18 11:55:04 +05:30
Neeraj Gupta
e2fde47c89 refactor 2024-07-18 11:45:20 +05:30
Neeraj Gupta
c3c8881e0c refactor 2024-07-18 11:43:04 +05:30
Neeraj Gupta
87bc359175 Use image w/h props for pano check 2024-07-18 11:40:22 +05:30
Neeraj Gupta
392763a4b0 Add backbutton for pano images 2024-07-18 11:33:35 +05:30
Neeraj Gupta
db27eb718f [ios] build changes 2024-07-18 11:24:22 +05:30
Neeraj Gupta
4faf71b164 Merge branch 'main' into mobile-panorama 2024-07-18 11:14:12 +05:30
Manav Rathi
806a77290e [infra] Metabase update README (#2479) 2024-07-18 10:56:05 +05:30
Manav Rathi
234618e8ae Fix accidentally uncommitted change 2024-07-18 10:55:29 +05:30
Manav Rathi
cdbd79c077 [infra] Import metabase conf (#2478) 2024-07-18 10:16:02 +05:30
Manav Rathi
1115f93086 Add update instructions 2024-07-18 10:09:37 +05:30
Manav Rathi
6d04ed1f8f [infra] Import metabase conf 2024-07-18 09:57:50 +05:30
Prateek Sunal
f2057cbaa8 fix(auth/connectivity): try to fix certificate issue on windows 11 (#2472)
## Description

## Tests
2024-07-17 19:06:42 +05:30
Prateek Sunal
fde8484768 fix(auth/code): add option to view raw codes in case of parse fail 2024-07-17 19:01:41 +05:30
Neeraj Gupta
5dd8c0a292 [mob] Minor UX improvement (#2473)
## Description

## Tests
2024-07-17 17:11:14 +05:30
Neeraj Gupta
3554376152 Improve UI 2024-07-17 16:54:45 +05:30
Prateek Sunal
ad87a08477 fix(auth/connectivity): try to fix certificate issue on windows 11 2024-07-17 16:47:58 +05:30
Neeraj Gupta
6c4a2a9dcd [mob] Enable polish language (#2470)
## Description

## Tests
2024-07-17 16:04:31 +05:30
Neeraj Gupta
2242bdb2f8 fix(auth/import): remove cross button from import page (#2469)
## Description

## Tests
2024-07-17 15:57:43 +05:30
Neeraj Gupta
ddea1fde28 Enable polish 2024-07-17 15:56:49 +05:30
Neeraj Gupta
0ad7636d54 Fix locale 2024-07-17 15:56:38 +05:30
Prateek Sunal
c794eabf23 Merge remote-tracking branch 'origin/main' into auth-fixes 2024-07-17 15:41:40 +05:30
Prateek Sunal
de8a48287b chore(auth): lint fixes 2024-07-17 15:40:21 +05:30
Prateek Sunal
d9471e406c fix(auth/import): remove cross button from import page 2024-07-17 15:38:51 +05:30
Neeraj Gupta
70162c17d1 [mob] Use video probe data for getting location during upload (#2468)
## Description

## Tests
2024-07-17 15:16:09 +05:30
Neeraj Gupta
62f0825522 generated strings 2024-07-17 15:14:09 +05:30
Neeraj Gupta
826e549462 bump version 2024-07-17 15:13:51 +05:30
Neeraj Gupta
dac589b6b8 Backfill video location when fileInfo is viewed 2024-07-17 15:13:35 +05:30
Neeraj Gupta
600cbc15d2 Switch back to new video player 2024-07-17 15:03:48 +05:30
Neeraj Gupta
f33cea212f Use ffprobe for getting video location in Android 2024-07-17 15:01:26 +05:30
Neeraj Gupta
95369097a5 Merge metadata streams 2024-07-17 14:57:54 +05:30
Neeraj Gupta
087e84b7ba Remove border 2024-07-17 14:18:09 +05:30
Neeraj Gupta
7744b8101b Refactor 2024-07-17 14:10:07 +05:30
Neeraj Gupta
5d078b06be [mob] Show video metadata inside fileInfo (#2466)
## Description

## Tests
2024-07-16 18:02:29 +05:30
Neeraj Gupta
24aff0b9c1 bump version 2024-07-16 18:00:19 +05:30
Neeraj Gupta
fd001a9181 Fix lint 2024-07-16 17:59:56 +05:30
Neeraj Gupta
d6a970274c Format fps value 2024-07-16 17:57:02 +05:30
Neeraj Gupta
428b3e2cd6 Enable drag to close 2024-07-16 17:49:49 +05:30
atyabbin
bd3e0c9289 Deleted Sidbar.tsx 2024-07-16 17:47:11 +05:30
Neeraj Gupta
1c5154ac26 Show dims and fps in the video info dialog 2024-07-16 17:47:10 +05:30
Neeraj Gupta
2b7dc88281 iOS build changes 2024-07-16 17:39:02 +05:30
Neeraj Gupta
95c92b0572 Show fps, bitrate and dim for video 2024-07-16 17:38:52 +05:30
Neeraj Gupta
c28b4934c4 Parse make, model and location for iPhone Videos 2024-07-16 16:52:55 +05:30
Manav Rathi
7af91eeada fetch 2024-07-16 16:33:29 +05:30
atyabbin
827ac9ddf7 Dashboard with imporved UI 2024-07-16 16:21:59 +05:30
Manav Rathi
5ddf6c98cf nw 2024-07-16 15:56:23 +05:30
Manav Rathi
0c75eb7ff5 Prep 2024-07-16 15:46:11 +05:30
Neeraj Gupta
92b188bc21 Improve UI 2024-07-16 15:44:36 +05:30
Neeraj Gupta
daaa1d7423 Format creation time 2024-07-16 15:35:46 +05:30
Aman Raj Singh Mourya
5f08e44e58 [mob][auth] Auto lock fixes 2024-07-16 15:23:21 +05:30
Manav Rathi
0dc06c430a Prep 2024-07-16 15:17:51 +05:30
Manav Rathi
f6715ad9c2 Start pruning the diff 2024-07-16 15:03:46 +05:30
Manav Rathi
8abd541519 Sketch 2024-07-16 14:52:57 +05:30
Neeraj Gupta
f2ed6802d2 [mob] Rename 2024-07-16 14:48:38 +05:30
Neeraj Gupta
aeeed9cd11 [mob] Rename 2024-07-16 14:45:34 +05:30
Manav Rathi
e7f2ffbc9d Restore width and height
..(discussed)
2024-07-16 14:42:48 +05:30
Neeraj Gupta
e2ef2eacc4 [mob] Display video metadata in file info 2024-07-16 14:12:46 +05:30
Manav Rathi
61b98a9964 Pull out pull 2024-07-16 14:12:13 +05:30
Manav Rathi
3ae6c72332 Convert more 2024-07-16 13:54:49 +05:30
Manav Rathi
900a7942ab Continue 2024-07-16 13:02:12 +05:30
Manav Rathi
2dbfa17a45 Propagate 2024-07-16 12:33:57 +05:30
Manav Rathi
f44a476285 Another way 2024-07-16 12:18:52 +05:30
Manav Rathi
6515d1e750 WIP refactor data structure 2024-07-16 12:12:41 +05:30
Manav Rathi
fd49211a0a gz 2024-07-16 11:24:33 +05:30
Manav Rathi
0840c6146e Scaffold up 2024-07-16 11:03:53 +05:30
Manav Rathi
63ff5ac573 Make space for new format 2024-07-16 10:53:31 +05:30
Manav Rathi
2bf695af48 New 2024-07-16 10:12:23 +05:30
Manav Rathi
02b6dd9ba6 We can destructure arrays into existing lets 2024-07-16 09:50:30 +05:30
Manav Rathi
8a642c40ea Merge steps 2024-07-16 09:47:14 +05:30
Manav Rathi
9dc8a054f8 Fix typo (#2462) 2024-07-15 22:00:35 +05:30
Manav Rathi
c1f4a9f0d6 Fix typo 2024-07-15 21:59:16 +05:30
Ashil
b2e43624ba [mob][photos] Init magic cache service only if internal user (#2445) 2024-07-15 18:23:30 +05:30
Neeraj Gupta
8f5210d0a2 Fix grammar in CLI readme (#2449) 2024-07-15 18:21:29 +05:30
Neeraj Gupta
803e8b3a14 [auth] Add new icons (#2452)
Add Instant Gaming, Teleport and Mistral icons.

<!--- Describe your changes in detail -->

## Type of Change

<!--- Put an `x` in all the boxes that apply: -->

- [x] 🖼️ New icon
- [ ]  New feature (non-breaking change which adds functionality)
- [ ] 🛠️ Bug fix (non-breaking change which fixes an issue)
- [ ]  Breaking change (fix or feature that would cause existing
functionality to change)
- [ ] 🧹 Code refactor
- [ ]  Build configuration change
- [ ] 📝 Documentation
- [ ] 🗑️ Chore
2024-07-15 18:21:10 +05:30
Neeraj Gupta
177bab2961 [mobile] New translations (#2454)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-app)
2024-07-15 18:20:34 +05:30
Neeraj Gupta
f2894d1d62 [auth] New translations (#2455)
New translations from
[Crowdin](https://crowdin.com/project/ente-authenticator-app)
2024-07-15 18:20:01 +05:30
Manav Rathi
1a39d2b648 [desktop] ML new derived data format - Part 1/x (#2460) 2024-07-15 16:22:49 +05:30
Manav Rathi
d6908ffda3 Fix 2024-07-15 16:16:17 +05:30
Manav Rathi
73ee6f5284 Mark bad images as failed instead of retrying indefinitely 2024-07-15 16:11:39 +05:30
Aman Raj Singh Mourya
ab9c097a32 [mob][photos] Removed App lock subtitle in Settings 2024-07-15 15:59:52 +05:30
Manav Rathi
32750599b9 Outline 2024-07-15 14:41:39 +05:30
Manav Rathi
e054247359 Rely on ML flag 2024-07-15 14:35:07 +05:30
Manav Rathi
6dca5c2a8b Fix p nesting warning 2024-07-15 14:28:50 +05:30
Manav Rathi
3941c05229 Simplify UI 2024-07-15 14:25:07 +05:30
Manav Rathi
1a61c02602 Simplify 2024-07-15 14:13:53 +05:30
Manav Rathi
bc45261efa Handle the API quirk 2024-07-15 13:35:03 +05:30
Manav Rathi
bd884c9db8 [web] [desktop] Enable Polish translations (#2459)
A big hats off to the person who did 0-99% 🇵🇱 over the weekend!
2024-07-15 12:28:16 +05:30
Aman Raj Singh Mourya
82f3cd19be [mob][photos] Auto lock options fixes 2024-07-15 12:02:54 +05:30
Manav Rathi
326b347bc6 [web] [desktop] Enable Polish translations
A big hats off to the person who did 0-99% over the weekend!
2024-07-15 11:59:40 +05:30
Manav Rathi
03b8b69080 [web] ML related translation fixes (#2458) 2024-07-15 10:38:33 +05:30
Manav Rathi
839a94fcef Fix markup in translations 2024-07-15 10:30:54 +05:30
Manav Rathi
39c600de46 Remove out of date translations that don't reflect source string 2024-07-15 10:29:49 +05:30
Manav Rathi
6226f43b5a Update 2024-07-15 10:28:23 +05:30
Neeraj Gupta
74f4698fd6 [mob] Format brand 2024-07-15 10:21:19 +05:30
Manav Rathi
428288338f Fix casing 2024-07-15 09:59:30 +05:30
Manav Rathi
e254cfd752 Rename 2024-07-15 09:55:44 +05:30
Manav Rathi
c22b7fb218 [web] New translations (#2457)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2024-07-15 09:53:46 +05:30
Crowdin Bot
34db62cefa New Crowdin translations by GitHub Action 2024-07-15 04:23:15 +00:00
Manav Rathi
ab7d894ed2 [web] Prune unused translations (#2456)
Reduce work for translators in new languages
2024-07-15 09:52:27 +05:30
Manav Rathi
8c8cff5f80 [web] Prune unused translations
Reduce work for translators in new languages
2024-07-15 09:51:46 +05:30
Manav Rathi
98671760dd [web] New translations (#2453)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2024-07-15 09:47:55 +05:30
Crowdin Bot
b7b5977b85 New Crowdin translations by GitHub Action 2024-07-15 01:16:52 +00:00
Crowdin Bot
a3cbfc52c7 New Crowdin translations by GitHub Action 2024-07-15 01:04:12 +00:00
Crowdin Bot
c843656fa3 New Crowdin translations by GitHub Action 2024-07-15 00:31:52 +00:00
Aman Raj Singh Mourya
147be37fdb [mob][auth] Removed dialog box on auto-logout 2024-07-14 22:58:17 +05:30
Eseltwift
a8be3be3b4 Add Instant Gaming, Teleport and Mistral icons. 2024-07-13 22:05:33 +02:00
Manav Rathi
057521e0e4 [desktop] Throttle ML status updates (#2450) 2024-07-13 19:10:55 +05:30
Manav Rathi
86b70ec325 Commentary 2024-07-13 18:13:16 +05:30
Manav Rathi
166474a1b5 Add a throttle 2024-07-13 18:02:06 +05:30
dnred
faee7cc642 fix typo in CLI readme 2024-07-13 13:02:41 +02:00
Manav Rathi
ebe76cbd1b [desktop] Fix yarn dev flakiness when renderer is not ready (#2448) 2024-07-13 15:19:43 +05:30
Manav Rathi
5b23e32c7d Meh 2024-07-13 15:14:47 +05:30
Manav Rathi
a10ca66e57 [desktop] Fix yarn dev flakiness when renderer is not ready
...by the time the main window is ready to open it.
2024-07-13 14:56:09 +05:30
Aman Raj Singh Mourya
9292dc6d04 [mob][auth] Do not show CustomPinKeypad on Desktop 2024-07-13 14:45:45 +05:30
ashilkn
89ff4cf43e [mob][photos] Initialise MagicCacheService only if internal user 2024-07-13 14:26:07 +05:30
Neeraj Gupta
c552ab61f9 [cli] Fix typo with ente account url constant (#2440)
## Description
I noticed there was a typo in the EnteAccountUrl constant for the CLI,
which resulted in an incorrect URL being generated when asking the user
to verify their passkey.

## Tests
I didn't see tests in the project, but I did build the cli project and
manually tested `cli.exe` by adding my ente account and verifying the
URL that's generated is correct now.

```
Nick  ~\..\ente\cli  .\cli.exe account add
Enter app type (default: photos):
Use default app type: photos
Enter export directory: .\
Enter email address: redacted@pm.me
Enter OTP: 123456
Open this url in browser to verify passkey: https://accounts.ente.io/passkeys/verify?redacted
Press enter once you have completed the passkey verification
```
2024-07-13 11:42:24 +05:30
Manav Rathi
f724c998a6 [desktop] Graceful shutdown in dev mode (#2444)
Ref: https://github.com/electron/electron/issues/22048
2024-07-13 11:24:57 +05:30
Manav Rathi
86f79575aa [desktop] Graceful shutdown in dev mode 2024-07-13 11:23:52 +05:30
Manav Rathi
2f2265e85d [desktop] Update deps (#2442)
Notable:

- Electron 30.2.0
  https://github.com/electron/electron/releases
2024-07-13 10:19:26 +05:30
Manav Rathi
2c506c9cc2 npx npm-check-updates --interactive --target greatest 2024-07-13 10:16:54 +05:30
Manav Rathi
4528dc2d2a [desktop] Update deps
- Electron 30.2.0
  https://github.com/electron/electron/releases
2024-07-13 10:11:08 +05:30
Manav Rathi
3e301cabec [desktop] Don't show what's new on fresh installs (#2441)
Also: Stylistic tweaks
2024-07-13 10:00:24 +05:30
Manav Rathi
d72813dd07 Stylistic tweaks 2024-07-13 09:56:11 +05:30
Manav Rathi
6e9dd8d4c8 [desktop] Don't show what's new on fresh installs 2024-07-13 08:56:32 +05:30
Nicholas DiMucci
33dcf48127 Fix typo with ente account url in cli. 2024-07-12 21:05:38 -04:00
Manav Rathi
b525e91aa1 [docs] Mark the desktop custom server option as released (#2439)
+ yarn pretty
2024-07-12 21:41:33 +05:30
Manav Rathi
392ed6e212 yarn pretty 2024-07-12 21:40:49 +05:30
Manav Rathi
653761137a [docs] Mark the desktop custom server option as released 2024-07-12 21:40:07 +05:30
Manav Rathi
ec4644158b [desktop] Fix post release checklist instructions (#2438) 2024-07-12 21:18:54 +05:30
Manav Rathi
a6dda741cb [desktop] Fix post release checklist instructions 2024-07-12 21:17:11 +05:30
Manav Rathi
43fd13c00f [desktop] Start the next release sequence for 1.7.3 (#2437) 2024-07-12 20:50:36 +05:30
Manav Rathi
b0677049cb [desktop] Start the next release sequence for 1.7.3 2024-07-12 20:47:05 +05:30
Prateek Sunal
e0952de376 fix(mobile): update panorama logic 2024-07-12 17:50:07 +05:30
Neeraj Gupta
c941783fd3 [mob] Expose and log video metadata 2024-07-12 17:45:30 +05:30
Manav Rathi
20a8df378c [desktop] Release v1.7.2 (#2434) 2024-07-12 17:12:23 +05:30
Aman Raj Singh Mourya
0ce9ceba12 [mob][auth] Used memLimitInteractive instead of memLimitSensitive to avoid delay 2024-07-12 16:48:33 +05:30
Aman Raj Singh Mourya
fb0d938cb5 [mob][auth] Implemented Pin/Password hashing using ente_crypto 2024-07-12 15:58:23 +05:30
Manav Rathi
d9ec95b8ab photosd-v1.7.2 2024-07-12 15:52:35 +05:30
Manav Rathi
c16b6a7d43 -rc => -beta to be clearer 2024-07-12 15:52:32 +05:30
Neeraj Gupta
d3dccb1bea [mobile] Add FFProbe Metadata (#2054)
## Description

This PR adds support for fetching location and creationTime using
ffprobe (if available).

## Tests
2024-07-12 15:30:50 +05:30
Neeraj Gupta
f115ce4a0d [mob] Fix lint 2024-07-12 15:27:53 +05:30
Neeraj Gupta
7c8febfc1b Merge remote-tracking branch 'origin/main' into mobile-ffprobe 2024-07-12 14:30:54 +05:30
Neeraj Gupta
bffbc6041b [mob] Add missing tr file for Turkish (#2432)
## Description

## Tests
2024-07-12 14:04:41 +05:30
Neeraj Gupta
7640789f08 [mob] Fix dependencies order 2024-07-12 14:04:19 +05:30
Neeraj Gupta
95c04b554c [mob] Add missing tr file for Turkish 2024-07-12 13:59:03 +05:30
Manav Rathi
5e15fccb75 [accounts] Restore the passkey workaround for Safari (#2431)
This restores the workaround I'd removed in
4d84e966b0.

    listItem.transports = ["usb", "nfc", "ble", "internal"];

- This PR should fix the passkey verification on Safari:
https://github.com/ente-io/ente/issues/2406

- Sibling PR that fixes the passkey registration:
https://github.com/ente-io/ente/pull/2429
2024-07-12 13:49:15 +05:30
Manav Rathi
7047383e09 [accounts] Restore the workaround for Safari
This restores the workaround I'd removed in
4d84e966b0.

    listItem.transports = ["usb", "nfc", "ble", "internal"];

- This PR fixes the passkey verification on Safari.

- Sibling PR that fixes the passkey registration: https://github.com/ente-io/ente/pull/2429/files
2024-07-12 13:45:59 +05:30
Manav Rathi
f02bd096b0 [server] Add a workaround for Safari to recognize Yubikeys (#2429)
Safari just doesn't recognize the Yubikey (macOS/iOS, NFC/USB, doesn't
matter) if display name is set to the empty string. Safari's long
description doesn't care to mention this requirement:
https://webkit.org/blog/11312/meet-face-id-and-touch-id-for-the-web/

Tested on localhost with Safari macOS. Will test on iOS post deployment.
2024-07-12 12:57:13 +05:30
Manav Rathi
617ae0701b [server] [cli] Fix docker "FROM AS" case warnings (#2430)
With the latest Docker update (27.0.3), it now warns about the "FROM"
and "AS" in the Dockerfile not matching. E.g. when building the server
docker image:

> WARN: FromAsCasing: 'as' and 'FROM' keywords' casing do not match
(line 1)
2024-07-12 12:56:53 +05:30
Prateek Sunal
7854503661 Merge remote-tracking branch 'origin' into mobile-panorama 2024-07-12 12:06:55 +05:30
Neeraj Gupta
8e136ecdc1 Fix: don't edit location/time in the file object 2024-07-12 12:05:42 +05:30
Prateek Sunal
9ca2e1d91f fix(mobile): compute panorama whenever 2024-07-12 12:04:55 +05:30
Manav Rathi
0ea408379a [server] [cli] Fix docker "FROM AS" case warnings
With the latest Docker update (27.0.3), it now warns about the "FROM" and "AS"
in the Dockerfile not matching. E.g. when building the server docker image:

> WARN: FromAsCasing: 'as' and 'FROM' keywords' casing do not match (line 1)
2024-07-12 11:19:37 +05:30
Manav Rathi
eeab98c768 [server] Add a workaround for Safari to recognize Yubikeys
Safari just doesn't recognize the Yubikey (macOS/iOS, NFC/USB, doesn't matter)
if display name is set to the empty string. Safari's long description doesn't
care to mention this requirement:
https://webkit.org/blog/11312/meet-face-id-and-touch-id-for-the-web/

Tested on localhost with Safari macOS. Will test on iOS post deployment.
2024-07-12 11:10:56 +05:30
Pablo Ovelleiro Corral
97b5577d68 CLI: Allow setting secrets path via env var
Adds a new enviroment variable `ENTE_CLI_SECRETS_PATH`, that allows
specifying the path to a `secrets.txt` like the one used in the
dockerized version. If no path is provided, the old behaviour is maintained.
2024-07-11 18:38:52 +02:00
Manav Rathi
e881c15026 [desktop] Consolidate face and CLIP pipelines - Part 3/3 (#2424)
Continuation, and finalization, of
https://github.com/ente-io/ente/pull/2408

While the integration is complete, there is a server side integration we
still need to do. That in turn will have an impact on the embedding
formats. So for now, disable ML for the beta users too so that we can
put out the regular release that was schedule to go out this week
(otherwise the beta users will end up in a half-way state).
2024-07-11 20:30:05 +05:30
Manav Rathi
21b6316996 Disable ML for everyone while it is WIP
Preparing for merge and the interim release
2024-07-11 20:19:01 +05:30
Manav Rathi
349a5021a5 Debounce never calls the underyling if it keeps getting called within wait 2024-07-11 20:07:31 +05:30
Neeraj Gupta
4aa92ffc43 Merge remote-tracking branch 'origin/main' into mobile-ffprobe 2024-07-11 18:35:06 +05:30
Neeraj Gupta
3f5a8a503b [auth] Fix json (#2423)
## Description

## Tests
2024-07-11 18:34:39 +05:30
Neeraj Gupta
9fe894e368 [auth] Fix json 2024-07-11 18:34:14 +05:30
Ashil
e537ba0a9a [mob][photos] Bump up to v0.9.7 (#2421) 2024-07-11 16:03:18 +05:30
ashilkn
5033ab2fed [mob][photos] bump up to v0.9.7 2024-07-11 16:01:11 +05:30
Ashil
987cc1c520 [mob][photos] Lockscreen Fixes (#2398) 2024-07-11 15:54:37 +05:30
Manav Rathi
4773c7c262 Debounce 2024-07-11 15:16:39 +05:30
Manav Rathi
936e0470e6 Live update 2024-07-11 14:56:55 +05:30
Neeraj Gupta
ecbb71a97b Merge remote-tracking branch 'origin' into mobile-ffprobe 2024-07-11 14:39:57 +05:30
Manav Rathi
544a5a9ccc Use consistent key 2024-07-11 14:39:45 +05:30
Aman Raj Singh Mourya
fd2c22dc5f [mob][photos] Auto lock implemented and UI fixes 2024-07-11 14:32:57 +05:30
Manav Rathi
fdcc6b6997 Tweak and lint 2024-07-11 14:21:01 +05:30
Manav Rathi
73ad758191 Fix 2024-07-11 14:18:10 +05:30
Manav Rathi
a3dc691885 Use in search bar 2024-07-11 14:13:58 +05:30
Manav Rathi
b25dbfc10b wip separate flag 2024-07-11 14:02:55 +05:30
Manav Rathi
13c042f692 Remove scaffolding code 2024-07-11 13:53:27 +05:30
Manav Rathi
62e4a6c344 Dot product 2024-07-11 13:50:22 +05:30
Manav Rathi
8dad88eca6 Disable ripples on the background item for toggles 2024-07-11 13:43:04 +05:30
Manav Rathi
6ccb61b425 Enhance 2024-07-11 13:40:57 +05:30
Victor Muthiani
b402c6ae32 [Auth] Add 2 new icons and optimize 2 icons (#2411)
## Description

New icons:
- Deriv
- Airtm

Optimized icons
- Yahoo
- Bitget
2024-07-11 12:43:59 +05:30
Manav Rathi
52251ad654 Improve UI feedback 2024-07-11 12:37:37 +05:30
Manav Rathi
5ff9f408eb Touchups 2024-07-11 12:07:42 +05:30
Manav Rathi
06bf2ddad4 Integrate 2024-07-11 12:00:59 +05:30
Manav Rathi
0214ccf680 Integrate 2024-07-11 11:43:49 +05:30
Manav Rathi
2e1fde906e The type annotation for _mlStatusSnapshot is required 2024-07-11 11:15:53 +05:30
Manav Rathi
df4364525d Hook it up 2024-07-11 11:00:22 +05:30
Manav Rathi
661d0383fb Scaffold 2024-07-11 10:41:37 +05:30
Manav Rathi
6f577d150a wip useSyncExternalStore 2024-07-11 10:37:57 +05:30
Manav Rathi
6086e139e4 Degrade gracefully 2024-07-11 10:06:52 +05:30
Manav Rathi
5fef9b21e5 Template 2024-07-11 10:00:54 +05:30
Manav Rathi
7069e15b79 Duals 2024-07-10 20:49:19 +05:30
Manav Rathi
44e165b8ee Rework 2024-07-10 20:41:07 +05:30
Manav Rathi
b0b82aabd8 Face => ML 2024-07-10 20:03:52 +05:30
Manav Rathi
d043658331 Modify 2024-07-10 19:42:13 +05:30
Manav Rathi
9616640fce Fix p nesting warning 2024-07-10 19:34:46 +05:30
Manav Rathi
10e55b6739 Newer 2024-07-10 19:28:00 +05:30
Manav Rathi
d661f4ac1f Space 2024-07-10 19:14:04 +05:30
Manav Rathi
2865b33fc2 lf 2024-07-10 16:01:04 +05:30
Manav Rathi
0f4459112e Context 2024-07-10 15:59:51 +05:30
Manav Rathi
f9b8c5287d Work towards 2024-07-10 15:51:53 +05:30
Manav Rathi
2ac968fdf6 Fixed 2024-07-10 15:34:23 +05:30
Vishnu Mohandas
440f9293d8 Incorporate suggestions (#2414) 2024-07-10 15:26:16 +05:30
vishnukvmd
d1968e46e5 Incorporate suggestions 2024-07-10 15:25:54 +05:30
Manav Rathi
70b74fc285 Continue 2024-07-10 15:08:09 +05:30
Manav Rathi
c92a117e8d [docs] Improve send logs instructions (#2413) 2024-07-10 14:52:34 +05:30
Manav Rathi
d7371392fe [docs] Improve send logs instructions 2024-07-10 14:50:13 +05:30
Manav Rathi
b5972a6395 r4 2024-07-10 14:35:00 +05:30
Manav Rathi
ebfd8909a9 Move to its final place 2024-07-10 14:32:36 +05:30
Manav Rathi
83d6d99469 r3 2024-07-10 14:32:01 +05:30
Manav Rathi
1322e5df79 r2 2024-07-10 14:23:44 +05:30
Manav Rathi
3b951f237f wip refactor 2024-07-10 14:16:28 +05:30
Manav Rathi
162107b3a9 Fix 2024-07-10 13:40:39 +05:30
Manav Rathi
54936303c8 Tweaks 2024-07-10 13:40:11 +05:30
Manav Rathi
8830a60ecf Move up 2024-07-10 13:34:54 +05:30
Manav Rathi
071a63a81c Outer 2024-07-10 13:27:00 +05:30
Aman Raj Singh Mourya
d06586eb1c [mob][auth] Auto lock duration added to the app_lock file 2024-07-10 13:21:52 +05:30
Manav Rathi
aa6e5c9234 Start fixing lint issues 2024-07-10 13:17:50 +05:30
Manav Rathi
5c916374f3 Move 2024-07-10 13:04:48 +05:30
Manav Rathi
c5cd6cbbca Use new 2024-07-10 13:03:25 +05:30
Manav Rathi
cfad9f841e flags 2024-07-10 12:53:06 +05:30
Manav Rathi
6d09d1f9b7 rs 1 2024-07-10 12:39:51 +05:30
Manav Rathi
e1ce2e5e84 Cont 2024-07-10 12:22:45 +05:30
Manav Rathi
6f40cbe27e Agenda 2024-07-10 12:08:22 +05:30
Manav Rathi
8e10c8bec6 Move 2024-07-10 11:33:07 +05:30
Manav Rathi
eb271088a4 Move 2024-07-10 11:02:01 +05:30
Manav Rathi
fde6e14440 Move 2024-07-10 11:00:43 +05:30
Manav Rathi
cd433aa39e Move 2024-07-10 10:58:57 +05:30
Manav Rathi
2510226a57 Consolidate 2024-07-10 10:54:27 +05:30
Manav Rathi
ecd4201304 Fix warnings 2024-07-10 10:49:11 +05:30
Manav Rathi
4d11623f77 Fix warnings 2024-07-10 10:47:41 +05:30
Manav Rathi
4519dc94b8 Move 2024-07-10 10:45:40 +05:30
Manav Rathi
57ff75b855 lf 2024-07-10 10:22:50 +05:30
Manav Rathi
d4be782b9c Silence a warning to avoid changing behaviour for now 2024-07-10 10:22:14 +05:30
Manav Rathi
24858ab73b Move 2024-07-10 10:17:44 +05:30
Manav Rathi
99545f0038 [web] Enhance log.debug (#2412) 2024-07-10 09:44:59 +05:30
Manav Rathi
072ee3861b lf 2024-07-10 09:36:34 +05:30
Manav Rathi
881993ed65 Match 2024-07-10 09:32:14 +05:30
Manav Rathi
83516a7f27 More 2024-07-10 09:28:54 +05:30
Aman Raj Singh Mourya
e39ba3c578 [mob][auth] Added Auto lock UI 2024-07-10 00:24:50 +05:30
Aman Raj Singh Mourya
8117a2929c [mob][photos] Used better names 2024-07-10 00:13:10 +05:30
Aman Raj Singh Mourya
5089721507 [mob][photos] Autolock time delay implemented 2024-07-09 23:46:34 +05:30
Manav Rathi
8821372515 [web] Enhance log.debug 2024-07-09 21:30:23 +05:30
Manav Rathi
825a215213 [desktop] Consolidate face and CLIP pipelines - Part 2/x (#2408)
* Continuation of https://github.com/ente-io/ente/pull/2391
* CLIP indexing (and search) is disabled for now until the new format is
finalized
2024-07-09 20:51:20 +05:30
Manav Rathi
be61cd08b8 Prepare for merge to main 2024-07-09 20:38:55 +05:30
Manav Rathi
bab30ec508 lf 2024-07-09 20:35:41 +05:30
Manav Rathi
064af381c5 Move 2024-07-09 19:42:57 +05:30
Manav Rathi
840b415254 Reframe 2024-07-09 19:41:23 +05:30
Manav Rathi
711c858d06 Debug logs 2024-07-09 19:35:43 +05:30
Manav Rathi
4f60cabdd0 math 2024-07-09 19:33:11 +05:30
Manav Rathi
8fbcef4221 tsc 2024-07-09 16:03:27 +05:30
Manav Rathi
49bfe5aabb Restore search 2024-07-09 15:35:46 +05:30
Manav Rathi
11584ce089 Simplify 2024-07-09 15:34:47 +05:30
Manav Rathi
b8b2d58734 Clip matches 2024-07-09 15:29:34 +05:30
Aman Raj Singh Mourya
4af03ad2dd [mob][photos] Implemented Auto lock options 2024-07-09 15:10:39 +05:30
Manav Rathi
920685e15c lint 2024-07-09 14:56:49 +05:30
Manav Rathi
56fe538f07 Tie 2024-07-09 14:55:27 +05:30
Manav Rathi
942231c521 Prune 2024-07-09 14:45:26 +05:30
Manav Rathi
c5b10b14d1 Desktop changes 2024-07-09 14:42:06 +05:30
Manav Rathi
df80d9c355 Prune 2024-07-09 14:40:04 +05:30
Manav Rathi
e90ab70cc8 Remove unused dep 2024-07-09 14:34:34 +05:30
Manav Rathi
53dc3bace9 Untie 2024-07-09 14:30:31 +05:30
Manav Rathi
82ec83caf3 Remove 2 2024-07-09 14:24:45 +05:30
Manav Rathi
2f5c966892 Remove old 2024-07-09 14:22:59 +05:30
Manav Rathi
45b1f82032 wip towards removal 2024-07-09 14:08:58 +05:30
Manav Rathi
cb148ea3b1 both 2024-07-09 13:52:26 +05:30
Manav Rathi
ed660c36df Remove unnecessary return 2024-07-09 13:30:17 +05:30
Manav Rathi
2920e04aa5 Pull both 2024-07-09 13:26:30 +05:30
Manav Rathi
ca44202fcd remote 2024-07-09 13:14:24 +05:30
Manav Rathi
023610cebd Remove the need for null assertions 2024-07-09 12:39:55 +05:30
Manav Rathi
d11e94c939 Silence warning 2024-07-09 12:37:33 +05:30
Manav Rathi
cfb1b8423b Continue 2024-07-09 12:33:09 +05:30
Manav Rathi
4d84e966b0 db done 2024-07-09 12:09:38 +05:30
Manav Rathi
3bef2e8268 generalize 2024-07-09 12:05:42 +05:30
Manav Rathi
f2bcf1744f generalize 2024-07-09 11:51:00 +05:30
Manav Rathi
8d4629254c Agenda 2024-07-09 11:40:24 +05:30
Aman Raj Singh Mourya
a0980a9638 [mob][photos] Lockscreen Fixes 2024-07-09 11:24:50 +05:30
Manav Rathi
4fada9bdf9 face => ml 2024-07-09 11:13:22 +05:30
Manav Rathi
2bc95782a6 db 2 2024-07-09 11:01:03 +05:30
Manav Rathi
b36c4398c1 wip DB changes for clip 2024-07-09 11:01:03 +05:30
Manav Rathi
e183e1f9dd [meta] Change translation cron schedule Tue => Mon (#2397) 2024-07-09 10:48:52 +05:30
Manav Rathi
a8c267e2b0 [meta] Change translation cron schedule Tue => Mon 2024-07-09 10:48:05 +05:30
Neeraj Gupta
8d8b113ef8 [auth] New translations (#2393)
New translations from
[Crowdin](https://crowdin.com/project/ente-authenticator-app)
2024-07-09 10:47:22 +05:30
Neeraj Gupta
6f389cb64d [mobile] New translations (#2339)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-app)
2024-07-09 10:47:00 +05:30
Neeraj Gupta
f534984c0e Added 2 icons and optimised 1 icon (#2343)
## Description
Added bitmart and htx icon optimised coindcx icon.
## Tests
2024-07-09 10:46:47 +05:30
Manav Rathi
a7e5de7493 [web] New translations (#2396)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2024-07-09 10:42:20 +05:30
Crowdin Bot
49ca581904 New Crowdin translations by GitHub Action 2024-07-09 05:01:06 +00:00
Manav Rathi
e82e243b77 [web] Translation improvements (#2395) 2024-07-09 10:30:23 +05:30
Manav Rathi
26f421c77e Tweak 2024-07-09 10:25:42 +05:30
Manav Rathi
d4f0384f13 Move to tr 2024-07-09 10:20:07 +05:30
Manav Rathi
2a07684de0 More 2024-07-09 10:14:38 +05:30
Manav Rathi
e4f86794be More 2024-07-09 10:10:54 +05:30
Manav Rathi
b5a3821933 More 2024-07-09 10:06:02 +05:30
Manav Rathi
c7defa31f5 Match the casing of the en version 2024-07-09 10:03:48 +05:30
Manav Rathi
374b803ecc Migrate 2024-07-09 10:00:04 +05:30
Manav Rathi
0769ba2fff [web] New translations (#2392)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2024-07-09 09:54:11 +05:30
Crowdin Bot
95dc3d1e6c New Crowdin translations by GitHub Action 2024-07-09 02:11:09 +00:00
Crowdin Bot
da5270daa7 New Crowdin translations by GitHub Action 2024-07-09 02:00:58 +00:00
Crowdin Bot
a3de155a10 New Crowdin translations by GitHub Action 2024-07-09 01:46:46 +00:00
Neeraj Gupta
a761c06396 [auth] New translations (#2340)
New translations from
[Crowdin](https://crowdin.com/project/ente-authenticator-app)
2024-07-08 17:47:50 +05:30
Ashil
369680b4a8 bump up to v0.9.6 (#2384)
## Description

## Tests
2024-07-08 17:47:02 +05:30
Manav Rathi
24ea02c521 [desktop] Consolidate face and CLIP pipelines - Part 1/x (#2391) 2024-07-08 15:54:16 +05:30
Manav Rathi
1fb95f7d7d Reuse 2024-07-08 15:48:45 +05:30
Manav Rathi
c82ef796f2 Extract 2024-07-08 15:37:20 +05:30
Manav Rathi
f1c76adb38 Towards CLIP 2024-07-08 15:23:26 +05:30
Manav Rathi
46db1c240c [desktop] Fix CLIP preprocessing (#2389)
Fix format mismatch (ref: https://github.com/ente-io/ente/pull/2342)
2024-07-08 14:45:24 +05:30
Manav Rathi
8b5ad13595 Fix format mismatch 2024-07-08 14:40:41 +05:30
Manav Rathi
6511179766 Introduce bounds checking 2024-07-08 14:36:58 +05:30
Manav Rathi
bbacbb08b6 doc 2024-07-08 14:20:43 +05:30
ashilkn
67ca028dbf bump up to v0.9.6 2024-07-06 17:24:59 +05:30
Aman Raj Singh Mourya
7a06cf2364 [mob][auth] Added logout option on lockscreen 2024-07-06 17:08:24 +05:30
Manav Rathi
2f2d988eaa [web] Improve JPEG 2000 handling (#2383)
- Let supporting browsers (e.g. Safari) upload them.
- Let them be indexed by converting to JPEG.
2024-07-06 17:05:03 +05:30
Aman Raj Singh Mourya
45331de54e [mob][photos] Custom keypad position fixed 2024-07-06 16:58:26 +05:30
Manav Rathi
d0f585fc97 Special case jp2 rendering 2024-07-06 16:57:46 +05:30
Prateek Sunal
d8f275a388 fix(mobile): add panorama detection 2024-07-06 16:35:36 +05:30
atyabbin
2e35b1eeb4 First view of the dashboard with new UI 2024-07-06 16:33:26 +05:30
Manav Rathi
c86be54ac1 [desktop] Handle jp2 and simplify 2024-07-06 16:21:43 +05:30
Vishnu Mohandas
d24c116d14 [mob][photos] Prepare for release v0.9.5 (#2381) 2024-07-06 16:09:48 +05:30
ashilkn
a279c442b8 [mob][photos] Update change log and change log version 2024-07-06 15:48:33 +05:30
ashilkn
5b76225542 [mob][photos] Remove feature flag on select all feature 2024-07-06 15:16:20 +05:30
ashilkn
e2f2921d78 bump up to v 0.9.5 2024-07-06 15:05:30 +05:30
Ashil
86584e7424 [mob][photos] Lockscreen Fixes (#2367) 2024-07-06 15:01:27 +05:30
Ashil
05a400102a [mob][photos] Added button to logout from Lockscreen (#2379) 2024-07-06 14:59:51 +05:30
Manav Rathi
9c7c0b9592 [web] Fix duplication emotion instances (#2378)
Something's wrong with yarn's resolution algorithm, but let's leave that
be until we migrate off classic. 11.11.4 doesn't have anything we need,
so use 11.11.3 that seems to not result in dupes.

The warning was

gallery.js:16547 You are loading @emotion/react when it is already
loaded. Running multiple instances may cause problems. This can happen
if multiple versions are used, or if multiple builds of the same version
are used.

Ref:
- https://github.com/ente-io/ente/pull/2372
2024-07-06 14:46:22 +05:30
Aman Raj Singh Mourya
e807712cdc [mob][photos] Added button to logout from Lockscreen 2024-07-06 14:44:45 +05:30
Manav Rathi
e468ecc98c [web] Fix duplication emotion instances
Something's wrong with yarn's resolution algorithm, but let's leave that be
until we migrate off classic. 11.11.4 doesn't have anything we need, so use
11.11.3 that seems to not result in dupes.

The warning was

    gallery.js:16547 You are loading @emotion/react when it is already loaded. Running multiple instances may cause problems. This can happen if multiple versions are used, or if multiple builds of the same version are used.

Ref:
- https://github.com/ente-io/ente/pull/2372
2024-07-06 14:41:43 +05:30
Manav Rathi
dc80aac487 [desktop] Consider HTTP 4xx errors when PUT-ing embeddings as perm failures (#2377)
Also continue processing the liveQ even if embeddings pull fails.
2024-07-06 14:24:37 +05:30
Manav Rathi
1a06fce8f2 lf 2024-07-06 14:21:37 +05:30
Manav Rathi
933212ba59 Use elsewhere 2024-07-06 14:16:45 +05:30
Manav Rathi
26d8ecda08 tokens 2024-07-06 14:07:49 +05:30
Manav Rathi
8fc897ad16 Ok 2024-07-06 14:02:32 +05:30
Manav Rathi
53a8de9ac4 Shorten 2024-07-06 14:00:50 +05:30
Manav Rathi
a99a179ef9 Nicer error logs on desktop 2024-07-06 13:40:00 +05:30
Manav Rathi
cdba99a7c2 Use elsewhere 2024-07-06 13:23:55 +05:30
Manav Rathi
b03b9fd314 Let the liveQ be processed 2024-07-06 11:02:10 +05:30
Manav Rathi
4019afdd90 [desktop] Consider HTTP 4xx errors when PUT-ing embeddings as perm failures
Ref:
- https://github.com/ente-io/ente/pull/2369
- https://github.com/ente-io/ente/pull/2368
2024-07-06 10:23:33 +05:30
Manav Rathi
c12130d357 [desktop] Update eslint to fix warnings introduced after update to TypeScript 5.5 (#2375) 2024-07-06 09:47:00 +05:30
Manav Rathi
4427352f51 Handle update 2024-07-06 09:44:38 +05:30
Manav Rathi
ac06f67891 Update the typescript-eslint v8 alpha 2024-07-06 09:37:57 +05:30
ashilkn
27dab94782 [mob][photos] Immediately logout if too many attempts on lockscreen 2024-07-06 09:37:49 +05:30
Manav Rathi
99616b46a1 [desktop] Upgrade eslint (within the 9x series) 2024-07-06 09:26:45 +05:30
ashilkn
d72a561a9b [mob][photos] Minor UI fix on lock screen password entry page 2024-07-06 08:57:14 +05:30
ashilkn
75baee00c2 [mob][photos] Fix unexpected animation in lockscreen 2024-07-06 08:35:34 +05:30
Manav Rathi
8b696b1242 [web] Various minor chores (#2372)
See commit messages for details.
2024-07-05 20:43:36 +05:30
Manav Rathi
aebe12bd9e Fix 2024-07-05 20:37:58 +05:30
Manav Rathi
fcb86da03c Update some dependencies (minor versions); pin otpauth
Pin otpauth since upstream changed from jsSHA some other library, and we'd need
to do the same for our steam codes implementation to avoid increasing the bundle
size.

https://github.com/hectorm/otpauth/pull/505

---

For the rest of the updates, Scanned the CHANGELOGs (linked):

@emotion/react, @emotion/styled
- https://github.com/emotion-js/emotion/releases

@mui/icons-material, @mui/material
https://github.com/mui/material-ui/releases

get-user-locale
https://github.com/wojtekmaj/get-user-locale/releases

i18next, i18next-resources-to-backend, react-i18next
https://github.com/i18next/i18next/releases

ml-matrix
https://github.com/mljs/matrix/releases

next
Doesn't have a changelog. Rely on hope.
See: https://github.com/vercel/next.js/discussions/65212

react, react-dom, @types/react, @types/react-dom
https://github.com/facebook/react/blob/main/CHANGELOG.md

react-virtualized-auto-sizer
https://github.com/bvaughn/react-virtualized-auto-sizer/releases

@types/chromecast-caf-receiver, @types/leaflet
Minor updates, type only
2024-07-05 20:31:37 +05:30
Manav Rathi
99af0ff294 Update to vite 5.3.3 (payments)
https://github.com/vitejs/vite/blob/v5.3.3/packages/vite/CHANGELOG.md

Also update sibling @vitejs/plugin-react
2024-07-05 19:49:48 +05:30
Manav Rathi
7cef60f8b9 Inline 2024-07-05 19:39:20 +05:30
Manav Rathi
31b6572e17 New convention 2024-07-05 19:37:27 +05:30
Manav Rathi
d07a46f514 Tense 2024-07-05 19:36:35 +05:30
Manav Rathi
547d03049a [web] Start using TypeScript 5.5 goodies
We updated to 5.5 in https://github.com/ente-io/ente/pull/2351, but I was
waiting for the VS Code release with 5.5 to also go out (so that we don't see
the editor squigglies).
2024-07-05 19:34:47 +05:30
Manav Rathi
18ab41b9ec [workers] Restrict CORS ACAH headers to the whitelist (#2371) 2024-07-05 18:45:22 +05:30
Manav Rathi
e9938c2ac4 [workers] Restrict CORS ACAH headers to the whitelist 2024-07-05 18:17:34 +05:30
Manav Rathi
089ed89045 [meta] Prettier 3.3 (#2370)
No breaking changes that affect us.

https://prettier.io/blog/2024/06/01/3.3.0
2024-07-05 17:55:53 +05:30
Manav Rathi
9c11a7f4b7 [meta] Prettier 3.3
No breaking changes that affect us.

https://prettier.io/blog/2024/06/01/3.3.0
2024-07-05 17:51:07 +05:30
Manav Rathi
543fb835f3 [server] Increase HTTP request body size to prevent 413 Too Large errors (#2369)
Allow HTTP request body up to 4 MB. The default is 1 MB, which is too
small for face embeddings for photos with more than a couple of hundred
faces.

Roughly, each face embedding is 4KB, but encrypting and base-64-ing the
embedding also has a 30% addition (just from one sample I saw), so this
should allow photos with ~700 faces to go through.

Ref:
-
https://nginx.org/en/docs/http/ngx_http_core_module.html#client_max_body_size
2024-07-05 14:20:31 +05:30
Manav Rathi
0b3ca8db69 [server] Increase HTTP request body size to prevent 413 Too Large errors
Allow HTTP request body up to 4 MB. The default is 1 MB, which is too small for
face embeddings for photos with more than a couple of hundred faces.

Roughly, each face embedding is 4KB, but encrypting and base-64-ing the
embedding also has a 30% addition (just from one sample I saw), so this should
allow photos with ~700 faces to go through.

Ref:
- https://nginx.org/en/docs/http/ngx_http_core_module.html#client_max_body_size
2024-07-05 14:08:10 +05:30
Aman Raj Singh Mourya
05e7863bdc [mob][photos] Lock count fixed 2024-07-05 13:32:17 +05:30
Manav Rathi
a2ee8a2ee9 [desktop] Embed faces in batches to prevent memory pressure crash (#2368) 2024-07-05 12:54:06 +05:30
Manav Rathi
969154baff [desktop] Embed faces in batches to prevent memory pressure crash 2024-07-05 11:53:52 +05:30
Aman Raj Singh Mourya
27525907af [mob][photos] Lock screen Clean Up 2024-07-05 11:46:38 +05:30
Aman Raj Singh Mourya
92e89d3589 [mob][photos] Timer animation fixed 2024-07-05 11:36:43 +05:30
Manav Rathi
9898a7c221 [desktop] Update Electron 30.0.9 => 30.1.2 (#2366)
- Update Electron 30.0.9 => 30.1.2
- Revert to the now un-deprecated API that we were using earlier
- Upgrade lru-cache
2024-07-05 10:59:47 +05:30
Manav Rathi
ef788b16b9 Upgrade lru-cache 2024-07-05 10:57:48 +05:30
Manav Rathi
5f7577309a Revert to the now un-deprecated API that we were using earlier
https://github.com/electron/electron/pull/42411
2024-07-05 10:53:13 +05:30
Manav Rathi
cd39e5e9cd Update Electron 30.0.9 => 30.1.2
https://github.com/electron/electron/releases/tag/v30.1.2
2024-07-05 10:48:04 +05:30
Manav Rathi
588662d1ce [desktop] Only attempt indexing after a successful pull (#2365) 2024-07-05 10:45:56 +05:30
Manav Rathi
4f98e72a58 [desktop] Only attempt indexing after a successful pull 2024-07-05 09:38:03 +05:30
Manav Rathi
5bd3f6076b [infra] Teach copycat db how to restore specific versions (#2363) 2024-07-04 22:08:19 +05:30
Manav Rathi
adcdba3f8f Update SCW cli version
No specific changes, just bringing it up to speed. No breaking changes I noticed in the CHANGELOG
https://github.com/scaleway/scaleway-cli/releases
2024-07-04 22:06:57 +05:30
Manav Rathi
5c4c6f2677 Allow restoring specific backups 2024-07-04 22:06:46 +05:30
Prateek Sunal
db5229170b Merge branch 'main' into mobile-panorama 2024-07-04 21:08:40 +05:30
Prateek Sunal
aec3157efe chore(mobile): lint fixes 2024-07-04 21:05:44 +05:30
Prateek Sunal
c594f05423 feat(mobile): add panorama viewer 2024-07-04 21:05:18 +05:30
Manav Rathi
f217d85b70 [desktop] Allow live indexing during uploads (#2361)
Saves on an unnecessary download.

With this final piece in place, the face indexing part is feature
complete.
2024-07-04 20:31:25 +05:30
Manav Rathi
52448cd2a2 Shorten 2024-07-04 20:26:31 +05:30
Manav Rathi
dca76f304c Increase liveq limit 2024-07-04 20:19:30 +05:30
Manav Rathi
26f6ab0464 Use uploadItem 2024-07-04 20:11:50 +05:30
Manav Rathi
90c01a19a5 Tweak 2024-07-04 19:26:00 +05:30
Manav Rathi
38e23ca1b5 Rename 2024-07-04 19:20:19 +05:30
Manav Rathi
5698ee12a3 Doc 2024-07-04 19:05:19 +05:30
Manav Rathi
c3bbceae49 delegate 2024-07-04 18:45:13 +05:30
Manav Rathi
95ef21ae4f Forward the upload item 2024-07-04 17:39:30 +05:30
Aman Raj Singh Mourya
9982c73d5a [mob][auth] Implemented Lock screen 2024-07-04 16:55:33 +05:30
Manav Rathi
0ce729a312 Expand 2024-07-04 15:19:11 +05:30
Manav Rathi
73b78916de Ref 2024-07-04 15:16:59 +05:30
Manav Rathi
864e4c6dd1 Rename 2024-07-04 15:16:19 +05:30
Manav Rathi
00de818e65 Index new 2024-07-04 15:12:28 +05:30
Manav Rathi
41fe7ad794 Doc and rearrange 2024-07-04 15:07:10 +05:30
Manav Rathi
13843bf52d [desktop] Regenerate face crops whenever needed (#2358) 2024-07-04 14:14:23 +05:30
Manav Rathi
6d630e0c2a Misc 2024-07-04 14:06:04 +05:30
Manav Rathi
7bd10ed78b Trigger 2024-07-04 13:54:14 +05:30
Manav Rathi
ce0442a5dd Regen if needed 2024-07-04 13:42:56 +05:30
Manav Rathi
b950fde3f2 Regen upper 2024-07-04 13:31:59 +05:30
Manav Rathi
1ab844da36 regen lower 2024-07-04 13:13:44 +05:30
Manav Rathi
eb7611a6d1 Fix warnings on opening drawer 2024-07-04 12:53:26 +05:30
Manav Rathi
ce045fb680 Cleanup 2024-07-04 12:41:02 +05:30
Manav Rathi
594d0e7ea0 The missing bit (as compared to mobile) 2024-07-04 12:17:54 +05:30
Aman Raj Singh Mourya
8c79aedd19 [mob][photos] Implemeted Applock to set custom pin/password (#2130)
This PR add the following features
1. **Device Lock:** If the user's device has a screen lock (PIN,
fingerprint, etc.), it will be used for initial authentication.
2. **Custom PIN/Passwprd**: Users can set a custom PIN/Password for app
access, independent of the device lock.

<br/>
<img width="300"
src="https://github.com/ente-io/ente/assets/146618155/54b044d1-d361-4ed8-a138-87b4838d75fc">
<img align="left" width="300"
src="https://github.com/ente-io/ente/assets/146618155/9bb90ab7-2d97-472e-90da-945a3a043533">

<br/>

<img width="300"
src="https://github.com/ente-io/ente/assets/146618155/8207605f-3495-4f62-bc34-b5a8ec64ab0a">
<img align="left" width="300"
src="https://github.com/ente-io/ente/assets/146618155/9f5fb83f-37a1-4214-b27e-4433b40a8773">
2024-07-04 12:12:40 +05:30
Manav Rathi
401ae85f40 take 3 2024-07-04 12:08:58 +05:30
Manav Rathi
3065b392f3 cmp 2024-07-04 11:44:43 +05:30
Manav Rathi
2a587039b0 gen2 2024-07-04 11:10:22 +05:30
Manav Rathi
6af39d52e3 Impl 2024-07-04 11:07:11 +05:30
Manav Rathi
e15dbc2023 Outline 2024-07-04 10:57:45 +05:30
Manav Rathi
ed2c63cf03 Port the mobile algo
Function: generateFaceThumbnailsUsingCanvas
File: mobile/lib/utils/image_ml_util.dart
2024-07-04 10:28:48 +05:30
Manav Rathi
b04538ada2 Rename and merge 2024-07-04 10:00:19 +05:30
Manav Rathi
52cd2d30a1 Agenda 2024-07-04 09:44:43 +05:30
Manav Rathi
0d0d501518 Swap 2024-07-04 09:28:48 +05:30
Manav Rathi
5b7dcddab3 [desktop] Fetch face indexes - Part 7/7 (#2357)
There still remain things to fix (e.g. the live sync), but now overall
the fetch + index flow is complete.
2024-07-03 21:03:21 +05:30
Manav Rathi
809b02cb26 Last trace 2024-07-03 20:33:39 +05:30
ashilkn
cb94d95d94 [mob][photos] Bump up to v0.9.4 2024-07-03 20:13:46 +05:30
ashilkn
4665cac03d [mob][photos] Extract strings 2024-07-03 20:11:40 +05:30
ashilkn
98d1a1c219 [mob][photos] Remove old assets 2024-07-03 19:43:15 +05:30
Manav Rathi
3b4897b86a Omit middleman 2024-07-03 19:37:20 +05:30
ashilkn
1042332f5b [mob][photos] Add title to error dialog when there is no system lock 2024-07-03 19:34:57 +05:30
ashilkn
c71850be07 [mob][photos] Change lock screen background asset 2024-07-03 19:21:16 +05:30
Manav Rathi
c0a6918c09 Trim 2024-07-03 18:18:16 +05:30
Manav Rathi
c66a74d1c7 Cleanup 2024-07-03 18:09:15 +05:30
Aman Raj Singh Mourya
80881816f3 [mob][photos] Lock screen UI tweaks (#2355) 2024-07-03 17:51:08 +05:30
Aman Raj Singh Mourya
39a3a48fd3 [mob][photos] show error dialog on no device lock enabled 2024-07-03 17:50:30 +05:30
ashilkn
5dbe46092a [mob][photos] lock screen UI tweaks 2024-07-03 17:35:41 +05:30
Aman Raj Singh Mourya
6e6da8152d [mob][photos] UI update 2024-07-03 16:20:24 +05:30
ashilkn
f570773f23 [mob][photos] Use better names 2024-07-03 15:49:13 +05:30
Manav Rathi
b43e6e5981 Lint fix 2024-07-03 15:09:51 +05:30
ashilkn
2dc7d19784 Merge branch 'main' into lockscreen_options 2024-07-03 14:57:55 +05:30
Aman Raj Singh Mourya
c789684c31 [mob][photos] Tap anywhere on Lock screen to unlock 2024-07-03 14:53:35 +05:30
Manav Rathi
d539eb9b1b hook to upload events 2024-07-03 14:44:31 +05:30
Manav Rathi
c8f3df3969 Reorder 2024-07-03 14:34:15 +05:30
Manav Rathi
5f771e923c New flow 2024-07-03 14:31:46 +05:30
Manav Rathi
8acb2a1b98 Clarify 2024-07-03 14:09:32 +05:30
Manav Rathi
0fa0bf124a Only reset the idle duration on non-empty pulls 2024-07-03 14:07:42 +05:30
Manav Rathi
1b6d362314 Handle first run 2024-07-03 13:58:47 +05:30
Manav Rathi
1987f2354a Test run 2024-07-03 13:34:50 +05:30
Manav Rathi
2ab2a13dc0 Download manager 2024-07-03 13:33:17 +05:30
Manav Rathi
70e198ee7f Intertwine 2024-07-03 13:17:30 +05:30
Aman Raj Singh Mourya
b3e7bab0cb [mob][photos] UI update 2024-07-03 13:17:25 +05:30
Aman Raj Singh Mourya
23acf45d6b Merge branch 'lockscreen_options' of https://github.com/ente-io/ente into lockscreen_options 2024-07-03 13:13:34 +05:30
Aman Raj Singh Mourya
4ad8d0c0fd [mob][photos] UI update 2024-07-03 13:08:43 +05:30
Manav Rathi
da06653c6a Implicit state machine 2024-07-03 12:41:38 +05:30
Manav Rathi
ea47936231 ua and more 2024-07-03 12:25:23 +05:30
Manav Rathi
fc46552b0f Batch 2024-07-03 11:50:45 +05:30
Manav Rathi
532a9f64ff Read 2024-07-03 11:45:49 +05:30
Manav Rathi
910013572d Make the user's ID accessible to web workers 2024-07-03 11:44:31 +05:30
Manav Rathi
c61263f179 Support nums and bools 2024-07-03 11:34:21 +05:30
Manav Rathi
206a8a538a Start using it 2024-07-03 11:12:10 +05:30
Manav Rathi
9e69798d79 In memory flag 2024-07-03 11:03:02 +05:30
Manav Rathi
5948714aff S2 2024-07-03 10:42:45 +05:30
Manav Rathi
08a23d8733 Sketch 2024-07-03 10:22:18 +05:30
Manav Rathi
0814fd42d1 [web] Misc minor tsc improvements (#2352) 2024-07-02 21:43:26 +05:30
Manav Rathi
dbe3e9a7d8 New convention 2024-07-02 21:29:02 +05:30
Manav Rathi
94f5822e72 Works 2024-07-02 21:17:41 +05:30
Manav Rathi
851cd77c50 ditto 2024-07-02 21:15:37 +05:30
Manav Rathi
2709298df0 Isolate 2024-07-02 21:15:02 +05:30
Manav Rathi
eee9a32b9a [web] TypeScript 5.5 (#2351) 2024-07-02 21:03:04 +05:30
Manav Rathi
4a84309e23 Apparently 2024-07-02 20:57:54 +05:30
Manav Rathi
6aeaea65ca [web] TypeScript 5.5 2024-07-02 20:43:15 +05:30
Ashil
61eb8d4282 [mob][photos] Lock screen clean up + refactor (#2350) 2024-07-02 20:07:31 +05:30
ashilkn
a3b19162f4 [mob][photos] Clean up 2024-07-02 20:04:18 +05:30
Manav Rathi
c8d0ccfe6a [desktop] Fetch face indexes - Part 6/x (#2349) 2024-07-02 20:01:42 +05:30
Manav Rathi
bb31f44227 Prepare for merge 2024-07-02 19:58:12 +05:30
ashilkn
6ab5015b9d [mob][photos] Refactor + use better variable names 2024-07-02 19:42:25 +05:30
Manav Rathi
d77b9d06f9 lf 2024-07-02 19:24:21 +05:30
Manav Rathi
9758b85e96 Prune 2024-07-02 19:22:45 +05:30
Manav Rathi
e8445d99fb Tweak 2024-07-02 19:17:22 +05:30
Manav Rathi
177a04830b Match face DB 2024-07-02 19:10:15 +05:30
Manav Rathi
3861e48737 Prune 2024-07-02 19:03:18 +05:30
Manav Rathi
f60ff6d8df Rename and shuffle 2024-07-02 18:59:50 +05:30
ashilkn
365e8e6eb8 [mob][photos] Make custom key pad for pin a separate widget and reuse it instead of writing duplicates of it 2024-07-02 18:19:16 +05:30
Manav Rathi
f757c996e7 [desktop] Fetch face indexes - Part 5/x (#2348) 2024-07-02 15:53:13 +05:30
ashilkn
71e7e660b2 [mob][photos] Use better keys + make members private 2024-07-02 15:46:01 +05:30
Manav Rathi
ff94ceb254 Fix condition 2024-07-02 15:44:02 +05:30
Manav Rathi
54b0374680 Parse array 2024-07-02 15:41:24 +05:30
Manav Rathi
33ab6809e2 Cleanup 2024-07-02 15:31:24 +05:30
Manav Rathi
c9a2494ac8 Test 2024-07-02 15:17:51 +05:30
ashilkn
03ded09cb4 [mob][photos] Use consistent names for all lock screen related classes and file names 2024-07-02 15:17:07 +05:30
Manav Rathi
e28a6b5290 Add custom error
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error
2024-07-02 15:12:07 +05:30
ashilkn
f6e4d4c7c9 [mob][photos]
Clean up main.dart
2024-07-02 15:04:06 +05:30
Manav Rathi
8031f27feb Sanity check 2024-07-02 14:53:35 +05:30
ashilkn
ec04becd0e [mob][photos] Clean up configuration.dart 2024-07-02 14:44:22 +05:30
Manav Rathi
1a4b3199f1 new 2024-07-02 14:15:55 +05:30
Manav Rathi
f7137b721e Move 2024-07-02 13:56:53 +05:30
Manav Rathi
080d5630a8 imports 2024-07-02 13:52:58 +05:30
Manav Rathi
af61774d93 Give tsc a helping hand 2024-07-02 13:49:51 +05:30
Manav Rathi
0e1b490371 Assert 2024-07-02 13:47:27 +05:30
Manav Rathi
6bb126e58f Move 2024-07-02 13:34:43 +05:30
Manav Rathi
369ff7833c Fix 2024-07-02 13:32:10 +05:30
Manav Rathi
658a258ddc Fix 2024-07-02 13:31:12 +05:30
Manav Rathi
9c377d9ced fix 2024-07-02 13:27:16 +05:30
Manav Rathi
c27f4a64df assert 2024-07-02 13:22:31 +05:30
Manav Rathi
4d9b7d7632 fix 2024-07-02 13:18:20 +05:30
Manav Rathi
1f00330fd4 fix or neuter or workaround 2024-07-02 13:14:22 +05:30
Manav Rathi
6c178a4476 fix 2024-07-02 13:07:47 +05:30
Manav Rathi
f3bd395f11 New loc 2024-07-02 13:04:51 +05:30
Manav Rathi
9d30ffc96f [desktop] Fix CI lint errors (#2344)
Ref: https://github.com/ente-io/ente/pull/2342
2024-07-02 12:32:46 +05:30
Manav Rathi
8fe0a31da3 [desktop] Fix CI lint errors
https://github.com/ente-io/ente/pull/2342
2024-07-02 12:30:38 +05:30
Nikunj Kumar Nakum
06fae3836e Merge branch 'ente-io:main' into main 2024-07-02 12:29:22 +05:30
Manav Rathi
6ee237716e [desktop] Fetch face indexes - Part 4/x (#2341)
This mostly moves a few files that are transitively used by f-index.ts
to new (so that we can move f-index.ts to new and call it from the
worker therein).
2024-07-02 12:28:11 +05:30
Nikunj Kumar Nakum
d86ce619c0 Update custom-icons.json
added bitmart and htx
2024-07-02 12:26:37 +05:30
Manav Rathi
93b264443c next line 2024-07-02 12:25:21 +05:30
Manav Rathi
47e8474466 wc 2024-07-02 12:21:39 +05:30
Manav Rathi
dd80b2174f Try once more 2024-07-02 12:18:32 +05:30
Laurens Priem
fa28d6d6db [web][photos] Correct clip preprocessing (#2342)
## Description

Fixed issues with the old clip preprocessing.

## Tests

Not tested, but confident it's correct. Should compare embeddings
between platforms after all web changes are done.
2024-07-02 12:10:29 +05:30
Manav Rathi
f8e5bd3d66 Workaround failures on GitHub action 2024-07-02 12:07:45 +05:30
laurenspriem
ff2d838b64 [web][photos] Correct clip preprocessing 2024-07-02 12:06:41 +05:30
Aman Raj Singh Mourya
9fd94c63d9 [mob][photos] lockscreen UI updated 2024-07-02 11:52:47 +05:30
Manav Rathi
8abcd39966 Fix warning 2024-07-02 11:48:48 +05:30
Manav Rathi
a65e0ddfa4 lf 2024-07-02 11:47:30 +05:30
Manav Rathi
406e7bd5bd tsc 2024-07-02 11:41:44 +05:30
Manav Rathi
a7f0dc74fd tsc 2024-07-02 11:26:11 +05:30
Manav Rathi
b49d1323db tsc 2024-07-02 11:14:35 +05:30
Manav Rathi
16b79bcf4a tsc 2024-07-02 11:11:06 +05:30
Manav Rathi
16e197455b Update imports 2024-07-02 11:00:38 +05:30
Manav Rathi
cd27168f5f Move 2024-07-02 10:58:59 +05:30
Manav Rathi
1c7f25723e Conv 2024-07-02 10:58:27 +05:30
Manav Rathi
025fe35999 tsc transitive 2024-07-02 10:55:57 +05:30
Manav Rathi
892a90d83b esl 2024-07-02 10:51:44 +05:30
Manav Rathi
94f179ebab Fix esl 2024-07-02 10:41:06 +05:30
Manav Rathi
f2ea1a05c1 Fix tsc 2024-07-02 10:38:51 +05:30
Manav Rathi
b88d6d26a6 Fix tsc 2024-07-02 10:37:44 +05:30
Manav Rathi
18194dc61a Fix tsc 2024-07-02 10:35:29 +05:30
Manav Rathi
f7324d5388 Move 2024-07-02 10:22:04 +05:30
Manav Rathi
93488e149d move and merge 2024-07-02 10:15:40 +05:30
Crowdin Bot
23b0ea67ae New Crowdin translations by GitHub Action 2024-07-02 02:10:11 +00:00
Nikunj Kumar Nakum
a2599f3415 updated coindcx icon and added 2 more icons
added new HTX and bitmart icons
2024-07-02 00:15:33 +05:30
Manav Rathi
2cce5fb17c Move more 2024-07-01 20:44:09 +05:30
Manav Rathi
9205907588 Inline 2024-07-01 20:33:28 +05:30
Manav Rathi
a282c6cb40 Move more 2024-07-01 20:28:32 +05:30
Manav Rathi
cec60520d9 Move 2024-07-01 20:16:57 +05:30
Manav Rathi
5c0f183740 lf 2024-07-01 20:09:49 +05:30
Manav Rathi
03150482f7 Use our check 2024-07-01 20:07:25 +05:30
Manav Rathi
5fcb1de540 Rename etc 2024-07-01 20:06:48 +05:30
Manav Rathi
157f3696e4 Move 2024-07-01 19:58:28 +05:30
Neeraj Gupta
a60c50fe97 [mob] Avoid FileUploader cache clear in case of autoLogout (#2335)
## Description

## Tests
2024-07-01 16:48:57 +05:30
Victor Muthiani
6544ed3d3d [auth] Icons for Yahoo, OKX, 1XBET, Bitget, & Crypto.com (#2291)
## Description
Added Yahoo,okx,1xbet,bitget & crypto.com icons
uploaded respective optimized svgs and updated the json file
2024-07-01 16:46:57 +05:30
Laurens Priem
b4d0eb843b [mob][photos] Fix german translation (#2337)
## Description

Fixed translation.
2024-07-01 16:45:44 +05:30
laurenspriem
c40a051f5f [mob][photos] Fix german translation 2024-07-01 16:43:54 +05:30
Manav Rathi
0b76287f80 [desktop] Fetch face indexes - Part 3/x (#2336) 2024-07-01 16:25:08 +05:30
Manav Rathi
df85e70a37 lf 2024-07-01 16:23:28 +05:30
Manav Rathi
9734797bac Comment out for now 2024-07-01 16:19:24 +05:30
Manav Rathi
b430aeb7c4 Shorten 2024-07-01 15:55:08 +05:30
Manav Rathi
ff0f940798 Shorten 2024-07-01 15:32:15 +05:30
Manav Rathi
5988052521 Fix 2024-07-01 15:29:32 +05:30
Manav Rathi
c929d3dc74 Simplify 2024-07-01 15:10:57 +05:30
Manav Rathi
bf2873821d Allow to be set/get from webworkers 2024-07-01 14:54:42 +05:30
Manav Rathi
eaecf91aa1 Rearrange 2024-07-01 14:52:11 +05:30
Neeraj Gupta
49f96dbea1 [mob] Avoid FileUploader cache clear in case of autoLogout 2024-07-01 14:43:53 +05:30
Manav Rathi
b9972e131a [web] Update case of some recently touched l10n keys (#2334) 2024-07-01 14:25:10 +05:30
Manav Rathi
c318a15236 Update l10n keys 2024-07-01 14:22:21 +05:30
Manav Rathi
1a545aeef6 [web] New translations (#2333)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2024-07-01 14:19:19 +05:30
Crowdin Bot
d40d119b82 New Crowdin translations by GitHub Action 2024-07-01 08:48:44 +00:00
Manav Rathi
e71410af4e [web] Allow web workers to access token to make API calls (#2332) 2024-07-01 14:16:32 +05:30
Manav Rathi
612e81d74e tsc 2024-07-01 13:53:29 +05:30
Manav Rathi
bf1f4b26cf Keep separate 2024-07-01 13:51:43 +05:30
Manav Rathi
de7b80a352 Fix 2024-07-01 13:48:29 +05:30
Manav Rathi
cf3728eee8 Migrate 2024-07-01 13:46:48 +05:30
Manav Rathi
5b9c173b0e Clean 2024-07-01 13:37:17 +05:30
Manav Rathi
4179d183bd Unenum 2024-07-01 13:32:51 +05:30
Manav Rathi
fbae7b6fd0 Inline 2024-07-01 13:27:57 +05:30
Manav Rathi
62c9b2afc2 Remove dependency 2024-07-01 13:22:22 +05:30
Manav Rathi
cd81bbe19e Scope 2024-07-01 13:20:11 +05:30
Manav Rathi
39a6b3cd6b Make the context more specific 2024-07-01 13:20:11 +05:30
Manav Rathi
d14a6591d2 Assert that accounts has no local state 2024-07-01 13:20:11 +05:30
Manav Rathi
6b6edfb5bf Reduce state 2024-07-01 13:20:11 +05:30
Manav Rathi
7b20bbd5a2 Reorder 2024-07-01 13:20:11 +05:30
Manav Rathi
61a62f5656 Reduce local state for accounts 2024-07-01 13:20:11 +05:30
Manav Rathi
0376af8d38 Read from kv 2024-07-01 13:20:11 +05:30
Manav Rathi
85aaf94c89 4 2024-07-01 13:20:11 +05:30
Manav Rathi
af53585f6c 3 2024-07-01 13:20:11 +05:30
Manav Rathi
22fbf0a1be 2 2024-07-01 13:20:11 +05:30
Manav Rathi
4acd17f06b Funnel point 2024-07-01 13:20:11 +05:30
Manav Rathi
05e7a998e2 [desktop] Use clip-bpe-js as the Tokenizer (#2331)
Replace the inlined code with the library.

Tested by comparing the produced embeddings on a few sample prompts
(were exactly the same).
2024-07-01 13:05:31 +05:30
Manav Rathi
bbc44d6ac1 [desktop] Use clip-bpe-js as the Tokenizer
Replace the inlined code with the library.

Tested by comparing the produced embeddings on a few sample prompts (were
exactly the same).
2024-07-01 13:03:07 +05:30
Manav Rathi
b1da1dfe05 [infra] Change prometheus scrape interval to 60s (the default) (#2330) 2024-07-01 11:47:12 +05:30
Manav Rathi
26c1dda600 [infra] Change prometheus scrape interval to 60s (the default) 2024-07-01 11:42:11 +05:30
Manav Rathi
2f0112d5de [web] Make the client package available to web worker code (#2329) 2024-07-01 09:55:41 +05:30
Manav Rathi
ca0fa88bb5 Incl x-c-p in all API fetches 2024-06-30 18:58:35 +05:30
Manav Rathi
45093fcc0c Inline 2024-06-30 18:44:25 +05:30
Manav Rathi
776915e659 Continue painting 2024-06-30 18:22:58 +05:30
Manav Rathi
4a14017cff cast 2024-06-30 18:14:27 +05:30
Manav Rathi
67e054a26d Continue second pass 2024-06-30 18:03:08 +05:30
Manav Rathi
6f073b007b isDesktop 2024-06-30 17:58:22 +05:30
Manav Rathi
284799bc7a Second pass 2024-06-30 17:54:11 +05:30
Manav Rathi
54c54d50c6 Static pkg name 2024-06-30 17:52:52 +05:30
Manav Rathi
f11960981a Use static app name 2024-06-30 17:41:56 +05:30
Manav Rathi
9973e5c701 Test 2024-06-30 08:07:38 +05:30
Manav Rathi
8fbc7b3937 Case 2024-06-30 07:58:14 +05:30
Manav Rathi
d09a7b290b New constant 2024-06-30 07:55:24 +05:30
Manav Rathi
bd627a6e54 Case 2024-06-30 07:49:21 +05:30
Manav Rathi
3ddd5bff2d Add cross-env (shx doesn't allow this)
https://github.com/shelljs/shx/issues/127
2024-06-29 21:48:50 +05:30
Manav Rathi
f7b7bae0af The plan
But will Windows play along...
2024-06-29 21:19:46 +05:30
Ashil
62c3ca3ecc [mob][photos] Fix: Intermittent disappearance of favorite album on 'On Ente' section. (#2314)
## Description

Quite possible the on ente section is built before favorites service is
finished initialising which is causing this issue. Reloading after init
is complete should fix this bug

## Tests

Tested and working fine.
2024-06-29 14:39:21 +05:30
Ashil
a967d2fbd0 [mob][photos] Unselect all selected items on system back navigation (#2315) 2024-06-29 14:39:12 +05:30
Aman Raj Singh Mourya
3c86a9bc06 [mob][photos] Added time delay for invalid attempts 2024-06-29 14:19:47 +05:30
Manav Rathi
450981a5fb [desktop] Fetch face indexes - Part 2/x (#2320)
Continuation of https://github.com/ente-io/ente/pull/2297
2024-06-29 12:01:52 +05:30
Manav Rathi
ad2dabcc96 Fix again 2024-06-29 11:43:15 +05:30
Manav Rathi
8b16b4632f Renames 2024-06-29 11:36:45 +05:30
Manav Rathi
bb37630bae Nicer 2024-06-29 11:32:21 +05:30
Manav Rathi
66cb95e32c Fix hanging paren 2024-06-29 11:31:43 +05:30
Manav Rathi
ea51cdfc77 Remove unused 2024-06-29 11:18:46 +05:30
Manav Rathi
4d41f2d64c Remove unused 2024-06-29 11:15:43 +05:30
Manav Rathi
266796f619 wa 2024-06-29 10:52:43 +05:30
Manav Rathi
57a587301b Hook back into the app 2024-06-29 10:44:29 +05:30
Manav Rathi
90c15774d7 Extract 2024-06-29 10:44:29 +05:30
Manav Rathi
7d46de139e Logout 2024-06-29 10:44:29 +05:30
Manav Rathi
dd3243492a Use module state 2024-06-29 10:44:29 +05:30
Manav Rathi
ea7619d405 Potential entry point 2024-06-29 10:44:29 +05:30
Manav Rathi
7d8ade7fe4 Extract 2024-06-29 10:44:29 +05:30
Manav Rathi
ddf18bd036 Handle versioning 2024-06-29 10:44:27 +05:30
Manav Rathi
84a03dafe3 Isolate what changes 2024-06-29 10:44:02 +05:30
Manav Rathi
dc5b0b4393 Save 2024-06-29 10:44:02 +05:30
Manav Rathi
36d8c2a427 Specific-er than sync 2024-06-29 10:44:02 +05:30
Manav Rathi
b63a15a521 Move trash handling to existing sync 2024-06-29 10:44:02 +05:30
Manav Rathi
53452344f3 Lints 2024-06-29 10:44:02 +05:30
Manav Rathi
a119d544af prune prep 2024-06-29 10:44:02 +05:30
Manav Rathi
67d9e650ba Include files from trash 2024-06-29 10:44:02 +05:30
Manav Rathi
61d35159fa Dup 2024-06-29 10:44:02 +05:30
Manav Rathi
593ece7681 Compile 2024-06-29 10:44:01 +05:30
Manav Rathi
45a103f66a New layer 2024-06-29 10:42:28 +05:30
Manav Rathi
27c6474f06 Doc all 2024-06-29 10:42:28 +05:30
Manav Rathi
660f6c645b Rearrange 2024-06-29 10:42:28 +05:30
Manav Rathi
90cffef7be Doc 2024-06-29 10:42:28 +05:30
Manav Rathi
d6f30546b9 Rearrange 2024-06-29 10:42:28 +05:30
Manav Rathi
a9e0aa13ff Inline 2024-06-29 10:42:28 +05:30
Manav Rathi
1496b60895 Inline 2024-06-29 10:42:28 +05:30
Manav Rathi
2f7923b097 Rearrange 2024-06-29 10:42:28 +05:30
Manav Rathi
d5d7efd657 doc 3 2024-06-29 10:42:28 +05:30
Manav Rathi
c4b93019d5 doc 2 2024-06-29 10:42:28 +05:30
Manav Rathi
0943d1db8c wip doc 2024-06-29 10:42:28 +05:30
Manav Rathi
822e82d709 [desktop] Speed up reconciliation (#2319)
- Do an upfront directory listing.
- Avoid JSON parsing (the various LivePhoto functions we were callling
were internally doing it), and even when we have to, don't do it twice
(I tested, the JSON parsing does have a noticeable impact)

@ua741 Monkey testing shows it to be _*almost_ O(1) compared to the
earlier O(n). _*almost_ is with many caveats:
- The recursive ls is still multi-second (takes ~5s for 300k files on my
SSD)
- The loop is now almost instantaneous for people who don't have live
photos or have already synced, but there is still one JSON parse (in the
else branch) that'll run for initial exports or people with many live
photos
2024-06-29 09:32:11 +05:30
Manav Rathi
51eec12af5 Avoid JSON parsing, and even when we have to, don't do it twice 2024-06-29 09:14:17 +05:30
Manav Rathi
5da4028ebf [desktop] Speed up reconciliation by doing an upfront directory listing 2024-06-29 08:31:28 +05:30
Manav Rathi
26626797ff [web] Minor localization fixes (#2317) 2024-06-29 08:12:59 +05:30
Manav Rathi
ee3ddad4d1 Fix 2024-06-29 08:11:02 +05:30
Manav Rathi
730ca2119c Fix typo 2024-06-29 08:09:24 +05:30
Manav Rathi
58127591d0 Mark as pending translation 2024-06-29 08:08:55 +05:30
Manav Rathi
c9eaa2df12 Fix 2024-06-29 08:03:36 +05:30
Manav Rathi
66549445d1 [web] Fix download notification text overflow (#2316)
Fix overflowing file name on download success notification in case the
file name is very long and without any spaces.
2024-06-28 22:25:15 +05:30
Manav Rathi
f167839ddc Fix overflowing file name on download success notification
Ellipse text in notifications. This wasn't happening earlier if the file name
was long, without spaces to act as breaks.
2024-06-28 22:20:32 +05:30
Manav Rathi
6f0a36acde Inline 2024-06-28 22:13:13 +05:30
Ashil
1463d4199e [mob][photos] upgrade photo_manager (#2301) 2024-06-28 19:04:54 +05:30
ashilkn
094d4053fb [mob][photos] unselect all selected items on system back navigation 2024-06-28 18:52:36 +05:30
ashilkn
0a4abada00 [mob][photos] add debouncer to reloading user collections tab on FavoritesServiceInitCompleteEvent 2024-06-28 16:38:48 +05:30
ashilkn
6bf00c40a0 [mob][photos] Fix: Intermittent disappearance of favorite album on 'On Ente' section
Quite possible the on ente section is built before favorites service is finished initialising which is causing this issue. Reloading after init is compelte should fix this bug
2024-06-28 15:55:46 +05:30
Manav Rathi
959d5c78b2 [desktop] Add logging to help trace memory pressure issues (#2312)
The previous fix did not help the user:
https://discord.com/channels/948937918347608085/1253299055472410645

But I've also been unable to reproduce this on Linux too. Modifying this
code to just log (so that we can better understand before adding ad-hoc
workarounds).
2024-06-28 14:33:52 +05:30
Neeraj Gupta
2ea9b4ba84 [mob] Fix Send link option position for person and unamed group (#2313)
## Description

## Tests
2024-06-28 14:33:44 +05:30
Neeraj Gupta
9df98f8ffb [mob] Show create link for unamed group 2024-06-28 14:30:56 +05:30
Manav Rathi
a58fa405f7 [desktop] Add logging to help trace memory pressure issues
The previous fix did not help the user
https://discord.com/channels/948937918347608085/1253299055472410645

But I've also been unable to reproduce this on Linux.

Modifying this code to just log (so that we can better understand before adding
a workaround).
2024-06-28 14:28:58 +05:30
Neeraj Gupta
120fb38d3f [mob]Extract strings 2024-06-28 13:47:45 +05:30
Manav Rathi
471db8e8c1 [desktop] Reconcile exported files with disk on app start and resync (#2310) 2024-06-28 13:46:28 +05:30
Neeraj Gupta
8613f5e73f [mob] Keep send link as first option 2024-06-28 13:38:23 +05:30
Manav Rathi
22fc61633b [desktop] Reconcile exported files with disk on app start and resync 2024-06-28 13:35:34 +05:30
Manav Rathi
22e7bcb3b0 [desktop] Add CHANGELOG entries for upcoming release (#2309) 2024-06-28 13:26:49 +05:30
Manav Rathi
3aeaf365ca [desktop] Add CHANGELOG entries for upcoming release 2024-06-28 13:24:43 +05:30
Manav Rathi
5140d6c938 [web] Move custom apiOrigin to IndexDB (#2306)
Earlier we were storing the custom API origin setting in local storage.
Local storage is not accessible from web workers, which is a problem in
general (and in particular, this caused face indexing to fail since we
were not able to put the embeddings to remote since that code runs in a
web worker).

Move this to a Indexed DB. Do this in a way we can reuse the same table
for more such ad-hoc keys.
2024-06-27 20:44:21 +05:30
Manav Rathi
c7d5dde9f7 Sigh 2024-06-27 20:30:53 +05:30
Manav Rathi
b84470f574 Fix 2024-06-27 20:13:31 +05:30
Manav Rathi
29a496c039 Fix 2024-06-27 20:11:30 +05:30
Manav Rathi
9f9038ff97 Note 2024-06-27 20:08:47 +05:30
Manav Rathi
d33ba285a6 Replace 2024-06-27 20:06:17 +05:30
Manav Rathi
640fd48e70 Hobgoblin 2024-06-27 20:00:17 +05:30
Manav Rathi
52d7914ad0 Ergonomic kv 2024-06-27 19:58:55 +05:30
Manav Rathi
554a90eec5 Clear on logout 2024-06-27 16:36:30 +05:30
Manav Rathi
3555adae09 Move to correct place 2024-06-27 16:34:19 +05:30
Manav Rathi
ab63ed53df Fix 2024-06-27 16:29:10 +05:30
Manav Rathi
c4c53cd59f Touchups 2024-06-27 16:22:46 +05:30
Manav Rathi
e86b095480 Fin 2024-06-27 16:21:10 +05:30
Manav Rathi
55b2934c62 Continue 2024-06-27 16:20:17 +05:30
Manav Rathi
3f96209dbb Continue 2024-06-27 16:14:05 +05:30
Manav Rathi
9241c2e595 Retain leading slash
Looks pathy-ier
2024-06-27 16:03:19 +05:30
atyabbin
65c72f6cf5 Showing usage data in GB in the fetch table 2024-06-27 15:59:39 +05:30
Manav Rathi
94f4dcb9be more 2024-06-27 15:57:36 +05:30
Manav Rathi
f543b402f8 New abstraction 2024-06-27 15:40:35 +05:30
Manav Rathi
1b77c899da The rest 2024-06-27 15:33:00 +05:30
Manav Rathi
1aef9cf179 Update dev-settings page 2024-06-27 15:13:36 +05:30
Manav Rathi
f0b3c4a30a idb-keyval 2024-06-27 14:38:45 +05:30
Neeraj Gupta
0def478b0d Dashboard Improvement (#2304)
Added the required modifications for the URL
2024-06-27 14:23:33 +05:30
atyabbin
f11cc82e44 modification in URL for update subscription 2024-06-27 14:16:29 +05:30
Manav Rathi
a3d7c53395 [web] New translations (#2302)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2024-06-27 13:39:30 +05:30
Aman Raj Singh Mourya
b4e0eb8491 Merge branch 'lockscreen_options' of https://github.com/ente-io/ente into lockscreen_options 2024-06-27 13:34:34 +05:30
Aman Raj Singh Mourya
bdbed2aa17 [mob][photos] Show errorText with border on invalid Pin 2024-06-27 13:33:40 +05:30
Aman Raj Singh Mourya
2652f39c21 [mob][photos] Fix visibility toggle disappearing on error state in lockscreen (#2303) 2024-06-27 13:32:37 +05:30
ashilkn
6f95272400 [mob][photos] Deprecate isPasswordInput in TextInputWidget, since the widget is becoming bloated and hard to maintain. Will be create a separate PasswordInputWidget instead in future 2024-06-27 12:54:26 +05:30
Crowdin Bot
92b4d52a40 New Crowdin translations by GitHub Action 2024-06-27 07:24:24 +00:00
Manav Rathi
083b7b3d95 [web] Notify user to logout when they change their password elsewhere (#2230)
See code comments for the why and how.

**Tests**

- [x] Normal login
- [x] Normal login but after entering incorrect password once
- [x] Login after changing password
- Superceded by next item: ~~Change password on different browser,
opening tab in earlier browser shows logout prompt~~
- [x] Change password on different browser (with logOutOtherDevices:
false), opening tab in earlier browser transparently logs in
- [ ] Same case, but even if earlier browser was already on the enter
password page
- [x] Change password on same browser, then open another tab. Doesn't
prompt to logout.
- [x] Fresh signup
2024-06-27 12:53:44 +05:30
ashilkn
20c33fd00b [mob][photos] Workaround for visibility icon disappearing when password is wrong in lock screen password 2024-06-27 12:50:39 +05:30
ashilkn
1d5366c6b6 [mob][photos] upgrade photo_manager 2024-06-27 10:05:43 +05:30
Laurens Priem
e2e36e285f Face cooldown (#2300)
## Description

- Remove cooldown timer in FaceMlService
- Only load face ML models when actually doing indexing
- Small refactor of FaceMlService

## Tests

Tested in debug mode on my pixel phone.
2024-06-27 06:12:52 +05:30
laurenspriem
c5bcc1992c [mob][photos] Small fix 2024-06-26 23:53:48 +05:30
laurenspriem
2c9b0e77ba [mob][photos] Force run on ML page 2024-06-26 23:11:23 +05:30
laurenspriem
ca7096b87c [mob][photos] Rename 2024-06-26 23:09:27 +05:30
laurenspriem
3a8b2cf7b8 [mob][photos] Small fix 2024-06-26 23:06:10 +05:30
laurenspriem
69bfaf2033 [mob][photos] Only load models when actually indexing locally 2024-06-26 22:00:31 +05:30
laurenspriem
0d12f17576 [mob][photos] Remove cooldown 2024-06-26 18:58:53 +05:30
Manav Rathi
80d5d7e44e [desktop] Fetch face indexes - Part 1/x (#2297)
No functional changes yet, just prep.
2024-06-26 15:27:12 +05:30
Manav Rathi
bfa4806d47 Remove unnecessary automatically made edits 2024-06-26 15:08:37 +05:30
Manav Rathi
2c3bd39ab6 read files 2024-06-26 15:03:37 +05:30
Manav Rathi
1d0cbc527a loop 2024-06-26 15:03:37 +05:30
Manav Rathi
4c8e6853be sync time 2024-06-26 15:03:37 +05:30
Manav Rathi
4839aaaf6d types 2024-06-26 15:03:37 +05:30
Manav Rathi
7cac870a68 API 2024-06-26 15:03:37 +05:30
Manav Rathi
a5a7c4fcb2 Sketch 2024-06-26 15:03:37 +05:30
Manav Rathi
3d91e1c481 doc 2024-06-26 15:03:37 +05:30
Manav Rathi
3193139118 [desktop] Fix stream.end not always being emitted (#2296)
This caused the reference counts to not be zero when we'd go to clear
the cache in `clearPendingUploads`.

Bug introduced in the nightly build, but didn't have any negative impact
except printing an error in the logs because of the unhandled promise
rejection.

Ref: https://github.com/nodejs/node/issues/10871#issuecomment-650150155
2024-06-26 15:00:58 +05:30
Manav Rathi
c354c80b1f [desktop] Fix stream.end not always being emitted
Ref: https://github.com/nodejs/node/issues/10871#issuecomment-650150155
2024-06-26 14:50:43 +05:30
Aman Raj Singh Mourya
59b132edf8 [mob][photos] moved funtions to lockscreen_setting.dart from configuration.dart 2024-06-26 14:02:27 +05:30
Manav Rathi
b67af0145a [desktop] Ensure cached zips are also marked closeable on errors (#2294) 2024-06-26 10:27:21 +05:30
Manav Rathi
a3bb8fa911 [desktop] Ensure cached zips are also marked closeable on errors 2024-06-26 10:24:04 +05:30
Manav Rathi
2d3e3c91d2 [desktop] Google takeout UX improvements (#2290) 2024-06-25 20:54:23 +05:30
Manav Rathi
baec693c72 lf 2024-06-25 20:13:15 +05:30
Manav Rathi
362179ba8d Retry hint 2024-06-25 20:07:57 +05:30
Manav Rathi
f55c33a4d6 FAQ link 2024-06-25 19:52:44 +05:30
Manav Rathi
083eb2fc7a Scan 2024-06-25 19:50:27 +05:30
Manav Rathi
df50a3b759 Fix 2024-06-25 19:48:33 +05:30
Manav Rathi
4e7045fe71 Tweak 2024-06-25 19:44:37 +05:30
Manav Rathi
9be81955af Handle state 2024-06-25 19:37:09 +05:30
Manav Rathi
477f093437 Tweak copy 2024-06-25 19:07:20 +05:30
Manav Rathi
b2d29ccbf8 Takeout opts 2024-06-25 18:59:40 +05:30
Manav Rathi
0b0701271e Split 2024-06-25 18:14:02 +05:30
Manav Rathi
c318167909 Cleanup 2024-06-25 18:14:02 +05:30
Manav Rathi
89ee10ea57 Clean 2024-06-25 18:14:02 +05:30
Manav Rathi
a310eca1c2 Update import 2024-06-25 15:58:30 +05:30
Manav Rathi
1cd5536eb1 Update message 2024-06-25 15:58:30 +05:30
Manav Rathi
5b411ce55a Fix lint 2024-06-25 15:58:30 +05:30
Manav Rathi
012aae17ec Fix formatting 2024-06-25 15:58:29 +05:30
Manav Rathi
e6b4d220a3 Fix 2024-06-25 15:58:29 +05:30
Manav Rathi
c988c30910 Validate in the other places where we request the password 2024-06-25 15:58:29 +05:30
Manav Rathi
3ae1b18bf1 Comment 2024-06-25 15:58:29 +05:30
Manav Rathi
a093c1dd34 Flatten 2024-06-25 15:58:29 +05:30
Manav Rathi
25a79e4146 Before computing with the keyattributes 2024-06-25 15:58:29 +05:30
Manav Rathi
47630408b6 We need the SRP attributes to detect changes 2024-06-25 15:58:29 +05:30
Manav Rathi
9c0a66b036 Cleanup 2024-06-25 15:58:29 +05:30
Manav Rathi
d8650aa33d router.reload is an undocumented, semi-deprecated, oneliner
Ref:
- https://github.com/vercel/next.js/discussions/53517
- https://github.com/vercel/next.js/blob/canary/packages/next/src/shared/lib/router/router.ts#L1007-L1009
2024-06-25 15:58:29 +05:30
Manav Rathi
a6645bce8b Wait for validity check to complete before verification 2024-06-25 15:58:29 +05:30
Manav Rathi
05816a3894 Note the field 2024-06-25 15:58:28 +05:30
Manav Rathi
e4e75b573f Reduce indentation 2024-06-25 15:58:28 +05:30
Manav Rathi
3f6ef61204 Use 2024-06-25 15:58:28 +05:30
Manav Rathi
326f7d647e validity 2024-06-25 15:58:28 +05:30
Manav Rathi
3d7e425f48 WIP 2024-06-25 15:58:28 +05:30
Manav Rathi
767f2479af wip 2024-06-25 15:58:28 +05:30
Manav Rathi
edceebd8fb The error in the background is potentially confusing too 2024-06-25 15:58:28 +05:30
Manav Rathi
685a3ca4c7 Upd 2024-06-25 15:58:27 +05:30
Manav Rathi
3a4dc21470 Component state for this component needs refactoring, for now read from source 2024-06-25 15:58:27 +05:30
Manav Rathi
ce3233a01f Also do it on incorrect password entry 2024-06-25 15:58:27 +05:30
Manav Rathi
2f8abd5b7f Give it a chance to kick in 2024-06-25 15:58:27 +05:30
Manav Rathi
f5d6037e31 Use the value 2024-06-25 15:58:27 +05:30
Manav Rathi
a03c8e3a55 Sketch 2024-06-25 15:58:27 +05:30
Manav Rathi
f64b0238c9 [server] Return key attributes in the session-validity response (#2288)
Smoke tested locally. Was also more thoroughly tested as part of
https://github.com/ente-io/ente/pull/2230.
2024-06-25 15:53:59 +05:30
Manav Rathi
06e7626206 [server] Return key attributes in the session-validity response 2024-06-25 15:25:04 +05:30
Ashil
a6dae9a661 [mob][photos] Fix file bottom bar not disappearing when in fullscreen (#2286)
## Description

When viewing photos/videos and enabling fullscreen (with a tap on
scree), the bottom bar wasn't disappearing like it used to. This PR
fixes this regression.
2024-06-25 14:21:25 +05:30
Manav Rathi
3d84937d06 [web] New translations (#2277)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2024-06-25 13:17:34 +05:30
Manav Rathi
2bc8cca55f [desktop] Cache the handle to the zip files to improve metadata parsing speed (#2287)
This should _significantly_ (hours => seconds) improve the performance
of the metadata parsing step during import of large Google Takeout zips,
and bring them to par as if the user had drag-and-dropped the unzipped
folder instead.

In my monkey tests, it seems that beyond a certain zip size (few GBs),
reopening the handle to a stream zip overshadows the time taken to read
the individual JSONs. This effect seems to grow very big for big zips to
a point where the metadata parsing step takes hours.

But note that I'm only testing this on synthetic exemplars I've created.
After merging it'll also need testing on more realistic huge takeout
examples.
2024-06-25 13:17:04 +05:30
Manav Rathi
24691b8652 Seems to work without it 2024-06-25 13:10:52 +05:30
ashilkn
522d1da0e9 [mob][photos] Fix file bottom bar not disappearing when in fullscreen 2024-06-25 13:09:24 +05:30
Manav Rathi
cef1dee2a0 Rely 2024-06-25 12:57:18 +05:30
Manav Rathi
3220da556d Use 2024-06-25 12:56:49 +05:30
Neeraj Gupta
ea6e098583 [auth][windows] Update letsencrypt root cert (#2285)
## Description

## Tests
2024-06-25 12:42:10 +05:30
Neeraj Gupta
610a5d8dcb [auth] Whitelist for windows only 2024-06-25 12:41:56 +05:30
Prateek Sunal
73a53994f3 chore(mobile): add adapted from header in relevant files 2024-06-25 12:37:35 +05:30
Ashil
f67dc4893f [mob][photos] Cache results for Magic section (only visible to internal users) (#2282)
## Description

- Use cached results for magic section so that it does't anymore have to
wait for ML framework to be initialised and doesn't have to re-compute
results every time, which means faster loading of the search tab.
- For internal users, all results in
[here](https://discover.ente.io/v1.json) will show up.
- For non-internal users, once available, results will be limited to 4.
- 4 random prompts are selected from
[here](https://discover.ente.io/v1.json) with non-empty results and are
cached.
- The cache updates when the data updates
[here](https://discover.ente.io/v1.json) (checks size to compare) or in
3 days since the last update.
2024-06-25 12:33:39 +05:30
Neeraj Gupta
185bed19aa [auth] Bump version 2024-06-25 12:29:39 +05:30
Neeraj Gupta
3094d74b6a [auth] Add latest letsencrypt ca 2024-06-25 12:29:25 +05:30
Manav Rathi
5c3cfb7403 Clear 2024-06-25 12:20:59 +05:30
Manav Rathi
5d0926ebb2 Impl 2024-06-25 12:16:23 +05:30
Manav Rathi
a49c7834d8 Cache the handle to the zip files - prep 2024-06-25 12:07:14 +05:30
Neeraj Gupta
2f327b1929 [mobile] New translations (#2278)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-app)
2024-06-25 12:00:54 +05:30
Neeraj Gupta
b7892f4257 [auth] New translations (#2279)
New translations from
[Crowdin](https://crowdin.com/project/ente-authenticator-app)
2024-06-25 12:00:25 +05:30
Neeraj Gupta
f5bcdd0d9e [mob][photos] Fix build failing (#2284)
```lib/core/error-reporting/super_logging.dart:20:8: Error: Error when reading 'lib/services/machine_learning/face_ml/face_ml_exceptions.dart': No such file or directory
import "package:photos/services/machine_learning/face_ml/face_ml_exceptions.dart";
       ^
lib/core/error-reporting/super_logging.dart:239:20: Error: 'CouldNotRetrieveAnyFileData' isn't a type.
      if (error is CouldNotRetrieveAnyFileData ||
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^
Target kernel_snapshot failed: Exception


FAILURE: Build failed with an exception.
2024-06-25 11:59:43 +05:30
ashilkn
6736ad73ec [mob][photos] Fix build failing 2024-06-25 10:51:19 +05:30
ashilkn
75dcf18d75 [mob][photos] Minor UI fix 2024-06-25 10:15:16 +05:30
ashilkn
e722024f8f [mob][photos] Catch any exceptions or errors when getting results for magic section and return an empty list to avoid showing a blank search tab 2024-06-25 10:13:43 +05:30
Manav Rathi
a714c0d70b [docs] Configure custom server - web/desktop (#2281) 2024-06-25 10:02:35 +05:30
Manav Rathi
51bcf02b96 [docs] Configure custom server - web/desktop 2024-06-25 10:01:01 +05:30
ashilkn
fcb79907cf [mob][photos] Remove code that was for handling edge cases when magic section was depending on newly computed results every time instead of using cache 2024-06-25 09:51:25 +05:30
ashilkn
35b42d4743 [mob][photos] clean up 2024-06-25 09:43:50 +05:30
ashilkn
8fae7719b5 [mob][photos] Update magic cache every 3 days 2024-06-25 09:31:24 +05:30
Crowdin Bot
64aa3ac0e8 New Crowdin translations by GitHub Action 2024-06-25 02:09:30 +00:00
Crowdin Bot
c7f3390e59 New Crowdin translations by GitHub Action 2024-06-25 01:59:59 +00:00
Crowdin Bot
b9a71060ec New Crowdin translations by GitHub Action 2024-06-25 01:45:24 +00:00
Manav Rathi
d095f52051 [web] Dev settings: avoid the red error state before first submit (#2274) 2024-06-24 20:08:49 +05:30
Manav Rathi
153850742d Avoid the red error state before first submit 2024-06-24 19:59:54 +05:30
Laurens Priem
c2cdb4e38b Face cleanup (#2273)
## Description

Cleaned up a lot of old and unused code.

## Tests

Tested in debug mode on my pixel phone.
2024-06-24 18:26:00 +05:30
laurenspriem
33ab69e2d8 Merge branch 'main' into face_cleanup 2024-06-24 17:50:16 +05:30
laurenspriem
b95e93778b [mob][photos] old code 2024-06-24 17:35:41 +05:30
laurenspriem
160f279464 [mob][photos] Remove old face crop widget 2024-06-24 17:33:35 +05:30
ashilkn
69bd1c8670 Merge branch 'main' into cache_magic_section 2024-06-24 17:31:58 +05:30
ashilkn
b21fe76b3f [mob][photos] Save magic cache to local path instead of saving it in shared preferences 2024-06-24 17:30:33 +05:30
laurenspriem
6ea449bd83 [mob][photos] Move ml exceptions 2024-06-24 17:29:21 +05:30
ashilkn
b99b2d1381 [mob][photos] Remove commented out code that was used before using data from magic cache 2024-06-24 16:55:36 +05:30
ashilkn
84f2c6d102 [mob][photos] Show 4 instead of 6 magic results in magic section for non-internal users 2024-06-24 16:53:20 +05:30
ashilkn
908e37f56f [mob][photos] Update MagicCache every 3 days 2024-06-24 16:48:25 +05:30
Manav Rathi
108ff34763 [web] New translations (#2272)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2024-06-24 16:11:45 +05:30
Crowdin Bot
8ce3126c92 New Crowdin translations by GitHub Action 2024-06-24 10:38:53 +00:00
Manav Rathi
b1006e0843 [web/desktop] Allow self-hosters to set custom endpoints (#2271) 2024-06-24 16:08:05 +05:30
Manav Rathi
ca0af1f53a Also on standalone pages 2024-06-24 16:04:25 +05:30
ashilkn
9cb4420bbf [mob][photos] Show magic section in search tab from cached results 2024-06-24 15:43:56 +05:30
ashilkn
98c444fab9 [mob][photos] Make methods private 2024-06-24 15:43:16 +05:30
Manav Rathi
51c9094da4 Prevent layout shift 2024-06-24 15:39:03 +05:30
ashilkn
815a730d59 [mob][photos] Schedule update magic cache in 10 seconds if remote asset has changed 2024-06-24 15:29:56 +05:30
Manav Rathi
4651c6f6d1 Reactive 2024-06-24 15:29:06 +05:30
ashilkn
11666eeb33 [mob][photos] Write function that selected 4 prompts from list of prompts at random and returns them as MagicCache objects 2024-06-24 15:28:31 +05:30
Laurens Priem
18ec275d75 Clip fix unusable formats (#2270)
## Description

When a certain image format cannot be decoded, clip will store a local
empty result instead of infinitely retrying.
2024-06-24 15:22:08 +05:30
Manav Rathi
073c22ae47 Reuse 2024-06-24 15:11:55 +05:30
Manav Rathi
6926167f3d System props 2024-06-24 15:09:19 +05:30
Manav Rathi
899d1ff6a4 Custom component 2024-06-24 15:08:18 +05:30
laurenspriem
47128ab52d [mob][photos] Store local empty clip result on errors 2024-06-24 15:04:01 +05:30
Manav Rathi
21fa0ee7a7 On email verification page 2024-06-24 14:47:29 +05:30
Manav Rathi
04f4103314 Landing page 2024-06-24 13:46:56 +05:30
atyabbin
66b23d111d Dashboard improvement (#2264)
Added options for Delete Account and Update Subscription in the
dashboard, Clicking on Update Subscription option opens a popup window
for taking user input
2024-06-24 13:18:24 +05:30
Manav Rathi
eccde54afe Use same format in sidebar 2024-06-24 11:44:01 +05:30
Manav Rathi
2db166bcf7 Add a convenience function to avoid code duplication 2024-06-24 11:42:49 +05:30
Manav Rathi
e81e088b02 Also show in signup section 2024-06-24 11:36:33 +05:30
Manav Rathi
9e3a3d852e Show on login 2024-06-24 11:21:00 +05:30
Manav Rathi
f40c277aa8 Show in sidebar 2024-06-24 11:00:45 +05:30
laurenspriem
ef0396983b [mob][photos] Remove unused method 2024-06-24 10:59:57 +05:30
ashilkn
f5873d2ade [mob][photos] MagicCache model and MagicCacheService 2024-06-24 10:19:36 +05:30
ashilkn
adb358ba5c [mob][photos] Write function in RemoteAssetService that returns the asset when given a remote path if it's different from the existing local copy of asset. Else return null 2024-06-24 10:11:18 +05:30
Manav Rathi
ea4da2c2a4 Fin 2024-06-23 20:23:19 +05:30
Manav Rathi
72de042b53 Inline 2024-06-23 20:22:28 +05:30
Manav Rathi
57a674fd26 Skip on our own prod 2024-06-23 20:17:19 +05:30
Manav Rathi
66f9dc98ee Rearrange 2024-06-23 20:12:05 +05:30
Manav Rathi
ff714f3420 Rename 2024-06-23 20:10:06 +05:30
Manav Rathi
6b4416c3a9 l10n keys 2024-06-23 20:07:18 +05:30
Manav Rathi
704e89c903 allow empty 2024-06-23 20:01:54 +05:30
Manav Rathi
f34ecc1016 Fix imports - This + preceding commits fix SSR 2024-06-23 19:59:53 +05:30
Manav Rathi
4c1462e18a Remove unused 2024-06-23 19:52:55 +05:30
Manav Rathi
bcbf03fa51 Move 2024-06-23 19:52:01 +05:30
Manav Rathi
2436d2fcaa Move 2024-06-23 19:32:59 +05:30
Manav Rathi
6cf942ec9e Also handle arbitrary validation errors 2024-06-23 19:18:22 +05:30
Manav Rathi
fcffd688d6 Deal with worker urls 2024-06-23 19:15:07 +05:30
Manav Rathi
669ae855f1 Prevent layout shift 2024-06-23 18:54:58 +05:30
Manav Rathi
3b3c802aa4 Validate URLs 2024-06-23 18:24:11 +05:30
Manav Rathi
86538a6d23 Connect 2024-06-23 17:23:07 +05:30
Manav Rathi
815666bbe7 Assert a pong 2024-06-23 17:17:39 +05:30
Manav Rathi
5a52d79a88 Uncomplicate
There are many things the form can do better, but going against the grain of the
libraries we're using is resulting in a more broken interaction (e.g. keyboard
nav).
2024-06-23 17:03:14 +05:30
Manav Rathi
ec2d9a80fc Compare to actual state 2024-06-23 16:50:30 +05:30
Manav Rathi
65764fa982 Conditional 2024-06-23 16:07:21 +05:30
Manav Rathi
9579e30a68 Conditional 2024-06-23 15:55:32 +05:30
Manav Rathi
37b5b69955 Trailing button 2024-06-23 15:43:37 +05:30
Neeraj Gupta
ead9ed0904 [photos] Fix minor errors + remove noise from sentry (#2265)
## Description

## Tests
2024-06-23 13:14:49 +05:30
Neeraj Gupta
b2f13c4b3d [photos] Fix late init error 2024-06-23 13:12:13 +05:30
Neeraj Gupta
a3ce66b87f [photos] Bump version 2024-06-23 13:11:16 +05:30
Neeraj Gupta
f30d1fe45f [photos] Skip sending handled error to sentry 2024-06-23 13:10:49 +05:30
Neeraj Gupta
f8d1851311 [mob] Fix range error in getUploadedFiles 2024-06-23 12:24:44 +05:30
atyabbin
206e387834 Modified calender for date picking 2024-06-23 11:37:20 +05:30
atyabbin
567dfb7e6b Added options for delete account and update subscription 2024-06-23 11:13:59 +05:30
Neeraj Gupta
279bdc1e66 [cli] Add admin cmd to disable passkey (#2250)
## Description

## Tests
2024-06-23 10:38:24 +05:30
Neeraj Gupta
169e70cc0f [cli] Bump version cli-v0.1.17 2024-06-23 10:38:00 +05:30
Neeraj Gupta
f108ee2bff [FIX(auth)] also move the pacman build to artifacts (#2259)
## Description

## Tests
2024-06-23 09:51:25 +05:30
Manav Rathi
e390d73af4 [server] Reduce DB healthcheck interval in starter Docker compose template (#2263)
The museum container depends on the postgres container being up and the
DB being ready to accept connections. To enforce this dependency, we use
the healthcheck attribute.

See: https://docs.docker.com/compose/startup-order/

The value of the healthcheck interval was set to 1s since the default
(30s) caused each `docker compose up` to require at least 30 seconds on
each startup, which was prohibitive. The downside is that the
healthchecks continue to run beyond the startup phase too, and for small
VMs, this caused a lot of unnecessary CPU usage.

Thankfully, now Docker has a new option for a different healthcheck
during the start phase:

> start interval is the time between health checks during the start
period. This
  option requires Docker Engine version 25.0 or later.

They were added in Docker compose 2.20.2, released an year ago
(2023-07-19).

https://docs.docker.com/compose/release-notes/#2202
2024-06-23 09:32:30 +05:30
Manav Rathi
0f1d45587e [server] Reduce DB healthcheck interval in starter Docker compose template
The museum container depends on the postgres container being up and the DB being
ready to accept connections. To enforce this dependency, we use the healthcheck
attribute.

See: https://docs.docker.com/compose/startup-order/

The value of the healthcheck interval was set to 1s since the default (30s)
caused each `docker compose up` to require at least 30 seconds on each startup,
which was prohibitive. The downside is that the healthchecks continue to run
beyond the startup phase too, and for small VMs, this caused a lot of
unnecessary CPU usage.

Thankfully, now Docker has a new option for a different healthcheck during the
start phase:

> start interval is the time between health checks during the start period. This
  option requires Docker Engine version 25.0 or later.

They were added in Docker compose 2.20.2, released an year ago (2023-07-19).

https://docs.docker.com/compose/release-notes/#2202
2024-06-23 09:22:51 +05:30
Manav Rathi
5854a9e10a document @mui/material-icons 2024-06-23 09:08:27 +05:30
Manav Rathi
94cd1991ce autoFocus 2024-06-23 08:50:53 +05:30
Manav Rathi
46644d9d4d Save 2024-06-23 08:47:53 +05:30
Manav Rathi
93dec0a9f4 Tweaks 2024-06-23 08:47:53 +05:30
Manav Rathi
c79507a5d4 use 2024-06-23 08:47:53 +05:30
Manav Rathi
a170acb28b ut 2024-06-23 08:47:53 +05:30
Manav Rathi
7a2f08f49a ex 2024-06-23 08:47:53 +05:30
Manav Rathi
6ea003a9a1 Styling 2024-06-23 08:47:53 +05:30
Manav Rathi
c54c4022ad Errors 2024-06-23 08:47:53 +05:30
Manav Rathi
445af59829 Form 2024-06-23 08:47:53 +05:30
Manav Rathi
7f573f2181 Doc and roll 2024-06-23 08:47:53 +05:30
Manav Rathi
a9dc8da07c Update formik and move it to @/new
Read throught the release notes, saw only backwards compatible minor and patch changes.

https://github.com/jaredpalmer/formik/releases
2024-06-23 08:47:53 +05:30
Manav Rathi
c2d2612f33 Simplify 2024-06-23 08:47:53 +05:30
Manav Rathi
3aa3fbba6d Close on esc but not backdrop clicks 2024-06-23 08:47:53 +05:30
Manav Rathi
35c8970d20 Ignore button taps 2024-06-23 08:47:53 +05:30
Manav Rathi
0f076e19be Reset 2024-06-23 08:47:53 +05:30
Manav Rathi
306430d67d Sketch 2024-06-23 08:47:53 +05:30
Manav Rathi
a28c983c06 [server] Tweak verification email (#2260)
Despite all of our efforts, gmail insists on marking our verification
emails to new users as spam. We have already changed our mail delivery
providers; non-gmail users don't face this problem; and even for gmail,
(a) existing Ente users also get these mails correctly with
SPF/DKIM/DMARC PASS, and (b)non-verification emails get delivered (in
the anecdotal reports we've received).

As an attempt at some voodoo, try changing the subject and content of
the mail, to try and rule out some faulty gmail classifier that uses the
email body.

**Tested**

- [x] Locally, by changing SendTemplatedEmail to log only
2024-06-23 00:13:00 +05:30
Manav Rathi
53140de879 [server] Tweak verification email
Despite all of our efforts, gmail insists on marking our verification emails to
new users as spam. We have already changed our mail delivery providers;
non-gmail users don't face this problem; and even for gmail, (a) existing Ente
users also get these mails correctly with SPF/DKIM/DMARC PASS, and (b)
non-verification emails get delivered (in the anecdotal reports we've received).

As an attempt at some voodoo, try changing the subject and content of the mail,
to try and rule out some faulty gmail classifier that uses the email body.
2024-06-23 00:07:31 +05:30
Prateek Sunal
3c5ea83f8a fix: pacman scripts 2024-06-23 00:01:17 +05:30
Prateek Sunal
a59ca2bdf0 fix(auth): also move the pacman build to artifacts 2024-06-22 23:32:54 +05:30
Neeraj Gupta
47ad7c7827 [auth] Update logs (#2258)
## Description

## Tests
2024-06-22 23:09:51 +05:30
Prateek Sunal
516c67e6e9 [FIX(auth)] Run pacman build on beta, fix deps (#2257)
## Description

- Only Build pacman for beta releases
- Fix dependencies
- Bump version
2024-06-22 23:06:49 +05:30
Prateek Sunal
e7970df6cf chore: bump version 2024-06-22 23:00:36 +05:30
Prateek Sunal
3ac4294c2c fix(auth): only run pacman build on beta, fix deps 2024-06-22 22:59:49 +05:30
Neeraj Gupta
c8451ecc64 [auth] Update logs 2024-06-22 22:47:38 +05:30
Prateek Sunal
f5a31397f3 chore(auth): bump to v3.0.16 2024-06-22 22:41:58 +05:30
Prateek Sunal
11b443a3f9 fix(auth): bundle metainfo linux 2024-06-22 22:41:58 +05:30
Manav Rathi
c95605127d [server] Allow replication without Cloudflare worker (#2254)
## Description
I recently started self hosting an instance of Ente. All went well until
I tried to enable replication.

This PR adds an option that allows replication to be enabled without a
Cloudflare worker, useful for self hosting.

## Tests
It doesn't look like there are any automated tests that I can add to,
but let me know if I'm wrong. Otherwise, I tested this on my own
instance and it's working as expected.
2024-06-22 22:35:31 +05:30
Neeraj Gupta
7bce4e25ae Update adding-icons.md 2024-06-22 22:34:30 +05:30
Victor Benincasa
19383ad360 Warning about icon sizes and instructions on matching the icon to the issuer. 2024-06-22 22:34:30 +05:30
Prateek Sunal
0b426fc1ab [FEAT] Auth goodies for linux (#2255)
## Description

- Pacman Build for Arch linux (Alpha)
- Add metainfo for linux
- Fix RPM build
2024-06-22 22:31:03 +05:30
Kermina Awad
81b07e772d make replication.worker-url optional 2024-06-22 12:49:35 -04:00
Prateek Sunal
65770ff58b fix(auth): update script for pacman 2024-06-22 22:13:15 +05:30
Prateek Sunal
bf926fe4b6 feat(auth): add appdata for ente_auth 2024-06-22 22:13:00 +05:30
Neeraj Gupta
fccf7e3149 [cli] Update docs 2024-06-22 20:48:35 +05:30
Neeraj Gupta
4042a5876e [cli] improve log 2024-06-22 20:48:02 +05:30
Victor Benincasa
de36d1f9fb Additional optimizations in file size and icon quality. 2024-06-22 20:20:24 +05:30
Victor Benincasa
18fb24fcd2 Additional optimizations in file size and icon quality. 2024-06-22 20:19:23 +05:30
Manav Rathi
5687f75b0b [web] Fix for the staging deployment change (#2253)
Fix for https://github.com/ente-io/ente/pull/2252

> Error: An error occurred trying to start process '/usr/bin/bash' with
working
  directory '/home/runner/work/ente/ente/web'. No such file or directory
2024-06-22 18:58:39 +05:30
Manav Rathi
be82595e82 [web] Fix for the staging deployment change
Fix for https://github.com/ente-io/ente/pull/2252

> Error: An error occurred trying to start process '/usr/bin/bash' with working
  directory '/home/runner/work/ente/ente/web'. No such file or directory
2024-06-22 18:57:18 +05:30
Manav Rathi
d200bce7ea [web] Deploy to staging from staging/web branch if it exists (#2252)
This allows us to temporarily deploy arbitrary branches to staging by
pushing to a staging/web branch. Removing that branch reverts to the
existing and default behaviour of deploying main.

Untested (need to deploy and trigger)

Refs:

-
942f6a9fe9
-
https://docs.github.com/en/actions/learn-github-actions/contexts#steps-context
-
https://stackoverflow.com/questions/57819539/github-actions-how-to-share-a-calculated-value-between-job-steps
2024-06-22 18:49:01 +05:30
Manav Rathi
05e490aa91 [web] Build the staging/web branch when deploying if it exists
This allows us to temporarily deploy arbitrary branches to staging by pushing to
a staging/web branch. Removing that branch reverts to the existing and default
behaviour of deploying main.

Untested (need to deploy and trigger)

Refs:

- 942f6a9fe9
- https://docs.github.com/en/actions/learn-github-actions/contexts#steps-context
- https://stackoverflow.com/questions/57819539/github-actions-how-to-share-a-calculated-value-between-job-steps
2024-06-22 18:47:53 +05:30
laurenspriem
716f5f1be2 [mob][photos] Cleanup face DB 2024-06-22 18:38:10 +05:30
laurenspriem
a0d8dd9b9e [mob][photos] Cleanup face models 2024-06-22 18:30:55 +05:30
laurenspriem
897245d6c1 [mob][photos] Cleanup alignment 2024-06-22 18:23:53 +05:30
laurenspriem
99e4d098e3 [mob][photos] Cleanup detection 2024-06-22 18:20:53 +05:30
laurenspriem
b276344f1e [mob][photos] Cleanup face result 2024-06-22 18:17:38 +05:30
Neeraj Gupta
e77ebef801 [cli] Add admin cmd to disable passkey 2024-06-22 17:54:06 +05:30
Neeraj Gupta
32757c3fb6 [auth] Lint fix (#2248)
## Description

## Tests
2024-06-22 16:56:02 +05:30
Neeraj Gupta
411e444295 [auth] Lint fix 2024-06-22 16:54:58 +05:30
Neeraj Gupta
abca5bc798 [auth] Potential fix for invalid handshake error on Windows (#2247)
## Description

## Tests
2024-06-22 16:49:55 +05:30
Neeraj Gupta
8841dd44c4 Additional optimizations in file size and icon quality. (#2244) 2024-06-22 16:49:10 +05:30
Neeraj Gupta
316a5e7209 [auth] Bump version 2024-06-22 16:48:16 +05:30
Neeraj Gupta
2e53dcca00 Add logs 2024-06-22 16:47:53 +05:30
laurenspriem
87e2a32d49 [mob][photos] Remove old mlVersions 2024-06-22 13:54:42 +05:30
laurenspriem
af11ff21f4 [mob][photos] Cleanup exceptions 2024-06-22 13:02:23 +05:30
laurenspriem
aab7e39ab3 [mob][photos] Cleanup feedback 2024-06-22 12:53:35 +05:30
Manav Rathi
595d6f894e [accounts] Make it easier for self hosters to use passkeys (#2246)
Solves a problem someone was facing on our Discord:

https://discord.com/channels/948937918347608085/1215252276911018014/1253766354402545754
2024-06-22 11:38:23 +05:30
Manav Rathi
02a4e2b1ca [accounts] Make it easier for self hosters to use passkeys
Solves a problem someone was facing on our Discord:
https://discord.com/channels/948937918347608085/1215252276911018014/1253766354402545754
2024-06-22 11:30:20 +05:30
laurenspriem
7c535adff1 [mob][photos] Make blur detection static method 2024-06-22 00:36:07 +05:30
laurenspriem
c8effce8fc [mob][photos] More cleanup 2024-06-22 00:33:26 +05:30
laurenspriem
2855181de9 [mob][photos] Cleanup face embedding service 2024-06-22 00:31:56 +05:30
laurenspriem
25515c4403 [mob][photos] Cleanup detections 2024-06-22 00:27:38 +05:30
Victor Benincasa
e7b15b67d8 Additional optimizations in file size and icon quality. 2024-06-21 14:50:07 -03:00
Aman Raj Singh Mourya
3fe0faff6a [mob][photos] Implement hashing and salting for storing custom PIN/password in secure storage 2024-06-21 18:03:39 +05:30
Neeraj Gupta
30dd41e3ca Bump version (#2239)
## Description

## Tests
2024-06-21 14:18:52 +05:30
Neeraj Gupta
f8f43b8ab7 Bump version 2024-06-21 14:18:20 +05:30
Neeraj Gupta
662210b168 [auth] Potential fix for invalid handshake error 2024-06-21 13:35:50 +05:30
Neeraj Gupta
2f60894e59 [auth] Show contact support option on error (#2238)
## Description

## Tests
2024-06-21 12:18:52 +05:30
Neeraj Gupta
da9262da79 [auth] Bump version v3.0.14 2024-06-21 12:10:35 +05:30
Neeraj Gupta
29539d9db2 [auth] Show contact support button on error dialogs 2024-06-21 12:08:26 +05:30
Manav Rathi
c4df9c7bd4 [workers] Use yarn workspaces (#2237)
The duplicate disk usage of individual node_modules is starting to get
prohibitive.
2024-06-21 11:35:36 +05:30
Manav Rathi
37296806d6 Format 2024-06-21 11:35:24 +05:30
Manav Rathi
14e0afd867 [workers] Use yarn workspaces
The duplicate disk usage of individual node_modules is starting to get
prohibitive.
2024-06-21 11:33:38 +05:30
Laurens Priem
08ceb0d5f2 Upgrade onnx dependency (#2231)
## Description

## Tests
2024-06-21 11:09:03 +05:30
Neeraj Gupta
1e83ef0c06 Add contact support button 2024-06-21 09:09:47 +05:30
Neeraj Gupta
47eef986d7 [auth] Add new and updates custom icons in auth (#2157)
**New icons added:**

- NuCommunity
- CloudAMQP

**Updated icons:**

- Twitch
- Samsung
- Render
- Registro.br
2024-06-21 08:53:31 +05:30
Neeraj Gupta
378618ac1f Maximize icon compatibility (#2226) 2024-06-21 08:50:01 +05:30
Neeraj Gupta
01c1ae3b97 Reduce filesize (#2227) 2024-06-21 08:49:39 +05:30
Neeraj Gupta
ebd35c62ec Optimize and reduce filesize (#2228) 2024-06-21 08:49:26 +05:30
Neeraj Gupta
34753b5786 Optimize and reduce filesize (#2229) 2024-06-21 08:49:02 +05:30
Neeraj Gupta
56b62d8b1b Fix keyboard pop up when autofocus is turned on (#2232)
## Description

Keyboard didn't pop up when search-field was focused on startup. For
more information see this issue:
https://github.com/ente-io/ente/issues/279

## Tests

Created an build for my Android phone.
Outcome was as expected 
"Focus search on app start"  enabled did popped the keyboard out.
"Focus search on app start" disabled did NOT popped the keyboard out and
also didn't focused the search-textfield.


This is my first pull request to any open source project. So feel free
to give some feedback!
2024-06-21 08:47:41 +05:30
Manav Rathi
705dd1bee9 [desktop] Modify the upload workaround to not get in the way of Stripe payments (#2235) 2024-06-20 23:12:31 +05:30
Manav Rathi
921ddac630 [desktop] Modify the upload workaround to not get in the way of Stripe payments 2024-06-20 23:01:06 +05:30
Manav Rathi
c8158737f6 [desktop] Add a memory usage high water mark during uploads (#2233)
Tested on macOS with large videos, but I was unable to hit the scenario
described. Will request a user who reported this issue on their Linux
machine to try out a nightly build with this change and see if it helps.
2024-06-20 21:34:10 +05:30
Manav Rathi
398ce9d445 [desktop] Add a memory usage high water mark during uploads 2024-06-20 21:30:55 +05:30
Neeraj Gupta
933ab3ac2c Upgrade onnx dependency 2024-06-20 15:48:43 +05:30
Aman Raj Singh Mourya
fc7e7f4c88 [mob][photos] resolved PR comments 2024-06-20 12:57:14 +05:30
Victor Benincasa
b798dacaf2 Optimize and reduce filesize 2024-06-20 02:56:30 -03:00
Victor Benincasa
c3e94a405f Optimize and reduce filesize 2024-06-20 02:38:31 -03:00
Victor Benincasa
22e09de07a Reduce filesize 2024-06-20 02:34:12 -03:00
Victor Benincasa
492d4f0fd7 Maximize icon compatibility 2024-06-20 02:13:38 -03:00
Fokke de Boer
b9556a91a0 Fix keyboard pop up when autofocus is turned on 2024-06-20 00:45:59 +02:00
Aman Raj Singh Mourya
39d232a937 [mob][photos] landscape mode keyboard configured 2024-06-19 18:26:36 +05:30
laurenspriem
950d6a9622 [mob][photos] Rename 2024-06-19 18:11:01 +05:30
laurenspriem
e2da01dd5b [mob][photos] Simplify SimilarityTransform 2024-06-19 18:06:24 +05:30
laurenspriem
6954c960d8 [mob][photos] Remove redundant clustering code 2024-06-19 17:46:25 +05:30
laurenspriem
0c790e64f8 [mob][photos] Rename arcface 2024-06-19 17:43:22 +05:30
Neeraj Gupta
477bc4ca92 [mob] Reduce error severity (#2224)
## Description

## Tests
2024-06-19 17:22:11 +05:30
Neeraj Gupta
9bf8e16978 [mob] Undo redundant changes 2024-06-19 17:10:40 +05:30
Neeraj Gupta
deace2bccd Skip reporting dio error to sentry 2024-06-19 16:28:38 +05:30
Ashil
f78e01ecd5 [mob][photos] Select all from gallery (only available to internal users) (#2217)
## Description

- This feature is behind feature flag, only available to internal users.
- Needs testing and some UI tweaks.


https://github.com/ente-io/ente/assets/77285023/19938641-e8b3-4473-bb23-909f57db6994
2024-06-19 16:23:53 +05:30
Neeraj Gupta
1a9e1d7d77 Reduce error noise 2024-06-19 16:20:37 +05:30
Laurens Priem
1481c16b31 Remove feedback (#2223)
## Description

This fixes a bug where user feedback to remove a file from a certain
person would immediately be overwritten by remote sync.

## Tests

Tested in debug mode on my pixel phone.
2024-06-19 16:19:21 +05:30
laurenspriem
15baf7d0fb [mob][photos] Update remote on remove feedback 2024-06-19 16:15:41 +05:30
Neeraj Gupta
15f4e5cae8 Reduce error noise 2024-06-19 16:14:55 +05:30
Neeraj Gupta
3321d58455 reduce error noise 2024-06-19 16:05:04 +05:30
laurenspriem
38e1208591 [mob][photos] Logging 2024-06-19 14:48:13 +05:30
laurenspriem
0588c32b52 [mob][photos] Don't let syncing trigger another sync 2024-06-19 14:47:40 +05:30
Neeraj Gupta
feaf8e3a8d [auth] Sync on app resume (#2221)
## Description

## Tests
Tested locally
2024-06-19 14:27:45 +05:30
Neeraj Gupta
72584e49d6 [auth] Clean up log 2024-06-19 14:26:43 +05:30
Neeraj Gupta
21f269c999 [auth] Bump version v3.0.13 2024-06-19 14:25:37 +05:30
Neeraj Gupta
0e92a56378 [auth] Update packages 2024-06-19 14:22:00 +05:30
Neeraj Gupta
e560eaeb41 [auth] Handle duplicate signout dialog 2024-06-19 14:21:48 +05:30
Neeraj Gupta
753801c401 [auth] Sync frequently to identify logout early 2024-06-19 14:21:34 +05:30
Manav Rathi
057ea875c9 [web] Better tsc/lint in more places (#2220)
\+ misc
2024-06-19 14:11:14 +05:30
laurenspriem
dfcd254668 [mob][photos] Don't falsely fire PeopleChangedEvent 2024-06-19 14:10:04 +05:30
laurenspriem
541ed4fdba [mob][photos] Logging 2024-06-19 14:07:20 +05:30
Manav Rathi
278e40639f Another temp fix 2024-06-19 14:05:56 +05:30
Manav Rathi
93d1813f97 Help not hinder 2024-06-19 13:57:41 +05:30
laurenspriem
8c0d21ea25 [mob][photos] More logging 2024-06-19 13:56:37 +05:30
Neeraj Gupta
ae93fbf45e [auth] Handle already logged out error 2024-06-19 13:53:25 +05:30
laurenspriem
53cb013576 [mob][photos] Better logging 2024-06-19 13:50:12 +05:30
Manav Rathi
a4ff0f0fd8 Disable 2024-06-19 13:43:15 +05:30
Manav Rathi
cd56583a56 Fix 2024-06-19 13:42:27 +05:30
Manav Rathi
42ac43ed90 Disable 2024-06-19 13:41:22 +05:30
Manav Rathi
face4bb55b Fix lints 2024-06-19 13:39:54 +05:30
Manav Rathi
c6110087d9 Fix lints 2024-06-19 13:34:58 +05:30
Manav Rathi
b89968ca47 Fix lints 2024-06-19 13:32:41 +05:30
Manav Rathi
f9588cf1c8 Allow referrer
https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-no-target-blank.md
2024-06-19 13:31:32 +05:30
Manav Rathi
04fd2f8007 Fix lints 2024-06-19 13:30:18 +05:30
Manav Rathi
b52192df6a Update 2024-06-19 13:25:10 +05:30
Manav Rathi
95cf85e573 Workers are in 2024-06-19 13:23:41 +05:30
Manav Rathi
6ed2ad0d28 [accounts] Handle long passkey names (#2219)
/cc @ua741
2024-06-19 13:08:42 +05:30
ashilkn
5d61750508 [mob][photos] Remove comments, clean up, use better variable name, add comments 2024-06-19 12:56:00 +05:30
Manav Rathi
22cf4eb1fb [accounts] Handle long passkey names 2024-06-19 12:52:58 +05:30
Neeraj Gupta
431ad66723 Dashboard improvement (#2207)
After clicking the FETCH button, if the data is fetched successfully
then a new button labelled as 'MORE' appears, clicking on this opens a
dropdown menu which has 3 options: Disable2fa, Disable Passkeys and
Close Family, clicking on any of the option directly performs the action
required.
2024-06-19 12:39:08 +05:30
ashilkn
6dfac5643a Merge branch 'main' into select_all 2024-06-19 12:29:42 +05:30
ashilkn
46b9aa259c [mob][photos] Keep select all feature behind feature flag 2024-06-19 12:28:47 +05:30
ashilkn
d7a1bf3fcc [mob][photos] Add select all feature to galleries (3) 2024-06-19 12:21:52 +05:30
atyabbin
b7d3e5439a Pressing enter key will call fetchdata 2024-06-19 12:09:55 +05:30
Manav Rathi
cca1b1971f [infra] Import Sentry configuration into monorepo (#2216) 2024-06-19 12:01:54 +05:30
Manav Rathi
e6a47b29bb [infra] Import Sentry configuration into monorepo 2024-06-19 10:54:04 +05:30
Neeraj Gupta
a10562018c [server] Improve passkey error handling (#2211)
## Description

## Tests
Tested locally
2024-06-19 10:12:20 +05:30
Neeraj Gupta
2a905a439c [server] Inc passkey name limit to 256 2024-06-19 10:11:10 +05:30
atyabbin
ef37a4cad8 Reverting the changes in local.yaml 2024-06-19 09:56:59 +05:30
Neeraj Gupta
2fcbebd375 [mob] Log suggestion errors (#2212)
## Description

## Tests
2024-06-18 23:36:15 +05:30
Neeraj Gupta
c50366ce3b Log suggestion errors 2024-06-18 23:33:36 +05:30
Neeraj Gupta
70a33ca0b8 [mob] Extract string 2024-06-18 23:30:26 +05:30
Neeraj Gupta
b89378e838 Return bad request if name validation fails 2024-06-18 22:54:42 +05:30
Manav Rathi
00f59dc842 [web] New translations (#2210)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2024-06-18 20:20:12 +05:30
Crowdin Bot
64470e156a New Crowdin translations by GitHub Action 2024-06-18 14:49:00 +00:00
Manav Rathi
5fbca87998 [meta] Split translation related workflows (#2209)
1. Sources uploaded anytime the {mobile,auth}/lib/l10n/arb/app_en.arb
changes in main.
2. Tuesday morning: Download translations from crowdin.

Step 2 can be done manually by running the workflows, e.g.

    gh workflow run auth-crowdin-push.yml
    gh workflow run mobile-crowdin-push.yml
2024-06-18 20:18:23 +05:30
Manav Rathi
ce989b786f [meta] Split translation related workflows
1. Sources uploaded anytime the {mobile,auth}/lib/l10n/arb/app_en.arb changes in main.
2. Tuesday morning: Download translations from crowdin.

Step 2 can be done manually by running the workflows, e.g.

    gh workflow run auth-crowdin-push.yml
    gh workflow run mobile-crowdin-push.yml
2024-06-18 20:15:00 +05:30
atyabbin
480a86af0a Changed the label of the new Button from 'More' to 'MORE' 2024-06-18 19:00:32 +05:30
Aman Raj Singh Mourya
1d9f4e27c7 [mob][photos] changes to the Pinput container 2024-06-18 18:59:01 +05:30
Laurens Priem
8a9d196282 [Mob][Photos] Show video duration only on Gallery (#2205)
## Description

- Show video duration overlay only on galleries
- In all other places, show a centred play button -- showing the overlay
on some places wasn't looking good, like memories, when opening a video
etc. So have replaced the overlay with a play button, just like before.
- Pass optional parameter to get Thumbnail without any icons stacked
over it.
2024-06-18 18:43:28 +05:30
atyabbin
a5b0bc259d Added a dropdown button to select different actions to be performed 2024-06-18 18:40:40 +05:30
laurenspriem
848f3a0f6b [mob][photos] Cleanup image utils 2024-06-18 18:17:40 +05:30
Neeraj Gupta
0ee2da9028 [server] Return bad req if passkey is deleted 2024-06-18 18:01:44 +05:30
laurenspriem
7edfc15b67 [mob][photos] Cleanup ImageMlIsolate 2024-06-18 17:56:20 +05:30
laurenspriem
e3e6e8e244 [mob][photos] Cleanup FaceEmbeddingService 2024-06-18 17:35:38 +05:30
laurenspriem
089d1a2389 [mob][photos] Cleanup face detection service 2024-06-18 17:11:08 +05:30
ashilkn
a099869ecc [mob][photos] Add an new instance varialbe in ThumbnailWidget which can be optionally passed as true to get the thumbnail without any overlay icons 2024-06-18 17:10:22 +05:30
ashilkn
d282ef2eae [mob][photos] Show video duration only on GalleryFileWidget and show a centered play icon otherwise 2024-06-18 17:06:55 +05:30
Neeraj Gupta
bcca58d5c0 [auth] New translations (#2185)
New translations from
[Crowdin](https://crowdin.com/project/ente-authenticator-app)
2024-06-18 16:49:52 +05:30
Neeraj Gupta
ff0fa9a69f Date picker transaltion (#2203)
## Description
Fixes https://github.com/ente-io/ente/issues/2155

## Tests
Tested locally
2024-06-18 15:48:10 +05:30
Neeraj Gupta
852e3a59a3 [mob] Show am/pm picker for selected locale 2024-06-18 15:45:29 +05:30
Manav Rathi
5bad7dcb7a [web] Remove retries and other knick-knacks off the HEIC conversion (#2202) 2024-06-18 15:45:24 +05:30
Neeraj Gupta
23f6da17c4 [mob] Pass correct locale for datepicker 2024-06-18 15:41:14 +05:30
Manav Rathi
b22af43e8a Reuse 2024-06-18 15:39:11 +05:30
Manav Rathi
36e3907dfc [web] Remove retries and other knick-knacks off the HEIC conversion
- Have kept the GC pause
- If needed, will selectively bring back the other workarounds still demonstrably needed
2024-06-18 15:26:56 +05:30
Neeraj Gupta
38ee01017a [mob][fix] Hide archived items from memories (#2201)
## Description

## Tests
Tested locally and verified the archived items are now hidden from
memories.
2024-06-18 15:25:27 +05:30
Neeraj Gupta
ec81300971 [mob][fix] Hide archived items from memories 2024-06-18 15:23:28 +05:30
Crowdin Bot
bd239241d7 New Crowdin translations by GitHub Action 2024-06-18 09:27:36 +00:00
Manav Rathi
9951e8def4 [meta] Update to v2 of Crowdin action (#2200)
https://github.com/crowdin/github-action/releases/tag/v2.0.0
2024-06-18 14:57:04 +05:30
Manav Rathi
76993961f0 [meta] Update to v2 of Crowdin action
https://github.com/crowdin/github-action/releases/tag/v2.0.0
2024-06-18 14:56:29 +05:30
Manav Rathi
29805bdf4d [meta] Change translation sync freq to weekly (#2198) 2024-06-18 14:52:44 +05:30
Manav Rathi
7fb2956a2e [meta] Change translation sync freq to weekly 2024-06-18 14:51:54 +05:30
Manav Rathi
ec82518639 [web] New translations (#2197)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-web)
2024-06-18 14:51:17 +05:30
Crowdin Bot
b4cd1c715f New Crowdin translations by GitHub Action 2024-06-18 09:17:16 +00:00
Manav Rathi
9603c284dc [web] Sync delete message with mobile (#2196) 2024-06-18 14:46:32 +05:30
Neeraj Gupta
a638f9b4a1 [mobile] New translations (#2184)
New translations from
[Crowdin](https://crowdin.com/project/ente-photos-app)
2024-06-18 14:39:55 +05:30
Manav Rathi
606b0c35bb context != nested 2024-06-18 14:30:00 +05:30
atyabbin
326e673d12 Added display message after button clicks 2024-06-18 14:25:37 +05:30
Manav Rathi
804fc71538 Context 2024-06-18 14:10:39 +05:30
Manav Rathi
eebfb27e5e Use same message as mobile 2024-06-18 14:09:33 +05:30
Manav Rathi
d18e257788 Key 2024-06-18 14:05:04 +05:30
Manav Rathi
adec30a01e Key 2024-06-18 14:03:06 +05:30
Manav Rathi
1aa3e9ac56 Key 2024-06-18 13:42:48 +05:30
Manav Rathi
ad406a0f0b Rearrange 2024-06-18 13:40:24 +05:30
Aman Raj Singh Mourya
aeb3e2be24 [mob][photos] implemeted custom keyboard 2024-06-18 13:37:32 +05:30
Manav Rathi
6d6eae4c11 Keys 2024-06-18 13:31:51 +05:30
Manav Rathi
772e3f2ebd Keys 2024-06-18 13:30:04 +05:30
atyabbin
00b68131a8 Solved the lint issues 2024-06-18 13:21:37 +05:30
atyabbin
de8d81300f Modified the Sidebar Component 2024-06-18 13:10:19 +05:30
atyabbin
e287e80257 Added new buttons in the dashboard 2024-06-18 09:56:00 +05:30
atyabbin
d716f18c2e Added buttons for disable2fa, close family and disable passkeys 2024-06-18 09:38:36 +05:30
Crowdin Bot
396651b2b5 New Crowdin translations by GitHub Action 2024-06-18 01:59:37 +00:00
Prateek Sunal
077d509c23 feat(workflow/auth): update source of flutter_distributor 2024-06-18 00:58:58 +05:30
Prateek Sunal
062b3f7176 feat(auth/linux): add pacman build 2024-06-18 00:58:42 +05:30
ialexanderbrito
a2a295308d Merge branch 'main' into update-icons 2024-06-17 15:31:52 -03:00
ashilkn
ffcda13a4e [mob][photos] Add select all feature to galleries (2) 2024-06-17 08:51:18 +05:30
ashilkn
9f4ce085c1 [mob][photos] Add select all feature to galleries (1) 2024-06-17 08:43:07 +05:30
ashilkn
ff1e84d0d8 [mob][photos] Avoid using .of(context) in initState to stop exceptions from being thrown 2024-06-17 08:41:12 +05:30
ashilkn
4f18fff36b [mob][photos] Assert or log depending on the context if inherited widget holding selection state is used in a wrong way 2024-06-17 08:16:31 +05:30
ialexanderbrito
e1f7b04aa0 fix: old icons import 2024-06-16 00:46:17 -03:00
ialexanderbrito
533c0230e4 feat: add and update icons 2024-06-16 00:33:48 -03:00
ashilkn
1e8f739ef2 Merge branch 'main' into select_all 2024-06-15 15:38:04 +05:30
ashilkn
befcb72b04 [mob][photos] Make Select all's UI better 2024-06-15 15:36:50 +05:30
Aman Raj Singh Mourya
89e7cfb357 [mob][photos] Add Animation to the lock icon & errorBorder on wrong password 2024-06-15 15:17:28 +05:30
ashilkn
f001812a1d [mob][photos] Assert that SelectionState inherited widget is in context or not 2024-06-15 12:23:45 +05:30
ashilkn
1b993a617a [mob][photos] Update select all button's state checking if all are selected or not on each select/unselect operation 2024-06-15 12:21:58 +05:30
ashilkn
f04e54f68b [mob][photos] Select all MVP 2024-06-14 22:30:02 +05:30
Ashil
4e7b575c18 Error state for text input widget (#2139)
## Description

Surface error state in `TextInputWidget` if password entered is
incorrect.
2024-06-14 15:33:59 +05:30
ashilkn
c6d9b7d875 [mob][photos] Log from TextInputWidge when password is wrong 2024-06-14 15:31:05 +05:30
ashilkn
b63bd89512 [mob][photos] Show password wrong state in TextInputField 2024-06-14 15:28:53 +05:30
ashilkn
da59a29ea2 Merge branch 'main' into lockscreen_options 2024-06-14 13:58:37 +05:30
Aman Raj Singh Mourya
a135f46775 [mob][photos] Added Haptic feedback to pin/password input 2024-06-14 11:48:15 +05:30
Aman Raj Singh Mourya
b20e8a5d17 [mob][photos] upgraded Pinput pakage and Added custom password input widget 2024-06-13 01:21:06 +05:30
Aman Raj Singh Mourya
11da0704c6 [mob][photos] show lock when app starts & authenticate to change lock settings 2024-06-11 18:17:25 +05:30
atyabbin
93bddbe6f1 Merge branch 'main' into dashboard-improvement 2024-06-10 19:41:29 +05:30
atyabbin
17e48ed83f Added new components 2024-06-10 19:29:28 +05:30
atyabbin
4c7583240f Sidebar added 2024-06-10 19:24:32 +05:30
Aman Raj Singh Mourya
d3c7ba6874 [mob][photos] added the dynamicFAV and made seprate function for each type of lock 2024-06-10 18:06:24 +05:30
Aman Raj Singh Mourya
d94fe56318 [mob][photos] update the UI acc. to the new figma design 2024-06-10 15:19:09 +05:30
Aman Raj Singh Mourya
53b1dc9b67 [mob][photos] function of the lockscreen completed 2024-06-09 00:41:32 +05:30
Aman Raj Singh Mourya
d2b6ca53f8 Merge branch 'main' of https://github.com/ente-io/ente into lockscreen_options 2024-06-08 13:14:27 +05:30
Prateek Sunal
d694f2796b chore(mobile): move models to ffmpeg folder 2024-06-08 01:48:36 +05:30
Prateek Sunal
5dd42b5a07 chore(mobile): import dart typed_dart instead of flutter foundation 2024-06-08 01:46:03 +05:30
Prateek Sunal
cd8709be9d chore(mobile): import dart async for StreamSubscription 2024-06-08 01:45:04 +05:30
Prateek Sunal
4a9c09e896 fix(mobile): revert intl_en.arb change (again) 2024-06-08 01:44:06 +05:30
Prateek Sunal
6de7b840ae fix(mobile): revert intl_en.arb change (again) 2024-06-08 01:43:43 +05:30
Prateek Sunal
f34d2afced fix(mobile): revert intl_en.arb change 2024-06-08 01:42:54 +05:30
Prateek Sunal
d41a8d7a11 fix(mobile): revert intl_en.arb change 2024-06-08 01:42:13 +05:30
Prateek Sunal
ed9cb9668c Merge branch 'mobile-videoeditor' into mobile-ffprobe 2024-06-08 01:23:05 +05:30
Prateek Sunal
f8fa6adad8 Merge branch 'mobile-videoeditor' into mobile-ffprobe 2024-06-08 01:19:02 +05:30
Prateek Sunal
c1acc3eca1 fix(mobile): add ffprobe parser 2024-06-08 01:14:54 +05:30
Aman Raj Singh Mourya
1cd0440453 [mob][photos] added logic of Pin and Password screen 2024-06-07 01:57:59 +05:30
Aman Raj Singh Mourya
356d119fb9 [mob][photos] password screen added 2024-06-06 00:37:19 +05:30
Aman Raj Singh Mourya
5b89ef972f lock option screen added 2024-06-05 02:27:55 +05:30
1029 changed files with 62080 additions and 25337 deletions

31
.github/workflows/auth-crowdin-push.yml vendored Normal file
View File

@@ -0,0 +1,31 @@
name: "Push sources to Crowdin (auth)"
on:
push:
branches: [main]
paths:
# Run workflow when auth's intl_en.arb is changed
- "auth/lib/l10n/arb/app_en.arb"
# Or the workflow itself is changed
- ".github/workflows/auth-crowdin.yml"
jobs:
push-sources-to-crowdin:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Crowdin's action
uses: crowdin/github-action@v2
with:
base_path: "auth/"
config: "auth/crowdin.yml"
upload_sources: true
upload_translations: false
download_translations: false
project_id: 575169
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_PERSONAL_TOKEN }}

View File

@@ -1,17 +1,11 @@
name: "Sync Crowdin translations (auth)"
on:
push:
branches: [main]
paths:
# Run workflow when auth's intl_en.arb is changed
- "mobile/lib/l10n/arb/app_en.arb"
# Or the workflow itself is changed
- ".github/workflows/auth-crowdin.yml"
schedule:
# Run Mondays at ~6:30 AM IST
# See: [Note: Run workflow on specific days of the week]
- cron: "50 1 * * 2,5"
# Also allow manually running the workflow
- cron: "50 0 * * 1"
# Also allow manually running the workflow.
workflow_dispatch:
jobs:
@@ -23,7 +17,7 @@ jobs:
uses: actions/checkout@v4
- name: Crowdin's action
uses: crowdin/github-action@v1
uses: crowdin/github-action@v2
with:
base_path: "auth/"
config: "auth/crowdin.yml"

View File

@@ -145,7 +145,7 @@ jobs:
- name: Install dependencies for desktop build
run: |
sudo apt-get update -y
sudo apt-get install -y libsecret-1-dev libsodium-dev libwebkit2gtk-4.0-dev libfuse2 ninja-build libgtk-3-dev dpkg-dev pkg-config rpm patchelf libsqlite3-dev locate libayatana-appindicator3-dev libffi-dev libtiff5
sudo apt-get install -y libsecret-1-dev libsodium-dev libwebkit2gtk-4.0-dev libfuse2 ninja-build libgtk-3-dev dpkg-dev pkg-config rpm patchelf libsqlite3-dev locate libayatana-appindicator3-dev libffi-dev libtiff5 xz-utils libarchive-tools
sudo updatedb --localpaths='/usr/lib/x86_64-linux-gnu'
- name: Install appimagetool
@@ -157,10 +157,16 @@ jobs:
- name: Build desktop app
run: |
flutter config --enable-linux-desktop
dart pub global activate flutter_distributor
# dart pub global activate flutter_distributor
dart pub global activate --source git https://github.com/prateekmedia/flutter_distributor --git-ref pacman --git-path packages/flutter_distributor
# Run below command if it is a beta or nightly
if [[ ${{ github.ref }} =~ beta|nightly ]]; then
flutter_distributor package --platform=linux --targets=pacman --skip-clean
mv dist/**/*-*-linux.pacman artifacts/ente-${{ github.ref_name }}-x86_64.pacman
fi
flutter_distributor package --platform=linux --targets=rpm --skip-clean
flutter_distributor package --platform=linux --targets=appimage --skip-clean
mv dist/**/*-*-linux.rpm artifacts/ente-${{ github.ref_name }}-x86_64.rpm
flutter_distributor package --platform=linux --targets=appimage --skip-clean
mv dist/**/*-*-linux.AppImage artifacts/ente-${{ github.ref_name }}-x86_64.AppImage
- name: Generate checksums

View File

@@ -0,0 +1,31 @@
name: "Push sources to Crowdin (mobile)"
on:
push:
branches: [main]
paths:
# Run workflow when mobiles's intl_en.arb is changed
- "mobile/lib/l10n/intl_en.arb"
# Or the workflow itself is changed
- ".github/workflows/mobile-crowdin.yml"
jobs:
push-sources-to-crowdin:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Crowdin's action
uses: crowdin/github-action@v2
with:
base_path: "mobile/"
config: "mobile/crowdin.yml"
upload_sources: true
upload_translations: false
download_translations: false
project_id: 574741
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_PERSONAL_TOKEN }}

View File

@@ -1,17 +1,11 @@
name: "Sync Crowdin translations (mobile)"
on:
push:
branches: [main]
paths:
# Run workflow when mobiles's intl_en.arb is changed
- "mobile/lib/l10n/intl_en.arb"
# Or the workflow itself is changed
- ".github/workflows/mobile-crowdin.yml"
schedule:
# Run Mondays at ~6:30 AM IST
# See: [Note: Run workflow on specific days of the week]
- cron: "40 1 * * 2,5"
# Also allow manually running the workflow
- cron: "40 0 * * 1"
# Also allow manually running the workflow.
workflow_dispatch:
jobs:
@@ -23,7 +17,7 @@ jobs:
uses: actions/checkout@v4
- name: Crowdin's action
uses: crowdin/github-action@v1
uses: crowdin/github-action@v2
with:
base_path: "mobile/"
config: "mobile/crowdin.yml"

View File

@@ -21,7 +21,8 @@ jobs:
- name: Setup go
uses: actions/setup-go@v5
with:
go-version-file: "server/go.mod"
go-version-file: server/go.mod
cache-dependency-path: server/go.sum
cache: true
- name: Install dependencies

View File

@@ -1,6 +1,6 @@
name: "Push Crowdin translations (web)"
# This is a variant of web-crowdin.yml that uploads the translated strings in
# This is a variant of web-crowdin-sync.yml that uploads the translated strings in
# addition to the source strings.
#
# This allows us to change the strings in our source code for an automated
@@ -9,11 +9,11 @@ name: "Push Crowdin translations (web)"
on:
# Trigger manually, or using
# `gh workflow run web-crowdin-push.yml --ref <my-branch>`
# `gh workflow run web-crowdin-push-both.yml --ref <my-branch>`
workflow_dispatch:
jobs:
push-to-crowdin:
push-both-to-crowdin:
runs-on: ubuntu-latest
steps:
@@ -21,7 +21,7 @@ jobs:
uses: actions/checkout@v4
- name: Crowdin push
uses: crowdin/github-action@v1
uses: crowdin/github-action@v2
with:
base_path: "web/"
config: "web/crowdin.yml"

View File

@@ -5,10 +5,12 @@ on:
branches: [main]
paths:
# Run workflow when web's en-US/translation.json is changed
- "web/packages/next/locales/en-US/translation.json"
- "web/packages/base/locales/en-US/translation.json"
# Or the workflow itself is changed
- ".github/workflows/web-crowdin.yml"
schedule:
# Run Mondays at ~6:00 AM IST
#
# [Note: Run workflow on specific days of the week]
#
# The last (5th) component of the cron syntax denotes the day of the
@@ -16,8 +18,8 @@ on:
# and FRI, this can be set to `2,5`.
#
# See also: [Note: Run workflow every 24 hours]
- cron: "20 1 * * 2,5"
# Also allow manually running the workflow
- cron: "20 0 * * 1"
# Also allow manually running the workflow.
workflow_dispatch:
jobs:
@@ -29,7 +31,7 @@ jobs:
uses: actions/checkout@v4
- name: Crowdin's action
uses: crowdin/github-action@v1
uses: crowdin/github-action@v2
with:
base_path: "web/"
config: "web/crowdin.yml"

View File

@@ -1,5 +1,7 @@
name: "Deploy staging (web)"
# Builds the "staging/web" branch if it exists, "main" otherwise.
on:
schedule:
# Run everyday at ~3:00 PM IST
@@ -18,9 +20,20 @@ jobs:
working-directory: web
steps:
- name: Checkout code
- name: Determine branch to build
id: select-branch
working-directory: ${{ github.workspace }}
run: |
if git ls-remote --exit-code --heads https://github.com/ente-io/ente refs/heads/staging/web; then
echo "branch=staging/web" >> $GITHUB_OUTPUT
else
echo "branch=main" >> $GITHUB_OUTPUT
fi
- name: Checkout ${{ steps.select-branch.outputs.branch }}
uses: actions/checkout@v4
with:
ref: ${{ steps.select-branch.outputs.branch }}
submodules: recursive
- name: Setup node and enable yarn caching

View File

@@ -1,7 +1,7 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<application android:name="${applicationName}"
android:label="Auth"
android:label="Ente Auth"
android:icon="@mipmap/launcher_icon"
android:usesCleartextTraffic="true"
android:requestLegacyExternalStorage="true"

View File

@@ -36,5 +36,5 @@ file, that adheres to the above format.
SUPPORT
If you need help, please reach out to support@ente.io, and a human will get in touch with you.
If you need help, please visit @ https://github.com/ente-io/ente/discussions/new?category=q-a, and someone will get in touch with you.
If you have feature requests, please create an issue @ https://github.com/ente-io/ente

View File

@@ -1,5 +1,7 @@
{
"icons": [
{ "title": "1xBet"
},
{
"title": "3Commas"
},
@@ -10,6 +12,10 @@
{
"title": "Airtable"
},
{
"title": "airtm",
"hex": "000000"
},
{
"title": "Anycoin Direct",
"slug": "anycoindirect"
@@ -20,9 +26,23 @@
{
"title": "Bitfinex"
},
{
"title": "bitget"
},
{
"titile":"bitget wallet",
"slug":"bitget_wallet"
},
{
"title": "Bitmart",
"hex":"000000"
},
{
"title": "BitMEX"
},
{
"title": "BitOasis"
},
{
"title": "BitSkins"
},
@@ -39,16 +59,41 @@
{
"title": "Bloom Host",
"slug": "bloom_host",
"altNames": ["Bloom Host Billing"]
"altNames": [
"Bloom Host Billing"
]
},
{
"title": "Blockchain",
"altNames": [
"blockchain.com",
"blockchain.com Wallet",
"blockchain.com Exchange"
],
"slug": "blockchain"
},
{
"title": "BorgBase",
"altNames": ["borg"],
"altNames": [
"borg"
],
"slug": "BorgBase"
},
{
"title": "Booking",
"slug": "booking",
"altNames":[
"Booking.com"
]
},
{
"title": "Brave Creators",
"slug": "brave_creators"
"slug": "brave_creators",
"altNames":[
"Brave",
"Brave Rewards",
"Brave Browser"
]
},
{
"title": "Bybit"
@@ -67,6 +112,13 @@
{
"title": "Cloudflare"
},
{
"title": "CloudAMQP"
},
{
"title": "ConfigCat",
"slug": "configcat"
},
{
"title": "CoinDCX"
},
@@ -81,14 +133,28 @@
{
"title": "Crowdpear"
},
{
"title": "Crypto.com",
"slug": "crypto",
"altNames": [
"crypto",
"Crypto.com",
"Crypto com"
]
},
{
"title": "DCS",
"altNames": ["Digital Combat Simulator"],
"altNames": [
"Digital Combat Simulator"
],
"slug": "dcs"
},
{
"title": "DEGIRO"
},
{
"title": "deriv"
},
{
"title": "DirectAdmin"
},
@@ -105,10 +171,18 @@
"title": "dus.net",
"slug": "dusnet"
},
{
"title":"ecitizen kenya",
"slug":"ecitizen_kenya"
},
{
"title": "ente",
"hex": "1DB954"
},
{
"title": "enom"
},
{
"title": "Epic Games",
"slug": "epic_games",
@@ -130,7 +204,7 @@
},
{
"title": "GitHub",
"hex": "858585"
"hex": "000000"
},
{
"title": "GitLab"
@@ -143,7 +217,9 @@
},
{
"title": "Gosuslugi",
"altNames": ["Госуслуги"],
"altNames": [
"Госуслуги"
],
"slug": "Gosuslugi"
},
{
@@ -156,13 +232,24 @@
{
"title": "Hivelocity"
},
{
"title": "HTX"
},
{
"title": "IceDrive",
"slug": "Icedrive"
},
{
"titile": "Infomaniak",
"slug": "infomaniak"
},
{
"title": "ING"
},
{
"title": "Instant Gaming",
"slug": "instant_gaming"
},
{
"title": "Instagram"
},
@@ -170,8 +257,9 @@
"title": "INWX"
},
{
"title": "Itch.io",
"slug": "itch_io"
"title": "Itch",
"slug": "itch_io",
"hex": "e7685e"
},
{
"title": "IVPN",
@@ -219,7 +307,11 @@
{
"title": "Local",
"slug": "local_wp",
"altNames": ["LocalWP", "Local WP", "Local Wordpress"]
"altNames": [
"LocalWP",
"Local WP",
"Local Wordpress"
]
},
{
"title": "Marketplace.tf",
@@ -227,14 +319,23 @@
},
{
"title": "Mastodon",
"altNames": ["mstdn", "fediscience", "mathstodon", "fosstodon"],
"altNames": [
"mstdn",
"fediscience",
"mathstodon",
"fosstodon"
],
"slug": "mastodon",
"hex": "6364FF"
},
{
"title": "Mercado Livre",
"slug": "mercado_livre",
"altNames": ["Mercado Libre", "MercadoLibre", "MercadoLivre"]
"altNames": [
"Mercado Libre",
"MercadoLibre",
"MercadoLivre"
]
},
{
"title": "Microsoft"
@@ -245,12 +346,21 @@
{
"title": "Mintos"
},
{
"title": "Mistral",
"altNames": [
"Mistral AI",
"MistralAI"
]
},
{
"title": "Mozilla"
},
{
"title": "Murena",
"altNames": ["eCloud"],
"altNames": [
"eCloud"
],
"slug": "ecloud"
},
{
@@ -277,12 +387,26 @@
{
"title": "Notion"
},
{
"title": "NuCommunity",
"slug": "nucommunity"
},
{
"title": "NVIDIA"
},
{
"title": "Odido"
},
{
"titile": "OpenObserve",
"slug": "open_observe",
"altNames":[
"openobserve.ai",
"openobserve ai"
]
},
{ "title": "okx",
"hex": "000000" },
{
"title": "Parsec"
},
@@ -335,8 +459,16 @@
"slug": "real_debrid"
},
{
"title": "Registro.br",
"slug": "registro_br"
"title": "Registro br",
"slug": "registro_br",
"altNames": [
"Registro br",
"registrobr",
"Registro.br"
]
},
{
"title": "Render"
},
{
"title": "Revolt",
@@ -355,6 +487,9 @@
"slug": "rust_language_forum",
"hex": "000000"
},
{
"title": "Samsung"
},
{
"title": "Sendgrid"
},
@@ -374,6 +509,18 @@
{
"title": "Skinport"
},
{
"title": "SMSPool",
"slug": "sms_pool_net",
"altNames": [
"smspool.net",
"smspool net"
]
},
{
"title": "SMTP2GO",
"slug": "smtp2go"
},
{
"title": "Snapchat"
},
@@ -396,7 +543,17 @@
},
{
"title": "Techlore",
"altNames": ["Techlore Courses", "Techlore Forums"]
"altNames": [
"Techlore Courses",
"Techlore Forums"
]
},
{
"title": "Teleport",
"altNames": [
"Gravitational Teleport",
"GoTeleport"
]
},
{
"title": "Termius",
@@ -426,6 +583,13 @@
"title": "Twingate",
"hex": "858585"
},
{
"title": "Twitch",
"altNames": [
"Twitch.tv",
"Twitch tv"
]
},
{
"title": "Ubisoft",
"hex": "4285f4"
@@ -443,6 +607,10 @@
"slug": "uphold",
"hex": "6FE68A"
},
{
"titile": "Vikunja",
"slug": "vikunja"
},
{
"title": "WHMCS"
},
@@ -460,23 +628,43 @@
{
"title": "WorkOS",
"slug": "workos",
"altNames": ["Work OS"]
"altNames": [
"Work OS"
]
},
{
"title": "X",
"altNames": ["twitter"],
"altNames": [
"twitter"
],
"slug": "x"
},
{
"title": "Yandex",
"altNames": ["Ya", "Яндекс"],
"altNames": [
"Ya",
"Яндекс"
],
"slug": "Yandex"
},
{ "title": "yahoo" },
{
"title": "YNAB",
"altNames": ["You Need A Budget"],
"altNames": [
"You Need A Budget"
],
"slug": "ynab",
"hex": "3B5EDA"
},
{
"title": "Shakepay",
"slug": "shakepay"
},
{
"title": "Newton",
"altNames": ["Newton Crypto"],
"slug": "newton"
}
]
}

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" viewBox="5.9 24.02 400 231.77"><path d="M324.87 255.78h57.56l-83.04-125.82L405.9 24.02h-94.98L99.24 236.59 138.2 24.02H86.1L6.28 76.43l-.38 59.88 48.23-22.93-6.64 19.66c-7.37 40.91-14.91 81.82-22.1 122.75l154.9-.21 64.16-68.37 26.3 39.91c13.83 18.25 28.08 26.4 54.12 28.66m-125.11-144.9-55.92-86.86h63.89c17.79 1.74 35.7 8.06 47.3 22.88l3.69 5.25z" style="fill-rule:evenodd;clip-rule:evenodd;fill:#12326e"></path></svg>

After

Width:  |  Height:  |  Size: 481 B

View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<g transform="matrix(0.179104,0,0,0.179104,0,9.49254)">
<path d="M73.245,0C80.736,0 86.81,6.269 86.81,14.001C86.81,21.733 80.736,28 73.245,28C65.754,28 59.68,21.733 59.68,14.001C59.68,6.269 65.754,0 73.245,0ZM73.245,21.646C77.043,21.646 80.21,18.222 80.21,14.001C80.21,9.779 77.043,6.356 73.245,6.356C69.447,6.356 66.28,9.779 66.28,14.001C66.28,18.222 69.447,21.646 73.245,21.646ZM123.068,0C129.157,0 133.186,5.123 133.186,13.632L133.186,26.895C133.186,27.099 133.021,27.264 132.818,27.264L127.162,27.264C126.959,27.264 126.796,27.099 126.796,26.895L126.796,13.632C126.796,9.544 125.156,6.447 121.471,6.447C118.066,6.447 115.586,9.981 115.586,15.29L115.586,26.895C115.586,27.099 115.423,27.264 115.221,27.264L109.354,27.264C109.153,27.264 108.989,27.099 108.989,26.895L108.989,13.632C108.989,9.544 107.295,6.447 103.49,6.447C100.089,6.447 97.61,9.369 97.449,14.731L97.449,26.895C97.449,27.099 97.285,27.264 97.082,27.264L91.217,27.264C91.015,27.264 90.85,27.099 90.85,26.895L90.85,1.131C90.85,0.927 91.015,0.762 91.217,0.762L96.928,0.762C97.119,0.762 97.279,0.908 97.294,1.1L97.449,2.967C99.402,1.146 101.961,0 105.139,0C108.833,0 111.79,1.77 113.604,4.952C115.586,1.989 118.682,0 123.068,0ZM45.017,0C51.305,0 55.649,5.123 55.649,13.632L55.649,26.895C55.649,27.099 55.484,27.264 55.282,27.264L49.415,27.264C49.214,27.264 49.049,27.099 49.049,26.895L49.049,13.632C49.049,9.544 47.173,6.447 43.368,6.447C39.963,6.447 37.135,9.378 36.96,14.757L36.96,26.895C36.96,27.099 36.795,27.264 36.593,27.264L30.728,27.264C30.525,27.264 30.361,27.099 30.361,26.895L30.361,1.131C30.361,0.927 30.525,0.762 30.728,0.762L36.437,0.762C36.628,0.762 36.788,0.911 36.803,1.103L36.96,3.198C39.012,1.244 41.706,0 45.017,0Z" style="fill:rgb(73,72,77);"/>
</g>
<g transform="matrix(0.179104,0,0,0.179104,0,9.49254)">
<path d="M20.839,19.015C20.692,18.893 20.475,18.904 20.343,19.044C18.914,20.561 16.549,21.737 13.931,21.737C12.409,21.737 10.811,21.341 9.727,20.497L26.082,8.544C26.223,8.442 26.273,8.255 26.201,8.096C25.081,5.635 21.335,0 13.931,0C6.237,0 0,6.267 0,13.999C0,21.655 6.237,28 13.931,28C18.277,28 22.676,26.073 25.218,23.135C25.351,22.981 25.328,22.745 25.171,22.615L20.839,19.015ZM13.931,6.263C15.451,6.263 16.982,6.635 18.073,7.56L6.478,16.025C5.159,11.239 9.116,6.263 13.931,6.263Z" style="fill:rgb(255,64,8);"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-738.2 149.1 435.4 102.8" xml:space="preserve"><path d="M-612.2 149.1h-18.4v99.6h18.4zm-104.1 79 25.4-55 14 30.2zm79.3 20.7-17.9-38.7 17.4-11-8.9-15-15.9 10-17.4-37.6c-1.1-2.3-2.7-4.2-4.7-5.5s-4.4-2-6.7-1.9c-2.4.1-4.7.9-6.6 2.3s-3.4 3.3-4.3 5.5l-34.9 75.5-.1.2c-2.3 5.7-.8 12.2 3.8 16.2 4.5 3.9 10.8 4.2 15.6.9l48.2-30.3 13.7 29.5zm54.3-53.1h27.3c14.1 0 18.8-7.7 18.8-16.4s-4.7-15.9-18.7-15.9h-27.4zm30.9-46.6c26.2 0 34.6 14.6 34.6 30 0 11.6-5.8 23.7-21.5 27.9l24.7 41.7h-20.8l-23-39.1h-24.9v39.1H-601v-99.6zm40.1 15.4h35v84.2h18.4v-84.2h35v-15.4h-88.4zm123.9-15.4H-415v99.6h16.6v-72.1c0-4.5-.3-8.6-.7-12.1h.5c.5 2.7 1.9 7.9 3.2 11.6l27.3 72.5h17.3l27.3-72.5c1.5-3.8 3.1-9.4 3.5-11.6h.5c-.4 3.6-.7 8-.7 12.1v72.1h17.2v-99.6h-27.4l-25.8 69.5c-1.5 4.2-2.3 6.7-2.8 10.1h-.3c-.5-3-1.2-5.2-2.3-8.7-.1-.4-.3-.9-.4-1.4z" style="fill:#050505"/></svg>

After

Width:  |  Height:  |  Size: 892 B

View File

@@ -0,0 +1 @@
<svg viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg"><rect width="40" height="40" rx="8.711" fill="#00f0ff"/><path d="M18.46 15.767h7.468l7.64 7.592c.498.493.5 1.297.006 1.793L23.775 35h-7.693l2.326-2.261 8.54-8.486-8.432-8.487" fill="#1b1b1b"/><path d="M21.53 24.234h-7.47l-7.64-7.592a1.267 1.267 0 0 1-.005-1.793L16.214 5h7.693l-2.326 2.261-8.54 8.486 8.432 8.487" fill="#1b1b1b"/></svg>

After

Width:  |  Height:  |  Size: 410 B

View File

@@ -0,0 +1 @@
<svg width="96" height="96" viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg"><g clip-path="url(#a)"><rect width="36" height="36" rx="18" fill="#54FFF5"/><g filter="url(#b)"><path d="M1.896 27.928c-6.02 16.936 26.181 12.153 43.035 7.644 17.248-5.724 5.326-30.957-7.045-31.515-12.37-.559 1.534 11.667-8.974 15.16-10.509 3.491-19.491-12.46-27.016 8.71" fill="#fff"/></g><g filter="url(#c)"><path d="M12.025-6.445C8.867-15.073-2.379-3.375-7.608 3.552-12.595 11.087.423 17.598 5.53 14.067c5.107-3.532-4.436-4.22-1.399-8.812s11.842-.915 7.895-11.7" fill="#00FFF0" fill-opacity=".67"/></g><g filter="url(#d)"><path d="M13.568 31.7c-4.308-14.494-22.86-6.861-31.599-1.234C-26.436 37.13-6.479 56.298 1.81 55.317c8.29-.98-6.65-9.324-1.53-13.388 5.118-4.063 18.672 7.886 13.288-10.23" fill="#9D81FF"/></g><g filter="url(#e)"><path d="M39.673-15.098c-9.291-11.064-22.592-1.915-28.081 4.042C6.788-4.31 31.539 8.046 38.408 5.928s-9.367-6.5-6.444-10.611c2.922-4.112 19.324 3.415 7.71-10.415" fill="#4D94FF"/></g><path fill-rule="evenodd" clip-rule="evenodd" d="M13.105 21.493h6.115l-6.956-7.001 7.045-7.001 1.92-1.866H14.88L6.797 13.75a1.045 1.045 0 0 0 .004 1.48zm3.676-6.985h-.047zm0 0 6.955 7-7.045 7.001-1.92 1.866h6.348l8.084-8.124a1.045 1.045 0 0 0-.004-1.48l-6.304-6.263z" fill="#000"/></g><defs><filter id="b" x="-12.69" y="-9.807" width="80.094" height="63.481" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur stdDeviation="6.923" result="effect1_foregroundBlur_2029_330"/></filter><filter id="c" x="-22.572" y="-23.342" width="49.443" height="52.243" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur stdDeviation="6.923" result="effect1_foregroundBlur_2029_330"/></filter><filter id="d" x="-33.901" y="9.511" width="62.557" height="59.688" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur stdDeviation="6.923" result="effect1_foregroundBlur_2029_330"/></filter><filter id="e" x="-2.868" y="-34.139" width="60.496" height="54.155" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur stdDeviation="6.923" result="effect1_foregroundBlur_2029_330"/></filter><clipPath id="a"><rect width="36" height="36" rx="18" fill="#fff"/></clipPath></defs></svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

@@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="none" class="logo" viewBox="0 0 500 500">
<g fill="#fff">
<path d="M307.382 358.988H153.698v13.428h153.684v-13.428zm-115.22 83.526H76.885v13.43h115.277v-13.43zm-76.984-83.468h-76.7v13.428h76.7v-13.428zm192.204-38.864H192.105v13.428h115.277v-13.428zm-153.797 0H76.942v13.428h76.643v-13.428zM307.38 146.585H115.236v13.428H307.38v-13.428zm-153.795-44.664h-76.7v13.428h76.7v-13.428z"/>
<path d="M409.287 231.022v-.34A153.91 153.91 0 0 0 276.144.3h-160.91v19.232H276.6a134.58 134.58 0 0 1 106.653 53.207 134.574 134.574 0 0 1 22.564 117.033 117.661 117.661 0 0 0-63.274-132.566A117.668 117.668 0 0 0 291.45 45.42H153.7v19.232h137.92a98.265 98.265 0 0 1 93.597 128.078 76.986 76.986 0 0 0-13.255-66.509 76.985 76.985 0 0 0-60.713-30.218H191.764v19.402H310.68a57.81 57.81 0 0 1 50.186 86.316 154.248 154.248 0 0 0-53.714-9.673H153.528v19.23h153.625a134.624 134.624 0 0 1 132.234 109.474 115.392 115.392 0 0 0-112.32-89.559H115.179v19.062h212.175a96.05 96.05 0 0 1 62.678 23.55 96.055 96.055 0 0 1 32.058 58.781 76.87 76.87 0 0 0-75.505-62.986H115.292v19.233h231.236a57.637 57.637 0 1 1 0 115.276H76.885v19.232h269.7a76.872 76.872 0 0 0 75.504-62.988 96.047 96.047 0 0 1-95.021 82.163H230.34v19.23h96.727a115.44 115.44 0 0 0 110.838-83.697A134.673 134.673 0 0 1 307.44 480.466H115.463V499.7h191.69a153.629 153.629 0 0 0 149.901-190.401 153.642 153.642 0 0 0-47.482-78.388l-.285.112z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" fill-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="2" clip-rule="evenodd" viewBox="0 0 30 30">
<path fill="#03ceaa" d="M10.898 0v5.108L7.367 1.575l-.08-.079-.079.079-5.633 5.636-.08.08.08.079 3.531 3.533H0v8.195h5.106L1.575 22.63l-.08.079.08.08 5.633 5.636.079.079.08-.079 3.531-3.533V30h8.19v-5.108l3.531 3.533.08.079.079-.079 5.633-5.636.08-.08-.08-.079-3.531-3.532h5.106v-8.195H24.88l3.531-3.533.08-.079-.08-.08-5.633-5.636-.079-.079-.08.079-3.531 3.533V0h-8.19Zm1.651 6.543h4.888V1.652h-4.888v4.891Zm6.693.748 3.457-3.458 3.456 3.458-3.456 3.458-3.457-3.458Zm-15.411 0 3.456-3.458 3.457 3.458-3.457 3.458-3.456-3.458Zm4.36 10.528v-5.638l3.985-3.986h5.635l3.984 3.986v5.638l-3.984 3.986h-5.635l-3.985-3.986Zm15.256-.374h4.888v-4.89h-4.888v4.89Zm-21.796 0H6.54v-4.89H1.651v4.89Zm17.591 5.264 3.457-3.458 3.456 3.458-3.456 3.459-3.457-3.459Zm-15.411 0 3.456-3.458 3.457 3.458-3.457 3.459-3.456-3.459Zm8.718 5.639h4.888v-4.89h-4.888v4.89Z"/>
</svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" fill-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="2" clip-rule="evenodd" viewBox="0 0 24 24">
<path fill="#3d89f5" d="M2.053 8.723.958 9.818a3.12 3.12 0 0 0 0 4.5l8.82 8.91c.21.213.453.39.72.524V12.953l-8.445-4.23Z"/>
<path fill="#1656b9" d="m21.946 8.723 1.095 1.095a3.12 3.12 0 0 1 0 4.5l-8.822 8.91c-.21.213-.452.39-.72.524V12.953l8.447-4.23Z"/>
<path fill="#85b5f8" d="M19.827 6.488 14.307.953a3.133 3.133 0 0 0-4.5 0L4.272 6.488l7.755 3.87 7.8-3.87Z"/>
</svg>

After

Width:  |  Height:  |  Size: 545 B

View File

@@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" fill-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="2" clip-rule="evenodd" viewBox="0 0 192 193">
<path fill="#003b95" fill-rule="nonzero" d="M37.8 0h116.5C175.1 0 192 16.9 192 37.8v116.5c0 20.9-16.9 37.8-37.8 37.8H37.8C16.9 192 0 175.1 0 154.2V37.8C0 16.9 16.9 0 37.8 0Z"/>
<path fill="#fff" fill-rule="nonzero" d="M144.2 143.8c6.7 0 12.1-5.5 12.1-12.2 0-6.7-5.4-12.2-12.1-12.2-6.7 0-12.1 5.4-12.1 12.2 0 6.7 5.5 12.2 12.1 12.2ZM106.7 91.9l-3.1-1.7 2.7-2.3c3.2-2.7 8.4-8.8 8.4-19.3 0-16.1-12.5-26.5-31.8-26.5H58.4c-5.7.2-10.3 4.9-10.4 10.6V144h35.4c21.5 0 35.4-11.7 35.4-29.8-.1-9.8-4.6-18.1-12.1-22.3ZM67.6 66c0-4.7 2-7 6.4-7.3h8.8c7.5 0 12 4.5 12 12.1 0 5.8-3.1 12.4-11.8 12.4H67.6V66Zm17.2 60.7H67.6v-20.5c0-4.4 1.7-6.7 5.5-7.2h11.7c8.4 0 13.8 5.3 13.8 13.8 0 8.8-5.3 13.9-13.8 13.9Z"/>
</svg>

After

Width:  |  Height:  |  Size: 874 B

View File

@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="512px" height="512px" style="shape-rendering:geometricPrecision; text-rendering:geometricPrecision; image-rendering:optimizeQuality; fill-rule:evenodd; clip-rule:evenodd" xmlns:xlink="http://www.w3.org/1999/xlink">
<g><path style="opacity:1" fill="#0f0f0f" d="M 511.5,272.5 C 511.5,285.5 511.5,298.5 511.5,311.5C 508.543,328.958 502.376,345.291 493,360.5C 489.783,363.38 486.95,366.547 484.5,370C 491.258,380.639 489.591,389.639 479.5,397C 464.044,407.934 447.377,416.601 429.5,423C 412.83,426.168 399.163,421.335 388.5,408.5C 367.197,419.324 344.531,424.491 320.5,424C 318.692,436.612 312.359,446.279 301.5,453C 283.703,460.911 265.036,464.411 245.5,463.5C 242.9,471.276 237.9,477.109 230.5,481C 217.623,486.044 204.289,487.711 190.5,486C 185.821,485.662 181.488,484.328 177.5,482C 156.539,481.714 144.039,471.214 140,450.5C 127.176,458.148 113.343,460.648 98.5,458C 90.6339,455.515 82.6339,453.515 74.5,452C 54.9132,442.997 49.0799,428.497 57,408.5C 66.2342,395.627 78.7342,387.961 94.5,385.5C 92.6275,381.588 90.6275,377.755 88.5,374C 70.6568,365.82 58.8235,352.32 53,333.5C 40.7936,289.193 46.2936,247.193 69.5,207.5C 59.4487,191.064 51.2821,173.73 45,155.5C 46.0538,140.201 46.3871,124.867 46,109.5C 35.4808,94.9732 23.4808,81.6398 10,69.5C 6.25674,65.2678 2.75674,60.9345 -0.5,56.5C -0.5,52.1667 -0.5,47.8333 -0.5,43.5C 9.76623,24.2659 25.0996,18.7659 45.5,27C 67.9457,36.2887 85.1124,51.4554 97,72.5C 110.456,95.0753 121.456,118.742 130,143.5C 131.478,149.551 132.812,155.551 134,161.5C 150.985,156.607 167.819,150.94 184.5,144.5C 189.063,124.296 197.563,105.963 210,89.5C 221.355,76.4675 234.189,65.3008 248.5,56C 281.602,35.3661 304.768,43.1994 318,79.5C 320.953,90.3093 322.453,101.309 322.5,112.5C 360.236,109.787 395.903,116.953 429.5,134C 465.163,161.014 489.997,195.848 504,238.5C 507.153,249.807 509.653,261.14 511.5,272.5 Z"/></g>
<g><path style="opacity:1" fill="#f9f9f9" d="M 24.5,29.5 C 29.5518,29.4502 34.5518,29.9502 39.5,31C 64.2651,40.4294 82.7651,56.9294 95,80.5C 105.37,98.9048 114.37,117.905 122,137.5C 124.445,145.715 126.278,154.048 127.5,162.5C 112.806,166.18 99.806,173.013 88.5,183C 87.6683,183.688 87.0016,183.521 86.5,182.5C 81.5074,171.354 77.0074,160.021 73,148.5C 71.949,132.503 70.949,116.503 70,100.5C 69.8323,89.9943 66.4989,80.661 60,72.5C 50.2229,59.4865 39.3896,47.3198 27.5,36C 24.3562,34.3084 21.0229,33.1418 17.5,32.5C 19.7639,31.1308 22.0972,30.1308 24.5,29.5 Z"/></g>
<g><path style="opacity:1" fill="#f8a38f" d="M 12.5,38.5 C 17.3236,37.9711 21.6569,39.1378 25.5,42C 39.5654,55.7226 51.7321,70.8893 62,87.5C 64.8374,107.385 66.5041,127.385 67,147.5C 70.9051,161.478 76.0717,174.978 82.5,188C 79.7313,192.44 76.5646,196.606 73,200.5C 64.0573,185.948 56.724,170.614 51,154.5C 51.9952,139.197 52.3286,123.864 52,108.5C 48.7377,102.307 44.7377,96.6405 40,91.5C 29,79.8333 18,68.1667 7,56.5C 3.70863,48.8182 5.54196,42.8182 12.5,38.5 Z"/></g>
<g><path style="opacity:1" fill="#fafafa" d="M 75.5,358.5 C 75.5,358.167 75.5,357.833 75.5,357.5C 89.9869,361.531 96.4869,355.865 95,340.5C 88.9149,339.688 82.7482,339.188 76.5,339C 72.7424,337.077 69.4091,334.577 66.5,331.5C 65.914,331.709 65.414,332.043 65,332.5C 64.3219,336.221 64.4886,339.888 65.5,343.5C 65.5,344.167 65.5,344.833 65.5,345.5C 56.2828,328.814 51.9494,310.814 52.5,291.5C 52.6554,251.963 65.6554,217.463 91.5,188C 109.872,171.873 131.372,164.04 156,164.5C 163.871,164.941 171.705,165.774 179.5,167C 180.059,167.725 180.392,168.558 180.5,169.5C 177.315,184.684 175.315,200.018 174.5,215.5C 176.5,215.5 178.5,215.5 180.5,215.5C 182.202,180.727 189.035,147.061 201,114.5C 217.196,84.2957 241.363,63.4624 273.5,52C 285.541,49.4426 295.374,52.9426 303,62.5C 310.113,73.413 314.447,85.413 316,98.5C 321.979,137.67 310.146,170.17 280.5,196C 263.081,211.714 243.415,223.881 221.5,232.5C 221.08,234.326 221.08,236.326 221.5,238.5C 234.851,234.241 247.351,228.241 259,220.5C 259.772,220.645 260.439,220.978 261,221.5C 275.359,247.499 277.359,274.499 267,302.5C 255.866,325.636 239.699,344.469 218.5,359C 205.461,365.355 191.794,369.689 177.5,372C 152.14,376.37 126.806,376.37 101.5,372C 91.2074,370.356 82.5408,365.856 75.5,358.5 Z"/></g>
<g><path style="opacity:1" fill="#0f0c0c" d="M 193.5,223.5 C 192.507,215.35 192.174,207.017 192.5,198.5C 193.5,169.804 200.666,142.804 214,117.5C 225.84,98.1554 243.007,87.1554 265.5,84.5C 286.335,85.1601 299.835,95.4934 306,115.5C 309.914,142.091 302.081,164.591 282.5,183C 256.19,203.482 226.523,216.982 193.5,223.5 Z"/></g>
<g><path style="opacity:1" fill="#fca592" d="M 257.5,90.5 C 284.894,88.5662 299.56,101.233 301.5,128.5C 300.608,150.45 291.608,168.284 274.5,182C 251.674,198.494 226.507,209.994 199,216.5C 197.361,188.998 201.361,162.331 211,136.5C 219.834,114.165 235.334,98.8314 257.5,90.5 Z"/></g>
<g><path style="opacity:1" fill="#fafafa" d="M 60.5,425.5 C 59.5386,423.735 59.2053,421.735 59.5,419.5C 63.1115,407.716 70.7781,399.549 82.5,395C 91.0632,391.633 99.5632,391.799 108,395.5C 108.667,394.833 108.667,394.167 108,393.5C 102.81,388.767 99.4764,383.1 98,376.5C 102.705,378.033 107.538,379.2 112.5,380C 140.837,382.162 168.837,380.162 196.5,374C 217.812,367.925 235.645,356.425 250,339.5C 264.443,322.614 274.11,303.281 279,281.5C 281.871,258.038 277.038,236.371 264.5,216.5C 281.854,203.979 296.687,188.979 309,171.5C 318.099,155.03 322.599,137.363 322.5,118.5C 360.451,115.776 396.117,123.276 429.5,141C 473.317,176.458 498.484,222.292 505,278.5C 507.615,302.611 503.949,325.611 494,347.5C 489.686,356.123 483.52,363.123 475.5,368.5C 480.461,372.751 482.961,378.085 483,384.5C 480.5,388.333 477.333,391.5 473.5,394C 459.716,403.227 445.049,410.893 429.5,417C 425.514,417.499 421.514,417.666 417.5,417.5C 417.193,411.907 417.527,406.407 418.5,401C 417.167,400.333 415.833,399.667 414.5,399C 430.794,394.523 446.461,388.356 461.5,380.5C 461.014,378.503 459.847,377.169 458,376.5C 440.722,385.148 422.555,390.982 403.5,394C 380.37,396.219 367.203,385.719 364,362.5C 362.937,347.817 366.437,334.317 374.5,322C 373.465,320.726 372.298,319.56 371,318.5C 354.722,340.239 353.389,362.905 367,386.5C 371.262,392.27 376.762,396.27 383.5,398.5C 384.736,400.034 385.236,401.7 385,403.5C 364.91,414.289 343.41,418.956 320.5,417.5C 319.84,404.55 317.673,391.883 314,379.5C 311.816,377.129 309.65,377.296 307.5,380C 314.177,397.067 315.677,414.567 312,432.5C 305.593,444.224 295.76,451.39 282.5,454C 268.581,456.057 254.581,457.224 240.5,457.5C 239.833,466.67 235.166,472.837 226.5,476C 215.527,480.056 204.193,481.39 192.5,480C 187.997,479.932 183.83,478.765 180,476.5C 179.18,467.46 181.68,459.46 187.5,452.5C 186.167,451.5 184.833,450.5 183.5,449.5C 176.525,456.706 173.192,465.372 173.5,475.5C 155.566,474.56 151.066,466.227 160,450.5C 165.03,445.927 164.364,443.594 158,443.5C 153.995,448.511 151.328,454.178 150,460.5C 149.667,460.167 149.333,459.833 149,459.5C 144.897,446.475 148.397,435.975 159.5,428C 163.945,425.443 168.611,423.443 173.5,422C 182.977,422.438 192.477,422.938 202,423.5C 220.978,425.676 230.811,417.343 231.5,398.5C 229.5,398.5 227.5,398.5 225.5,398.5C 226.791,409.364 222.125,415.864 211.5,418C 200.619,418.627 189.786,418.127 179,416.5C 166.002,416.349 155.502,421.349 147.5,431.5C 146.029,427.759 144.363,424.092 142.5,420.5C 141.998,419.479 141.332,419.312 140.5,420C 139.272,420.779 138.272,421.779 137.5,423C 139.652,428.271 141.652,433.604 143.5,439C 129.108,453.41 112.441,456.91 93.5,449.5C 89.7245,439.648 91.3911,430.815 98.5,423C 97.3147,421.647 95.9814,420.48 94.5,419.5C 87.1734,427.469 84.5067,436.803 86.5,447.5C 75.3584,448.43 68.025,443.597 64.5,433C 65.9688,424.073 69.6355,416.239 75.5,409.5C 74.5,407.833 73.1667,406.5 71.5,405.5C 66.2677,411.297 62.601,417.964 60.5,425.5 Z"/></g>
<g><path style="opacity:1" fill="#e5e5e5" d="M 180.5,151.5 C 181.675,151.281 182.675,151.614 183.5,152.5C 182.878,155.37 182.211,158.204 181.5,161C 175.174,160.8 168.84,160.134 162.5,159C 168.652,156.569 174.652,154.069 180.5,151.5 Z"/></g>
<g><path style="opacity:1" fill="#9b9b9b" d="M 192.5,198.5 C 192.174,207.017 192.507,215.35 193.5,223.5C 193.44,224.043 193.107,224.376 192.5,224.5C 191.179,215.675 191.179,207.009 192.5,198.5 Z"/></g>
<g><path style="opacity:1" fill="#090909" d="M 190.5,275.5 C 203.491,273.992 208.658,279.659 206,292.5C 201.745,299.54 195.578,302.04 187.5,300C 181.092,296.677 178.925,291.511 181,284.5C 183.679,280.924 186.846,277.924 190.5,275.5 Z"/></g>
<g><path style="opacity:1" fill="#dddddd" d="M 192.5,279.5 C 196.302,278.88 199.635,279.714 202.5,282C 201.646,283.022 200.646,283.855 199.5,284.5C 197.382,283.054 195.049,282.387 192.5,282.5C 192.5,281.5 192.5,280.5 192.5,279.5 Z"/></g>
<g><path style="opacity:1" fill="#070707" d="M 75.5,357.5 C 71.1612,353.465 67.8279,348.798 65.5,343.5C 64.4886,339.888 64.3219,336.221 65,332.5C 65.414,332.043 65.914,331.709 66.5,331.5C 69.4091,334.577 72.7424,337.077 76.5,339C 82.7482,339.188 88.9149,339.688 95,340.5C 96.4869,355.865 89.9869,361.531 75.5,357.5 Z"/></g>
<g><path style="opacity:1" fill="#afafaf" d="M 65.5,343.5 C 67.8279,348.798 71.1612,353.465 75.5,357.5C 75.5,357.833 75.5,358.167 75.5,358.5C 70.6417,355.312 67.3083,350.979 65.5,345.5C 65.5,344.833 65.5,344.167 65.5,343.5 Z"/></g>
<g><path style="opacity:1" fill="#ededed" d="M 407.5,398.5 C 409.167,398.5 410.833,398.5 412.5,398.5C 411.966,404.499 411.299,410.499 410.5,416.5C 402.406,414.736 396.739,410.069 393.5,402.5C 393.608,401.558 393.941,400.725 394.5,400C 399.019,399.825 403.353,399.325 407.5,398.5 Z"/></g>
<g><path style="opacity:1" fill="#8e8e8e" d="M 59.5,419.5 C 59.2053,421.735 59.5386,423.735 60.5,425.5C 60.6068,427.379 60.1068,427.712 59,426.5C 58.2042,423.961 58.3709,421.628 59.5,419.5 Z"/></g>
</svg>

After

Width:  |  Height:  |  Size: 9.6 KiB

View File

@@ -1,4 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 500 500">
<path fill="#182954" d="m75.705 269.386 12.606 10.812a40.902 40.902 0 0 1-8.642 8.853 53.365 53.365 0 0 1-13.599 7.73 45.769 45.769 0 0 1-16.998 3.094 49.02 49.02 0 0 1-25.212-6.466A45.84 45.84 0 0 1 6.72 275.84a50.83 50.83 0 0 1-6.212-25.287 52.621 52.621 0 0 1 3.525-19.394 49.28 49.28 0 0 1 10.2-16.022 46.603 46.603 0 0 1 15.44-10.812 49.626 49.626 0 0 1 19.969-3.938 45.9 45.9 0 0 1 23.51 5.48A49.016 49.016 0 0 1 88.308 219.5l-12.744 11.244A39.368 39.368 0 0 0 64.938 220.2a27.358 27.358 0 0 0-15.296-3.933 27.636 27.636 0 0 0-16.147 4.632 30.695 30.695 0 0 0-10.478 12.508 38.957 38.957 0 0 0-3.688 16.879 36.724 36.724 0 0 0 3.684 16.442 29.719 29.719 0 0 0 10.184 11.793 27.208 27.208 0 0 0 15.44 4.358c4.608.197 9.203-.62 13.456-2.391a27.765 27.765 0 0 0 8.214-5.622l5.381-5.481M93.275 264.047a35.477 35.477 0 0 1 4.535-17.71 34.84 34.84 0 0 1 12.748-12.929 39.497 39.497 0 0 1 18.838-4.778 39.497 39.497 0 0 1 18.838 4.778 34.846 34.846 0 0 1 12.749 12.928 36.889 36.889 0 0 1 4.532 17.709 36.891 36.891 0 0 1-4.532 17.708 36.519 36.519 0 0 1-13.365 13.153 36.875 36.875 0 0 1-18.181 4.837 36.88 36.88 0 0 1-18.203-4.756 36.513 36.513 0 0 1-13.424-13.092 35.479 35.479 0 0 1-4.535-17.707v-.141zm35.979 21.224a16.949 16.949 0 0 0 10.623-3.23c2.804-2.121 5-4.93 6.375-8.151a24.848 24.848 0 0 0 2.124-9.698 24.293 24.293 0 0 0-2.124-9.697 20.265 20.265 0 0 0-6.375-8.15 19.056 19.056 0 0 0-10.623-3.233 19.057 19.057 0 0 0-10.625 3.233 20.118 20.118 0 0 0-6.231 8.009 24.296 24.296 0 0 0-2.125 9.697 24.713 24.713 0 0 0 2.125 9.839 19.985 19.985 0 0 0 6.374 8.15 16.949 16.949 0 0 0 10.624 3.231M168.905 202.628h16.856v17.71h-16.856v-17.71zm0 28.11h16.856v66.758h-16.856v-66.758zM192.416 297.495V230.88h16.147l.42 7.589a35.937 35.937 0 0 1 7.505-5.905 23.656 23.656 0 0 1 12.749-3.094 24.38 24.38 0 0 1 10.396 1.612 24.22 24.22 0 0 1 8.726 5.836 29.047 29.047 0 0 1 6.66 20.097v40.477H238.02v-40.335a13.257 13.257 0 0 0-.76-5.278 13.337 13.337 0 0 0-2.78-4.561 12.19 12.19 0 0 0-4.164-2.694 12.27 12.27 0 0 0-4.902-.82 14.974 14.974 0 0 0-6.377 1.24 14.87 14.87 0 0 0-5.236 3.82 18.046 18.046 0 0 0-4.534 12.51v36.118l-16.851.004z"/>
<path fill="#FA4A29" d="m463.25 246.618 29.754-44.007h-28.187l-15.44 24.596-15.883-24.596h-31.163l1.416 1.967-.993-.416a63.329 63.329 0 0 0-23.083-4.046 50.453 50.453 0 0 0-25.92 6.607 46.609 46.609 0 0 0-14.308 12.929 40.334 40.334 0 0 0-15.582-11.806 65.028 65.028 0 0 0-26.344-5.077h-36.686v94.727h36.544a64.026 64.026 0 0 0 26.344-5.202A41.612 41.612 0 0 0 339.3 280.63c3.87 5.299 8.846 9.709 14.59 12.928a51.44 51.44 0 0 0 25.777 6.325 55.023 55.023 0 0 0 24.646-5.34l-1.982 2.953h27.76l18.558-29.108 19.122 29.108h31.73l-36.252-50.878zm-147.452 21.624a25.772 25.772 0 0 1-8.902 5.504 25.916 25.916 0 0 1-10.376 1.523h-10.334v-50.573h10.338c3.62-.305 7.264.165 10.685 1.378a25.427 25.427 0 0 1 9.147 5.65 26.146 26.146 0 0 1 6.374 18.271 24.821 24.821 0 0 1-1.597 9.836 24.965 24.965 0 0 1-5.343 8.436l.008-.025zm101.549 6.911-12.04-11.228a38.572 38.572 0 0 1-10.197 9.149 27.09 27.09 0 0 1-13.6 2.952 25.509 25.509 0 0 1-13.314-3.372 22.838 22.838 0 0 1-8.8-9.415 29.459 29.459 0 0 1-3.118-13.63c-.091-4.623.929-9.2 2.975-13.353a23.258 23.258 0 0 1 8.642-9.415 25.653 25.653 0 0 1 13.738-3.513 24.798 24.798 0 0 1 12.748 3.23 32.061 32.061 0 0 1 9.639 8.733l12.606-12.508 18.415 26.28-17.694 26.09z"/>
<path fill="#182954" d="m75.006 269.464 12.657 10.855a41.066 41.066 0 0 1-8.676 8.889 53.579 53.579 0 0 1-13.654 7.76 45.952 45.952 0 0 1-17.066 3.107 49.217 49.217 0 0 1-25.313-6.492 46.023 46.023 0 0 1-17.21-17.64A51.033 51.033 0 0 1-.49 250.556a52.832 52.832 0 0 1 3.538-19.472 49.477 49.477 0 0 1 10.242-16.086 46.79 46.79 0 0 1 15.5-10.855 49.825 49.825 0 0 1 20.05-3.954 46.083 46.083 0 0 1 23.605 5.503 49.212 49.212 0 0 1 15.215 13.685l-12.795 11.29a39.526 39.526 0 0 0-10.667-10.584 27.467 27.467 0 0 0-15.358-3.95 27.747 27.747 0 0 0-16.212 4.651 30.818 30.818 0 0 0-10.52 12.559 39.113 39.113 0 0 0-3.702 16.946 36.87 36.87 0 0 0 3.699 16.508 29.838 29.838 0 0 0 10.224 11.84 27.317 27.317 0 0 0 15.501 4.376 31.64 31.64 0 0 0 13.511-2.401 27.877 27.877 0 0 0 8.247-5.644l5.403-5.503m17.656-5.362a35.619 35.619 0 0 1 4.553-17.781 34.98 34.98 0 0 1 12.8-12.98 39.655 39.655 0 0 1 18.913-4.797 39.66 39.66 0 0 1 18.913 4.797 34.985 34.985 0 0 1 12.8 12.98 37.037 37.037 0 0 1 4.55 17.779 37.04 37.04 0 0 1-4.55 17.78 36.665 36.665 0 0 1-13.418 13.205 37.023 37.023 0 0 1-18.254 4.856 37.027 37.027 0 0 1-18.276-4.774A36.659 36.659 0 0 1 97.2 282.022a35.62 35.62 0 0 1-4.553-17.777v-.142zm36.123 21.31a17.017 17.017 0 0 0 10.666-3.244 20.199 20.199 0 0 0 6.4-8.184 24.947 24.947 0 0 0 2.133-9.736 24.391 24.391 0 0 0-2.133-9.736 20.347 20.347 0 0 0-6.4-8.183 19.133 19.133 0 0 0-10.666-3.245c-3.803 0-7.518 1.13-10.667 3.245a20.2 20.2 0 0 0-6.256 8.041 24.393 24.393 0 0 0-2.134 9.736 24.812 24.812 0 0 0 2.134 9.878 20.065 20.065 0 0 0 6.4 8.184 17.017 17.017 0 0 0 10.666 3.244m39.667-82.975h16.924v17.781H168.58v-17.781zm0 28.223h16.924v67.026H168.58V230.66zm23.605 67.025v-66.884h16.212l.42 7.62a36.08 36.08 0 0 1 7.537-5.929 23.751 23.751 0 0 1 12.8-3.106c3.556-.227 7.12.326 10.438 1.618a24.317 24.317 0 0 1 8.76 5.86 29.164 29.164 0 0 1 6.687 20.177v40.64h-17.067v-40.498a13.31 13.31 0 0 0-.763-5.298 13.39 13.39 0 0 0-2.792-4.58 12.239 12.239 0 0 0-4.18-2.705 12.32 12.32 0 0 0-4.921-.823c-2.2-.058-4.388.367-6.403 1.245a14.929 14.929 0 0 0-5.257 3.836 18.118 18.118 0 0 0-4.552 12.559v36.264l-16.919.004z"/>
<path fill="#FA4A29" d="m464.104 246.605 29.874-44.184h-28.3l-15.502 24.695-15.946-24.695h-31.288l1.421 1.975-.997-.418a63.582 63.582 0 0 0-23.175-4.062 50.655 50.655 0 0 0-26.025 6.634 46.796 46.796 0 0 0-14.365 12.98 40.496 40.496 0 0 0-15.644-11.853 65.288 65.288 0 0 0-26.45-5.098h-36.833v95.107h36.691a64.283 64.283 0 0 0 26.45-5.223 41.778 41.778 0 0 0 15.643-11.71 45.958 45.958 0 0 0 14.647 12.98 51.646 51.646 0 0 0 25.882 6.35 55.244 55.244 0 0 0 24.744-5.361l-1.99 2.964h27.872l18.631-29.225 19.2 29.225H500.5l-36.396-51.081zm-148.042 21.71a25.875 25.875 0 0 1-8.938 5.526 26.02 26.02 0 0 1-10.417 1.53H286.33v-50.777h10.38a25.677 25.677 0 0 1 10.727 1.384 25.529 25.529 0 0 1 9.184 5.672 26.25 26.25 0 0 1 6.4 18.345 24.92 24.92 0 0 1-1.604 9.876 25.065 25.065 0 0 1-5.365 8.469l.009-.025zm101.955 6.939L405.93 263.98a38.727 38.727 0 0 1-10.237 9.185 27.198 27.198 0 0 1-13.654 2.965 25.611 25.611 0 0 1-13.368-3.386 22.93 22.93 0 0 1-8.836-9.453 29.577 29.577 0 0 1-3.13-13.685 29.036 29.036 0 0 1 2.987-13.406 23.352 23.352 0 0 1 8.676-9.452 25.756 25.756 0 0 1 13.793-3.528 24.898 24.898 0 0 1 12.8 3.244 32.19 32.19 0 0 1 9.677 8.767l12.657-12.558 18.488 26.386-17.765 26.194z"/>
</svg>

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" viewBox="167.1 0 2165.8 2500"><path style="fill:none" d="M0 0h2500v2500H0z"></path><path d="M1250 0 167.1 625v1250L1250 2500l1082.9-625V625zm0 0L167.1 625v1250L1250 2500l1082.9-625V625z" style="fill:#fff"></path><path d="M1677.5 2011.7h-154.1L1339 1842.4v-86.8l191-182.3v-288.6l249.6-162.8 284.3 214.8zm-638-455.7 28.2-271.3-93.3-243.1h551.2l-91.2 243.1 26.1 271.3zm125.9 286.4-184.5 171.4H824.6l-388.5-677.1L722.6 1124l251.7 160.6v288.6l191 182.3zm-342.9-1302h852.9l102 434H722.7zM1250 0 167.1 625v1250L1250 2500l1082.9-625V625z" style="fill:#03316c"></path></svg>

After

Width:  |  Height:  |  Size: 628 B

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256"><path d="M224 8c-.619 9.67-2.292 19.13-3.972 28.658l-.922 5.291q-1.246 7.144-2.504 14.287l-1.572 8.946q-2.46 14.025-4.935 28.05a16286 16286 0 0 0-5.661 32.272 11916 11916 0 0 1-4.395 25.025q-1.319 7.454-2.615 14.912a3013 3013 0 0 1-2.472 14.031q-.453 2.56-.893 5.121c-3.557 20.69-10.695 38.973-28.286 51.75-9.94 6.797-20.185 11.71-32.443 11.834l-3.38.039-3.634.022-3.779.025q-3.963.021-7.925.032-4.026.014-8.05.062c-3.895.043-7.788.059-11.683.069l-3.578.053c-17.241-.044-32.268-6.26-44.5-18.362C42.035 225.056 38.91 219.267 36 213l-1.375-2.937c-8.245-21.528-2.25-51.57 6.848-72.012C52.983 115.06 71.683 97.549 96 89c10.453-3.18 20.413-4.153 31.281-4.098l3.194.005c3.342.005 6.683.018 10.025.03l6.828.014q8.336.017 16.672.049l.456-2.765A5148 5148 0 0 1 176 15q8.805-1.505 17.615-2.99 2.994-.507 5.988-1.02 4.311-.734 8.624-1.459l2.69-.464C215.333 8.331 219.503 7.82 224 8M90.125 142.813c-8.985 10.66-11.885 24.665-11.477 38.468C79.55 188.25 82.955 194.174 88 199c7.78 5.626 15.988 5.808 25.214 5.707 2.35-.02 4.693.02 7.042.064 7.436.046 13.762-.18 19.998-4.701 5.69-6.744 6.89-14.473 8.324-22.925l.656-3.697q.679-3.85 1.34-7.703c.676-3.932 1.37-7.861 2.067-11.79l1.312-7.498.625-3.558.568-3.318.501-2.908c.342-2.593.418-5.06.353-7.673q-8.242-.112-16.486-.165-2.798-.022-5.594-.061c-17.177-.235-31.31.9-43.795 14.039" fill="#FF444F"/></svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@@ -0,0 +1 @@
<svg viewBox="0 0 64 64" xmlns="http://www.w3.org/2000/svg"><path d="M32 2C19.7 2 9.1 9.4 4.5 20h55C54.9 9.4 44.3 2 32 2" fill="#3e4347"/><path d="M32 62c12.3 0 22.9-7.4 27.5-18h-55C9.1 54.6 19.7 62 32 62" fill="#75a843"/><path d="M62 32c0-2.8-.4-5.5-1.1-8H3.1C2.4 26.5 2 29.2 2 32s.4 5.5 1.1 8h57.8c.7-2.5 1.1-5.2 1.1-8" fill="#c94747"/><g fill="#fff"><path d="M3.7 42c.2.7.5 1.3.8 2h55c.3-.7.6-1.3.8-2s.4-1.3.6-2H3.1c.2.7.4 1.3.6 2m56.6-20c-.2-.7-.5-1.3-.8-2h-55c-.3.7-.6 1.3-.8 2s-.4 1.3-.6 2h57.8c-.2-.7-.4-1.3-.6-2"/><path d="m20.2 52.3.7.4 19.3-33.4c1.1-.3 1.7-1.4 2.4-2.4.4-.7 2.1-3.6 2.8-7.3-2.9 2.5-4.5 5.3-4.9 6.1-.6 1.1-1.2 2.1-.9 3.3z"/><path d="m43.8 52.3-.7.4-19.3-33.4c-1.1-.3-1.7-1.4-2.4-2.4-.4-.7-2.1-3.6-2.8-7.3 2.9 2.5 4.5 5.3 4.9 6.1.6 1.1 1.2 2.1.9 3.3z"/></g><path d="M40 32c0 11-8 20-8 20s-8-9-8-20 8-20 8-20 8 9 8 20" fill="#c94747"/><path d="M26.1 40c1.7-1.7 2.9-4.6 2.9-8s-1.1-6.3-2.9-8c-.7 2.3-1.1 5.1-1.1 8s.4 5.7 1.1 8m11.8-16c-1.7 1.7-2.9 4.6-2.9 8s1.1 6.3 2.9 8c.7-2.3 1.1-5.1 1.1-8s-.4-5.7-1.1-8" fill="#3e4347"/><g fill="#fff"><ellipse cx="32" cy="32" rx="1.6" ry="2.4"/><path d="M31.4 12.7c-.6 1.7-1 4.9-1 8.4 0 3.6.4 6.7 1 8.4.2-2.5.4-5.3.4-8.4 0-3-.1-5.9-.4-8.4m1.2 0c.6 1.7 1 4.9 1 8.4 0 3.6-.4 6.7-1 8.4-.2-2.5-.4-5.3-.4-8.4 0-3 .1-5.9.4-8.4m-1.2 21.7c-.6 1.7-1 4.9-1 8.4 0 3.6.4 6.7 1 8.4.2-2.5.4-5.3.4-8.4 0-3-.1-5.9-.4-8.4m1.2 0c.6 1.7 1 4.9 1 8.4 0 3.6-.4 6.7-1 8.4-.2-2.5-.4-5.3-.4-8.4 0-3 .1-5.9.4-8.4"/></g></svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@@ -1 +1 @@
<svg id="logosandtypes_com" data-name="logosandtypes com" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150"><defs><style>.cls-1{fill:none;}.cls-2{fill:#e31937;}</style></defs><g id="Layer_2" data-name="Layer 2"><path id="Layer_3" data-name="Layer 3" class="cls-1" d="M0,0H150V150H0Z" transform="translate(0 0)"/></g><rect class="cls-2" x="13.34" y="14.37" width="15.01" height="123.08"/><rect class="cls-2" x="122.92" y="14.37" width="15.01" height="123.08"/><rect class="cls-2" x="43.36" y="54.9" width="64.54" height="15.01"/><rect class="cls-2" x="43.36" y="83.42" width="64.54" height="15.01"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150" fill="#e31937" xmlns:v="https://vecta.io/nano"><path d="M13.34 14.37h15.01v123.08H13.34zm109.58 0h15.01v123.08h-15.01zM43.36 54.9h64.54v15.01H43.36zm0 28.52h64.54v15.01H43.36z"/></svg>

Before

Width:  |  Height:  |  Size: 611 B

After

Width:  |  Height:  |  Size: 247 B

View File

@@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 500 500">
<g clip-path="url(#a)">
<path fill="#fff" d="M301.399 153.471c1.48-73.53-40.157-137.614-61.84-153.005-.098-.1-2.022-1.16-1.874 1.726 0 .05-.05.05-.05.099-2.219 138.897-73.628 176.315-112.38 227.227-86.16 113.194-14.281 242.323 78.86 266.792 1.578.395 5.895 1.677 14.06 3.355 4.266.912 5.5-2.714 2.367-8.116-11.124-19.363-30.932-52.046-34.854-94.028-8.904-97.482 113.984-158.506 115.71-244.05z"/>
<path fill="#008CD6" d="M348.339 200.56c-.74-.543-1.776-.494-1.875.444-1.973 17.66-20.25 54.315-44.325 88.577-81.005 115.513-40.207 167.904-8.51 204.262 5.846 6.734 8.756 5.23 11.84.444 2.86-4.563 7.227-10.36 25.949-19.215 2.91-1.381 73.604-38.923 81.276-124.393 7.4-82.681-45.633-134.974-64.355-150.12z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 790 B

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg width="800px" height="800px" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
<circle cx="512" cy="512" r="512" style="fill:#0098ff"/>
<path d="M696.8 281H475.66v225.45L545.88 427h115.5l-88.17 83.75 93.71 156.49H560.66l-49.93-96.66-35.07 33.82v62.83h-96.1V281H327.2a46.2 46.2 0 0 0-46.2 46.2v369.6a46.2 46.2 0 0 0 46.2 46.2h369.6a46.2 46.2 0 0 0 46.2-46.2V327.2a46.2 46.2 0 0 0-46.2-46.2z" style="fill:#fff"/>
</svg>

After

Width:  |  Height:  |  Size: 557 B

File diff suppressed because it is too large Load Diff

Before

Width:  |  Height:  |  Size: 118 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -0,0 +1,19 @@
<svg width="500" height="500" viewBox="0 0 500 500" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M42.3044 77.0441C33.8578 77.0441 25.6439 72.6653 21.1175 64.8302C14.3699 53.1508 18.3751 38.2158 30.0626 31.4721L78.9366 3.27575C90.6254 -3.46792 105.571 0.534679 112.319 12.2141C119.066 23.8936 115.062 38.8286 103.374 45.5723L54.5009 73.7686C50.7944 75.9145 46.5873 77.0444 42.3044 77.0441Z" fill="url(#paint0_linear_154_309)"/>
<path d="M408.844 235.902L66.7177 433.284V348.692L335.121 193.755L286.49 165.698L30.0615 313.446C22.5003 317.808 17.8424 325.869 17.8424 334.593V475.58C17.8433 479.868 18.973 484.079 21.118 487.792C23.2629 491.504 26.3475 494.586 30.0615 496.728C33.7768 498.873 37.9911 500.001 42.2807 500C46.5703 500 50.7844 498.872 54.4999 496.728L469.94 257.051C477.501 252.689 482.159 244.627 482.159 235.902C482.159 227.178 477.501 219.117 469.94 214.756L348.167 144.501C347.907 144.344 347.643 144.192 347.377 144.046L225.564 73.7685C218.003 69.4069 208.689 69.4069 201.127 73.7685L30.0629 172.459C18.3741 179.203 14.3702 194.136 21.1178 205.817C25.6442 213.651 33.8581 218.031 42.3046 218.031C46.587 218.03 50.7935 216.901 54.4999 214.756L213.344 123.114L408.844 235.904V235.902Z" fill="url(#paint1_linear_154_309)"/>
<path d="M408.844 235.902L66.7177 433.284V348.692L82.1938 339.759L54.4972 299.366L30.0615 313.446C22.5003 317.808 17.8424 325.869 17.8424 334.593V475.58C17.8433 479.868 18.973 484.079 21.118 487.792C23.2629 491.504 26.3475 494.586 30.0615 496.728C33.7768 498.873 37.9911 500.001 42.2807 500C46.5703 500 50.7844 498.872 54.4999 496.728L469.94 257.051C477.501 252.689 482.159 244.627 482.159 235.902C482.159 227.178 477.501 219.117 469.94 214.756L348.167 144.501C347.907 144.344 347.643 144.192 347.377 144.046L225.564 73.7685C218.003 69.4069 208.689 69.4069 201.127 73.7685L30.0629 172.459C18.3741 179.203 14.3702 194.136 21.1178 205.817C25.6442 213.651 33.8581 218.031 42.3046 218.031C46.587 218.03 50.7935 216.901 54.4999 214.756L213.344 123.114L408.844 235.902Z" fill="url(#paint2_linear_154_309)"/>
<defs>
<linearGradient id="paint0_linear_154_309" x1="31.2204" y1="111.73" x2="108.384" y2="0.000287497" gradientUnits="userSpaceOnUse">
<stop offset="0.26" stop-color="#FF670D"/>
<stop offset="1" stop-color="#FF5317"/>
</linearGradient>
<linearGradient id="paint1_linear_154_309" x1="86.5912" y1="285.221" x2="187.325" y2="109.662" gradientUnits="userSpaceOnUse">
<stop stop-color="#FF7207"/>
<stop offset="1" stop-color="#FF7208" stop-opacity="0"/>
</linearGradient>
<linearGradient id="paint2_linear_154_309" x1="35.1941" y1="500" x2="482.158" y2="227.227" gradientUnits="userSpaceOnUse">
<stop stop-color="#FF8000"/>
<stop offset="1" stop-color="#FF4020"/>
</linearGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 386 KiB

After

Width:  |  Height:  |  Size: 316 B

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 106 KiB

After

Width:  |  Height:  |  Size: 959 B

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 523 KiB

After

Width:  |  Height:  |  Size: 735 B

View File

@@ -0,0 +1,8 @@
<svg width="500" height="500" viewBox="0 0 500 500" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M0 22.72H90.9091V113.629V113.629V204.538V295.447H0V204.538V113.629V113.629V22.72ZM363.636 22.72H454.545V113.629H363.636V22.72ZM363.636 113.629L363.636 204.538H272.727V113.629L363.636 113.629ZM90.9091 295.447H0V386.357V477.266H90.9091V386.357V295.447ZM181.818 295.447H272.727V386.357H181.818V295.447ZM454.545 295.447H363.636V386.357V477.266H454.545V386.357V295.447Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M409.091 386.356H500V477.266H409.091V386.356ZM45.4551 386.356H136.364V477.266H45.4551V386.356Z" fill="#EA3326"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M45.4551 295.448H136.364V386.357H45.4551V295.448ZM318.182 295.448H227.273V386.357H318.182V295.448ZM500 295.448H409.091V386.357H500V295.448Z" fill="#EB5829"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M45.4551 204.538H136.364H136.364H227.273H318.182H409.091H500V295.447H409.091H318.182H227.273H136.364H136.364H45.4551V204.538Z" fill="#EE792F"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M45.4551 113.629H136.364L227.273 113.629V204.538L136.364 204.538L136.364 204.538L45.4551 204.538V113.629ZM409.091 113.629H500V204.538H409.091H318.182V113.629H409.091Z" fill="#F2A73B"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M45.4551 22.72H136.364V113.629H45.4551V22.72ZM409.091 22.72H500V113.629H409.091V22.72Z" fill="#F7D046"/>
</svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@@ -0,0 +1,4 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M20.2324 2.78628H21.214V21.2136H9.76734V8.77878C9.76734 8.05185 9.17804 7.46255 8.4511 7.46255C7.72416 7.46255 7.13486 8.05185 7.13486 8.77878V22.5298C7.13486 23.2568 7.72416 23.8461 8.4511 23.8461H22.5302C23.2572 23.8461 23.8465 23.2568 23.8465 22.5298V1.47005C23.8465 0.743108 23.2572 0.153809 22.5302 0.153809H20.2324C19.5055 0.153809 18.9162 0.743108 18.9162 1.47005C18.9162 2.19698 19.5055 2.78628 20.2324 2.78628Z" fill="currentColor"></path>
<path d="M3.76836 21.2136H2.78677V2.78632H14.2331V15.2211C14.2331 15.9481 14.8224 16.5374 15.5493 16.5374C16.2763 16.5374 16.8656 15.9481 16.8656 15.2211V1.47008C16.8656 0.743141 16.2763 0.153841 15.5493 0.153841H1.47053C0.743596 0.153841 0.154297 0.743141 0.154297 1.47008V22.5299C0.154297 23.2568 0.743596 23.8461 1.47053 23.8461H3.76836C4.49529 23.8461 5.08459 23.2568 5.08459 22.5299C5.08459 21.8029 4.49529 21.2136 3.76836 21.2136Z" fill="#2FE1B9"></path>
</svg>

After

Width:  |  Height:  |  Size: 1022 B

View File

@@ -0,0 +1,38 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="900px" height="900px" style="shape-rendering:geometricPrecision; text-rendering:geometricPrecision; image-rendering:optimizeQuality; fill-rule:evenodd; clip-rule:evenodd" xmlns:xlink="http://www.w3.org/1999/xlink">
<g><path style="opacity:1" fill="#fefefe" d="M -0.5,-0.5 C 299.5,-0.5 599.5,-0.5 899.5,-0.5C 899.5,299.5 899.5,599.5 899.5,899.5C 599.5,899.5 299.5,899.5 -0.5,899.5C -0.5,599.5 -0.5,299.5 -0.5,-0.5 Z"/></g>
<g><path style="opacity:1" fill="#e0a5fc" d="M 297.5,264.5 C 309.66,263.34 321.993,263.173 334.5,264C 337.457,264.279 340.123,265.113 342.5,266.5C 327.57,264.717 312.57,264.051 297.5,264.5 Z"/></g>
<g><path style="opacity:1" fill="#8f02d8" d="M 297.5,264.5 C 312.57,264.051 327.57,264.717 342.5,266.5C 369.173,272.584 390.673,286.584 407,308.5C 421.104,329.299 429.604,352.299 432.5,377.5C 432.334,383.509 432.501,389.509 433,395.5C 433.21,397.058 433.71,398.391 434.5,399.5C 434.5,406.5 434.5,413.5 434.5,420.5C 434.5,421.5 434.5,422.5 434.5,423.5C 433.71,422.391 433.21,421.058 433,419.5C 432.5,487.833 432.333,556.166 432.5,624.5C 404.167,624.5 375.833,624.5 347.5,624.5C 347.832,575.997 347.499,527.664 346.5,479.5C 346.829,464.99 346.496,450.657 345.5,436.5C 347.595,406.902 342.095,378.902 329,352.5C 307.252,317.035 275.419,299.368 233.5,299.5C 233.5,299.167 233.5,298.833 233.5,298.5C 250.906,279.797 272.24,268.463 297.5,264.5 Z"/></g>
<g><path style="opacity:1" fill="#e2aefc" d="M 464.5,272.5 C 494.329,271.502 524.329,271.169 554.5,271.5C 554.5,330.167 554.5,388.833 554.5,447.5C 554.5,452.833 554.5,458.167 554.5,463.5C 553.501,400.002 553.168,336.336 553.5,272.5C 523.833,272.5 494.167,272.5 464.5,272.5 Z"/></g>
<g><path style="opacity:1" fill="#c47ceb" d="M 789.5,272.5 C 759.662,272.169 729.995,272.502 700.5,273.5C 700.667,355.501 700.5,437.501 700,519.5C 699.819,522.695 699.319,525.695 698.5,528.5C 699.467,442.842 699.801,357.175 699.5,271.5C 729.671,271.169 759.671,271.502 789.5,272.5 Z"/></g>
<g><path style="opacity:1" fill="#f9fff3" d="M 790.5,489.5 C 790.5,417.167 790.5,344.833 790.5,272.5C 791.341,271.991 791.841,272.657 792,274.5C 792.667,345.167 792.667,415.833 792,486.5C 791.667,489.5 791.333,492.5 791,495.5C 790.505,493.527 790.338,491.527 790.5,489.5 Z"/></g>
<g><path style="opacity:1" fill="#fedffe" d="M 789.5,272.5 C 789.833,272.5 790.167,272.5 790.5,272.5C 790.5,344.833 790.5,417.167 790.5,489.5C 789.833,492.167 789.167,494.833 788.5,497.5C 789.469,422.51 789.802,347.51 789.5,272.5 Z"/></g>
<g><path style="opacity:1" fill="#eb99fb" d="M 464.5,272.5 C 464.168,339.002 464.501,405.335 465.5,471.5C 465.5,480.5 465.5,489.5 465.5,498.5C 464.672,492.347 464.172,486.013 464,479.5C 463.168,410.332 463.335,341.332 464.5,272.5 Z"/></g>
<g><path style="opacity:1" fill="#8113b9" d="M 464.5,272.5 C 494.167,272.5 523.833,272.5 553.5,272.5C 553.168,336.336 553.501,400.002 554.5,463.5C 554.334,472.173 554.5,480.84 555,489.5C 555.183,492.365 555.683,495.031 556.5,497.5C 557.067,504.237 558.067,510.904 559.5,517.5C 558.069,517.119 557.236,516.119 557,514.5C 555.425,506.905 554.259,499.238 553.5,491.5C 552.5,418.836 552.167,346.17 552.5,273.5C 523.5,273.5 494.5,273.5 465.5,273.5C 465.5,339.5 465.5,405.5 465.5,471.5C 464.501,405.335 464.168,339.002 464.5,272.5 Z"/></g>
<g><path style="opacity:1" fill="#8f02d8" d="M 559.5,517.5 C 567.209,549.077 585.209,572.91 613.5,589C 621.878,592.737 630.545,595.571 639.5,597.5C 641.515,598.924 643.848,599.59 646.5,599.5C 652.509,599.701 658.509,600.034 664.5,600.5C 664.833,601.167 665.167,601.833 665.5,602.5C 652.044,616.271 636.044,625.937 617.5,631.5C 613.313,632.213 609.313,633.213 605.5,634.5C 604.167,634.5 602.833,634.5 601.5,634.5C 584.03,635.144 566.696,634.144 549.5,631.5C 522.738,623.576 502.238,607.576 488,583.5C 473.799,557.033 466.299,528.699 465.5,498.5C 465.5,489.5 465.5,480.5 465.5,471.5C 465.5,405.5 465.5,339.5 465.5,273.5C 494.5,273.5 523.5,273.5 552.5,273.5C 552.167,346.17 552.5,418.836 553.5,491.5C 554.259,499.238 555.425,506.905 557,514.5C 557.236,516.119 558.069,517.119 559.5,517.5 Z"/></g>
<g><path style="opacity:1" fill="#8f01d8" d="M 700.5,273.5 C 730.005,273.169 759.338,273.502 788.5,274.5C 787.167,309.327 786.5,344.494 786.5,380C 786.5,415.506 787.167,450.673 788.5,485.5C 787.326,491.399 786.659,497.399 786.5,503.5C 786.5,505.167 786.5,506.833 786.5,508.5C 775.375,553.295 747.708,582.629 703.5,596.5C 699.521,596.742 695.854,597.742 692.5,599.5C 684.181,600.124 675.848,600.457 667.5,600.5C 685.44,579.935 695.774,555.935 698.5,528.5C 699.319,525.695 699.819,522.695 700,519.5C 700.5,437.501 700.667,355.501 700.5,273.5 Z"/></g>
<g><path style="opacity:1" fill="#9700e9" d="M 788.5,274.5 C 788.5,344.833 788.5,415.167 788.5,485.5C 787.167,450.673 786.5,415.506 786.5,380C 786.5,344.494 787.167,309.327 788.5,274.5 Z"/></g>
<g><path style="opacity:1" fill="#7c10b7" d="M 700.5,273.5 C 729.995,272.502 759.662,272.169 789.5,272.5C 789.802,347.51 789.469,422.51 788.5,497.5C 787.833,499.5 787.167,501.5 786.5,503.5C 786.659,497.399 787.326,491.399 788.5,485.5C 788.5,415.167 788.5,344.833 788.5,274.5C 759.338,273.502 730.005,273.169 700.5,273.5 Z"/></g>
<g><path style="opacity:1" fill="#e0b2f7" d="M 214.5,299.5 C 220.645,298.51 226.978,298.177 233.5,298.5C 233.5,298.833 233.5,299.167 233.5,299.5C 232.833,299.833 232.167,300.167 231.5,300.5C 226.025,299.511 220.358,299.178 214.5,299.5 Z"/></g>
<g><path style="opacity:1" fill="#bb82dc" d="M 203.5,301.5 C 201.485,302.924 199.152,303.59 196.5,303.5C 198.515,302.076 200.848,301.41 203.5,301.5 Z"/></g>
<g><path style="opacity:1" fill="#8f01d8" d="M 214.5,299.5 C 220.358,299.178 226.025,299.511 231.5,300.5C 214.94,317.802 205.273,338.469 202.5,362.5C 201.693,366.021 201.026,369.688 200.5,373.5C 199.833,374.5 199.167,375.5 198.5,376.5C 196.503,458.827 195.836,541.493 196.5,624.5C 168.167,624.5 139.833,624.5 111.5,624.5C 111.5,552.833 111.5,481.167 111.5,409.5C 111.5,408.833 111.5,408.167 111.5,407.5C 111.646,403.481 111.979,399.481 112.5,395.5C 113.768,393.095 114.435,390.428 114.5,387.5C 121.985,358.168 138.319,335.001 163.5,318C 173.533,310.984 184.533,306.151 196.5,303.5C 199.152,303.59 201.485,302.924 203.5,301.5C 207.221,301.089 210.888,300.422 214.5,299.5 Z"/></g>
<g><path style="opacity:1" fill="#9500e4" d="M 198.5,376.5 C 198.5,459.833 198.5,543.167 198.5,626.5C 169.147,627.159 140.147,626.492 111.5,624.5C 139.833,624.5 168.167,624.5 196.5,624.5C 195.836,541.493 196.503,458.827 198.5,376.5 Z"/></g>
<g><path style="opacity:1" fill="#7d10b7" d="M 200.5,373.5 C 199.513,458.149 199.18,542.815 199.5,627.5C 169.833,627.5 140.167,627.5 110.5,627.5C 110.167,554.665 110.501,481.998 111.5,409.5C 111.5,481.167 111.5,552.833 111.5,624.5C 140.147,626.492 169.147,627.159 198.5,626.5C 198.5,543.167 198.5,459.833 198.5,376.5C 199.167,375.5 199.833,374.5 200.5,373.5 Z"/></g>
<g><path style="opacity:1" fill="#a456d2" d="M 432.5,377.5 C 434.105,384.603 434.772,391.937 434.5,399.5C 433.71,398.391 433.21,397.058 433,395.5C 432.501,389.509 432.334,383.509 432.5,377.5 Z"/></g>
<g><path style="opacity:1" fill="#d898f7" d="M 114.5,387.5 C 114.435,390.428 113.768,393.095 112.5,395.5C 112.294,392.505 112.96,389.838 114.5,387.5 Z"/></g>
<g><path style="opacity:1" fill="#fccbfe" d="M 111.5,407.5 C 111.5,408.167 111.5,408.833 111.5,409.5C 110.501,481.998 110.167,554.665 110.5,627.5C 140.167,627.5 169.833,627.5 199.5,627.5C 169.671,628.498 139.671,628.831 109.5,628.5C 109.333,555.166 109.5,481.833 110,408.5C 110.383,407.944 110.883,407.611 111.5,407.5 Z"/></g>
<g><path style="opacity:1" fill="#8313bf" d="M 434.5,420.5 C 435.499,489.331 435.833,558.331 435.5,627.5C 405.833,627.5 376.167,627.5 346.5,627.5C 346.5,578.167 346.5,528.833 346.5,479.5C 347.499,527.664 347.832,575.997 347.5,624.5C 376.147,626.492 405.147,627.159 434.5,626.5C 434.5,558.833 434.5,491.167 434.5,423.5C 434.5,422.5 434.5,421.5 434.5,420.5 Z"/></g>
<g><path style="opacity:1" fill="#e6b9fc" d="M 434.5,399.5 C 435.327,404.651 435.827,409.984 436,415.5C 436.832,486.335 436.665,557.001 435.5,627.5C 435.833,558.331 435.499,489.331 434.5,420.5C 434.5,413.5 434.5,406.5 434.5,399.5 Z"/></g>
<g><path style="opacity:1" fill="#c48ee5" d="M 202.5,362.5 C 202.271,369.515 201.771,376.515 201,383.5C 200.833,465.001 200.333,546.334 199.5,627.5C 199.18,542.815 199.513,458.149 200.5,373.5C 201.026,369.688 201.693,366.021 202.5,362.5 Z"/></g>
<g><path style="opacity:1" fill="#9800e9" d="M 434.5,423.5 C 434.5,491.167 434.5,558.833 434.5,626.5C 405.147,627.159 376.147,626.492 347.5,624.5C 375.833,624.5 404.167,624.5 432.5,624.5C 432.333,556.166 432.5,487.833 433,419.5C 433.21,421.058 433.71,422.391 434.5,423.5 Z"/></g>
<g><path style="opacity:1" fill="#fde2ff" d="M 554.5,447.5 C 555.97,463.978 556.637,480.645 556.5,497.5C 555.683,495.031 555.183,492.365 555,489.5C 554.5,480.84 554.334,472.173 554.5,463.5C 554.5,458.167 554.5,452.833 554.5,447.5 Z"/></g>
<g><path style="opacity:1" fill="#e6b4fd" d="M 788.5,497.5 C 788.749,501.458 788.082,505.124 786.5,508.5C 786.5,506.833 786.5,505.167 786.5,503.5C 787.167,501.5 787.833,499.5 788.5,497.5 Z"/></g>
<g><path style="opacity:1" fill="#e6b5fa" d="M 703.5,596.5 C 700.146,598.258 696.479,599.258 692.5,599.5C 695.854,597.742 699.521,596.742 703.5,596.5 Z"/></g>
<g><path style="opacity:1" fill="#d196ef" d="M 639.5,597.5 C 642.152,597.41 644.485,598.076 646.5,599.5C 643.848,599.59 641.515,598.924 639.5,597.5 Z"/></g>
<g><path style="opacity:1" fill="#eebef9" d="M 692.5,599.5 C 683.638,600.905 674.638,601.905 665.5,602.5C 665.167,601.833 664.833,601.167 664.5,600.5C 665.5,600.5 666.5,600.5 667.5,600.5C 675.848,600.457 684.181,600.124 692.5,599.5 Z"/></g>
<g><path style="opacity:1" fill="#e8b7fd" d="M 345.5,436.5 C 346.496,450.657 346.829,464.99 346.5,479.5C 346.5,528.833 346.5,578.167 346.5,627.5C 376.167,627.5 405.833,627.5 435.5,627.5C 405.671,628.498 375.671,628.831 345.5,628.5C 345.5,564.5 345.5,500.5 345.5,436.5 Z"/></g>
<g><path style="opacity:1" fill="#eeccfd" d="M 617.5,631.5 C 614.032,634.114 610.032,635.114 605.5,634.5C 609.313,633.213 613.313,632.213 617.5,631.5 Z"/></g>
<g><path style="opacity:1" fill="#902eca" d="M 549.5,631.5 C 566.696,634.144 584.03,635.144 601.5,634.5C 598.375,635.479 595.042,635.813 591.5,635.5C 581.461,635.758 571.461,635.424 561.5,634.5C 557.098,634.692 553.098,633.692 549.5,631.5 Z"/></g>
<g><path style="opacity:1" fill="#e2b3f9" d="M 561.5,634.5 C 571.461,635.424 581.461,635.758 591.5,635.5C 582.009,636.658 572.342,636.825 562.5,636C 561.944,635.617 561.611,635.117 561.5,634.5 Z"/></g>
</svg>

After

Width:  |  Height:  |  Size: 10 KiB

View File

@@ -0,0 +1,110 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="157.42708mm"
height="44.185417mm"
viewBox="0 0 157.42708 44.185417"
version="1.1"
id="svg8"
inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)"
sodipodi:docname="okx logo.svg">
<defs
id="defs2" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.98994949"
inkscape:cx="567.26578"
inkscape:cy="219.28838"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:pagecheckerboard="true"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:window-width="1920"
inkscape:window-height="1017"
inkscape:window-x="1912"
inkscape:window-y="70"
inkscape:window-maximized="1" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-62.058587,-90.445746)">
<g
style="fill:#000000"
id="g886"
transform="matrix(0.39972707,0,0,0.34817986,61.931647,90.445746)">
<path
id="path839"
d="M 115.822,0 H 2.94268 C 2.24645,0 1.57875,0.297103 1.08644,0.825953 0.594137,1.3548 0.317566,2.07208 0.317566,2.81999 V 124.079 c 0,0.748 0.276571,1.466 0.768874,1.995 0.49231,0.528 1.16001,0.825 1.85624,0.825 H 115.822 c 0.697,0 1.364,-0.297 1.857,-0.825 0.492,-0.529 0.769,-1.247 0.769,-1.995 V 2.81999 c 0,-0.74791 -0.277,-1.46519 -0.769,-1.994037 C 117.186,0.297103 116.519,0 115.822,0 Z M 79.0709,81.7797 c 0,0.7479 -0.2766,1.4651 -0.7689,1.994 -0.4923,0.5288 -1.16,0.8259 -1.8562,0.8259 H 42.3193 c -0.6962,0 -1.3639,-0.2971 -1.8562,-0.8259 -0.4923,-0.5289 -0.7689,-1.2461 -0.7689,-1.994 V 45.1198 c 0,-0.7479 0.2766,-1.4652 0.7689,-1.994 0.4923,-0.5289 1.16,-0.826 1.8562,-0.826 h 34.1265 c 0.6962,0 1.3639,0.2971 1.8562,0.826 0.4923,0.5288 0.7689,1.2461 0.7689,1.994 z"
inkscape:connector-curvature="0"
style="fill:#000000" />
<path
id="path841"
d="m 352.131,42.305 h -34.127 c -1.449,0 -2.625,1.2625 -2.625,2.82 v 36.6598 c 0,1.5574 1.176,2.82 2.625,2.82 h 34.127 c 1.45,0 2.625,-1.2626 2.625,-2.82 V 45.125 c 0,-1.5575 -1.175,-2.82 -2.625,-2.82 z"
inkscape:connector-curvature="0"
style="fill:#000000" />
<path
id="path843"
d="m 312.763,0.00204468 h -34.126 c -1.45,0 -2.625,1.26255532 -2.625,2.81998532 V 39.4819 c 0,1.5574 1.175,2.82 2.625,2.82 h 34.126 c 1.45,0 2.626,-1.2626 2.626,-2.82 V 2.82203 c 0,-1.55743 -1.176,-2.81998532 -2.626,-2.81998532 z"
inkscape:connector-curvature="0"
style="fill:#000000" />
<path
id="path845"
d="m 391.529,0.00204468 h -34.127 c -1.449,0 -2.625,1.26255532 -2.625,2.81998532 V 39.4819 c 0,1.5574 1.176,2.82 2.625,2.82 h 34.127 c 1.45,0 2.625,-1.2626 2.625,-2.82 V 2.82203 c 0,-1.55743 -1.175,-2.81998532 -2.625,-2.81998532 z"
inkscape:connector-curvature="0"
style="fill:#000000" />
<path
id="path847"
d="m 312.763,84.6038 h -34.126 c -1.45,0 -2.625,1.2625 -2.625,2.8199 v 36.6603 c 0,1.557 1.175,2.82 2.625,2.82 h 34.126 c 1.45,0 2.626,-1.263 2.626,-2.82 V 87.4237 c 0,-1.5574 -1.176,-2.8199 -2.626,-2.8199 z"
inkscape:connector-curvature="0"
style="fill:#000000" />
<path
id="path849"
d="m 391.529,84.6038 h -34.127 c -1.449,0 -2.625,1.2625 -2.625,2.8199 v 36.6603 c 0,1.557 1.176,2.82 2.625,2.82 h 34.127 c 1.45,0 2.625,-1.263 2.625,-2.82 V 87.4237 c 0,-1.5574 -1.175,-2.8199 -2.625,-2.8199 z"
inkscape:connector-curvature="0"
style="fill:#000000" />
<path
id="path851"
d="m 253.651,0.00204468 h -34.126 c -1.45,0 -2.626,1.26255532 -2.626,2.81998532 V 39.4819 c 0,1.5574 1.176,2.82 2.626,2.82 h 34.126 c 1.45,0 2.625,-1.2626 2.625,-2.82 V 2.82203 c 0,-1.55743 -1.175,-2.81998532 -2.625,-2.81998532 z"
inkscape:connector-curvature="0"
style="fill:#000000" />
<path
id="path853"
d="m 253.651,84.6038 h -34.126 c -1.45,0 -2.626,1.2625 -2.626,2.8199 v 36.6603 c 0,1.557 1.176,2.82 2.626,2.82 h 34.126 c 1.45,0 2.625,-1.263 2.625,-2.82 V 87.4237 c 0,-1.5574 -1.175,-2.8199 -2.625,-2.8199 z"
inkscape:connector-curvature="0"
style="fill:#000000" />
<path
id="path855"
d="m 216.888,45.0881 c 0,-0.7479 -0.277,-1.4652 -0.769,-1.994 -0.492,-0.5289 -1.16,-0.826 -1.856,-0.826 H 177.511 V 2.81999 c 0,-0.74791 -0.277,-1.46519 -0.769,-1.994037 C 176.25,0.297103 175.582,0 174.886,0 H 140.76 c -0.697,0 -1.364,0.297103 -1.857,0.825953 -0.492,0.528847 -0.769,1.246127 -0.769,1.994037 V 124.016 c 0,0.748 0.277,1.465 0.769,1.994 0.493,0.529 1.16,0.826 1.857,0.826 h 34.126 c 0.696,0 1.364,-0.297 1.856,-0.826 0.492,-0.529 0.769,-1.246 0.769,-1.994 V 84.5679 h 36.752 c 0.696,0 1.364,-0.2971 1.856,-0.8259 0.492,-0.5289 0.769,-1.2462 0.769,-1.9941 z"
inkscape:connector-curvature="0"
style="fill:#000000" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.8 KiB

View File

@@ -0,0 +1,39 @@
<svg width="498" height="499" viewBox="0 0 498 499" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M411.491 249.489C411.491 254.498 411.243 259.461 410.814 264.38H318.347L311.288 250.053L261.062 350.343L219.497 230.446L191.171 324.058L153.304 264.38H88.0809C87.6524 259.461 87.4043 254.498 87.4043 249.489C87.4043 244.48 87.6524 239.493 88.0809 234.575H169.745L181.563 253.211L217.693 133.991L266.069 273.879L311.513 183.065L336.773 234.575H410.746C411.197 239.493 411.491 244.547 411.491 249.489Z" fill="#444444"/>
<path d="M277.276 40.9205C277.132 49.4665 274.393 57.7665 269.422 64.7181C264.451 71.6697 257.484 76.9441 249.446 79.8408C227.172 79.8408 205.116 84.2302 184.538 92.7583C163.96 101.286 145.263 113.786 129.514 129.544C113.765 145.302 101.273 164.009 92.751 184.597C84.2292 205.184 79.8446 227.25 79.8476 249.533C76.9636 241.367 71.6193 234.295 64.5508 229.294C57.4824 224.292 49.0376 221.607 40.3798 221.607C31.7221 221.607 23.2773 224.292 16.2089 229.294C9.14043 234.295 3.79611 241.367 0.912119 249.533C0.90323 216.878 7.32551 184.541 19.8121 154.369C32.2987 124.198 50.6048 96.7832 73.6848 73.6914C96.7648 50.5996 124.166 32.2832 154.324 19.7887C184.482 7.29408 216.805 0.866146 249.446 0.872074C257.664 3.83466 264.758 9.28105 269.745 16.4566C274.731 23.6322 277.363 32.1817 277.276 40.9205Z" fill="url(#paint0_linear_430_3947)"/>
<path d="M497.934 249.488C495.05 257.655 489.706 264.726 482.637 269.728C475.569 274.729 467.124 277.415 458.466 277.415C449.809 277.415 441.364 274.729 434.295 269.728C427.227 264.726 421.883 257.655 418.999 249.488C418.987 204.503 401.12 161.362 369.326 129.551C337.532 97.7388 294.412 79.8588 249.445 79.8408C257.609 76.9556 264.677 71.609 269.676 64.5376C274.676 57.4662 277.36 49.0179 277.36 40.3564C277.36 31.695 274.676 23.2467 269.676 16.1753C264.677 9.10385 257.609 3.75728 249.445 0.87207C282.079 0.87207 314.394 7.30288 344.543 19.7973C374.693 32.2917 402.087 50.605 425.161 73.6914C448.236 96.7779 466.539 124.185 479.026 154.349C491.512 184.512 497.937 216.841 497.934 249.488Z" fill="url(#paint1_linear_430_3947)"/>
<path d="M497.933 249.488C497.936 282.134 491.511 314.462 479.024 344.624C466.537 374.786 448.234 402.192 425.159 425.276C402.084 448.361 374.69 466.672 344.54 479.164C314.391 491.656 282.077 498.084 249.444 498.081C241.281 495.196 234.213 489.849 229.213 482.778C224.214 475.707 221.529 467.258 221.529 458.597C221.529 449.935 224.214 441.487 229.213 434.416C234.213 427.344 241.281 421.998 249.444 419.112C271.718 419.115 293.774 414.729 314.354 406.203C334.933 397.678 353.632 385.181 369.383 369.425C385.134 353.67 397.629 334.964 406.153 314.377C414.678 293.791 419.065 271.726 419.065 249.442C421.949 257.609 427.293 264.68 434.362 269.682C441.43 274.683 449.875 277.369 458.533 277.369C467.191 277.369 475.635 274.683 482.704 269.682C489.772 264.68 495.117 257.609 498.001 249.442L497.933 249.488Z" fill="url(#paint2_linear_430_3947)"/>
<path d="M249.446 498.083C183.542 498.083 120.338 471.892 73.7377 425.271C27.137 378.651 0.957031 315.42 0.957031 249.489C3.84102 241.322 9.18534 234.251 16.2538 229.25C23.3222 224.248 31.767 221.562 40.4247 221.562C49.0825 221.562 57.5273 224.248 64.5957 229.25C71.6642 234.251 77.0085 241.322 79.8925 249.489C79.8925 294.488 97.7608 337.645 129.567 369.464C145.315 385.219 164.012 397.717 184.588 406.244C205.165 414.771 227.219 419.159 249.491 419.159C241.328 422.044 234.259 427.391 229.26 434.462C224.261 441.534 221.576 449.982 221.576 458.644C221.576 467.305 224.261 475.753 229.26 482.825C234.259 489.896 241.328 495.243 249.491 498.128L249.446 498.083Z" fill="url(#paint3_linear_430_3947)"/>
<defs>
<linearGradient id="paint0_linear_430_3947" x1="0.957225" y1="125.169" x2="277.276" y2="125.169" gradientUnits="userSpaceOnUse">
<stop stop-color="#D1C6E0"/>
<stop offset="0.35" stop-color="#9274B2"/>
<stop offset="0.71" stop-color="#652F8D"/>
<stop offset="1" stop-color="#2B1143"/>
</linearGradient>
<linearGradient id="paint1_linear_430_3947" x1="249.445" y1="139.09" x2="497.934" y2="139.09" gradientUnits="userSpaceOnUse">
<stop offset="0.01" stop-color="#82C2DF"/>
<stop offset="0.3" stop-color="#3CAFD9"/>
<stop offset="0.59" stop-color="#0379B8"/>
<stop offset="0.7" stop-color="#006DAC"/>
<stop offset="0.73" stop-color="#006AA9"/>
<stop offset="0.91" stop-color="#334C84"/>
<stop offset="1" stop-color="#3A447A"/>
</linearGradient>
<linearGradient id="paint2_linear_430_3947" x1="240.4" y1="466.797" x2="581.559" y2="212.975" gradientUnits="userSpaceOnUse">
<stop stop-color="#0C6237"/>
<stop offset="0.406444" stop-color="#31BB77"/>
<stop offset="0.752196" stop-color="#5BC792"/>
<stop offset="0.98" stop-color="#B1E9CD"/>
</linearGradient>
<linearGradient id="paint3_linear_430_3947" x1="0.957031" y1="359.865" x2="249.446" y2="359.865" gradientUnits="userSpaceOnUse">
<stop stop-color="#931B1E"/>
<stop offset="0.32" stop-color="#ED4725"/>
<stop offset="0.38" stop-color="#EE5F26"/>
<stop offset="0.53" stop-color="#F08F27"/>
<stop offset="0.74" stop-color="#F5C321"/>
<stop offset="0.88" stop-color="#F8D718"/>
<stop offset="1" stop-color="#F6DF65"/>
</linearGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 5.1 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 671 KiB

After

Width:  |  Height:  |  Size: 4.7 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 9.5 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="200px" height="200px" style="shape-rendering:geometricPrecision; text-rendering:geometricPrecision; image-rendering:optimizeQuality; fill-rule:evenodd; clip-rule:evenodd" xmlns:xlink="http://www.w3.org/1999/xlink">
<g><path style="opacity:1" fill="#fefefe" d="M -0.5,-0.5 C 66.1667,-0.5 132.833,-0.5 199.5,-0.5C 199.5,66.1667 199.5,132.833 199.5,199.5C 132.833,199.5 66.1667,199.5 -0.5,199.5C -0.5,132.833 -0.5,66.1667 -0.5,-0.5 Z"/></g>
<g><path style="opacity:1" fill="#0e0e0e" d="M 119.5,47.5 C 133.743,46.0344 143.909,51.701 150,64.5C 154.009,81.9852 147.509,93.4852 130.5,99C 123.167,99.3333 115.833,99.6667 108.5,100C 104.333,101.5 101.5,104.333 100,108.5C 99.5001,122.829 99.3334,137.163 99.5,151.5C 82.1667,151.5 64.8333,151.5 47.5,151.5C 47.5,132.833 47.5,114.167 47.5,95.5C 60.0736,101.213 72.4069,100.713 84.5,94C 88.6667,91.1667 92.1667,87.6667 95,83.5C 97.7515,75.0718 100.752,66.7384 104,58.5C 108.127,53.202 113.294,49.5354 119.5,47.5 Z"/></g>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="2030px" height="2048px" style="shape-rendering:geometricPrecision; text-rendering:geometricPrecision; image-rendering:optimizeQuality; fill-rule:evenodd; clip-rule:evenodd" xmlns:xlink="http://www.w3.org/1999/xlink">
<g><path style="opacity:0.999" fill="#0066ff" d="M 922.5,-0.5 C 984.167,-0.5 1045.83,-0.5 1107.5,-0.5C 1183.34,2.62698 1259.01,9.46031 1334.5,20C 1435.99,34.2851 1532.99,63.2851 1625.5,107C 1686.68,137.224 1742.68,174.891 1793.5,220C 1851.84,280.056 1898,348.556 1932,425.5C 1968.98,509.727 1994.31,597.394 2008,688.5C 2018.55,761.657 2025.72,834.99 2029.5,908.5C 2029.5,984.833 2029.5,1061.17 2029.5,1137.5C 2025.59,1213.37 2018.09,1289.04 2007,1364.5C 1992.77,1456.52 1966.44,1544.85 1928,1629.5C 1897.8,1694.64 1859.13,1753.97 1812,1807.5C 1763.29,1856.1 1708.46,1896.26 1647.5,1928C 1544.73,1980.25 1436.06,2013.59 1321.5,2028C 1239.36,2038.97 1157.03,2045.47 1074.5,2047.5C 1060.5,2047.5 1046.5,2047.5 1032.5,2047.5C 1020.83,2046.17 1009.17,2046.17 997.5,2047.5C 983.5,2047.5 969.5,2047.5 955.5,2047.5C 872.975,2045.46 790.642,2038.96 708.5,2028C 606.933,2014.94 509.599,1987.28 416.5,1945C 347.284,1912.42 284.617,1870.42 228.5,1819C 172.903,1758.37 128.403,1690.2 95,1614.5C 60.5996,1534.57 36.5996,1451.57 23,1365.5C 10.7368,1283.1 2.90342,1200.43 -0.5,1117.5C -0.5,1054.5 -0.5,991.5 -0.5,928.5C 2.77579,849.967 9.94246,771.634 21,693.5C 36.75,581.253 70.75,474.92 123,374.5C 154.057,316.905 192.557,264.739 238.5,218C 316.452,150.162 404.785,99.4952 503.5,66C 559.947,46.805 617.613,32.4717 676.5,23C 758.221,10.617 840.221,2.78365 922.5,-0.5 Z"/></g>
<g><path style="opacity:1" fill="#fefeff" d="M 626.5,1312.5 C 626.5,1276.83 626.5,1241.17 626.5,1205.5C 722.5,1205.5 818.5,1205.5 914.5,1205.5C 914.333,1244.17 914.5,1282.83 915,1321.5C 919.897,1362.39 941.73,1389.55 980.5,1403C 1004.93,1409.12 1029.59,1410.12 1054.5,1406C 1094.33,1398.51 1118.83,1375.01 1128,1335.5C 1139.64,1293.91 1132.31,1256.24 1106,1222.5C 1094.47,1209.3 1081.97,1197.13 1068.5,1186C 1051.72,1173.22 1034.38,1161.22 1016.5,1150C 961.491,1118.16 906.158,1086.83 850.5,1056C 810.408,1032.63 772.408,1006.29 736.5,977C 708.562,953.08 685.062,925.58 666,894.5C 645.646,856.764 634.646,816.431 633,773.5C 624.333,602.57 702.833,497.07 868.5,457C 927.844,444.215 987.844,439.548 1048.5,443C 1106.86,444.281 1163.52,454.614 1218.5,474C 1318.44,513.324 1371.28,586.824 1377,694.5C 1377.5,726.832 1377.67,759.165 1377.5,791.5C 1288.17,791.5 1198.83,791.5 1109.5,791.5C 1109.67,765.165 1109.5,738.831 1109,712.5C 1103.68,665.514 1077.85,637.347 1031.5,628C 1000.82,622.223 972.154,627.223 945.5,643C 926.118,658.253 914.285,678.086 910,702.5C 905.639,729.545 909.639,755.212 922,779.5C 936.918,800.419 955.085,817.919 976.5,832C 993.234,843.062 1010.23,853.729 1027.5,864C 1086.31,895.238 1144.65,927.238 1202.5,960C 1251.24,988.047 1295.4,1022.21 1335,1062.5C 1363.36,1092.86 1383.19,1128.19 1394.5,1168.5C 1403.09,1210.74 1405.93,1253.41 1403,1296.5C 1401.52,1447.37 1328.36,1543.2 1183.5,1584C 1116.22,1600.81 1047.89,1607.14 978.5,1603C 920.733,1601.37 864.733,1590.71 810.5,1571C 693.944,1524.55 632.61,1438.38 626.5,1312.5 Z"/></g>
<g><path style="opacity:1" fill="#8eb7ff" d="M 914.5,1205.5 C 818.5,1205.5 722.5,1205.5 626.5,1205.5C 626.5,1241.17 626.5,1276.83 626.5,1312.5C 625.502,1276.67 625.168,1240.67 625.5,1204.5C 722.001,1204.17 818.335,1204.5 914.5,1205.5 Z"/></g>
</svg>

After

Width:  |  Height:  |  Size: 3.5 KiB

View File

@@ -0,0 +1,31 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 26.0.3, 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 545.5 445.6" style="enable-background:new 0 0 545.5 445.6;" xml:space="preserve">
<style type="text/css">
.st0{fill-rule:evenodd;clip-rule:evenodd;fill:#00A2FF;}
</style>
<g>
<path class="st0" d="M302.5,316.3c-2.1-0.5-4.2-1-6.2-1.4c-14.7-2.9-29.8-3-44.5-0.3c-1.8,0.3-3.6,0.7-5.4,1.2
c-11.2,2.8-13.9,9.2-8.8,19.4c5.8,12,15.1,20.8,27.2,26.7c5.9,3,12.9,2.9,18.7-0.2c11.9-5.9,21.4-15.7,27-27.7
C314.8,324.4,312.7,318.9,302.5,316.3z"/>
<path class="st0" d="M507.2,11.2c-34-35.7-158.2,24.1-184.7,37.4c-3.3,1.7-7,2.6-10.8,2.6h-38.3l-38.7,0.1c-3.8,0-7.5-0.9-10.9-2.6
C197.3,35.3,73.2-24.4,39.3,11.2C1.2,51.2-11.1,314.6,11,340.4c11.5,13.4,90,57.8,152.4,81.5c23,8.9,62.5,23.7,110,23.7
c46.1,0,87.8-14,109.2-23.5c98.7-43.3,140.2-67.4,151.7-80.8C556.3,315.5,545.3,51.2,507.2,11.2z M374.2,66.8
c0,0,25.3-18.2,61.9-27.1c5-1.2,10.1-1.8,15.3-1.7c18.6,0,32.8,12.1,37.3,30.9c0,0,8.3,36.7,8.7,69.9c0.1,11.1-8.4,18.9-18.9,18.9
c-2.8,0-5.6-0.7-8.1-1.9h-0.1l-97.2-56l0,0c-5.3-3.1-8.7-8.6-9.2-14.7c0-0.5-0.1-1-0.1-1.5C363.8,76.3,368,70.9,374.2,66.8
L374.2,66.8z M57.1,69c4.4-18.9,18.7-30.9,37.3-30.9c5.2-0.1,10.3,0.4,15.3,1.7c36.6,8.9,61.9,27.1,61.9,27.1
c6.3,4.1,10.4,9.5,10.4,16.8c0,0.5,0,1-0.1,1.5c-0.5,6.1-3.9,11.6-9.2,14.7l0,0L75.4,156h-0.1c-2.5,1.2-5.3,1.8-8.1,1.9
c-10.4,0-19-7.8-18.9-18.9C48.8,105.6,57.1,69,57.1,69L57.1,69z M133.8,261.9l-0.1,0.1l-41.8,27.6c-12.1,8-16.2,12.1-19.3,17.7
c-2.7,4.7-3.6,10.2-3.7,15.6c0,6.1-2.2,9.9-3.9,11.7c-4,4.1-8.9,5-14.5,3.5c-2.4-0.6-4.7-1.7-6.6-3.3c-20-16.4-22.3-48.4-5.1-71.2
c10.8-14.4,18.4-18.5,64.1-48.6s52.5-35.4,70-39.7c27.7-6.8,56.2,7.9,63.4,32.8c0.7,2.4,0.8,4.9,0.4,7.3c-0.8,5.7-3.5,9.9-8.9,11.9
c-2.3,0.9-6.7,1.3-12.3-1c-5-2.2-10.4-3.2-15.8-2.8c-6.4,0.7-11.8,2.8-23.9,10.7L134,261.8L133.8,261.9z M385,364.2
c-7.9,9.8-17.8,19.2-28.6,24.9c-55,29.2-110.9,29-165.9-0.2c-10.6-5.6-20.3-14.8-28.1-24.4c-14.3-17.7-13.8-39.8-0.5-58.5
c8.1-11.4,18.8-19.5,30.6-26c25.5-13.9,52.7-19.7,81.2-19.9c29.5,0.3,57.9,5.9,83.5,21.8c10.6,6.6,20.1,14.9,27.9,24.7
C399.2,324.3,399,346.8,385,364.2L385,364.2z M501.9,334.8c-1.9,1.6-4.2,2.7-6.6,3.3c-5.5,1.5-10.5,0.7-14.5-3.5
c-1.7-1.8-3.9-5.6-3.9-11.7c0.1-5.4-1.1-10.8-3.7-15.6c-3.1-5.6-7.2-9.7-19.3-17.7L412,262l-0.1-0.1l-0.1-0.1L370,234.2
c-12.1-8-17.5-10.1-23.9-10.7c-5.4-0.6-10.8,0.7-15.8,2.8c-5.6,2.4-10,1.9-12.3,1c-5.4-2-8.1-6.2-8.9-11.9
c-0.4-2.4-0.3-4.9,0.4-7.3c7.2-24.8,35.7-39.6,63.4-32.8c17.5,4.3,24.3,9.6,70,39.7c45.7,30.1,53.3,34.3,64.1,48.6
C524.2,286.4,521.9,318.5,501.9,334.8L501.9,334.8z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

@@ -0,0 +1,10 @@
<svg width="114" height="47" viewBox="0 0 114 47" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M51.2384 0H9.40916C6.91615 0.00798102 4.52753 1.00186 2.76469 2.76469C1.00186 4.52753 0.00798102 6.91615 0 9.40916L0 27.582C0.0078085 30.075 1.00163 32.4638 2.7645 34.2266C4.52737 35.9895 6.91609 36.9833 9.40916 36.9911H40.0383L51.3154 46.1371V36.9911C53.7957 36.9643 56.1658 35.9621 57.9127 34.2012C59.6597 32.4403 60.6431 30.0624 60.6502 27.582V9.40916C60.6419 6.9158 59.6476 4.52698 57.8842 2.76415C56.1209 1.00132 53.7318 0.00763233 51.2384 0Z" fill="#224ABE"/>
<path d="M72.2326 9.89356C73.1071 9.8842 73.9779 10.0091 74.8145 10.264C75.5491 10.4849 76.2303 10.8549 76.8154 11.351C77.3708 11.8338 77.8135 12.4326 78.1123 13.1052C78.7382 14.6244 78.7382 16.3294 78.1123 17.8486C77.8138 18.5213 77.371 19.1201 76.8154 19.6027C76.2302 20.0987 75.549 20.4687 74.8145 20.6897C73.9778 20.9445 73.1071 21.0694 72.2326 21.0602H70.0612V27.1893H66.3555V9.89356H72.2326ZM70.0612 17.7749H72.3076C72.9682 17.8018 73.6167 17.5918 74.1361 17.1827C74.3625 16.9654 74.5428 16.7046 74.6659 16.4159C74.789 16.1273 74.8524 15.8167 74.8524 15.5029C74.8524 15.189 74.789 14.8785 74.6659 14.5898C74.5428 14.3011 74.3625 14.0403 74.1361 13.823C73.6167 13.4138 72.9682 13.2038 72.3076 13.2308H70.0593L70.0612 17.7749Z" fill="#224ABE"/>
<path d="M79.4944 20.7325C79.4871 19.8818 79.6519 19.0385 79.9788 18.2531C80.3057 17.4677 80.7879 16.7565 81.3966 16.1622C82.002 15.5775 82.715 15.1158 83.4962 14.8028C85.18 14.1445 87.05 14.1445 88.7338 14.8028C89.5149 15.116 90.2278 15.5777 90.8333 16.1622C91.4407 16.7583 91.9231 17.4695 92.2524 18.2543C92.5818 19.039 92.7514 19.8815 92.7514 20.7325C92.7514 21.5835 92.5818 22.426 92.2524 23.2108C91.9231 23.9955 91.4407 24.7067 90.8333 25.3029C90.2281 25.8876 89.5151 26.3491 88.7338 26.6616C87.0501 27.3206 85.1798 27.3206 83.4962 26.6616C82.7148 26.3492 82.0017 25.8877 81.3966 25.3029C80.7879 24.7085 80.3057 23.9973 79.9788 23.2119C79.6519 22.4265 79.4871 21.5832 79.4944 20.7325ZM83.0521 20.7325C83.0476 21.1571 83.1316 21.5779 83.2988 21.9682C83.4555 22.3341 83.6774 22.6685 83.9535 22.9552C84.2289 23.2376 84.5565 23.464 84.9181 23.6217C85.48 23.8617 86.1013 23.9265 86.7006 23.8075C87.2999 23.6886 87.8494 23.3915 88.2771 22.9552C88.5534 22.6687 88.7753 22.3342 88.9317 21.9682C89.0947 21.5767 89.1787 21.1569 89.1787 20.7328C89.1787 20.3088 89.0947 19.889 88.9317 19.4975C88.774 19.1314 88.5511 18.7969 88.2738 18.5105C87.8461 18.0742 87.2966 17.7771 86.6973 17.6582C86.098 17.5392 85.4767 17.604 84.9148 17.844C84.5533 18.002 84.2258 18.2283 83.9502 18.5105C83.6742 18.7973 83.4524 19.1317 83.2955 19.4975C83.1298 19.8879 83.0465 20.3085 83.0521 20.7325Z" fill="#224ABE"/>
<path d="M94.5647 20.7323C94.5574 19.8816 94.7222 19.0383 95.0491 18.2529C95.376 17.4675 95.8582 16.7563 96.4669 16.1619C97.0722 15.5772 97.7853 15.1155 98.5666 14.8025C100.25 14.1443 102.12 14.1443 103.803 14.8025C104.585 15.1157 105.298 15.5773 105.903 16.1619C106.51 16.7582 106.993 17.4694 107.322 18.2541C107.651 19.0389 107.821 19.8813 107.821 20.7323C107.821 21.5833 107.651 22.4257 107.322 23.2104C106.993 23.9952 106.51 24.7064 105.903 25.3026C105.298 25.8874 104.585 26.3489 103.803 26.6614C102.12 27.3204 100.25 27.3204 98.5666 26.6614C97.7851 26.349 97.072 25.8875 96.4669 25.3026C95.8582 24.7083 95.376 23.9971 95.0491 23.2117C94.7222 22.4263 94.5574 21.583 94.5647 20.7323ZM98.1224 20.7323C98.1182 21.1568 98.2022 21.5776 98.3691 21.968C98.5266 22.3342 98.7496 22.6687 99.0271 22.9549C99.3025 23.2374 99.6302 23.4637 99.9918 23.6215C100.554 23.8613 101.175 23.926 101.775 23.8071C102.374 23.6882 102.923 23.3912 103.351 22.9549C103.629 22.6685 103.852 22.3341 104.009 21.968C104.172 21.5765 104.256 21.1566 104.256 20.7326C104.256 20.3086 104.172 19.8887 104.009 19.4973C103.852 19.1312 103.629 18.7968 103.351 18.5103C102.924 18.074 102.374 17.7769 101.775 17.658C101.175 17.5391 100.554 17.6038 99.9918 17.8438C99.6303 18.0017 99.3027 18.228 99.0271 18.5103C98.7498 18.7967 98.5268 19.1311 98.3691 19.4973C98.2026 19.8875 98.1189 20.308 98.1231 20.7323H98.1224Z" fill="#224ABE"/>
<path d="M113.507 9.89404V27.1878H109.9V9.89404H113.507Z" fill="#224ABE"/>
<path d="M8.76285 21.4469C9.03704 22.1328 9.49428 22.7303 10.0847 23.1741C10.6644 23.6106 11.3726 23.8421 12.0982 23.8321C12.652 23.8475 13.1979 23.6982 13.6668 23.4031C13.8758 23.2731 14.0465 23.09 14.1616 22.8724C14.2766 22.6549 14.3318 22.4107 14.3215 22.1648C14.3215 21.3866 13.7205 20.7911 12.5186 20.3783L10.4433 19.6638C9.31171 19.3025 8.27973 18.6828 7.42912 17.8537C7.05614 17.4609 6.76559 16.9974 6.57461 16.4906C6.38362 15.9838 6.29607 15.4438 6.31712 14.9026C6.30603 14.1936 6.44927 13.4906 6.73692 12.8425C7.01137 12.2378 7.41576 11.7011 7.92129 11.2705C8.44924 10.8233 9.05689 10.4797 9.71232 10.2579C10.4402 10.0125 11.2044 9.89166 11.9725 9.90061C13.2075 9.88661 14.422 10.2165 15.4802 10.8534C16.5198 11.4741 17.3459 12.3964 17.8489 13.4978L14.761 15.2132C14.5069 14.6697 14.1404 14.1862 13.6859 13.7946C13.2284 13.4035 12.6426 13.1954 12.0409 13.2103C11.5434 13.1862 11.052 13.3288 10.6447 13.6156C10.4757 13.7376 10.339 13.899 10.2465 14.0858C10.154 14.2725 10.1084 14.4791 10.1137 14.6874C10.109 14.8733 10.1466 15.0577 10.2236 15.2269C10.3007 15.396 10.4152 15.5455 10.5585 15.6639C10.9272 15.958 11.3454 16.1839 11.7935 16.3311L14.0418 17.1647C15.2203 17.5328 16.2868 18.1926 17.1423 19.0828C17.8174 19.8746 18.1741 20.8891 18.1431 21.9292C18.1578 22.7049 17.984 23.4727 17.6364 24.1663C17.31 24.8043 16.851 25.3652 16.2902 25.8113C15.7102 26.265 15.0534 26.6109 14.3511 26.8325C13.6047 27.0725 12.825 27.1931 12.0409 27.1898C11.3399 27.1929 10.6417 27.1006 9.96564 26.9154C9.32263 26.7399 8.70737 26.4752 8.13776 26.1291C7.57392 25.784 7.06641 25.3544 6.63296 24.8552C6.17983 24.3333 5.82033 23.7369 5.57031 23.0925L8.76285 21.4469Z" fill="#FAFAFA"/>
<path d="M39.5921 9.89404V27.1878H35.9857V16.2811L31.4844 27.1878H28.8308L24.3499 16.3304V27.1872H20.7441V9.89404H25.2651L30.2296 21.9259L35.6646 9.89404H39.5921Z" fill="#FAFAFA"/>
<path d="M45.5596 21.447C45.8338 22.1329 46.2911 22.7304 46.8815 23.1742C47.4612 23.6107 48.1694 23.8422 48.895 23.8322C49.4488 23.8476 49.9947 23.6983 50.4636 23.4032C50.6726 23.2733 50.8434 23.0901 50.9584 22.8726C51.0734 22.655 51.1286 22.4108 51.1183 22.1649C51.1183 21.3867 50.5173 20.7912 49.3154 20.3784L47.2415 19.6606C46.1098 19.2994 45.0779 18.6796 44.2272 17.8505C43.8543 17.4577 43.5637 16.9943 43.3727 16.4874C43.1817 15.9806 43.0942 15.4406 43.1152 14.8994C43.1042 14.1904 43.2474 13.4874 43.535 12.8393C43.8095 12.2346 44.2139 11.6979 44.7194 11.2674C45.2474 10.8201 45.855 10.4766 46.5104 10.2547C47.2383 10.0093 48.0025 9.88846 48.7706 9.89744C50.0056 9.88344 51.2201 10.2133 52.2783 10.8502C53.3196 11.4692 54.1478 12.3904 54.653 13.4913L51.565 15.2067C51.3109 14.6632 50.9445 14.1797 50.4899 13.7881C50.0323 13.3974 49.4465 13.1893 48.845 13.2038C48.3476 13.1798 47.8565 13.3225 47.4494 13.6091C47.2804 13.7312 47.1438 13.8926 47.0513 14.0793C46.9587 14.2661 46.9131 14.4726 46.9184 14.681C46.9137 14.8668 46.9513 15.0513 47.0283 15.2204C47.1054 15.3896 47.2199 15.539 47.3632 15.6574C47.7319 15.9515 48.1501 16.1775 48.5982 16.3246L50.8465 17.1583C52.025 17.5264 53.0915 18.1861 53.9469 19.0763C54.6221 19.8681 54.9788 20.8826 54.9477 21.9227C54.9625 22.6985 54.7887 23.4662 54.4411 24.1599C54.1147 24.7979 53.6557 25.3587 53.0949 25.8048C52.5151 26.2598 51.8583 26.6068 51.1558 26.8293C50.4093 27.0694 49.6297 27.1899 48.8456 27.1866C48.1448 27.1897 47.4469 27.0974 46.771 26.9122C46.128 26.7367 45.5127 26.4721 44.9431 26.1259C44.3784 25.781 43.8699 25.3514 43.4357 24.8521C42.9826 24.3301 42.6231 23.7338 42.373 23.0893L45.5596 21.447Z" fill="#FAFAFA"/>
</svg>

After

Width:  |  Height:  |  Size: 7.5 KiB

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0.6000006198883057 0.9885644912719727 95 37.2114372253418" enable-background="new 0 0 96 39"><path fill="#ABD3FF" d="M54.6 38.2c-.4 0-.8-.1-1.1-.4-.7-.5-.9-1.5-.4-2.3.1-.2 11.3-18.8 5.5-28-1.2-1.9-2.5-3-4-3-2.8-.1-5.9 3-6.9 4.3-.6.8-1.7.9-2.5.3-.8-.6-.9-1.7-.3-2.5.2-.2 4.6-5.9 9.8-5.6 2.7.1 5 1.7 6.8 4.7 4.3 6.9 1.3 17.3-1.7 24.2 3.1-2.2 7-4.3 10.6-4.9 1-.1 1.9.5 2 1.5.1 1-.5 1.9-1.5 2-6.9 1.1-15.1 9.1-15.2 9.2-.2.4-.7.5-1.1.5z"></path><g fill="#fff"><path d="M11.5 23.5c0 .9-.2 1.8-.7 2.5s-1.2 1.3-2.1 1.7-2 .6-3.3.6c-1 0-1.9-.1-2.6-.2-.7-.1-1.4-.4-2.2-.7v-3.6c.8.4 1.6.7 2.5.9.8.2 1.6.3 2.3.3.6 0 1.1-.1 1.4-.3.3-.2.4-.5.4-.8 0-.2-.1-.4-.2-.5 0-.2-.2-.4-.5-.5-.3-.2-1-.5-2.1-1-1-.4-1.8-.9-2.3-1.3-.5-.4-.9-.9-1.1-1.4-.2-.5-.4-1.2-.4-1.9 0-1.4.5-2.5 1.6-3.2 1-.8 2.5-1.2 4.3-1.2 1.6 0 3.3.4 4.9 1.1l-1.2 3c-1.5-.6-2.7-1-3.8-1-.5 0-.9.1-1.2.3-.2.2-.4.5-.4.7 0 .3.2.6.5.8.3.2 1.2.7 2.6 1.3 1.3.6 2.3 1.2 2.8 1.9s.8 1.5.8 2.5zM20.3 28.1l-3.2-10.9H17c.1 1.9.2 3.3.2 4.3V28h-3.7V13h5.6l3.3 10.7h.1L25.6 13h5.6v15.1h-3.9V20.4s.1-1.4.1-3.1h-.1l-3.1 10.8h-3.9zM40.6 28.1h-4.2V16.3h-3.8V13h11.8v3.3h-3.8v11.8zM57.5 17.8c0 1.7-.5 3-1.5 3.9-1 .9-2.5 1.4-4.4 1.4h-1.2v5h-4.2V13h5.4c2 0 3.5.4 4.4 1.2 1 .9 1.5 2.1 1.5 3.6zm-7.1 2h.8c.6 0 1.1-.2 1.5-.5.4-.3.6-.8.6-1.4 0-1-.6-1.5-1.8-1.5h-1.1v3.4zM72 19.3h6.7v8.1c-1.8.6-3.8.9-6 .9-2.4 0-4.3-.7-5.6-2-1.3-1.3-2-3.3-2-5.8 0-2.4.7-4.3 2.2-5.7 1.4-1.4 3.5-2 6-2 1 0 1.9.1 2.8.3.9.2 1.6.4 2.3.7L77 16.9c-1.1-.5-2.4-.8-3.7-.8-1.2 0-2.2.4-2.9 1.2-.7.8-1 1.9-1 3.3s.3 2.5.9 3.2c.6.7 1.5 1.1 2.6 1.1.6 0 1.2-.1 1.7-.2v-2.4H72v-3zM95.6 20.5c0 2.5-.6 4.5-1.9 5.8s-3.2 2-5.7 2c-2.4 0-4.3-.7-5.6-2-1.3-1.3-2-3.3-2-5.8s.7-4.4 1.9-5.8 3.2-2 5.7-2 4.4.7 5.6 2 2 3.3 2 5.8zm-10.7 0c0 2.9 1.1 4.4 3.2 4.4 1.1 0 1.9-.4 2.4-1.1.5-.7.8-1.8.8-3.3 0-1.5-.3-2.6-.8-3.3-.5-.7-1.3-1.1-2.3-1.1-2.3 0-3.3 1.5-3.3 4.4z"></path></g></svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 389 KiB

After

Width:  |  Height:  |  Size: 429 B

View File

@@ -0,0 +1,10 @@
<svg width="500" height="500" viewBox="0 0 500 500" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_154_102)">
<path fill-rule="evenodd" clip-rule="evenodd" d="M297.647 4.78775C299.464 5.07025 301.17 5.85037 302.58 7.04373C303.991 8.23707 305.052 9.79823 305.649 11.5583L305.999 12.85L318.014 75.3062C334.084 81.5487 349.235 89.9877 363.046 100.389L368.086 104.347L428.753 83.3683C432.661 81.6601 436.838 82.8893 439.78 86.285C460.64 109.972 477.591 138.554 487.424 168.574C488.164 170.248 488.382 172.11 488.047 173.912C487.713 175.714 486.842 177.369 485.553 178.657L484.483 179.552L436.345 221.01C438.072 230.28 438.566 240.3 438.566 250.05C438.566 257.904 438.238 265.862 437.229 273.465L436.345 279.112L484.483 320.611C486.153 321.812 487.359 323.564 487.896 325.567C488.433 327.568 488.266 329.698 487.424 331.589C477.613 361.63 460.682 390.17 439.801 413.836C437.167 416.877 433.588 418.19 430.07 417.232L428.753 416.774L368.107 395.774C354.797 406.629 339.923 415.565 324.041 422.357L318.034 424.816L305.999 487.313C305.584 489.358 304.561 491.226 303.069 492.668C301.577 494.108 299.685 495.052 297.647 495.375C281.93 498.292 266.213 500 250.023 500C233.813 500 218.095 498.292 202.378 495.375C200.559 495.092 198.851 494.312 197.438 493.119C196.023 491.926 194.958 490.366 194.354 488.605L194.026 487.313L182.011 424.816C165.665 418.593 150.284 410.026 136.341 399.379L131.919 395.774L71.2717 416.774C67.363 418.482 63.187 417.252 60.2246 413.836C39.3439 390.17 22.4131 361.63 12.6001 331.589C11.8637 329.914 11.6483 328.054 11.9828 326.252C12.3172 324.45 13.1856 322.795 14.4722 321.506L15.542 320.611L63.6601 279.112C62.0471 269.513 61.3034 259.786 61.4383 250.05C61.4383 242.258 61.7469 234.28 62.755 226.655L63.6601 221.03L15.5214 179.552C13.8514 178.351 12.6452 176.599 12.1087 174.596C11.5722 172.594 11.7386 170.465 12.5796 168.574C22.3925 138.554 39.3233 109.972 60.204 86.285C61.3417 84.8444 62.8613 83.7618 64.5845 83.1642C66.3078 82.5664 68.1636 82.4783 69.9346 82.9101L71.2717 83.3475L131.919 104.326C145.41 93.2005 160.453 84.1583 176.56 77.4936L182.011 75.2854L194.026 12.8292C194.435 10.7811 195.457 8.9099 196.949 7.46812C198.444 6.02634 200.338 5.08349 202.378 4.76692C233.817 -1.58897 266.188 -1.58897 297.627 4.76692L297.647 4.78775ZM250.002 103.722C170.017 103.722 105.257 169.219 105.257 250.008C105.257 330.798 170.059 396.295 250.002 396.295C329.946 396.295 394.747 330.798 394.747 250.008C394.747 169.219 329.946 103.722 249.982 103.722H250.002ZM341.61 229.676V186.136H158.395V229.676H228.196V334.256H271.809V229.676H341.61Z" fill="#512FC9"/>
</g>
<defs>
<clipPath id="clip0_154_102">
<rect width="500" height="500" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="2400px" height="2800px" style="shape-rendering:geometricPrecision; text-rendering:geometricPrecision; image-rendering:optimizeQuality; fill-rule:evenodd; clip-rule:evenodd" xmlns:xlink="http://www.w3.org/1999/xlink">
<g><path style="opacity:1" fill="#9146ff" d="M 498.5,-0.5 C 1132.17,-0.5 1765.83,-0.5 2399.5,-0.5C 2399.5,466.5 2399.5,933.5 2399.5,1400.5C 2099.7,1699.8 1800.03,1999.3 1500.5,2299C 1366.83,2299.33 1233.17,2299.67 1099.5,2300C 932.965,2466.37 766.632,2632.87 600.5,2799.5C 600.167,2799.5 599.833,2799.5 599.5,2799.5C 599.5,2632.83 599.5,2466.17 599.5,2299.5C 399.5,2299.5 199.5,2299.5 -0.5,2299.5C -0.5,1699.17 -0.5,1098.83 -0.5,498.5C 166.167,332.5 332.5,166.167 498.5,-0.5 Z"/></g>
<g><path style="opacity:1" fill="#fefffe" d="M 599.5,199.5 C 1132.83,199.5 1666.17,199.5 2199.5,199.5C 2199.67,566.167 2199.5,932.833 2199,1299.5C 2065.83,1432.67 1932.67,1565.83 1799.5,1699C 1665.83,1699.33 1532.17,1699.67 1398.5,1700C 1282.33,1816.17 1166.17,1932.33 1050,2048.5C 1049.5,1932.17 1049.33,1815.83 1049.5,1699.5C 899.5,1699.5 749.5,1699.5 599.5,1699.5C 599.5,1199.5 599.5,699.5 599.5,199.5 Z"/></g>
<g><path style="opacity:1" fill="#9146ff" d="M 1149.5,549.5 C 1216.17,549.5 1282.83,549.5 1349.5,549.5C 1349.5,749.5 1349.5,949.5 1349.5,1149.5C 1282.83,1149.5 1216.17,1149.5 1149.5,1149.5C 1149.5,949.5 1149.5,749.5 1149.5,549.5 Z"/></g>
<g><path style="opacity:1" fill="#9146ff" d="M 1699.5,549.5 C 1766.17,549.5 1832.83,549.5 1899.5,549.5C 1899.5,749.5 1899.5,949.5 1899.5,1149.5C 1832.83,1149.5 1766.17,1149.5 1699.5,1149.5C 1699.5,949.5 1699.5,749.5 1699.5,549.5 Z"/></g>
</svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@@ -0,0 +1,12 @@
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" viewBox="0 0 256 256" width="256" height="256">
<path d="M2268.2 2512.3a953.7 953.7 0 0 1-50 57c-180.5 189.5-426.2 294-691.6 294A953.7 953.7 0 0 1 847.8 2582a952.7 952.7 0 0 1-281.2-678.8 953.8 953.8 0 0 1 281.2-678.9 953.7 953.7 0 0 1 678.8-281.1 953.7 953.7 0 0 1 678.8 281.1 953.7 953.7 0 0 1 281.2 678.9c0 219.2-78.9 437.2-218.4 609" style="fill:#196aff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:.36633128" transform="matrix(.13333 0 0 -.13333 -75.5 381.8)"/>
<path d="M1823.7 1650.9c35.7 104.2 94.7 136.1 102 297 2.6 56.5-14.7 236-14.7 236s28 72-25.8 152.3c-83.5 124.3-255.4 132.8-345.7 132.8-90.3 0-260.2-8.5-343.7-132.8C1142 2256 1170 2184 1170 2184s-9.5-92.4-16.7-173.8c-1.7-19.1.1-94.7 2.4-113a453 453 0 0 1 25.8-96.2c14.4-39.6 36.8-79.9 54-120.5 51.8-122.8 8.4-274.9 11.1-407.3 2.2-94-20-189.3-28.7-281.2a960.4 960.4 0 0 1 308.7-50.6 958.6 958.6 0 0 1 344.9 63.6c-20.4 115-44.1 224.2-47.8 265.9-10.6 125.9-41.3 259.4 0 380" style="fill:#fff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:.36655635" transform="matrix(.13333 0 0 -.13333 -75.5 381.8)"/>
<path d="M1162.9 2383.9c1.1-18.8 3-38 8.3-56.2 1.6-5.7 4-19.7 11.4-21.8 9-2.6 25.9 8.3 32.3 13 12.3 9 23.9 18.5 36.2 27.6 8 6 16.5 10.5 24.3 16.5 8.4 6.6 14.7 14.5 21.7 22.2 8.4 9.4 14.8 19 21.3 29.5 5.1 8.2 37.1 13.5 42.2 21 5.6 8.3 1 18.6 1 28.7 0 74.2 4.4 147.6 6.1 220.3 1.8 50 21.4 109.2-53.4 85.8-160.3-50-158.5-271.3-151.4-386.6M1869.1 2279.7c-1.6 1.8-4.2 3.2-6.3 4.8a208 208 0 0 0-25.1 21.5c-9.4 9.6-19.2 19-28.2 28.9-7.9 8.7-17.3 16.6-25 25.6-5.1 6-10 12.3-14.6 18.5-2.3 3.2-3.5 7-5.3 10.4-2.7 5-40 10.1-36.2 15 6.3 8.3 20.3 15.4 23.7 25 17.2 48.6 24.8 244.5 26.8 294.5 5.4 127.8 117.6-6.3 137.2-57.7 57-149.7 23.2-258.8-46.3-386.6" style="fill:#fff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:.36633128" transform="matrix(.13333 0 0 -.13333 -75.5 381.8)"/>
<path d="M1716.5 1787.9c-.1 73.8-9.3 103.6-50.4 139.7-25.8 22.6-55.9 31.2-103.8 30-47.9 1.2-82.4-13.4-107.3-39.2-37.5-39-47.4-62-47.5-135.9 0-39.9 43-128.1 55.7-148.5 21.3-36 60.6-48.9 99.1-46.2 38.6-2.7 77.9 10.3 99.1 46.2 12.8 20.4 55.1 107 55 153.9" style="fill:#f1e6d3;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:.36633128" transform="matrix(.13333 0 0 -.13333 -75.5 381.8)"/>
<path d="M1226.6 2316c-9.6 86.2-38.6 240 61.5 331.3 11 10.1 14-24.2 15.8-38 2.6-19 0-73.5.4-92.6.7-36.1 8.3-55 4.7-71.5-9.6-45-17.3-42.2-26.5-69.6-18.3-54.4-53.3-83-55.9-59.5M1851.7 2333c10.3-18.2 37 80.3 45.4 123.2 8 40.3 18 93.8 4 133.9-7.4 21.5-53 84.5-58.4 62.9-2-8.5-3.2-71.1-8.3-101.1-6.4-37.1-18-73.8-18-111.6-.2-84.5 25.3-88 35.3-107.2" style="fill:#f1d7d4;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:.36633128" transform="matrix(.13333 0 0 -.13333 -75.5 381.8)"/>
<path d="M1522 1319.7c-2.2-6.5-18.6-11.4-24.8-13.3-14.9-4.9-28.1 6.9-36.4 16.8-11.6 13.7-11.3 35.6-16.2 51.6-2.9 9.7-19.5 11-24.5 2-16.6-29.8-81.1 26.4-66.1 45.2 9.9 12.3-13.8 23.2-23.6 11-29-36.1 49-103.4 93.6-85.2 2-9 4-18 8-26.6 7.4-16.9 23.9-27.8 41-37 23.1-12.4 68.2 9.5 75 30.3 4.9 14.5-21.2 19.7-26 5.2M1727.6 1538.2c2.4-10 2.8-44-16-25.4-7.5 7.5-22.6 3-23.2-7-1.4-23.4-24.9-24-45.1-16.9-16 5.6-24.6-16.6-8.6-22.1 29.7-10.4 62-4.6 74.7 17.8 10.1-4.7 21.5-6 30.7 2.6 16 15 18.4 36.2 13.7 55.7-3.5 14.8-29.7 10.1-26.2-4.7M1775 1049.2c-7-14.3-19.8-13.4-33.6-7.4-10.1 4.4-22.6-2.8-19.6-13 6.2-20.6-19.7-26.6-37.3-19.3-15.4 6.5-28.8-13.8-13.2-20.3 31.6-13.2 71.7-1.6 77.5 26.2 20.4-3.3 39.8 2.4 49.4 22.3 6.7 13.6-16.4 25.4-23.2 11.5M1569.8 2153.3c-3.3-20.2-41.1 3.3-50.5 9.7-8.3 5.5-19 2.1-20-7.3-1.4-12.7-18.5-9-26.3-7.4-14.8 3-27.4 12.2-27.7 26-.4 13.6 8.2 27.7 12.6 40.4 2.9 8-8.7 17-17.2 11.5-15.2-9.7-88.7-18.5-59.4 13.6 9.3 10.2-7.1 24.8-16.6 14.5-13.5-14.8-22.6-48.7 6.6-56 15.5-3.7 37.8-3.5 56.8.8-8-25.5-9.6-48.8 23.2-65.1 22.1-11.1 52.5-11 65.4 6 27.2-14.5 69.7-28.7 75.6 7.8 2.1 13-20.4 18.5-22.5 5.5" style="fill:#faeee0;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:.36633128" transform="matrix(.13333 0 0 -.13333 -75.5 381.8)"/>
<path d="M1443 1685.6c39.4-3.4 78.8-12.3 118.5-10.9 25.4 1 51.7 4.5 76.8 8.2 18.2 2.7 40.5 6 52.7 19.4 1-45-92.6-59.1-128.9-60-42.1-1-89.5 17.2-119 43.3" style="fill:#494949;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:.36633128" transform="matrix(.13333 0 0 -.13333 -75.5 381.8)"/>
<path d="M1549.4 1779.5a353.5 353.5 0 0 1-2.7-87.3c.7-7.6-1.3-25.7 8.8-29.5 8.2-3 18.3 2.7 19.7 10.1 2.2 12.5-3 28.2-3.5 41-.5 14.9 0 29.8 1.6 44.7 1 8.8 5.9 20.7-4.2 27-7.4 4.5-18.3 2.8-19.7-6" style="fill:#494949;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:.36633128" transform="matrix(.13333 0 0 -.13333 -75.5 381.8)"/>
<path d="M1626 1849.7c-23.7-1-45.7-14.2-63.4-27-16.1 10.7-40.5 20.5-60.7 14.8-12-3.4-1.1-7.1 4-10.3 9.2-6.2 16.8-14.2 23.7-22.4 10.3-12.6 19.6-25.8 30.7-38 7.6 5.6 15 11.1 21.6 17.6 3.1 3 28.5 37 32.4 42.7 2.4 3.6 5 7.4 7.8 10.8 2.9 3.5 11 9 3.9 11.8" style="fill:#494949;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:.36633128" transform="matrix(.13333 0 0 -.13333 -75.5 381.8)"/>
<path d="M1326.5 2010c11.7 30.3 24.3 68.4 56.3 62.4 24.2-5.2 56.7-86.2 36-78.2-11.3 4.4-20.3 41.1-41.4 46-13.4 3-32-43.6-50-48.4-8.7-2.3-4.3 10.4-.9 18.2M1670.6 2010c11.7 30.3 24.2 68.4 56.3 62.4 24.2-5.2 56.7-86.2 35.9-78.2-11.3 4.4-20.2 41.1-41.3 46-13.5 3-32-43.6-50-48.4-8.7-2.3-4.4 10.4-1 18.2" style="fill:#2c3844;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:.36633128" transform="matrix(.13333 0 0 -.13333 -75.5 381.8)"/>
</svg>

After

Width:  |  Height:  |  Size: 5.4 KiB

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024"><circle cx="512" cy="512" r="512" style="fill:#6001d2"/><path d="M256 390.61h101.45l59.06 151 59.83-151H575L426.38 748.15H327l40.66-94.74Zm332.7 143.54a61.36 61.36 0 1 0 61.37 61.35 61.36 61.36 0 0 0-61.37-61.35M768 275.85H657.83l-98.09 235.67h110.55Z" style="fill:#fff"/></svg>

After

Width:  |  Height:  |  Size: 344 B

View File

@@ -7,6 +7,15 @@ If you would like to add your own custom icon, please open a pull-request with
the relevant SVG placed within `assets/custom-icons/icons` and add the
corresponding entry within `assets/custom-icons/_data/custom-icons.json`.
Please be careful to upload small and optimized icon files. If your icon file
is over 50KB, it is likely not optimized.
Note that the correspondence between the icon and the issuer is based on the name
of the issuer provided by the user, excluding spaces. Only the text before the
first dot "." or left parentheses "(" will be used for icon matching.
e.g. Issuer name provided: "github.com (Main account)" - Then "github" will be
used for matching.
This JSON file contains the following attributes:
| Attribute | Usecase | Required |

View File

@@ -36,5 +36,5 @@ file, that adheres to the above format.
SUPPORT
If you need help, please reach out to support@ente.io, and a human will get in touch with you.
If you need help, please visit @ https://github.com/ente-io/ente/discussions/new?category=q-a, and someone will get in touch with you.
If you have feature requests, please create an issue @ https://github.com/ente-io/ente

View File

@@ -81,12 +81,12 @@ PODS:
- qr_code_scanner (0.2.0):
- Flutter
- MTBBarcodeScanner
- ReachabilitySwift (5.2.2)
- ReachabilitySwift (5.2.3)
- SDWebImage (5.19.2):
- SDWebImage/Core (= 5.19.2)
- SDWebImage/Core (5.19.2)
- Sentry/HybridSDK (8.25.0)
- sentry_flutter (7.20.1):
- sentry_flutter (7.20.2):
- Flutter
- FlutterMacOS
- Sentry/HybridSDK (= 8.25.0)
@@ -100,18 +100,21 @@ PODS:
- sqflite (0.0.3):
- Flutter
- FlutterMacOS
- "sqlite3 (3.45.3+1)":
- "sqlite3/common (= 3.45.3+1)"
- "sqlite3/common (3.45.3+1)"
- "sqlite3/fts5 (3.45.3+1)":
- "sqlite3 (3.46.0+1)":
- "sqlite3/common (= 3.46.0+1)"
- "sqlite3/common (3.46.0+1)"
- "sqlite3/dbstatvtab (3.46.0+1)":
- sqlite3/common
- "sqlite3/perf-threadsafe (3.45.3+1)":
- "sqlite3/fts5 (3.46.0+1)":
- sqlite3/common
- "sqlite3/rtree (3.45.3+1)":
- "sqlite3/perf-threadsafe (3.46.0+1)":
- sqlite3/common
- "sqlite3/rtree (3.46.0+1)":
- sqlite3/common
- sqlite3_flutter_libs (0.0.1):
- Flutter
- "sqlite3 (~> 3.45.3+1)"
- "sqlite3 (~> 3.46.0+1)"
- sqlite3/dbstatvtab
- sqlite3/fts5
- sqlite3/perf-threadsafe
- sqlite3/rtree
@@ -233,29 +236,29 @@ SPEC CHECKSUMS:
flutter_local_authentication: 1172a4dd88f6306dadce067454e2c4caf07977bb
flutter_local_notifications: 4cde75091f6327eb8517fa068a0a5950212d2086
flutter_native_splash: edf599c81f74d093a4daf8e17bd7a018854bc778
flutter_secure_storage: 23fc622d89d073675f2eaa109381aefbcf5a49be
fluttertoast: 9f2f8e81bb5ce18facb9748d7855bf5a756fe3db
local_auth_darwin: c7e464000a6a89e952235699e32b329457608d98
flutter_secure_storage: d33dac7ae2ea08509be337e775f6b59f1ff45f12
fluttertoast: e9a18c7be5413da53898f660530c56f35edfba9c
local_auth_darwin: 4d56c90c2683319835a61274b57620df9c4520ab
move_to_background: 39a5b79b26d577b0372cbe8a8c55e7aa9fcd3a2d
MTBBarcodeScanner: f453b33c4b7dfe545d8c6484ed744d55671788cb
OrderedSet: aaeb196f7fef5a9edf55d89760da9176ad40b93c
package_info_plus: 115f4ad11e0698c8c1c5d8a689390df880f47e85
path_provider_foundation: 3784922295ac71e43754bd15e0653ccfd36a147c
path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46
privacy_screen: 1a131c052ceb3c3659934b003b0d397c2381a24e
qr_code_scanner: bb67d64904c3b9658ada8c402e8b4d406d5d796e
ReachabilitySwift: 2128f3a8c9107e1ad33574c6e58e8285d460b149
ReachabilitySwift: 7f151ff156cea1481a8411701195ac6a984f4979
SDWebImage: dfe95b2466a9823cf9f0c6d01217c06550d7b29a
Sentry: cd86fc55628f5b7c572cabe66cc8f95a9d2f165a
sentry_flutter: 4cb24c1055c556d7b27262ab2e179d1e5a0b9b0c
sentry_flutter: 0cf2507eb90ff7a6aa3304e900dd7f08edbbefdf
share_plus: c3fef564749587fc939ef86ffb283ceac0baf9f5
shared_preferences_foundation: b4c3b4cddf1c21f02770737f147a3f5da9d39695
shared_preferences_foundation: fcdcbc04712aee1108ac7fda236f363274528f78
sodium_libs: 1faae17af662384acbd13e41867a0008cd2e2318
sqflite: 673a0e54cc04b7d6dba8d24fb8095b31c3a99eec
sqlite3: 02d1f07eaaa01f80a1c16b4b31dfcbb3345ee01a
sqlite3_flutter_libs: 9bfe005308998aeca155330bbc2ea6dddf834a3b
sqlite3: 292c3e1bfe89f64e51ea7fc7dab9182a017c8630
sqlite3_flutter_libs: c00457ebd31e59fa6bb830380ddba24d44fbcd3b
SwiftyGif: 706c60cf65fa2bc5ee0313beece843c8eb8194d4
Toast: 1f5ea13423a1e6674c4abdac5be53587ae481c4e
url_launcher_ios: 6116280ddcfe98ab8820085d8d76ae7449447586
url_launcher_ios: 5334b05cef931de560670eeae103fd3e431ac3fe
PODFILE CHECKSUM: b4e3a7eabb03395b66e81fc061789f61526ee6bb

View File

@@ -7,7 +7,7 @@
<key>CFBundleDevelopmentRegion</key>
<string>$(DEVELOPMENT_LANGUAGE)</string>
<key>CFBundleDisplayName</key>
<string>auth</string>
<string>Ente Auth</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>

View File

@@ -10,6 +10,7 @@ import 'package:ente_auth/events/signed_out_event.dart';
import "package:ente_auth/l10n/l10n.dart";
import 'package:ente_auth/locale.dart';
import "package:ente_auth/onboarding/view/onboarding_page.dart";
import 'package:ente_auth/services/authenticator_service.dart';
import 'package:ente_auth/services/update_service.dart';
import 'package:ente_auth/services/user_service.dart';
import 'package:ente_auth/services/window_listener_service.dart';
@@ -34,7 +35,8 @@ class App extends StatefulWidget {
State<App> createState() => _AppState();
}
class _AppState extends State<App> with WindowListener, TrayListener {
class _AppState extends State<App>
with WindowListener, TrayListener, WidgetsBindingObserver {
late StreamSubscription<SignedOutEvent> _signedOutEvent;
late StreamSubscription<SignedInEvent> _signedInEvent;
Locale? locale;
@@ -56,6 +58,7 @@ class _AppState extends State<App> with WindowListener, TrayListener {
void initState() {
initWindowManager();
initTrayManager();
WidgetsBinding.instance.addObserver(this);
_signedOutEvent = Bus.instance.on<SignedOutEvent>().listen((event) {
if (mounted) {
@@ -98,6 +101,15 @@ class _AppState extends State<App> with WindowListener, TrayListener {
_signedInEvent.cancel();
}
@override
Future<void> didChangeAppLifecycleState(AppLifecycleState state) async {
if (state == AppLifecycleState.resumed) {
if (Configuration.instance.hasConfiguredAccount()) {
AuthenticatorService.instance.onlineSync().ignore();
}
}
}
@override
Widget build(BuildContext context) {
if (Platform.isAndroid || kDebugMode) {

View File

@@ -13,6 +13,7 @@ import 'package:ente_auth/models/key_attributes.dart';
import 'package:ente_auth/models/key_gen_result.dart';
import 'package:ente_auth/models/private_key_attributes.dart';
import 'package:ente_auth/store/authenticator_db.dart';
import 'package:ente_auth/utils/lock_screen_settings.dart';
import 'package:ente_crypto_dart/ente_crypto_dart.dart';
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
import 'package:logging/logging.dart';
@@ -140,6 +141,7 @@ class Configuration {
iOptions: _secureStorageOptionsIOS,
);
}
await LockScreenSettings.instance.removePinAndPassword();
await AuthenticatorDB.instance.clearTable();
_key = null;
_cachedToken = null;
@@ -469,7 +471,13 @@ class Configuration {
await _preferences.setBool(hasOptedForOfflineModeKey, true);
}
bool shouldShowLockScreen() {
Future<bool> shouldShowLockScreen() async {
final bool isPin = await LockScreenSettings.instance.isPinSet();
final bool isPass = await LockScreenSettings.instance.isPasswordSet();
return isPin || isPass || shouldShowSystemLockScreen();
}
bool shouldShowSystemLockScreen() {
if (_preferences.containsKey(keyShouldShowLockScreen)) {
return _preferences.getBool(keyShouldShowLockScreen)!;
} else {
@@ -477,7 +485,7 @@ class Configuration {
}
}
Future<void> setShouldShowLockScreen(bool value) {
Future<void> setSystemLockScreen(bool value) {
return _preferences.setBool(keyShouldShowLockScreen, value);
}

View File

@@ -32,8 +32,6 @@ const mnemonicKeyWordCount = 24;
// https://stackoverflow.com/a/61162219
const dragSensitivity = 8;
const supportEmail = 'support@ente.io';
// Default values for various feature flags
class FFDefault {
static const bool enableStripe = true;

View File

@@ -0,0 +1,146 @@
// Inspired from https://github.com/netfarm/lehttp_overrides
import 'dart:convert';
import 'dart:io';
import 'dart:typed_data';
// expired
const String kSha1DstX3 = 'DAC9024F54D8F6DF94935FB1732638CA6AD77C13';
// ISRG Root X1
const String kIsrgRootX1 = '''-----BEGIN CERTIFICATE-----
MIIFazCCA1OgAwIBAgIRAIIQz7DSQONZRGPgu2OCiwAwDQYJKoZIhvcNAQELBQAw
TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh
cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMTUwNjA0MTEwNDM4
WhcNMzUwNjA0MTEwNDM4WjBPMQswCQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJu
ZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBY
MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK3oJHP0FDfzm54rVygc
h77ct984kIxuPOZXoHj3dcKi/vVqbvYATyjb3miGbESTtrFj/RQSa78f0uoxmyF+
0TM8ukj13Xnfs7j/EvEhmkvBioZxaUpmZmyPfjxwv60pIgbz5MDmgK7iS4+3mX6U
A5/TR5d8mUgjU+g4rk8Kb4Mu0UlXjIB0ttov0DiNewNwIRt18jA8+o+u3dpjq+sW
T8KOEUt+zwvo/7V3LvSye0rgTBIlDHCNAymg4VMk7BPZ7hm/ELNKjD+Jo2FR3qyH
B5T0Y3HsLuJvW5iB4YlcNHlsdu87kGJ55tukmi8mxdAQ4Q7e2RCOFvu396j3x+UC
B5iPNgiV5+I3lg02dZ77DnKxHZu8A/lJBdiB3QW0KtZB6awBdpUKD9jf1b0SHzUv
KBds0pjBqAlkd25HN7rOrFleaJ1/ctaJxQZBKT5ZPt0m9STJEadao0xAH0ahmbWn
OlFuhjuefXKnEgV4We0+UXgVCwOPjdAvBbI+e0ocS3MFEvzG6uBQE3xDk3SzynTn
jh8BCNAw1FtxNrQHusEwMFxIt4I7mKZ9YIqioymCzLq9gwQbooMDQaHWBfEbwrbw
qHyGO0aoSCqI3Haadr8faqU9GY/rOPNk3sgrDQoo//fb4hVC1CLQJ13hef4Y53CI
rU7m2Ys6xt0nUW7/vGT1M0NPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV
HRMBAf8EBTADAQH/MB0GA1UdDgQWBBR5tFnme7bl5AFzgAiIyBpY9umbbjANBgkq
hkiG9w0BAQsFAAOCAgEAVR9YqbyyqFDQDLHYGmkgJykIrGF1XIpu+ILlaS/V9lZL
ubhzEFnTIZd+50xx+7LSYK05qAvqFyFWhfFQDlnrzuBZ6brJFe+GnY+EgPbk6ZGQ
3BebYhtF8GaV0nxvwuo77x/Py9auJ/GpsMiu/X1+mvoiBOv/2X/qkSsisRcOj/KK
NFtY2PwByVS5uCbMiogziUwthDyC3+6WVwW6LLv3xLfHTjuCvjHIInNzktHCgKQ5
ORAzI4JMPJ+GslWYHb4phowim57iaztXOoJwTdwJx4nLCgdNbOhdjsnvzqvHu7Ur
TkXWStAmzOVyyghqpZXjFaH3pO3JLF+l+/+sKAIuvtd7u+Nxe5AW0wdeRlN8NwdC
jNPElpzVmbUq4JUagEiuTDkHzsxHpFKVK7q4+63SM1N95R1NbdWhscdCb+ZAJzVc
oyi3B43njTOQ5yOf+1CceWxG1bQVs5ZufpsMljq4Ui0/1lvh+wjChP4kqKOJ2qxq
4RgqsahDYVvTH9w7jXbyLeiNdd8XM2w9U/t7y0Ff/9yi0GE44Za4rF2LN9d11TPA
mRGunUHBcnWEvgJBQl9nJEiU0Zsnvgc/ubhPgXRR4Xq37Z0j4r7g1SgEEzwxA57d
emyPxgcYxn/eR44/KJ4EBs+lVDR3veyJm+kXQ99b21/+jh5Xos1AnX5iItreGCc=
-----END CERTIFICATE-----''';
const String kIsrgRootX1Alt = '''-----BEGIN CERTIFICATE-----
MIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA/
MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT
DkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1ow
TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh
cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEB
AQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe+3LffOJCMbjzmV6B493XC
ov71am72AE8o295ohmxEk7axY/0UEmu/H9LqMZshftEzPLpI9d1537O4/xLxIZpL
wYqGcWlKZmZsj348cL+tKSIG8+TA5oCu4kuPt5l+lAOf00eXfJlII1PoOK5PCm+D
LtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk/CjhFLfs8L6P+1dy70sntK
4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow/iaNhUd6shweU9GNx7C7ib1uYgeGJXDR5
bHbvO5BieebbpJovJsXQEOEO3tkQjhb7t/eo98flAgeYjzYIlefiN5YNNnWe+w5y
sR2bvAP5SQXYgd0FtCrWQemsAXaVCg/Y39W9Eh81LygXbNKYwagJZHduRze6zqxZ
Xmidf3LWicUGQSk+WT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4
FQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBc
SLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna/H2ql
PRmP6zjzZN7IKw0KKP/32+IVQtQi0Cdd4Xn+GOdwiK1O5tmLOsbdJ1Fu/7xk9TND
TwIDAQABo4IBRjCCAUIwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYw
SwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1
c3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx
+tvhS5B1/8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA/BgsrBgEEAYLfEwEB
ATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu
b3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9E
U1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIjIGlj26Ztu
MA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7/DlLQrt2M51oGrS+o44+/yQoDFVDC
5WxCu2+b9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K/QosMrAdSW
9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx/J3vWraV0T9VuG
WCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9O
he8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE+FiYruq9RUWhiF1myv4Q6W+CyBFC
Dfvp7OOGAN6dEOM4+qR9sdjoSYKEBpsr6GtPAQw4dy753ec5
-----END CERTIFICATE-----
''';
const String kLetsEncryptCert = '''-----BEGIN CERTIFICATE-----
MIIFFjCCAv6gAwIBAgIRAJErCErPDBinU/bWLiWnX1owDQYJKoZIhvcNAQELBQAw
TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh
cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw
WhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg
RW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
AoIBAQC7AhUozPaglNMPEuyNVZLD+ILxmaZ6QoinXSaqtSu5xUyxr45r+XXIo9cP
R5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH+jdx
sxPnHKzhm+/b5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm
NHz6a4uPVymZ+DAXXbpyb/uBxa3Shlg9F8fnCbvxK/eG3MHacV3URuPMrSXBiLxg
Z3Vms/EY96Jc5lP/Ooi2R6X/ExjqmAl3P51T+c8B5fWmcBcUr2Ok/5mzk53cU6cG
/kiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC
AYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB/wQIMAYB
Af8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA
FHm0WeZ7tuXkAXOACIjIGlj26ZtuMDIGCCsGAQUFBwEBBCYwJDAiBggrBgEFBQcw
AoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw
Oi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB
gt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W
PTNlclQtgaDqw+34IL9fzLdwALduO/ZelN7kIJ+m74uyA+eitRY8kc607TkC53wl
ikfmZW4/RvTZ8M6UK+5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz
CkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh+BIm
lJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML+Hbisq/yFOGwXD9RiX8F6sw6W4
avAuvDszue5L3sz85K+EC4Y/wFVDNvZo4TYXao6Z0f+lQKc0t8DQYzk1OXVu8rp2
yJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O
yK5GhDDX8oVfGKF5u+decIsH4YaTw7mP3GFxJSqv3+0lUFJoi5Lc5da149p90Ids
hCExroL1+7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0+L4WPlbuEjN/lxPFin+
HlUjr8gRsI3qfJOQFy/9rKIJR0Y/8Omwt/8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv
MldlTTKB3zhThV1+XWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX
nLRbwHOoq7hHwg==
-----END CERTIFICATE-----
''';
String _hexConverter(Uint8List bytes) {
final StringBuffer buffer = StringBuffer();
for (int part in bytes) {
buffer.write('${part < 16 ? '0' : ''}${part.toRadixString(16)}');
}
return buffer.toString().toUpperCase();
}
class WindowsHttpOverrides extends HttpOverrides {
static bool? _initRootCert;
final bool allowExpiredDSTX3;
static bool _addRootCert() {
if (Platform.isWindows) {
final List<int> cert = ascii.encode(kIsrgRootX1);
SecurityContext.defaultContext.setTrustedCertificatesBytes(cert);
final List<int> certAlt = ascii.encode(kIsrgRootX1Alt);
SecurityContext.defaultContext.setTrustedCertificatesBytes(certAlt);
final List<int> certAlt2 = ascii.encode(kLetsEncryptCert);
SecurityContext.defaultContext.setTrustedCertificatesBytes(certAlt2);
}
return true;
}
WindowsHttpOverrides({this.allowExpiredDSTX3 = false}) {
_initRootCert ??= _addRootCert();
}
@override
HttpClient createHttpClient(SecurityContext? context) {
final HttpClient client = super.createHttpClient(context);
if (allowExpiredDSTX3) {
client.badCertificateCallback =
(X509Certificate cert, String host, int port) =>
_hexConverter(cert.sha1) == kSha1DstX3;
}
return client;
}
}

View File

@@ -0,0 +1,20 @@
{
"account": "Compte",
"unlock": "Desbloqueja",
"recoveryKey": "Clau de recuperació",
"counterAppBarTitle": "Comptador",
"@counterAppBarTitle": {
"description": "Text shown in the AppBar of the Counter Page"
},
"onBoardingGetStarted": "Primers passos",
"qrCode": "Codi QR",
"codeTagHint": "Etiqueta",
"accountKeyType": "Tipus de clau",
"sessionExpired": "La sessió ha caducat",
"@sessionExpired": {
"description": "Title of the dialog when the users current session is invalid/expired"
},
"pleaseLoginAgain": "Torna a iniciar sessió",
"verifyPassword": "Verifica la contrasenya",
"pleaseWait": "Si us plau, espera..."
}

View File

@@ -9,7 +9,7 @@
"onBoardingBody": "Sichern Sie Ihre 2FA-Codes",
"onBoardingGetStarted": "Los geht's",
"setupFirstAccount": "Ihr erstes Konto einrichten",
"importScanQrCode": "Scannen eines QR-Codes",
"importScanQrCode": "QR-Code scannen",
"qrCode": "QR-Code",
"importEnterSetupKey": "Einen Setup-Schlüssel eingeben",
"importAccountPageTitle": "Kontodaten eingeben",
@@ -31,7 +31,7 @@
"timeBasedKeyType": "Zeitbasiert (TOTP)",
"counterBasedKeyType": "Zählerbasiert (HOTP)",
"saveAction": "Speichern",
"nextTotpTitle": "Weiter",
"nextTotpTitle": "Nächster Code",
"deleteCodeTitle": "Code löschen?",
"deleteCodeMessage": "Sind Sie sicher, dass Sie diesen Code löschen wollen? Diese Aktion ist unumkehrbar.",
"viewLogsAction": "Protokolle anzeigen",
@@ -139,7 +139,7 @@
"inFamilyPlanMessage": "Sie haben einen Familien-Plan!",
"swipeHint": "Wischen Sie nach links, um Codes zu bearbeiten oder zu entfernen",
"scan": "Scannen",
"scanACode": "Scannen eines Codes",
"scanACode": "Scan einen Code",
"verify": "Überprüfen Sie",
"verifyEmail": "E-Mail-Adresse verifizieren",
"enterCodeHint": "Geben Sie den 6-stelligen Code \naus Ihrer Authentifikator-App ein.",
@@ -263,12 +263,15 @@
"exportLogs": "Logs exportieren",
"enterYourRecoveryKey": "Wiederherstellungsschlüssel eingeben",
"tempErrorContactSupportIfPersists": "Etwas ist schiefgelaufen. Bitte versuchen sie es später noch einmal. Sollte der Fehler weiter bestehen, kontaktieren sie unser Supportteam.",
"networkHostLookUpErr": "Ente ist im Moment nicht erreichbar. Bitte überprüfen Sie Ihre Netzwerkeinstellungen. Sollte das Problem bestehen bleiben, wenden Sie sich bitte an den Support.",
"networkConnectionRefusedErr": "Ente ist im Moment nicht erreichbar. Bitte versuchen Sie es später erneut. Sollte das Problem bestehen bleiben, wenden Sie sich bitte an den Support.",
"itLooksLikeSomethingWentWrongPleaseRetryAfterSome": "Etwas ist schiefgelaufen. Bitte versuchen sie es später noch einmal. Sollte der Fehler weiter bestehen, kontaktieren sie unser Supportteam.",
"about": "Über uns",
"weAreOpenSource": "Wir sind Opensource!",
"privacy": "Datenschutz",
"terms": "Bestimmungen",
"checkForUpdates": "Auf Updates prüfen",
"checkStatus": "Status überprüfen",
"downloadUpdate": "Herunterladen",
"criticalUpdateAvailable": "Kritische neue Aktualisierung ist verfügbar",
"updateAvailable": "Aktualisierung verfügbar",
@@ -417,6 +420,9 @@
"waitingForBrowserRequest": "Warten auf Browseranfrage...",
"waitingForVerification": "Warte auf Bestätigung...",
"passkey": "Passkey",
"passKeyPendingVerification": "Verifizierung steht noch aus",
"loginSessionExpired": "Sitzung abgelaufen",
"loginSessionExpiredDetails": "Ihre Sitzung ist abgelaufen. Bitte melden Sie sich erneut an.",
"developerSettingsWarning": "Sind Sie sicher, dass Sie die Entwicklereinstellungen ändern möchten?",
"developerSettings": "Entwicklereinstellungen",
"serverEndpoint": "Server Endpunkt",

View File

@@ -0,0 +1,466 @@
{
"account": "Λογαριασμός",
"unlock": "Ξεκλείδωμα",
"recoveryKey": "Κλειδί ανάκτησης",
"counterAppBarTitle": "Μετρητής",
"@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": "Εκδότης",
"codeSecretKeyHint": "Μυστικό Κλειδί",
"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": "Είστε σίγουροι ότι θέλετε να διαγράψετε αυτόν τον κωδικό; Αυτή η ενέργεια είναι μη αναστρέψιμη.",
"viewLogsAction": "Προβολή αρχείων καταγραφής",
"sendLogsDescription": "Αυτό θα στείλει σε μας όλα τα αρχεία καταγραφής για να μας βοηθήσει να αποσφαλματώσουμε το πρόβλημά σας. Ενώ λαμβάνουμε προφυλάξεις για να διασφαλίσουμε ότι οι ευαίσθητες πληροφορίες δεν καταγράφονται, σας ενθαρρύνουμε να δείτε αυτά τα αρχεία καταγραφής πριν τα μοιραστείτε.",
"preparingLogsTitle": "Προετοιμασία αρχείων καταγραφής...",
"emailLogsTitle": "Αρχεία καταγραφής ηλ. ταχυδρομείου",
"emailLogsMessage": "Παρακαλώ στείλτε τα αρχεία καταγραφής στο {email}",
"@emailLogsMessage": {
"placeholders": {
"email": {
"type": "String"
}
}
},
"copyEmailAction": "Αντιγραφή διεύθυνσης ηλ. ταχυδρομείου",
"exportLogsAction": "Εξαγωγή αρχείων καταγραφής",
"reportABug": "Αναφορά Σφάλματος",
"crashAndErrorReporting": "Αναφορά κατάρρευσης & σφάλματος",
"reportBug": "Αναφορά σφάλματος",
"emailUsMessage": "Παρακαλώ στείλτε μας μήνυμα ηλ. ταχυδρομείου στο {email}",
"@emailUsMessage": {
"placeholders": {
"email": {
"type": "String"
}
}
},
"contactSupport": "Επικοινωνήστε με την υποστήριξη",
"rateUsOnStore": "Αξιολογήστε μας στο {storeName}",
"blog": "Ιστολόγιο",
"merchandise": "Προϊόντα",
"verifyPassword": "Επαλήθευση κωδικού πρόσβασης",
"pleaseWait": "Παρακαλώ περιμένετε...",
"generatingEncryptionKeysTitle": "Δημιουργία κλειδιών κρυπτογράφησης...",
"recreatePassword": "Επαναδημιουργία κωδικού πρόσβασης",
"recreatePasswordMessage": "Η τρέχουσα συσκευή δεν είναι αρκετά ισχυρή για να επαληθεύσει τον κωδικό πρόσβασής σας, οπότε πρέπει να τον επαναδημιουργήσουμε με τέτοιο τρόπο ώστε να λειτουργεί με όλες τις συσκευές. \n\nΠαρακαλούμε συνδεθείτε χρησιμοποιώντας το κλειδί ανάκτησης σας και επαναδημιουργήστε τον κωδικό πρόσβασής σας (μπορείτε να χρησιμοποιήσετε ξανά τον ίδιο αν το επιθυμείτε).",
"useRecoveryKey": "Χρήση κλειδιού ανάκτησης",
"incorrectPasswordTitle": "Λάθος κωδικός πρόσβασης",
"welcomeBack": "Καλωσορίσατε και πάλι!",
"madeWithLoveAtPrefix": "γίνεται με ❤️ στο ",
"supportDevs": "Εγγραφείτε στο <bold-green>ente</bold-green> για να μας υποστηρίξετε",
"supportDiscount": "Χρησιμοποιήστε τον κωδικό κουπονιού \"AUTH\" για να πάρετε 10% από το πρώτο έτος",
"changeEmail": "Αλλαγή διεύθυνσης ηλ. ταχυδρομείου",
"changePassword": "Αλλαγή κωδικού πρόσβασής",
"data": "Δεδομένα",
"importCodes": "Εισαγωγή κωδικών",
"importTypePlainText": "Απλό κείμενο",
"importTypeEnteEncrypted": "Κρυπτογραφημένη Ente εξαγωγή",
"passwordForDecryptingExport": "Κωδικός πρόσβασης για αποκρυπτογράφηση εξαγωγής",
"passwordEmptyError": "Ο κωδικός πρόσβασης δεν μπορεί να είναι κενός",
"importFromApp": "Εισαγωγή κωδικών από {appName}",
"importGoogleAuthGuide": "Εξαγωγή των λογαριασμών σας από το Google Authenticator σε έναν κωδικό QR χρησιμοποιώντας την επιλογή \"Μεταφορά λογαριασμών\". Στη συνέχεια, χρησιμοποιώντας μια άλλη συσκευή, σαρώστε τον κωδικό QR.\n\nΣυμβουλή: Μπορείτε να χρησιμοποιήσετε την κάμερα του λάπτοπ σας για να τραβήξετε μια φωτογραφία του κωδικού QR.",
"importSelectJsonFile": "Επιλογή αρχείου JSON",
"importSelectAppExport": "Επιλογή αρχείου εξαγωγής {appName}",
"importEnteEncGuide": "Επιλέξτε το κρυπτογραφημένο αρχείο JSON που εξήχθη από το Ente",
"importRaivoGuide": "Χρησιμοποιήστε την επιλογή \"Export OTPs to Zip archive\" στις Ρυθμίσεις του Raivo.\n\nΕξάγετε το αρχείο zip και εισάγετε το αρχείο JSON.",
"importBitwardenGuide": "Χρησιμοποιήστε την επιλογή \"Εξαγωγή θησαυ/κίου\" μέσα στα Εργαλεία Bitwarden και εισάγετε το μη κρυπτογραφημένο αρχείο JSON.",
"importAegisGuide": "Χρησιμοποιήστε την επιλογή \"Εξαγωγή θησαυ/κίου\" στις Ρυθμίσεις του Aegis.\n\nΑν το θησαυ/κιό σας είναι κρυπτογραφημένο, θα πρέπει να εισάγετε τον κωδικό πρόσβασης θησαυ/κίου για να αποκρυπτογραφήσετε το θησαυ/κιο.",
"import2FasGuide": "Χρησιμοποιήστε την επιλογή \"Ρυθμίσεις->Δημιουργία αντιγράφων ασφαλείας - Εξαγωγή\" στο 2FAS.\n\nΑν το αντίγραφο ασφαλείας είναι κρυπτογραφημένο, θα πρέπει να εισάγετε τον κωδικό πρόσβασης για να αποκρυπτογραφήσετε το αντίγραφο ασφαλείας",
"importLastpassGuide": "Χρησιμοποιήστε την επιλογή \"Μεταφορά λογαριασμών\" στις ρυθμίσεις Lastpass Authenticator και πατήστε \"Εξαγωγή λογαριασμών σε αρχείο\". Εισαγάγετε το κατεβασμένο JSON.",
"exportCodes": "Εξαγωγή κωδικών",
"importLabel": "Εισαγωγή",
"importInstruction": "Παρακαλώ επιλέξτε ένα αρχείο που περιέχει μια λίστα των κωδικών σας με τον ακόλουθο τύπο",
"importCodeDelimiterInfo": "Οι κωδικοί μπορούν να διαχωριστούν με κόμμα ή με μία νέα γραμμή",
"selectFile": "Επιλέξτε αρχείο",
"emailVerificationToggle": "Επαλήθευση διεύθυνσης ηλ. ταχυδρομείου",
"emailVerificationEnableWarning": "Για να αποφύγετε να κλειδωθείτε έξω από τον λογαριασμό σας, φροντίστε να αποθηκεύσετε ένα αντίγραφο του 2FA του ηλ. ταχυδρομείου σας έξω από το Ente Auth πριν ενεργοποιήσετε την επαλήθευση μέσω ηλ. ταχυδρομείου.",
"authToChangeEmailVerificationSetting": "Παρακαλώ πραγματοποιήστε έλεγχο ταυτότητας για να αλλάξετε την επαλήθευση ηλ. ταχυδρομείου",
"authToViewYourRecoveryKey": "Παρακαλώ πραγματοποιήστε έλεγχο ταυτότητας για να δείτε το κλειδί ανάκτησης",
"authToChangeYourEmail": "Παρακαλώ πραγματοποιήστε έλεγχο ταυτότητας για να αλλάξετε τη διεύθυνση ηλ. ταχυδρομείου σας",
"authToChangeYourPassword": "Παρακαλώ πραγματοποιήστε έλεγχο ταυτότητας για να αλλάξετε τον κωδικό πρόσβασής σας",
"authToViewSecrets": "Παρακαλώ πραγματοποιήστε έλεγχο ταυτότητας για να δείτε τα μυστικά σας",
"authToInitiateSignIn": "Παρακαλώ πραγματοποιήστε έλεγχο ταυτότητας για να ξεκινήσετε την είσοδο για δημιουργία αντιγράφου ασφαλείας.",
"ok": "Οκ",
"cancel": "Ακύρωση",
"yes": "Ναι",
"no": "Όχι",
"email": "Διεύθυνση ηλ. ταχυδρομείου",
"support": "Υποστήριξη",
"general": "Γενικά",
"settings": "Ρυθμίσεις",
"copied": "Αντιγράφηκε",
"pleaseTryAgain": "Παρακαλώ δοκιμάστε ξανά",
"existingUser": "Υπάρχων Χρήστης",
"newUser": "Νέος/α στο Ente",
"delete": "Διαγραφή",
"enterYourPasswordHint": "Εισάγετε τον κωδικό πρόσβασης σας",
"forgotPassword": "Ξέχασα τον κωδικό πρόσβασης σας",
"oops": "Ουπς",
"suggestFeatures": "Προτείνετε λειτουργίες",
"faq": "Συχνές Ερωτήσεις",
"faq_q_1": "Πόσο ασφαλής είναι το Auth;",
"faq_a_1": "Όλοι οι κωδικοί που δημιουργείτε μέσω του Auth αποθηκεύονται κρυπτογραφημένοι από άκρο σε άκρο. Αυτό σημαίνει ότι μόνο εσείς μπορείτε να έχετε πρόσβαση στους κωδικούς σας. Οι εφαρμογές μας είναι ανοικτού κώδικα και η κρυπτογραφία μας έχει ελεγχθεί εξωτερικά.",
"faq_q_2": "Μπορώ να έχω πρόσβαση στους κωδικούς μου στον υπολογιστή;",
"faq_a_2": "Μπορείτε να αποκτήσετε πρόσβαση στους κωδικούς σας στο ίντερνετ @ auth.ente.io.",
"faq_q_3": "Πώς μπορώ να διαγράψω κωδικούς;",
"faq_a_3": "Μπορείτε να διαγράψετε έναν κωδικό σύροντας αριστερά σε αυτό το αντικείμενο.",
"faq_q_4": "Πώς μπορώ να υποστηρίξω αυτό το πρότζεκτ;",
"faq_a_4": "Μπορείτε να υποστηρίξετε την ανάπτυξη αυτού του πρότζεκτ με την εγγραφή σας στην εφαρμογή Photos @ ente.io.",
"faq_q_5": "Πώς μπορώ να ενεργοποιήσω το Κλείδωμα FaceID στο Auth",
"faq_a_5": "Μπορείτε να ενεργοποιήσετε το κλείδωμα FaceID στις Ρυθμίσεις → Ασφάλεια → Οθόνη κλειδώματος.",
"somethingWentWrongMessage": "Κάτι πήγε στραβά, παρακαλώ προσπαθήστε ξανά",
"leaveFamily": "Αποχώρηση από οικογένεια",
"leaveFamilyMessage": "Είστε σίγουροι ότι θέλετε να φύγετε από το οικογενειακό πρόγραμμα;",
"inFamilyPlanMessage": "Είστε σε οικογενειακό πρόγραμμα!",
"swipeHint": "Σύρετε αριστερά για επεξεργασία ή αφαίρεση κωδικών",
"scan": "Σάρωση",
"scanACode": "Σάρωση κωδικού",
"verify": "Επαλήθευση",
"verifyEmail": "Επιβεβαίωση διεύθυνσης ηλ. ταχυδρομείου",
"enterCodeHint": "Εισάγετε τον 6ψήφιο κωδικό από \nτην εφαρμογή αυθεντικοποίησης",
"lostDeviceTitle": "Χαμένη συσκευή;",
"twoFactorAuthTitle": "Αυθεντικοποίηση δύο παραγόντων",
"passkeyAuthTitle": "Επιβεβαίωση κλειδιού πρόσβασης",
"verifyPasskey": "Επιβεβαίωση κλειδιού πρόσβασης",
"recoverAccount": "Ανάκτηση λογαριασμού",
"enterRecoveryKeyHint": "Εισάγετε το κλειδί ανάκτησης σας",
"recover": "Ανάκτηση",
"contactSupportViaEmailMessage": "Παρακαλώ αφήστε ένα μήνυμα ηλ. ταχυδρομείου στο {email} από την καταχωρημένη διεύθυνση σας",
"@contactSupportViaEmailMessage": {
"placeholders": {
"email": {
"type": "String"
}
}
},
"invalidQRCode": "Μη έγκυρος κωδικός QR",
"noRecoveryKeyTitle": "Χωρίς κλειδί ανάκτησης;",
"enterEmailHint": "Εισάγετε την διεύθυνση του ηλ. ταχυδρομείου σας",
"invalidEmailTitle": "Μη έγκυρη διεύθυνση ηλ. ταχυδρομείου",
"invalidEmailMessage": "Παρακαλώ εισάγετε μια έγκυρη διεύθυνση ηλ. ταχυδρομείου.",
"deleteAccount": "Διαγραφή λογαριασμού",
"deleteAccountQuery": "Λυπόμαστε που σας βλέπουμε να φεύγετε. Αντιμετωπίζετε κάποιο πρόβλημα;",
"yesSendFeedbackAction": "Ναι, αποστολή σχολίων",
"noDeleteAccountAction": "Όχι, διαγραφή λογαριασμού",
"initiateAccountDeleteTitle": "Παρακαλώ πραγματοποιήστε έλεγχο ταυτότητας για να ξεκινήσετε τη διαγραφή λογαριασμού",
"sendEmail": "Αποστολή μηνύματος ηλ. ταχυδρομείου",
"createNewAccount": "Δημιουργία νέου λογαριασμού",
"weakStrength": "Αδύναμος",
"strongStrength": "Δυνατός",
"moderateStrength": "Μέτριος",
"confirmPassword": "Επιβεβαίωση κωδικού πρόσβασης",
"close": "Κλείσιμο",
"oopsSomethingWentWrong": "Ωχ, Κάτι πήγε στραβά.",
"selectLanguage": "Επιλέξτε γλώσσα",
"language": "Γλώσσα",
"social": "Κοινωνικά",
"security": "Ασφάλεια",
"lockscreen": "Οθόνη κλειδώματος",
"authToChangeLockscreenSetting": "Παρακαλώ πραγματοποιήστε έλεγχο ταυτότητας για να αλλάξετε τις ρυθμίσεις οθόνης κλειδώματος",
"lockScreenEnablePreSteps": "Για να ενεργοποιήσετε την οθόνη κλειδώματος, παρακαλώ ορίστε τον κωδικό πρόσβασης της συσκευής ή το κλείδωμα οθόνης στις ρυθμίσεις του συστήματός σας.",
"viewActiveSessions": "Προβολή ενεργών συνεδριών",
"authToViewYourActiveSessions": "Παρακαλώ πραγματοποιήστε έλεγχο ταυτότητας για να δείτε τις ενεργές συνεδρίες σας",
"searchHint": "Αναζήτηση...",
"search": "Αναζήτηση",
"sorryUnableToGenCode": "Λυπούμαστε, δεν είναι δυνατή η δημιουργία κωδικού για το {issuerName}",
"noResult": "Κανένα αποτέλεσμα",
"addCode": "Προσθήκη κωδικού",
"scanAQrCode": "Σαρώστε έναν κωδικό QR",
"enterDetailsManually": "Χειροκίνητη εισαγωγή στοιχείων",
"edit": "Επεξεργασία",
"copiedToClipboard": "Αντιγράφηκε στο πρόχειρο",
"copiedNextToClipboard": "Αντιγράφηκε ο επόμενος κωδικός στο πρόχειρο",
"error": "Σφάλμα",
"recoveryKeyCopiedToClipboard": "Το κλειδί ανάκτησης αντιγράφηκε στο πρόχειρο",
"recoveryKeyOnForgotPassword": "Εάν ξεχάσετε τον κωδικό πρόσβασής σας, ο μόνος τρόπος για να ανακτήσετε τα δεδομένα σας είναι με αυτό το κλειδί.",
"recoveryKeySaveDescription": "Δεν αποθηκεύουμε αυτό το κλειδί, παρακαλώ αποθηκεύστε αυτό το κλειδί 24 λέξεων σε μια ασφαλή τοποθεσία.",
"doThisLater": "Κάντε το αργότερα",
"saveKey": "Αποθήκευση κλειδιού",
"save": "Αποθήκευση",
"send": "Αποστολή",
"saveOrSendDescription": "Θέλετε να το αποθηκεύσετε στον αποθηκευτικό σας χώρο (φάκελος Λήψεις από προεπιλογή) ή να το στείλετε σε άλλες εφαρμογές;",
"saveOnlyDescription": "Θέλετε να το αποθηκεύσετε στον αποθηκευτικό σας χώρο (φάκελος Λήψεις από προεπιλογή);",
"back": "Πίσω",
"createAccount": "Δημιουργία λογαριασμού",
"passwordStrength": "Ισχύς κωδικού πρόσβασης: {passwordStrengthValue}",
"@passwordStrength": {
"description": "Text to indicate the password strength",
"placeholders": {
"passwordStrengthValue": {
"description": "The strength of the password as a string",
"type": "String",
"example": "Weak or Moderate or Strong"
}
},
"message": "Password Strength: {passwordStrengthText}"
},
"password": "Κωδικόs πρόσβασης",
"signUpTerms": "Συμφωνώ με τους <u-terms>όρους χρήσης</u-terms> και την <u-policy>πολιτική απορρήτου</u-policy>",
"privacyPolicyTitle": "Πολιτική Απορρήτου",
"termsOfServicesTitle": "Όροι",
"encryption": "Kρυπτογράφηση",
"setPasswordTitle": "Ορισμός κωδικού πρόσβασης",
"changePasswordTitle": "Αλλαγή κωδικού πρόσβασής",
"resetPasswordTitle": "Επαναφορά κωδικού πρόσβασης",
"encryptionKeys": "Κλειδιά κρυπτογράφησης",
"passwordWarning": "Δεν αποθηκεύουμε αυτόν τον κωδικό πρόσβασης, οπότε αν τον ξεχάσετε <underline>δεν μπορούμε να αποκρυπτογραφήσουμε τα δεδομένα σας</underline>",
"enterPasswordToEncrypt": "Εισάγετε έναν κωδικό πρόσβασης που μπορούμε να χρησιμοποιήσουμε για την κρυπτογράφηση των δεδομένων σας",
"enterNewPasswordToEncrypt": "Εισάγετε ένα νέο κωδικό πρόσβασης που μπορούμε να χρησιμοποιήσουμε για να κρυπτογραφήσουμε τα δεδομένα σας",
"passwordChangedSuccessfully": "Ο κωδικός πρόσβασης άλλαξε επιτυχώς",
"generatingEncryptionKeys": "Δημιουργία κλειδιών κρυπτογράφησης...",
"continueLabel": "Συνέχεια",
"insecureDevice": "Μη ασφαλής συσκευή",
"sorryWeCouldNotGenerateSecureKeysOnThisDevicennplease": "Συγγνώμη, δεν μπορέσαμε να δημιουργήσουμε ασφαλή κλειδιά σε αυτήν τη συσκευή.\n\nπαρακαλώ εγγραφείτε από μια διαφορετική συσκευή.",
"howItWorks": "Πώς λειτουργεί",
"ackPasswordLostWarning": "Καταλαβαίνω ότι αν χάσω τον κωδικό μου μπορεί να χάσω τα δεδομένα μου αφού τα δεδομένα μου είναι από <underline>άκρο-σε-άκρο κρυπτογραφημένα</underline>.",
"loginTerms": "Κάνοντας κλικ στη σύνδεση, συμφωνώ με τους <u-terms>όρους χρήσης</u-terms> και την <u-policy>πολιτική απορρήτου</u-policy>",
"logInLabel": "Σύνδεση",
"logout": "Αποσυνδέση",
"areYouSureYouWantToLogout": "Είστε σίγουροι ότι θέλετε να αποσυνδεθείτε;",
"yesLogout": "Ναι, αποσύνδεση",
"exit": "Εξοδος",
"verifyingRecoveryKey": "Επαλήθευση κλειδιού ανάκτησης...",
"recoveryKeyVerified": "Το κλειδί ανάκτησης επαληθεύτηκε",
"recoveryKeySuccessBody": "Τέλεια! Το κλειδί ανάκτησης σας είναι έγκυρο. Σας ευχαριστούμε για την επαλήθευση.\n\nΠαρακαλώ θυμηθείτε να κρατήσετε το κλειδί ανάκτησης σας και σε αντίγραφο ασφαλείας.",
"invalidRecoveryKey": "Το κλειδί ανάκτησης που εισάγατε δεν είναι έγκυρο. Παρακαλώ βεβαιωθείτε ότι περιέχει 24 λέξεις και ελέγξτε την ορθογραφία της κάθε μίας.\n\nΑν εισαγάγατε έναν παλαιότερο κωδικό ανάκτησης, βεβαιωθείτε ότι έχει μήκος 64 χαρακτήρες, και ελέγξτε κάθε έναν από αυτούς.",
"recreatePasswordTitle": "Επαναδημιουργία κωδικού πρόσβασης",
"recreatePasswordBody": "Η τρέχουσα συσκευή δεν είναι αρκετά ισχυρή για να επαληθεύσει τον κωδικό πρόσβασής σας, αλλά μπορούμε να τον αναδημιουργήσουμε με έναν τρόπο που λειτουργεί με όλες τις συσκευές.\n\nΠαρακαλούμε συνδεθείτε χρησιμοποιώντας το κλειδί ανάκτησης και αναδημιουργήστε τον κωδικό πρόσβασής σας (μπορείτε να χρησιμοποιήσετε ξανά τον ίδιο αν το επιθυμείτε).",
"invalidKey": "Μη έγκυρο κλειδί",
"tryAgain": "Προσπαθήστε ξανά",
"viewRecoveryKey": "Προβολή κλειδιού ανάκτησης",
"confirmRecoveryKey": "Επιβεβαίωση κλειδιού ανάκτησης",
"recoveryKeyVerifyReason": "Το κλειδί ανάκτησης σας είναι ο μόνος τρόπος για να ανακτήσετε τις φωτογραφίες σας εάν ξεχάσετε τον κωδικό πρόσβασής σας. Μπορείτε να βρείτε το κλειδί ανάκτησης σας στις Ρυθμίσεις > Λογαριασμός.\n\nΠαρακαλώ εισάγετε το κλειδί ανάκτησης σας εδώ για να βεβαιωθείτε ότι το έχετε αποθηκεύσει σωστά.",
"confirmYourRecoveryKey": "Επιβεβαίωση κλειδιού ανάκτησης",
"confirm": "Επιβεβαίωση",
"emailYourLogs": "Στείλτε με μήνυμα ηλ. ταχυδομείου τα αρχεία καταγραφής σας",
"pleaseSendTheLogsTo": "Παρακαλώ στείλτε τα αρχεία καταγραφής σας στο \n{toEmail}",
"copyEmailAddress": "Αντιγραφή διεύθυνσης ηλ. ταχυδρομείου",
"exportLogs": "Εξαγωγή αρχείων καταγραφής",
"enterYourRecoveryKey": "Εισάγετε το κλειδί ανάκτησης σας",
"tempErrorContactSupportIfPersists": "Φαίνεται ότι κάτι πήγε στραβά. Παρακαλώ προσπαθήστε ξανά μετά από κάποιο χρονικό διάστημα. Αν το σφάλμα παραμένει, παρακαλούμε επικοινωνήστε με την ομάδα υποστήριξης μας.",
"networkHostLookUpErr": "Δεν είναι δυνατή η σύνδεση με το Ente, ελέγξτε τις ρυθμίσεις του δικτύου σας και επικοινωνήστε με την υποστήριξη αν το σφάλμα παραμένει.",
"networkConnectionRefusedErr": "Δεν είναι δυνατή η σύνδεση με το Ente, παρακαλώ προσπαθήστε ξανά μετά από λίγο. Εάν το σφάλμα παραμένει, παρακαλούμε επικοινωνήστε με την υποστήριξη.",
"itLooksLikeSomethingWentWrongPleaseRetryAfterSome": "Φαίνεται ότι κάτι πήγε στραβά. Παρακαλώ προσπαθήστε ξανά μετά από λίγο. Αν το σφάλμα παραμένει, παρακαλούμε επικοινωνήστε με την ομάδα υποστήριξης μας.",
"about": "Σχετικά με",
"weAreOpenSource": "Είμαστε ανοιχτού κώδικα!",
"privacy": "Ιδιωτικότητα",
"terms": "Όροι",
"checkForUpdates": "Έλεγχος για ενημερώσεις",
"checkStatus": "Έλεγχος κατάστασης",
"downloadUpdate": "Λήψη",
"criticalUpdateAvailable": "Διαθέσιμη κρίσιμη ενημέρωση",
"updateAvailable": "Διαθέσιμη ενημέρωση",
"update": "Ενημέρωση",
"checking": "Έλεγχος...",
"youAreOnTheLatestVersion": "Είστε στην πιο πρόσφατη έκδοση",
"warning": "Προσοχή",
"exportWarningDesc": "Το εξαγόμενο αρχείο περιέχει ευαίσθητες πληροφορίες. Παρακαλώ αποθηκεύστε το με ασφάλεια.",
"iUnderStand": "Καταλαβαίνω",
"@iUnderStand": {
"description": "Text for the button to confirm the user understands the warning"
},
"authToExportCodes": "Παρακαλώ πραγματοποιήστε έλεγχο ταυτότητας για να εξάγετε τους κωδικού σας",
"importSuccessTitle": "Ζήτω!",
"importSuccessDesc": "Έχετε εισάγει {count} κωδικούς!",
"@importSuccessDesc": {
"placeholders": {
"count": {
"description": "The number of codes imported",
"type": "int",
"example": "1"
}
}
},
"sorry": "Συγνώμη",
"importFailureDesc": "Δεν ήταν δυνατή η ανάλυση του επιλεγμένου αρχείου.\nΠαρακαλώ γράψτε στο support@ente.io αν χρειάζεστε βοήθεια!",
"pendingSyncs": "Προσοχή",
"pendingSyncsWarningBody": "Δεν έχουν γίνει αντίγραφα ασφαλείας για μερικούς από τους κωδικούς σας.\n\nΠαρακαλώ βεβαιωθείτε ότι έχετε ένα αντίγραφο ασφαλείας για αυτούς τους κωδικούς πριν αποσυνδεθείτε.",
"checkInboxAndSpamFolder": "Παρακαλώ ελέγξτε τα εισερχόμενά σας (και τα ανεπιθύμητα) για να ολοκληρώσετε την επαλήθευση",
"tapToEnterCode": "Πατήστε για να εισάγετε τον κωδικό",
"resendEmail": "Επαναποστολή μηνύματος ηλ. ταχυδρομείου",
"weHaveSendEmailTo": "Έχουμε στείλει ένα μήνυμα στο <green>{email}</green>",
"@weHaveSendEmailTo": {
"description": "Text to indicate that we have sent a mail to the user",
"placeholders": {
"email": {
"description": "The email address of the user",
"type": "String",
"example": "example@ente.io"
}
}
},
"activeSessions": "Ενεργές συνεδρίες",
"somethingWentWrongPleaseTryAgain": "Κάτι πήγε στραβά, παρακαλώ προσπαθήστε ξανά",
"thisWillLogYouOutOfThisDevice": "Αυτό θα σας αποσυνδέσει από αυτή τη συσκευή!",
"thisWillLogYouOutOfTheFollowingDevice": "Αυτό θα σας αποσυνδέσει από την ακόλουθη συσκευή:",
"terminateSession": "Τερματισμός συνεδρίας;",
"terminate": "Τερματισμός",
"thisDevice": "Αυτή η συσκευή",
"toResetVerifyEmail": "Για να επαναφέρετε τον κωδικό πρόσβασής σας, επαληθεύστε πρώτα την διευθυνση ηλ. ταχυδρομείου σας.",
"thisEmailIsAlreadyInUse": "Αυτός ο λογαριασμός ηλεκτρονικού ταχυδρομείου χρησιμοποιείται ήδη",
"verificationFailedPleaseTryAgain": "Η επαλήθευση απέτυχε, παρακαλώ προσπαθήστε ξανά",
"yourVerificationCodeHasExpired": "Ο κωδικός επαλήθευσης σας έχει λήξει",
"incorrectCode": "Εσφαλμένος κωδικός",
"sorryTheCodeYouveEnteredIsIncorrect": "Λυπούμαστε, ο κωδικός που εισαγάγατε είναι εσφαλμένος",
"emailChangedTo": "Η διεύθυνση ηλ. ταχυδρομείου άλλαξε σε {newEmail}",
"authenticationFailedPleaseTryAgain": "Αποτυχία ελέγχου ταυτότητας, παρακαλώ προσπαθήστε ξανά",
"authenticationSuccessful": "Επιτυχής έλεγχος ταυτότητας!",
"twofactorAuthenticationSuccessfullyReset": "Η αυθεντικοποίηση δύο παραγόντων επαναφέρθηκε επιτυχώς",
"incorrectRecoveryKey": "Εσφαλμένο κλειδί ανάκτησης",
"theRecoveryKeyYouEnteredIsIncorrect": "Το κλειδί ανάκτησης που εισάγατε είναι εσφαλμένο",
"enterPassword": "Εισάγετε κωδικό πρόσβασης",
"selectExportFormat": "Επιλέξτε τύπο εξαγωγής",
"exportDialogDesc": "Οι κρυπτογραφημένες εξαγωγές θα προστατεύονται από έναν κωδικό πρόσβασης της επιλογής σας.",
"encrypted": "Κρυπτογραφημένο",
"plainText": "Απλό κείμενο",
"passwordToEncryptExport": "Κωδικός πρόσβασης για κρυπτογράφηση εξαγωγής",
"export": "Εξαγωγή",
"useOffline": "Χρήση χωρίς αντίγραφα ασφαλείας",
"signInToBackup": "Συνδεθείτε για να δημιουργήσετε αντίγραφα ασφαλείας των κωδικών σας",
"singIn": "Σύνδεση",
"sigInBackupReminder": "Παρακαλώ εξάγετε τους κωδικούς σας για να βεβαιωθείτε ότι έχετε ένα αντίγραφο ασφαλείας από το οποίο μπορείτε να επαναφέρετε.",
"offlineModeWarning": "Επιλέξατε να προχωρήσετε χωρίς αντίγραφα ασφαλείας. Παρακαλώ κάντε χειροκίνητα αντίγραφα ασφαλείας για να βεβαιωθείτε ότι οι κωδικοί σας είναι ασφαλείς.",
"showLargeIcons": "Εμφάνιση μεγάλων εικονιδίων",
"shouldHideCode": "Απόκρυψη κωδικών",
"doubleTapToViewHiddenCode": "Μπορείτε να πατήσετε δύο φορές σε μια καταχώρηση για να δείτε τον κωδικό",
"focusOnSearchBar": "Εστίαση στην αναζήτηση κατά την εκκίνηση εφαρμογής",
"confirmUpdatingkey": "Είστε σίγουροι ότι θέλετε να ενημερώσετε το μυστικό κλειδί;",
"minimizeAppOnCopy": "Ελαχιστοποίηση εφαρμογής κατά την αντιγραφή",
"editCodeAuthMessage": "Πραγματοποιήστε έλεγχο ταυτότητας για να επεξεργαστείτε τον κωδικό",
"deleteCodeAuthMessage": "Πραγματοποιήστε έλεγχο ταυτότητας για να διαγράψετε τον κωδικό",
"showQRAuthMessage": "Πραγματοποιήστε έλεγχο ταυτότητας για να δείτε τον κωδικό QR",
"confirmAccountDeleteTitle": "Επιβεβαίωση διαγραφής λογαριασμού",
"confirmAccountDeleteMessage": "Αυτός ο λογαριασμός είναι συνδεδεμένος με άλλες εφαρμογές Ente, εάν χρησιμοποιείτε κάποια.\n\nΤα δεδομένα σας, σε όλες τις εφαρμογές Ente, θα προγραμματιστούν για διαγραφή και ο λογαριασμός σας θα διαγραφεί οριστικά.",
"androidBiometricHint": "Επαλήθευση ταυτότητας",
"@androidBiometricHint": {
"description": "Hint message advising the user how to authenticate with biometrics. It is used on Android side. Maximum 60 characters."
},
"androidBiometricNotRecognized": "Δεν αναγνωρίζεται. Δοκιμάστε ξανά.",
"@androidBiometricNotRecognized": {
"description": "Message to let the user know that authentication was failed. It is used on Android side. Maximum 60 characters."
},
"androidBiometricSuccess": "Επιτυχία",
"@androidBiometricSuccess": {
"description": "Message to let the user know that authentication was successful. It is used on Android side. Maximum 60 characters."
},
"androidCancelButton": "Ακύρωση",
"@androidCancelButton": {
"description": "Message showed on a button that the user can click to leave the current dialog. It is used on Android side. Maximum 30 characters."
},
"androidSignInTitle": "Απαιτείται έλεγχος ταυτότητας",
"@androidSignInTitle": {
"description": "Message showed as a title in a dialog which indicates the user that they need to scan biometric to continue. It is used on Android side. Maximum 60 characters."
},
"androidBiometricRequiredTitle": "Απαιτούνται βιομετρικά",
"@androidBiometricRequiredTitle": {
"description": "Message showed as a title in a dialog which indicates the user has not set up biometric authentication on their device. It is used on Android side. Maximum 60 characters."
},
"androidDeviceCredentialsRequiredTitle": "Απαιτούνται στοιχεία συσκευής",
"@androidDeviceCredentialsRequiredTitle": {
"description": "Message showed as a title in a dialog which indicates the user has not set up credentials authentication on their device. It is used on Android side. Maximum 60 characters."
},
"androidDeviceCredentialsSetupDescription": "Απαιτούνται στοιχεία συσκευής",
"@androidDeviceCredentialsSetupDescription": {
"description": "Message advising the user to go to the settings and configure device credentials on their device. It shows in a dialog on Android side."
},
"goToSettings": "Μετάβαση στις ρυθμίσεις",
"@goToSettings": {
"description": "Message showed on a button that the user can click to go to settings pages from the current dialog. It is used on both Android and iOS side. Maximum 30 characters."
},
"androidGoToSettingsDescription": "Η βιομετρική πιστοποίηση δεν έχει ρυθμιστεί στη συσκευή σας. Μεταβείτε στις 'Ρυθμίσεις > Ασφάλεια' για να προσθέσετε βιομετρική ταυτοποίηση.",
"@androidGoToSettingsDescription": {
"description": "Message advising the user to go to the settings and configure biometric on their device. It shows in a dialog on Android side."
},
"iOSLockOut": "Η βιομετρική ταυτοποίηση είναι απενεργοποιημένη. Παρακαλώ κλειδώστε και ξεκλειδώστε την οθόνη σας για να την ενεργοποιήσετε.",
"@iOSLockOut": {
"description": "Message advising the user to re-enable biometrics on their device. It shows in a dialog on iOS side."
},
"iOSGoToSettingsDescription": "Η βιομετρική ταυτοποίηση δεν έχει ρυθμιστεί στη συσκευή σας. Παρακαλώ ενεργοποιήστε το Touch ID ή το Face ID στο τηλέφωνό σας.",
"@iOSGoToSettingsDescription": {
"description": "Message advising the user to go to the settings and configure Biometrics for their device. It shows in a dialog on iOS side."
},
"iOSOkButton": "ΟΚ",
"@iOSOkButton": {
"description": "Message showed on a button that the user can click to leave the current dialog. It is used on iOS side. Maximum 30 characters."
},
"noInternetConnection": "Χωρίς σύνδεση στο διαδίκτυο",
"pleaseCheckYourInternetConnectionAndTryAgain": "Παρακαλούμε ελέγξτε τη σύνδεσή σας στο διαδίκτυο και προσπαθήστε ξανά.",
"signOutFromOtherDevices": "Αποσύνδεση από άλλες συσκευές",
"signOutOtherBody": "Αν νομίζετε ότι κάποιος μπορεί να γνωρίζει τον κωδικό πρόσβασής σας, μπορείτε να αναγκάσετε όλες τις άλλες συσκευές που χρησιμοποιούν το λογαριασμό σας να αποσυνδεθούν.",
"signOutOtherDevices": "Αποσύνδεση άλλων συσκευών",
"doNotSignOut": "Μην αποσυνδεθείτε",
"hearUsWhereTitle": "Πώς ακούσατε για το Ente; (προαιρετικό)",
"hearUsExplanation": "Δεν παρακολουθούμε εγκαταστάσεις εφαρμογών. Θα βοηθούσε αν μας είπατε πού μας βρήκατε!",
"recoveryKeySaved": "Το κλειδί ανάκτησης αποθηκεύτηκε στο φάκελο Λήψεις!",
"waitingForBrowserRequest": "Αναμονή για αίτημα περιηγητή...",
"waitingForVerification": "Αναμονή για επαλήθευση...",
"passkey": "Κλειδί πρόσβασης",
"passKeyPendingVerification": "Η επαλήθευση εξακολουθεί να εκκρεμεί",
"loginSessionExpired": "Η συνεδρία έληξε",
"loginSessionExpiredDetails": "Η συνεδρία σας έληξε. Παρακαλώ συνδεθείτε ξανά.",
"developerSettingsWarning": "Είστε σίγουροι ότι θέλετε να τροποποιήσετε τις ρυθμίσεις Προγραμματιστή;",
"developerSettings": "Ρυθμίσεις προγραμματιστή",
"serverEndpoint": "Τερματικό σημείο διακομιστή",
"invalidEndpoint": "Μη έγκυρο τερματικό σημείο",
"invalidEndpointMessage": "Λυπούμαστε, το τερματικό σημείο που εισάγατε δεν είναι έγκυρο. Παρακαλώ εισάγετε ένα έγκυρο τερματικό σημείο και προσπαθήστε ξανά.",
"endpointUpdatedMessage": "Το τερματκό σημείο ενημερώθηκε επιτυχώς",
"customEndpoint": "Συνδεδεμένο στο {endpoint}",
"pinText": "Καρφίτσωμα",
"unpinText": "Ξεκαρφίτσωμα",
"pinnedCodeMessage": "Το {code} καρφιτσώθηκε",
"unpinnedCodeMessage": "Το {code} ξεκαρφιτσώθηκε",
"tags": "Ετικέτες",
"createNewTag": "Δημιουργία Νέας Ετικέτας",
"tag": "Ετικέτα",
"create": "Δημιουργία",
"editTag": "Επεξεργασία ετικέτας",
"deleteTagTitle": "Διαγραφή ετικέτας;",
"deleteTagMessage": "Είστε σίγουροι ότι θέλετε να διαγράψετε αυτή την ετικέτα; Αυτή η ενέργεια είναι μη αναστρέψιμη.",
"somethingWentWrongParsingCode": "Δεν μπορέσαμε να αναλύσουμε τους {x} κώδικες.",
"updateNotAvailable": "Μη διαθέσιμη ενημέρωση",
"viewRawCodes": "Προβολή ακατέργαστων κωδικών",
"rawCodes": "Ακατέργαστοι κωδικοί",
"rawCodeData": "Δεδομένα ακατέργαστων κωδικών",
"appLock": "Κλείδωμα εφαρμογής",
"noSystemLockFound": "Δεν βρέθηκε κλείδωμα συστήματος",
"toEnableAppLockPleaseSetupDevicePasscodeOrScreen": "Για να ενεργοποιήσετε το κλείδωμα εφαρμογής, παρακαλώ ορίστε τον κωδικό πρόσβασης της συσκευής ή το κλείδωμα οθόνης στις ρυθμίσεις του συστήματος σας.",
"autoLock": "Αυτόματο κλείδωμα",
"immediately": "Άμεσα",
"reEnterPassword": "Πληκτρολογήστε ξανά τον κωδικό πρόσβασης",
"reEnterPin": "Πληκτρολογήστε ξανά το PIN",
"next": "Επόμενο",
"tooManyIncorrectAttempts": "Πάρα πολλές εσφαλμένες προσπάθειες",
"tapToUnlock": "Πατήστε για ξεκλείδωμα",
"setNewPassword": "Ορίστε νέο κωδικό πρόσβασης",
"deviceLock": "Κλείδωμα συσκευής",
"hideContent": "Απόκρυψη περιεχομένου",
"pinLock": "Κλείδωμα καρφιτσωμάτων",
"enterPin": "Εισαγωγή PIN",
"setNewPin": "Ορίστε νέο PIN",
"importFailureDescNew": "Αδυναμία ανάλυσης του επιλεγμένου αρχείου."
}

View File

@@ -263,6 +263,8 @@
"exportLogs": "Export logs",
"enterYourRecoveryKey": "Enter your recovery key",
"tempErrorContactSupportIfPersists": "It looks like something went wrong. Please retry after some time. If the error persists, please contact our support team.",
"networkHostLookUpErr": "Unable to connect to Ente, please check your network settings and contact support if the error persists.",
"networkConnectionRefusedErr": "Unable to connect to Ente, please retry after sometime. If the error persists, please contact support.",
"itLooksLikeSomethingWentWrongPleaseRetryAfterSome": "It looks like something went wrong. Please retry after some time. If the error persists, please contact our support team.",
"about": "About",
"weAreOpenSource": "We are open source!",
@@ -419,9 +421,9 @@
"waitingForVerification": "Waiting for verification...",
"passkey": "Passkey",
"passKeyPendingVerification": "Verification is still pending",
"loginSessionExpired" : "Session expired",
"loginSessionExpired": "Session expired",
"loginSessionExpiredDetails": "Your session has expired. Please login again.",
"developerSettingsWarning":"Are you sure that you want to modify Developer settings?",
"developerSettingsWarning": "Are you sure that you want to modify Developer settings?",
"developerSettings": "Developer settings",
"serverEndpoint": "Server endpoint",
"invalidEndpoint": "Invalid endpoint",
@@ -440,5 +442,29 @@
"deleteTagTitle": "Delete tag?",
"deleteTagMessage": "Are you sure you want to delete this tag? This action is irreversible.",
"somethingWentWrongParsingCode": "We were unable to parse {x} codes.",
"updateNotAvailable": "Update not available"
"updateNotAvailable": "Update not available",
"viewRawCodes": "View raw codes",
"rawCodes": "Raw codes",
"rawCodeData": "Raw code data",
"appLock": "App lock",
"noSystemLockFound": "No system lock found",
"toEnableAppLockPleaseSetupDevicePasscodeOrScreen": "To enable app lock, please setup device passcode or screen lock in your system settings.",
"autoLock": "Auto lock",
"immediately": "Immediately",
"reEnterPassword": "Re-enter password",
"reEnterPin": "Re-enter PIN",
"next": "Next",
"tooManyIncorrectAttempts": "Too many incorrect attempts",
"tapToUnlock": "Tap to unlock",
"setNewPassword": "Set new password",
"deviceLock": "Device lock",
"hideContent": "Hide content",
"hideContentDescriptionAndroid": "Hides app content in the app switcher and disables screenshots",
"hideContentDescriptioniOS": "Hides app content in the app switcher",
"autoLockFeatureDescription": "Time after which the app locks after being put in the background",
"appLockDescription": "Choose between your device's default lock screen and a custom lock screen with a PIN or password.",
"pinLock": "Pin lock",
"enterPin": "Enter PIN",
"setNewPin": "Set new PIN",
"importFailureDescNew": "Could not parse the selected file."
}

View File

@@ -20,6 +20,8 @@
"codeIssuerHint": "Emisor",
"codeSecretKeyHint": "Llave Secreta",
"codeAccountHint": "Cuenta (tu@dominio.com)",
"codeTagHint": "Marcado",
"accountKeyType": "Tipo de llave",
"sessionExpired": "La sesión ha expirado",
"@sessionExpired": {
"description": "Title of the dialog when the users current session is invalid/expired"
@@ -77,12 +79,14 @@
"data": "Datos",
"importCodes": "Importar códigos",
"importTypePlainText": "Texto sin formato",
"importTypeEnteEncrypted": "Exportación cifrada Ente",
"passwordForDecryptingExport": "Contraseña para descifrar exportación",
"passwordEmptyError": "La contraseña no puede estar vacía",
"importFromApp": "Importar códigos de {appName}",
"importGoogleAuthGuide": "Exportar tus cuentas desde Google Authenticator a un código QR usando la opción \"Transferir Cuentas\". A continuación, usando otro dispositivo, escanee el código QR.\n\nConsejo: Puede usar la webcam de su portátil para tomar una foto del código QR.",
"importSelectJsonFile": "Seleccione el archivo JSON",
"importSelectAppExport": "Seleccione el archivo de exportación de {appName}",
"importEnteEncGuide": "Seleccione el archivo JSON cifrado exportado desde Ente",
"importRaivoGuide": "Utilice la opción \"Exportar códigos a un archivo de Zip\" en la configuración de Raivo.\n\nExtraiga el archivo zip e importe el archivo JSON.",
"importBitwardenGuide": "Use la opción \"Exportar caja fuerte\" dentro del menú Herramientas de Bitwarden e importe el fichero JSON no crifrado.",
"importAegisGuide": "Utilice la opción \"Exportar la bóveda\" en ajustes de Aegis.\n\nSi tu bóveda es cifrada, necesitara entrar contraseña de bóveda para descifrar la bóveda.",
@@ -119,12 +123,15 @@
"oops": "Ups",
"suggestFeatures": "Sugerir funcionalidades",
"faq": "Preguntas Frecuentes",
"faq_q_1": "¿Qué tan seguro es Auth?",
"faq_a_1": "Todos los códigos que copia de seguridad vía Ente se almacenan cifrados de extremo a extremo. Esto significa que solo usted puede acceder a sus códigos. Nuestras aplicaciones son de código abierto y nuestra criptografía ha sido auditada externamente.",
"faq_q_2": "¿Puedo acceder a mis códigos en el escritorio?",
"faq_a_2": "Puede acceder a tus códigos en la web en auth.ente.io.",
"faq_q_3": "¿Cómo puedo borrar códigos?",
"faq_a_3": "Puede eliminar un código deslizando a la izquierda en ese elemento.",
"faq_q_4": "¿Cómo puedo apoyar este proyecto?",
"faq_a_4": "Puedes apoyar el desarrollo de este proyecto suscribiéndote a nuestra app de Fotos en ente.io.",
"faq_q_5": "Cómo puedo habilitar bloqueo FaceID en Ente Auth",
"faq_a_5": "Puede activar el bloqueo FaceID en Ajustes → Seguridad → Pantalla de bloqueo.",
"somethingWentWrongMessage": "Algo ha ido mal, por favor, prueba otra vez",
"leaveFamily": "Dejar plan familiar",
@@ -151,6 +158,7 @@
}
}
},
"invalidQRCode": "Código QR no válido",
"noRecoveryKeyTitle": "¿Sin clave de recuperación?",
"enterEmailHint": "Introduce tu dirección de correo electrónico",
"invalidEmailTitle": "Dirección de correo electrónico no válida",
@@ -195,6 +203,8 @@
"saveKey": "Guardar Clave",
"save": "Guardar",
"send": "Enviar",
"saveOrSendDescription": "¿Desea guardar esto en el almacenamiento (carpeta Descargas por defecto) o enviarlo a otras aplicaciones?",
"saveOnlyDescription": "¿Desea guardar esto en el almacenamiento (carpeta Descargas por defecto)?",
"back": "Atrás",
"createAccount": "Crear cuenta",
"passwordStrength": "Fortaleza de la contraseña: {passwordStrengthValue}",
@@ -253,12 +263,15 @@
"exportLogs": "Exportar registros",
"enterYourRecoveryKey": "Introduzca su clave de recuperación",
"tempErrorContactSupportIfPersists": "Parece que algo salió mal. Por favor, vuelve a intentarlo después de algún tiempo. Si el error persiste, ponte en contacto con nuestro equipo de soporte.",
"networkHostLookUpErr": "No se puede conectar a Ente. Por favor, comprueba tu configuración de red y ponte en contacto con el soporte técnico si el error persiste.",
"networkConnectionRefusedErr": "No se puede conectar a Ente. Por favor, vuelve a intentarlo pasado un tiempo. Si el error persiste, ponte en contacto con el soporte técnico.",
"itLooksLikeSomethingWentWrongPleaseRetryAfterSome": "Parece que algo salió mal. Por favor, vuelve a intentarlo después de algún tiempo. Si el error persiste, ponte en contacto con nuestro equipo de soporte.",
"about": "Acerca de",
"weAreOpenSource": "¡Somos de código abierto!",
"privacy": "Privacidad",
"terms": "Términos",
"checkForUpdates": "Comprobar actualizaciones",
"checkStatus": "Comprobar estado",
"downloadUpdate": "Descargar",
"criticalUpdateAvailable": "Actualización crítica disponible",
"updateAvailable": "Actualizacion disponible",
@@ -342,6 +355,7 @@
"deleteCodeAuthMessage": "Autenticar para borrar código",
"showQRAuthMessage": "Autenticar para mostrar código QR",
"confirmAccountDeleteTitle": "Confirmar eliminación de la cuenta",
"confirmAccountDeleteMessage": "Esta cuenta está vinculada a otras aplicaciones de Ente, si utilizas alguna. Se programará la eliminación de los datos cargados en todas las aplicaciones de Ente, y tu cuenta se eliminará permanentemente.",
"androidBiometricHint": "Verificar identidad",
"@androidBiometricHint": {
"description": "Hint message advising the user how to authenticate with biometrics. It is used on Android side. Maximum 60 characters."
@@ -402,7 +416,31 @@
"doNotSignOut": "No cerrar la sesión",
"hearUsWhereTitle": "¿Cómo conoció Ente? (opcional)",
"hearUsExplanation": "No rastreamos las aplicaciones instaladas. ¡Nos ayudaría si nos dijera dónde nos encontró!",
"recoveryKeySaved": "¡Clave de recuperación guardada en la carpeta Descargas!",
"waitingForBrowserRequest": "Esperando la solicitud del navegador...",
"waitingForVerification": "Esperando verificación...",
"passkey": "Llave de acceso",
"passKeyPendingVerification": "La verificación todavía está pendiente",
"loginSessionExpired": "La sesión ha expirado",
"loginSessionExpiredDetails": "Tu sesión ha expirado. Por favor, vuelve a iniciar sesión.",
"developerSettingsWarning": "¿Estás seguro de que quieres modificar los ajustes de desarrollador?",
"developerSettings": "Ajustes de desarrollador"
"developerSettings": "Ajustes de desarrollador",
"serverEndpoint": "Punto final del servidor",
"invalidEndpoint": "Punto final no válido",
"invalidEndpointMessage": "Lo sentimos, el punto final introducido no es válido. Por favor, introduce un punto final válido y vuelve a intentarlo.",
"endpointUpdatedMessage": "Punto final actualizado con éxito",
"customEndpoint": "Conectado a {endpoint}",
"pinText": "Fijar",
"unpinText": "Desanclar",
"pinnedCodeMessage": "{code} ha sido anclado",
"unpinnedCodeMessage": "{code} ha sido desanclado",
"tags": "Etiquetas",
"createNewTag": "Crear Nueva Etiqueta",
"tag": "Etiqueta",
"create": "Crear",
"editTag": "Editar Etiqueta",
"deleteTagTitle": "¿Eliminar etiqueta?",
"deleteTagMessage": "¿Estás seguro de que quieres eliminar esta etiqueta? Esta acción es irreversible.",
"somethingWentWrongParsingCode": "No se han podido analizar los códigos {x}.",
"updateNotAvailable": "Actualización no disponible"
}

View File

@@ -230,5 +230,10 @@
"thisDevice": "این دستگاه",
"editCodeAuthMessage": "احراز هویت برای ویرایش کد",
"deleteCodeAuthMessage": "احراز هویت برای حذف کد",
"showQRAuthMessage": "احراز هویت برای نمایش کد QR"
"showQRAuthMessage": "احراز هویت برای نمایش کد QR",
"tags": "برچسب‌ها",
"createNewTag": "ایجاد برچسب جدید",
"tag": "برچسب",
"create": "ایجاد",
"editTag": "ویرایش برچسب"
}

View File

@@ -1,4 +1,7 @@
{
"account": "Käyttäjätili",
"unlock": "Avaa lukitus",
"recoveryKey": "Palautusavain",
"counterAppBarTitle": "Laskuri",
"@counterAppBarTitle": {
"description": "Text shown in the AppBar of the Counter Page"
@@ -7,11 +10,15 @@
"onBoardingGetStarted": "Aloitetaan",
"setupFirstAccount": "Määritä ensimmäinen tilisi",
"importScanQrCode": "Lue QR-koodi",
"qrCode": "QR-koodi",
"importEnterSetupKey": "Syötä asetusavain",
"importAccountPageTitle": "Syötä tilin tiedot",
"incorrectDetails": "Virheelliset tiedot",
"pleaseVerifyDetails": "Vahvista tietosi ja yritä uudelleen",
"codeIssuerHint": "Myöntäjä",
"codeSecretKeyHint": "Salainen avain",
"codeAccountHint": "Tili (sinun@jokinosoite.com)",
"accountKeyType": "Avaimen tyyppi",
"sessionExpired": "Istunto on vanheutunut",
"@sessionExpired": {
"description": "Title of the dialog when the users current session is invalid/expired"
@@ -50,6 +57,7 @@
}
},
"contactSupport": "Ota yhteyttä käyttötukeen",
"blog": "Blogi",
"verifyPassword": "Vahvista salasana",
"pleaseWait": "Odota hetki...",
"generatingEncryptionKeysTitle": "Luodaan salausavaimia...",
@@ -62,21 +70,38 @@
"supportDevs": "Tilaa <bold-green>ente</bold-green> tukeaksesi tätä hanketta.",
"supportDiscount": "Käytä kuponkikoodia \"AUTH\" saadaksesi 10% alennuksen ensimmäisestä vuodesta",
"changeEmail": "vaihda sähköpostiosoitteesi",
"changePassword": "Vaihda salasana",
"importCodes": "Tuo koodit",
"importTypePlainText": "Pelkkä teksti",
"importTypeEnteEncrypted": "Ente salattu vienti",
"importSelectJsonFile": "Valitse JSON-tiedosto",
"exportCodes": "Vie koodit",
"importLabel": "Tuo",
"selectFile": "Valitse tiedosto",
"emailVerificationToggle": "Sähköpostivahvistus",
"ok": "Selvä",
"cancel": "Keskeytä",
"yes": "Kyllä",
"no": "Ei",
"email": "Sähköposti",
"support": "Tuki",
"general": "Yleiset",
"settings": "Asetukset",
"copied": "Jäljennetty",
"pleaseTryAgain": "Yritä uudestaan",
"existingUser": "Jo valmiiksi olemassaoleva käyttäjä",
"newUser": "Uusi Ente-käyttäjä",
"delete": "Poista",
"enterYourPasswordHint": "Syötä salasanasi",
"forgotPassword": "Olen unohtanut salasanani",
"oops": "Hupsista",
"suggestFeatures": "Ehdota parannuksia",
"faq": "Usein kysyttyä",
"faq_q_1": "Kuinka turvallinen Auth on?",
"faq_q_3": "Kuinka voin poistaa koodeja?",
"faq_q_4": "Kuinka voin tukea tätä projektia?",
"faq_q_5": "Miten voin ottaa käyttöön FaceID-lukituksen Authissa",
"faq_a_5": "Voit ottaa FaceID-lukituksen käyttöön kohdassa Asetukset → Turvallisuus → Lukitusnäyttö.",
"somethingWentWrongMessage": "Jokin meni pieleen, yritä uudelleen",
"leaveFamily": "Poistu perheestä",
"leaveFamilyMessage": "Oletko varma että haluat jättää tämän perhemallin?",
@@ -85,9 +110,12 @@
"scan": "Lue",
"scanACode": "Lue koodi",
"verify": "Vahvista",
"verifyEmail": "Vahvista sähköpostiosoite",
"enterCodeHint": "Syötä 6-merkkinen koodi varmennussovelluksestasi",
"lostDeviceTitle": "Kadonnut laite?",
"twoFactorAuthTitle": "Kaksivaiheinen vahvistus",
"passkeyAuthTitle": "Avainkoodin vahvistus",
"verifyPasskey": "Vahvista avainkoodi",
"recoverAccount": "Palauta tilisi",
"enterRecoveryKeyHint": "Syötä palautusavaimesi",
"recover": "Palauta",
@@ -99,6 +127,7 @@
}
}
},
"invalidQRCode": "Virheellinen QR-koodi",
"noRecoveryKeyTitle": "Ei palautusavainta?",
"enterEmailHint": "Syötä sähköpostiosoitteesi",
"invalidEmailTitle": "Epäkelpo sähköpostiosoite",
@@ -116,7 +145,65 @@
"confirmPassword": "Vahvista salasana",
"close": "Sulje",
"oopsSomethingWentWrong": "Hupsista! Jotakin meni nyt pieleen.",
"selectLanguage": "Valitse kieli",
"language": "Kieli",
"security": "Turvallisuus",
"lockscreen": "Lukitusnäyttö",
"lockScreenEnablePreSteps": "Aktivoi lukitusnäyttö ottamalla käyttöön laitteen salasana tai näytön lukitus järjestelmäasetuksissa.",
"searchHint": "Etsi...",
"search": "Etsi",
"noResult": "Ei tuloksia",
"addCode": "Lisää koodi",
"enterDetailsManually": "Syötä tiedot manuaalisesti",
"edit": "Muokkaa",
"copiedToClipboard": "Kopioitu leikepöydälle",
"copiedNextToClipboard": "Seuraava koodi kopioitu leikepöydälle",
"error": "Virhe",
"recoveryKeyCopiedToClipboard": "Palautusavain kopioitu leikepöydälle",
"recoveryKeyOnForgotPassword": "Jos unohdat salasanasi, ainoa tapa palauttaa tietosi on tällä avaimella.",
"recoveryKeySaveDescription": "Emme tallenna tätä avainta, ole hyvä ja tallenna tämä 24 sanan avain turvalliseen paikkaan.",
"doThisLater": "Tee tämä myöhemmin",
"saveKey": "Tallenna avain",
"save": "Tallenna",
"send": "Lähetä",
"back": "Takaisin",
"createAccount": "Luo tili",
"password": "Salasana",
"encryption": "Salaus",
"setPasswordTitle": "Luo salasana",
"changePasswordTitle": "Vaihda salasana",
"resetPasswordTitle": "Nollaa salasana",
"encryptionKeys": "Salausavaimet",
"passwordChangedSuccessfully": "Salasana vaihdettu onnistuneesti",
"generatingEncryptionKeys": "Luodaan salausavaimia...",
"continueLabel": "Jatka",
"logInLabel": "Kirjaudu sisään",
"logout": "Kirjaudu ulos",
"yesLogout": "Kyllä, kirjaudu ulos",
"exit": "Poistu",
"about": "Tietoa",
"weAreOpenSource": "Olemme avoimen lähdekoodin ohjelma!",
"privacy": "Yksityisyys",
"checkForUpdates": "Tarkista päivitykset",
"downloadUpdate": "Lataa",
"updateAvailable": "Päivitys saatavilla",
"warning": "Varoitus",
"enterPassword": "Syötä salasana",
"singIn": "Kirjaudu sisään",
"shouldHideCode": "Piilota koodit",
"editCodeAuthMessage": "Autentikoidu muokataksesi koodia",
"deleteCodeAuthMessage": "Autentikoidu poistaaksesi koodin",
"showQRAuthMessage": "Autentikoidu näyttääksesi QR-koodin"
"showQRAuthMessage": "Autentikoidu näyttääksesi QR-koodin",
"androidBiometricSuccess": "Kirjautuminen onnistui",
"@androidBiometricSuccess": {
"description": "Message to let the user know that authentication was successful. It is used on Android side. Maximum 60 characters."
},
"androidCancelButton": "Peruuta",
"@androidCancelButton": {
"description": "Message showed on a button that the user can click to leave the current dialog. It is used on Android side. Maximum 30 characters."
},
"goToSettings": "Mene asetuksiin",
"@goToSettings": {
"description": "Message showed on a button that the user can click to go to settings pages from the current dialog. It is used on both Android and iOS side. Maximum 30 characters."
}
}

View File

@@ -263,12 +263,15 @@
"exportLogs": "Exporter les journaux",
"enterYourRecoveryKey": "Entrez votre clé de récupération",
"tempErrorContactSupportIfPersists": "Il semble qu'une erreur s'est produite. Veuillez réessayer après un certain temps. Si l'erreur persiste, veuillez contacter notre équipe d'assistance.",
"networkHostLookUpErr": "Impossible de se connecter à Ente, veuillez vérifier vos paramètres réseau et contacter le support si l'erreur persiste.",
"networkConnectionRefusedErr": "Impossible de se connecter à Ente, veuillez réessayer après un certain temps. Si l'erreur persiste, veuillez contacter le support.",
"itLooksLikeSomethingWentWrongPleaseRetryAfterSome": "Il semble qu'une erreur s'est produite. Veuillez réessayer après un certain temps. Si l'erreur persiste, veuillez contacter notre équipe d'assistance.",
"about": "À propos",
"weAreOpenSource": "Nous sommes open source !",
"privacy": "Confidentialité",
"terms": "Conditions",
"checkForUpdates": "Vérifier les mises à jour",
"checkStatus": "Vérifier le statut",
"downloadUpdate": "Télécharger",
"criticalUpdateAvailable": "Mise à jour critique disponible",
"updateAvailable": "Une mise à jour est disponible",
@@ -417,6 +420,9 @@
"waitingForBrowserRequest": "En attente de la requête du navigateur...",
"waitingForVerification": "En attente de vérification...",
"passkey": "Code d'accès",
"passKeyPendingVerification": "La vérification est toujours en attente",
"loginSessionExpired": "Session expirée",
"loginSessionExpiredDetails": "Votre session a expiré. Veuillez vous reconnecter.",
"developerSettingsWarning": "Êtes-vous sûr de vouloir modifier les paramètres du développeur ?",
"developerSettings": "Paramètres du développeur",
"serverEndpoint": "Point de terminaison serveur",
@@ -436,5 +442,22 @@
"deleteTagTitle": "Supprimer le tag ?",
"deleteTagMessage": "Êtes-vous sûr de vouloir supprimer ce tag ? Cette action est irréversible.",
"somethingWentWrongParsingCode": "Impossible d'analyser les codes {x}.",
"updateNotAvailable": "Mise à jour non disponible"
"updateNotAvailable": "Mise à jour non disponible",
"viewRawCodes": "Afficher les codes bruts",
"rawCodes": "Codes bruts",
"rawCodeData": "Données de code brut",
"noSystemLockFound": "Aucun verrou système trouvé",
"autoLock": "Verrouillage automatique",
"immediately": "Immédiatement",
"reEnterPassword": "Ressaisir le mot de passe",
"reEnterPin": "Ressaisir le code PIN",
"next": "Suivant",
"tooManyIncorrectAttempts": "Trop de tentatives incorrectes",
"tapToUnlock": "Appuyer pour déverrouiller",
"setNewPassword": "Définir un nouveau mot de passe",
"deviceLock": "Verrouillage de l'appareil",
"hideContent": "Masquer le contenu",
"enterPin": "Saisir le code PIN",
"setNewPin": "Définir un nouveau code PIN",
"importFailureDescNew": "Impossible de lire le fichier sélectionné."
}

View File

@@ -0,0 +1,118 @@
{
"account": "ખાતું",
"unlock": "અનલોક કરો",
"recoveryKey": "પુનઃપ્રાપ્તિ ચાવી",
"onBoardingBody": "તમારા 2FA કોડનો સુરક્ષિત રીતે બેકઅપ લો",
"onBoardingGetStarted": "શરૂ કરો",
"setupFirstAccount": "તમારું પ્રથમ એકાઉન્ટ સેટ કરો",
"importScanQrCode": "QR કોડ સ્કેન કરો",
"qrCode": "QR કોડ",
"importEnterSetupKey": "સેટઅપ કી દાખલ કરો",
"importAccountPageTitle": "એકાઉન્ટ વિગતો દાખલ કરો",
"secretCanNotBeEmpty": "રહસ્ય ખાલી ન હોઈ શકે",
"bothIssuerAndAccountCanNotBeEmpty": "રજૂકર્તા અને ખાતું બંને ખાલી હોઈ શકતા નથી",
"incorrectDetails": "ખોટી વિગતો",
"pleaseVerifyDetails": "કૃપા કરીને વિગતો ચકાસો અને ફરી પ્રયાસ કરો",
"codeIssuerHint": "રજૂકર્તા",
"codeSecretKeyHint": "ગુપ્ત ચાવી",
"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": "શું તમે ખરેખર આ કોડ કાઢી નાખવા માંગો છો? આ ક્રિયા બદલી શકાય તેવી નથી.",
"viewLogsAction": "લોગ જુઓ",
"sendLogsDescription": "આ તમારી સમસ્યાને ડીબગ કરવામાં અમને મદદ કરવા માટે અમને લોગ મોકલશે. જ્યારે સંવેદનશીલ માહિતી લૉગ ન થાય તેની ખાતરી કરવા માટે અમે સાવચેતી રાખીએ છીએ, અમે તમને આ લોગ મોકલતા પહેલા જોવા માટે પ્રોત્સાહિત કરીએ છીએ.",
"preparingLogsTitle": "લૉગ્સ તૈયાર કરી રહ્યાં છીએ...",
"emailLogsTitle": "લોગ ઇમેઇલ કરો",
"emailLogsMessage": "કૃપા કરીને આને {email} લોગ મોકલો",
"@emailLogsMessage": {
"placeholders": {
"email": {
"type": "String"
}
}
},
"copyEmailAction": "ઈમેલ કોપી કરો",
"exportLogsAction": "લોગ નિકાસ કરો",
"reportABug": "બગની જાણ કરો",
"crashAndErrorReporting": "ભાંગી પડવાની અને ભૂલની જાણ કરવી",
"reportBug": "બગની જાણ કરો",
"emailUsMessage": "કૃપા કરીને અમને {email} ઇમેઇલ કરો",
"@emailUsMessage": {
"placeholders": {
"email": {
"type": "String"
}
}
},
"contactSupport": "સહાયતા માટે સંપર્ક કરો",
"rateUsOnStore": "{storeName} પર અમને રેટ કરો",
"blog": "બ્લોગ",
"merchandise": "વેપારી વસ્તુઓ",
"verifyPassword": "પાસવર્ડ ચકાસો",
"pleaseWait": "કૃપા કરીને રાહ જુવો...",
"generatingEncryptionKeysTitle": "એન્ક્રિપ્શન ચાવીઓ જનરેટ કરી રહ્યાં છીએ...",
"recreatePassword": "પાસવર્ડ ફરીથી બનાવો",
"recreatePasswordMessage": "વર્તમાન ઉપકરણ તમારા પાસવર્ડને ચકાસવા માટે પૂરતું શક્તિશાળી નથી, તેથી અમારે તેને તમામ ઉપકરણો સાથે કામ કરે તે રીતે એકવાર ફરીથી બનાવવાની જરૂર છે.\n\nકૃપા કરીને તમારી પુનઃપ્રાપ્તિ ચાવીનો ઉપયોગ કરીને લૉગિન કરો અને તમારો પાસવર્ડ ફરીથી બનાવો (જો તમે ઈચ્છો તો તમે તે જ ફરી ઉપયોગ કરી શકો છો).",
"useRecoveryKey": "પુનઃપ્રાપ્તિ કીનો ઉપયોગ કરો",
"incorrectPasswordTitle": "ખોટો પાસવર્ડ",
"welcomeBack": "ફરી તમારુ સ્વાગત છે!",
"madeWithLoveAtPrefix": " ખાતે ❤️ સાથે બનાવેલ છે",
"supportDevs": "અમને સમર્થન આપવા માટે <bold-green>ente</bold-green> પર સબ્સ્ક્રાઇબ કરો",
"supportDiscount": "પ્રથમ વર્ષે મા 10% છૂટ મેળવવા માટે કૂપન કોડ \"AUTH\" નો ઉપયોગ કરો",
"changeEmail": "ઈ - મેઈલ બદલો",
"changePassword": "પાસવર્ડ બદલો",
"data": "માહિતી",
"importCodes": "કોડ્સ આયાત કરો",
"importTypePlainText": "સાદુ લખાણ",
"importTypeEnteEncrypted": "એન્ટે એન્ક્રિપ્ટેડ નિકાસ",
"passwordForDecryptingExport": "નિકાસને ડિક્રિપ્ટ કરવા માટે પાસવર્ડ",
"passwordEmptyError": "પાસવર્ડ ખાલી ન હોઈ શકે",
"importFromApp": "{appName} થી કોડ્સ આયાત કરો",
"selectFile": "ફાઇલ પસંદ કરો",
"ok": "સારું",
"cancel": "રદ કરો",
"yes": "હા",
"no": "ના",
"email": "ઇમેઇલ",
"support": "સહાય",
"general": "સામાન્ય",
"delete": "કાઢી નાખો",
"enterPassword": "પાસવર્ડ દાખલ કરો",
"encrypted": "એનક્રિપ્ટ થયેલ",
"plainText": "સાદુ લખાણ",
"passwordToEncryptExport": "નિકાસને એન્ક્રિપ્ટ કરવા માટે પાસવર્ડ",
"export": "નિકાસ કરો",
"singIn": "સાઇન ઇન કરો",
"androidBiometricSuccess": "સફળતા",
"@androidBiometricSuccess": {
"description": "Message to let the user know that authentication was successful. It is used on Android side. Maximum 60 characters."
},
"androidCancelButton": "રદ કરો",
"@androidCancelButton": {
"description": "Message showed on a button that the user can click to leave the current dialog. It is used on Android side. Maximum 30 characters."
},
"androidSignInTitle": "પ્રમાણીકરણ જરૂરી છે",
"@androidSignInTitle": {
"description": "Message showed as a title in a dialog which indicates the user that they need to scan biometric to continue. It is used on Android side. Maximum 60 characters."
},
"goToSettings": "સેટિંગ માં જાઓ",
"@goToSettings": {
"description": "Message showed on a button that the user can click to go to settings pages from the current dialog. It is used on both Android and iOS side. Maximum 30 characters."
},
"iOSOkButton": "બરાબર",
"@iOSOkButton": {
"description": "Message showed on a button that the user can click to leave the current dialog. It is used on iOS side. Maximum 30 characters."
},
"tags": "ચિઠ્ઠી"
}

View File

@@ -1,5 +1,6 @@
{
"account": "חשבון",
"unlock": "בטל נעילה",
"recoveryKey": "מפתח שחזור",
"counterAppBarTitle": "מונה",
"@counterAppBarTitle": {
@@ -105,12 +106,15 @@
"copied": "הועתק",
"pleaseTryAgain": "אנא נסה שנית",
"existingUser": "משתמש קיים",
"newUser": "חדש בente",
"delete": "למחוק",
"enterYourPasswordHint": "הכנס סיסמא",
"forgotPassword": "שכחתי סיסמה",
"oops": "אופס",
"suggestFeatures": "הציעו מאפיינים",
"faq": "שאלות נפוצות",
"faq_q_1": "כמה מאובטח ente Auth?",
"faq_a_1": "כל הקודים שאתה מגבה דרך ente מאוחסנים מקצה לקצה בהצפנה. הכוונה שרק אתה יכול לגשת לקודים שלך. האפליקציות שלנו הם מפותחות דרך קוד פתוח והקריפטוגרפיה שלנו מבוקרת חיצונית.",
"faq_q_2": "האם ישנה אפשרות להשתמש בקודים שלי במחשב?",
"faq_a_2": "אתה יכול לגשת לקודים שלך ברשת ב- auth.ente.io.",
"faq_q_3": "איך אפשר למחוק קודים?",
@@ -183,6 +187,8 @@
"recoveryKeySaveDescription": "אנחנו לא מאחסנים את המפתח הזה, אנא שמור את המפתח 24 מילים הזה במקום בטוח.",
"doThisLater": "עשה זאת מאוחר יותר",
"saveKey": "שמור מפתח",
"save": "שמור",
"send": "שלח",
"back": "חזרה",
"createAccount": "צור חשבון",
"passwordStrength": "חוזק הסיסמא: {passwordStrengthValue}",
@@ -247,6 +253,7 @@
"privacy": "פרטיות",
"terms": "תנאים",
"checkForUpdates": "בדוק אם קיימים עדכונים",
"checkStatus": "בדוק סטטוס",
"downloadUpdate": "הורד",
"criticalUpdateAvailable": "עדכון חשוב זמין",
"updateAvailable": "עדכון זמין",
@@ -327,5 +334,8 @@
"minimizeAppOnCopy": "מזער אפליקציה בהעתקה",
"editCodeAuthMessage": "אמת כדי לערוך קוד",
"deleteCodeAuthMessage": "אמת כדי למחוק קוד",
"showQRAuthMessage": "אמת כדי להראות קוד QR"
"showQRAuthMessage": "אמת כדי להראות קוד QR",
"confirmAccountDeleteTitle": "אישור מחיקת חשבון",
"noInternetConnection": "אין חיבור לאינטרנט",
"pleaseCheckYourInternetConnectionAndTryAgain": "אנא בדוק את חיבור האינטרנט שלך ונסה שוב."
}

View File

@@ -0,0 +1 @@
{}

View File

@@ -1,22 +1,85 @@
{
"account": "Akun",
"unlock": "Buka",
"recoveryKey": "Kunci pemulihan",
"onBoardingBody": "Cadangkan kode 2FA kamu dengan aman",
"onBoardingGetStarted": "Mulai",
"setupFirstAccount": "Siapkan akun pertama kamu",
"importScanQrCode": "Pindai Kode QR",
"qrCode": "Kode QR",
"importEnterSetupKey": "Masukkan kunci penyiapan",
"importAccountPageTitle": "Masukkan detail akun",
"incorrectDetails": "Rincian salah",
"pleaseVerifyDetails": "Periksa kembali data kamu dan coba lagi",
"codeIssuerHint": "Penerbit",
"codeSecretKeyHint": "Kunci Rahasia",
"codeAccountHint": "Akun (kamu@domain.com)",
"codeTagHint": "Tag",
"sessionExpired": "Sesi berakhir",
"@sessionExpired": {
"description": "Title of the dialog when the users current session is invalid/expired"
},
"pleaseLoginAgain": "Silakan masuk akun lagi",
"loggingOut": "Mengeluarkan akun...",
"timeBasedKeyType": "Berbasis waktu (TOTP)",
"saveAction": "Simpan",
"nextTotpTitle": "berikutnya",
"deleteCodeTitle": "Hapus kode?",
"deleteCodeMessage": "Apakah kamu yakin ingin menghapus kode ini? Tindakan ini tidak dapat dikembalikan ke semula.",
"viewLogsAction": "Lihat log",
"sendLogsDescription": "Langkah ini akan mengirimkan log untuk membantu kami menganalisa masalah kamu. Meskipun kami melakukan tindakan pencegahan untuk memastikan bahwa informasi sensitif tidak dicatat, kami menganjurkan kamu untuk melihat log ini sebelum membagikannya.",
"preparingLogsTitle": "Menyiapkan log...",
"copyEmailAction": "Salin email",
"exportLogsAction": "Ekspor log",
"reportABug": "Laporkan bug",
"reportBug": "Laporkan bug",
"contactSupport": "Hubungi dukungan",
"rateUsOnStore": "Nilai kami di {storeName}",
"blog": "Blog",
"verifyPassword": "Verifikasi sandi",
"pleaseWait": "Harap tunggu...",
"generatingEncryptionKeysTitle": "Membuat kunci enkripsi...",
"recreatePassword": "Buat kembali katasandi",
"recreatePasswordMessage": "Perangkat ini tidak cukup kuat untuk memverifikasi kata sandi kamu, jadi kami perlu membuat ulang kata sandi kamu sekali lagi dengan cara yang dapat digunakan di semua perangkat.\n\nSilahkan masuk menggunakan kunci pemulihan dan buat ulang kata sandi kamu (Kamu dapat menggunakan kata sandi yang sama lagi jika mau).",
"useRecoveryKey": "Gunakan kunci pemulihan",
"incorrectPasswordTitle": "Kata sandi salah",
"welcomeBack": "Selamat datang kembali!",
"madeWithLoveAtPrefix": "dibuat dengan ❤️ di ",
"supportDevs": "Berlangganan <bold-green>ente</bold-green> untuk mendukung kami",
"supportDiscount": "Gunakan kode kupon \"AUTH\" untuk mendapatkan potongan 10% pada tahun pertamamu",
"changeEmail": "Ubah email",
"changePassword": "Ubah sandi",
"data": "Data",
"importCodes": "Impor kode",
"importTypePlainText": "Teks biasa",
"passwordForDecryptingExport": "Kata sandi untuk mendekripsi ekspor",
"passwordEmptyError": "Kata sandi tidak boleh kosong",
"importFromApp": "Impor kode dari {appName}",
"importSelectJsonFile": "Pilih File JSON",
"importSelectAppExport": "Pilih file ekspor dari {appName}",
"selectFile": "Pilih file",
"emailVerificationToggle": "Verifikasi email",
"emailVerificationEnableWarning": "Untuk menghindari akun kamu terkunci, pastikan untuk menyimpan salinan 2FA email kamu di luar Ente Auth sebelum mengaktifkan verifikasi email.",
"ok": "Oke",
"cancel": "Batal",
"email": "Email",
"support": "Dukungan",
"general": "Umum",
"settings": "Pengaturan",
"newUser": "Baru di Ente",
"delete": "Hapus",
"enterYourPasswordHint": "Masukkan sandi kamu",
"suggestFeatures": "Sarankan fitur",
"faq": "Tanya Jawab Umum",
"faq_q_1": "Seberapa aman Auth itu?",
"faq_a_1": "Semua kode yang kamu cadangkan melalui Auth disimpan menggunakan enkripsi end-to-end. Jadi hanya kamu yang dapat mengaksesnya. Aplikasi kami bersifat open source dan kriptografi kami telah diaudit oleh eksternal.",
"faq_q_2": "Bisakah saya mengakses kode saya di desktop?",
"faq_a_2": "Kamu dapat mengakses kodenya melalui web auth.ente.io.",
"scan": "Pindai",
"scanACode": "Pindai kode",
"verify": "Verifikasi",
"verifyEmail": "Verifikasi email",
"enterCodeHint": "Masukkan kode 6 angka dari\napp autentikator kamu",
"createNewAccount": "Buat akun baru",
"confirmPassword": "Konfirmasi sandi",
"selectLanguage": "Pilih bahasa",

View File

@@ -263,12 +263,15 @@
"exportLogs": "Esporta log",
"enterYourRecoveryKey": "Inserisci la tua chiave di recupero",
"tempErrorContactSupportIfPersists": "Sembra che qualcosa sia andato storto. Riprova tra un po'. Se l'errore persiste, contatta il nostro team di supporto.",
"networkHostLookUpErr": "Impossibile connettersi a Ente, controlla le impostazioni di rete e contatta l'assistenza se l'errore persiste.",
"networkConnectionRefusedErr": "Impossibile connettersi a Ente, riprova tra un po' di tempo. Se l'errore persiste, contatta l'assistenza.",
"itLooksLikeSomethingWentWrongPleaseRetryAfterSome": "Sembra che qualcosa sia andato storto. Riprova tra un po'. Se l'errore persiste, contatta il nostro team di supporto.",
"about": "Informazioni",
"weAreOpenSource": "Siamo open source!",
"privacy": "Privacy",
"terms": "Termini",
"checkForUpdates": "Controlla aggiornamenti",
"checkStatus": "Verifica stato",
"downloadUpdate": "Scarica",
"criticalUpdateAvailable": "Un aggiornamento importante è disponibile",
"updateAvailable": "Aggiornamento disponibile",
@@ -417,6 +420,9 @@
"waitingForBrowserRequest": "In attesa della richiesta del browser...",
"waitingForVerification": "In attesa di verifica...",
"passkey": "Passkey",
"passKeyPendingVerification": "La verifica è ancora in corso",
"loginSessionExpired": "Sessione scaduta",
"loginSessionExpiredDetails": "La sessione è scaduta. Si prega di accedere nuovamente.",
"developerSettingsWarning": "Siete sicuri di voler modificare le impostazioni sviluppatore?",
"developerSettings": "Impostazioni sviluppatore",
"serverEndpoint": "Endpoint del server",
@@ -436,5 +442,29 @@
"deleteTagTitle": "Eliminare il tag?",
"deleteTagMessage": "Sei sicuro di voler eliminare questo tag? Questa azione è irreversibile.",
"somethingWentWrongParsingCode": "Non siamo riusciti ad analizzare i codici {x}.",
"updateNotAvailable": "Aggiornamento non disponibile"
"updateNotAvailable": "Aggiornamento non disponibile",
"viewRawCodes": "Visualizza codici raw",
"rawCodes": "Codici raw",
"rawCodeData": "Dati codice raw",
"appLock": "Blocco app",
"noSystemLockFound": "Nessun blocco di sistema trovato",
"toEnableAppLockPleaseSetupDevicePasscodeOrScreen": "Per abilitare il blocco dell'app, configura il codice di accesso del dispositivo o il blocco schermo nelle impostazioni di sistema.",
"autoLock": "Blocco automatico",
"immediately": "Immediatamente",
"reEnterPassword": "Reinserisci la password",
"reEnterPin": "Reinserisci il PIN",
"next": "Successivo",
"tooManyIncorrectAttempts": "Troppi tentativi errati",
"tapToUnlock": "Tocca per sbloccare",
"setNewPassword": "Imposta una nuova password",
"deviceLock": "Blocco del dispositivo",
"hideContent": "Nascondi il contenuto",
"hideContentDescriptionAndroid": "Nasconde il contenuto nel selettore delle app e disabilita gli screenshot",
"hideContentDescriptioniOS": "Nasconde il contenuto nel selettore delle app",
"autoLockFeatureDescription": "Tempo dopo il quale l'applicazione si blocca dopo essere stata messa in background",
"appLockDescription": "Scegli tra la schermata di blocco predefinita del dispositivo e una schermata di blocco personalizzata con PIN o password.",
"pinLock": "Blocco con PIN",
"enterPin": "Inserisci PIN",
"setNewPin": "Imposta un nuovo PIN",
"importFailureDescNew": "Impossibile elaborare il file selezionato."
}

View File

@@ -263,12 +263,15 @@
"exportLogs": "ログのエクスポート",
"enterYourRecoveryKey": "回復キーを入力",
"tempErrorContactSupportIfPersists": "問題が発生したようです。しばらくしてから再試行してください。エラーが解決しない場合は、サポートチームにお問い合わせください。",
"networkHostLookUpErr": "Enteに接続できませんでした。ネットワーク設定を確認し、エラーが解決しない場合はサポートにお問い合わせください。",
"networkConnectionRefusedErr": "Enteに接続できませんでした。しばらくしてから再試行してください。エラーが解決しない場合は、サポートにお問い合わせください。",
"itLooksLikeSomethingWentWrongPleaseRetryAfterSome": "問題が発生したようです。しばらくしてから再試行してください。エラーが解決しない場合は、サポートチームにお問い合わせください。",
"about": "情報",
"weAreOpenSource": "我々はオープンソースです!",
"privacy": "プライバシー",
"terms": "利用規約",
"checkForUpdates": "アップデートを確認",
"checkStatus": "ステータスの確認",
"downloadUpdate": "ダウンロード",
"criticalUpdateAvailable": "重要な更新が利用可能です",
"updateAvailable": "更新が利用可能です",
@@ -417,6 +420,9 @@
"waitingForBrowserRequest": "ブラウザのリクエストを待っています...",
"waitingForVerification": "認証を待っています...",
"passkey": "パスキー",
"passKeyPendingVerification": "認証はまだ保留中です",
"loginSessionExpired": "セッションの有効期限が切れました",
"loginSessionExpiredDetails": "セッションの有効期限が切れました。再度ログインしてください。",
"developerSettingsWarning": "開発者向け設定を変更してもよろしいですか?",
"developerSettings": "開発者向け設定",
"serverEndpoint": "サーバーエンドポイント",

View File

@@ -1 +1,86 @@
{}
{
"account": "계정",
"unlock": "잠금해제",
"recoveryKey": "복구 키",
"counterAppBarTitle": "카운터",
"@counterAppBarTitle": {
"description": "Text shown in the AppBar of the Counter Page"
},
"onBoardingBody": "2단계 인증 코드를 안전하게 백업하세요",
"onBoardingGetStarted": "시작하기",
"setupFirstAccount": "첫번째 계정을 설정하세요",
"importScanQrCode": "QR 코드 스캔",
"qrCode": "QR 코드",
"importEnterSetupKey": "설정 키 입력",
"importAccountPageTitle": "계정 상세 정보 입력",
"secretCanNotBeEmpty": "비밀 키는 비워둘 수 없습니다",
"bothIssuerAndAccountCanNotBeEmpty": "발행인과 계정을 모두 비워둘 수 없습니다",
"incorrectDetails": "세부 정보가 잘못 됨",
"pleaseVerifyDetails": "입력된 정보를 확인하고 다시 시도하세요",
"codeIssuerHint": "발행인",
"codeSecretKeyHint": "비밀 키",
"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": "정말 이 코드를 삭제하시겠습니까? 이 동작은 되돌릴 수 없습니다.",
"viewLogsAction": "로그 확인",
"sendLogsDescription": "이렇게 하면 문제를 디버깅하는 데 도움이 되는 로그가 전송됩니다. 민감한 정보가 기록되지 않도록 예방 조치를 취하고 있지만, 로그를 공유하기 전에 해당 로그를 확인하는 것이 좋습니다.",
"preparingLogsTitle": "로그를 준비하는 중...",
"emailLogsTitle": "이메일 로그",
"emailLogsMessage": "{email} 로 로그를 보내주세요",
"@emailLogsMessage": {
"placeholders": {
"email": {
"type": "String"
}
}
},
"copyEmailAction": "이메일 복사",
"exportLogsAction": "로그 내보내기",
"reportABug": "버그 제보",
"crashAndErrorReporting": "충돌 & 에러 보고",
"reportBug": "버그 제보",
"emailUsMessage": "{email} 로 이메일을 보내주세요",
"@emailUsMessage": {
"placeholders": {
"email": {
"type": "String"
}
}
},
"contactSupport": "지원 연락",
"rateUsOnStore": "{storeName} 에서 평가해주세요",
"blog": "블로그",
"merchandise": "제품",
"verifyPassword": "비밀번호 확인",
"pleaseWait": "잠시만 기다려주세요...",
"generatingEncryptionKeysTitle": "암호화 키를 생성하는 중...",
"recreatePassword": "비밀번호 재생성",
"recreatePasswordMessage": "현재 기기는 비밀번호를 확인할 수 있을 만큼 강력하지 않으므로, 모든 기기에서 작동하는 방식으로 비밀번호를 한 번 더 생성해야 합니다. \n\n복구 키를 사용하여 로그인하고 비밀번호를 다시 생성해 주세요. (원하는 경우 동일한 비밀번호를 다시 사용할 수 있습니다)",
"useRecoveryKey": "복구 키 사용",
"incorrectPasswordTitle": "올바르지 않은 비밀번호",
"welcomeBack": "돌아오신 것을 환영합니다!",
"madeWithLoveAtPrefix": "made with ❤️ at ",
"supportDevs": "<bold-green>ente</bold-green>를 구독하고 저희를 지원해주세요",
"supportDiscount": "쿠폰 코드 \"AUTH\"를 사용하고 첫 해 10% 할인 혜택을 받으세요",
"changeEmail": "이메일 변경",
"changePassword": "비밀번호 변경",
"data": "데이터",
"importCodes": "코드 가져오기",
"importTypePlainText": "일반 텍스트",
"importTypeEnteEncrypted": "Ente로 암호화된 내보내기",
"passwordForDecryptingExport": "복호화용 비밀번호",
"passwordEmptyError": "비밀번호는 비어있을 수 없습니다",
"importSelectJsonFile": "JSON 파일 선택"
}

View File

@@ -263,12 +263,15 @@
"exportLogs": "Logs exporteren",
"enterYourRecoveryKey": "Voer je herstelsleutel in",
"tempErrorContactSupportIfPersists": "Het lijkt erop dat er iets fout is gegaan. Probeer het later opnieuw. Als de fout zich blijft voordoen, neem dan contact op met ons supportteam.",
"networkHostLookUpErr": "Kan geen verbinding maken met Ente, controleer uw netwerkinstellingen en neem contact op met ondersteuning als de fout zich blijft voordoen.",
"networkConnectionRefusedErr": "Kan geen verbinding maken met Ente, probeer het later opnieuw. Als de fout zich blijft voordoen, neem dan contact op met support.",
"itLooksLikeSomethingWentWrongPleaseRetryAfterSome": "Het lijkt erop dat er iets fout is gegaan. Probeer het later opnieuw. Als de fout zich blijft voordoen, neem dan contact op met ons supportteam.",
"about": "Over",
"weAreOpenSource": "We zijn open source!",
"privacy": "Privacy",
"terms": "Voorwaarden",
"checkForUpdates": "Controleer op updates",
"checkStatus": "Status controleren",
"downloadUpdate": "Downloaden",
"criticalUpdateAvailable": "Belangrijke update beschikbaar",
"updateAvailable": "Update beschikbaar",
@@ -417,6 +420,9 @@
"waitingForBrowserRequest": "Wachten op browserverzoek...",
"waitingForVerification": "Wachten op verificatie...",
"passkey": "Passkey",
"passKeyPendingVerification": "Verificatie is nog in behandeling",
"loginSessionExpired": "Sessie verlopen",
"loginSessionExpiredDetails": "Jouw sessie is verlopen. Log opnieuw in.",
"developerSettingsWarning": "Weet u zeker dat u de ontwikkelaarsinstellingen wilt wijzigen?",
"developerSettings": "Ontwikkelaarsinstellingen",
"serverEndpoint": "Server eindpunt",
@@ -436,5 +442,28 @@
"deleteTagTitle": "Label verwijderen?",
"deleteTagMessage": "Weet je zeker dat je deze label wilt verwijderen? Deze actie is onomkeerbaar.",
"somethingWentWrongParsingCode": "We konden {x} codes niet verwerken.",
"updateNotAvailable": "Update niet beschikbaar"
"updateNotAvailable": "Update niet beschikbaar",
"viewRawCodes": "Ruwe codes weergeven",
"rawCodes": "Ruwe codes",
"rawCodeData": "Onbewerkte code gegevens",
"appLock": "App-vergrendeling",
"noSystemLockFound": "Geen systeemvergrendeling gevonden",
"toEnableAppLockPleaseSetupDevicePasscodeOrScreen": "Om schermvergrendeling in te schakelen, moet u een toegangscode of schermvergrendeling instellen in uw systeeminstellingen.",
"autoLock": "Automatische vergrendeling",
"immediately": "Onmiddellijk",
"reEnterPassword": "Wachtwoord opnieuw invoeren",
"reEnterPin": "PIN opnieuw invoeren",
"next": "Volgende",
"tooManyIncorrectAttempts": "Te veel onjuiste pogingen",
"tapToUnlock": "Tik om te ontgrendelen",
"setNewPassword": "Nieuw wachtwoord instellen",
"deviceLock": "Apparaat vergrendeling",
"hideContent": "Inhoud verbergen",
"hideContentDescriptionAndroid": "Verbergt de app inhoud in de app switcher en schakelt schermafbeeldingen uit",
"hideContentDescriptioniOS": "Verbergt de inhoud van de app in de app switcher",
"autoLockFeatureDescription": "Tijd waarna de app vergrendelt nadat ze op de achtergrond is gezet",
"appLockDescription": "Kies tussen de standaard schermvergrendeling van uw apparaat en een aangepaste schermvergrendeling met een pincode of wachtwoord.",
"pinLock": "Pin vergrendeling",
"enterPin": "Pin invoeren",
"setNewPin": "Nieuwe pin instellen"
}

View File

@@ -20,6 +20,8 @@
"codeIssuerHint": "Wydawca",
"codeSecretKeyHint": "Tajny klucz",
"codeAccountHint": "Konto (ty@domena.com)",
"codeTagHint": "Oznacz",
"accountKeyType": "Rodzaj klucza",
"sessionExpired": "Sesja wygasła",
"@sessionExpired": {
"description": "Title of the dialog when the users current session is invalid/expired"
@@ -77,13 +79,19 @@
"data": "Dane",
"importCodes": "Importuj kody",
"importTypePlainText": "Zwykły tekst",
"importTypeEnteEncrypted": "Zaszyfrowany eksport Ente",
"passwordForDecryptingExport": "Hasło do odszyfrowania eksportu",
"passwordEmptyError": "Pole hasło nie może być puste",
"importFromApp": "Importuj kody z {appName}",
"importGoogleAuthGuide": "Wyeksportuj twoje konta z Google Authenticator do kodu QR używając opcji \"Przenieś konta\". Potem używając innego urządzenia, zeskanuj kod QR.",
"importGoogleAuthGuide": "Wyeksportuj Twoje konta z Google Authenticator do kodu QR używając opcji \"Przenieś konta\". Potem używając innego urządzenia, zeskanuj kod QR.\n\nWskazówka: Możesz użyć kamery Twojego laptopa, by zrobić zdjęcie kodu QR.",
"importSelectJsonFile": "Wybierz plik JSON",
"importSelectAppExport": "Wybierz plik eksportu {appName}",
"importEnteEncGuide": "Wybierz zaszyfrowany plik JSON wyeksportowany z Ente",
"importRaivoGuide": "Użyj opcji \"Eksportuj OTP do archiwum ZIP\" w Ustawieniach Raivo.\n\nWyodrębnij plik zip i zaimportuj plik JSON.",
"importBitwardenGuide": "Użyj opcji \"Eksportuj sejf\" w Narzędziach Bitwarden i zaimportuj niezaszyfrowany plik JSON.",
"importAegisGuide": "Użyj opcji \"Eksportuj sejf\" w ustawieniach Aegis.\n\nJeśli twój sejf jest zaszyfrowany, musisz wprowadzić hasło sejfu, aby odszyfrować sejf.",
"import2FasGuide": "Użyj opcji \"Ustawienia->Kopia Zapasowa-Eksport\" w 2FAS.\n\nJeśli twoja kopia zapasowa jest zaszyfrowana, musisz wprowadzić hasło, aby odszyfrować kopię zapasową",
"importLastpassGuide": "Użyj opcji \"Przenieś konta\" w Ustawieniach Lastpass Authenticator i naciśnij \"Eksportuj konta do pliku\". Zaimportuj pobrany plik JSON.",
"exportCodes": "Eksportuj kody",
"importLabel": "Importuj",
"importInstruction": "Wybierz plik, który zawiera listę twoich kodów w następującym formacie",
@@ -96,6 +104,7 @@
"authToChangeYourEmail": "Proszę uwierzytelnić, aby zmienić swój adres e-mail",
"authToChangeYourPassword": "Proszę uwierzytelnić, aby zmienić hasło",
"authToViewSecrets": "Proszę uwierzytelnić, aby wyświetlić swoje sekrety",
"authToInitiateSignIn": "Proszę uwierzytelnić się, aby zainicjować logowanie do kopii zapasowej.",
"ok": "Ok",
"cancel": "Anuluj",
"yes": "Tak",
@@ -107,18 +116,22 @@
"copied": "Skopiowano",
"pleaseTryAgain": "Proszę spróbować ponownie",
"existingUser": "Istniejący użytkownik",
"newUser": "Nowy/a do Ente",
"delete": "Usuń",
"enterYourPasswordHint": "Wprowadź swoje hasło",
"forgotPassword": "Nie pamiętam hasła",
"oops": "Ups",
"suggestFeatures": "Zaproponuj funkcje",
"faq": "Najczęściej zadawane pytania (FAQ)",
"faq_q_1": "Jak bezpieczny jest Auth?",
"faq_a_1": "Wszystkie kody, których tworzysz kopię zapasową za pomocą Ente są przechowywane zaszyfrowane end-to-end. Oznacza to, że tylko Ty możesz uzyskać dostęp do swoich kodów. Nasze aplikacje są otwarto-źródłowe, a nasza kryptografia została poddana zewnętrznemu audytowi.",
"faq_q_2": "Czy mogę uzyskać dostęp do moich kodów na komputerze?",
"faq_a_2": "Możesz uzyskać dostęp do swoich kodów na stronie auth.ente.io.",
"faq_q_3": "Jak mogę usunąć kody?",
"faq_a_3": "Możesz usunąć kod, przesuwając go w lewo.",
"faq_q_4": "Jak mogę wesprzeć ten projekt?",
"faq_a_4": "Możesz wspierać rozwój tego projektu, subskrybując do naszej aplikacji Zdjęcia na ente.io.",
"faq_q_5": "Jak mogę włączyć blokadę FaceID w Ente Auth",
"faq_a_5": "Możesz włączyć blokadę FaceID w Ustawienia → Bezpieczeństwo→ Ekran blokady.",
"somethingWentWrongMessage": "Coś poszło nie tak. Proszę, spróbuj ponownie",
"leaveFamily": "Opuść rodzinę",
@@ -131,7 +144,9 @@
"verifyEmail": "Zweryfikuj adres e-mail",
"enterCodeHint": "Wprowadź sześciocyfrowy kod z twojej aplikacji uwierzytelniającej",
"lostDeviceTitle": "Zagubiono urządzenie?",
"twoFactorAuthTitle": "Uwierzytelnianie dwuetapowe",
"twoFactorAuthTitle": "Uwierzytelnianie dwustopniowe",
"passkeyAuthTitle": "Weryfikacja kluczem dostępu",
"verifyPasskey": "Zweryfikuj klucz dostępu",
"recoverAccount": "Odzyskaj konto",
"enterRecoveryKeyHint": "Wprowadź swój klucz odzyskiwania",
"recover": "Odzyskaj",
@@ -143,6 +158,7 @@
}
}
},
"invalidQRCode": "Nieprawidłowy kod QR",
"noRecoveryKeyTitle": "Brak klucza odzyskiwania?",
"enterEmailHint": "Wprowadź adres e-mail",
"invalidEmailTitle": "Nieprawidłowy adres e-mail",
@@ -187,6 +203,8 @@
"saveKey": "Zapisz klucz",
"save": "Zapisz",
"send": "Wyślij",
"saveOrSendDescription": "Czy chcesz zapisać to do pamięci masowej (domyślnie folder Pobrane) czy wysłać to do innych aplikacji?",
"saveOnlyDescription": "Czy chcesz zapisać to do pamięci masowej (domyślnie folder Pobrane)?",
"back": "Wstecz",
"createAccount": "Utwórz konto",
"passwordStrength": "Siła hasła: {passwordStrengthValue}",
@@ -245,12 +263,15 @@
"exportLogs": "Eksportuj logi",
"enterYourRecoveryKey": "Wprowadź swój klucz odzyskiwania",
"tempErrorContactSupportIfPersists": "Wygląda na to, że coś poszło nie tak. Spróbuj ponownie po pewnym czasie. Jeśli błąd będzie się powtarzał, skontaktuj się z naszym zespołem pomocy technicznej.",
"networkHostLookUpErr": "Nie można połączyć się z Ente, sprawdź ustawienia sieci i skontaktuj się z pomocą techniczną, jeśli błąd będzie się powtarzał.",
"networkConnectionRefusedErr": "Nie można połączyć się z Ente, spróbuj ponownie po pewnym czasie. Jeśli błąd będzie się powtarzał, skontaktuj się z pomocą techniczną.",
"itLooksLikeSomethingWentWrongPleaseRetryAfterSome": "Wygląda na to, że coś poszło nie tak. Spróbuj ponownie po pewnym czasie. Jeśli błąd będzie się powtarzał, skontaktuj się z naszym zespołem pomocy technicznej.",
"about": "O nas",
"weAreOpenSource": "Posiadamy otwarte źródło!",
"privacy": "Prywatność",
"terms": "Warunki",
"checkForUpdates": "Sprawdź czy są dostępne nowe aktualizacje",
"checkStatus": "Sprawdź stan",
"downloadUpdate": "Pobierz",
"criticalUpdateAvailable": "Dostępna jest krytyczna aktualizacja",
"updateAvailable": "Dostępna jest aktualizacja",
@@ -309,7 +330,7 @@
"emailChangedTo": "Adres e-mail został zmieniony na {newEmail}",
"authenticationFailedPleaseTryAgain": "Uwierzytelnianie nie powiodło się, proszę spróbować ponownie",
"authenticationSuccessful": "Uwierzytelnianie powiodło się!",
"twofactorAuthenticationSuccessfullyReset": "Pomyślnie zresetowano uwierzytelnianie dwuskładnikowe",
"twofactorAuthenticationSuccessfullyReset": "Pomyślnie zresetowano uwierzytelnianie dwustopniowe",
"incorrectRecoveryKey": "Nieprawidłowy klucz odzyskiwania",
"theRecoveryKeyYouEnteredIsIncorrect": "Wprowadzony klucz odzyskiwania jest nieprawidłowy",
"enterPassword": "Wprowadź hasło",
@@ -326,6 +347,7 @@
"offlineModeWarning": "Wybrałeś kontynuację bez kopii zapasowych. Proszę wykonywać ręczne kopie zapasowe, aby upewnić się, że Twoje kody są bezpieczne.",
"showLargeIcons": "Pokaż duże ikony",
"shouldHideCode": "Ukryj kody",
"doubleTapToViewHiddenCode": "Możesz kliknąć dwukrotnie na wpis, aby wyświetlić kod",
"focusOnSearchBar": "Uaktywnij wyszukiwanie przy uruchamianiu aplikacji",
"confirmUpdatingkey": "Czy na pewno chcesz zaktualizować tajny klucz?",
"minimizeAppOnCopy": "Minimalizuj aplikację przy kopiowaniu",
@@ -333,10 +355,19 @@
"deleteCodeAuthMessage": "Uwierzytelnij, aby usunąć kod",
"showQRAuthMessage": "Uwierzytelnij, aby pokazać kod QR",
"confirmAccountDeleteTitle": "Potwierdź usunięcie konta",
"confirmAccountDeleteMessage": "To konto jest połączone z innymi aplikacjami Ente, jeśli ich używasz.\n\nTwoje przesłane dane, we wszystkich aplikacjach Ente, zostaną zaplanowane do usunięcia, a Twoje konto zostanie trwale usunięte.",
"androidBiometricHint": "Potwierdź swoją tożsamość",
"@androidBiometricHint": {
"description": "Hint message advising the user how to authenticate with biometrics. It is used on Android side. Maximum 60 characters."
},
"androidBiometricNotRecognized": "Nie rozpoznano. Spróbuj ponownie.",
"@androidBiometricNotRecognized": {
"description": "Message to let the user know that authentication was failed. It is used on Android side. Maximum 60 characters."
},
"androidBiometricSuccess": "Sukces",
"@androidBiometricSuccess": {
"description": "Message to let the user know that authentication was successful. It is used on Android side. Maximum 60 characters."
},
"androidCancelButton": "Anuluj",
"@androidCancelButton": {
"description": "Message showed on a button that the user can click to leave the current dialog. It is used on Android side. Maximum 30 characters."
@@ -345,13 +376,95 @@
"@androidSignInTitle": {
"description": "Message showed as a title in a dialog which indicates the user that they need to scan biometric to continue. It is used on Android side. Maximum 60 characters."
},
"androidBiometricRequiredTitle": "Wymagana biometria",
"@androidBiometricRequiredTitle": {
"description": "Message showed as a title in a dialog which indicates the user has not set up biometric authentication on their device. It is used on Android side. Maximum 60 characters."
},
"androidDeviceCredentialsRequiredTitle": "Wymagane dane logowania urządzenia",
"@androidDeviceCredentialsRequiredTitle": {
"description": "Message showed as a title in a dialog which indicates the user has not set up credentials authentication on their device. It is used on Android side. Maximum 60 characters."
},
"androidDeviceCredentialsSetupDescription": "Wymagane dane logowania urządzenia",
"@androidDeviceCredentialsSetupDescription": {
"description": "Message advising the user to go to the settings and configure device credentials on their device. It shows in a dialog on Android side."
},
"goToSettings": "Przejdź do Ustawień",
"@goToSettings": {
"description": "Message showed on a button that the user can click to go to settings pages from the current dialog. It is used on both Android and iOS side. Maximum 30 characters."
},
"androidGoToSettingsDescription": "Uwierzytelnianie biometryczne nie jest skonfigurowane na tym urządzeniu. Przejdź do 'Ustawienia > Bezpieczeństwo', aby dodać uwierzytelnianie biometryczne.",
"@androidGoToSettingsDescription": {
"description": "Message advising the user to go to the settings and configure biometric on their device. It shows in a dialog on Android side."
},
"iOSLockOut": "Uwierzytelnianie biometryczne jest wyłączone. Proszę zablokować i odblokować ekran, aby je włączyć.",
"@iOSLockOut": {
"description": "Message advising the user to re-enable biometrics on their device. It shows in a dialog on iOS side."
},
"iOSGoToSettingsDescription": "Uwierzytelnianie biometryczne nie jest skonfigurowane na Twoim urządzeniu. Proszę włączyć Touch ID lub Face ID na swoim telefonie.",
"@iOSGoToSettingsDescription": {
"description": "Message advising the user to go to the settings and configure Biometrics for their device. It shows in a dialog on iOS side."
},
"iOSOkButton": "OK",
"@iOSOkButton": {
"description": "Message showed on a button that the user can click to leave the current dialog. It is used on iOS side. Maximum 30 characters."
},
"noInternetConnection": "Brak połączenia z Internetem",
"pleaseCheckYourInternetConnectionAndTryAgain": "Proszę sprawdzić połączenie internetowe i spróbować ponownie.",
"signOutFromOtherDevices": "Wyloguj z pozostałych urządzeń",
"signOutOtherBody": "Jeśli uważasz, że ktoś może znać Twoje hasło, możesz wymusić wylogowanie na wszystkich innych urządzeniach korzystających z Twojego konta.",
"signOutOtherDevices": "Wyloguj z pozostałych urządzeń",
"doNotSignOut": "Nie wylogowuj mnie",
"hearUsWhereTitle": "Jak usłyszałeś o Ente? (opcjonalnie)",
"hearUsExplanation": "Nie śledzimy instalacji aplikacji. Pomogłyby nam, gdybyś powiedział/a nam, gdzie nas znalazłeś/aś!",
"recoveryKeySaved": "Klucz odzyskiwania zapisany w folderze Pobrane!",
"waitingForBrowserRequest": "Oczekiwanie na żądanie przeglądarki...",
"waitingForVerification": "Oczekiwanie na weryfikację...",
"developerSettings": "Ustawienia deweloperskie"
"passkey": "Klucz dostępu",
"passKeyPendingVerification": "Weryfikacja jest nadal w toku",
"loginSessionExpired": "Sesja wygasła",
"loginSessionExpiredDetails": "Twoja sesja wygasła. Zaloguj się ponownie.",
"developerSettingsWarning": "Czy na pewno chcesz zmodyfikować ustawienia programisty?",
"developerSettings": "Ustawienia deweloperskie",
"serverEndpoint": "Punkt końcowy serwera",
"invalidEndpoint": "Punkt końcowy jest nieprawidłowy",
"invalidEndpointMessage": "Niestety, wprowadzony punkt końcowy jest nieprawidłowy. Wprowadź prawidłowy punkt końcowy i spróbuj ponownie.",
"endpointUpdatedMessage": "Punkt końcowy zaktualizowany pomyślnie",
"customEndpoint": "Połączono z {endpoint}",
"pinText": "Przypnij",
"unpinText": "Odepnij",
"pinnedCodeMessage": "Przypięto {code}",
"unpinnedCodeMessage": "Odpięto {code}",
"tags": "Etykiety",
"createNewTag": "Utwórz Nową Etykietę",
"tag": "Etykieta",
"create": "Utwórz",
"editTag": "Edytuj Etykietę",
"deleteTagTitle": "Usunąć etykietę?",
"deleteTagMessage": "Czy na pewno chcesz usunąć tę etykietę? Ta akcja jest nieodwracalna.",
"somethingWentWrongParsingCode": "Nie udało się przetworzyć kodów {x}.",
"updateNotAvailable": "Aktualizacja jest niedostępna",
"viewRawCodes": "Zobacz surowe kody",
"rawCodes": "Surowe kody",
"rawCodeData": "Dane surowego kodu",
"appLock": "Blokada dostępu do aplikacji",
"noSystemLockFound": "Nie znaleziono blokady systemowej",
"toEnableAppLockPleaseSetupDevicePasscodeOrScreen": "Aby włączyć blokadę aplikacji, należy skonfigurować hasło urządzenia lub blokadę ekranu w ustawieniach systemu.",
"autoLock": "Automatyczna blokada",
"immediately": "Natychmiast",
"reEnterPassword": "Wprowadź ponownie hasło",
"reEnterPin": "Wprowadź ponownie kod PIN",
"next": "Dalej",
"tooManyIncorrectAttempts": "Zbyt wiele błędnych prób",
"tapToUnlock": "Naciśnij, aby odblokować",
"setNewPassword": "Ustaw nowe hasło",
"deviceLock": "Blokada urządzenia",
"hideContent": "Ukryj zawartość",
"hideContentDescriptionAndroid": "Ukrywa zawartość aplikacji w przełączniku aplikacji i wyłącza zrzuty ekranu",
"hideContentDescriptioniOS": "Ukrywa zawartość aplikacji w przełączniku aplikacji",
"autoLockFeatureDescription": "Czas, po którym aplikacja blokuje się po umieszczeniu jej w tle",
"appLockDescription": "Wybierz między domyślnym ekranem blokady urządzenia a niestandardowym ekranem blokady z kodem PIN lub hasłem.",
"pinLock": "Blokada PIN",
"enterPin": "Wprowadź kod PIN",
"setNewPin": "Ustaw nowy kod PIN",
"importFailureDescNew": "Nie udało się przetworzyć wybranego pliku."
}

View File

@@ -11,9 +11,9 @@
"setupFirstAccount": "Configure sua primeira conta",
"importScanQrCode": "Escanear QR code",
"qrCode": "QR Code",
"importEnterSetupKey": "Inserir uma chave de configuração",
"importEnterSetupKey": "Insira uma chave de configuração",
"importAccountPageTitle": "Inserir detalhes da conta",
"secretCanNotBeEmpty": "A chave secreta não pode ficar vazia",
"secretCanNotBeEmpty": "A chave secreta não pode ser vazia",
"bothIssuerAndAccountCanNotBeEmpty": "Emissor e conta não podem ficar vazios",
"incorrectDetails": "Detalhes incorretos",
"pleaseVerifyDetails": "Por favor, verifique os detalhes e tente novamente",
@@ -26,10 +26,10 @@
"@sessionExpired": {
"description": "Title of the dialog when the users current session is invalid/expired"
},
"pleaseLoginAgain": "Por favor, faça login novamente",
"pleaseLoginAgain": "Entre novamente",
"loggingOut": "Saindo...",
"timeBasedKeyType": "Baseado no horário (TOTP)",
"counterBasedKeyType": "Baseado em um contador (HOTP)",
"counterBasedKeyType": "Baseado num contador (HOTP)",
"saveAction": "Salvar",
"nextTotpTitle": "avançar",
"deleteCodeTitle": "Apagar código?",
@@ -48,9 +48,9 @@
},
"copyEmailAction": "Copiar e-mail",
"exportLogsAction": "Exportar logs",
"reportABug": "Informar um problema",
"crashAndErrorReporting": "Reporte de erros e falhas",
"reportBug": "Informar problema",
"reportABug": "Informe um erro",
"crashAndErrorReporting": "Relatórios de erros",
"reportBug": "Informar erro",
"emailUsMessage": "Envie um e-mail para {email}",
"@emailUsMessage": {
"placeholders": {
@@ -70,7 +70,7 @@
"recreatePasswordMessage": "O dispositivo atual não é poderoso o suficiente para verificar sua senha, mas podemos regenerar de uma forma que funcione com todos os dispositivos.\n\nPor favor, faça o login usando sua chave de recuperação e recrie sua senha (você pode usar o mesmo novamente se desejar).",
"useRecoveryKey": "Usar chave de recuperação",
"incorrectPasswordTitle": "Senha incorreta",
"welcomeBack": "Bem-vindo de volta!",
"welcomeBack": "Bem-vindo(a) de volta!",
"madeWithLoveAtPrefix": "feito com ❤️ em ",
"supportDevs": "Inscreva-se no <bold-green>ente</bold-green> para apoiar este projeto.",
"supportDiscount": "Use o cupom \"AUTH\" para obter 10% de desconto no primeiro ano",
@@ -79,7 +79,7 @@
"data": "Dados",
"importCodes": "Importar códigos",
"importTypePlainText": "Texto simples",
"importTypeEnteEncrypted": "Exportação Ente criptografada",
"importTypeEnteEncrypted": "Exportação do Ente criptografada",
"passwordForDecryptingExport": "Senha para descriptografar a exportação",
"passwordEmptyError": "A senha não pode estar vazia",
"importFromApp": "Importar códigos do {appName}",
@@ -127,7 +127,7 @@
"faq_a_1": "Todos os códigos que você faz backup via Auth são armazenados criptografados de ponta a ponta. Isso significa que somente você pode acessar seus códigos. Nossos aplicativos são de código aberto e nossa criptografia foi auditada externamente.",
"faq_q_2": "Eu posso acessar meus códigos no computador?",
"faq_a_2": "Você pode acessar seus códigos na web em auth.ente.io.",
"faq_q_3": "Como faço para excluir códigos?",
"faq_q_3": "Como posso excluir códigos?",
"faq_a_3": "Você pode excluir um código deslizando para a esquerda sobre esse item.",
"faq_q_4": "Como posso apoiar este projeto?",
"faq_a_4": "Você pode apoiar o desenvolvimento deste projeto assinando nosso aplicativo de Fotos em ente.io.",
@@ -145,8 +145,8 @@
"enterCodeHint": "Digite o código de 6 dígitos de\nseu aplicativo autenticador",
"lostDeviceTitle": "Perdeu um dispositivo?",
"twoFactorAuthTitle": "Autenticação de dois fatores",
"passkeyAuthTitle": "Autenticação via Chave de acesso",
"verifyPasskey": "Verificar senha-mestra",
"passkeyAuthTitle": "Verificação de chave de acesso",
"verifyPasskey": "Verificar chave de acesso",
"recoverAccount": "Recuperar conta",
"enterRecoveryKeyHint": "Digite a chave de recuperação",
"recover": "Recuperar",
@@ -165,7 +165,7 @@
"invalidEmailMessage": "Por favor, insira um endereço de e-mail válido.",
"deleteAccount": "Excluir conta",
"deleteAccountQuery": "Sentiremos muito por vê-lo partir. Você está enfrentando algum problema?",
"yesSendFeedbackAction": "Sim, enviar comentário",
"yesSendFeedbackAction": "Sim, enviar feedback",
"noDeleteAccountAction": "Não, excluir conta",
"initiateAccountDeleteTitle": "Por favor, autentique-se para iniciar a exclusão de conta",
"sendEmail": "Enviar e-mail",
@@ -173,7 +173,7 @@
"weakStrength": "Fraca",
"strongStrength": "Forte",
"moderateStrength": "Moderada",
"confirmPassword": "Confirme sua senha",
"confirmPassword": "Confirmar senha",
"close": "Fechar",
"oopsSomethingWentWrong": "Opa. Algo deu errado.",
"selectLanguage": "Trocar idioma",
@@ -186,7 +186,7 @@
"viewActiveSessions": "Ver sessões ativas",
"authToViewYourActiveSessions": "Por favor, autentique-se para ver as sessões ativas",
"searchHint": "Buscar...",
"search": "Pesquisar",
"search": "Buscar",
"sorryUnableToGenCode": "Desculpe, não foi possível gerar um código para {issuerName}",
"noResult": "Nenhum resultado",
"addCode": "Adicionar código",
@@ -242,7 +242,7 @@
"logInLabel": "Entrar",
"logout": "Sair",
"areYouSureYouWantToLogout": "Você tem certeza que deseja encerrar a sessão?",
"yesLogout": "Sim, sair",
"yesLogout": "Sim, saia",
"exit": "Sair",
"verifyingRecoveryKey": "Verificando chave de recuperação...",
"recoveryKeyVerified": "Chave de recuperação verificada",
@@ -263,12 +263,15 @@
"exportLogs": "Exportar logs",
"enterYourRecoveryKey": "Digite a chave de recuperação",
"tempErrorContactSupportIfPersists": "Parece que algo deu errado. Por favor, tente novamente mais tarde. Se o erro persistir, entre em contato com nossa equipe de suporte.",
"networkHostLookUpErr": "Não foi possível conectar-se ao Ente, verifique suas configurações de rede e entre em contato com o suporte se o erro persistir.",
"networkConnectionRefusedErr": "Não foi possível conectar ao Ente, tente novamente após algum tempo. Se o erro persistir, entre em contato com o suporte.",
"itLooksLikeSomethingWentWrongPleaseRetryAfterSome": "Parece que algo deu errado. Por favor, tente novamente mais tarde. Se o erro persistir, entre em contato com nossa equipe de suporte.",
"about": "Sobre",
"weAreOpenSource": "Nós somos de código aberto!",
"weAreOpenSource": "Nosso código é aberto!",
"privacy": "Privacidade",
"terms": "Termos",
"checkForUpdates": "Verificar por atualizações",
"checkForUpdates": "Buscar atualizações",
"checkStatus": "Verificar status",
"downloadUpdate": "Baixar",
"criticalUpdateAvailable": "Atualização crítica disponível",
"updateAvailable": "Atualização disponível",
@@ -315,7 +318,7 @@
"somethingWentWrongPleaseTryAgain": "Algo deu errado. Por favor, tente outra vez",
"thisWillLogYouOutOfThisDevice": "Isso fará com que você saia deste dispositivo!",
"thisWillLogYouOutOfTheFollowingDevice": "Isso fará com que você saia do seguinte dispositivo:",
"terminateSession": "Encerrar sessão?",
"terminateSession": "Sair?",
"terminate": "Encerrar",
"thisDevice": "Esse dispositivo",
"toResetVerifyEmail": "Para redefinir a sua senha, por favor verifique o seu email primeiro.",
@@ -347,7 +350,7 @@
"doubleTapToViewHiddenCode": "Você pode tocar duas vezes em uma entrada para ver o código",
"focusOnSearchBar": "Foco na busca ao iniciar o app",
"confirmUpdatingkey": "Você tem certeza que deseja atualizar a chave secreta?",
"minimizeAppOnCopy": "Minimizar aplicativo ao copiar",
"minimizeAppOnCopy": "Minimizar app ao copiar",
"editCodeAuthMessage": "Autenticar para editar o código",
"deleteCodeAuthMessage": "Autenticar para excluir o código",
"showQRAuthMessage": "Autenticar para mostrar o QR code",
@@ -405,20 +408,23 @@
"@iOSOkButton": {
"description": "Message showed on a button that the user can click to leave the current dialog. It is used on iOS side. Maximum 30 characters."
},
"noInternetConnection": "Sem coneo à internet",
"noInternetConnection": "Não conectado à internet",
"pleaseCheckYourInternetConnectionAndTryAgain": "Verifique sua conexão com a internet e tente novamente.",
"signOutFromOtherDevices": "Terminar sessão em outros dispositivos",
"signOutOtherBody": "Se você acha que alguém pode saber sua senha, você pode forçar todos os outros dispositivos que estão com sua conta a desconectar.",
"signOutOtherDevices": "Terminar sessão em outros dispositivos",
"signOutOtherDevices": "Sair em outros dispositivos",
"doNotSignOut": "Não sair",
"hearUsWhereTitle": "Como você ouviu sobre o Ente? (opcional)",
"hearUsExplanation": "Não rastreamos instalações do aplicativo. Seria útil se você nos contasse onde nos encontrou!",
"recoveryKeySaved": "Chave de recuperação salva na pasta Downloads!",
"waitingForBrowserRequest": "Aguardando solicitação do navegador...",
"waitingForVerification": "Esperando por verificação...",
"passkey": "Senha-mestra",
"passkey": "Chave de acesso",
"passKeyPendingVerification": "A verificação ainda está pendente",
"loginSessionExpired": "Sessão expirada",
"loginSessionExpiredDetails": "Sua sessão expirou. Por favor, entre novamente.",
"developerSettingsWarning": "Tem certeza de que deseja modificar as configurações de Desenvolvedor?",
"developerSettings": "Configurações de desenvolvedor",
"developerSettings": "Ajustes de Desenvolvedor",
"serverEndpoint": "Endpoint do servidor",
"invalidEndpoint": "Endpoint inválido",
"invalidEndpointMessage": "Desculpe, o endpoint que você inseriu é inválido. Por favor, insira um endpoint válido e tente novamente.",
@@ -436,5 +442,29 @@
"deleteTagTitle": "Apagar etiqueta?",
"deleteTagMessage": "Tem certeza de que deseja excluir esta etiqueta? Essa ação é irreversível.",
"somethingWentWrongParsingCode": "Não foi possível analisar os códigos {x}.",
"updateNotAvailable": "Atualização não está disponível"
"updateNotAvailable": "Atualização indisponível",
"viewRawCodes": "Ver códigos brutos",
"rawCodes": "Código bruto",
"rawCodeData": "Dado do código bruto",
"appLock": "Bloqueio de app",
"noSystemLockFound": "Nenhum bloqueio de sistema encontrado",
"toEnableAppLockPleaseSetupDevicePasscodeOrScreen": "Para ativar o bloqueio de app, por favor ative um método de autenticação nas configurações do sistema do seu dispositivo.",
"autoLock": "Bloqueio automático",
"immediately": "Imediatamente",
"reEnterPassword": "Reinserir senha",
"reEnterPin": "Reinserir PIN",
"next": "Próximo",
"tooManyIncorrectAttempts": "Muitas tentativas incorretas",
"tapToUnlock": "Toque para desbloquear",
"setNewPassword": "Defina nova senha",
"deviceLock": "Bloqueio do dispositivo",
"hideContent": "Ocultar conteúdo",
"hideContentDescriptionAndroid": "Oculta o conteúdo do app no seletor de apps e desativa as capturas de tela",
"hideContentDescriptioniOS": "Oculta o conteúdo do seletor de apps",
"autoLockFeatureDescription": "Tempo após o qual o app bloqueia depois de ser colocado em segundo plano",
"appLockDescription": "Escolha entre a tela de bloqueio padrão do seu dispositivo e uma tela de bloqueio personalizada com PIN ou senha.",
"pinLock": "Bloqueio PIN",
"enterPin": "Insira o PIN",
"setNewPin": "Definir novo PIN",
"importFailureDescNew": "Não foi possível analisar o arquivo selecionado."
}

View File

@@ -0,0 +1,239 @@
{
"account": "Cont",
"unlock": "Deblochează",
"recoveryKey": "Cheie de recuperare",
"onBoardingBody": "Salvează în siguranță codurile 2FA",
"onBoardingGetStarted": "Începe",
"setupFirstAccount": "Configurează primul cont",
"importScanQrCode": "Scanează un cod QR",
"qrCode": "Cod QR",
"importEnterSetupKey": "Introdu o cheie de configurare",
"importAccountPageTitle": "Introdu detaliile contului",
"secretCanNotBeEmpty": "Secretul nu poate fi gol",
"incorrectDetails": "Detalii incorecte",
"pleaseVerifyDetails": "Te rog verifică detaliile și încearcă din nou",
"codeIssuerHint": "Emitent",
"codeSecretKeyHint": "Cheie Secretă",
"codeAccountHint": "Cont (tu@domeniu.com)",
"codeTagHint": "Etichetă",
"accountKeyType": "Tipul de cheie",
"sessionExpired": "Sesiune expirată",
"@sessionExpired": {
"description": "Title of the dialog when the users current session is invalid/expired"
},
"pleaseLoginAgain": "Te rugăm să te autentifici din nou",
"loggingOut": "Deconectare...",
"timeBasedKeyType": "Bazat pe timp (TOTP)",
"counterBasedKeyType": "Bazat pe contor (HOTP)",
"saveAction": "Salvare",
"nextTotpTitle": "următor",
"deleteCodeTitle": "Șterge codul?",
"deleteCodeMessage": "Ești sigur că vrei să ștergi acest cod? Acțiunea este ireversibilă.",
"viewLogsAction": "Afișare jurnale",
"preparingLogsTitle": "Se pregătesc jurnalele...",
"emailLogsTitle": "Jurnale e-mail",
"emailLogsMessage": "Te rugăm să trimiți jurnalele la {email}",
"@emailLogsMessage": {
"placeholders": {
"email": {
"type": "String"
}
}
},
"copyEmailAction": "Copiază e-mailul",
"exportLogsAction": "Exportează log-urile",
"reportABug": "Raportează o eroare",
"crashAndErrorReporting": "Închidere accidentală şi raportare erori",
"reportBug": "Raportare bug",
"emailUsMessage": "Te rugăm să ne trimiți un e-mail la {email}",
"@emailUsMessage": {
"placeholders": {
"email": {
"type": "String"
}
}
},
"contactSupport": "Contactează suportul",
"rateUsOnStore": "Evaluează-ne pe {storeName}",
"blog": "Blog",
"verifyPassword": "Verifică parola",
"pleaseWait": "Te rog așteaptă...",
"recreatePassword": "Recreează parola",
"incorrectPasswordTitle": "Parolă incorectă",
"welcomeBack": "Bine ai revenit!",
"madeWithLoveAtPrefix": "creat cu ❤️ la ",
"supportDevs": "Abonează-te la <bold-green>ente</bold-green> pentru a ne susține",
"supportDiscount": "Folosește codul \"AUTH\" pentru a obține o reducere de 10% în primul an",
"changeEmail": "Schimbă e-mailul",
"changePassword": "Schimbă parola",
"data": "Date",
"importCodes": "Importă coduri",
"importTypePlainText": "Text simplu",
"importTypeEnteEncrypted": "Export Ente criptat",
"passwordForDecryptingExport": "Parola pentru a decripta exportul",
"passwordEmptyError": "Parola nu poate fi goală",
"importFromApp": "Importă coduri din {appName}",
"importGoogleAuthGuide": "Exportă-ți conturile din Google Autheticator cu un cod QR utilizând opțiunea „Transfer conturi”. Apoi, utilizând alt dispozitiv, scanați codul QR.\n\nSfat: Poți utiliza camera web a laptopul-ui pentru a scana codul QR.",
"importSelectJsonFile": "Selectează fișierul JSON",
"importSelectAppExport": "Selectează fișierul de export din {appName}",
"importEnteEncGuide": "Selectează fișierul criptat JSON exportat din Bențe",
"exportCodes": "Exportă coduri",
"importLabel": "Importă",
"selectFile": "Selectează fișier",
"emailVerificationToggle": "Verificarea adresei de e-mail",
"authToChangeEmailVerificationSetting": "Te rugăm să te autentifici pentru a schimba verificarea prin e-mail",
"authToChangeYourEmail": "Te rugăm să te autentifici pentru a-ți schimba adresa de e-mail",
"ok": "Ok",
"cancel": "Anulare",
"yes": "Da",
"no": "Nu",
"email": "E-mail",
"support": "Asistență",
"general": "General",
"settings": "Setări",
"copied": "S-a copiat",
"pleaseTryAgain": "Te rugăm să încerci din nou",
"existingUser": "Utilizator existent",
"newUser": "Nou în Ente",
"delete": "Ștergere",
"enterYourPasswordHint": "Introdu parola",
"forgotPassword": "Am uitat parola",
"oops": "Ups",
"suggestFeatures": "Sugerează funcționalități",
"faq": "Întrebări frecvente",
"faq_q_1": "Cât de sigur este Auth?",
"faq_q_2": "Pot accesa codurile de pe desktop?",
"faq_q_3": "Cum pot șterge codurile?",
"faq_q_4": "Cum pot susţine acest proiect?",
"faq_a_4": "Poți susține dezvoltarea acestui proiect prin cumpărarea unui abonament la aplicația noastră de fotografii @ ente.io.",
"faq_q_5": "Cum pot activa blocarea cu FaceID în Auth",
"faq_a_5": "Poți activa blocarea FaceID din Setări → Securitate → Ecran de blocare.",
"somethingWentWrongMessage": "Ceva n-a mers bine, te rog încearcă din nou",
"leaveFamily": "Părăsește familia",
"verifyEmail": "Verifică e-mail",
"twoFactorAuthTitle": "Autentificare cu doi factori",
"recoverAccount": "Recuperare cont",
"recover": "Recuperează",
"invalidQRCode": "Codul QR nu este valid",
"enterEmailHint": "Introdu adresa ta de e-mail",
"invalidEmailTitle": "Adresa e-mail nu este validă",
"invalidEmailMessage": "Te rugăm să introduci o adresă de e-mail validă.",
"deleteAccount": "Ștergere cont",
"yesSendFeedbackAction": "Da, trimite feedback",
"noDeleteAccountAction": "Nu, șterge contul",
"initiateAccountDeleteTitle": "Te rugăm să te autentifici pentru a iniția ștergerea contului",
"sendEmail": "Trimite e-mail",
"confirmPassword": "Confirmă parola",
"close": "Închide",
"selectLanguage": "Selectare limbă",
"language": "Limbă",
"social": "Social",
"security": "Securitate",
"lockscreen": "Ecran de blocare",
"search": "Căutare",
"scanAQrCode": "Scanează un cod QR",
"edit": "Editare",
"copiedToClipboard": "Copiat în clipboard",
"copiedNextToClipboard": "Codul următor a fost copiat în clipboard",
"error": "Eroare",
"recoveryKeyCopiedToClipboard": "Cheie de recuperare salvată în clipboard",
"recoveryKeyOnForgotPassword": "Dacă îți uiți parola, singura modalitate prin care poți recupera datele este cu această cheie.",
"recoveryKeySaveDescription": "Nu stocăm această cheie, vă rugăm salvați această cheie de 24 de cuvinte într-un loc sigur.",
"saveKey": "Salvare cheie",
"save": "Salvare",
"send": "Trimitere",
"back": "Înapoi",
"password": "Parolă",
"termsOfServicesTitle": "Termeni",
"setPasswordTitle": "Setează parola",
"changePasswordTitle": "Schimbă parola",
"resetPasswordTitle": "Resetează parola",
"passwordWarning": "Nu stocăm această parolă, deci dacă o uiți, <underline>nu îți putem decripta datele</underline>",
"enterPasswordToEncrypt": "Introdu o parolă pe care o putem folosi pentru a-ți cripta datele",
"passwordChangedSuccessfully": "Parola a fost modificată cu succes",
"recreatePasswordTitle": "Recreează parola",
"invalidKey": "Cheie invalidă",
"tryAgain": "Încearcă din nou",
"viewRecoveryKey": "Vezi cheia de recuperare",
"pleaseSendTheLogsTo": "Te rugăm să trimiți jurnalele la {toEmail}",
"copyEmailAddress": "Copiază adresa de e-mail",
"about": "Despre",
"weAreOpenSource": "Suntem open source!",
"privacy": "Confidențialitate",
"terms": "Termeni",
"checkForUpdates": "Verifică actualizări",
"checkStatus": "Verifică status",
"downloadUpdate": "Descărcare",
"criticalUpdateAvailable": "Actualizare critică disponibilă",
"updateAvailable": "Actualizare disponibilă",
"update": "Actualizare",
"checking": "Se verifică...",
"youAreOnTheLatestVersion": "Utilizezi cea mai recentă versiune",
"warning": "Atenție",
"iUnderStand": "Înţeleg",
"@iUnderStand": {
"description": "Text for the button to confirm the user understands the warning"
},
"importSuccessTitle": "Ura!",
"sorry": "Ne pare rău",
"pendingSyncs": "Atenție",
"tapToEnterCode": "Apasă pentru a introduce codul",
"resendEmail": "Retrimite e-mail",
"weHaveSendEmailTo": "Am trimis un e-mail la <green>{email}</green>",
"@weHaveSendEmailTo": {
"description": "Text to indicate that we have sent a mail to the user",
"placeholders": {
"email": {
"description": "The email address of the user",
"type": "String",
"example": "example@ente.io"
}
}
},
"activeSessions": "Sesiuni active",
"somethingWentWrongPleaseTryAgain": "Ceva n-a mers bine, te rog încearcă din nou",
"thisDevice": "Acest dispozitiv",
"toResetVerifyEmail": "Pentru a reseta parola, te rugăm să confirmi mai întâi adresa de e-mail.",
"thisEmailIsAlreadyInUse": "Această adresă de e-mail este deja folosită",
"emailChangedTo": "E-mail modificat în {newEmail}",
"enterPassword": "Introdu parola",
"passwordToEncryptExport": "Parolă pentru a cripta exportul",
"useOffline": "Utilizează fără backup-uri",
"offlineModeWarning": "Ai ales să continui fără backup-uri. Te rog salvează-ți backup-urile manual ca să fii sigur că ai codurile în siguranță.",
"showLargeIcons": "Afișează iconițele mari",
"shouldHideCode": "Ascunde codurile",
"androidBiometricHint": "Verifică identitatea",
"@androidBiometricHint": {
"description": "Hint message advising the user how to authenticate with biometrics. It is used on Android side. Maximum 60 characters."
},
"androidBiometricNotRecognized": "Neidentificat. Încearcă din nou.",
"@androidBiometricNotRecognized": {
"description": "Message to let the user know that authentication was failed. It is used on Android side. Maximum 60 characters."
},
"androidBiometricSuccess": "Succes",
"@androidBiometricSuccess": {
"description": "Message to let the user know that authentication was successful. It is used on Android side. Maximum 60 characters."
},
"androidCancelButton": "Anulare",
"@androidCancelButton": {
"description": "Message showed on a button that the user can click to leave the current dialog. It is used on Android side. Maximum 30 characters."
},
"androidSignInTitle": "Autentificare necesară",
"@androidSignInTitle": {
"description": "Message showed as a title in a dialog which indicates the user that they need to scan biometric to continue. It is used on Android side. Maximum 60 characters."
},
"goToSettings": "Mergi la setări",
"@goToSettings": {
"description": "Message showed on a button that the user can click to go to settings pages from the current dialog. It is used on both Android and iOS side. Maximum 30 characters."
},
"iOSOkButton": "Ok",
"@iOSOkButton": {
"description": "Message showed on a button that the user can click to leave the current dialog. It is used on iOS side. Maximum 30 characters."
},
"noInternetConnection": "Nu există conexiune la internet",
"signOutFromOtherDevices": "Deconectare de pe alte dispozitive",
"signOutOtherDevices": "Deconectează alte dispozitive",
"doNotSignOut": "Nu te deconecta",
"loginSessionExpired": "Sesiune expirată",
"updateNotAvailable": "Actualizare indisponibilă"
}

View File

@@ -269,6 +269,7 @@
"privacy": "Конфиденциальность",
"terms": "Условия использования",
"checkForUpdates": "Проверить наличие обновлений",
"checkStatus": "Проверить статус",
"downloadUpdate": "Скачать",
"criticalUpdateAvailable": "Доступно критическое обновление",
"updateAvailable": "Доступно обновление",
@@ -417,6 +418,9 @@
"waitingForBrowserRequest": "Ожидание запроса браузера...",
"waitingForVerification": "Ожидание подтверждения...",
"passkey": "Ключ",
"passKeyPendingVerification": "Верификация еще не завершена",
"loginSessionExpired": "Сессия недействительна",
"loginSessionExpiredDetails": "Сессия истекла. Войдите снова.",
"developerSettingsWarning": "Вы уверены, что хотите изменить настройки разработчика?",
"developerSettings": "Настройки разработчика",
"serverEndpoint": "Конечная точка сервера",

View File

@@ -0,0 +1,470 @@
{
"account": "Konto",
"unlock": "Odomknúť",
"recoveryKey": "Kľúč pre obnovenie",
"counterAppBarTitle": "Počítadlo",
"@counterAppBarTitle": {
"description": "Text shown in the AppBar of the Counter Page"
},
"onBoardingBody": "Zabezpečte svoje kódy 2FA",
"onBoardingGetStarted": "Poďme na to",
"setupFirstAccount": "Vytvorte svoj prvý účet",
"importScanQrCode": "Naskenovať QR kód",
"qrCode": "QR kód",
"importEnterSetupKey": "Vložte kľúč nastavenia",
"importAccountPageTitle": "Vložte detaily o konte",
"secretCanNotBeEmpty": "Tajný kľúč nemôže ostať prázdny",
"bothIssuerAndAccountCanNotBeEmpty": "Buď vydavateľ alebo účet nemôže ostať prázdny",
"incorrectDetails": "Chybné údaje",
"pleaseVerifyDetails": "Prosím, skontrolujte svoje údaje a skúste to znova",
"codeIssuerHint": "Vydavateľ",
"codeSecretKeyHint": "Tajný kľúč",
"codeAccountHint": "Konto (ucet@domena.com)",
"codeTagHint": "Tag",
"accountKeyType": "Typ kľúča",
"sessionExpired": "Relácia vypršala",
"@sessionExpired": {
"description": "Title of the dialog when the users current session is invalid/expired"
},
"pleaseLoginAgain": "Prosím, prihláste sa znova",
"loggingOut": "Odhlasovanie...",
"timeBasedKeyType": "Na základe času (TOTP)",
"counterBasedKeyType": "Na základe počítadla (HOTP)",
"saveAction": "Uložiť",
"nextTotpTitle": "ďalej",
"deleteCodeTitle": "Odstrániť položku?",
"deleteCodeMessage": "Naozaj chcete odstrániť položku? Táto akcia je nezvratná.",
"viewLogsAction": "Zobraziť logy",
"sendLogsDescription": "Toto odošle logy, ktoré nám pomôžu vyriešiť váš problém. Aj keď prijímame preventívne opatrenia, aby sme zabezpečili, že sa citlivé informácie neukladajú do logov, odporúčame vám, aby ste si ich pred zdieľaním pozreli.",
"preparingLogsTitle": "Príprava logov...",
"emailLogsTitle": "Odoslať logy emailom",
"emailLogsMessage": "Prosím, pošlite logy na adresu {email}",
"@emailLogsMessage": {
"placeholders": {
"email": {
"type": "String"
}
}
},
"copyEmailAction": "Skopírovať e-mail",
"exportLogsAction": "Exportovať logy",
"reportABug": "Nahlásiť chybu",
"crashAndErrorReporting": "Hlásenie zlyhaní a chýb",
"reportBug": "Nahlásiť chybu",
"emailUsMessage": "Pošlite nám email na adresu {email}",
"@emailUsMessage": {
"placeholders": {
"email": {
"type": "String"
}
}
},
"contactSupport": "Kontaktovať podporu",
"rateUsOnStore": "Ohodnoťte nás cez {storeName}",
"blog": "Blog",
"merchandise": "Merchandise",
"verifyPassword": "Potvrďte heslo",
"pleaseWait": "Prosím počkajte...",
"generatingEncryptionKeysTitle": "Generovanie šifrovacích kľúčov...",
"recreatePassword": "Resetovať heslo",
"recreatePasswordMessage": "Aktuálne zariadenie nie je dostatočne výkonné na overenie vášho hesla, takže ho musíme regenerovať raz spôsobom, ktorý funguje vo všetkých zariadeniach.\n\nPrihláste sa pomocou kľúča na obnovenie a znovu vygenerujte svoje heslo (ak si prajete, môžete znova použiť rovnaké).",
"useRecoveryKey": "Použiť kľúč na obnovenie",
"incorrectPasswordTitle": "Nesprávne heslo",
"welcomeBack": "Vitajte späť!",
"madeWithLoveAtPrefix": "vyrobené so ❤️ v ",
"supportDevs": "Predplaďte si <bold-green>ente</bold-green> a podporte nás",
"supportDiscount": "Použite kód \"AUTH\" pre získanie 10% zľavy na prvý rok",
"changeEmail": "Zmeniť e-mail",
"changePassword": "Zmeniť heslo",
"data": "Údaje",
"importCodes": "Importovať kódy",
"importTypePlainText": "Obyčajný text",
"importTypeEnteEncrypted": "Šifrovaný Ente export",
"passwordForDecryptingExport": "Heslo na rozšifrovanie exportu",
"passwordEmptyError": "Heslo nemôže byť prázdne",
"importFromApp": "Importovať kódy z {appName}",
"importGoogleAuthGuide": "Exportujte svoje účty z aplikácie Google Authenticator pomocou QR kódu zvolením možnosti „Preniesť účty“. Následne, naskenujte QR kód pomocou iného zariadenia.\n\nTip: Na odfotenie QR kódu môžete použiť webovú kameru laptopu.",
"importSelectJsonFile": "Vybrať JSON súbor",
"importSelectAppExport": "Vybrať export súbor aplikácie {appName}",
"importEnteEncGuide": "Vyberte zašifrovaný JSON export súbor aplikácie Ente",
"importRaivoGuide": "Použite možnosť \"Exportovať OTP kódy do archívu Zip\" v nastaveniach služby Raivo.\n\nExtrahujte súbor zip a naimportujte JSON súbor.",
"importBitwardenGuide": "Použite možnosť „Exportovať trezor“ v službe Bitwarden Tools a importujte nezašifrovaný JSON súbor.",
"importAegisGuide": "Použite možnosť \"Exportovať trezor\" v nastaveniach služby Aegis.\n\nAk je váš trezor zašifrovaný, na dešifrovanie budete musieť zadať heslo trezoru.",
"import2FasGuide": "Použite možnosť \"Nastavenia->Záloha -Export\" v službe 2FAS.\n\nAk je vaša záloha zašifrovaná, na dešifrovanie budete musieť zadať heslo",
"importLastpassGuide": "Použite možnosť \"Preniesť účty\" v nastaveniach služby Lastpass Authenticator a stlačte \"Exportovať účty do súboru\". Importujte stiahnutý JSON súbor.",
"exportCodes": "Exportovať kódy",
"importLabel": "Importovať",
"importInstruction": "Vyberte súbor, ktorý obsahuje zoznam vašich kódov v nasledujúcom formáte",
"importCodeDelimiterInfo": "Kódy môžu byť oddelené čiarkou alebo novým riadkom",
"selectFile": "Vybrať súbor",
"emailVerificationToggle": "Overenie pomocou e-mailovej adresy",
"emailVerificationEnableWarning": "Aby ste predišli vymknutiu sa z vášho účtu, nezabudnite pred povolením overenia emailom uložiť kópiu svojho 2FA emailu mimo Ente Auth.",
"authToChangeEmailVerificationSetting": "Pre zmenu overenia pomocou emailu sa musíte overiť",
"authToViewYourRecoveryKey": "Pre zobrazenie vášho kľúča na obnovenie sa musíte overiť",
"authToChangeYourEmail": "Pre zmenu vášho emailu sa musíte overiť",
"authToChangeYourPassword": "Pre zmenu vášho hesla sa musíte overiť",
"authToViewSecrets": "Pre zobrazenie vašich tajných údajov sa musíte overiť",
"authToInitiateSignIn": "Pre iniciáciu prihlásenia sa pre zálohu sa musíte overiť.",
"ok": "Ok",
"cancel": "Zrušiť",
"yes": "Áno",
"no": "Nie",
"email": "Email",
"support": "Podpora",
"general": "Všeobecné",
"settings": "Nastavenia",
"copied": "Skopírované",
"pleaseTryAgain": "Prosím, skúste to znova",
"existingUser": "Existujúci užívateľ",
"newUser": "Nový v Ente",
"delete": "Odstrániť",
"enterYourPasswordHint": "Zadajte vaše heslo",
"forgotPassword": "Zabudnuté heslo",
"oops": "Ups",
"suggestFeatures": "Navrhnúť funkcionalitu",
"faq": "Často kladené otázky",
"faq_q_1": "Ako bezpečné je Auth?",
"faq_a_1": "Všetky kódy, ktoré zálohujete cez Auth, sú ukladané zabezpečené end-to-end šifrovaním. To znamená, že k svojim kódom máte prístup iba vy. Naše aplikácie sú open source a na nami používanej kryptografii prebehol externý audit.",
"faq_q_2": "Môžem pristupovať k svojim kódom cez počítač?",
"faq_a_2": "K svojim kódom sa môžete dostať cez web auth.ente.io.",
"faq_q_3": "Ako môžem odstrániť svoje kódy?",
"faq_a_3": "Kód môžete odstrániť potiahnutím prsta doľava na danej položke.",
"faq_q_4": "Ako môžem podporiť tento projekt?",
"faq_a_4": "Vývoj tohto projektu môžete podporiť zakúpením predplatného našej aplikácie Photos na ente.io.",
"faq_q_5": "Ako môžem nastaviť FaceID v Auth?",
"faq_a_5": "Zámok FaceID môžete povoliť v sekcii Nastavenia → Zabezpečenie → Uzamknutie obrazovky.",
"somethingWentWrongMessage": "Niečo sa pokazilo, skúste to prosím znova",
"leaveFamily": "Opustiť rodinku",
"leaveFamilyMessage": "Ste si istý, že chcete opustiť rodinku?",
"inFamilyPlanMessage": "Ste prihlásený k rodinke!",
"swipeHint": "Potiahnite doľava pre upravenie alebo vymazanie kódov",
"scan": "Skenovať",
"scanACode": "Skenovať kód",
"verify": "Overiť",
"verifyEmail": "Overiť email",
"enterCodeHint": "Zadajte 6-miestny kód z\nvašej overovacej aplikácie",
"lostDeviceTitle": "Stratené zariadenie?",
"twoFactorAuthTitle": "Dvojfaktorové overovanie",
"passkeyAuthTitle": "Overenie pomocou passkey",
"verifyPasskey": "Overiť passkey",
"recoverAccount": "Obnoviť konto",
"enterRecoveryKeyHint": "Vložte váš kód pre obnovenie",
"recover": "Obnoviť",
"contactSupportViaEmailMessage": "Pošlite e-mail na adresu {email} z vašej registrovanej e-mailovej adresy",
"@contactSupportViaEmailMessage": {
"placeholders": {
"email": {
"type": "String"
}
}
},
"invalidQRCode": "Neplatný QR kód",
"noRecoveryKeyTitle": "Nemáte kľúč pre obnovenie?",
"enterEmailHint": "Zadajte vašu emailovú adresu",
"invalidEmailTitle": "Neplatná emailová adresa",
"invalidEmailMessage": "Zadajte platnú e-mailovú adresu.",
"deleteAccount": "Odstrániť konto",
"deleteAccountQuery": "Bude nám tu bez vás smutno. Vyskytol sa nejaký problém?",
"yesSendFeedbackAction": "Áno, odoslať spätnú väzbu",
"noDeleteAccountAction": "Nie, odstrániť účet",
"initiateAccountDeleteTitle": "Pre odstránenie účtu sa musíte overiť",
"sendEmail": "Odoslať email",
"createNewAccount": "Vytvoriť nové konto",
"weakStrength": "Slabé",
"strongStrength": "Silné",
"moderateStrength": "Mierne",
"confirmPassword": "Potvrdiť heslo",
"close": "Zatvoriť",
"oopsSomethingWentWrong": "Ajáj, vyskytla sa chyba.",
"selectLanguage": "Vybrať jazyk",
"language": "Jazyk",
"social": "Sociálne siete",
"security": "Zabezpečenie",
"lockscreen": "Uzamknutie obrazovky",
"authToChangeLockscreenSetting": "Pre zmenu nastavenia uzamknutia obrazovky sa musíte overiť",
"lockScreenEnablePreSteps": "Pre povolenie uzamknutia obrazovky, nastavte prístupový kód zariadenia alebo zámok obrazovky v nastaveniach systému.",
"viewActiveSessions": "Zobraziť aktívne relácie",
"authToViewYourActiveSessions": "Pre zobrazenie vašich aktívnych relácii sa musíte overiť",
"searchHint": "Hľadať...",
"search": "Hľadať",
"sorryUnableToGenCode": "Ospravedlňujeme sa, nie je možné vygenerovať kód pre {issuerName}",
"noResult": "Žiadny výsledok",
"addCode": "Pridať kód",
"scanAQrCode": "Naskenovať QR kód",
"enterDetailsManually": "Zadajte údaje manuálne",
"edit": "Upraviť",
"copiedToClipboard": "Skopírované do schránky",
"copiedNextToClipboard": "Skopírovaný následujúci kód do schránky",
"error": "Chyba",
"recoveryKeyCopiedToClipboard": "Skopírovaný kód pre obnovenie do schránky",
"recoveryKeyOnForgotPassword": "Ak zabudnete heslo, jediným spôsobom, ako môžete obnoviť svoje údaje, je tento kľúč.",
"recoveryKeySaveDescription": "My tento kľúč neuchovávame, uložte si tento kľúč obsahujúci 24 slov na bezpečnom mieste.",
"doThisLater": "Urobiť to neskôr",
"saveKey": "Uložiť kľúč",
"save": "Uložiť",
"send": "Odoslať",
"saveOrSendDescription": "Chcete to uložiť do svojho zariadenia (predvolený priečinok Stiahnuté súbory) alebo to odoslať do iných aplikácií?",
"saveOnlyDescription": "Chcete to uložiť do svojho zariadenia (predvolený priečinok Stiahnuté súbory)?",
"back": "Späť",
"createAccount": "Vytvoriť účet",
"passwordStrength": "Sila hesla: {passwordStrengthValue}",
"@passwordStrength": {
"description": "Text to indicate the password strength",
"placeholders": {
"passwordStrengthValue": {
"description": "The strength of the password as a string",
"type": "String",
"example": "Weak or Moderate or Strong"
}
},
"message": "Password Strength: {passwordStrengthText}"
},
"password": "Heslo",
"signUpTerms": "Súhlasím s <u-terms>podmienkami používania</u-terms> a <u-policy>zásadami ochrany osobných údajov</u-policy>",
"privacyPolicyTitle": "Zásady ochrany osobných údajov",
"termsOfServicesTitle": "Podmienky používania",
"encryption": "Šifrovanie",
"setPasswordTitle": "Nastaviť heslo",
"changePasswordTitle": "Zmeniť heslo",
"resetPasswordTitle": "Obnoviť heslo",
"encryptionKeys": "Šifrovacie kľúče",
"passwordWarning": "Ente neukladá tohto heslo. V prípade, že ho zabudnete, <underline>nie sme schopní rozšifrovať vaše údaje</underline>",
"enterPasswordToEncrypt": "Zadajte heslo, ktoré môžeme použiť na šifrovanie vašich údajov",
"enterNewPasswordToEncrypt": "Zadajte nové heslo, ktoré môžeme použiť na šifrovanie vašich údajov",
"passwordChangedSuccessfully": "Heslo bolo úspešne zmenené",
"generatingEncryptionKeys": "Generovanie šifrovacích kľúčov...",
"continueLabel": "Pokračovať",
"insecureDevice": "Slabo zabezpečené zariadenie",
"sorryWeCouldNotGenerateSecureKeysOnThisDevicennplease": "Ospravedlňujeme sa, v tomto zariadení sme nemohli generovať bezpečnostné kľúče.\n\nzaregistrujte sa z iného zariadenia.",
"howItWorks": "Ako to funguje",
"ackPasswordLostWarning": "Rozumiem, že ak stratím alebo zabudnem heslo, môžem stratiť svoje údaje, pretože moje údaje sú <underline>šifrované end-to-end</underline>.",
"loginTerms": "Kliknutím na prihlásenie, súhlasím s <u-terms>podmienkami používania</u-terms> a <u-policy>zásadami ochrany osobných údajov</u-policy>",
"logInLabel": "Prihlásenie",
"logout": "Odhlasenie",
"areYouSureYouWantToLogout": "Naozaj sa chcete odhlásiť?",
"yesLogout": "Áno, odhlásiť sa",
"exit": "Ukončiť",
"verifyingRecoveryKey": "Overovanie kľúča na obnovenie...",
"recoveryKeyVerified": "Kľúč na obnovenie overený",
"recoveryKeySuccessBody": "Skvelé! Váš kľúč na obnovenie je správny. Ďakujeme za overenie.\n\nNezabudnite uchovať váš kľúč na obnovenie uložený bezpečne.",
"invalidRecoveryKey": "Zadaný kľúč na obnovenie nie je platný. Uistite sa, že obsahuje 24 slov a skontrolujte písmenko po písmenku každé z nich.\n\nAk ste zadali starší kód na obnovenie, uistite sa, že je dlhý 64 znakov a skontrolujte každý znak samostatne.",
"recreatePasswordTitle": "Resetovať heslo",
"recreatePasswordBody": "Aktuálne zariadenie nie je dostatočne výkonné na overenie vášho hesla, avšak vieme ho regenerovať spôsobom, ktorý funguje vo všetkých zariadeniach.\n\nPrihláste sa pomocou kľúča na obnovenie a znovu vygenerujte svoje heslo (ak si prajete, môžete znova použiť rovnaké).",
"invalidKey": "Neplatný kľúč",
"tryAgain": "Skúsiť znova",
"viewRecoveryKey": "Zobraziť kľúč na obnovenie",
"confirmRecoveryKey": "Potvrdiť kód pre obnovenie",
"recoveryKeyVerifyReason": "Váš kľúč na obnovenie je jediný spôsob, ako obnoviť svoje fotografie, ak zabudnete heslo. Kľúč na obnovenie nájdete v Nastavenia > Konto.\n\nZadajte tu svoj kľúč na obnovenie a overte, či ste ho správne uložili.",
"confirmYourRecoveryKey": "Potvrďte váš kód pre obnovenie",
"confirm": "Potvrdiť",
"emailYourLogs": "Odoslať vaše logy emailom",
"pleaseSendTheLogsTo": "Prosím, pošlite logy na adresu \n{toEmail}",
"copyEmailAddress": "Skopírovať e-mailovú adresu",
"exportLogs": "Exportovať logy",
"enterYourRecoveryKey": "Vložte váš kód pre obnovenie",
"tempErrorContactSupportIfPersists": "Vyzerá to, že sa niečo pokazilo. Skúste znova v krátkom čase. Ak chyba pretrváva, kontaktujte náš tím podpory.",
"networkHostLookUpErr": "Nemožno sa pripojiť k Ente, skontrolujte svoje nastavenia siete a kontaktujte podporu, ak chyba pretrváva.",
"networkConnectionRefusedErr": "Nemožno sa pripojiť k Ente, skúste znova v krátkom čase. Ak chyba pretrváva, kontaktujte podporu.",
"itLooksLikeSomethingWentWrongPleaseRetryAfterSome": "Vyzerá to, že sa niečo pokazilo. Skúste znova v krátkom čase. Ak chyba pretrváva, kontaktujte náš tím podpory.",
"about": "O aplikácii",
"weAreOpenSource": "We are open source!",
"privacy": "Súkromie",
"terms": "Podmienky",
"checkForUpdates": "Zistiť dostupnosť aktualizácií",
"checkStatus": "Overiť stav",
"downloadUpdate": "Stiahnuť",
"criticalUpdateAvailable": "K dispozícii je kritická aktualizácia",
"updateAvailable": "K dispozícii je aktualizácia",
"update": "Aktualizovať",
"checking": "Kontrolovanie...",
"youAreOnTheLatestVersion": "Používate najnovšiu verziu",
"warning": "Upozornenie",
"exportWarningDesc": "Exportovaný súbor obsahuje citlivé informácie. Prosím, uložte to bezpečne.",
"iUnderStand": "Rozumiem",
"@iUnderStand": {
"description": "Text for the button to confirm the user understands the warning"
},
"authToExportCodes": "Pre export vašich kódov sa musíte overiť",
"importSuccessTitle": "Jéj!",
"importSuccessDesc": "Úspešne ste importovali kódy v počte {count}!",
"@importSuccessDesc": {
"placeholders": {
"count": {
"description": "The number of codes imported",
"type": "int",
"example": "1"
}
}
},
"sorry": "Ospravedlňujeme sa",
"importFailureDesc": "Vybraný súbor nie je možné spracovať.\nAk potrebujete pomoc, napíšte na adresu support@ente.io!",
"pendingSyncs": "Upozornenie",
"pendingSyncsWarningBody": "Niektoré z vašich kódov neboli zálohované.\n\nPred odhlásením sa uistite, že máte zálohu pre tieto kódy.",
"checkInboxAndSpamFolder": "Skontrolujte svoju doručenú poštu (a spam) pre dokončenie overenia",
"tapToEnterCode": "Klepnutím zadajte kód",
"resendEmail": "Znovu odoslať email",
"weHaveSendEmailTo": "Odoslali sme email na adresu <green>{email}</green>",
"@weHaveSendEmailTo": {
"description": "Text to indicate that we have sent a mail to the user",
"placeholders": {
"email": {
"description": "The email address of the user",
"type": "String",
"example": "example@ente.io"
}
}
},
"activeSessions": "Aktívne relácie",
"somethingWentWrongPleaseTryAgain": "Niečo sa pokazilo, skúste to prosím znova",
"thisWillLogYouOutOfThisDevice": "Toto vás odhlási z tohto zariadenia!",
"thisWillLogYouOutOfTheFollowingDevice": "Toto vás odhlási z následujúceho zariadenia:",
"terminateSession": "Ukončiť reláciu?",
"terminate": "Ukončiť",
"thisDevice": "Toto zariadenie",
"toResetVerifyEmail": "Ak chcete obnoviť svoje heslo, najskôr overte svoj email.",
"thisEmailIsAlreadyInUse": "Tento e-mail sa už používa",
"verificationFailedPleaseTryAgain": "Overenie zlyhalo, skúste to znova",
"yourVerificationCodeHasExpired": "Platnosť overovacieho kódu uplynula",
"incorrectCode": "Neplatný kód",
"sorryTheCodeYouveEnteredIsIncorrect": "Ľutujeme, zadaný kód je nesprávny",
"emailChangedTo": "Emailová adresa bola zmenená na {newEmail}",
"authenticationFailedPleaseTryAgain": "Overenie zlyhalo. Skúste to znova",
"authenticationSuccessful": "Overenie sa podarilo!",
"twofactorAuthenticationSuccessfullyReset": "Dvojfaktorové overovanie bolo úspešne obnovené",
"incorrectRecoveryKey": "Nesprávny kľúč na obnovenie",
"theRecoveryKeyYouEnteredIsIncorrect": "Kľúč na obnovenie, ktorý ste zadali, je nesprávny",
"enterPassword": "Zadajte heslo",
"selectExportFormat": "Zvoľte formát pre exportovanie",
"exportDialogDesc": "Šifrované exporty budú chránené heslom, ktoré si vyberiete.",
"encrypted": "Šifrované",
"plainText": "Obyčajný text",
"passwordToEncryptExport": "Heslo na zašifrovanie exportu",
"export": "Exportovať",
"useOffline": "Používať bez zálohy",
"signInToBackup": "Prihláste sa a zálohujte svoje kódy",
"singIn": "Prihlásiť sa",
"sigInBackupReminder": "Exportujte svoje kódy, aby ste sa uistili, že máte zálohu, ktorú môžete neskôr obnoviť.",
"offlineModeWarning": "Rozhodli ste sa pokračovať bez zálohovania. Prosím, vykonávajte pravidelné manuálne zálohy aby ste mali istotu, že kódy nestratíte.",
"showLargeIcons": "Zobraziť veľké ikony",
"shouldHideCode": "Skryť kódy",
"doubleTapToViewHiddenCode": "Dvakrát klepnite na položku aby ste zobrazili kód",
"focusOnSearchBar": "Využívať pole vyhľadávania pri spustení aplikácie",
"confirmUpdatingkey": "Ste si istí, že chcete zmeniť tajný kľúč?",
"minimizeAppOnCopy": "Minimalizovať po skopírovaní",
"editCodeAuthMessage": "Overte sa pre zmenu kódu",
"deleteCodeAuthMessage": "Overte sa pre vymazanie kódu",
"showQRAuthMessage": "Overte sa pre zobrazenie QR kódu",
"confirmAccountDeleteTitle": "Potvrdiť odstránenie účtu",
"confirmAccountDeleteMessage": "Tento účet je prepojený s inými aplikáciami Ente, ak nejaké používate.\n\nVšetky nahrané údaje v aplikáciách od Ente budú naplánované na výmaz a váš účet bude natrvalo odstránený.",
"androidBiometricHint": "Overiť identitu",
"@androidBiometricHint": {
"description": "Hint message advising the user how to authenticate with biometrics. It is used on Android side. Maximum 60 characters."
},
"androidBiometricNotRecognized": "Nerozpoznané. Skúste znova.",
"@androidBiometricNotRecognized": {
"description": "Message to let the user know that authentication was failed. It is used on Android side. Maximum 60 characters."
},
"androidBiometricSuccess": "Overenie úspešné",
"@androidBiometricSuccess": {
"description": "Message to let the user know that authentication was successful. It is used on Android side. Maximum 60 characters."
},
"androidCancelButton": "Zrušiť",
"@androidCancelButton": {
"description": "Message showed on a button that the user can click to leave the current dialog. It is used on Android side. Maximum 30 characters."
},
"androidSignInTitle": "Vyžaduje sa overenie",
"@androidSignInTitle": {
"description": "Message showed as a title in a dialog which indicates the user that they need to scan biometric to continue. It is used on Android side. Maximum 60 characters."
},
"androidBiometricRequiredTitle": "Vyžaduje sa biometria",
"@androidBiometricRequiredTitle": {
"description": "Message showed as a title in a dialog which indicates the user has not set up biometric authentication on their device. It is used on Android side. Maximum 60 characters."
},
"androidDeviceCredentialsRequiredTitle": "Vyžadujú sa poverenia zariadenia",
"@androidDeviceCredentialsRequiredTitle": {
"description": "Message showed as a title in a dialog which indicates the user has not set up credentials authentication on their device. It is used on Android side. Maximum 60 characters."
},
"androidDeviceCredentialsSetupDescription": "Vyžadujú sa poverenia zariadenia",
"@androidDeviceCredentialsSetupDescription": {
"description": "Message advising the user to go to the settings and configure device credentials on their device. It shows in a dialog on Android side."
},
"goToSettings": "Prejsť do nastavení",
"@goToSettings": {
"description": "Message showed on a button that the user can click to go to settings pages from the current dialog. It is used on both Android and iOS side. Maximum 30 characters."
},
"androidGoToSettingsDescription": "Overenie pomocou biometrie nie je na vašom zariadení nastavené. Prejdite na 'Nastavenie > Zabezpečenie' a pridajte overenie pomocou biometrie.",
"@androidGoToSettingsDescription": {
"description": "Message advising the user to go to the settings and configure biometric on their device. It shows in a dialog on Android side."
},
"iOSLockOut": "Overenie pomocou biometrie je zakázané. Zamknite a odomknite svoju obrazovku, aby ste ho povolili.",
"@iOSLockOut": {
"description": "Message advising the user to re-enable biometrics on their device. It shows in a dialog on iOS side."
},
"iOSGoToSettingsDescription": "Overenie pomocou biometrie nie je na vašom zariadení nastavené. Povoľte buď Touch ID or Face ID na svojom telefóne.",
"@iOSGoToSettingsDescription": {
"description": "Message advising the user to go to the settings and configure Biometrics for their device. It shows in a dialog on iOS side."
},
"iOSOkButton": "OK",
"@iOSOkButton": {
"description": "Message showed on a button that the user can click to leave the current dialog. It is used on iOS side. Maximum 30 characters."
},
"noInternetConnection": "Žiadne internetové pripojenie",
"pleaseCheckYourInternetConnectionAndTryAgain": "Skontrolujte svoje internetové pripojenie a skúste to znova.",
"signOutFromOtherDevices": "Odhlásiť sa z iných zariadení",
"signOutOtherBody": "Ak si myslíte, že niekto môže vedieť vaše heslo, môžete vynútiť odhlásenie všetkých ostatných zariadení vo vašom účte.",
"signOutOtherDevices": "Odhlásiť iné zariadenie",
"doNotSignOut": "Neodhlasovať",
"hearUsWhereTitle": "Ako ste sa dozvedeli o Ente? (voliteľné)",
"hearUsExplanation": "Nesledujeme inštalácie aplikácie. Veľmi by nám pomohlo, keby ste nám povedali, ako ste sa o nás dozvedeli!",
"recoveryKeySaved": "Kľúč na obnovenie uložený v priečinku Stiahnutých súborov!",
"waitingForBrowserRequest": "Čakanie na prehliadač...",
"waitingForVerification": "Čakanie na overenie...",
"passkey": "Passkey",
"passKeyPendingVerification": "Overenie stále prebieha",
"loginSessionExpired": "Relácia vypršala",
"loginSessionExpiredDetails": "Vaša relácia vypršala. Prosím, prihláste sa znovu.",
"developerSettingsWarning": "Ste si istí, že chcete modifikovať nastavenia pre vývojárov?",
"developerSettings": "Nastavenia pre vývojárov",
"serverEndpoint": "Endpoint servera",
"invalidEndpoint": "Neplatný endpoint",
"invalidEndpointMessage": "Ospravedlňujeme sa, endpoint, ktorý ste zadali, je neplatný. Zadajte platný endpoint a skúste to znova.",
"endpointUpdatedMessage": "Endpoint úspešne aktualizovaný",
"customEndpoint": "Pripojený k endpointu {endpoint}",
"pinText": "Pripnúť",
"unpinText": "Odopnúť",
"pinnedCodeMessage": "{code} bol pripnutý",
"unpinnedCodeMessage": "{code} bol odopnutý",
"tags": "Tagy",
"createNewTag": "Vytvoriť nový tag",
"tag": "Tag",
"create": "Vytvoriť",
"editTag": "Upraviť tag",
"deleteTagTitle": "Odstrániť tag?",
"deleteTagMessage": "Naozaj chcete odstrániť tag? Táto akcia je nezvratná.",
"somethingWentWrongParsingCode": "Neboli sme schopní spracovať {x} kódov.",
"updateNotAvailable": "K dispozícii nie je žiadna aktualizácia",
"viewRawCodes": "Zobraziť nešifrované kódy",
"rawCodes": "Nešifrované kódy",
"rawCodeData": "Nešifrované údaje o kódoch",
"appLock": "Zámok aplikácie",
"noSystemLockFound": "Nenájdená žiadna zámka obrazovky",
"toEnableAppLockPleaseSetupDevicePasscodeOrScreen": "Pre povolenie uzamknutia aplikácie, nastavte prístupový kód zariadenia alebo zámok obrazovky v nastaveniach systému.",
"autoLock": "Automatické uzamknutie",
"immediately": "Okamžite",
"reEnterPassword": "Zadajte heslo znova",
"reEnterPin": "Zadajte PIN znova",
"next": "Ďalej",
"tooManyIncorrectAttempts": "Príliš veľa chybných pokusov",
"tapToUnlock": "Ťuknutím odomknete",
"setNewPassword": "Nastaviť nové heslo",
"deviceLock": "Zámok zariadenia",
"hideContent": "Skryť obsah",
"hideContentDescriptionAndroid": "Skrýva obsah v prepínači aplikácii a zakazuje snímky obrazovky",
"hideContentDescriptioniOS": "Skrýva obsah v prepínači aplikácii",
"autoLockFeatureDescription": "Čas, po ktorom sa aplikácia uzamkne po nečinnosti",
"appLockDescription": "Vyberte si medzi predvolenou zámkou obrazovky vášho zariadenia a vlastnou zámkou obrazovky s PIN kódom alebo heslom.",
"pinLock": "Zámok PIN",
"enterPin": "Zadajte PIN",
"setNewPin": "Nastaviť nový PIN",
"importFailureDescNew": "Vybraný súbor nie je možné spracovať."
}

View File

@@ -62,6 +62,7 @@
"changePassword": "Ändra lösenord",
"importCodes": "Importera koder",
"exportCodes": "Exportera koder",
"importLabel": "Importera",
"cancel": "Avbryt",
"yes": "Ja",
"no": "Nej",
@@ -91,6 +92,7 @@
"moderateStrength": "Måttligt",
"confirmPassword": "Bekräfta lösenord",
"close": "Stäng",
"selectLanguage": "Välj språk",
"language": "Språk",
"searchHint": "Sök...",
"search": "Sök",
@@ -150,6 +152,7 @@
"enterPassword": "Ange lösenord",
"export": "Exportera",
"singIn": "Logga in",
"shouldHideCode": "Dölj koder",
"androidCancelButton": "Avbryt",
"@androidCancelButton": {
"description": "Message showed on a button that the user can click to leave the current dialog. It is used on Android side. Maximum 30 characters."
@@ -159,5 +162,17 @@
"description": "Message showed on a button that the user can click to leave the current dialog. It is used on iOS side. Maximum 30 characters."
},
"noInternetConnection": "Ingen internetanslutning",
"pleaseCheckYourInternetConnectionAndTryAgain": "Kontrollera din internetanslutning och försök igen."
"pleaseCheckYourInternetConnectionAndTryAgain": "Kontrollera din internetanslutning och försök igen.",
"loginSessionExpiredDetails": "Din session har upphört. Logga in igen.",
"immediately": "Omedelbart",
"reEnterPassword": "Ange lösenord igen",
"reEnterPin": "Ange PIN-kod igen",
"next": "Nästa",
"tooManyIncorrectAttempts": "För många felaktiga försök",
"tapToUnlock": "Tryck för att låsa upp",
"setNewPassword": "Ange nytt lösenord",
"deviceLock": "Enhetslås",
"hideContent": "Dölj innehåll",
"enterPin": "Ange PIN-kod",
"setNewPin": "Ange ny PIN-kod"
}

View File

@@ -20,6 +20,8 @@
"codeIssuerHint": "ኣዋጂ",
"codeSecretKeyHint": "ምስጢራዊ መፍትሕ",
"codeAccountHint": "ሕሳብ (you@domain.com)",
"codeTagHint": "ልጣፍ",
"accountKeyType": "ዓይነት ቁልፊ",
"sessionExpired": "ክፍለ ግዜኡ ኣኺሉ።",
"@sessionExpired": {
"description": "Title of the dialog when the users current session is invalid/expired"
@@ -111,12 +113,14 @@
"copied": "Copied",
"pleaseTryAgain": "Please try again",
"existingUser": "Existing User",
"newUser": "ሓድሽ ናብ Ente",
"delete": "Delete",
"enterYourPasswordHint": "Enter your password",
"forgotPassword": "Forgot password",
"oops": "ዉዉኡ",
"suggestFeatures": "Suggest features",
"faq": "FAQ",
"faq_q_1": "Auth ክሳብ ክንደይ ውሑስ እዩ፧",
"faq_q_2": "Can I access my codes on desktop?",
"faq_a_2": "You can access your codes on the web @ auth.ente.io.",
"faq_q_3": "How can I delete codes?",

View File

@@ -263,12 +263,15 @@
"exportLogs": "Günlüğü dışa aktar",
"enterYourRecoveryKey": "Kurtarma anahtarınızı girin",
"tempErrorContactSupportIfPersists": "Bir şeyler ters gitmiş gibi görünüyor. Lütfen bir süre sonra tekrar deneyin. Hata devam ederse, lütfen destek ekibimizle iletişime geçin.",
"networkHostLookUpErr": "Ente'ye bağlanılamıyor, lütfen ağ ayarlarınızı kontrol edin ve hata devam ederse desteğe başvurun.",
"networkConnectionRefusedErr": "Ente'ye bağlanılamıyor, lütfen daha sonra tekrar deneyin. Hata devam ederse, lütfen desteğe başvurun.",
"itLooksLikeSomethingWentWrongPleaseRetryAfterSome": "Bir şeyler ters gitmiş gibi görünüyor. Lütfen bir süre sonra tekrar deneyin. Hata devam ederse, lütfen destek ekibimizle iletişime geçin.",
"about": "Hakkında",
"weAreOpenSource": "Biz açık kaynağız!",
"privacy": "Gizlilik",
"terms": "Şartlar",
"checkForUpdates": "Güncellemeleri denetleyin",
"checkStatus": "Durumu kontrol et",
"downloadUpdate": "İndir",
"criticalUpdateAvailable": "Kritik güncelleme mevcut",
"updateAvailable": "Güncelleme mevcut",
@@ -417,6 +420,9 @@
"waitingForBrowserRequest": "Tarayıcı isteği bekleniyor...",
"waitingForVerification": "Doğrulama bekleniyor...",
"passkey": "Geçiş anahtarı",
"passKeyPendingVerification": "Doğrulama hala bekliyor",
"loginSessionExpired": "Oturum süresi doldu",
"loginSessionExpiredDetails": "Oturum süreniz doldu. Tekrar giriş yapın.",
"developerSettingsWarning": "Geliştirici ayarlarını değiştirmekten emin misiniz?",
"developerSettings": "Geliştirici ayarları",
"serverEndpoint": "Sunucu uç noktası",
@@ -436,5 +442,8 @@
"deleteTagTitle": "Etiket silinsin mi?",
"deleteTagMessage": "Bu etiketi silmek istediğinizden emin misiniz? Bu işlem geri alınamaz.",
"somethingWentWrongParsingCode": "{x} kodu ayrıştıramadık.",
"updateNotAvailable": "Güncelleme mevcut değil"
"updateNotAvailable": "Güncelleme mevcut değil",
"viewRawCodes": "Ham kodları gör",
"rawCodes": "Ham kodlar",
"rawCodeData": "Ham kod verisi"
}

View File

@@ -0,0 +1,470 @@
{
"account": "Обліковий запис",
"unlock": "Розблокувати",
"recoveryKey": "Ключ відновлення",
"counterAppBarTitle": "Лічильник",
"@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": "Емітент",
"codeSecretKeyHint": "Секретний ключ",
"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": "Ви впевнені, що хочете видалити цей код? Ця дія є незворотною.",
"viewLogsAction": "Переглянути журнали",
"sendLogsDescription": "Це надішле журнали, щоб допомогти нам зневадити проблему. Хоча ми вживаємо запобіжні заходи для того, щоб ніяка чутлива інформація не була переслана, ми рекомендуємо вам переглянути ці журнали, перш ніж поділитися ними.",
"preparingLogsTitle": "Підготовка журналів...",
"emailLogsTitle": "Переслати журнали електронною поштою",
"emailLogsMessage": "Будь ласка, надішліть журнали до електронної пошти {email}",
"@emailLogsMessage": {
"placeholders": {
"email": {
"type": "String"
}
}
},
"copyEmailAction": "Скопіювати електронну пошту",
"exportLogsAction": "Експортувати журнал",
"reportABug": "Повідомити про помилку",
"crashAndErrorReporting": "Звіт про аварії та помилки",
"reportBug": "Повідомити про помилку",
"emailUsMessage": "Будь ласка, напишіть нам за електронною адресою {email}",
"@emailUsMessage": {
"placeholders": {
"email": {
"type": "String"
}
}
},
"contactSupport": "Звернутися до служби підтримки",
"rateUsOnStore": "Оцініть нас на {storeName}",
"blog": "Блог",
"merchandise": "Товари",
"verifyPassword": "Підтвердження пароля",
"pleaseWait": "Будь ласка, зачекайте...",
"generatingEncryptionKeysTitle": "Створення ключів шифрування...",
"recreatePassword": "Повторно створити пароль",
"recreatePasswordMessage": "Поточний пристрій не є достатньо потужним для підтвердження пароля, тому ми маємо відновити його таким чином, щоб він працював на всіх пристроях.\n\nБудь ласка, увійдіть за допомогою вашого ключа відновлення і відновіть ваш пароль (ви можете знову використати той самий пароль, якщо бажаєте).",
"useRecoveryKey": "Застосувати ключ відновлення",
"incorrectPasswordTitle": "Невірний пароль",
"welcomeBack": "З поверненням!",
"madeWithLoveAtPrefix": "зроблено з ❤️ в ",
"supportDevs": "Підпишіться на <bold-green>ente</bold-green>, щоб підтримати нас",
"supportDiscount": "Використовуйте купон \"AUTH\", щоб отримати 10% знижки за перший рік",
"changeEmail": "Змінити адресу електронної пошти",
"changePassword": "Змінити пароль",
"data": "Дані",
"importCodes": "Імпортувати коди",
"importTypePlainText": "Звичайний текст",
"importTypeEnteEncrypted": "Зашифрований експорт Ente",
"passwordForDecryptingExport": "Пароль для розшифровки експорту",
"passwordEmptyError": "Пароль не може бути порожнім",
"importFromApp": "Імпортувати коди з {appName}",
"importGoogleAuthGuide": "Експортуйте свої облікові записи з Google Authenticator у QR-код за допомогою опції «Перенести облікові записи». Потім за допомогою іншого пристрою відскануйте QR-код.\n\nПорада: Ви можете сфотографувати QR-код за допомогою вебкамери свого ноутбука.",
"importSelectJsonFile": "Оберіть файл JSON",
"importSelectAppExport": "Виберіть експортований файл {appName}",
"importEnteEncGuide": "Виберіть зашифрований файл JSON, експортований з Ente",
"importRaivoGuide": "Використовуйте опцію «Export OTPs to Zip archive» у налаштуваннях Raivo.\n\nРозпакуйте файл ZIP та імпортуйте файл JSON.",
"importBitwardenGuide": "Використовуйте опцію \"Export vault\" в Bitwarden Tools та імпортуйте незашифрований файл JSON.",
"importAegisGuide": "Скористайтеся опцією \"Export the vault\" у параметрах Aegis.\n\nЯкщо ваше сховище зашифровано, вам потрібно буде ввести пароль сховища для його дешифрування.",
"import2FasGuide": "Використовуйте параметр «Settings->Backup -Export» у 2FAS.\n\nЯкщо ваша резервна копія зашифрована, вам потрібно буде ввести пароль, щоб розшифрувати резервну копію",
"importLastpassGuide": "Скористайтеся опцією «Transfer accounts» в налаштуваннях Lastpass Authenticator і натисніть «Export accounts to file». Імпортуйте завантажений JSON.",
"exportCodes": "Експортувати коди",
"importLabel": "Імпортувати",
"importInstruction": "Будь ласка, виберіть файл, що містить список кодів у наступному форматі",
"importCodeDelimiterInfo": "Коди можуть бути розділені комою або новим рядком",
"selectFile": "Вибрати файл",
"emailVerificationToggle": "Підтвердження адреси електронної пошти",
"emailVerificationEnableWarning": "Щоб уникнути блокування доступу до свого облікового запису, обов’язково збережіть копію двофакторної аутентифікації до своєї електронної пошти за межами Ente Auth, перш ніж увімкнути перевірку електронної пошти.",
"authToChangeEmailVerificationSetting": "Будь ласка, пройдіть аутентифікацію, щоб змінити перевірку адреси електронної пошти",
"authToViewYourRecoveryKey": "Будь ласка, пройдіть аутентифікацію, щоб переглянути ваш ключ відновлення",
"authToChangeYourEmail": "Будь ласка, пройдіть аутентифікацію, щоб змінити адресу електронної пошти",
"authToChangeYourPassword": "Будь ласка, пройдіть аутентифікацію, щоб змінити ваш пароль",
"authToViewSecrets": "Будь ласка, пройдіть аутентифікацію, щоб переглянути ваші секретні коди",
"authToInitiateSignIn": "Будь ласка, пройдіть аутентифікацію, щоб розпочати вхід для резервного копіювання.",
"ok": "Ок",
"cancel": "Скасувати",
"yes": "Так",
"no": "Ні",
"email": "Адреса електронної пошти",
"support": "Служба підтримки",
"general": "Загальні",
"settings": "Налаштування",
"copied": "Скопійовано",
"pleaseTryAgain": "Будь ласка, спробуйте ще раз",
"existingUser": "Існуючий користувач",
"newUser": "Вперше на Ente",
"delete": "Видалити",
"enterYourPasswordHint": "Введіть свій пароль",
"forgotPassword": "Нагадати пароль",
"oops": "От халепа",
"suggestFeatures": "Запропонувати нові функції",
"faq": "Часто Запитувані Питання",
"faq_q_1": "Наскільки безпечним є Auth?",
"faq_a_1": "Всі коди, які ви зберігаєте в Auth, кодуються наскрізним захистом. Це означає, що тільки ви можете отримати доступ до ваших кодів. Наші програми мають відкритий вихідний код, і наша криптографія була перевірена зовнішніми аудиторами.",
"faq_q_2": "Чи я можу отримати доступ до своїх кодів на настільному комп'ютері?",
"faq_a_2": "Ви можете отримати доступ до ваших кодів у веб на auth.ente.io.",
"faq_q_3": "Як я можу видалити коди?",
"faq_a_3": "Ви можете видалити код, провівши пальцем вліво на цьому елементі.",
"faq_q_4": "Як я можу підтримати цей проект?",
"faq_a_4": "Ви можете підтримати розробку цього проекту, підписавшись на наш додаток Photos на ente.io.",
"faq_q_5": "Як я можу активувати розблокування за допомогою FaceID в Auth",
"faq_a_5": "Ви можете активувати розблокування за допомогою FaceID у Налаштування → Безпека → Блокування екрану.",
"somethingWentWrongMessage": "Щось пішло не так, спробуйте, будь ласка, знову",
"leaveFamily": "Залишити сімейний план",
"leaveFamilyMessage": "Ви впевнені, що хочете залишити сімейний план?",
"inFamilyPlanMessage": "Ви знаходитесь на сімейному плані!",
"swipeHint": "Проведіть пальцем вліво, щоб редагувати або видаляти коди",
"scan": "Сканувати",
"scanACode": "Сканувати код",
"verify": "Перевірити",
"verifyEmail": "Підтвердити електронну адресу",
"enterCodeHint": "Введіть нижче шестизначний код із застосунку для автентифікації",
"lostDeviceTitle": "Загубили пристрій?",
"twoFactorAuthTitle": "Двофакторна аутентифікація",
"passkeyAuthTitle": "Перевірка секретного ключа",
"verifyPasskey": "Підтвердження секретного ключа",
"recoverAccount": "Відновити обліковий запис",
"enterRecoveryKeyHint": "Введіть ваш ключ відновлення",
"recover": "Відновлення",
"contactSupportViaEmailMessage": "Будь ласка, надішліть електронну пошту на адресу {email} з вашої зареєстрованої адреси електронної пошти",
"@contactSupportViaEmailMessage": {
"placeholders": {
"email": {
"type": "String"
}
}
},
"invalidQRCode": "Хибний QR-код",
"noRecoveryKeyTitle": "Немає ключа відновлення?",
"enterEmailHint": "Введіть вашу адресу електронної пошти",
"invalidEmailTitle": "Хибна адреса електронної пошти",
"invalidEmailMessage": "Введіть дійсну адресу електронної пошти.",
"deleteAccount": "Видалити обліковий запис",
"deleteAccountQuery": "Нам дуже шкода, що Ви залишаєте нас. Чи Ви зіткнулися з якоюсь проблемою?",
"yesSendFeedbackAction": "Так, надіслати відгук",
"noDeleteAccountAction": "Ні, видаліть мій обліковий запис",
"initiateAccountDeleteTitle": "Будь ласка, авторизуйтесь, щоб розпочати видалення облікового запису",
"sendEmail": "Надіслати електронного листа",
"createNewAccount": "Створити новий обліковий запис",
"weakStrength": "Слабкий",
"strongStrength": "Надійний",
"moderateStrength": "Помірний",
"confirmPassword": "Підтвердити пароль",
"close": "Закрити",
"oopsSomethingWentWrong": "Ой, лихо. Щось пішло не так.",
"selectLanguage": "Виберіть мову",
"language": "Мова",
"social": "Соціальні мережі",
"security": "Безпека",
"lockscreen": "Екран блокування",
"authToChangeLockscreenSetting": "Будь ласка, авторизуйтесь для зміни налаштувань екрану блокування",
"lockScreenEnablePreSteps": "Для увімкнення екрана блокування, будь ласка, налаштуйте пароль пристрою або блокування екрана в системних налаштуваннях.",
"viewActiveSessions": "Показати активні сеанси",
"authToViewYourActiveSessions": "Будь ласка, пройдіть аутентифікацію, щоб переглянути ваші активні сеанси",
"searchHint": "Пошук...",
"search": "Пошук",
"sorryUnableToGenCode": "Вибачте, не вдалося створити код для {issuerName}",
"noResult": "Немає результатів",
"addCode": "Додати код",
"scanAQrCode": "Сканувати QR-код",
"enterDetailsManually": "Введіть дані вручну",
"edit": "Редагувати",
"copiedToClipboard": "Скопійовано до буфера обміну",
"copiedNextToClipboard": "Наступний код скопійовано до буфера обміну",
"error": "Помилка",
"recoveryKeyCopiedToClipboard": "Ключ відновлення скопійований в буфер обміну",
"recoveryKeyOnForgotPassword": "Якщо ви забудете свій пароль, то єдиний спосіб відновити ваші дані за допомогою цього ключа.",
"recoveryKeySaveDescription": "Ми не зберігаємо цей ключ, будь ласка, збережіть цей ключ з 24 слів в надійному місці.",
"doThisLater": "Зробити це пізніше",
"saveKey": "Зберегти ключ",
"save": "Зберегти",
"send": "Надіслати",
"saveOrSendDescription": "Чи хочете Ви зберегти це до свого сховища (тека Downloads за замовчуванням), чи надіслати його в інші додатки?",
"saveOnlyDescription": "Чи хочете Ви зберегти це до свого сховища (тека Downloads за замовчуванням)?",
"back": "Назад",
"createAccount": "Створити обліковий запис",
"passwordStrength": "Сила пароля: {passwordStrengthValue}",
"@passwordStrength": {
"description": "Text to indicate the password strength",
"placeholders": {
"passwordStrengthValue": {
"description": "The strength of the password as a string",
"type": "String",
"example": "Weak or Moderate or Strong"
}
},
"message": "Password Strength: {passwordStrengthText}"
},
"password": "Пароль",
"signUpTerms": "Я приймаю <u-terms>умови використання</u-terms> і <u-policy>політику конфіденційності</u-policy>",
"privacyPolicyTitle": "Політика конфіденційності",
"termsOfServicesTitle": "Умови",
"encryption": "Шифрування",
"setPasswordTitle": "Встановити пароль",
"changePasswordTitle": "Змінити пароль",
"resetPasswordTitle": "Скинути пароль",
"encryptionKeys": "Ключі шифрування",
"passwordWarning": "Ми не зберігаємо цей пароль, тому, якщо ви його забудете, <underline>ми не зможемо розшифрувати Ваші дані</underline>",
"enterPasswordToEncrypt": "Введіть пароль, який ми зможемо використати для шифрування ваших даних",
"enterNewPasswordToEncrypt": "Введіть новий пароль, який ми зможемо використати для шифрування ваших даних",
"passwordChangedSuccessfully": "Пароль успішно змінено",
"generatingEncryptionKeys": "Створення ключів шифрування...",
"continueLabel": "Продовжити",
"insecureDevice": "Незахищений пристрій",
"sorryWeCouldNotGenerateSecureKeysOnThisDevicennplease": "На жаль, нам не вдалося згенерувати захищені ключі на цьому пристрої.\n\nБудь ласка, увійдіть з іншого пристрою.",
"howItWorks": "Як це працює",
"ackPasswordLostWarning": "Я розумію, що якщо я втрачу свій пароль, я можу втратити свої дані, тому що вони є захищені <underline>наскрізним шифруванням</underline>.",
"loginTerms": "Натискаючи «Увійти», я приймаю <u-terms>умови використання</u-terms> і <u-policy>політику конфіденційності</u-policy>",
"logInLabel": "Увійти",
"logout": "Вийти",
"areYouSureYouWantToLogout": "Ви впевнені, що хочете вийти з системи?",
"yesLogout": "Так, вийти з системи",
"exit": "Вийти",
"verifyingRecoveryKey": "Перевірка ключа відновлення...",
"recoveryKeyVerified": "Ключ відновлення перевірено",
"recoveryKeySuccessBody": "Чудово! Ваш ключ відновлення дійсний. Дякуємо за перевірку.\n\nБудь ласка, не забувайте зберігати надійну резервну копію ключа відновлення.",
"invalidRecoveryKey": "Уведений вами ключ відновлення недійсний. Переконайтеся, що він містить 24 слова, а також перевірте правопис кожного.\n\nЯкщо ви ввели старий код відновлення, переконайтеся, що він має 64 символи, а також перевірте кожен з них.",
"recreatePasswordTitle": "Повторно створити пароль",
"recreatePasswordBody": "Поточний пристрій не є достатньо потужним для підтвердження пароля, але ми можемо відновити його таким чином, щоб він працював на всіх пристроях.\n\nБудь ласка, увійдіть за допомогою вашого ключа відновлення і відновіть ваш пароль (ви можете знову використати той самий пароль, якщо бажаєте).",
"invalidKey": "Хибний ключ",
"tryAgain": "Спробуйте ще раз",
"viewRecoveryKey": "Переглянути ключ відновлення",
"confirmRecoveryKey": "Підтвердити ключ відновлення",
"recoveryKeyVerifyReason": "Ваш ключ відновлення це єдиний спосіб відновити ваші фотографії, якщо ви забудете пароль. Ви можете знайти ключ відновлення у меню Налаштування > Обліковий запис.\n\nБудь ласка, введіть ваш ключ відновлення, щоб переконатися, що ви зберегли його правильно.",
"confirmYourRecoveryKey": "Підтвердіть ваш ключ відновлення",
"confirm": "Підтвердити",
"emailYourLogs": "Відправте ваші журнали електронною поштою",
"pleaseSendTheLogsTo": "Будь ласка, надішліть журнали до електронної пошти {toEmail}",
"copyEmailAddress": "Копіювати електронну адресу",
"exportLogs": "Експортувати журнал",
"enterYourRecoveryKey": "Введіть ваш ключ відновлення",
"tempErrorContactSupportIfPersists": "Схоже, що щось пішло не так. Будь ласка, спробуйте ще раз через деякий час. Якщо помилка не зникне, зв'яжіться з нашою командою підтримки.",
"networkHostLookUpErr": "Не вдалося приєднатися до Ente. Будь ласка, перевірте налаштування мережі. Зверніться до нашої команди підтримки, якщо помилка залишиться.",
"networkConnectionRefusedErr": "Не вдалося приєднатися до Ente. Будь ласка, спробуйте ще раз через деякий час. Якщо помилка не зникне, зв'яжіться з нашою командою підтримки.",
"itLooksLikeSomethingWentWrongPleaseRetryAfterSome": "Схоже, що щось пішло не так. Будь ласка, спробуйте ще раз через деякий час. Якщо помилка не зникне, зв'яжіться з нашою командою підтримки.",
"about": "Про додаток",
"weAreOpenSource": "Наш додаток має відкритий код!",
"privacy": "Конфіденційність",
"terms": "Умови",
"checkForUpdates": "Перевiрити наявнiсть оновлень",
"checkStatus": "Перевірити стан",
"downloadUpdate": "Завантажити",
"criticalUpdateAvailable": "Доступне критичне оновлення",
"updateAvailable": "Доступне оновлення",
"update": "Оновлення",
"checking": "Перевірка...",
"youAreOnTheLatestVersion": "Ви використовуєте останню версію",
"warning": "Увага!",
"exportWarningDesc": "Експортований файл містить конфіденційну інформацію. Будь ласка, збережіть його безпечно.",
"iUnderStand": "Я розумію",
"@iUnderStand": {
"description": "Text for the button to confirm the user understands the warning"
},
"authToExportCodes": "Будь ласка, авторизуйтесь, щоб експортувати ваші коди",
"importSuccessTitle": "Гей, любо!",
"importSuccessDesc": "Ви імпортували наступну кількість кодів: {count}!",
"@importSuccessDesc": {
"placeholders": {
"count": {
"description": "The number of codes imported",
"type": "int",
"example": "1"
}
}
},
"sorry": "Дуже шкода",
"importFailureDesc": "Не вдалося обробити обраний файл.\nБудь ласка, надішліть електронну пошту на адресу support@ente.io, якщо вам потрібна допомога!",
"pendingSyncs": "Увага!",
"pendingSyncsWarningBody": "Деякі з ваших кодів не були збережені.\n\nБудь ласка, переконайтеся, що у вас є резервна копія для цих кодів перед виходом.",
"checkInboxAndSpamFolder": "Будь ласка, перевірте вашу скриньку електронної пошти (та спам), щоб завершити перевірку",
"tapToEnterCode": "Натисніть, щоб ввести код",
"resendEmail": "Повторно надіслати лист на електронну пошту",
"weHaveSendEmailTo": "Ми надіслали листа на адресу електронної пошти <green>{email}</green>",
"@weHaveSendEmailTo": {
"description": "Text to indicate that we have sent a mail to the user",
"placeholders": {
"email": {
"description": "The email address of the user",
"type": "String",
"example": "example@ente.io"
}
}
},
"activeSessions": "Активні сеанси",
"somethingWentWrongPleaseTryAgain": "Щось пішло не так, спробуйте, будь ласка, знову",
"thisWillLogYouOutOfThisDevice": "Це призведе до виходу на цьому пристрої!",
"thisWillLogYouOutOfTheFollowingDevice": "Це призведе до виходу на наступному пристрої:",
"terminateSession": "Припинити сеанс?",
"terminate": "Припинити",
"thisDevice": "Цей пристрій",
"toResetVerifyEmail": "Щоб скинути пароль, будь ласка, спочатку підтвердіть адресу своєї електронної пошти.",
"thisEmailIsAlreadyInUse": "Ця адреса електронної пошти вже використовується",
"verificationFailedPleaseTryAgain": "Перевірка не вдалася, спробуйте ще",
"yourVerificationCodeHasExpired": "Час дії коду підтвердження минув",
"incorrectCode": "Невірний код",
"sorryTheCodeYouveEnteredIsIncorrect": "Вибачте, але введений вами код є невірним",
"emailChangedTo": "Адресу електронної пошти змінено на {newEmail}",
"authenticationFailedPleaseTryAgain": "Аутентифікація не пройдена. Будь ласка, спробуйте ще раз",
"authenticationSuccessful": "Автентифікацію виконано!",
"twofactorAuthenticationSuccessfullyReset": "Двофакторна аутентифікація успішно скинута",
"incorrectRecoveryKey": "Неправильний ключ відновлення",
"theRecoveryKeyYouEnteredIsIncorrect": "Ви ввели неправильний ключ відновлення",
"enterPassword": "Введіть пароль",
"selectExportFormat": "Виберіть формат експортування",
"exportDialogDesc": "Зашифрований експорт буде захищений паролем, який Ви виберете.",
"encrypted": "Зашифрований",
"plainText": "Звичайний текст",
"passwordToEncryptExport": "Пароль для зашифровування експорту",
"export": "Експорт",
"useOffline": "Використовувати без резервних копій",
"signInToBackup": "Увійдіть для резервного копіювання кодів",
"singIn": "Увійти",
"sigInBackupReminder": "Будь ласка, експортуйте свої коди, щоб зберегти резервну копію, з якої ви зможете їх відновити.",
"offlineModeWarning": "Ви збираєтеся продовжити без резервних копій. Будь ласка, зробіть ручну резервну копію, щоб переконатися, що ваші коди в безпеці.",
"showLargeIcons": "Показувати великі іконки",
"shouldHideCode": "Приховати коди",
"doubleTapToViewHiddenCode": "Ви можете двічі натиснути на запис для перегляду коду",
"focusOnSearchBar": "Сфокусуватися на пошуку після запуску програми",
"confirmUpdatingkey": "Ви впевнені у тому, що бажаєте змінити секретний ключ?",
"minimizeAppOnCopy": "Згорнути програму після копіювання",
"editCodeAuthMessage": "Аутентифікуйтесь, щоб змінити код",
"deleteCodeAuthMessage": "Аутентифікуйтесь, щоб видалити код",
"showQRAuthMessage": "Аутентифікуйтесь, щоб показати QR-код",
"confirmAccountDeleteTitle": "Підтвердіть видалення облікового запису",
"confirmAccountDeleteMessage": "Цей обліковий запис є зв'язаним з іншими програмами Ente, якщо ви використовуєте якісь з них.\n\nВаші завантажені дані у всіх програмах Ente будуть заплановані до видалення, а обліковий запис буде видалено назавжди.",
"androidBiometricHint": "Підтвердити ідентифікацію",
"@androidBiometricHint": {
"description": "Hint message advising the user how to authenticate with biometrics. It is used on Android side. Maximum 60 characters."
},
"androidBiometricNotRecognized": "Не розпізнано. Спробуйте ще раз.",
"@androidBiometricNotRecognized": {
"description": "Message to let the user know that authentication was failed. It is used on Android side. Maximum 60 characters."
},
"androidBiometricSuccess": "Успіх",
"@androidBiometricSuccess": {
"description": "Message to let the user know that authentication was successful. It is used on Android side. Maximum 60 characters."
},
"androidCancelButton": "Скасувати",
"@androidCancelButton": {
"description": "Message showed on a button that the user can click to leave the current dialog. It is used on Android side. Maximum 30 characters."
},
"androidSignInTitle": "Необхідна аутентифікація",
"@androidSignInTitle": {
"description": "Message showed as a title in a dialog which indicates the user that they need to scan biometric to continue. It is used on Android side. Maximum 60 characters."
},
"androidBiometricRequiredTitle": "Потрібна біометрична аутентифікація",
"@androidBiometricRequiredTitle": {
"description": "Message showed as a title in a dialog which indicates the user has not set up biometric authentication on their device. It is used on Android side. Maximum 60 characters."
},
"androidDeviceCredentialsRequiredTitle": "Необхідні облікові дані пристрою",
"@androidDeviceCredentialsRequiredTitle": {
"description": "Message showed as a title in a dialog which indicates the user has not set up credentials authentication on their device. It is used on Android side. Maximum 60 characters."
},
"androidDeviceCredentialsSetupDescription": "Необхідні облікові дані пристрою",
"@androidDeviceCredentialsSetupDescription": {
"description": "Message advising the user to go to the settings and configure device credentials on their device. It shows in a dialog on Android side."
},
"goToSettings": "Перейти до налаштувань",
"@goToSettings": {
"description": "Message showed on a button that the user can click to go to settings pages from the current dialog. It is used on both Android and iOS side. Maximum 30 characters."
},
"androidGoToSettingsDescription": "Біометрична аутентифікація не налаштована на вашому пристрої. Перейдіть в 'Налаштування > Безпека', щоб додати біометричну аутентифікацію.",
"@androidGoToSettingsDescription": {
"description": "Message advising the user to go to the settings and configure biometric on their device. It shows in a dialog on Android side."
},
"iOSLockOut": "Біометрична автентифікація вимкнена. Будь ласка, заблокуйте і розблокуйте свій екран, щоб увімкнути її.",
"@iOSLockOut": {
"description": "Message advising the user to re-enable biometrics on their device. It shows in a dialog on iOS side."
},
"iOSGoToSettingsDescription": "Біометрична аутентифікація не налаштована на вашому пристрої. Увімкніть TouchID або FaceID на вашому телефоні.",
"@iOSGoToSettingsDescription": {
"description": "Message advising the user to go to the settings and configure Biometrics for their device. It shows in a dialog on iOS side."
},
"iOSOkButton": "OK",
"@iOSOkButton": {
"description": "Message showed on a button that the user can click to leave the current dialog. It is used on iOS side. Maximum 30 characters."
},
"noInternetConnection": "Немає підключення до Інтернету",
"pleaseCheckYourInternetConnectionAndTryAgain": "Будь ласка, перевірте підключення до Інтернету та спробуйте ще раз.",
"signOutFromOtherDevices": "Вийти на інших пристроях",
"signOutOtherBody": "Якщо ви думаєте, що хтось може знати ваш пароль, ви можете примусити всі інші пристрої, які використовують ваш обліковий запис, вийти з нього.",
"signOutOtherDevices": "Вийти на інших пристроях",
"doNotSignOut": "Не виходити",
"hearUsWhereTitle": "Як ви дізналися про Ente? (опціонально)",
"hearUsExplanation": "Ми не відстежуємо встановлення додатків. Але, якщо ви скажете нам, де ви нас знайшли, це допоможе!",
"recoveryKeySaved": "Ключ відновлення збережений у теці Downloads!",
"waitingForBrowserRequest": "Очікування запиту браузера...",
"waitingForVerification": "Очікується підтвердження...",
"passkey": "Ключ доступу",
"passKeyPendingVerification": "Підтвердження все ще в процесі",
"loginSessionExpired": "Час сеансу минув",
"loginSessionExpiredDetails": "Термін дії вашого сеансу завершився. Будь ласка, увійдіть знову.",
"developerSettingsWarning": "Ви впевнені, що хочете змінити налаштування розробника?",
"developerSettings": "Налаштування розробника",
"serverEndpoint": "Кінцева точка сервера",
"invalidEndpoint": "Некоректна кінцева точка",
"invalidEndpointMessage": "Вибачте, введена вами кінцева точка є недійсною. Введіть дійсну кінцеву точку та спробуйте ще раз.",
"endpointUpdatedMessage": "Точка входу успішно оновлена",
"customEndpoint": "Приєднано до {endpoint}",
"pinText": "Закріпити",
"unpinText": "Відкріпити",
"pinnedCodeMessage": "{code} закріплено",
"unpinnedCodeMessage": "{code} відкріплено",
"tags": "Мітки",
"createNewTag": "Створити нову мітку",
"tag": "Мітка",
"create": "Створити",
"editTag": "Редагувати мітку",
"deleteTagTitle": "Видалити мітку?",
"deleteTagMessage": "Ви впевнені, що хочете видалити цю мітку? Ця дія є незворотною.",
"somethingWentWrongParsingCode": "Не вдалося обробити цю кількість кодів: {x}.",
"updateNotAvailable": "Оновлення недоступне",
"viewRawCodes": "Переглянути коди як є",
"rawCodes": "Коди як є",
"rawCodeData": "Дані кодів як є",
"appLock": "Блокування",
"noSystemLockFound": "Не знайдено системного блокування",
"toEnableAppLockPleaseSetupDevicePasscodeOrScreen": "Для увімкнення блокування програми, будь ласка, налаштуйте пароль пристрою або блокування екрана в системних налаштуваннях.",
"autoLock": "Автоблокування",
"immediately": "Негайно",
"reEnterPassword": "Введіть пароль ще раз",
"reEnterPin": "Введіть PIN-код ще раз",
"next": "Наступний",
"tooManyIncorrectAttempts": "Завелика кількість невірних спроб",
"tapToUnlock": "Доторкніться, щоб розблокувати",
"setNewPassword": "Встановити новий пароль",
"deviceLock": "Блокування пристрою",
"hideContent": "Приховати зміст",
"hideContentDescriptionAndroid": "Приховує зміст програми в перемикачі програм і вимикає скриншоти",
"hideContentDescriptioniOS": "Приховує зміст в перемикачі додатків",
"autoLockFeatureDescription": "Час, через який додаток буде заблоковано після розміщення у фоновому режимі",
"appLockDescription": "Виберіть між типовим екраном блокування вашого пристрою та власним екраном блокування з PIN-кодом або паролем.",
"pinLock": "PIN-код",
"enterPin": "Введіть PIN-код",
"setNewPin": "Встановити новий PIN-код",
"importFailureDescNew": "Не вдалося обробити вибраний файл."
}

View File

@@ -263,12 +263,15 @@
"exportLogs": "导出日志",
"enterYourRecoveryKey": "输入您的恢复密钥",
"tempErrorContactSupportIfPersists": "看起来出了点问题。 请稍后重试。 如果错误仍然存在,请联系我们的支持团队。",
"networkHostLookUpErr": "无法连接到 Ente请检查您的网络设置如果错误仍然存请联系支持。",
"networkConnectionRefusedErr": "无法连接到 Ente请稍后重试。如果错误仍然存请联系支持人员。",
"itLooksLikeSomethingWentWrongPleaseRetryAfterSome": "看起来出了点问题。 请稍后重试。 如果错误仍然存在,请联系我们的支持团队。",
"about": "关于",
"weAreOpenSource": "我们是开源的 ",
"privacy": "隐私",
"terms": "使用条款",
"checkForUpdates": "检查更新",
"checkStatus": "检查状态",
"downloadUpdate": "下载",
"criticalUpdateAvailable": "有重要更新可用",
"updateAvailable": "有可用的更新",
@@ -417,6 +420,9 @@
"waitingForBrowserRequest": "正在等待浏览器请求...",
"waitingForVerification": "等待验证...",
"passkey": "通行密钥",
"passKeyPendingVerification": "仍需进行验证",
"loginSessionExpired": "会话已过期",
"loginSessionExpiredDetails": "您的会话已过期。请重新登录。",
"developerSettingsWarning": "您确定要修改开发者设置吗?",
"developerSettings": "开发者设置",
"serverEndpoint": "服务器端点",
@@ -436,5 +442,29 @@
"deleteTagTitle": "要删除标签吗?",
"deleteTagMessage": "您确定要删除此标签吗?此操作是不可逆的。",
"somethingWentWrongParsingCode": "我们无法解析 {x} 代码。",
"updateNotAvailable": "更新不可用"
"updateNotAvailable": "更新不可用",
"viewRawCodes": "查看原始代码",
"rawCodes": "原始代码",
"rawCodeData": "原始代码数据",
"appLock": "应用锁",
"noSystemLockFound": "未找到系统锁",
"toEnableAppLockPleaseSetupDevicePasscodeOrScreen": "要启用应用锁,请在系统设置中设置设备密码或屏幕锁定。",
"autoLock": "自动锁定",
"immediately": "立即",
"reEnterPassword": "再次输入密码",
"reEnterPin": "再次输入 PIN 码",
"next": "下一步",
"tooManyIncorrectAttempts": "错误的尝试次数过多",
"tapToUnlock": "点击解锁",
"setNewPassword": "设置新密码",
"deviceLock": "设备锁",
"hideContent": "隐藏内容",
"hideContentDescriptionAndroid": "在应用切换器中隐藏应用内容并禁用屏幕截图",
"hideContentDescriptioniOS": "在应用切换器中隐藏应用内容",
"autoLockFeatureDescription": "应用程序进入后台后锁定的时间",
"appLockDescription": "在设备的默认锁定屏幕和带有 PIN 或密码的自定义锁定屏幕之间进行选择。",
"pinLock": "Pin 锁定",
"enterPin": "输入 PIN 码",
"setNewPin": "设置新 PIN 码",
"importFailureDescNew": "无法解析选定的文件。"
}

View File

@@ -7,6 +7,7 @@ import 'package:ente_auth/core/configuration.dart';
import 'package:ente_auth/core/constants.dart';
import 'package:ente_auth/core/logging/super_logging.dart';
import 'package:ente_auth/core/network.dart';
import 'package:ente_auth/core/win_http_client.dart';
import 'package:ente_auth/ente_theme_data.dart';
import 'package:ente_auth/locale.dart';
import 'package:ente_auth/services/authenticator_service.dart';
@@ -22,16 +23,15 @@ import 'package:ente_auth/store/code_store.dart';
import 'package:ente_auth/ui/tools/app_lock.dart';
import 'package:ente_auth/ui/tools/lock_screen.dart';
import 'package:ente_auth/ui/utils/icon_utils.dart';
import 'package:ente_auth/utils/lock_screen_settings.dart';
import 'package:ente_auth/utils/platform_util.dart';
import 'package:ente_auth/utils/window_protocol_handler.dart';
import 'package:ente_crypto_dart/ente_crypto_dart.dart';
import 'package:flutter/foundation.dart';
import "package:flutter/material.dart";
import 'package:flutter/scheduler.dart';
import 'package:flutter_displaymode/flutter_displaymode.dart';
import 'package:logging/logging.dart';
import 'package:path_provider/path_provider.dart';
import 'package:privacy_screen/privacy_screen.dart';
import 'package:tray_manager/tray_manager.dart';
import 'package:window_manager/window_manager.dart';
@@ -65,6 +65,9 @@ Future<void> initSystemTray() async {
void main() async {
WidgetsFlutterBinding.ensureInitialized();
if (Platform.isWindows) {
HttpOverrides.global = WindowsHttpOverrides();
}
if (PlatformUtil.isDesktop()) {
await windowManager.ensureInitialized();
@@ -80,12 +83,24 @@ void main() async {
}
await _runInForeground();
await _setupPrivacyScreen();
if (Platform.isAndroid) {
FlutterDisplayMode.setHighRefreshRate().ignore();
}
}
// Future<void> whiteListLetsEncryptRootCA() async {
// try {
// // https://stackoverflow.com/a/71090239
// // https://github.com/ente-io/ente/issues/2178
// ByteData data =
// await PlatformAssetBundle().load('assets/ca/lets-encrypt-r3.pem');
// SecurityContext.defaultContext
// .setTrustedCertificatesBytes(data.buffer.asUint8List());
// } catch (e) {
// _logger.severe("Failed to whitelist Let's Encrypt Root CA", e);
// }
// }
Future<void> _runInForeground() async {
final savedThemeMode = _themeMode(await AdaptiveTheme.getThemeMode());
return await _runWithLogs(() async {
@@ -97,7 +112,7 @@ Future<void> _runInForeground() async {
AppLock(
builder: (args) => App(locale: locale),
lockScreen: const LockScreen(),
enabled: Configuration.instance.shouldShowLockScreen(),
enabled: await Configuration.instance.shouldShowLockScreen(),
locale: locale,
lightTheme: lightThemeData,
darkTheme: darkThemeData,
@@ -156,24 +171,5 @@ Future<void> _init(bool bool, {String? via}) async {
await NotificationService.instance.init();
await UpdateService.instance.init();
await IconUtils.instance.init();
}
Future<void> _setupPrivacyScreen() async {
if (!PlatformUtil.isMobile() || kDebugMode) return;
final brightness =
SchedulerBinding.instance.platformDispatcher.platformBrightness;
bool isInDarkMode = brightness == Brightness.dark;
await PrivacyScreen.instance.enable(
iosOptions: const PrivacyIosOptions(
enablePrivacy: true,
privacyImageName: "LaunchImage",
lockTrigger: IosLockTrigger.didEnterBackground,
),
androidOptions: const PrivacyAndroidOptions(
enableSecure: true,
),
backgroundColor: isInDarkMode ? Colors.black : Colors.white,
blurEffect:
isInDarkMode ? PrivacyBlurEffect.dark : PrivacyBlurEffect.extraLight,
);
await LockScreenSettings.instance.init();
}

View File

@@ -219,9 +219,10 @@ class _OnboardingPageState extends State<OnboardingPage> {
}
Future<void> _optForOfflineMode() async {
bool canCheckBio = Platform.isMacOS || Platform.isLinux
? true
: await LocalAuthentication().canCheckBiometrics;
bool canCheckBio = Platform.isMacOS ||
Platform.isLinux ||
Platform.isWindows ||
await LocalAuthentication().canCheckBiometrics;
if (!canCheckBio) {
showToast(
context,

View File

@@ -1,6 +1,8 @@
import 'dart:io';
import 'package:ente_auth/core/configuration.dart';
import 'package:ente_auth/ui/settings/lock_screen/lock_screen_password.dart';
import 'package:ente_auth/ui/settings/lock_screen/lock_screen_pin.dart';
import 'package:ente_auth/ui/tools/app_lock.dart';
import 'package:ente_auth/utils/auth_util.dart';
import 'package:ente_auth/utils/dialog_util.dart';
@@ -21,11 +23,15 @@ class LocalAuthenticationService {
BuildContext context,
String infoMessage,
) async {
if (await _isLocalAuthSupportedOnDevice()) {
if (await isLocalAuthSupportedOnDevice()) {
AppLock.of(context)!.setEnabled(false);
final result = await requestAuthentication(context, infoMessage);
final result = await requestAuthentication(
context,
infoMessage,
isAuthenticatingForInAppChange: true,
);
AppLock.of(context)!.setEnabled(
Configuration.instance.shouldShowLockScreen(),
await Configuration.instance.shouldShowLockScreen(),
);
if (!result) {
showToast(context, infoMessage);
@@ -37,6 +43,50 @@ class LocalAuthenticationService {
return true;
}
Future<bool> requestEnteAuthForLockScreen(
BuildContext context,
String? savedPin,
String? savedPassword, {
bool isAuthenticatingOnAppLaunch = false,
bool isAuthenticatingForInAppChange = false,
}) async {
if (savedPassword != null) {
final result = await Navigator.of(context).push(
MaterialPageRoute(
builder: (BuildContext context) {
return LockScreenPassword(
isChangingLockScreenSettings: true,
isAuthenticatingForInAppChange: isAuthenticatingForInAppChange,
isAuthenticatingOnAppLaunch: isAuthenticatingOnAppLaunch,
authPass: savedPassword,
);
},
),
);
if (result) {
return true;
}
}
if (savedPin != null) {
final result = await Navigator.of(context).push(
MaterialPageRoute(
builder: (BuildContext context) {
return LockScreenPin(
isChangingLockScreenSettings: true,
isAuthenticatingForInAppChange: isAuthenticatingForInAppChange,
isAuthenticatingOnAppLaunch: isAuthenticatingOnAppLaunch,
authPin: savedPin,
);
},
),
);
if (result) {
return true;
}
}
return false;
}
Future<bool> requestLocalAuthForLockScreen(
BuildContext context,
bool shouldEnableLockScreen,
@@ -44,7 +94,7 @@ class LocalAuthenticationService {
String errorDialogContent, [
String errorDialogTitle = "",
]) async {
if (await _isLocalAuthSupportedOnDevice()) {
if (await isLocalAuthSupportedOnDevice()) {
AppLock.of(context)!.disable();
final result = await requestAuthentication(
context,
@@ -53,11 +103,11 @@ class LocalAuthenticationService {
if (result) {
AppLock.of(context)!.setEnabled(shouldEnableLockScreen);
await Configuration.instance
.setShouldShowLockScreen(shouldEnableLockScreen);
.setSystemLockScreen(shouldEnableLockScreen);
return true;
} else {
AppLock.of(context)!
.setEnabled(Configuration.instance.shouldShowLockScreen());
.setEnabled(await Configuration.instance.shouldShowLockScreen());
}
} else {
// ignore: unawaited_futures
@@ -70,7 +120,7 @@ class LocalAuthenticationService {
return false;
}
Future<bool> _isLocalAuthSupportedOnDevice() async {
Future<bool> isLocalAuthSupportedOnDevice() async {
try {
return Platform.isMacOS || Platform.isLinux
? await FlutterLocalAuthentication().canAuthenticate()

View File

@@ -49,7 +49,7 @@ class PasskeyService {
);
} catch (e) {
Logger('PasskeyService').severe("failed to open passkey page", e);
showGenericErrorDialog(context: context).ignore();
showGenericErrorDialog(context: context, error: e).ignore();
}
}
}

View File

@@ -101,7 +101,7 @@ class UserService {
);
return;
}
unawaited(showGenericErrorDialog(context: context));
unawaited(showGenericErrorDialog(context: context, error: null));
} on DioException catch (e) {
await dialog.hide();
_logger.info(e);
@@ -114,12 +114,12 @@ class UserService {
),
);
} else {
unawaited(showGenericErrorDialog(context: context));
unawaited(showGenericErrorDialog(context: context, error: e));
}
} catch (e) {
await dialog.hide();
_logger.severe(e);
unawaited(showGenericErrorDialog(context: context));
unawaited(showGenericErrorDialog(context: context, error: e));
}
}
@@ -165,7 +165,11 @@ class UserService {
return userDetails;
} catch (e) {
_logger.warning("Failed to fetch", e);
rethrow;
if (e is DioException && e.response?.statusCode == 401) {
throw UnauthorizedError();
} else {
rethrow;
}
}
}
@@ -213,11 +217,17 @@ class UserService {
}
} catch (e) {
_logger.severe(e);
// check if token is already invalid
if (e is DioException && e.response?.statusCode == 401) {
await Configuration.instance.logout();
Navigator.of(context).popUntil((route) => route.isFirst);
return;
}
//This future is for waiting for the dialog from which logout() is called
//to close and only then to show the error dialog.
Future.delayed(
const Duration(milliseconds: 150),
() => showGenericErrorDialog(context: context),
() => showGenericErrorDialog(context: context, error: e),
);
rethrow;
}
@@ -238,7 +248,10 @@ class UserService {
}
} catch (e) {
_logger.severe(e);
await showGenericErrorDialog(context: context);
await showGenericErrorDialog(
context: context,
error: e,
);
return null;
}
}

View File

@@ -182,7 +182,6 @@ class _LoginPasswordVerificationPageState
await sendLogs(
context,
context.l10n.contactSupport,
"auth@ente.io",
postShare: () {},
);
}

View File

@@ -3,51 +3,64 @@ import 'package:ente_auth/l10n/l10n.dart';
import 'package:ente_auth/store/authenticator_db.dart';
import 'package:ente_auth/utils/dialog_util.dart';
import 'package:flutter/material.dart';
import 'package:logging/logging.dart';
bool showingLogoutDialog = false;
Future<void> autoLogoutAlert(BuildContext context) async {
final l10n = context.l10n;
final AlertDialog alert = AlertDialog(
title: Text(l10n.sessionExpired),
content: Text(l10n.pleaseLoginAgain),
actions: [
TextButton(
child: Text(
l10n.ok,
style: TextStyle(
color: Theme.of(context).colorScheme.primary,
if (showingLogoutDialog) {
debugPrint("Ignore event as already logging out");
return;
}
try {
showingLogoutDialog = true;
final l10n = context.l10n;
final AlertDialog alert = AlertDialog(
title: Text(l10n.sessionExpired),
content: Text(l10n.pleaseLoginAgain),
actions: [
TextButton(
child: Text(
l10n.ok,
style: TextStyle(
color: Theme.of(context).colorScheme.primary,
),
),
onPressed: () async {
Navigator.of(context, rootNavigator: true).pop('dialog');
Navigator.of(context).popUntil((route) => route.isFirst);
int pendingSyncCount =
await AuthenticatorDB.instance.getNeedSyncCount();
if (pendingSyncCount > 0) {
// ignore: unawaited_futures
showChoiceActionSheet(
context,
title: l10n.pendingSyncs,
body: l10n.pendingSyncsWarningBody,
firstButtonLabel: context.l10n.yesLogout,
isCritical: true,
firstButtonOnTap: () async {
await _logout(context, l10n);
},
);
} else {
await _logout(context, l10n);
}
},
),
onPressed: () async {
Navigator.of(context, rootNavigator: true).pop('dialog');
Navigator.of(context).popUntil((route) => route.isFirst);
int pendingSyncCount =
await AuthenticatorDB.instance.getNeedSyncCount();
if (pendingSyncCount > 0) {
// ignore: unawaited_futures
showChoiceActionSheet(
context,
title: l10n.pendingSyncs,
body: l10n.pendingSyncsWarningBody,
firstButtonLabel: context.l10n.yesLogout,
isCritical: true,
firstButtonOnTap: () async {
await _logout(context, l10n);
},
);
} else {
await _logout(context, l10n);
}
},
),
],
);
await showDialog(
context: context,
barrierDismissible: false,
builder: (BuildContext context) {
return alert;
},
);
],
);
await showDialog(
context: context,
barrierDismissible: false,
builder: (BuildContext context) {
return alert;
},
);
} catch (e) {
Logger("LogoutDialog").severe('failed to process sign out action', e);
} finally {
showingLogoutDialog = false;
}
}
Future<void> _logout(BuildContext context, AppLocalizations l10n) async {

View File

@@ -412,7 +412,10 @@ class _PasswordEntryPageState extends State<PasswordEntryPage> {
_logger.severe(e, s);
await dialog.hide();
// ignore: unawaited_futures
showGenericErrorDialog(context: context);
showGenericErrorDialog(
context: context,
error: e,
);
}
}
@@ -472,7 +475,10 @@ class _PasswordEntryPageState extends State<PasswordEntryPage> {
_logger.severe(e, s);
await dialog.hide();
// ignore: unawaited_futures
showGenericErrorDialog(context: context);
showGenericErrorDialog(
context: context,
error: e,
);
}
}
@@ -500,7 +506,10 @@ class _PasswordEntryPageState extends State<PasswordEntryPage> {
);
} else {
// ignore: unawaited_futures
showGenericErrorDialog(context: context);
showGenericErrorDialog(
context: context,
error: e,
);
}
}
}

View File

@@ -140,7 +140,6 @@ class _PasswordReentryPageState extends State<PasswordReentryPage> {
await sendLogs(
context,
context.l10n.contactSupport,
"support@ente.io",
postShare: () {},
);
}

View File

@@ -47,7 +47,10 @@ class _VerifyRecoveryPageState extends State<VerifyRecoveryPage> {
"Please check your internet connection and try again.",
);
} else {
await showGenericErrorDialog(context: context);
await showGenericErrorDialog(
context: context,
error: e,
);
}
return;
}
@@ -107,7 +110,10 @@ class _VerifyRecoveryPageState extends State<VerifyRecoveryPage> {
);
} catch (e) {
// ignore: unawaited_futures
showGenericErrorDialog(context: context);
showGenericErrorDialog(
context: context,
error: e,
);
return;
}
}

View File

@@ -1,9 +1,11 @@
import 'package:ente_auth/ente_theme_data.dart';
import 'package:ente_auth/l10n/l10n.dart';
import 'package:ente_auth/models/code.dart';
import 'package:ente_auth/theme/ente_theme.dart';
import 'package:ente_auth/ui/common/gradient_button.dart';
import 'package:ente_auth/ui/linear_progress_widget.dart';
import 'package:ente_auth/utils/dialog_util.dart';
import 'package:ente_auth/ui/tools/debug/raw_codes_viewer.dart';
import 'package:ente_auth/utils/email_util.dart';
import 'package:flutter/material.dart';
class CodeErrorWidget extends StatelessWidget {
@@ -12,7 +14,7 @@ class CodeErrorWidget extends StatelessWidget {
required this.errors,
});
final int errors;
final List<Code> errors;
@override
Widget build(BuildContext context) {
@@ -70,7 +72,7 @@ class CodeErrorWidget extends StatelessWidget {
Padding(
padding: const EdgeInsets.symmetric(horizontal: 8.0),
child: Text(
context.l10n.somethingWentWrongParsingCode(errors),
context.l10n.somethingWentWrongParsingCode(errors.length),
style: const TextStyle(
fontSize: 14,
fontWeight: FontWeight.w500,
@@ -78,29 +80,49 @@ class CodeErrorWidget extends StatelessWidget {
),
),
const Spacer(),
Row(
mainAxisAlignment: MainAxisAlignment.end,
children: [
SizedBox(
width: 102,
height: 28,
child: GradientButton(
text: context.l10n.contactSupport,
fontSize: 10,
onTap: () async {
await showErrorDialog(
context,
context.l10n.contactSupport,
context.l10n
.contactSupportViaEmailMessage("support@ente.io"),
);
},
borderWidth: 0.6,
borderRadius: 6,
Align(
alignment: Alignment.centerRight,
child: Wrap(
children: [
SizedBox(
width: 102,
height: 28,
child: GradientButton(
text: context.l10n.viewRawCodes,
fontSize: 10,
onTap: () async {
await showDialog(
context: context,
builder: (BuildContext context) {
return RawCodesViewer(
errors.map((e) => e.rawData).join('\n'),
);
},
barrierColor: Colors.black87,
barrierDismissible: false,
);
},
borderWidth: 0.6,
borderRadius: 6,
),
),
),
const SizedBox(width: 6),
],
const SizedBox(width: 12),
SizedBox(
width: 102,
height: 28,
child: GradientButton(
text: context.l10n.contactSupport,
fontSize: 10,
onTap: () async {
await openSupportPage(null, null);
},
borderWidth: 0.6,
borderRadius: 6,
),
),
const SizedBox(width: 6),
],
),
),
const SizedBox(height: 12),
],

View File

@@ -22,7 +22,6 @@ PopupMenuButton<dynamic> reportBugPopupMenu(BuildContext context) {
await sendLogs(
context,
"Contact support",
"support@ente.io",
postShare: () {},
);
}

View File

@@ -485,7 +485,10 @@ class _ButtonChildWidgetState extends State<ButtonChildWidget> {
} else if (exception != null) {
//This is to show the execution was unsuccessful if the dialog is manually
//closed before the execution completes.
showGenericErrorDialog(context: context);
showGenericErrorDialog(
context: context,
error: exception,
);
}
}

View File

@@ -6,6 +6,7 @@ import 'package:ente_auth/ui/components/separators.dart';
import 'package:ente_auth/utils/debouncer.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:logging/logging.dart';
class TextInputWidget extends StatefulWidget {
final String? label;
@@ -58,6 +59,7 @@ class TextInputWidget extends StatefulWidget {
}
class _TextInputWidgetState extends State<TextInputWidget> {
final _logger = Logger("TextInputWidget");
ExecutionState executionState = ExecutionState.idle;
final _textController = TextEditingController();
final _debouncer = Debouncer(const Duration(milliseconds: 300));
@@ -66,7 +68,7 @@ class _TextInputWidgetState extends State<TextInputWidget> {
///This is to pass if the TextInputWidget is in a dialog and an error is
///thrown in executing onSubmit by passing it as arg in Navigator.pop()
Exception? _exception;
bool _incorrectPassword = false;
@override
void initState() {
widget.submitNotifier?.addListener(_onSubmit);
@@ -138,7 +140,11 @@ class _TextInputWidgetState extends State<TextInputWidget> {
borderSide: BorderSide.none,
),
focusedBorder: OutlineInputBorder(
borderSide: BorderSide(color: colorScheme.strokeFaint),
borderSide: BorderSide(
color: _incorrectPassword
? const Color.fromRGBO(245, 42, 42, 1)
: colorScheme.strokeFaint,
),
borderRadius: BorderRadius.circular(8),
),
suffixIcon: Padding(
@@ -233,6 +239,10 @@ class _TextInputWidgetState extends State<TextInputWidget> {
executionState = ExecutionState.error;
_debouncer.cancelDebounce();
_exception = e as Exception;
if (e.toString().contains("Incorrect password")) {
_logger.warning("Incorrect password");
_surfaceWrongPasswordState();
}
if (!widget.popNavAfterSubmission) {
rethrow;
}
@@ -306,6 +316,20 @@ class _TextInputWidgetState extends State<TextInputWidget> {
void _popNavigatorStack(BuildContext context, {Exception? e}) {
Navigator.of(context).canPop() ? Navigator.of(context).pop(e) : null;
}
void _surfaceWrongPasswordState() {
setState(() {
_incorrectPassword = true;
HapticFeedback.vibrate();
Future.delayed(const Duration(seconds: 1), () {
if (mounted) {
setState(() {
_incorrectPassword = false;
});
}
});
});
}
}
//todo: Add clear and custom icon for suffic icon

View File

@@ -56,7 +56,8 @@ class _HomePageState extends State<HomePage> {
final scaffoldKey = GlobalKey<ScaffoldState>();
final TextEditingController _textController = TextEditingController();
final FocusNode searchInputFocusNode = FocusNode();
final bool _autoFocusSearch =
PreferenceService.instance.shouldAutoFocusOnSearchBar();
bool _showSearchBox = false;
String _searchText = "";
List<Code>? _allCodes;
@@ -87,18 +88,7 @@ class _HomePageState extends State<HomePage> {
_iconsChangedEvent = Bus.instance.on<IconsChangedEvent>().listen((event) {
setState(() {});
});
_showSearchBox = PreferenceService.instance.shouldAutoFocusOnSearchBar();
if (_showSearchBox) {
WidgetsBinding.instance.addPostFrameCallback(
(_) {
// https://github.com/flutter/flutter/issues/20706#issuecomment-646328652
FocusScope.of(context).unfocus();
Timer(const Duration(milliseconds: 1), () {
FocusScope.of(context).requestFocus(searchInputFocusNode);
});
},
);
}
_showSearchBox = _autoFocusSearch;
}
void _loadCodes() {
@@ -240,8 +230,7 @@ class _HomePageState extends State<HomePage> {
: TextField(
autocorrect: false,
enableSuggestions: false,
focusNode: searchInputFocusNode,
autofocus: _searchText.isEmpty,
autofocus: _autoFocusSearch,
controller: _textController,
onChanged: (val) {
_searchText = val;
@@ -359,8 +348,8 @@ class _HomePageState extends State<HomePage> {
return CodeErrorWidget(
errors: _allCodes
?.where((element) => element.hasError)
.length ??
0,
.toList() ??
[],
);
}
final newIndex = index - indexOffset;
@@ -460,7 +449,10 @@ class _HomePageState extends State<HomePage> {
CodeStore.instance.addCode(newCode);
_focusNewCode(newCode);
} catch (e, s) {
showGenericErrorDialog(context: context);
showGenericErrorDialog(
context: context,
error: e,
);
_logger.severe("error while handling deeplink", e, s);
}
}

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