Merge branch 'main' into use_media_kit
This commit is contained in:
commit
21d6a4672b
15 changed files with 235 additions and 78 deletions
37
lib/generated/intl/messages_fr.dart
generated
37
lib/generated/intl/messages_fr.dart
generated
|
@ -94,7 +94,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||||
static String m21(endDate) => "Essai gratuit valide jusqu’au ${endDate}";
|
static String m21(endDate) => "Essai gratuit valide jusqu’au ${endDate}";
|
||||||
|
|
||||||
static String m22(count) =>
|
static String m22(count) =>
|
||||||
"Vous pouvez toujours accéder à ${Intl.plural(count, one: 'it', other: 'them')} sur ente tant que vous avez un abonnement actif";
|
"Vous pouvez toujours ${Intl.plural(count, one: 'y', other: 'y')} accéder sur ente tant que vous avez un abonnement actif";
|
||||||
|
|
||||||
static String m23(sizeInMBorGB) => "Libérer ${sizeInMBorGB}";
|
static String m23(sizeInMBorGB) => "Libérer ${sizeInMBorGB}";
|
||||||
|
|
||||||
|
@ -140,10 +140,10 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||||
|
|
||||||
static String m38(endDate) => "Renouvellement le ${endDate}";
|
static String m38(endDate) => "Renouvellement le ${endDate}";
|
||||||
|
|
||||||
static String m39(count) => "${count} sélectionné";
|
static String m39(count) => "${count} sélectionné(s)";
|
||||||
|
|
||||||
static String m40(count, yourCount) =>
|
static String m40(count, yourCount) =>
|
||||||
"${count} sélectionné (${yourCount} votre)";
|
"${count} sélectionné(s) (${yourCount} à vous)";
|
||||||
|
|
||||||
static String m41(verificationID) =>
|
static String m41(verificationID) =>
|
||||||
"Voici mon ID de vérification : ${verificationID} pour ente.io.";
|
"Voici mon ID de vérification : ${verificationID} pour ente.io.";
|
||||||
|
@ -160,10 +160,10 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||||
static String m45(emailIDs) => "Partagé avec ${emailIDs}";
|
static String m45(emailIDs) => "Partagé avec ${emailIDs}";
|
||||||
|
|
||||||
static String m46(fileType) =>
|
static String m46(fileType) =>
|
||||||
"Ce ${fileType} sera supprimé de votre appareil.";
|
"Elle ${fileType} sera supprimée de votre appareil.";
|
||||||
|
|
||||||
static String m47(fileType) =>
|
static String m47(fileType) =>
|
||||||
"Ce ${fileType} est à la fois dans ente et votre appareil.";
|
"Cette ${fileType} est à la fois sur ente et sur votre appareil.";
|
||||||
|
|
||||||
static String m48(fileType) => "Ce ${fileType} sera supprimé de ente.";
|
static String m48(fileType) => "Ce ${fileType} sera supprimé de ente.";
|
||||||
|
|
||||||
|
@ -195,7 +195,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||||
"Nous avons envoyé un e-mail à <green>${email}</green>";
|
"Nous avons envoyé un e-mail à <green>${email}</green>";
|
||||||
|
|
||||||
static String m59(count) =>
|
static String m59(count) =>
|
||||||
"${Intl.plural(count, one: '${count} il y a un an', other: '${count} il y a des années')}";
|
"${Intl.plural(count, one: 'il y a ${count} an', other: 'il y a ${count} ans')}";
|
||||||
|
|
||||||
static String m60(storageSaved) =>
|
static String m60(storageSaved) =>
|
||||||
"Vous avez libéré ${storageSaved} avec succès !";
|
"Vous avez libéré ${storageSaved} avec succès !";
|
||||||
|
@ -230,7 +230,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||||
MessageLookupByLibrary.simpleMessage("Ajouter à l\'album"),
|
MessageLookupByLibrary.simpleMessage("Ajouter à l\'album"),
|
||||||
"addToEnte": MessageLookupByLibrary.simpleMessage("Ajouter à ente"),
|
"addToEnte": MessageLookupByLibrary.simpleMessage("Ajouter à ente"),
|
||||||
"addToHiddenAlbum":
|
"addToHiddenAlbum":
|
||||||
MessageLookupByLibrary.simpleMessage("Add to hidden album"),
|
MessageLookupByLibrary.simpleMessage("Ajouter à un album masqué"),
|
||||||
"addViewer":
|
"addViewer":
|
||||||
MessageLookupByLibrary.simpleMessage("Ajouter un observateur"),
|
MessageLookupByLibrary.simpleMessage("Ajouter un observateur"),
|
||||||
"addedAs": MessageLookupByLibrary.simpleMessage("Ajouté comme"),
|
"addedAs": MessageLookupByLibrary.simpleMessage("Ajouté comme"),
|
||||||
|
@ -373,6 +373,8 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||||
"cancelSubscription":
|
"cancelSubscription":
|
||||||
MessageLookupByLibrary.simpleMessage("Annuler l\'abonnement"),
|
MessageLookupByLibrary.simpleMessage("Annuler l\'abonnement"),
|
||||||
"cannotAddMorePhotosAfterBecomingViewer": m6,
|
"cannotAddMorePhotosAfterBecomingViewer": m6,
|
||||||
|
"cannotDeleteSharedFiles": MessageLookupByLibrary.simpleMessage(
|
||||||
|
"Les fichiers partagés ne peuvent pas être supprimés"),
|
||||||
"centerPoint": MessageLookupByLibrary.simpleMessage("Point central"),
|
"centerPoint": MessageLookupByLibrary.simpleMessage("Point central"),
|
||||||
"changeEmail":
|
"changeEmail":
|
||||||
MessageLookupByLibrary.simpleMessage("Modifier l\'e-mail"),
|
MessageLookupByLibrary.simpleMessage("Modifier l\'e-mail"),
|
||||||
|
@ -503,7 +505,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||||
"deleteAlbum":
|
"deleteAlbum":
|
||||||
MessageLookupByLibrary.simpleMessage("Supprimer l\'album"),
|
MessageLookupByLibrary.simpleMessage("Supprimer l\'album"),
|
||||||
"deleteAlbumDialog": MessageLookupByLibrary.simpleMessage(
|
"deleteAlbumDialog": MessageLookupByLibrary.simpleMessage(
|
||||||
"Supprimer aussi les photos (et vidéos) présentes dans cet album depuis <bold>tous</bold> les autres albums dont ils font partie ?"),
|
"Supprimer aussi les photos (et vidéos) présentes dans cet album de <bold>tous</bold> les autres albums dont elles font partie ?"),
|
||||||
"deleteAlbumsDialogBody": MessageLookupByLibrary.simpleMessage(
|
"deleteAlbumsDialogBody": MessageLookupByLibrary.simpleMessage(
|
||||||
"Ceci supprimera tous les albums vides. Ceci est utile lorsque vous voulez réduire l\'encombrement dans votre liste d\'albums."),
|
"Ceci supprimera tous les albums vides. Ceci est utile lorsque vous voulez réduire l\'encombrement dans votre liste d\'albums."),
|
||||||
"deleteAll": MessageLookupByLibrary.simpleMessage("Tout Supprimer"),
|
"deleteAll": MessageLookupByLibrary.simpleMessage("Tout Supprimer"),
|
||||||
|
@ -541,7 +543,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||||
"deleteSharedAlbum": MessageLookupByLibrary.simpleMessage(
|
"deleteSharedAlbum": MessageLookupByLibrary.simpleMessage(
|
||||||
"Supprimer l\'album partagé ?"),
|
"Supprimer l\'album partagé ?"),
|
||||||
"deleteSharedAlbumDialogBody": MessageLookupByLibrary.simpleMessage(
|
"deleteSharedAlbumDialogBody": MessageLookupByLibrary.simpleMessage(
|
||||||
"L\'album sera supprimé pour tout le monde\n\nVous perdrez l\'accès aux photos partagées dans cet album qui est détenues par d\'autres personnes"),
|
"L\'album sera supprimé pour tout le monde\n\nVous perdrez l\'accès aux photos partagées dans cet album qui sont détenues par d\'autres personnes"),
|
||||||
"deselectAll":
|
"deselectAll":
|
||||||
MessageLookupByLibrary.simpleMessage("Tout déselectionner"),
|
MessageLookupByLibrary.simpleMessage("Tout déselectionner"),
|
||||||
"designedToOutlive":
|
"designedToOutlive":
|
||||||
|
@ -720,6 +722,8 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||||
MessageLookupByLibrary.simpleMessage("Allez aux réglages"),
|
MessageLookupByLibrary.simpleMessage("Allez aux réglages"),
|
||||||
"googlePlayId":
|
"googlePlayId":
|
||||||
MessageLookupByLibrary.simpleMessage("Identifiant Google Play"),
|
MessageLookupByLibrary.simpleMessage("Identifiant Google Play"),
|
||||||
|
"grantFullAccessPrompt": MessageLookupByLibrary.simpleMessage(
|
||||||
|
"Veuillez autoriser l’accès à toutes les photos dans les paramètres"),
|
||||||
"grantPermission":
|
"grantPermission":
|
||||||
MessageLookupByLibrary.simpleMessage("Accorder la permission"),
|
MessageLookupByLibrary.simpleMessage("Accorder la permission"),
|
||||||
"groupNearbyPhotos": MessageLookupByLibrary.simpleMessage(
|
"groupNearbyPhotos": MessageLookupByLibrary.simpleMessage(
|
||||||
|
@ -873,8 +877,8 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||||
"moveItem": m28,
|
"moveItem": m28,
|
||||||
"moveToAlbum":
|
"moveToAlbum":
|
||||||
MessageLookupByLibrary.simpleMessage("Déplacer vers l\'album"),
|
MessageLookupByLibrary.simpleMessage("Déplacer vers l\'album"),
|
||||||
"moveToHiddenAlbum":
|
"moveToHiddenAlbum": MessageLookupByLibrary.simpleMessage(
|
||||||
MessageLookupByLibrary.simpleMessage("Move to hidden album"),
|
"Déplacer vers un album masqué"),
|
||||||
"movedSuccessfullyTo": m29,
|
"movedSuccessfullyTo": m29,
|
||||||
"movedToTrash":
|
"movedToTrash":
|
||||||
MessageLookupByLibrary.simpleMessage("Déplacé dans la corbeille"),
|
MessageLookupByLibrary.simpleMessage("Déplacé dans la corbeille"),
|
||||||
|
@ -888,6 +892,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||||
"no": MessageLookupByLibrary.simpleMessage("Non"),
|
"no": MessageLookupByLibrary.simpleMessage("Non"),
|
||||||
"noAlbumsSharedByYouYet": MessageLookupByLibrary.simpleMessage(
|
"noAlbumsSharedByYouYet": MessageLookupByLibrary.simpleMessage(
|
||||||
"Aucun album que vous avez partagé"),
|
"Aucun album que vous avez partagé"),
|
||||||
|
"noDeviceLimit": MessageLookupByLibrary.simpleMessage("Aucune"),
|
||||||
"noDeviceThatCanBeDeleted": MessageLookupByLibrary.simpleMessage(
|
"noDeviceThatCanBeDeleted": MessageLookupByLibrary.simpleMessage(
|
||||||
"Vous n\'avez pas de fichiers sur cet appareil qui peuvent être supprimés"),
|
"Vous n\'avez pas de fichiers sur cet appareil qui peuvent être supprimés"),
|
||||||
"noDuplicates": MessageLookupByLibrary.simpleMessage("✨ Aucun doublon"),
|
"noDuplicates": MessageLookupByLibrary.simpleMessage("✨ Aucun doublon"),
|
||||||
|
@ -923,6 +928,8 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||||
"Oups, impossible d\'enregistrer les modifications"),
|
"Oups, impossible d\'enregistrer les modifications"),
|
||||||
"oopsSomethingWentWrong": MessageLookupByLibrary.simpleMessage(
|
"oopsSomethingWentWrong": MessageLookupByLibrary.simpleMessage(
|
||||||
"Oups, une erreur est arrivée"),
|
"Oups, une erreur est arrivée"),
|
||||||
|
"openSettings":
|
||||||
|
MessageLookupByLibrary.simpleMessage("Ouvrir les paramètres"),
|
||||||
"openTheItem":
|
"openTheItem":
|
||||||
MessageLookupByLibrary.simpleMessage("• Ouvrir l\'élément"),
|
MessageLookupByLibrary.simpleMessage("• Ouvrir l\'élément"),
|
||||||
"openstreetmapContributors": MessageLookupByLibrary.simpleMessage(
|
"openstreetmapContributors": MessageLookupByLibrary.simpleMessage(
|
||||||
|
@ -996,6 +1003,8 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||||
"preserveMore": MessageLookupByLibrary.simpleMessage("Conserver plus"),
|
"preserveMore": MessageLookupByLibrary.simpleMessage("Conserver plus"),
|
||||||
"pressAndHoldToPlayVideo": MessageLookupByLibrary.simpleMessage(
|
"pressAndHoldToPlayVideo": MessageLookupByLibrary.simpleMessage(
|
||||||
"Appuyez et maintenez enfoncé pour lire la vidéo"),
|
"Appuyez et maintenez enfoncé pour lire la vidéo"),
|
||||||
|
"pressAndHoldToPlayVideoDetailed": MessageLookupByLibrary.simpleMessage(
|
||||||
|
"Maintenez appuyé sur l\'image pour lire la vidéo"),
|
||||||
"privacy": MessageLookupByLibrary.simpleMessage("Confidentialité"),
|
"privacy": MessageLookupByLibrary.simpleMessage("Confidentialité"),
|
||||||
"privacyPolicyTitle": MessageLookupByLibrary.simpleMessage(
|
"privacyPolicyTitle": MessageLookupByLibrary.simpleMessage(
|
||||||
"Politique de Confidentialité"),
|
"Politique de Confidentialité"),
|
||||||
|
@ -1073,7 +1082,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||||
"removePublicLink":
|
"removePublicLink":
|
||||||
MessageLookupByLibrary.simpleMessage("Supprimer le lien public"),
|
MessageLookupByLibrary.simpleMessage("Supprimer le lien public"),
|
||||||
"removeShareItemsWarning": MessageLookupByLibrary.simpleMessage(
|
"removeShareItemsWarning": MessageLookupByLibrary.simpleMessage(
|
||||||
"Certains des objets que vous êtes en train de retirer ont été ajoutés par d\'autres personnes, vous perdrez l\'accès vers ces objets"),
|
"Certains des éléments que vous êtes en train de retirer ont été ajoutés par d\'autres personnes, vous perdrez l\'accès vers ces éléments"),
|
||||||
"removeWithQuestionMark":
|
"removeWithQuestionMark":
|
||||||
MessageLookupByLibrary.simpleMessage("Enlever?"),
|
MessageLookupByLibrary.simpleMessage("Enlever?"),
|
||||||
"removingFromFavorites":
|
"removingFromFavorites":
|
||||||
|
@ -1139,6 +1148,8 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||||
"Sélectionner les éléments à ajouter"),
|
"Sélectionner les éléments à ajouter"),
|
||||||
"selectLanguage":
|
"selectLanguage":
|
||||||
MessageLookupByLibrary.simpleMessage("Sélectionner une langue"),
|
MessageLookupByLibrary.simpleMessage("Sélectionner une langue"),
|
||||||
|
"selectMorePhotos":
|
||||||
|
MessageLookupByLibrary.simpleMessage("Sélectionner plus de photos"),
|
||||||
"selectReason":
|
"selectReason":
|
||||||
MessageLookupByLibrary.simpleMessage("Sélectionner une raison"),
|
MessageLookupByLibrary.simpleMessage("Sélectionner une raison"),
|
||||||
"selectYourPlan":
|
"selectYourPlan":
|
||||||
|
@ -1210,7 +1221,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||||
"J\'accepte les <u-terms>conditions d\'utilisation</u-terms> et la <u-policy>politique de confidentialité</u-policy>"),
|
"J\'accepte les <u-terms>conditions d\'utilisation</u-terms> et la <u-policy>politique de confidentialité</u-policy>"),
|
||||||
"singleFileDeleteFromDevice": m46,
|
"singleFileDeleteFromDevice": m46,
|
||||||
"singleFileDeleteHighlight": MessageLookupByLibrary.simpleMessage(
|
"singleFileDeleteHighlight": MessageLookupByLibrary.simpleMessage(
|
||||||
"Il sera supprimé de tous les albums."),
|
"Elle sera supprimée de tous les albums."),
|
||||||
"singleFileInBothLocalAndRemote": m47,
|
"singleFileInBothLocalAndRemote": m47,
|
||||||
"singleFileInRemoteOnly": m48,
|
"singleFileInRemoteOnly": m48,
|
||||||
"skip": MessageLookupByLibrary.simpleMessage("Ignorer"),
|
"skip": MessageLookupByLibrary.simpleMessage("Ignorer"),
|
||||||
|
|
20
lib/generated/intl/messages_zh.dart
generated
20
lib/generated/intl/messages_zh.dart
generated
|
@ -200,8 +200,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||||
"addSelected": MessageLookupByLibrary.simpleMessage("添加所选项"),
|
"addSelected": MessageLookupByLibrary.simpleMessage("添加所选项"),
|
||||||
"addToAlbum": MessageLookupByLibrary.simpleMessage("添加到相册"),
|
"addToAlbum": MessageLookupByLibrary.simpleMessage("添加到相册"),
|
||||||
"addToEnte": MessageLookupByLibrary.simpleMessage("添加到 ente"),
|
"addToEnte": MessageLookupByLibrary.simpleMessage("添加到 ente"),
|
||||||
"addToHiddenAlbum":
|
"addToHiddenAlbum": MessageLookupByLibrary.simpleMessage("添加到隐藏相册"),
|
||||||
MessageLookupByLibrary.simpleMessage("Add to hidden album"),
|
|
||||||
"addViewer": MessageLookupByLibrary.simpleMessage("添加查看者"),
|
"addViewer": MessageLookupByLibrary.simpleMessage("添加查看者"),
|
||||||
"addedAs": MessageLookupByLibrary.simpleMessage("已添加为"),
|
"addedAs": MessageLookupByLibrary.simpleMessage("已添加为"),
|
||||||
"addedBy": m1,
|
"addedBy": m1,
|
||||||
|
@ -318,6 +317,8 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||||
"cancelOtherSubscription": m5,
|
"cancelOtherSubscription": m5,
|
||||||
"cancelSubscription": MessageLookupByLibrary.simpleMessage("取消订阅"),
|
"cancelSubscription": MessageLookupByLibrary.simpleMessage("取消订阅"),
|
||||||
"cannotAddMorePhotosAfterBecomingViewer": m6,
|
"cannotAddMorePhotosAfterBecomingViewer": m6,
|
||||||
|
"cannotDeleteSharedFiles":
|
||||||
|
MessageLookupByLibrary.simpleMessage("无法删除共享文件"),
|
||||||
"centerPoint": MessageLookupByLibrary.simpleMessage("中心点"),
|
"centerPoint": MessageLookupByLibrary.simpleMessage("中心点"),
|
||||||
"changeEmail": MessageLookupByLibrary.simpleMessage("修改邮箱"),
|
"changeEmail": MessageLookupByLibrary.simpleMessage("修改邮箱"),
|
||||||
"changePassword": MessageLookupByLibrary.simpleMessage("修改密码"),
|
"changePassword": MessageLookupByLibrary.simpleMessage("修改密码"),
|
||||||
|
@ -577,10 +578,13 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||||
MessageLookupByLibrary.simpleMessage("正在生成加密密钥..."),
|
MessageLookupByLibrary.simpleMessage("正在生成加密密钥..."),
|
||||||
"goToSettings": MessageLookupByLibrary.simpleMessage("前往设置"),
|
"goToSettings": MessageLookupByLibrary.simpleMessage("前往设置"),
|
||||||
"googlePlayId": MessageLookupByLibrary.simpleMessage("Google Play ID"),
|
"googlePlayId": MessageLookupByLibrary.simpleMessage("Google Play ID"),
|
||||||
|
"grantFullAccessPrompt":
|
||||||
|
MessageLookupByLibrary.simpleMessage("请在“设置”应用中将权限更改为允许访问所有所有照片"),
|
||||||
"grantPermission": MessageLookupByLibrary.simpleMessage("授予权限"),
|
"grantPermission": MessageLookupByLibrary.simpleMessage("授予权限"),
|
||||||
"groupNearbyPhotos": MessageLookupByLibrary.simpleMessage("将附近的照片分组"),
|
"groupNearbyPhotos": MessageLookupByLibrary.simpleMessage("将附近的照片分组"),
|
||||||
"hidden": MessageLookupByLibrary.simpleMessage("已隐藏"),
|
"hidden": MessageLookupByLibrary.simpleMessage("已隐藏"),
|
||||||
"hide": MessageLookupByLibrary.simpleMessage("隐藏"),
|
"hide": MessageLookupByLibrary.simpleMessage("隐藏"),
|
||||||
|
"hiding": MessageLookupByLibrary.simpleMessage("正在隐藏..."),
|
||||||
"hostedAtOsmFrance": MessageLookupByLibrary.simpleMessage("法国 OSM 主办"),
|
"hostedAtOsmFrance": MessageLookupByLibrary.simpleMessage("法国 OSM 主办"),
|
||||||
"howItWorks": MessageLookupByLibrary.simpleMessage("工作原理"),
|
"howItWorks": MessageLookupByLibrary.simpleMessage("工作原理"),
|
||||||
"howToViewShareeVerificationID": MessageLookupByLibrary.simpleMessage(
|
"howToViewShareeVerificationID": MessageLookupByLibrary.simpleMessage(
|
||||||
|
@ -700,8 +704,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||||
"monthly": MessageLookupByLibrary.simpleMessage("每月"),
|
"monthly": MessageLookupByLibrary.simpleMessage("每月"),
|
||||||
"moveItem": m28,
|
"moveItem": m28,
|
||||||
"moveToAlbum": MessageLookupByLibrary.simpleMessage("移动到相册"),
|
"moveToAlbum": MessageLookupByLibrary.simpleMessage("移动到相册"),
|
||||||
"moveToHiddenAlbum":
|
"moveToHiddenAlbum": MessageLookupByLibrary.simpleMessage("移至隐藏相册"),
|
||||||
MessageLookupByLibrary.simpleMessage("Move to hidden album"),
|
|
||||||
"movedSuccessfullyTo": m29,
|
"movedSuccessfullyTo": m29,
|
||||||
"movedToTrash": MessageLookupByLibrary.simpleMessage("已移至回收站"),
|
"movedToTrash": MessageLookupByLibrary.simpleMessage("已移至回收站"),
|
||||||
"movingFilesToAlbum":
|
"movingFilesToAlbum":
|
||||||
|
@ -714,6 +717,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||||
"no": MessageLookupByLibrary.simpleMessage("否"),
|
"no": MessageLookupByLibrary.simpleMessage("否"),
|
||||||
"noAlbumsSharedByYouYet":
|
"noAlbumsSharedByYouYet":
|
||||||
MessageLookupByLibrary.simpleMessage("您尚未共享任何相册"),
|
MessageLookupByLibrary.simpleMessage("您尚未共享任何相册"),
|
||||||
|
"noDeviceLimit": MessageLookupByLibrary.simpleMessage("无"),
|
||||||
"noDeviceThatCanBeDeleted":
|
"noDeviceThatCanBeDeleted":
|
||||||
MessageLookupByLibrary.simpleMessage("您在此设备上没有可被删除的文件"),
|
MessageLookupByLibrary.simpleMessage("您在此设备上没有可被删除的文件"),
|
||||||
"noDuplicates": MessageLookupByLibrary.simpleMessage("✨ 没有重复内容"),
|
"noDuplicates": MessageLookupByLibrary.simpleMessage("✨ 没有重复内容"),
|
||||||
|
@ -743,6 +747,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||||
MessageLookupByLibrary.simpleMessage("糟糕,无法保存编辑"),
|
MessageLookupByLibrary.simpleMessage("糟糕,无法保存编辑"),
|
||||||
"oopsSomethingWentWrong":
|
"oopsSomethingWentWrong":
|
||||||
MessageLookupByLibrary.simpleMessage("哎呀,似乎出了点问题"),
|
MessageLookupByLibrary.simpleMessage("哎呀,似乎出了点问题"),
|
||||||
|
"openSettings": MessageLookupByLibrary.simpleMessage("打开“设置”"),
|
||||||
"openTheItem": MessageLookupByLibrary.simpleMessage("• 打开该项目"),
|
"openTheItem": MessageLookupByLibrary.simpleMessage("• 打开该项目"),
|
||||||
"openstreetmapContributors":
|
"openstreetmapContributors":
|
||||||
MessageLookupByLibrary.simpleMessage("OpenStreetMap 贡献者"),
|
MessageLookupByLibrary.simpleMessage("OpenStreetMap 贡献者"),
|
||||||
|
@ -798,6 +803,8 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||||
"preserveMore": MessageLookupByLibrary.simpleMessage("保留更多"),
|
"preserveMore": MessageLookupByLibrary.simpleMessage("保留更多"),
|
||||||
"pressAndHoldToPlayVideo":
|
"pressAndHoldToPlayVideo":
|
||||||
MessageLookupByLibrary.simpleMessage("按住以播放视频"),
|
MessageLookupByLibrary.simpleMessage("按住以播放视频"),
|
||||||
|
"pressAndHoldToPlayVideoDetailed":
|
||||||
|
MessageLookupByLibrary.simpleMessage("长按图像以播放视频"),
|
||||||
"privacy": MessageLookupByLibrary.simpleMessage("隐私"),
|
"privacy": MessageLookupByLibrary.simpleMessage("隐私"),
|
||||||
"privacyPolicyTitle": MessageLookupByLibrary.simpleMessage("隐私政策"),
|
"privacyPolicyTitle": MessageLookupByLibrary.simpleMessage("隐私政策"),
|
||||||
"privateBackups": MessageLookupByLibrary.simpleMessage("私人备份"),
|
"privateBackups": MessageLookupByLibrary.simpleMessage("私人备份"),
|
||||||
|
@ -901,6 +908,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||||
MessageLookupByLibrary.simpleMessage("选择要备份的文件夹"),
|
MessageLookupByLibrary.simpleMessage("选择要备份的文件夹"),
|
||||||
"selectItemsToAdd": MessageLookupByLibrary.simpleMessage("选择要添加的项目"),
|
"selectItemsToAdd": MessageLookupByLibrary.simpleMessage("选择要添加的项目"),
|
||||||
"selectLanguage": MessageLookupByLibrary.simpleMessage("选择语言"),
|
"selectLanguage": MessageLookupByLibrary.simpleMessage("选择语言"),
|
||||||
|
"selectMorePhotos": MessageLookupByLibrary.simpleMessage("选择更多照片"),
|
||||||
"selectReason": MessageLookupByLibrary.simpleMessage("选择原因"),
|
"selectReason": MessageLookupByLibrary.simpleMessage("选择原因"),
|
||||||
"selectYourPlan": MessageLookupByLibrary.simpleMessage("选择您的计划"),
|
"selectYourPlan": MessageLookupByLibrary.simpleMessage("选择您的计划"),
|
||||||
"selectedFilesAreNotOnEnte":
|
"selectedFilesAreNotOnEnte":
|
||||||
|
@ -953,6 +961,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||||
"sharedWithMe": MessageLookupByLibrary.simpleMessage("与我共享"),
|
"sharedWithMe": MessageLookupByLibrary.simpleMessage("与我共享"),
|
||||||
"sharedWithYou": MessageLookupByLibrary.simpleMessage("已与您共享"),
|
"sharedWithYou": MessageLookupByLibrary.simpleMessage("已与您共享"),
|
||||||
"sharing": MessageLookupByLibrary.simpleMessage("正在分享..."),
|
"sharing": MessageLookupByLibrary.simpleMessage("正在分享..."),
|
||||||
|
"showMemories": MessageLookupByLibrary.simpleMessage("显示回忆"),
|
||||||
"signUpTerms": MessageLookupByLibrary.simpleMessage(
|
"signUpTerms": MessageLookupByLibrary.simpleMessage(
|
||||||
"我同意 <u-terms>服务条款</u-terms> 和 <u-policy>隐私政策</u-policy>"),
|
"我同意 <u-terms>服务条款</u-terms> 和 <u-policy>隐私政策</u-policy>"),
|
||||||
"singleFileDeleteFromDevice": m46,
|
"singleFileDeleteFromDevice": m46,
|
||||||
|
@ -1001,8 +1010,10 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||||
"subscription": MessageLookupByLibrary.simpleMessage("订阅"),
|
"subscription": MessageLookupByLibrary.simpleMessage("订阅"),
|
||||||
"success": MessageLookupByLibrary.simpleMessage("成功"),
|
"success": MessageLookupByLibrary.simpleMessage("成功"),
|
||||||
"successfullyArchived": MessageLookupByLibrary.simpleMessage("归档成功"),
|
"successfullyArchived": MessageLookupByLibrary.simpleMessage("归档成功"),
|
||||||
|
"successfullyHid": MessageLookupByLibrary.simpleMessage("已成功隐藏"),
|
||||||
"successfullyUnarchived":
|
"successfullyUnarchived":
|
||||||
MessageLookupByLibrary.simpleMessage("取消归档成功"),
|
MessageLookupByLibrary.simpleMessage("取消归档成功"),
|
||||||
|
"successfullyUnhid": MessageLookupByLibrary.simpleMessage("已成功取消隐藏"),
|
||||||
"suggestFeatures": MessageLookupByLibrary.simpleMessage("建议新功能"),
|
"suggestFeatures": MessageLookupByLibrary.simpleMessage("建议新功能"),
|
||||||
"support": MessageLookupByLibrary.simpleMessage("支持"),
|
"support": MessageLookupByLibrary.simpleMessage("支持"),
|
||||||
"syncProgress": m53,
|
"syncProgress": m53,
|
||||||
|
@ -1078,6 +1089,7 @@ class MessageLookup extends MessageLookupByLibrary {
|
||||||
"uncategorized": MessageLookupByLibrary.simpleMessage("未分类的"),
|
"uncategorized": MessageLookupByLibrary.simpleMessage("未分类的"),
|
||||||
"unhide": MessageLookupByLibrary.simpleMessage("取消隐藏"),
|
"unhide": MessageLookupByLibrary.simpleMessage("取消隐藏"),
|
||||||
"unhideToAlbum": MessageLookupByLibrary.simpleMessage("取消隐藏到相册"),
|
"unhideToAlbum": MessageLookupByLibrary.simpleMessage("取消隐藏到相册"),
|
||||||
|
"unhiding": MessageLookupByLibrary.simpleMessage("正在取消隐藏..."),
|
||||||
"unhidingFilesToAlbum":
|
"unhidingFilesToAlbum":
|
||||||
MessageLookupByLibrary.simpleMessage("正在取消隐藏文件到相册"),
|
MessageLookupByLibrary.simpleMessage("正在取消隐藏文件到相册"),
|
||||||
"unlock": MessageLookupByLibrary.simpleMessage("解锁"),
|
"unlock": MessageLookupByLibrary.simpleMessage("解锁"),
|
||||||
|
|
|
@ -24,6 +24,7 @@
|
||||||
"sendEmail": "E-Mail senden",
|
"sendEmail": "E-Mail senden",
|
||||||
"deleteRequestSLAText": "Deine Anfrage wird innerhalb von 72 Stunden bearbeitet.",
|
"deleteRequestSLAText": "Deine Anfrage wird innerhalb von 72 Stunden bearbeitet.",
|
||||||
"deleteEmailRequest": "Bitte sende eine E-Mail an <warning>account-deletion@ente.io</warning> von Deiner bei uns hinterlegten E-Mail-Adresse.",
|
"deleteEmailRequest": "Bitte sende eine E-Mail an <warning>account-deletion@ente.io</warning> von Deiner bei uns hinterlegten E-Mail-Adresse.",
|
||||||
|
"entePhotosPerm": "ente <i>benötigt die Erlaubnis</i> Ihre Fotos zu bewahren",
|
||||||
"ok": "Ok",
|
"ok": "Ok",
|
||||||
"createAccount": "Konto erstellen",
|
"createAccount": "Konto erstellen",
|
||||||
"createNewAccount": "Neues Konto erstellen",
|
"createNewAccount": "Neues Konto erstellen",
|
||||||
|
@ -48,6 +49,7 @@
|
||||||
"sorry": "Entschuldigung",
|
"sorry": "Entschuldigung",
|
||||||
"noRecoveryKeyNoDecryption": "Aufgrund unseres Ende-zu-Ende-Verschlüsselungsprotokolls können deine Daten nicht ohne dein Passwort oder deinen Wiederherstellungs-Schlüssel entschlüsselt werden",
|
"noRecoveryKeyNoDecryption": "Aufgrund unseres Ende-zu-Ende-Verschlüsselungsprotokolls können deine Daten nicht ohne dein Passwort oder deinen Wiederherstellungs-Schlüssel entschlüsselt werden",
|
||||||
"verifyEmail": "E-Mail-Adresse verifizieren",
|
"verifyEmail": "E-Mail-Adresse verifizieren",
|
||||||
|
"toResetVerifyEmail": "Um Ihr Passwort zurückzusetzen, verifizieren Sie bitte zuerst Ihre E-Mail Adresse.",
|
||||||
"checkInboxAndSpamFolder": "Bitte überprüfe deinen E-Mail-Posteingang (und Spam), um die Verifizierung abzuschließen",
|
"checkInboxAndSpamFolder": "Bitte überprüfe deinen E-Mail-Posteingang (und Spam), um die Verifizierung abzuschließen",
|
||||||
"tapToEnterCode": "Antippen, um den Code einzugeben",
|
"tapToEnterCode": "Antippen, um den Code einzugeben",
|
||||||
"resendEmail": "E-Mail erneut senden",
|
"resendEmail": "E-Mail erneut senden",
|
||||||
|
@ -187,6 +189,10 @@
|
||||||
"disableDownloadWarningBody": "Zuschauer können weiterhin Screenshots oder mit anderen externen Programmen Kopien der Bilder machen.",
|
"disableDownloadWarningBody": "Zuschauer können weiterhin Screenshots oder mit anderen externen Programmen Kopien der Bilder machen.",
|
||||||
"allowDownloads": "Downloads erlauben",
|
"allowDownloads": "Downloads erlauben",
|
||||||
"linkDeviceLimit": "Geräte Limit",
|
"linkDeviceLimit": "Geräte Limit",
|
||||||
|
"noDeviceLimit": "Keins",
|
||||||
|
"@noDeviceLimit": {
|
||||||
|
"description": "Text to indicate that there is limit on number of devices"
|
||||||
|
},
|
||||||
"linkExpiry": "Ablaufdatum des Links",
|
"linkExpiry": "Ablaufdatum des Links",
|
||||||
"linkExpired": "Abgelaufen",
|
"linkExpired": "Abgelaufen",
|
||||||
"linkEnabled": "Aktiviert",
|
"linkEnabled": "Aktiviert",
|
||||||
|
@ -199,15 +205,6 @@
|
||||||
"manageLink": "Link verwalten",
|
"manageLink": "Link verwalten",
|
||||||
"linkExpiresOn": "Link läuft am {expiryTime} ab",
|
"linkExpiresOn": "Link läuft am {expiryTime} ab",
|
||||||
"albumUpdated": "Album aktualisiert",
|
"albumUpdated": "Album aktualisiert",
|
||||||
"maxDeviceLimitSpikeHandling": "Wenn auf den Höchstwert von {maxValue} gesetzt, dann wird das Limit gelockert um potenzielle Höchstlasten unterstützen zu können.",
|
|
||||||
"@maxDeviceLimitSpikeHandling": {
|
|
||||||
"placeholders": {
|
|
||||||
"maxValue": {
|
|
||||||
"type": "int",
|
|
||||||
"example": "100"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"never": "Niemals",
|
"never": "Niemals",
|
||||||
"custom": "Benutzerdefiniert",
|
"custom": "Benutzerdefiniert",
|
||||||
"@custom": {
|
"@custom": {
|
||||||
|
@ -417,6 +414,23 @@
|
||||||
"skip": "Überspringen",
|
"skip": "Überspringen",
|
||||||
"updatingFolderSelection": "Ordnerauswahl wird aktualisiert...",
|
"updatingFolderSelection": "Ordnerauswahl wird aktualisiert...",
|
||||||
"itemCount": "{count, plural, one{{count} Objekt} other{{count} Objekte}}",
|
"itemCount": "{count, plural, one{{count} Objekt} other{{count} Objekte}}",
|
||||||
|
"deleteItemCount": "{count, plural, one {}=1 {Lösche {count} Element} other {Lösche {count} Elemente}}",
|
||||||
|
"duplicateItemsGroup": "{count} Dateien, {formattedSize} jede",
|
||||||
|
"@duplicateItemsGroup": {
|
||||||
|
"description": "Display the number of duplicate files and their size",
|
||||||
|
"type": "text",
|
||||||
|
"placeholders": {
|
||||||
|
"count": {
|
||||||
|
"example": "12",
|
||||||
|
"type": "int"
|
||||||
|
},
|
||||||
|
"formattedSize": {
|
||||||
|
"example": "2.3 MB",
|
||||||
|
"type": "String"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"showMemories": "Erinnerungen anschauen",
|
||||||
"yearsAgo": "{count, plural, one{vor einem Jahr} other{vor {count} Jahren}}",
|
"yearsAgo": "{count, plural, one{vor einem Jahr} other{vor {count} Jahren}}",
|
||||||
"backupSettings": "Backup-Einstellungen",
|
"backupSettings": "Backup-Einstellungen",
|
||||||
"backupOverMobileData": "Über mobile Daten sichern",
|
"backupOverMobileData": "Über mobile Daten sichern",
|
||||||
|
@ -435,6 +449,8 @@
|
||||||
"authToChangeYourEmail": "Bitte authentifizieren, um deine E-Mail-Adresse zu ändern",
|
"authToChangeYourEmail": "Bitte authentifizieren, um deine E-Mail-Adresse zu ändern",
|
||||||
"changePassword": "Passwort ändern",
|
"changePassword": "Passwort ändern",
|
||||||
"authToChangeYourPassword": "Bitte authentifizieren, um das Passwort zu ändern",
|
"authToChangeYourPassword": "Bitte authentifizieren, um das Passwort zu ändern",
|
||||||
|
"emailVerificationToggle": "E-Mail-Verifizierung",
|
||||||
|
"authToChangeEmailVerificationSetting": "Bitte Authentifizieren um die E-Mail Bestätigung zu ändern",
|
||||||
"exportYourData": "Daten exportieren",
|
"exportYourData": "Daten exportieren",
|
||||||
"logout": "Ausloggen",
|
"logout": "Ausloggen",
|
||||||
"authToInitiateAccountDeletion": "Bitte authentifizieren, um die Löschung des Kontos einzuleiten",
|
"authToInitiateAccountDeletion": "Bitte authentifizieren, um die Löschung des Kontos einzuleiten",
|
||||||
|
@ -447,6 +463,7 @@
|
||||||
"updateAvailable": "Update verfügbar",
|
"updateAvailable": "Update verfügbar",
|
||||||
"ignoreUpdate": "Ignorieren",
|
"ignoreUpdate": "Ignorieren",
|
||||||
"downloading": "Wird heruntergeladen...",
|
"downloading": "Wird heruntergeladen...",
|
||||||
|
"cannotDeleteSharedFiles": "Konnte geteilte Dateien nicht löschen",
|
||||||
"theDownloadCouldNotBeCompleted": "Der Download konnte nicht abgeschlossen werden",
|
"theDownloadCouldNotBeCompleted": "Der Download konnte nicht abgeschlossen werden",
|
||||||
"retry": "Erneut versuchen",
|
"retry": "Erneut versuchen",
|
||||||
"backedUpFolders": "Gesicherte Ordner",
|
"backedUpFolders": "Gesicherte Ordner",
|
||||||
|
@ -490,6 +507,9 @@
|
||||||
},
|
},
|
||||||
"familyPlans": "Familientarif",
|
"familyPlans": "Familientarif",
|
||||||
"referrals": "Weiterempfehlungen",
|
"referrals": "Weiterempfehlungen",
|
||||||
|
"notifications": "Benachrichtigungen",
|
||||||
|
"sharedPhotoNotifications": "Neue geteilte Fotos",
|
||||||
|
"sharedPhotoNotificationsExplanation": "Erhalte Benachrichtigungen, wenn jemand ein Foto zu einem gemeinsam genutzten Album hinzufügt, dem du angehörst",
|
||||||
"advanced": "Erweitert",
|
"advanced": "Erweitert",
|
||||||
"general": "Allgemein",
|
"general": "Allgemein",
|
||||||
"security": "Sicherheit",
|
"security": "Sicherheit",
|
||||||
|
@ -538,6 +558,7 @@
|
||||||
"faqs": "FAQs",
|
"faqs": "FAQs",
|
||||||
"renewsOn": "Erneuert am {endDate}",
|
"renewsOn": "Erneuert am {endDate}",
|
||||||
"freeTrialValidTill": "Kostenlose Demo verfügbar bis zum {endDate}",
|
"freeTrialValidTill": "Kostenlose Demo verfügbar bis zum {endDate}",
|
||||||
|
"playStoreFreeTrialValidTill": "Kostenlose Testversion gültig bis {endDate}.\nSie können anschließend ein bezahltes Paket auswählen.",
|
||||||
"subWillBeCancelledOn": "Ihr Abo endet am {endDate}",
|
"subWillBeCancelledOn": "Ihr Abo endet am {endDate}",
|
||||||
"subscription": "Abonnement",
|
"subscription": "Abonnement",
|
||||||
"paymentDetails": "Zahlungsdetails",
|
"paymentDetails": "Zahlungsdetails",
|
||||||
|
@ -619,6 +640,9 @@
|
||||||
"startBackup": "Sicherung starten",
|
"startBackup": "Sicherung starten",
|
||||||
"noPhotosAreBeingBackedUpRightNow": "Momentan werden keine Fotos gesichert",
|
"noPhotosAreBeingBackedUpRightNow": "Momentan werden keine Fotos gesichert",
|
||||||
"preserveMore": "Mehr Daten sichern",
|
"preserveMore": "Mehr Daten sichern",
|
||||||
|
"grantFullAccessPrompt": "Bitte gewähre Zugang zu allen Fotos in der Einstellungen App",
|
||||||
|
"openSettings": "Öffne Einstellungen",
|
||||||
|
"selectMorePhotos": "Mehr Fotos auswählen",
|
||||||
"existingUser": "Existierender Benutzer",
|
"existingUser": "Existierender Benutzer",
|
||||||
"privateBackups": "Private Sicherungen",
|
"privateBackups": "Private Sicherungen",
|
||||||
"forYourMemories": "Als Erinnerung",
|
"forYourMemories": "Als Erinnerung",
|
||||||
|
@ -742,6 +766,7 @@
|
||||||
},
|
},
|
||||||
"deleteAll": "Alle löschen",
|
"deleteAll": "Alle löschen",
|
||||||
"renameAlbum": "Album umbenennen",
|
"renameAlbum": "Album umbenennen",
|
||||||
|
"convertToAlbum": "Konvertiere zum Album",
|
||||||
"setCover": "Titelbild festlegen",
|
"setCover": "Titelbild festlegen",
|
||||||
"@setCover": {
|
"@setCover": {
|
||||||
"description": "Text to set cover photo for an album"
|
"description": "Text to set cover photo for an album"
|
||||||
|
@ -788,6 +813,7 @@
|
||||||
"fileFailedToSaveToGallery": "Fehler beim Speichern der Datei in der Galerie",
|
"fileFailedToSaveToGallery": "Fehler beim Speichern der Datei in der Galerie",
|
||||||
"download": "Herunterladen",
|
"download": "Herunterladen",
|
||||||
"pressAndHoldToPlayVideo": "Gedrückt halten, um Video abzuspielen",
|
"pressAndHoldToPlayVideo": "Gedrückt halten, um Video abzuspielen",
|
||||||
|
"pressAndHoldToPlayVideoDetailed": "Drücke und halte aufs Foto gedrückt um Video abzuspielen",
|
||||||
"downloadFailed": "Herunterladen fehlgeschlagen",
|
"downloadFailed": "Herunterladen fehlgeschlagen",
|
||||||
"deduplicateFiles": "Dateien duplizieren",
|
"deduplicateFiles": "Dateien duplizieren",
|
||||||
"deselectAll": "Alle abwählen",
|
"deselectAll": "Alle abwählen",
|
||||||
|
@ -945,6 +971,10 @@
|
||||||
"centerPoint": "Mittelpunkt",
|
"centerPoint": "Mittelpunkt",
|
||||||
"pickCenterPoint": "Mittelpunkt auswählen",
|
"pickCenterPoint": "Mittelpunkt auswählen",
|
||||||
"useSelectedPhoto": "Ausgewähltes Foto verwenden",
|
"useSelectedPhoto": "Ausgewähltes Foto verwenden",
|
||||||
|
"resetToDefault": "Standardwerte zurücksetzen",
|
||||||
|
"@resetToDefault": {
|
||||||
|
"description": "Button text to reset cover photo to default"
|
||||||
|
},
|
||||||
"edit": "Bearbeiten",
|
"edit": "Bearbeiten",
|
||||||
"deleteLocation": "Standort löschen",
|
"deleteLocation": "Standort löschen",
|
||||||
"rotateLeft": "Nach links drehen",
|
"rotateLeft": "Nach links drehen",
|
||||||
|
@ -1048,6 +1078,29 @@
|
||||||
"maps": "Karten",
|
"maps": "Karten",
|
||||||
"enableMaps": "Karten aktivieren",
|
"enableMaps": "Karten aktivieren",
|
||||||
"enableMapsDesc": "Dies zeigt Ihre Fotos auf einer Weltkarte.\n\nDiese Karte wird von OpenStreetMap gehostet und die genauen Standorte Ihrer Fotos werden niemals geteilt.\n\nSie können diese Funktion jederzeit in den Einstellungen deaktivieren.",
|
"enableMapsDesc": "Dies zeigt Ihre Fotos auf einer Weltkarte.\n\nDiese Karte wird von OpenStreetMap gehostet und die genauen Standorte Ihrer Fotos werden niemals geteilt.\n\nSie können diese Funktion jederzeit in den Einstellungen deaktivieren.",
|
||||||
"addToHiddenAlbum": "Add to hidden album",
|
"quickLinks": "Quick Links",
|
||||||
"moveToHiddenAlbum": "Move to hidden album"
|
"selectItemsToAdd": "Elemente zum Hinzufügen auswählen",
|
||||||
|
"addSelected": "Auswahl hinzufügen",
|
||||||
|
"addFromDevice": "Vom Gerät hinzufügen",
|
||||||
|
"addPhotos": "Fotos hinzufügen",
|
||||||
|
"noPhotosFoundHere": "Keine Fotos gefunden",
|
||||||
|
"zoomOutToSeePhotos": "Verkleinern, um Fotos zu sehen",
|
||||||
|
"noImagesWithLocation": "Keine Bilder mit Standort",
|
||||||
|
"unpinAlbum": "Album lösen",
|
||||||
|
"pinAlbum": "Album anheften",
|
||||||
|
"create": "Erstellen",
|
||||||
|
"viewAll": "Alle anzeigen",
|
||||||
|
"nothingSharedWithYouYet": "Noch nichts mit Dir geteilt",
|
||||||
|
"noAlbumsSharedByYouYet": "Noch keine Alben von dir geteilt",
|
||||||
|
"sharedWithYou": "Mit dir geteilt",
|
||||||
|
"sharedByYou": "Von dir geteilt",
|
||||||
|
"inviteYourFriendsToEnte": "Lade deine Freunde zu ente ein",
|
||||||
|
"failedToDownloadVideo": "Herunterladen des Videos fehlgeschlagen",
|
||||||
|
"hiding": "Verstecken...",
|
||||||
|
"unhiding": "Einblenden...",
|
||||||
|
"successfullyHid": "Erfolgreich versteckt",
|
||||||
|
"successfullyUnhid": "Erfolgreich eingeblendet",
|
||||||
|
"crashReporting": "Absturzbericht",
|
||||||
|
"addToHiddenAlbum": "Zum versteckten Album hinzufügen",
|
||||||
|
"moveToHiddenAlbum": "Zu verstecktem Album verschieben"
|
||||||
}
|
}
|
|
@ -189,6 +189,10 @@
|
||||||
"disableDownloadWarningBody": "Les téléspectateurs peuvent toujours prendre des captures d'écran ou enregistrer une copie de vos photos en utilisant des outils externes",
|
"disableDownloadWarningBody": "Les téléspectateurs peuvent toujours prendre des captures d'écran ou enregistrer une copie de vos photos en utilisant des outils externes",
|
||||||
"allowDownloads": "Autoriser les téléchargements",
|
"allowDownloads": "Autoriser les téléchargements",
|
||||||
"linkDeviceLimit": "Limite d'appareil",
|
"linkDeviceLimit": "Limite d'appareil",
|
||||||
|
"noDeviceLimit": "Aucune",
|
||||||
|
"@noDeviceLimit": {
|
||||||
|
"description": "Text to indicate that there is limit on number of devices"
|
||||||
|
},
|
||||||
"linkExpiry": "Expiration du lien",
|
"linkExpiry": "Expiration du lien",
|
||||||
"linkExpired": "Expiré",
|
"linkExpired": "Expiré",
|
||||||
"linkEnabled": "Activé",
|
"linkEnabled": "Activé",
|
||||||
|
@ -201,15 +205,6 @@
|
||||||
"manageLink": "Gérer le lien",
|
"manageLink": "Gérer le lien",
|
||||||
"linkExpiresOn": "Le lien expirera le {expiryTime}",
|
"linkExpiresOn": "Le lien expirera le {expiryTime}",
|
||||||
"albumUpdated": "Album mis à jour",
|
"albumUpdated": "Album mis à jour",
|
||||||
"maxDeviceLimitSpikeHandling": "Lorsqu'elle est définie au maximum ({maxValue}), la limite de l'appareil sera assouplie pour permettre des pointes temporaires d'un grand nombre de téléspectateurs.",
|
|
||||||
"@maxDeviceLimitSpikeHandling": {
|
|
||||||
"placeholders": {
|
|
||||||
"maxValue": {
|
|
||||||
"type": "int",
|
|
||||||
"example": "100"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"never": "Jamais",
|
"never": "Jamais",
|
||||||
"custom": "Personnaliser",
|
"custom": "Personnaliser",
|
||||||
"@custom": {
|
"@custom": {
|
||||||
|
@ -321,7 +316,7 @@
|
||||||
"removeFromAlbumTitle": "Retirer de l'album ?",
|
"removeFromAlbumTitle": "Retirer de l'album ?",
|
||||||
"removeFromAlbum": "Retirer de l'album",
|
"removeFromAlbum": "Retirer de l'album",
|
||||||
"itemsWillBeRemovedFromAlbum": "Les éléments sélectionnés seront supprimés de cet album",
|
"itemsWillBeRemovedFromAlbum": "Les éléments sélectionnés seront supprimés de cet album",
|
||||||
"removeShareItemsWarning": "Certains des objets que vous êtes en train de retirer ont été ajoutés par d'autres personnes, vous perdrez l'accès vers ces objets",
|
"removeShareItemsWarning": "Certains des éléments que vous êtes en train de retirer ont été ajoutés par d'autres personnes, vous perdrez l'accès vers ces éléments",
|
||||||
"addingToFavorites": "Ajout aux favoris...",
|
"addingToFavorites": "Ajout aux favoris...",
|
||||||
"removingFromFavorites": "Suppression des favoris…",
|
"removingFromFavorites": "Suppression des favoris…",
|
||||||
"sorryCouldNotAddToFavorites": "Désolé, impossible d'ajouter aux favoris !",
|
"sorryCouldNotAddToFavorites": "Désolé, impossible d'ajouter aux favoris !",
|
||||||
|
@ -331,8 +326,8 @@
|
||||||
"canOnlyRemoveFilesOwnedByYou": "Vous ne pouvez supprimer que les fichiers que vous possédez",
|
"canOnlyRemoveFilesOwnedByYou": "Vous ne pouvez supprimer que les fichiers que vous possédez",
|
||||||
"deleteSharedAlbum": "Supprimer l'album partagé ?",
|
"deleteSharedAlbum": "Supprimer l'album partagé ?",
|
||||||
"deleteAlbum": "Supprimer l'album",
|
"deleteAlbum": "Supprimer l'album",
|
||||||
"deleteAlbumDialog": "Supprimer aussi les photos (et vidéos) présentes dans cet album depuis <bold>tous</bold> les autres albums dont ils font partie ?",
|
"deleteAlbumDialog": "Supprimer aussi les photos (et vidéos) présentes dans cet album de <bold>tous</bold> les autres albums dont elles font partie ?",
|
||||||
"deleteSharedAlbumDialogBody": "L'album sera supprimé pour tout le monde\n\nVous perdrez l'accès aux photos partagées dans cet album qui est détenues par d'autres personnes",
|
"deleteSharedAlbumDialogBody": "L'album sera supprimé pour tout le monde\n\nVous perdrez l'accès aux photos partagées dans cet album qui sont détenues par d'autres personnes",
|
||||||
"yesRemove": "Oui, supprimer",
|
"yesRemove": "Oui, supprimer",
|
||||||
"creatingLink": "Création du lien...",
|
"creatingLink": "Création du lien...",
|
||||||
"removeWithQuestionMark": "Enlever?",
|
"removeWithQuestionMark": "Enlever?",
|
||||||
|
@ -354,10 +349,10 @@
|
||||||
"uncategorized": "Aucune catégorie",
|
"uncategorized": "Aucune catégorie",
|
||||||
"videoSmallCase": "vidéo",
|
"videoSmallCase": "vidéo",
|
||||||
"photoSmallCase": "photo",
|
"photoSmallCase": "photo",
|
||||||
"singleFileDeleteHighlight": "Il sera supprimé de tous les albums.",
|
"singleFileDeleteHighlight": "Elle sera supprimée de tous les albums.",
|
||||||
"singleFileInBothLocalAndRemote": "Ce {fileType} est à la fois dans ente et votre appareil.",
|
"singleFileInBothLocalAndRemote": "Cette {fileType} est à la fois sur ente et sur votre appareil.",
|
||||||
"singleFileInRemoteOnly": "Ce {fileType} sera supprimé de ente.",
|
"singleFileInRemoteOnly": "Ce {fileType} sera supprimé de ente.",
|
||||||
"singleFileDeleteFromDevice": "Ce {fileType} sera supprimé de votre appareil.",
|
"singleFileDeleteFromDevice": "Elle {fileType} sera supprimée de votre appareil.",
|
||||||
"deleteFromEnte": "Supprimer de ente",
|
"deleteFromEnte": "Supprimer de ente",
|
||||||
"yesDelete": "Oui, supprimer",
|
"yesDelete": "Oui, supprimer",
|
||||||
"movedToTrash": "Déplacé dans la corbeille",
|
"movedToTrash": "Déplacé dans la corbeille",
|
||||||
|
@ -380,7 +375,7 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"selectedPhotos": "{count} sélectionné",
|
"selectedPhotos": "{count} sélectionné(s)",
|
||||||
"@selectedPhotos": {
|
"@selectedPhotos": {
|
||||||
"description": "Display the number of selected photos",
|
"description": "Display the number of selected photos",
|
||||||
"type": "text",
|
"type": "text",
|
||||||
|
@ -391,7 +386,7 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"selectedPhotosWithYours": "{count} sélectionné ({yourCount} votre)",
|
"selectedPhotosWithYours": "{count} sélectionné(s) ({yourCount} à vous)",
|
||||||
"@selectedPhotosWithYours": {
|
"@selectedPhotosWithYours": {
|
||||||
"description": "Display the number of selected photos, including the number of selected photos owned by the user",
|
"description": "Display the number of selected photos, including the number of selected photos owned by the user",
|
||||||
"type": "text",
|
"type": "text",
|
||||||
|
@ -436,7 +431,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"showMemories": "Montrer les souvenirs",
|
"showMemories": "Montrer les souvenirs",
|
||||||
"yearsAgo": "{count, plural, one{{count} il y a un an} other{{count} il y a des années}}",
|
"yearsAgo": "{count, plural, one{il y a {count} an} other{il y a {count} ans}}",
|
||||||
"backupSettings": "Paramètres de la sauvegarde",
|
"backupSettings": "Paramètres de la sauvegarde",
|
||||||
"backupOverMobileData": "Sauvegarde sur données mobiles",
|
"backupOverMobileData": "Sauvegarde sur données mobiles",
|
||||||
"backupVideos": "Sauvegarde des vidéos",
|
"backupVideos": "Sauvegarde des vidéos",
|
||||||
|
@ -468,6 +463,7 @@
|
||||||
"updateAvailable": "Une mise à jour est disponible",
|
"updateAvailable": "Une mise à jour est disponible",
|
||||||
"ignoreUpdate": "Ignorer",
|
"ignoreUpdate": "Ignorer",
|
||||||
"downloading": "Téléchargement en cours...",
|
"downloading": "Téléchargement en cours...",
|
||||||
|
"cannotDeleteSharedFiles": "Les fichiers partagés ne peuvent pas être supprimés",
|
||||||
"theDownloadCouldNotBeCompleted": "Le téléchargement n'a pas pu être terminé",
|
"theDownloadCouldNotBeCompleted": "Le téléchargement n'a pas pu être terminé",
|
||||||
"retry": "Réessayer",
|
"retry": "Réessayer",
|
||||||
"backedUpFolders": "Dossiers sauvegardés",
|
"backedUpFolders": "Dossiers sauvegardés",
|
||||||
|
@ -644,6 +640,9 @@
|
||||||
"startBackup": "Démarrer la sauvegarde",
|
"startBackup": "Démarrer la sauvegarde",
|
||||||
"noPhotosAreBeingBackedUpRightNow": "Aucune photo en cours de sauvegarde",
|
"noPhotosAreBeingBackedUpRightNow": "Aucune photo en cours de sauvegarde",
|
||||||
"preserveMore": "Conserver plus",
|
"preserveMore": "Conserver plus",
|
||||||
|
"grantFullAccessPrompt": "Veuillez autoriser l’accès à toutes les photos dans les paramètres",
|
||||||
|
"openSettings": "Ouvrir les paramètres",
|
||||||
|
"selectMorePhotos": "Sélectionner plus de photos",
|
||||||
"existingUser": "Utilisateur existant",
|
"existingUser": "Utilisateur existant",
|
||||||
"privateBackups": "Sauvegardes privées",
|
"privateBackups": "Sauvegardes privées",
|
||||||
"forYourMemories": "pour vos souvenirs",
|
"forYourMemories": "pour vos souvenirs",
|
||||||
|
@ -814,6 +813,7 @@
|
||||||
"fileFailedToSaveToGallery": "Échec de l'enregistrement dans la galerie",
|
"fileFailedToSaveToGallery": "Échec de l'enregistrement dans la galerie",
|
||||||
"download": "Télécharger",
|
"download": "Télécharger",
|
||||||
"pressAndHoldToPlayVideo": "Appuyez et maintenez enfoncé pour lire la vidéo",
|
"pressAndHoldToPlayVideo": "Appuyez et maintenez enfoncé pour lire la vidéo",
|
||||||
|
"pressAndHoldToPlayVideoDetailed": "Maintenez appuyé sur l'image pour lire la vidéo",
|
||||||
"downloadFailed": "Échec du téléchargement",
|
"downloadFailed": "Échec du téléchargement",
|
||||||
"deduplicateFiles": "Déduplication de fichiers",
|
"deduplicateFiles": "Déduplication de fichiers",
|
||||||
"deselectAll": "Tout déselectionner",
|
"deselectAll": "Tout déselectionner",
|
||||||
|
@ -862,7 +862,7 @@
|
||||||
"@freeUpSpaceSaving": {
|
"@freeUpSpaceSaving": {
|
||||||
"description": "Text to tell user how much space they can free up by deleting items from the device"
|
"description": "Text to tell user how much space they can free up by deleting items from the device"
|
||||||
},
|
},
|
||||||
"freeUpAccessPostDelete": "Vous pouvez toujours accéder à {count, plural, one {it} other {them}} sur ente tant que vous avez un abonnement actif",
|
"freeUpAccessPostDelete": "Vous pouvez toujours {count, plural, one {y} other {y}} accéder sur ente tant que vous avez un abonnement actif",
|
||||||
"@freeUpAccessPostDelete": {
|
"@freeUpAccessPostDelete": {
|
||||||
"placeholders": {
|
"placeholders": {
|
||||||
"count": {
|
"count": {
|
||||||
|
@ -1101,6 +1101,6 @@
|
||||||
"successfullyHid": "Masquage réussi",
|
"successfullyHid": "Masquage réussi",
|
||||||
"successfullyUnhid": "Masquage réussi",
|
"successfullyUnhid": "Masquage réussi",
|
||||||
"crashReporting": "Rapports d'erreurs",
|
"crashReporting": "Rapports d'erreurs",
|
||||||
"addToHiddenAlbum": "Add to hidden album",
|
"addToHiddenAlbum": "Ajouter à un album masqué",
|
||||||
"moveToHiddenAlbum": "Move to hidden album"
|
"moveToHiddenAlbum": "Déplacer vers un album masqué"
|
||||||
}
|
}
|
|
@ -189,6 +189,10 @@
|
||||||
"disableDownloadWarningBody": "查看者仍然可以使用外部工具截图或保存您的照片副本",
|
"disableDownloadWarningBody": "查看者仍然可以使用外部工具截图或保存您的照片副本",
|
||||||
"allowDownloads": "允许下载",
|
"allowDownloads": "允许下载",
|
||||||
"linkDeviceLimit": "设备限制",
|
"linkDeviceLimit": "设备限制",
|
||||||
|
"noDeviceLimit": "无",
|
||||||
|
"@noDeviceLimit": {
|
||||||
|
"description": "Text to indicate that there is limit on number of devices"
|
||||||
|
},
|
||||||
"linkExpiry": "链接过期",
|
"linkExpiry": "链接过期",
|
||||||
"linkExpired": "已过期",
|
"linkExpired": "已过期",
|
||||||
"linkEnabled": "已启用",
|
"linkEnabled": "已启用",
|
||||||
|
@ -201,15 +205,6 @@
|
||||||
"manageLink": "管理链接",
|
"manageLink": "管理链接",
|
||||||
"linkExpiresOn": "链接将在 {expiryTime} 过期",
|
"linkExpiresOn": "链接将在 {expiryTime} 过期",
|
||||||
"albumUpdated": "相册已更新",
|
"albumUpdated": "相册已更新",
|
||||||
"maxDeviceLimitSpikeHandling": "当设置为最大值 ({maxValue}) 时,设备限制将放宽以允许大量查看者查看的临时高峰。",
|
|
||||||
"@maxDeviceLimitSpikeHandling": {
|
|
||||||
"placeholders": {
|
|
||||||
"maxValue": {
|
|
||||||
"type": "int",
|
|
||||||
"example": "100"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"never": "永不",
|
"never": "永不",
|
||||||
"custom": "自定义",
|
"custom": "自定义",
|
||||||
"@custom": {
|
"@custom": {
|
||||||
|
@ -435,6 +430,7 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"showMemories": "显示回忆",
|
||||||
"yearsAgo": "{count, plural, one{{count} 年前} other{{count} 年前}}",
|
"yearsAgo": "{count, plural, one{{count} 年前} other{{count} 年前}}",
|
||||||
"backupSettings": "备份设置",
|
"backupSettings": "备份设置",
|
||||||
"backupOverMobileData": "通过移动数据备份",
|
"backupOverMobileData": "通过移动数据备份",
|
||||||
|
@ -467,6 +463,7 @@
|
||||||
"updateAvailable": "有可用的更新",
|
"updateAvailable": "有可用的更新",
|
||||||
"ignoreUpdate": "忽略",
|
"ignoreUpdate": "忽略",
|
||||||
"downloading": "正在下载...",
|
"downloading": "正在下载...",
|
||||||
|
"cannotDeleteSharedFiles": "无法删除共享文件",
|
||||||
"theDownloadCouldNotBeCompleted": "未能完成下载",
|
"theDownloadCouldNotBeCompleted": "未能完成下载",
|
||||||
"retry": "重试",
|
"retry": "重试",
|
||||||
"backedUpFolders": "已备份的文件夹",
|
"backedUpFolders": "已备份的文件夹",
|
||||||
|
@ -643,6 +640,9 @@
|
||||||
"startBackup": "开始备份",
|
"startBackup": "开始备份",
|
||||||
"noPhotosAreBeingBackedUpRightNow": "目前没有照片正在备份",
|
"noPhotosAreBeingBackedUpRightNow": "目前没有照片正在备份",
|
||||||
"preserveMore": "保留更多",
|
"preserveMore": "保留更多",
|
||||||
|
"grantFullAccessPrompt": "请在“设置”应用中将权限更改为允许访问所有所有照片",
|
||||||
|
"openSettings": "打开“设置”",
|
||||||
|
"selectMorePhotos": "选择更多照片",
|
||||||
"existingUser": "现有用户",
|
"existingUser": "现有用户",
|
||||||
"privateBackups": "私人备份",
|
"privateBackups": "私人备份",
|
||||||
"forYourMemories": "为您的回忆",
|
"forYourMemories": "为您的回忆",
|
||||||
|
@ -813,6 +813,7 @@
|
||||||
"fileFailedToSaveToGallery": "无法将文件保存到相册",
|
"fileFailedToSaveToGallery": "无法将文件保存到相册",
|
||||||
"download": "下载",
|
"download": "下载",
|
||||||
"pressAndHoldToPlayVideo": "按住以播放视频",
|
"pressAndHoldToPlayVideo": "按住以播放视频",
|
||||||
|
"pressAndHoldToPlayVideoDetailed": "长按图像以播放视频",
|
||||||
"downloadFailed": "下載失敗",
|
"downloadFailed": "下載失敗",
|
||||||
"deduplicateFiles": "重复文件",
|
"deduplicateFiles": "重复文件",
|
||||||
"deselectAll": "取消全选",
|
"deselectAll": "取消全选",
|
||||||
|
@ -1095,7 +1096,11 @@
|
||||||
"sharedByYou": "您共享的",
|
"sharedByYou": "您共享的",
|
||||||
"inviteYourFriendsToEnte": "邀请您的好友加入ente",
|
"inviteYourFriendsToEnte": "邀请您的好友加入ente",
|
||||||
"failedToDownloadVideo": "视频下载失败",
|
"failedToDownloadVideo": "视频下载失败",
|
||||||
|
"hiding": "正在隐藏...",
|
||||||
|
"unhiding": "正在取消隐藏...",
|
||||||
|
"successfullyHid": "已成功隐藏",
|
||||||
|
"successfullyUnhid": "已成功取消隐藏",
|
||||||
"crashReporting": "崩溃报告",
|
"crashReporting": "崩溃报告",
|
||||||
"addToHiddenAlbum": "Add to hidden album",
|
"addToHiddenAlbum": "添加到隐藏相册",
|
||||||
"moveToHiddenAlbum": "Move to hidden album"
|
"moveToHiddenAlbum": "移至隐藏相册"
|
||||||
}
|
}
|
|
@ -27,4 +27,27 @@ class Location with _$Location {
|
||||||
if (latValue == 0.0 && longValue == 0.0) return false;
|
if (latValue == 0.0 && longValue == 0.0) return false;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// isValidRange checks if the latitude and longitude are within the valid range
|
||||||
|
// for latitude and longitude. Note: We are only checking the range while
|
||||||
|
// rending location on the map. We need to investigate in which cases we are
|
||||||
|
// parsing incorrect location value.
|
||||||
|
static bool isValidRange({
|
||||||
|
required double latitude,
|
||||||
|
required double longitude,
|
||||||
|
}) {
|
||||||
|
if (latitude.isNaN || latitude.isInfinite) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (longitude.isNaN || longitude.isInfinite) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (latitude >= 90 || latitude <= -90) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (longitude >= 180 || longitude <= -180) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,8 +25,9 @@ class NotificationService {
|
||||||
NotificationResponse notificationResponse,
|
NotificationResponse notificationResponse,
|
||||||
)
|
)
|
||||||
onNotificationTapped,
|
onNotificationTapped,
|
||||||
|
SharedPreferences preferences,
|
||||||
) async {
|
) async {
|
||||||
_preferences = await SharedPreferences.getInstance();
|
_preferences = preferences;
|
||||||
const androidSettings = AndroidInitializationSettings('notification_icon');
|
const androidSettings = AndroidInitializationSettings('notification_icon');
|
||||||
const iosSettings = DarwinInitializationSettings(
|
const iosSettings = DarwinInitializationSettings(
|
||||||
requestAlertPermission: false,
|
requestAlertPermission: false,
|
||||||
|
|
|
@ -139,6 +139,11 @@ class RemoteSyncService {
|
||||||
Bus.instance.fire(SyncStatusUpdate(SyncStatus.completedBackup));
|
Bus.instance.fire(SyncStatusUpdate(SyncStatus.completedBackup));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
// if filesToBeUploaded is empty, clear any stale files in the temp
|
||||||
|
// directory
|
||||||
|
if (filesToBeUploaded.isEmpty) {
|
||||||
|
await _uploader.removeStaleFiles();
|
||||||
|
}
|
||||||
_existingSync?.complete();
|
_existingSync?.complete();
|
||||||
_existingSync = null;
|
_existingSync = null;
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,6 +9,7 @@ import "package:latlong2/latlong.dart";
|
||||||
import "package:logging/logging.dart";
|
import "package:logging/logging.dart";
|
||||||
import "package:photos/generated/l10n.dart";
|
import "package:photos/generated/l10n.dart";
|
||||||
import 'package:photos/models/file/file.dart';
|
import 'package:photos/models/file/file.dart';
|
||||||
|
import "package:photos/models/location/location.dart";
|
||||||
import "package:photos/theme/ente_theme.dart";
|
import "package:photos/theme/ente_theme.dart";
|
||||||
import "package:photos/ui/common/loading_widget.dart";
|
import "package:photos/ui/common/loading_widget.dart";
|
||||||
import "package:photos/ui/map/image_marker.dart";
|
import "package:photos/ui/map/image_marker.dart";
|
||||||
|
@ -78,9 +79,17 @@ class _MapScreenState extends State<MapScreen> {
|
||||||
bool hasAnyLocation = false;
|
bool hasAnyLocation = false;
|
||||||
EnteFile? mostRecentFile;
|
EnteFile? mostRecentFile;
|
||||||
for (var file in files) {
|
for (var file in files) {
|
||||||
if (file.hasLocation && file.location != null) {
|
if (file.hasLocation) {
|
||||||
|
if (!Location.isValidRange(
|
||||||
|
latitude: file.location!.latitude!,
|
||||||
|
longitude: file.location!.longitude!,
|
||||||
|
)) {
|
||||||
|
_logger.warning(
|
||||||
|
'Skipping file with invalid location ${file.toString()}',
|
||||||
|
);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
hasAnyLocation = true;
|
hasAnyLocation = true;
|
||||||
|
|
||||||
if (mostRecentFile == null) {
|
if (mostRecentFile == null) {
|
||||||
mostRecentFile = file;
|
mostRecentFile = file;
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -54,6 +54,7 @@ import "package:photos/ui/viewer/gallery/collection_page.dart";
|
||||||
import 'package:photos/utils/dialog_util.dart';
|
import 'package:photos/utils/dialog_util.dart';
|
||||||
import "package:photos/utils/navigation_util.dart";
|
import "package:photos/utils/navigation_util.dart";
|
||||||
import 'package:receive_sharing_intent/receive_sharing_intent.dart';
|
import 'package:receive_sharing_intent/receive_sharing_intent.dart';
|
||||||
|
import "package:shared_preferences/shared_preferences.dart";
|
||||||
import 'package:uni_links/uni_links.dart';
|
import 'package:uni_links/uni_links.dart';
|
||||||
|
|
||||||
class HomeWidget extends StatefulWidget {
|
class HomeWidget extends StatefulWidget {
|
||||||
|
@ -209,7 +210,10 @@ class _HomeWidgetState extends State<HomeWidget> {
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
NotificationService.instance.init(_onDidReceiveNotificationResponse);
|
SharedPreferences.getInstance().then((preferences) {
|
||||||
|
NotificationService.instance
|
||||||
|
.init(_onDidReceiveNotificationResponse, preferences);
|
||||||
|
});
|
||||||
|
|
||||||
super.initState();
|
super.initState();
|
||||||
}
|
}
|
||||||
|
@ -278,10 +282,12 @@ class _HomeWidgetState extends State<HomeWidget> {
|
||||||
);
|
);
|
||||||
// For sharing images coming from outside the app while the app is closed
|
// For sharing images coming from outside the app while the app is closed
|
||||||
ReceiveSharingIntent.getInitialMedia().then((List<SharedMediaFile> value) {
|
ReceiveSharingIntent.getInitialMedia().then((List<SharedMediaFile> value) {
|
||||||
setState(() {
|
if (mounted) {
|
||||||
_sharedFiles = value;
|
setState(() {
|
||||||
_shouldRenderCreateCollectionSheet = true;
|
_sharedFiles = value;
|
||||||
});
|
_shouldRenderCreateCollectionSheet = true;
|
||||||
|
});
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -130,7 +130,7 @@ class _UserCollectionsTabState extends State<UserCollectionsTab>
|
||||||
padding: const EdgeInsets.only(left: 12, right: 6),
|
padding: const EdgeInsets.only(left: 12, right: 6),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
SliverToBoxAdapter(child: DeleteEmptyAlbums(collections ?? [])),
|
SliverToBoxAdapter(child: DeleteEmptyAlbums(collections)),
|
||||||
Configuration.instance.hasConfiguredAccount()
|
Configuration.instance.hasConfiguredAccount()
|
||||||
? CollectionsFlexiGridViewWidget(
|
? CollectionsFlexiGridViewWidget(
|
||||||
collections,
|
collections,
|
||||||
|
|
|
@ -42,7 +42,6 @@ class _DeleteEmptyAlbumsState extends State<DeleteEmptyAlbums> {
|
||||||
})
|
})
|
||||||
.toList()
|
.toList()
|
||||||
.length;
|
.length;
|
||||||
debugPrint("Empty albums count $emptyAlbumCount");
|
|
||||||
return emptyAlbumCount > 2;
|
return emptyAlbumCount > 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -152,12 +152,16 @@ class _ZoomableImageState extends State<ZoomableImage>
|
||||||
if (!_loadedFinalImage && !_loadingFinalImage) {
|
if (!_loadedFinalImage && !_loadingFinalImage) {
|
||||||
_loadingFinalImage = true;
|
_loadingFinalImage = true;
|
||||||
getFileFromServer(_photo).then((file) {
|
getFileFromServer(_photo).then((file) {
|
||||||
_onFinalImageLoaded(
|
if (file != null) {
|
||||||
Image.file(
|
_onFinalImageLoaded(
|
||||||
file!,
|
Image.file(
|
||||||
gaplessPlayback: true,
|
file,
|
||||||
).image,
|
gaplessPlayback: true,
|
||||||
);
|
).image,
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
_loadingFinalImage = false;
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -106,6 +106,9 @@ class _LazyGroupGalleryState extends State<LazyGroupGallery> {
|
||||||
}
|
}
|
||||||
|
|
||||||
Future _onReload(FilesUpdatedEvent event) async {
|
Future _onReload(FilesUpdatedEvent event) async {
|
||||||
|
if (_files.isEmpty) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
final DateTime groupDate =
|
final DateTime groupDate =
|
||||||
DateTime.fromMicrosecondsSinceEpoch(_files[0].creationTime!);
|
DateTime.fromMicrosecondsSinceEpoch(_files[0].creationTime!);
|
||||||
// iterate over files and check if any of the belongs to this group
|
// iterate over files and check if any of the belongs to this group
|
||||||
|
|
|
@ -45,6 +45,7 @@ class FileUploader {
|
||||||
static const kBlockedUploadsPollFrequency = Duration(seconds: 2);
|
static const kBlockedUploadsPollFrequency = Duration(seconds: 2);
|
||||||
static const kFileUploadTimeout = Duration(minutes: 50);
|
static const kFileUploadTimeout = Duration(minutes: 50);
|
||||||
static const k20MBStorageBuffer = 20 * 1024 * 1024;
|
static const k20MBStorageBuffer = 20 * 1024 * 1024;
|
||||||
|
static const kUploadTempPrefix = "upload_file_";
|
||||||
|
|
||||||
final _logger = Logger("FileUploader");
|
final _logger = Logger("FileUploader");
|
||||||
final _dio = NetworkClient.instance.getDio();
|
final _dio = NetworkClient.instance.getDio();
|
||||||
|
@ -282,6 +283,29 @@ class FileUploader {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Future<void> removeStaleFiles() async {
|
||||||
|
try {
|
||||||
|
final String dir = Configuration.instance.getTempDirectory();
|
||||||
|
// delete all files in the temp directory that start with upload_ and
|
||||||
|
// ends with .encrypted. Fetch files in async manner
|
||||||
|
final files = await Directory(dir).list().toList();
|
||||||
|
final filesToDelete = files.where((file) {
|
||||||
|
return file.path.contains(kUploadTempPrefix) &&
|
||||||
|
file.path.contains(".encrypted");
|
||||||
|
});
|
||||||
|
if (filesToDelete.isEmpty) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
_logger.info('cleaning up state files ${filesToDelete.length}');
|
||||||
|
for (final file in filesToDelete) {
|
||||||
|
await file.delete();
|
||||||
|
}
|
||||||
|
} catch (e, s) {
|
||||||
|
_logger.severe("Failed to remove stale files", e, s);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Future<void> checkNetworkForUpload({bool isForceUpload = false}) async {
|
Future<void> checkNetworkForUpload({bool isForceUpload = false}) async {
|
||||||
// Note: We don't support force uploading currently. During force upload,
|
// Note: We don't support force uploading currently. During force upload,
|
||||||
// network check is skipped completely
|
// network check is skipped completely
|
||||||
|
@ -340,8 +364,10 @@ class FileUploader {
|
||||||
|
|
||||||
final tempDirectory = Configuration.instance.getTempDirectory();
|
final tempDirectory = Configuration.instance.getTempDirectory();
|
||||||
final String uniqueID = const Uuid().v4().toString();
|
final String uniqueID = const Uuid().v4().toString();
|
||||||
final encryptedFilePath = '$tempDirectory${uniqueID}_file.encrypted';
|
final encryptedFilePath =
|
||||||
final encryptedThumbnailPath = '$tempDirectory${uniqueID}_thumb.encrypted';
|
'$tempDirectory$kUploadTempPrefix${uniqueID}_file.encrypted';
|
||||||
|
final encryptedThumbnailPath =
|
||||||
|
'$tempDirectory$kUploadTempPrefix${uniqueID}_thumb.encrypted';
|
||||||
MediaUploadData? mediaUploadData;
|
MediaUploadData? mediaUploadData;
|
||||||
var uploadCompleted = false;
|
var uploadCompleted = false;
|
||||||
// This flag is used to decide whether to clear the iOS origin file cache
|
// This flag is used to decide whether to clear the iOS origin file cache
|
||||||
|
|
Loading…
Add table
Reference in a new issue