From d854d5820eb0f2282220ead177559405c98b4a25 Mon Sep 17 00:00:00 2001 From: Crowdin Bot Date: Mon, 27 May 2024 12:17:06 +0000 Subject: [PATCH 01/13] New Crowdin translations by GitHub Action --- .../metadata/playstore/fr/full_description.txt | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/mobile/fastlane/metadata/playstore/fr/full_description.txt b/mobile/fastlane/metadata/playstore/fr/full_description.txt index 9a7f5975eb..07ff21f85f 100644 --- a/mobile/fastlane/metadata/playstore/fr/full_description.txt +++ b/mobile/fastlane/metadata/playstore/fr/full_description.txt @@ -1,30 +1,30 @@ -Entre est une application simple qui sauvegarde et organisé vos photos et vidéos. +Entre est une application simple qui sauvegarde et organise vos photos et vidéos. -Si vous recherchez une alternative respectueuse de la vie privée pour préserver vos souvenirs, vous êtes au bon endroit. Avec Ente, ils sont stockés chiffrés de bout-en-bout (e2ee). Cela signifie que vous-seul pouvez les voir. +Si vous recherchez une alternative respectueuse de votre vie privée pour préserver vos souvenirs, vous êtes au bon endroit. Avec Ente, ils sont stockés chiffrés de bout-en-bout (e2ee). Cela signifie que vous-seul pouvez les voir. -Nous avons des applications sur Android, iOS, Web et Ordinateur, et vos photos seront synchronisées de manière transparente entre tous vos appareils chiffrée de bout en bout (e2ee). +Nous avons des applications pour Android, iOS, Web et Ordinateur, et vos photos seront synchronisées de manière transparente entre tous vos appareils avec une méthode de chiffrement de bout en bout (e2ee). Ente vous permet également de partager vos albums avec vos proches. Vous pouvez soit les partager directement avec d'autres utilisateurs Ente, chiffrés de bout en bout ou avec des liens visibles publiquement. -Vos données chiffrées sont stockées à travers de multiples endroits, dont un abri antiatomique à Paris. Nous prenons la postérité au sérieux et facilitons la conservation de vos souvenirs. +Vos données chiffrées sont stockées dans de multiples endroits, dont un abri antiatomique à Paris. Nous prenons la postérité au sérieux et facilitons la conservation de vos souvenirs. Nous sommes là pour faire l'application photo la plus sûre de tous les temps, rejoignez-nous ! ✨ CARACTÉRISTIQUES -- Sauvegardes de qualité originales, car chaque pixel est important +- Sauvegardes en qualité originale, car chaque pixel est important - Abonnement familiaux, pour que vous puissiez partager l'espace de stockage avec votre famille - Dossiers partagés, si vous voulez que votre partenaire profite de vos clichés -- Liens ves les albums qui peuvent être protégés par un mot de passe et être configurés pour expirer +- Liens vers les albums, qui peuvent être protégés par un mot de passe et être configurés pour expirer - Possibilité de libérer de l'espace en supprimant les fichiers qui ont été sauvegardés en toute sécurité - Éditeur d'images, pour ajouter des touches de finition -- Favoriser, cacher et revivre vos souvenirs, car ils sont précieux +- Favoris, cacher et revivre vos souvenirs, car ils sont précieux - Importation en un clic depuis Google, Apple, votre disque dur et plus encore - Thème sombre, parce que vos photos y sont jolies - 2FA, 3FA, authentification biométrique - et beaucoup de choses encore ! 💲 PRIX -Nous ne proposons pas d'abonnement gratuits pour toujours, car il est important pour nous de rester durables et de résister à l'épreuve du temps. Au lieu de cela, nous vous proposons des abonnements abordables que vous pouvez partager librement avec votre famille. Vous pouvez trouver plus d'informations sur ente.io. +Nous ne proposons pas d'abonnements gratuits à vie, car il est important pour nous de rester pérenne et de résister à l'épreuve du temps. Au lieu de cela, nous vous proposons des abonnements abordables que vous pouvez partager librement avec votre famille. Vous pouvez trouver plus d'informations sur ente.io. 🙋 ASSISTANCE Nous sommes fiers d'offrir un support humain. Si vous êtes un abonné, vous pouvez contacter team@ente.io et vous recevrez une réponse de notre équipe dans les 24 heures. \ No newline at end of file From c291fa70d32b4ab8e0405af967f12fc99c16ecd3 Mon Sep 17 00:00:00 2001 From: Neeraj Gupta <254676+ua741@users.noreply.github.com> Date: Mon, 27 May 2024 18:12:21 +0530 Subject: [PATCH 02/13] Wrap add person name banner inside safeArea --- mobile/lib/ui/viewer/people/cluster_page.dart | 74 ++++++++++--------- 1 file changed, 38 insertions(+), 36 deletions(-) diff --git a/mobile/lib/ui/viewer/people/cluster_page.dart b/mobile/lib/ui/viewer/people/cluster_page.dart index f6b720f023..ef069887f9 100644 --- a/mobile/lib/ui/viewer/people/cluster_page.dart +++ b/mobile/lib/ui/viewer/people/cluster_page.dart @@ -161,43 +161,45 @@ class _ClusterPageState extends State { ), ), showNamingBanner - ? Dismissible( - key: const Key("namingBanner"), - direction: DismissDirection.horizontal, - onDismissed: (direction) { - setState(() { - userDismissedNamingBanner = true; - }); - }, - child: PeopleBanner( - type: PeopleBannerType.addName, - faceWidget: PersonFaceWidget( - files.first, - clusterID: widget.clusterID, - ), - actionIcon: Icons.add_outlined, - text: S.of(context).addAName, - subText: S.of(context).findPeopleByName, - onTap: () async { - if (widget.personID == null) { - final result = await showAssignPersonAction( - context, - clusterID: widget.clusterID, - ); - if (result != null && - result is (PersonEntity, EnteFile)) { - Navigator.pop(context); - // ignore: unawaited_futures - routeToPage(context, PeoplePage(person: result.$1)); - } else if (result != null && result is PersonEntity) { - Navigator.pop(context); - // ignore: unawaited_futures - routeToPage(context, PeoplePage(person: result)); - } - } else { - showShortToast(context, "No personID or clusterID"); - } + ? SafeArea( + child: Dismissible( + key: const Key("namingBanner"), + direction: DismissDirection.horizontal, + onDismissed: (direction) { + setState(() { + userDismissedNamingBanner = true; + }); }, + child: PeopleBanner( + type: PeopleBannerType.addName, + faceWidget: PersonFaceWidget( + files.first, + clusterID: widget.clusterID, + ), + actionIcon: Icons.add_outlined, + text: S.of(context).addAName, + subText: S.of(context).findPeopleByName, + onTap: () async { + if (widget.personID == null) { + final result = await showAssignPersonAction( + context, + clusterID: widget.clusterID, + ); + if (result != null && + result is (PersonEntity, EnteFile)) { + Navigator.pop(context); + // ignore: unawaited_futures + routeToPage(context, PeoplePage(person: result.$1)); + } else if (result != null && result is PersonEntity) { + Navigator.pop(context); + // ignore: unawaited_futures + routeToPage(context, PeoplePage(person: result)); + } + } else { + showShortToast(context, "No personID or clusterID"); + } + }, + ), ), ) : const SizedBox.shrink(), From e90eb50a5005e07b100f0541bff70514ff8beb88 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Mon, 27 May 2024 11:15:58 +0530 Subject: [PATCH 03/13] [desktop] Code sign on Windows --- desktop/.github/workflows/desktop-release.yml | 38 ++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/desktop/.github/workflows/desktop-release.yml b/desktop/.github/workflows/desktop-release.yml index 70eedf3ea6..5c54c2c33f 100644 --- a/desktop/.github/workflows/desktop-release.yml +++ b/desktop/.github/workflows/desktop-release.yml @@ -54,8 +54,16 @@ jobs: # https://github.com/electron-userland/electron-builder/issues/4181 run: sudo apt-get install libarchive-tools - - name: Build + - name: Export Windows code signing certificate + if: startsWith(matrix.os, 'windows') + run: echo "$CSC_LINK_PFX_B64" | base64 -d > windows-csc.pfx + shell: bash + env: + CSC_LINK_PFX_B64: ${{ secrets.WINDOWS_CSC_LINK_PFX_B64 }} + + - name: Build Linux uses: ente-io/action-electron-builder@v1.0.0 + if: startsWith(matrix.os, 'ubuntu') with: package_root: desktop build_script_name: build:ci @@ -68,6 +76,19 @@ jobs: # create a (draft) release after building. Otherwise upload # assets to the existing draft named after the version. release: ${{ startsWith(github.ref, 'refs/tags/v') }} + env: + # Workaround recommended in + # https://github.com/electron-userland/electron-builder/issues/3179 + USE_HARD_LINKS: false + + - name: Build macOS + uses: ente-io/action-electron-builder@v1.0.0 + if: startsWith(matrix.os, 'macos') + with: + package_root: desktop + build_script_name: build:ci + github_token: ${{ secrets.GITHUB_TOKEN }} + release: ${{ startsWith(github.ref, 'refs/tags/v') }} mac_certs: ${{ secrets.MAC_CERTS }} mac_certs_password: ${{ secrets.MAC_CERTS_PASSWORD }} @@ -78,3 +99,18 @@ jobs: ${{ secrets.APPLE_APP_SPECIFIC_PASSWORD }} APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }} USE_HARD_LINKS: false + + - name: Build Windows + uses: ente-io/action-electron-builder@v1.0.0 + if: startsWith(matrix.os, 'windows') + with: + package_root: desktop + build_script_name: build:ci + github_token: ${{ secrets.GITHUB_TOKEN }} + release: ${{ startsWith(github.ref, 'refs/tags/v') }} + env: + # Windows signing credentials + # https://www.electron.build/code-signing + CSC_LINK: "windows-csc.pfx" + CSC_KEY_PASSWORD: ${{ secrets.WINDOWS_CSC_KEY_PASSWORD }} + USE_HARD_LINKS: false From 3d122b9f9de40d165be3269ec3113e3f108e97ab Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Mon, 27 May 2024 15:49:55 +0530 Subject: [PATCH 04/13] Add publisher > no certificates with ExtKeyUsageCodeSigning Cannot extract publisher name from code signing certificate. As workaround, set win.publisherName. --- desktop/electron-builder.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/desktop/electron-builder.yml b/desktop/electron-builder.yml index c2c000ce9f..0412cdecff 100644 --- a/desktop/electron-builder.yml +++ b/desktop/electron-builder.yml @@ -7,6 +7,8 @@ extraFiles: - from: build to: resources win: + # prettier-ignore + publisherName: "C=US, ST=Delaware, L=Dover, O=Ente Technologies, Inc., CN=Ente, emailAddress=code@ente.io" target: - target: nsis arch: [x64, arm64] From 03bc8f0493da3bf2388145abbf9e44424be4a4f1 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Mon, 27 May 2024 15:54:27 +0530 Subject: [PATCH 05/13] Let prettier have a go at it > Example 7.5 Double Quoted Line Breaks > All leading and trailing white space characters on each line are excluded from the content. > > https://yaml.org/spec/1.2.2/ --- desktop/electron-builder.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/desktop/electron-builder.yml b/desktop/electron-builder.yml index 0412cdecff..aab8d0effb 100644 --- a/desktop/electron-builder.yml +++ b/desktop/electron-builder.yml @@ -7,8 +7,9 @@ extraFiles: - from: build to: resources win: - # prettier-ignore - publisherName: "C=US, ST=Delaware, L=Dover, O=Ente Technologies, Inc., CN=Ente, emailAddress=code@ente.io" + publisherName: + "C=US, ST=Delaware, L=Dover, O=Ente Technologies, Inc., CN=Ente, + emailAddress=code@ente.io" target: - target: nsis arch: [x64, arm64] From bed57eb03e03e403d06d182b110a7bba10eba25b Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Mon, 27 May 2024 20:15:50 +0530 Subject: [PATCH 06/13] Fix the actual issue (the signing thing was a red herring) --- desktop/src/main.ts | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/desktop/src/main.ts b/desktop/src/main.ts index 463774dc2b..a5abc26271 100644 --- a/desktop/src/main.ts +++ b/desktop/src/main.ts @@ -322,6 +322,13 @@ const setupTrayItem = (mainWindow: BrowserWindow) => { * once most people have upgraded to newer versions. */ const deleteLegacyDiskCacheDirIfExists = async () => { + const removeIfExists = async (dirPath: string) => { + if (existsSync(dirPath)) { + log.info(`Removing legacy disk cache from ${dirPath}`); + await fs.rm(dirPath, { recursive: true }); + } + }; + // [Note: Getting the cache path] // // The existing code was passing "cache" as a parameter to getPath. @@ -338,9 +345,18 @@ const deleteLegacyDiskCacheDirIfExists = async () => { // // @ts-expect-error "cache" works but is not part of the public API. const cacheDir = path.join(app.getPath("cache"), "ente"); - if (existsSync(cacheDir)) { - log.info(`Removing legacy disk cache from ${cacheDir}`); - await fs.rm(cacheDir, { recursive: true }); + if (process.platform == "win32") { + // On Windows the cache dir is the same as the app data (!). So deleting + // the ente subfolder of the cache dir is equivalent to deleting the + // user data dir. + // + // Obviously, that's not good. So instead of Windows we explicitly + // delete the named cache directories. + await removeIfExists(path.join(cacheDir, "thumbs")); + await removeIfExists(path.join(cacheDir, "files")); + await removeIfExists(path.join(cacheDir, "face-crops")); + } else { + await removeIfExists(cacheDir); } }; From 69e2a36933f8e2c9e4a482f368f60c23d4341c00 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Mon, 27 May 2024 20:16:57 +0530 Subject: [PATCH 07/13] Revert "[desktop] Code sign on Windows" This reverts commit 7e6b75004026f24cc340bc5da806fbe8fc20e6c8 and its never siblings. Retaining them in git history though. --- desktop/.github/workflows/desktop-release.yml | 38 +------------------ desktop/electron-builder.yml | 3 -- 2 files changed, 1 insertion(+), 40 deletions(-) diff --git a/desktop/.github/workflows/desktop-release.yml b/desktop/.github/workflows/desktop-release.yml index 5c54c2c33f..70eedf3ea6 100644 --- a/desktop/.github/workflows/desktop-release.yml +++ b/desktop/.github/workflows/desktop-release.yml @@ -54,16 +54,8 @@ jobs: # https://github.com/electron-userland/electron-builder/issues/4181 run: sudo apt-get install libarchive-tools - - name: Export Windows code signing certificate - if: startsWith(matrix.os, 'windows') - run: echo "$CSC_LINK_PFX_B64" | base64 -d > windows-csc.pfx - shell: bash - env: - CSC_LINK_PFX_B64: ${{ secrets.WINDOWS_CSC_LINK_PFX_B64 }} - - - name: Build Linux + - name: Build uses: ente-io/action-electron-builder@v1.0.0 - if: startsWith(matrix.os, 'ubuntu') with: package_root: desktop build_script_name: build:ci @@ -76,19 +68,6 @@ jobs: # create a (draft) release after building. Otherwise upload # assets to the existing draft named after the version. release: ${{ startsWith(github.ref, 'refs/tags/v') }} - env: - # Workaround recommended in - # https://github.com/electron-userland/electron-builder/issues/3179 - USE_HARD_LINKS: false - - - name: Build macOS - uses: ente-io/action-electron-builder@v1.0.0 - if: startsWith(matrix.os, 'macos') - with: - package_root: desktop - build_script_name: build:ci - github_token: ${{ secrets.GITHUB_TOKEN }} - release: ${{ startsWith(github.ref, 'refs/tags/v') }} mac_certs: ${{ secrets.MAC_CERTS }} mac_certs_password: ${{ secrets.MAC_CERTS_PASSWORD }} @@ -99,18 +78,3 @@ jobs: ${{ secrets.APPLE_APP_SPECIFIC_PASSWORD }} APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }} USE_HARD_LINKS: false - - - name: Build Windows - uses: ente-io/action-electron-builder@v1.0.0 - if: startsWith(matrix.os, 'windows') - with: - package_root: desktop - build_script_name: build:ci - github_token: ${{ secrets.GITHUB_TOKEN }} - release: ${{ startsWith(github.ref, 'refs/tags/v') }} - env: - # Windows signing credentials - # https://www.electron.build/code-signing - CSC_LINK: "windows-csc.pfx" - CSC_KEY_PASSWORD: ${{ secrets.WINDOWS_CSC_KEY_PASSWORD }} - USE_HARD_LINKS: false diff --git a/desktop/electron-builder.yml b/desktop/electron-builder.yml index aab8d0effb..c2c000ce9f 100644 --- a/desktop/electron-builder.yml +++ b/desktop/electron-builder.yml @@ -7,9 +7,6 @@ extraFiles: - from: build to: resources win: - publisherName: - "C=US, ST=Delaware, L=Dover, O=Ente Technologies, Inc., CN=Ente, - emailAddress=code@ente.io" target: - target: nsis arch: [x64, arm64] From 0f502eb9c28d1bdde6ffe252db6ab00da15ba6c8 Mon Sep 17 00:00:00 2001 From: Griffin Wiebel Date: Mon, 27 May 2024 11:59:57 -0700 Subject: [PATCH 08/13] Create a custom icon for YNAB --- .../custom-icons/_data/custom-icons.json | 8 ++++++++ auth/assets/custom-icons/icons/ynab.svg | 20 +++++++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 auth/assets/custom-icons/icons/ynab.svg diff --git a/auth/assets/custom-icons/_data/custom-icons.json b/auth/assets/custom-icons/_data/custom-icons.json index 3e8f8ce679..103d59416b 100644 --- a/auth/assets/custom-icons/_data/custom-icons.json +++ b/auth/assets/custom-icons/_data/custom-icons.json @@ -412,6 +412,14 @@ "Яндекс" ], "slug": "Yandex" + }, + { + "title": "YNAB", + "altNames": [ + "You Need A Budget" + ], + "slug": "ynab", + "hex": "3B5EDA" } ] } \ No newline at end of file diff --git a/auth/assets/custom-icons/icons/ynab.svg b/auth/assets/custom-icons/icons/ynab.svg new file mode 100644 index 0000000000..4ddfc9fa07 --- /dev/null +++ b/auth/assets/custom-icons/icons/ynab.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + From eaaa26c2e32bf6f4a2114db8aed2103ee3b541c6 Mon Sep 17 00:00:00 2001 From: Xeiv Date: Tue, 28 May 2024 01:14:34 +0530 Subject: [PATCH 09/13] [auth] Create a custom icon for RuneMate --- auth/assets/custom-icons/_data/custom-icons.json | 4 ++++ auth/assets/custom-icons/icons/runemate.svg | 8 ++++++++ 2 files changed, 12 insertions(+) create mode 100644 auth/assets/custom-icons/icons/runemate.svg diff --git a/auth/assets/custom-icons/_data/custom-icons.json b/auth/assets/custom-icons/_data/custom-icons.json index 3e8f8ce679..88acd244bf 100644 --- a/auth/assets/custom-icons/_data/custom-icons.json +++ b/auth/assets/custom-icons/_data/custom-icons.json @@ -302,6 +302,10 @@ "title": "Rockstar Games", "slug": "rockstar_games" }, + { + "title": "RuneMate", + "hex": "2ECC71" + }, { "title": "Rust Language Forum", "slug": "rust_language_forum", diff --git a/auth/assets/custom-icons/icons/runemate.svg b/auth/assets/custom-icons/icons/runemate.svg new file mode 100644 index 0000000000..1855afb8d2 --- /dev/null +++ b/auth/assets/custom-icons/icons/runemate.svg @@ -0,0 +1,8 @@ + + + + + + + + From 321ae0b7fc5d985ca8fceb84604960913e84f2c0 Mon Sep 17 00:00:00 2001 From: Crowdin Bot Date: Tue, 28 May 2024 01:42:06 +0000 Subject: [PATCH 10/13] New Crowdin translations by GitHub Action --- .../next/locales/pt-BR/translation.json | 2 +- .../next/locales/sv-SE/translation.json | 160 +++++++++--------- 2 files changed, 81 insertions(+), 81 deletions(-) diff --git a/web/packages/next/locales/pt-BR/translation.json b/web/packages/next/locales/pt-BR/translation.json index ac353e9f9f..006aad0183 100644 --- a/web/packages/next/locales/pt-BR/translation.json +++ b/web/packages/next/locales/pt-BR/translation.json @@ -315,7 +315,7 @@ "TRASH": "Lixeira", "MOVE_TO_TRASH": "Mover para a lixeira", "TRASH_FILES_MESSAGE": "Os itens selecionados serão excluídos de todos os álbuns e movidos para a lixeira.", - "TRASH_FILE_MESSAGE": "Os itens selecionados serão excluídos de todos os álbuns e movidos para o lixo.", + "TRASH_FILE_MESSAGE": "O item será removido de todos os álbuns e movido para a lixeira.", "DELETE_PERMANENTLY": "Excluir permanentemente", "RESTORE": "Restaurar", "RESTORE_TO_COLLECTION": "Restaurar para álbum", diff --git a/web/packages/next/locales/sv-SE/translation.json b/web/packages/next/locales/sv-SE/translation.json index 3c6adfb1ba..758d0ee314 100644 --- a/web/packages/next/locales/sv-SE/translation.json +++ b/web/packages/next/locales/sv-SE/translation.json @@ -1,65 +1,65 @@ { - "HERO_SLIDE_1_TITLE": "", - "HERO_SLIDE_1": "", + "HERO_SLIDE_1_TITLE": "
Privata säkerhetskopior
för dina minnen
", + "HERO_SLIDE_1": "Totalsträckskryptering som standard", "HERO_SLIDE_2_TITLE": "", - "HERO_SLIDE_2": "", - "HERO_SLIDE_3_TITLE": "", - "HERO_SLIDE_3": "", - "LOGIN": "", - "SIGN_UP": "", + "HERO_SLIDE_2": "Utformad för att överleva", + "HERO_SLIDE_3_TITLE": "
Tillgänglig
överallt
", + "HERO_SLIDE_3": "Android, iOS, webb, skrivbord", + "LOGIN": "Logga in", + "SIGN_UP": "Registrera", "NEW_USER": "", - "EXISTING_USER": "", + "EXISTING_USER": "Befintlig användare", "ENTER_NAME": "Ange namn", - "PUBLIC_UPLOADER_NAME_MESSAGE": "", + "PUBLIC_UPLOADER_NAME_MESSAGE": "Lägg till ett namn så att dina vänner vet vem de ska tacka för dessa fantastiska bilder!", "ENTER_EMAIL": "Ange e-postadress", "EMAIL_ERROR": "Ange en giltig e-postadress", - "REQUIRED": "", - "EMAIL_SENT": "", - "CHECK_INBOX": "", - "ENTER_OTT": "", - "RESEND_MAIL": "", - "VERIFY": "", - "UNKNOWN_ERROR": "", - "INVALID_CODE": "", - "EXPIRED_CODE": "", - "SENDING": "", - "SENT": "", + "REQUIRED": "Obligatoriskt", + "EMAIL_SENT": "Verifikationskoden skickad till {{email}}", + "CHECK_INBOX": "Kontrollera din inkorg (och skräppost) för att slutföra verifieringen", + "ENTER_OTT": "Verifieringskod", + "RESEND_MAIL": "Skicka kod igen", + "VERIFY": "Bekräfta", + "UNKNOWN_ERROR": "Något gick fel, vänligen försök igen", + "INVALID_CODE": "Ogiltig verifieringskod", + "EXPIRED_CODE": "Din verifieringskod har löpt ut", + "SENDING": "Skickar...", + "SENT": "Skickat!", "PASSWORD": "Lösenord", - "LINK_PASSWORD": "", + "LINK_PASSWORD": "Ange lösenord för att låsa upp albumet", "RETURN_PASSPHRASE_HINT": "Lösenord", - "SET_PASSPHRASE": "", + "SET_PASSPHRASE": "Välj lösenord", "VERIFY_PASSPHRASE": "Logga in", - "INCORRECT_PASSPHRASE": "", - "ENTER_ENC_PASSPHRASE": "", - "PASSPHRASE_DISCLAIMER": "", + "INCORRECT_PASSPHRASE": "Felaktigt lösenord", + "ENTER_ENC_PASSPHRASE": "Ange ett lösenord som vi kan använda för att kryptera din data", + "PASSPHRASE_DISCLAIMER": "Vi lagrar inte ditt lösenord, så om du glömmer det, vi kommer inte att kunna hjälpa dig återställa dina data utan en återställningsnyckel.", "WELCOME_TO_ENTE_HEADING": "Välkommen till ", - "WELCOME_TO_ENTE_SUBHEADING": "", - "WHERE_YOUR_BEST_PHOTOS_LIVE": "", - "KEY_GENERATION_IN_PROGRESS_MESSAGE": "", + "WELCOME_TO_ENTE_SUBHEADING": "Totalsträckskrypterad lagring och delning av foton", + "WHERE_YOUR_BEST_PHOTOS_LIVE": "Där dina bästa bilder bor", + "KEY_GENERATION_IN_PROGRESS_MESSAGE": "Skapar krypteringsnycklar...", "PASSPHRASE_HINT": "Lösenord", "CONFIRM_PASSPHRASE": "Bekräfta lösenord", - "REFERRAL_CODE_HINT": "", - "REFERRAL_INFO": "", + "REFERRAL_CODE_HINT": "Hur hörde du talas om Ente? (valfritt)", + "REFERRAL_INFO": "Vi spårar inte appinstallationer, Det skulle hjälpa oss om du berättade var du hittade oss!", "PASSPHRASE_MATCH_ERROR": "Lösenorden matchar inte", - "CREATE_COLLECTION": "", - "ENTER_ALBUM_NAME": "", - "CLOSE_OPTION": "", + "CREATE_COLLECTION": "Nytt album", + "ENTER_ALBUM_NAME": "Albumnamn", + "CLOSE_OPTION": "Stäng (Esc)", "ENTER_FILE_NAME": "Filnamn", "CLOSE": "Stäng", "NO": "Nej", - "NOTHING_HERE": "", - "UPLOAD": "", - "IMPORT": "", - "ADD_PHOTOS": "", - "ADD_MORE_PHOTOS": "", - "add_photos_one": "", - "add_photos_other": "", - "SELECT_PHOTOS": "", - "FILE_UPLOAD": "", + "NOTHING_HERE": "Inget att se här ännu 👀", + "UPLOAD": "Ladda upp", + "IMPORT": "Importera", + "ADD_PHOTOS": "Lägg till bilder", + "ADD_MORE_PHOTOS": "Lägg till fler bilder", + "add_photos_one": "Lägg till ett (1) objekt", + "add_photos_other": "Lägg till {{count, number}} objekt", + "SELECT_PHOTOS": "Välj bilder", + "FILE_UPLOAD": "Ladda upp", "UPLOAD_STAGE_MESSAGE": { - "0": "", - "1": "", - "2": "", + "0": "Förbereder att ladda upp", + "1": "Läser Google metadatafiler", + "2": "Metadata för {{uploadCounter.finished, number}} / {{uploadCounter.total, number}} filer extraherat", "3": "", "4": "", "5": "" @@ -114,11 +114,11 @@ "RECOVER_KEY_GENERATION_FAILED": "", "KEY_NOT_STORED_DISCLAIMER": "", "FORGOT_PASSWORD": "Glömt lösenord", - "RECOVER_ACCOUNT": "", - "RECOVERY_KEY_HINT": "", - "RECOVER": "", + "RECOVER_ACCOUNT": "Återställ konto", + "RECOVERY_KEY_HINT": "Återställningsnyckel", + "RECOVER": "Återställ", "NO_RECOVERY_KEY": "Ingen återställningsnyckel?", - "INCORRECT_RECOVERY_KEY": "", + "INCORRECT_RECOVERY_KEY": "Felaktig återställningsnyckel", "SORRY": "", "NO_RECOVERY_KEY_MESSAGE": "", "NO_TWO_FACTOR_RECOVERY_KEY_MESSAGE": "", @@ -140,12 +140,12 @@ "DOWNLOAD_APP_MESSAGE": "", "DOWNLOAD_APP": "", "EXPORT": "", - "SUBSCRIPTION": "", + "SUBSCRIPTION": "Prenumeration", "SUBSCRIBE": "Prenumerera", "MANAGEMENT_PORTAL": "Hantera betalningsmetod", "MANAGE_FAMILY_PORTAL": "", "LEAVE_FAMILY_PLAN": "", - "LEAVE": "", + "LEAVE": "Lämna", "LEAVE_FAMILY_CONFIRM": "", "CHOOSE_PLAN": "", "MANAGE_PLAN": "Hantera din prenumeration", @@ -179,7 +179,7 @@ "REACTIVATE_SUBSCRIPTION_MESSAGE": "", "SUBSCRIPTION_ACTIVATE_SUCCESS": "", "SUBSCRIPTION_ACTIVATE_FAILED": "", - "SUBSCRIPTION_PURCHASE_SUCCESS_TITLE": "", + "SUBSCRIPTION_PURCHASE_SUCCESS_TITLE": "Tack", "CANCEL_SUBSCRIPTION_ON_MOBILE": "", "CANCEL_SUBSCRIPTION_ON_MOBILE_MESSAGE": "", "MAIL_TO_MANAGE_SUBSCRIPTION": "", @@ -191,7 +191,7 @@ "DELETE_COLLECTION_MESSAGE": "", "DELETE_PHOTOS": "", "KEEP_PHOTOS": "", - "SHARE_COLLECTION": "", + "SHARE_COLLECTION": "Dela album", "SHARE_WITH_SELF": "", "ALREADY_SHARED": "", "SHARING_BAD_REQUEST_ERROR": "", @@ -230,10 +230,10 @@ "INFO": "", "INFO_OPTION": "", "FILE_NAME": "", - "CAPTION_PLACEHOLDER": "", + "CAPTION_PLACEHOLDER": "Lägg till en beskrivning", "LOCATION": "", "SHOW_ON_MAP": "", - "MAP": "", + "MAP": "Karta", "MAP_SETTINGS": "", "ENABLE_MAPS": "", "ENABLE_MAP": "", @@ -247,23 +247,23 @@ "EXIF": "", "ISO": "", "TWO_FACTOR": "", - "TWO_FACTOR_AUTHENTICATION": "", + "TWO_FACTOR_AUTHENTICATION": "Tvåfaktorsautentisering", "TWO_FACTOR_QR_INSTRUCTION": "", "ENTER_CODE_MANUALLY": "", "TWO_FACTOR_MANUAL_CODE_INSTRUCTION": "", "SCAN_QR_CODE": "", "ENABLE_TWO_FACTOR": "", - "ENABLE": "", + "ENABLE": "Aktivera", "LOST_DEVICE": "", - "INCORRECT_CODE": "", + "INCORRECT_CODE": "Felaktig kod", "TWO_FACTOR_INFO": "", - "DISABLE_TWO_FACTOR_LABEL": "", + "DISABLE_TWO_FACTOR_LABEL": "Inaktivera tvåfaktorsautentisering", "UPDATE_TWO_FACTOR_LABEL": "", - "DISABLE": "", + "DISABLE": "Inaktivera", "RECONFIGURE": "", "UPDATE_TWO_FACTOR": "", "UPDATE_TWO_FACTOR_MESSAGE": "", - "UPDATE": "", + "UPDATE": "Uppdatera", "DISABLE_TWO_FACTOR": "", "DISABLE_TWO_FACTOR_MESSAGE": "", "TWO_FACTOR_DISABLE_FAILED": "", @@ -298,7 +298,7 @@ "UPLOAD_TO_COLLECTION": "", "UNCATEGORIZED": "", "ARCHIVE": "", - "FAVORITES": "", + "FAVORITES": "Favoriter", "ARCHIVE_COLLECTION": "", "ARCHIVE_SECTION_NAME": "", "ALL_SECTION_NAME": "", @@ -308,16 +308,16 @@ "HIDE_COLLECTION": "", "UNHIDE_COLLECTION": "", "MOVE": "", - "ADD": "", + "ADD": "Lägg till", "REMOVE": "", "YES_REMOVE": "", "REMOVE_FROM_COLLECTION": "", - "TRASH": "", - "MOVE_TO_TRASH": "", + "TRASH": "Papperskorg", + "MOVE_TO_TRASH": "Flytta till papperskorg", "TRASH_FILES_MESSAGE": "", "TRASH_FILE_MESSAGE": "", "DELETE_PERMANENTLY": "", - "RESTORE": "", + "RESTORE": "Återställ", "RESTORE_TO_COLLECTION": "", "EMPTY_TRASH": "", "EMPTY_TRASH_TITLE": "", @@ -331,7 +331,7 @@ "CONFIRM_SELF_AND_OTHER_REMOVE_MESSAGE": "", "SORT_BY_CREATION_TIME_ASCENDING": "", "SORT_BY_UPDATION_TIME_DESCENDING": "", - "SORT_BY_NAME": "", + "SORT_BY_NAME": "Namn", "FIX_CREATION_TIME": "", "FIX_CREATION_TIME_IN_PROGRESS": "", "CREATION_TIME_UPDATED": "", @@ -355,7 +355,7 @@ "shared_with_people_other": "", "participants_zero": "Inga deltagare", "participants_one": "1 deltagare", - "participants_other": "", + "participants_other": "{{count, number}} deltagare", "ADD_VIEWERS": "", "CHANGE_PERMISSIONS_TO_VIEWER": "", "CHANGE_PERMISSIONS_TO_COLLABORATOR": "", @@ -377,7 +377,7 @@ "NOT_FOUND": "", "LINK_EXPIRED": "", "LINK_EXPIRED_MESSAGE": "", - "MANAGE_LINK": "", + "MANAGE_LINK": "Hantera länk", "LINK_TOO_MANY_REQUESTS": "", "FILE_DOWNLOAD": "", "LINK_PASSWORD_LOCK": "", @@ -385,7 +385,7 @@ "LINK_DEVICE_LIMIT": "", "NO_DEVICE_LIMIT": "", "LINK_EXPIRY": "", - "NEVER": "", + "NEVER": "Aldrig", "DISABLE_FILE_DOWNLOAD": "", "DISABLE_FILE_DOWNLOAD_MESSAGE": "", "SHARED_USING": "", @@ -418,17 +418,17 @@ "HIDDEN_ALBUMS": "", "HIDDEN_ITEMS": "", "ENTER_TWO_FACTOR_OTP": "", - "CREATE_ACCOUNT": "", + "CREATE_ACCOUNT": "Skapa konto", "COPIED": "", "WATCH_FOLDERS": "", "UPGRADE_NOW": "", "RENEW_NOW": "", "STORAGE": "", "USED": "", - "YOU": "", + "YOU": "Du", "FAMILY": "", - "FREE": "", - "OF": "", + "FREE": "gratis", + "OF": "av", "WATCHED_FOLDERS": "", "NO_FOLDERS_ADDED": "", "FOLDERS_AUTOMATICALLY_MONITORED": "", @@ -495,9 +495,9 @@ "storage_unit": { "b": "", "kb": "", - "mb": "", - "gb": "", - "tb": "" + "mb": "MB", + "gb": "GB", + "tb": "TB" }, "AFTER_TIME": { "HOUR": "", @@ -570,8 +570,8 @@ "CONVERT": "", "CONFIRM_EDITOR_CLOSE_MESSAGE": "", "CONFIRM_EDITOR_CLOSE_DESCRIPTION": "", - "BRIGHTNESS": "", - "CONTRAST": "", + "BRIGHTNESS": "Ljusstyrka", + "CONTRAST": "Kontrast", "SATURATION": "", "BLUR": "", "INVERT_COLORS": "", @@ -619,7 +619,7 @@ "PASSKEY_LOGIN_FAILED": "", "PASSKEY_LOGIN_URL_INVALID": "", "PASSKEY_LOGIN_ERRORED": "", - "TRY_AGAIN": "", + "TRY_AGAIN": "Försök igen", "PASSKEY_FOLLOW_THE_STEPS_FROM_YOUR_BROWSER": "", "LOGIN_WITH_PASSKEY": "", "autogenerated_first_album_name": "", From 50556b993097c1ffe61588960ba96c53de1cfaed Mon Sep 17 00:00:00 2001 From: Crowdin Bot Date: Tue, 28 May 2024 02:07:43 +0000 Subject: [PATCH 11/13] New Crowdin translations by GitHub Action --- auth/lib/l10n/arb/app_fr.arb | 25 +++++++++++++++++++- auth/lib/l10n/arb/app_pt.arb | 16 +++++++------ auth/lib/l10n/arb/app_ru.arb | 34 +++++++++++++++++++++++++++- auth/lib/l10n/arb/app_sv.arb | 4 ++++ auth/lib/l10n/arb/app_tr.arb | 44 ++++++++++++++++++++++++++++++++++-- 5 files changed, 112 insertions(+), 11 deletions(-) diff --git a/auth/lib/l10n/arb/app_fr.arb b/auth/lib/l10n/arb/app_fr.arb index 71ddc0b31c..d789fc48c2 100644 --- a/auth/lib/l10n/arb/app_fr.arb +++ b/auth/lib/l10n/arb/app_fr.arb @@ -20,6 +20,8 @@ "codeIssuerHint": "Émetteur", "codeSecretKeyHint": "Clé secrète", "codeAccountHint": "Compte (vous@exemple.com)", + "codeTagHint": "Tag", + "accountKeyType": "Type de clé", "sessionExpired": "Session expirée", "@sessionExpired": { "description": "Title of the dialog when the users current session is invalid/expired" @@ -77,12 +79,14 @@ "data": "Données", "importCodes": "Importer les codes", "importTypePlainText": "Texte brut", + "importTypeEnteEncrypted": "Export chiffré Ente", "passwordForDecryptingExport": "Mot de passe pour déchiffrer l'exportation", "passwordEmptyError": "Le mot de passe ne peut pas être vide", "importFromApp": "Importer des codes depuis {appName}", "importGoogleAuthGuide": "Exportez vos comptes depuis Google Authenticator vers un code QR en utilisant l'option \"Transférer des comptes\". Ensuite, en utilisant un autre appareil, scannez le code QR.\n\nAstuce : Vous pouvez utiliser la webcam de votre ordinateur portable pour prendre une photo du code QR.", "importSelectJsonFile": "Sélectionnez un fichier JSON", "importSelectAppExport": "Sélectionnez le fichier d'exportation {appName}", + "importEnteEncGuide": "Sélectionnez le fichier chiffré JSON exporté depuis Ente", "importRaivoGuide": "Utilisez l'option \"Exporter les OTPs vers l'archive Zip\" dans les paramètres de Raivo.\n\nExtrayez le fichier zip et importez le fichier JSON.", "importBitwardenGuide": "Utilisez l'option « Exporter le coffre » dans les outils Bitwarden et importez le fichier JSON non chiffré.", "importAegisGuide": "Utilisez l'option \"Exporter le coffre-fort\" dans les paramètres d'Aegis.\n\nSi votre coffre-fort est crypté, vous devrez saisir le mot de passe du coffre-fort pour déchiffrer le coffre-fort.", @@ -112,18 +116,22 @@ "copied": "Copié", "pleaseTryAgain": "Veuillez réessayer", "existingUser": "Utilisateur existant", + "newUser": "Nouveau dans Ente", "delete": "Supprimer", "enterYourPasswordHint": "Saisir votre mot de passe", "forgotPassword": "Mot de passe oublié", "oops": "Oups", "suggestFeatures": "Suggérer des fonctionnalités", "faq": "FAQ", + "faq_q_1": "Quelle est la sécurité de Auth?", + "faq_a_1": "Tous les codes que vous sauvegardez via ente sont chiffrés de bout en bout. Cela signifie que vous seul pouvez accéder à vos codes. Nos applications sont open source et notre cryptographie ont fait l'objet d'un audit externe.", "faq_q_2": "Puis-je accéder à mes codes sur mon ordinateur ?", "faq_a_2": "Vous pouvez accéder à vos codes sur le web via auth.ente.io.", "faq_q_3": "Comment puis-je supprimer des codes ?", "faq_a_3": "Vous pouvez supprimer un code en glissant vers la gauche.", "faq_q_4": "Comment puis-je soutenir le projet ?", "faq_a_4": "Vous pouvez soutenir le développement de ce projet en vous abonnant à notre application Photos, ente.io.", + "faq_q_5": "Comment puis-je activer le verrouillage FaceID dans Auth", "faq_a_5": "Vous pouvez activer le verrouillage FaceID dans Paramètres → Sécurité → Écran de verrouillage.", "somethingWentWrongMessage": "Quelque chose s'est mal passé, veuillez recommencer", "leaveFamily": "Quitter le plan familial", @@ -150,6 +158,7 @@ } } }, + "invalidQRCode": "QR code non valide", "noRecoveryKeyTitle": "Pas de clé de récupération ?", "enterEmailHint": "Entrez votre adresse e-mail", "invalidEmailTitle": "Adresse e-mail invalide", @@ -343,6 +352,7 @@ "deleteCodeAuthMessage": "Authentification requise pour supprimer le code", "showQRAuthMessage": "Authentification requise pour afficher le code QR", "confirmAccountDeleteTitle": "Confirmer la suppression du compte", + "confirmAccountDeleteMessage": "Ce compte est lié à d'autres applications ente, si vous en utilisez une.\n\nVos données téléchargées, dans toutes les applications ente, seront planifiées pour suppression, et votre compte sera définitivement supprimé.", "androidBiometricHint": "Vérifier l’identité", "@androidBiometricHint": { "description": "Hint message advising the user how to authenticate with biometrics. It is used on Android side. Maximum 60 characters." @@ -413,5 +423,18 @@ "invalidEndpoint": "Point de terminaison non valide", "invalidEndpointMessage": "Désolé, le point de terminaison que vous avez entré n'est pas valide. Veuillez en entrer un valide puis réessayez.", "endpointUpdatedMessage": "Point de terminaison mis à jour avec succès", - "customEndpoint": "Connecté à {endpoint}" + "customEndpoint": "Connecté à {endpoint}", + "pinText": "Épingler", + "unpinText": "Désépingler", + "pinnedCodeMessage": "{code} a été épinglé", + "unpinnedCodeMessage": "{code} a été désépinglé", + "tags": "Tags", + "createNewTag": "Créer un nouveau tag", + "tag": "Tag", + "create": "Créer", + "editTag": "Modifier le tag", + "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" } \ No newline at end of file diff --git a/auth/lib/l10n/arb/app_pt.arb b/auth/lib/l10n/arb/app_pt.arb index 3f92822d9a..232c1becfe 100644 --- a/auth/lib/l10n/arb/app_pt.arb +++ b/auth/lib/l10n/arb/app_pt.arb @@ -31,7 +31,7 @@ "timeBasedKeyType": "Baseado no horário (TOTP)", "counterBasedKeyType": "Baseado em um contador (HOTP)", "saveAction": "Salvar", - "nextTotpTitle": "próximo", + "nextTotpTitle": "avançar", "deleteCodeTitle": "Excluir código?", "deleteCodeMessage": "Tem certeza de que deseja excluir este código? Esta ação é irreversível.", "viewLogsAction": "Ver logs", @@ -105,7 +105,7 @@ "authToChangeYourPassword": "Por favor, autentique-se para alterar sua senha", "authToViewSecrets": "Por favor, autentique-se para ver as suas chaves secretas", "authToInitiateSignIn": "Por favor, autentique-se para iniciar o login para um backup.", - "ok": "Ok", + "ok": "OK", "cancel": "Cancelar", "yes": "Sim", "no": "Não", @@ -120,7 +120,7 @@ "delete": "Excluir", "enterYourPasswordHint": "Insira sua senha", "forgotPassword": "Esqueci a senha", - "oops": "Oops", + "oops": "Opa", "suggestFeatures": "Sugerir funcionalidades", "faq": "Perguntas frequentes", "faq_q_1": "Quão seguro é o Auth?", @@ -239,8 +239,8 @@ "howItWorks": "Como funciona", "ackPasswordLostWarning": "Eu entendo que se eu perder minha senha, posso perder meus dados, já que meus dados são criptografados de ponta a ponta.", "loginTerms": "Ao clicar em login, eu concordo com os termos de serviço e a política de privacidade", - "logInLabel": "Login", - "logout": "Encerrar sessão", + "logInLabel": "Entrar", + "logout": "Sair", "areYouSureYouWantToLogout": "Você tem certeza que deseja encerrar a sessão?", "yesLogout": "Sim, encerrar sessão", "exit": "Sair", @@ -282,7 +282,7 @@ "description": "Text for the button to confirm the user understands the warning" }, "authToExportCodes": "Por favor, autentique-se para exportar seus códigos", - "importSuccessTitle": "Yay!", + "importSuccessTitle": "Oba!", "importSuccessDesc": "Você importou {count} códigos!", "@importSuccessDesc": { "placeholders": { @@ -401,7 +401,7 @@ "@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": "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." }, @@ -425,7 +425,9 @@ "endpointUpdatedMessage": "Endpoint atualizado com sucesso", "customEndpoint": "Conectado a {endpoint}", "pinText": "Fixar", + "unpinText": "Desafixar", "pinnedCodeMessage": "{code} foi fixado", + "unpinnedCodeMessage": "{code} foi desafixado", "tags": "Etiquetas", "createNewTag": "Criar etiqueta", "tag": "Etiqueta", diff --git a/auth/lib/l10n/arb/app_ru.arb b/auth/lib/l10n/arb/app_ru.arb index 42571a166b..9c5dceaaba 100644 --- a/auth/lib/l10n/arb/app_ru.arb +++ b/auth/lib/l10n/arb/app_ru.arb @@ -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" @@ -77,16 +79,19 @@ "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 Tools и импортируйте незашифрованный JSON файл.", "importAegisGuide": "Используйте опцию «Экспортировать хранилище» в настройках Aegis.\n\nЕсли ваше хранилище зашифровано, то для его расшифровки потребуется ввести пароль хранилища.", "import2FasGuide": "Используйте опцию \"Settings->Backup -Export\" в 2FAS.\n\nЕсли ваша резервная копия зашифрована, то для расшифровки резервной копии необходимо ввести пароль", + "importLastpassGuide": "Используйте опцию \"Перенести аккаунты\" в настройках Lastpass Authenticator и нажмите на \"Экспортировать учетные записи в файл\". Импортируйте загружённый JSON файл.", "exportCodes": "Экспортировать коды", "importLabel": "Импорт", "importInstruction": "Пожалуйста, выберите файл, содержащий список ваших кодов в следующем формате", @@ -99,6 +104,7 @@ "authToChangeYourEmail": "Пожалуйста, авторизуйтесь, чтобы изменить адрес электронной почты", "authToChangeYourPassword": "Пожалуйста, авторизуйтесь, чтобы изменить пароль", "authToViewSecrets": "Пожалуйста, авторизуйтесь для просмотра ваших секретов", + "authToInitiateSignIn": "Пожалуйста, авторизуйтесь, чтобы начать вход для резервного копирования.", "ok": "Ок", "cancel": "Отменить", "yes": "Да", @@ -110,18 +116,22 @@ "copied": "Скопировано", "pleaseTryAgain": "Пожалуйста, попробуйте ещё раз", "existingUser": "Существующий пользователь", + "newUser": "Впервые здесь, в Ente", "delete": "Удалить", "enterYourPasswordHint": "Введите пароль", "forgotPassword": "Забыл пароль", "oops": "Ой", "suggestFeatures": "Предложить идеи", "faq": "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": "Покинуть семью", @@ -135,6 +145,8 @@ "enterCodeHint": "Введите 6-значный код из\nвашего приложения-аутентификатора", "lostDeviceTitle": "Потеряно устройство?", "twoFactorAuthTitle": "Двухфакторная аутентификация", + "passkeyAuthTitle": "Проверка с помощью пароля", + "verifyPasskey": "Подтвердить пароль", "recoverAccount": "Восстановить аккаунт", "enterRecoveryKeyHint": "Введите свой ключ восстановления", "recover": "Восстановить", @@ -146,6 +158,7 @@ } } }, + "invalidQRCode": "Неверный QR-код", "noRecoveryKeyTitle": "Нет ключа восстановления?", "enterEmailHint": "Введите свою почту", "invalidEmailTitle": "Неверный адрес электронной почты", @@ -190,6 +203,8 @@ "saveKey": "Сохранить ключ", "save": "Сохранить", "send": "Отправить", + "saveOrSendDescription": "Вы хотите сохранить это в хранилище (папку загрузок по умолчанию) или отправить в другие приложения?", + "saveOnlyDescription": "Вы хотите сохранить это в хранилище (по умолчанию папка загрузок)?", "back": "Вернуться", "createAccount": "Создать аккаунт", "passwordStrength": "Мощность пароля: {passwordStrengthValue}", @@ -337,6 +352,7 @@ "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." @@ -397,12 +413,28 @@ "doNotSignOut": "Не выходить", "hearUsWhereTitle": "Как вы узнали о Ente? (необязательно)", "hearUsExplanation": "Будет полезно, если вы укажете, где нашли нас, так как мы не отслеживаем установки приложения", + "recoveryKeySaved": "Ключ восстановления сохранён в папке Загрузки!", + "waitingForBrowserRequest": "Ожидание запроса браузера...", "waitingForVerification": "Ожидание подтверждения...", + "passkey": "Ключ", "developerSettingsWarning": "Вы уверены, что хотите изменить настройки разработчика?", "developerSettings": "Настройки разработчика", "serverEndpoint": "Конечная точка сервера", "invalidEndpoint": "Неверная конечная точка", "invalidEndpointMessage": "Извините, введенная вами конечная точка неверна. Пожалуйста, введите корректную конечную точку и повторите попытку.", "endpointUpdatedMessage": "Конечная точка успешно обновлена", - "customEndpoint": "Подключено к {endpoint}" + "customEndpoint": "Подключено к {endpoint}", + "pinText": "Прикрепить", + "unpinText": "Открепить", + "pinnedCodeMessage": "{code} прикреплен", + "unpinnedCodeMessage": "{code} откреплен", + "tags": "Метки", + "createNewTag": "Создать новую метку", + "tag": "Метка", + "create": "Создать", + "editTag": "Изменить метку", + "deleteTagTitle": "Удалить метку?", + "deleteTagMessage": "Вы уверены, что хотите удалить эту метку? Это действие необратимо.", + "somethingWentWrongParsingCode": "Мы не смогли разобрать коды {x}.", + "updateNotAvailable": "Обновление недоступно" } \ No newline at end of file diff --git a/auth/lib/l10n/arb/app_sv.arb b/auth/lib/l10n/arb/app_sv.arb index 9761325ce1..41aa2f8a86 100644 --- a/auth/lib/l10n/arb/app_sv.arb +++ b/auth/lib/l10n/arb/app_sv.arb @@ -61,6 +61,7 @@ "welcomeBack": "Välkommen tillbaka!", "changePassword": "Ändra lösenord", "importCodes": "Importera koder", + "exportCodes": "Exportera koder", "cancel": "Avbryt", "yes": "Ja", "no": "Nej", @@ -76,6 +77,7 @@ "scan": "Skanna", "twoFactorAuthTitle": "Tvåfaktorsautentisering", "enterRecoveryKeyHint": "Ange din återställningsnyckel", + "invalidQRCode": "Ogiltig QR-kod", "noRecoveryKeyTitle": "Ingen återställningsnyckel?", "enterEmailHint": "Ange din e-postadress", "invalidEmailTitle": "Ogiltig e-postadress", @@ -143,6 +145,8 @@ }, "pendingSyncs": "Varning", "activeSessions": "Aktiva sessioner", + "incorrectCode": "Felaktig kod", + "incorrectRecoveryKey": "Felaktig återställningsnyckel", "enterPassword": "Ange lösenord", "export": "Exportera", "singIn": "Logga in", diff --git a/auth/lib/l10n/arb/app_tr.arb b/auth/lib/l10n/arb/app_tr.arb index 322af5f48c..2473067b74 100644 --- a/auth/lib/l10n/arb/app_tr.arb +++ b/auth/lib/l10n/arb/app_tr.arb @@ -20,6 +20,8 @@ "codeIssuerHint": "Yayınlayan", "codeSecretKeyHint": "Gizli Anahtar", "codeAccountHint": "Hesap (ornek@domain.com)", + "codeTagHint": "Etiket", + "accountKeyType": "Anahtar türü", "sessionExpired": "Oturum süresi doldu", "@sessionExpired": { "description": "Title of the dialog when the users current session is invalid/expired" @@ -46,7 +48,7 @@ }, "copyEmailAction": "E-postayı Kopyala", "exportLogsAction": "Günlüğü dışa aktar", - "reportABug": "Bir hata bildir", + "reportABug": "Hata bildirin", "crashAndErrorReporting": "Çökme ve hata bildirimi", "reportBug": "Hata bildir", "emailUsMessage": "Lütfen bize {email} adresinden ulaşın", @@ -77,12 +79,14 @@ "data": "Veri", "importCodes": "Kodu içe aktar", "importTypePlainText": "Salt metin", + "importTypeEnteEncrypted": "Ente Şifreli dışa aktarma", "passwordForDecryptingExport": "Dışa aktarımın şifresini çözmek için parola", "passwordEmptyError": "Şifre boş olamaz", "importFromApp": "Kodları {appName} uygulamasından içe aktarın", "importGoogleAuthGuide": "\"Hesapları Aktar\" seçeneğini kullanarak hesaplarınızı Google Authenticator'dan bir QR koduna aktarın. Ardından başka bir cihaz kullanarak QR kodunu tarayın.\n\nİpucu: QR kodunun fotoğrafını çekmek için dizüstü bilgisayarınızın kamerasını kullanabilirsiniz.", "importSelectJsonFile": "JSON dosyasını seçin", "importSelectAppExport": "{appName} dışarı aktarma dosyasını seçin", + "importEnteEncGuide": "Ente'den dışa aktarılan şifrelenmiş JSON dosyasını seçin", "importRaivoGuide": "Raivo'nun ayarlarında \"OTP'leri Zip arşivine aktar\" seçeneğini kullanın.\n\nZip dosyasını çıkarın ve JSON dosyasını içe aktarın.", "importBitwardenGuide": "Bitwarden Tools içindeki \"Kasayı dışa aktar\" seçeneğini kullanın ve şifrelenmemiş JSON dosyasını içe aktarın.", "importAegisGuide": "Aegis'in Ayarlarında \"Kasayı dışa aktar\" seçeneğini kullanın.\n\nKasanız şifrelenmişse, kasanın şifresini çözmek için kasa parolasını girmeniz gerekecektir.", @@ -112,18 +116,22 @@ "copied": "Kopyalandı", "pleaseTryAgain": "Lütfen tekrar deneyin", "existingUser": "Mevcut kullanıcı", + "newUser": "Ente'de Yeni", "delete": "Sil", "enterYourPasswordHint": "Parolanızı girin", "forgotPassword": "Şifremi unuttum", "oops": "Hay aksi", "suggestFeatures": "Özellik önerin", "faq": "SSS", + "faq_q_1": "Kimlik doğrulayıcı ne kadar güvenli?", + "faq_a_1": "Auth aracılığıyla yedeklediğiniz tüm kodlar uçtan uca şifrelenmiş olarak saklanır. Böylece kodlarınıza yalnızca siz erişebilirsiniz. Uygulamalarımız açık kaynaklıdır ve şifrelememiz dış denetimden geçmiştir.", "faq_q_2": "Kodlarıma masaüstünden erişebilir miyim?", "faq_a_2": "Kodlarınıza internet üzerinden @ auth.ente.io adresinden erişebilirsiniz.", "faq_q_3": "Kodları nasıl silebilirim?", "faq_a_3": "Bir kodu, o öğenin üzerinde sola kaydırarak silebilirsiniz.", "faq_q_4": "Bu projeye nasıl destek olabilirim?", "faq_a_4": "Fotoğraflar uygulamamıza @ ente.io abone olarak bu projenin geliştirilmesine destek olabilirsiniz.", + "faq_q_5": "Auth'ta FaceID kilidini nasıl etkinleştirebilirim", "faq_a_5": "FaceID kilidini Ayarlar → Güvenlik → Kilit Ekranı altında etkinleştirebilirsiniz.", "somethingWentWrongMessage": "Bir şeyler ters gitti, lütfen tekrar deneyin", "leaveFamily": "Aile planından ayrıl", @@ -137,6 +145,8 @@ "enterCodeHint": "Kimlik doğrulayıcı uygulamanızdaki 6 haneli doğrulama kodunu girin", "lostDeviceTitle": "Cihazınızı mı kaybettiniz?", "twoFactorAuthTitle": "İki faktörlü kimlik doğrulama", + "passkeyAuthTitle": "Geçiş anahtarı doğrulaması", + "verifyPasskey": "Geçiş anahtarını doğrula", "recoverAccount": "Hesap kurtarma", "enterRecoveryKeyHint": "Kurtarma anahtarınızı girin", "recover": "Kurtar", @@ -148,6 +158,7 @@ } } }, + "invalidQRCode": "Geçersiz QR kodu", "noRecoveryKeyTitle": "Kurtarma anahtarınız yok mu?", "enterEmailHint": "E-posta adresinizi girin", "invalidEmailTitle": "Geçersiz e-posta adresi", @@ -190,6 +201,10 @@ "recoveryKeySaveDescription": "Biz bu anahtarı saklamıyoruz, lütfen. bu 24 kelimelik anahtarı güvenli bir yerde saklayın.", "doThisLater": "Bunu daha sonra yap", "saveKey": "Anahtarı kaydet", + "save": "Kaydet", + "send": "Gönder", + "saveOrSendDescription": "Bunu belleğinize mi kaydedeceksiniz (İndirilenler klasörü varsayılandır) yoksa diğer uygulamalara mı göndereceksiniz?", + "saveOnlyDescription": "Bunu belleğinize kaydetmek ister misiniz? (İndirilenler klasörü varsayılandır)", "back": "Geri", "createAccount": "Hesap oluştur", "passwordStrength": "Şifre gücü: {passwordStrengthValue}", @@ -337,6 +352,7 @@ "deleteCodeAuthMessage": "Kodu silmek için doğrulama yapın", "showQRAuthMessage": "QR kodunu göstermek için doğrulama yapın", "confirmAccountDeleteTitle": "Hesap silme işlemini onayla", + "confirmAccountDeleteMessage": "Kullandığınız Ente uygulamaları varsa bu hesap diğer Ente uygulamalarıyla bağlantılıdır.\n\nTüm Ente uygulamalarına yüklediğiniz veriler ve hesabınız kalıcı olarak silinecektir.", "androidBiometricHint": "Kimliği doğrula", "@androidBiometricHint": { "description": "Hint message advising the user how to authenticate with biometrics. It is used on Android side. Maximum 60 characters." @@ -396,5 +412,29 @@ "signOutOtherDevices": "Diğer cihazlardan çıkış yap", "doNotSignOut": "Çıkış yapma", "hearUsWhereTitle": "Ente'yi nereden duydunuz? (opsiyonel)", - "hearUsExplanation": "Biz uygulama kurulumlarını takip etmiyoruz. Bizi nereden duyduğunuzdan bahsetmeniz bize çok yardımcı olacak!" + "hearUsExplanation": "Biz uygulama kurulumlarını takip etmiyoruz. Bizi nereden duyduğunuzdan bahsetmeniz bize çok yardımcı olacak!", + "recoveryKeySaved": "Kurtarma anahtarı İndirilenler klasörüne kaydedildi!", + "waitingForBrowserRequest": "Tarayıcı isteği bekleniyor...", + "waitingForVerification": "Doğrulama bekleniyor...", + "passkey": "Geçiş anahtarı", + "developerSettingsWarning": "Geliştirici ayarlarını değiştirmekten emin misiniz?", + "developerSettings": "Geliştirici ayarları", + "serverEndpoint": "Sunucu uç noktası", + "invalidEndpoint": "Geçersiz uç nokta", + "invalidEndpointMessage": "Üzgünüz, girdiğiniz uç nokta geçersiz. Lütfen geçerli bir uç nokta girin ve tekrar deneyin.", + "endpointUpdatedMessage": "Uç nokta başarıyla güncellendi", + "customEndpoint": "Bağlandı: {endpoint}", + "pinText": "Sabitle", + "unpinText": "Sabitlemeyi kaldır", + "pinnedCodeMessage": "{code} sabitlendi", + "unpinnedCodeMessage": "{code} sabitlemesi kaldırıldı", + "tags": "Etiketler", + "createNewTag": "Yeni etiket oluştur", + "tag": "Etiket", + "create": "Oluştur", + "editTag": "Etiketi düzenle", + "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" } \ No newline at end of file From 07dc0231ee1795c3350067e68bce6d460078dc79 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Tue, 28 May 2024 09:36:44 +0530 Subject: [PATCH 12/13] photosd-v1.7.0 --- desktop/CHANGELOG.md | 2 +- desktop/docs/release.md | 6 +++--- desktop/package.json | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/desktop/CHANGELOG.md b/desktop/CHANGELOG.md index 5fbbefaaa8..094145d261 100644 --- a/desktop/CHANGELOG.md +++ b/desktop/CHANGELOG.md @@ -1,6 +1,6 @@ # CHANGELOG -## v1.7.0 (Unreleased) +## v1.7.0 v1.7 is a major rewrite to improve the security of our app. In particular, the UI and the native parts of the app now run isolated from each other and diff --git a/desktop/docs/release.md b/desktop/docs/release.md index 1cda1c11b1..53d0355c3e 100644 --- a/desktop/docs/release.md +++ b/desktop/docs/release.md @@ -39,8 +39,8 @@ artifacts attached to the same draft. ## Workflow - Release -1. Update source repo to set version `1.x.x` in `package.json` and finialize - the CHANGELOG. +1. Update source repo to set version `1.x.x` in `package.json` and finalize the + CHANGELOG. 2. Push code to the `desktop/rc` branch in the source repo. @@ -53,7 +53,7 @@ artifacts attached to the same draft. 4. If the build is successful, tag `desktop/rc` in the source repo. ```sh - # Assuming we're on desktop/rc that just got build + # Assuming we're on desktop/rc that just got built git tag photosd-v1.x.x git push origin photosd-v1.x.x diff --git a/desktop/package.json b/desktop/package.json index 085d966817..a38ce92f24 100644 --- a/desktop/package.json +++ b/desktop/package.json @@ -1,6 +1,6 @@ { "name": "ente", - "version": "1.7.0-rc", + "version": "1.7.0", "private": true, "description": "Desktop client for Ente Photos", "repository": "github:ente-io/photos-desktop", From b2df698e42425dda6dde2e898a3f2d879e664e93 Mon Sep 17 00:00:00 2001 From: Manav Rathi Date: Tue, 28 May 2024 12:13:36 +0530 Subject: [PATCH 13/13] [desktop] Start next release sequence --- desktop/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/desktop/package.json b/desktop/package.json index a38ce92f24..4e493e30c8 100644 --- a/desktop/package.json +++ b/desktop/package.json @@ -1,6 +1,6 @@ { "name": "ente", - "version": "1.7.0", + "version": "1.7.1-rc", "private": true, "description": "Desktop client for Ente Photos", "repository": "github:ente-io/photos-desktop",