From b2d2f0d76df330363a4683c835c7456b5d260d85 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Fri, 26 Jul 2024 19:52:12 +0530 Subject: [PATCH 01/90] feat(mobile): init preview video branch --- mobile/lib/models/metadata/file_magic.dart | 1 + mobile/lib/ui/viewer/file/file_widget.dart | 16 +- .../ui/viewer/file/preview_video_widget.dart | 299 ++++++++++++++++++ .../lib/ui/viewer/file/video_view_widget.dart | 151 +++++++++ mobile/lib/utils/file_util.dart | 39 +++ 5 files changed, 492 insertions(+), 14 deletions(-) create mode 100644 mobile/lib/ui/viewer/file/preview_video_widget.dart create mode 100644 mobile/lib/ui/viewer/file/video_view_widget.dart diff --git a/mobile/lib/models/metadata/file_magic.dart b/mobile/lib/models/metadata/file_magic.dart index d50dc0dd845..59fdc2c94ac 100644 --- a/mobile/lib/models/metadata/file_magic.dart +++ b/mobile/lib/models/metadata/file_magic.dart @@ -12,6 +12,7 @@ const latKey = "lat"; const longKey = "long"; const motionVideoIndexKey = "mvi"; const noThumbKey = "noThumb"; +const previewVersionKey = "previewVersion"; class MagicMetadata { // 0 -> visible diff --git a/mobile/lib/ui/viewer/file/file_widget.dart b/mobile/lib/ui/viewer/file/file_widget.dart index 0fd1181d9ab..d0acc21ae51 100644 --- a/mobile/lib/ui/viewer/file/file_widget.dart +++ b/mobile/lib/ui/viewer/file/file_widget.dart @@ -1,12 +1,9 @@ -import "dart:io"; - import "package:flutter/foundation.dart"; import 'package:flutter/material.dart'; import 'package:logging/logging.dart'; import 'package:photos/models/file/file.dart'; import 'package:photos/models/file/file_type.dart'; -import "package:photos/ui/viewer/file/video_widget.dart"; -import "package:photos/ui/viewer/file/video_widget_new.dart"; +import "package:photos/ui/viewer/file/video_view_widget.dart"; import "package:photos/ui/viewer/file/zoomable_live_image_new.dart"; class FileWidget extends StatelessWidget { @@ -42,16 +39,7 @@ class FileWidget extends StatelessWidget { key: key ?? ValueKey(fileKey), ); } else if (file.fileType == FileType.video) { - // use old video widget on iOS simulator as the new one crashes while - // playing certain videos on iOS simulator - if (kDebugMode && Platform.isIOS) { - return VideoWidget( - file, - tagPrefix: tagPrefix, - playbackCallback: playbackCallback, - ); - } - return VideoWidgetNew( + return VideoViewWidget( file, tagPrefix: tagPrefix, playbackCallback: playbackCallback, diff --git a/mobile/lib/ui/viewer/file/preview_video_widget.dart b/mobile/lib/ui/viewer/file/preview_video_widget.dart new file mode 100644 index 00000000000..31125f8fde8 --- /dev/null +++ b/mobile/lib/ui/viewer/file/preview_video_widget.dart @@ -0,0 +1,299 @@ +import 'dart:async'; +import 'dart:io'; + +import 'package:chewie/chewie.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:logging/logging.dart'; +import 'package:photos/core/constants.dart'; +import "package:photos/core/event_bus.dart"; +import "package:photos/events/file_swipe_lock_event.dart"; +import "package:photos/generated/l10n.dart"; +import "package:photos/models/file/extensions/file_props.dart"; +import 'package:photos/models/file/file.dart'; +import "package:photos/service_locator.dart"; +import 'package:photos/services/files_service.dart'; +import "package:photos/ui/actions/file/file_actions.dart"; +import 'package:photos/ui/viewer/file/thumbnail_widget.dart'; +import 'package:photos/ui/viewer/file/video_controls.dart'; +import "package:photos/utils/dialog_util.dart"; +import 'package:photos/utils/file_util.dart'; +import 'package:photos/utils/toast_util.dart'; +import "package:photos/utils/wakelock_util.dart"; +import 'package:video_player/video_player.dart'; +import 'package:visibility_detector/visibility_detector.dart'; + +class PreviewVideoWidget extends StatefulWidget { + final EnteFile file; + final bool? autoPlay; + final String? tagPrefix; + final Function(bool)? playbackCallback; + + const PreviewVideoWidget( + this.file, { + this.autoPlay = false, + this.tagPrefix, + this.playbackCallback, + Key? key, + }) : super(key: key); + + @override + State createState() => _PreviewVideoWidgetState(); +} + +class _PreviewVideoWidgetState extends State { + final _logger = Logger("VideoWidget"); + VideoPlayerController? _videoPlayerController; + ChewieController? _chewieController; + final _progressNotifier = ValueNotifier(null); + bool _isPlaying = false; + final EnteWakeLock _wakeLock = EnteWakeLock(); + bool _isFileSwipeLocked = false; + late final StreamSubscription + _fileSwipeLockEventSubscription; + + @override + void initState() { + super.initState(); + if (widget.file.isRemoteFile) { + _loadNetworkVideo(); + _setFileSizeIfNull(); + } else if (widget.file.isSharedMediaToAppSandbox) { + final localFile = File(getSharedMediaFilePath(widget.file)); + if (localFile.existsSync()) { + _logger.fine("loading from app cache"); + _setVideoPlayerController(file: localFile); + } else if (widget.file.uploadedFileID != null) { + _loadNetworkVideo(); + } + } else { + widget.file.getAsset.then((asset) async { + if (asset == null || !(await asset.exists)) { + if (widget.file.uploadedFileID != null) { + _loadNetworkVideo(); + } + } else { + // ignore: unawaited_futures + asset.getMediaUrl().then((url) { + _setVideoPlayerController(url: url); + }); + } + }); + } + _fileSwipeLockEventSubscription = + Bus.instance.on().listen((event) { + setState(() { + _isFileSwipeLocked = event.shouldSwipeLock; + }); + }); + } + + void _setFileSizeIfNull() { + if (widget.file.fileSize == null && widget.file.canEditMetaInfo) { + FilesService.instance + .getFileSize(widget.file.uploadedFileID!) + .then((value) { + widget.file.fileSize = value; + if (mounted) { + setState(() {}); + } + }); + } + } + + void _loadNetworkVideo() { + getFileFromServer( + widget.file, + progressCallback: (count, total) { + if (!mounted) { + return; + } + _progressNotifier.value = count / (widget.file.fileSize ?? total); + if (_progressNotifier.value == 1) { + if (mounted) { + showShortToast(context, S.of(context).decryptingVideo); + } + } + }, + ).then((file) { + if (file != null && mounted) { + _setVideoPlayerController(file: file); + } + }).onError((error, stackTrace) { + if (mounted) { + showErrorDialog( + context, + "Error", + S.of(context).failedToDownloadVideo, + ); + } + }); + } + + @override + void dispose() { + _fileSwipeLockEventSubscription.cancel(); + removeCallBack(widget.file); + _videoPlayerController?.dispose(); + _chewieController?.dispose(); + _progressNotifier.dispose(); + _wakeLock.dispose(); + super.dispose(); + } + + void _setVideoPlayerController({ + String? url, + File? file, + }) { + if (!mounted) { + // Note: Do not initiale video player if widget is not mounted. + // On Android, if multiple instance of ExoPlayer is created, it will start + // resulting in playback errors for videos. See https://github.com/google/ExoPlayer/issues/6168 + return; + } + VideoPlayerController videoPlayerController; + if (url != null) { + videoPlayerController = VideoPlayerController.networkUrl(Uri.parse(url)); + } else { + videoPlayerController = VideoPlayerController.file(file!); + } + + debugPrint("videoPlayerController: $videoPlayerController"); + _videoPlayerController = videoPlayerController + ..initialize().whenComplete(() { + if (mounted) { + setState(() {}); + } + }).onError( + (error, stackTrace) { + if (mounted && flagService.internalUser) { + if (error is Exception) { + showErrorDialogForException( + context: context, + exception: error, + message: "Failed to play video\n ${error.toString()}", + ); + } else { + showToast(context, "Failed to play video"); + } + } + }, + ); + } + + @override + Widget build(BuildContext context) { + final content = _videoPlayerController != null && + _videoPlayerController!.value.isInitialized + ? _getVideoPlayer() + : _getLoadingWidget(); + final contentWithDetector = GestureDetector( + onVerticalDragUpdate: _isFileSwipeLocked + ? null + : (d) => { + if (d.delta.dy > dragSensitivity) + { + Navigator.of(context).pop(), + } + else if (d.delta.dy < (dragSensitivity * -1)) + { + showDetailsSheet(context, widget.file), + }, + }, + child: content, + ); + return VisibilityDetector( + key: Key(widget.file.tag), + onVisibilityChanged: (info) { + if (info.visibleFraction < 1) { + if (mounted && _chewieController != null) { + _chewieController!.pause(); + } + } + }, + child: Hero( + tag: widget.tagPrefix! + widget.file.tag, + child: contentWithDetector, + ), + ); + } + + Widget _getLoadingWidget() { + return Stack( + children: [ + _getThumbnail(), + Container( + color: Colors.black12, + constraints: const BoxConstraints.expand(), + ), + Center( + child: SizedBox.fromSize( + size: const Size.square(20), + child: ValueListenableBuilder( + valueListenable: _progressNotifier, + builder: (BuildContext context, double? progress, _) { + return progress == null || progress == 1 + ? const CupertinoActivityIndicator( + color: Colors.white, + ) + : CircularProgressIndicator( + backgroundColor: Colors.black, + value: progress, + valueColor: const AlwaysStoppedAnimation( + Color.fromRGBO(45, 194, 98, 1.0), + ), + ); + }, + ), + ), + ), + ], + ); + } + + Widget _getThumbnail() { + return Container( + color: Colors.black, + constraints: const BoxConstraints.expand(), + child: ThumbnailWidget( + widget.file, + fit: BoxFit.contain, + ), + ); + } + + Future _keepScreenAliveOnPlaying(bool isPlaying) async { + if (isPlaying) { + _wakeLock.enable(); + } + if (!isPlaying) { + _wakeLock.disable(); + } + } + + Widget _getVideoPlayer() { + _videoPlayerController!.addListener(() { + if (_isPlaying != _videoPlayerController!.value.isPlaying) { + _isPlaying = _videoPlayerController!.value.isPlaying; + if (widget.playbackCallback != null) { + widget.playbackCallback!(_isPlaying); + } + unawaited(_keepScreenAliveOnPlaying(_isPlaying)); + } + }); + _chewieController = ChewieController( + videoPlayerController: _videoPlayerController!, + aspectRatio: _videoPlayerController!.value.aspectRatio, + autoPlay: widget.autoPlay!, + autoInitialize: true, + looping: true, + allowMuting: true, + allowFullScreen: false, + customControls: const VideoControls(), + ); + return Container( + color: Colors.black, + child: Chewie(controller: _chewieController!), + ); + } +} diff --git a/mobile/lib/ui/viewer/file/video_view_widget.dart b/mobile/lib/ui/viewer/file/video_view_widget.dart new file mode 100644 index 00000000000..e6e9708c35e --- /dev/null +++ b/mobile/lib/ui/viewer/file/video_view_widget.dart @@ -0,0 +1,151 @@ +// ignore_for_file: unused_import + +import 'dart:async'; +import 'dart:io'; + +import 'package:chewie/chewie.dart'; +import 'package:flutter/cupertino.dart'; +import "package:flutter/foundation.dart"; +import 'package:flutter/material.dart'; +import 'package:logging/logging.dart'; +import 'package:photos/core/constants.dart'; +import "package:photos/core/event_bus.dart"; +import "package:photos/events/file_swipe_lock_event.dart"; +import "package:photos/generated/l10n.dart"; +import 'package:photos/models/file/file.dart'; +import "package:photos/service_locator.dart"; +import "package:photos/ui/actions/file/file_actions.dart"; +import "package:photos/ui/viewer/file/preview_video_widget.dart"; +import 'package:photos/ui/viewer/file/thumbnail_widget.dart'; +import 'package:photos/ui/viewer/file/video_controls.dart'; +import "package:photos/ui/viewer/file/video_widget.dart"; +import "package:photos/ui/viewer/file/video_widget_new.dart"; +import "package:photos/utils/dialog_util.dart"; +import 'package:photos/utils/file_util.dart'; +import 'package:photos/utils/toast_util.dart'; +import "package:photos/utils/wakelock_util.dart"; +import 'package:video_player/video_player.dart'; +import 'package:visibility_detector/visibility_detector.dart'; + +class VideoViewWidget extends StatefulWidget { + final EnteFile file; + final bool? autoPlay; + final String? tagPrefix; + final Function(bool)? playbackCallback; + + const VideoViewWidget( + this.file, { + this.autoPlay = false, + this.tagPrefix, + this.playbackCallback, + super.key, + }); + + @override + State createState() => _VideoViewWidgetState(); +} + +class _VideoViewWidgetState extends State { + final _logger = Logger("VideoViewWidget"); + bool isCheckingForPreview = true; + File? previewFile; + + @override + void initState() { + super.initState(); + _checkForPreview(); + } + + void _checkForPreview() { + if (!flagService.internalUser) return; + getPreviewFileFromServer( + widget.file, + ).then((file) { + if (!mounted) return; + if (file != null) { + isCheckingForPreview = false; + previewFile = file; + setState(() {}); + } else { + isCheckingForPreview = false; + setState(() {}); + } + }).onError((error, stackTrace) { + if (!mounted) return; + _logger.warning("Failed to download preview video", error, stackTrace); + showErrorDialog( + context, + "Error", + S.of(context).failedToDownloadVideo, + ); + isCheckingForPreview = false; + setState(() {}); + }); + } + + @override + void dispose() { + super.dispose(); + } + + @override + Widget build(BuildContext context) { + if (flagService.internalUser) { + if (isCheckingForPreview) { + return _getLoadingWidget(); + } + + if (previewFile != null) { + return PreviewVideoWidget( + widget.file, + tagPrefix: widget.tagPrefix, + playbackCallback: widget.playbackCallback, + ); + } + } + + if (kDebugMode && Platform.isIOS) { + return VideoWidget( + widget.file, + tagPrefix: widget.tagPrefix, + playbackCallback: widget.playbackCallback, + ); + } + return VideoWidgetNew( + widget.file, + tagPrefix: widget.tagPrefix, + playbackCallback: widget.playbackCallback, + ); + } + + Widget _getLoadingWidget() { + return Stack( + children: [ + _getThumbnail(), + Container( + color: Colors.black12, + constraints: const BoxConstraints.expand(), + ), + Center( + child: SizedBox.fromSize( + size: const Size.square(20), + child: const CupertinoActivityIndicator( + color: Colors.white, + ), + ), + ), + ], + ); + } + + Widget _getThumbnail() { + return Container( + color: Colors.black, + constraints: const BoxConstraints.expand(), + child: ThumbnailWidget( + widget.file, + fit: BoxFit.contain, + ), + ); + } +} diff --git a/mobile/lib/utils/file_util.dart b/mobile/lib/utils/file_util.dart index 35240a3cc6c..9a6a7fa75f7 100644 --- a/mobile/lib/utils/file_util.dart +++ b/mobile/lib/utils/file_util.dart @@ -130,6 +130,45 @@ void removeCallBack(EnteFile file) { } } +Future getPreviewFileFromServer( + EnteFile file, { + ProgressCallback? progressCallback, +}) async { + final cacheManager = DefaultCacheManager(); + final fileFromCache = await cacheManager.getFileFromCache(file.downloadUrl); + if (fileFromCache != null) { + return fileFromCache.file; + } + final downloadID = file.uploadedFileID.toString(); + + if (progressCallback != null) { + _progressCallbacks[downloadID] = progressCallback; + } + + if (!_fileDownloadsInProgress.containsKey(downloadID)) { + final completer = Completer(); + _fileDownloadsInProgress[downloadID] = completer.future; + + Future downloadFuture; + + downloadFuture = _downloadAndCache( + file, + cacheManager, + progressCallback: (count, total) { + _progressCallbacks[downloadID]?.call(count, total); + }, + ); + + // ignore: unawaited_futures + downloadFuture.then((downloadedFile) async { + completer.complete(downloadedFile); + await _fileDownloadsInProgress.remove(downloadID); + _progressCallbacks.remove(downloadID); + }); + } + return _fileDownloadsInProgress[downloadID]; +} + Future getFileFromServer( EnteFile file, { ProgressCallback? progressCallback, From 9130e8646068d65d9c95edd7018abf8dc7111245 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Mon, 5 Aug 2024 03:57:16 +0530 Subject: [PATCH 02/90] feat(mobile): add preview video store --- mobile/lib/services/preview_video_store.dart | 157 +++++++++++++++++++ mobile/pubspec.lock | 25 +++ mobile/pubspec.yaml | 4 + 3 files changed, 186 insertions(+) create mode 100644 mobile/lib/services/preview_video_store.dart diff --git a/mobile/lib/services/preview_video_store.dart b/mobile/lib/services/preview_video_store.dart new file mode 100644 index 00000000000..95cb4f816a9 --- /dev/null +++ b/mobile/lib/services/preview_video_store.dart @@ -0,0 +1,157 @@ +import "dart:async"; +import "dart:convert"; +import "dart:io"; +import "dart:typed_data"; + +import "package:dio/dio.dart"; +import "package:encrypt/encrypt.dart"; +import "package:ffmpeg_kit_flutter_min/ffmpeg_kit.dart"; +import "package:ffmpeg_kit_flutter_min/return_code.dart"; +import "package:logging/logging.dart"; +import "package:path_provider/path_provider.dart"; +import "package:photos/core/network/network.dart"; +import "package:photos/models/file/file.dart"; +import "package:photos/utils/crypto_util.dart"; +import "package:photos/utils/file_download_util.dart"; +import "package:photos/utils/file_util.dart"; +import "package:video_compress/video_compress.dart"; + +class PreviewVideoStore { + PreviewVideoStore._privateConstructor(); + + static final PreviewVideoStore instance = + PreviewVideoStore._privateConstructor(); + + final _logger = Logger("PreviewVideoStore"); + final _dio = NetworkClient.instance.enteDio; + + Future chunkAndUploadVideo(EnteFile enteFile) async { + if (!enteFile.isUploaded) return; + + final file = await getFileFromServer(enteFile); + if (file == null) return; + final tmpDirectory = await getTemporaryDirectory(); + final prefix = "${tmpDirectory.path}/${enteFile.generatedID}"; + Directory(prefix).createSync(); + final mediaInfo = await VideoCompress.compressVideo( + file.path, + quality: VideoQuality.Res1280x720Quality, + deleteOrigin: true, + ); + if (mediaInfo?.path == null) return; + + final key = Key.fromLength(16); + final iv = IV.fromLength(16); + + final keyfile = File('$prefix/keyfile.key'); + keyfile.writeAsBytesSync(key.bytes); + + final keyinfo = File('$prefix/mykey.keyinfo'); + keyinfo.writeAsStringSync( + "data:text/plain;base64,${key.base64}\n" + "${keyfile.path}\n" + "${iv.base64}", + ); + + await FFmpegKit.execute( + """ + -i "${mediaInfo!.path}" + -c copy -f hls -hls_time 10 -hls_flags single_file + -hls_list_size 0 -hls_key_info_file ${keyinfo.path} + $prefix/video.m3u8""", + ).then((session) async { + final returnCode = await session.getReturnCode(); + + if (ReturnCode.isSuccess(returnCode)) { + final playlistFile = File("$prefix/output.m3u8"); + final previewFile = File("$prefix/segment000.ts"); + await _reportPreview(enteFile, previewFile); + await _reportPlaylist(enteFile, playlistFile); + } else if (ReturnCode.isCancel(returnCode)) { + _logger.warning("FFmpeg command cancelled"); + } else { + _logger.severe("FFmpeg command failed with return code $returnCode"); + } + }); + } + + Future _reportPlaylist(EnteFile file, File playlist) async { + _logger.info("Pushing playlist for $file"); + final encryptionKey = getFileKey(file); + final playlistContent = playlist.readAsStringSync(); + final encryptedPlaylist = await CryptoUtil.encryptChaCha( + utf8.encode(playlistContent) as Uint8List, + encryptionKey, + ); + final encryptedData = + CryptoUtil.bin2base64(encryptedPlaylist.encryptedData!); + final header = CryptoUtil.bin2base64(encryptedPlaylist.header!); + try { + final _ = await _dio.put( + "/files/file-data/playlist", + data: { + "fileID": file.generatedID, + "model": "hls_video", + "encryptedEmbedding": encryptedData, + "decryptionHeader": header, + }, + ); + } catch (e, s) { + _logger.severe(e, s); + } + } + + Future _reportPreview(EnteFile file, File preview) async { + _logger.info("Pushing preview for $file"); + try { + final response = await _dio.get( + "/files/file-data/preview/upload-url/${file.generatedID}", + ); + final uploadURL = response.data["uploadURL"]; + final _ = await _dio.put( + uploadURL, + data: await preview.readAsBytes(), + options: Options( + contentType: "application/octet-stream", + ), + ); + } catch (e, s) { + _logger.severe(e, s); + rethrow; + } + } + + Future getPlaylist(EnteFile file) async { + return await _getPlaylist(file); + } + + Future _getPlaylist(EnteFile file) async { + _logger.info("Getting playlist for $file"); + try { + final response = await _dio.get( + "/files/file-data/playlist/${file.generatedID}", + ); + final encryptedData = response.data["encryptedEmbedding"]; + final header = response.data["decryptionHeader"]; + final encryptionKey = getFileKey(file); + final playlistData = await CryptoUtil.decryptChaCha( + CryptoUtil.base642bin(encryptedData), + encryptionKey, + CryptoUtil.base642bin(header), + ); + final response2 = await _dio.get( + "/files/file-data/preview/${file.generatedID}", + ); + final previewURL = response2.data["previewURL"]; + final finalPlaylist = + utf8.decode(playlistData).replaceAll('\nvideo.ts', '\n$previewURL'); + final tempDir = await getTemporaryDirectory(); + final playlistFile = File("${tempDir.path}/${file.generatedID}.m3u8"); + await playlistFile.writeAsString(finalPlaylist); + return playlistFile; + } catch (e, s) { + _logger.severe(e, s); + return null; + } + } +} diff --git a/mobile/pubspec.lock b/mobile/pubspec.lock index ca981226977..e617b1f591b 100644 --- a/mobile/pubspec.lock +++ b/mobile/pubspec.lock @@ -81,6 +81,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.5.0" + asn1lib: + dependency: transitive + description: + name: asn1lib + sha256: "58082b3f0dca697204dbab0ef9ff208bfaea7767ea771076af9a343488428dda" + url: "https://pub.dev" + source: hosted + version: "1.5.3" async: dependency: transitive description: @@ -451,6 +459,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.17" + encrypt: + dependency: "direct main" + description: + name: encrypt + sha256: "62d9aa4670cc2a8798bab89b39fc71b6dfbacf615de6cf5001fb39f7e4a996a2" + url: "https://pub.dev" + source: hosted + version: "5.0.3" ente_cast: dependency: "direct main" description: @@ -2604,6 +2620,15 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.4" + video_compress: + dependency: "direct main" + description: + path: "." + ref: HEAD + resolved-ref: "3d948fa75007456e55636ae17208eeace9d219a9" + url: "https://github.com/RmanAkbarzadeh/VideoCompress.git" + source: git + version: "3.1.2" video_editor: dependency: "direct main" description: diff --git a/mobile/pubspec.yaml b/mobile/pubspec.yaml index cf3cd0bf4c0..08f0357508b 100644 --- a/mobile/pubspec.yaml +++ b/mobile/pubspec.yaml @@ -48,6 +48,7 @@ dependencies: dotted_border: ^2.1.0 dropdown_button2: ^2.0.0 email_validator: ^2.0.1 + encrypt: ^5.0.3 ente_cast: path: plugins/ente_cast ente_cast_normal: @@ -167,6 +168,9 @@ dependencies: uni_links: ^0.5.1 url_launcher: ^6.0.3 uuid: ^3.0.7 + video_compress: + git: + url: https://github.com/RmanAkbarzadeh/VideoCompress.git video_editor: git: url: https://github.com/prateekmedia/video_editor.git From 4456797e908e79f44653b9c442fdd305d2176fa2 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Tue, 13 Aug 2024 02:59:45 +0530 Subject: [PATCH 03/90] chore: update to full gpl ffmpeg kit --- mobile/lib/services/preview_video_store.dart | 4 +- .../ui/tools/editor/export_video_service.dart | 10 +- mobile/lib/utils/exif_util.dart | 6 +- mobile/lib/utils/ffprobe_util.dart | 2 +- mobile/plugins/clip_ggml | 1 + mobile/plugins/ente_cast/pubspec.lock | 269 +++++++++++++++++ mobile/plugins/ente_cast_none/pubspec.lock | 276 ++++++++++++++++++ mobile/plugins/ente_cast_normal/pubspec.lock | 4 +- mobile/plugins/ente_feature_flag/pubspec.lock | 4 +- mobile/pubspec.lock | 6 +- mobile/pubspec.yaml | 8 +- 11 files changed, 568 insertions(+), 22 deletions(-) create mode 160000 mobile/plugins/clip_ggml create mode 100644 mobile/plugins/ente_cast/pubspec.lock create mode 100644 mobile/plugins/ente_cast_none/pubspec.lock diff --git a/mobile/lib/services/preview_video_store.dart b/mobile/lib/services/preview_video_store.dart index 95cb4f816a9..70894f60b45 100644 --- a/mobile/lib/services/preview_video_store.dart +++ b/mobile/lib/services/preview_video_store.dart @@ -5,8 +5,8 @@ import "dart:typed_data"; import "package:dio/dio.dart"; import "package:encrypt/encrypt.dart"; -import "package:ffmpeg_kit_flutter_min/ffmpeg_kit.dart"; -import "package:ffmpeg_kit_flutter_min/return_code.dart"; +import "package:ffmpeg_kit_flutter_full_gpl/ffmpeg_kit.dart"; +import "package:ffmpeg_kit_flutter_full_gpl/return_code.dart"; import "package:logging/logging.dart"; import "package:path_provider/path_provider.dart"; import "package:photos/core/network/network.dart"; diff --git a/mobile/lib/ui/tools/editor/export_video_service.dart b/mobile/lib/ui/tools/editor/export_video_service.dart index 7fe4ae767e4..38d98514bd6 100644 --- a/mobile/lib/ui/tools/editor/export_video_service.dart +++ b/mobile/lib/ui/tools/editor/export_video_service.dart @@ -1,11 +1,11 @@ import 'dart:developer'; import 'dart:io'; -import 'package:ffmpeg_kit_flutter_min/ffmpeg_kit.dart'; -import 'package:ffmpeg_kit_flutter_min/ffmpeg_kit_config.dart'; -import 'package:ffmpeg_kit_flutter_min/ffmpeg_session.dart'; -import 'package:ffmpeg_kit_flutter_min/return_code.dart'; -import 'package:ffmpeg_kit_flutter_min/statistics.dart'; +import 'package:ffmpeg_kit_flutter_full_gpl/ffmpeg_kit.dart'; +import 'package:ffmpeg_kit_flutter_full_gpl/ffmpeg_kit_config.dart'; +import 'package:ffmpeg_kit_flutter_full_gpl/ffmpeg_session.dart'; +import 'package:ffmpeg_kit_flutter_full_gpl/return_code.dart'; +import 'package:ffmpeg_kit_flutter_full_gpl/statistics.dart'; import 'package:video_editor/video_editor.dart'; class ExportService { diff --git a/mobile/lib/utils/exif_util.dart b/mobile/lib/utils/exif_util.dart index d9bac85e6d9..2fce6c4aa92 100644 --- a/mobile/lib/utils/exif_util.dart +++ b/mobile/lib/utils/exif_util.dart @@ -4,9 +4,9 @@ import "dart:io"; import "package:computer/computer.dart"; import 'package:exif/exif.dart'; -import "package:ffmpeg_kit_flutter_min/ffprobe_kit.dart"; -import "package:ffmpeg_kit_flutter_min/media_information.dart"; -import "package:ffmpeg_kit_flutter_min/media_information_session.dart"; +import "package:ffmpeg_kit_flutter_full_gpl/ffprobe_kit.dart"; +import "package:ffmpeg_kit_flutter_full_gpl/media_information.dart"; +import "package:ffmpeg_kit_flutter_full_gpl/media_information_session.dart"; import "package:flutter/foundation.dart"; import 'package:intl/intl.dart'; import 'package:logging/logging.dart'; diff --git a/mobile/lib/utils/ffprobe_util.dart b/mobile/lib/utils/ffprobe_util.dart index 6da87d8fd61..ae49b295de1 100644 --- a/mobile/lib/utils/ffprobe_util.dart +++ b/mobile/lib/utils/ffprobe_util.dart @@ -1,6 +1,6 @@ // Adapted from: https://github.com/deckerst/aves -import "package:ffmpeg_kit_flutter_min/media_information.dart"; +import "package:ffmpeg_kit_flutter_full_gpl/media_information.dart"; import "package:logging/logging.dart"; import "package:photos/models/ffmpeg/ffprobe_keys.dart"; import "package:photos/models/ffmpeg/ffprobe_props.dart"; diff --git a/mobile/plugins/clip_ggml b/mobile/plugins/clip_ggml new file mode 160000 index 00000000000..16c7daea5d6 --- /dev/null +++ b/mobile/plugins/clip_ggml @@ -0,0 +1 @@ +Subproject commit 16c7daea5d6b80235ac473f1a823b0ff44f5305e diff --git a/mobile/plugins/ente_cast/pubspec.lock b/mobile/plugins/ente_cast/pubspec.lock new file mode 100644 index 00000000000..6cd4bf68b4d --- /dev/null +++ b/mobile/plugins/ente_cast/pubspec.lock @@ -0,0 +1,269 @@ +# Generated by pub +# See https://dart.dev/tools/pub/glossary#lockfile +packages: + characters: + dependency: transitive + description: + name: characters + sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605" + url: "https://pub.dev" + source: hosted + version: "1.3.0" + collection: + dependency: "direct main" + description: + name: collection + sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a + url: "https://pub.dev" + source: hosted + version: "1.18.0" + dio: + dependency: "direct main" + description: + name: dio + sha256: "7d328c4d898a61efc3cd93655a0955858e29a0aa647f0f9e02d59b3bb275e2e8" + url: "https://pub.dev" + source: hosted + version: "4.0.6" + ffi: + dependency: transitive + description: + name: ffi + sha256: "16ed7b077ef01ad6170a3d0c57caa4a112a38d7a2ed5602e0aca9ca6f3d98da6" + url: "https://pub.dev" + source: hosted + version: "2.1.3" + file: + dependency: transitive + description: + name: file + sha256: "5fc22d7c25582e38ad9a8515372cd9a93834027aacf1801cf01164dac0ffa08c" + url: "https://pub.dev" + source: hosted + version: "7.0.0" + flutter: + dependency: "direct main" + description: flutter + source: sdk + version: "0.0.0" + flutter_lints: + dependency: "direct dev" + description: + name: flutter_lints + sha256: "3f41d009ba7172d5ff9be5f6e6e6abb4300e263aab8866d2a0842ed2a70f8f0c" + url: "https://pub.dev" + source: hosted + version: "4.0.0" + flutter_web_plugins: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" + http_parser: + dependency: transitive + description: + name: http_parser + sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b" + url: "https://pub.dev" + source: hosted + version: "4.0.2" + lints: + dependency: transitive + description: + name: lints + sha256: "976c774dd944a42e83e2467f4cc670daef7eed6295b10b36ae8c85bcbf828235" + url: "https://pub.dev" + source: hosted + version: "4.0.0" + material_color_utilities: + dependency: transitive + description: + name: material_color_utilities + sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a" + url: "https://pub.dev" + source: hosted + version: "0.8.0" + meta: + dependency: transitive + description: + name: meta + sha256: "7687075e408b093f36e6bbf6c91878cc0d4cd10f409506f7bc996f68220b9136" + url: "https://pub.dev" + source: hosted + version: "1.12.0" + path: + dependency: transitive + description: + name: path + sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af" + url: "https://pub.dev" + source: hosted + version: "1.9.0" + path_provider_linux: + dependency: transitive + description: + name: path_provider_linux + sha256: f7a1fe3a634fe7734c8d3f2766ad746ae2a2884abe22e241a8b301bf5cac3279 + url: "https://pub.dev" + source: hosted + version: "2.2.1" + path_provider_platform_interface: + dependency: transitive + description: + name: path_provider_platform_interface + sha256: "88f5779f72ba699763fa3a3b06aa4bf6de76c8e5de842cf6f29e2e06476c2334" + url: "https://pub.dev" + source: hosted + version: "2.1.2" + path_provider_windows: + dependency: transitive + description: + name: path_provider_windows + sha256: bd6f00dbd873bfb70d0761682da2b3a2c2fccc2b9e84c495821639601d81afe7 + url: "https://pub.dev" + source: hosted + version: "2.3.0" + platform: + dependency: transitive + description: + name: platform + sha256: "9b71283fc13df574056616011fb138fd3b793ea47cc509c189a6c3fa5f8a1a65" + url: "https://pub.dev" + source: hosted + version: "3.1.5" + plugin_platform_interface: + dependency: transitive + description: + name: plugin_platform_interface + sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02" + url: "https://pub.dev" + source: hosted + version: "2.1.8" + shared_preferences: + dependency: "direct main" + description: + name: shared_preferences + sha256: c272f9cabca5a81adc9b0894381e9c1def363e980f960fa903c604c471b22f68 + url: "https://pub.dev" + source: hosted + version: "2.3.1" + shared_preferences_android: + dependency: transitive + description: + name: shared_preferences_android + sha256: a7e8467e9181cef109f601e3f65765685786c1a738a83d7fbbde377589c0d974 + url: "https://pub.dev" + source: hosted + version: "2.3.1" + shared_preferences_foundation: + dependency: transitive + description: + name: shared_preferences_foundation + sha256: c4b35f6cb8f63c147312c054ce7c2254c8066745125264f0c88739c417fc9d9f + url: "https://pub.dev" + source: hosted + version: "2.5.2" + shared_preferences_linux: + dependency: transitive + description: + name: shared_preferences_linux + sha256: "580abfd40f415611503cae30adf626e6656dfb2f0cee8f465ece7b6defb40f2f" + url: "https://pub.dev" + source: hosted + version: "2.4.1" + shared_preferences_platform_interface: + dependency: transitive + description: + name: shared_preferences_platform_interface + sha256: "57cbf196c486bc2cf1f02b85784932c6094376284b3ad5779d1b1c6c6a816b80" + url: "https://pub.dev" + source: hosted + version: "2.4.1" + shared_preferences_web: + dependency: transitive + description: + name: shared_preferences_web + sha256: d2ca4132d3946fec2184261726b355836a82c33d7d5b67af32692aff18a4684e + url: "https://pub.dev" + source: hosted + version: "2.4.2" + shared_preferences_windows: + dependency: transitive + description: + name: shared_preferences_windows + sha256: "94ef0f72b2d71bc3e700e025db3710911bd51a71cefb65cc609dd0d9a982e3c1" + url: "https://pub.dev" + source: hosted + version: "2.4.1" + sky_engine: + dependency: transitive + description: flutter + source: sdk + version: "0.0.99" + source_span: + dependency: transitive + description: + name: source_span + sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c" + url: "https://pub.dev" + source: hosted + version: "1.10.0" + stack_trace: + dependency: "direct main" + description: + name: stack_trace + sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b" + url: "https://pub.dev" + source: hosted + version: "1.11.1" + string_scanner: + dependency: transitive + description: + name: string_scanner + sha256: "688af5ed3402a4bde5b3a6c15fd768dbf2621a614950b17f04626c431ab3c4c3" + url: "https://pub.dev" + source: hosted + version: "1.3.0" + term_glyph: + dependency: transitive + description: + name: term_glyph + sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 + url: "https://pub.dev" + source: hosted + version: "1.2.1" + typed_data: + dependency: transitive + description: + name: typed_data + sha256: facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c + url: "https://pub.dev" + source: hosted + version: "1.3.2" + vector_math: + dependency: transitive + description: + name: vector_math + sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" + url: "https://pub.dev" + source: hosted + version: "2.1.4" + web: + dependency: transitive + description: + name: web + sha256: d43c1d6b787bf0afad444700ae7f4db8827f701bc61c255ac8d328c6f4d52062 + url: "https://pub.dev" + source: hosted + version: "1.0.0" + xdg_directories: + dependency: transitive + description: + name: xdg_directories + sha256: faea9dee56b520b55a566385b84f2e8de55e7496104adada9962e0bd11bcff1d + url: "https://pub.dev" + source: hosted + version: "1.0.4" +sdks: + dart: ">=3.4.0 <4.0.0" + flutter: ">=3.22.0" diff --git a/mobile/plugins/ente_cast_none/pubspec.lock b/mobile/plugins/ente_cast_none/pubspec.lock new file mode 100644 index 00000000000..57a80587b04 --- /dev/null +++ b/mobile/plugins/ente_cast_none/pubspec.lock @@ -0,0 +1,276 @@ +# Generated by pub +# See https://dart.dev/tools/pub/glossary#lockfile +packages: + characters: + dependency: transitive + description: + name: characters + sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605" + url: "https://pub.dev" + source: hosted + version: "1.3.0" + collection: + dependency: transitive + description: + name: collection + sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a + url: "https://pub.dev" + source: hosted + version: "1.18.0" + dio: + dependency: transitive + description: + name: dio + sha256: "7d328c4d898a61efc3cd93655a0955858e29a0aa647f0f9e02d59b3bb275e2e8" + url: "https://pub.dev" + source: hosted + version: "4.0.6" + ente_cast: + dependency: "direct main" + description: + path: "../ente_cast" + relative: true + source: path + version: "0.0.1" + ffi: + dependency: transitive + description: + name: ffi + sha256: "16ed7b077ef01ad6170a3d0c57caa4a112a38d7a2ed5602e0aca9ca6f3d98da6" + url: "https://pub.dev" + source: hosted + version: "2.1.3" + file: + dependency: transitive + description: + name: file + sha256: "5fc22d7c25582e38ad9a8515372cd9a93834027aacf1801cf01164dac0ffa08c" + url: "https://pub.dev" + source: hosted + version: "7.0.0" + flutter: + dependency: "direct main" + description: flutter + source: sdk + version: "0.0.0" + flutter_lints: + dependency: "direct dev" + description: + name: flutter_lints + sha256: "3f41d009ba7172d5ff9be5f6e6e6abb4300e263aab8866d2a0842ed2a70f8f0c" + url: "https://pub.dev" + source: hosted + version: "4.0.0" + flutter_web_plugins: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" + http_parser: + dependency: transitive + description: + name: http_parser + sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b" + url: "https://pub.dev" + source: hosted + version: "4.0.2" + lints: + dependency: transitive + description: + name: lints + sha256: "976c774dd944a42e83e2467f4cc670daef7eed6295b10b36ae8c85bcbf828235" + url: "https://pub.dev" + source: hosted + version: "4.0.0" + material_color_utilities: + dependency: transitive + description: + name: material_color_utilities + sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a" + url: "https://pub.dev" + source: hosted + version: "0.8.0" + meta: + dependency: transitive + description: + name: meta + sha256: "7687075e408b093f36e6bbf6c91878cc0d4cd10f409506f7bc996f68220b9136" + url: "https://pub.dev" + source: hosted + version: "1.12.0" + path: + dependency: transitive + description: + name: path + sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af" + url: "https://pub.dev" + source: hosted + version: "1.9.0" + path_provider_linux: + dependency: transitive + description: + name: path_provider_linux + sha256: f7a1fe3a634fe7734c8d3f2766ad746ae2a2884abe22e241a8b301bf5cac3279 + url: "https://pub.dev" + source: hosted + version: "2.2.1" + path_provider_platform_interface: + dependency: transitive + description: + name: path_provider_platform_interface + sha256: "88f5779f72ba699763fa3a3b06aa4bf6de76c8e5de842cf6f29e2e06476c2334" + url: "https://pub.dev" + source: hosted + version: "2.1.2" + path_provider_windows: + dependency: transitive + description: + name: path_provider_windows + sha256: bd6f00dbd873bfb70d0761682da2b3a2c2fccc2b9e84c495821639601d81afe7 + url: "https://pub.dev" + source: hosted + version: "2.3.0" + platform: + dependency: transitive + description: + name: platform + sha256: "9b71283fc13df574056616011fb138fd3b793ea47cc509c189a6c3fa5f8a1a65" + url: "https://pub.dev" + source: hosted + version: "3.1.5" + plugin_platform_interface: + dependency: transitive + description: + name: plugin_platform_interface + sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02" + url: "https://pub.dev" + source: hosted + version: "2.1.8" + shared_preferences: + dependency: transitive + description: + name: shared_preferences + sha256: c272f9cabca5a81adc9b0894381e9c1def363e980f960fa903c604c471b22f68 + url: "https://pub.dev" + source: hosted + version: "2.3.1" + shared_preferences_android: + dependency: transitive + description: + name: shared_preferences_android + sha256: a7e8467e9181cef109f601e3f65765685786c1a738a83d7fbbde377589c0d974 + url: "https://pub.dev" + source: hosted + version: "2.3.1" + shared_preferences_foundation: + dependency: transitive + description: + name: shared_preferences_foundation + sha256: c4b35f6cb8f63c147312c054ce7c2254c8066745125264f0c88739c417fc9d9f + url: "https://pub.dev" + source: hosted + version: "2.5.2" + shared_preferences_linux: + dependency: transitive + description: + name: shared_preferences_linux + sha256: "580abfd40f415611503cae30adf626e6656dfb2f0cee8f465ece7b6defb40f2f" + url: "https://pub.dev" + source: hosted + version: "2.4.1" + shared_preferences_platform_interface: + dependency: transitive + description: + name: shared_preferences_platform_interface + sha256: "57cbf196c486bc2cf1f02b85784932c6094376284b3ad5779d1b1c6c6a816b80" + url: "https://pub.dev" + source: hosted + version: "2.4.1" + shared_preferences_web: + dependency: transitive + description: + name: shared_preferences_web + sha256: d2ca4132d3946fec2184261726b355836a82c33d7d5b67af32692aff18a4684e + url: "https://pub.dev" + source: hosted + version: "2.4.2" + shared_preferences_windows: + dependency: transitive + description: + name: shared_preferences_windows + sha256: "94ef0f72b2d71bc3e700e025db3710911bd51a71cefb65cc609dd0d9a982e3c1" + url: "https://pub.dev" + source: hosted + version: "2.4.1" + sky_engine: + dependency: transitive + description: flutter + source: sdk + version: "0.0.99" + source_span: + dependency: transitive + description: + name: source_span + sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c" + url: "https://pub.dev" + source: hosted + version: "1.10.0" + stack_trace: + dependency: "direct main" + description: + name: stack_trace + sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b" + url: "https://pub.dev" + source: hosted + version: "1.11.1" + string_scanner: + dependency: transitive + description: + name: string_scanner + sha256: "688af5ed3402a4bde5b3a6c15fd768dbf2621a614950b17f04626c431ab3c4c3" + url: "https://pub.dev" + source: hosted + version: "1.3.0" + term_glyph: + dependency: transitive + description: + name: term_glyph + sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 + url: "https://pub.dev" + source: hosted + version: "1.2.1" + typed_data: + dependency: transitive + description: + name: typed_data + sha256: facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c + url: "https://pub.dev" + source: hosted + version: "1.3.2" + vector_math: + dependency: transitive + description: + name: vector_math + sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" + url: "https://pub.dev" + source: hosted + version: "2.1.4" + web: + dependency: transitive + description: + name: web + sha256: d43c1d6b787bf0afad444700ae7f4db8827f701bc61c255ac8d328c6f4d52062 + url: "https://pub.dev" + source: hosted + version: "1.0.0" + xdg_directories: + dependency: transitive + description: + name: xdg_directories + sha256: faea9dee56b520b55a566385b84f2e8de55e7496104adada9962e0bd11bcff1d + url: "https://pub.dev" + source: hosted + version: "1.0.4" +sdks: + dart: ">=3.4.0 <4.0.0" + flutter: ">=3.22.0" diff --git a/mobile/plugins/ente_cast_normal/pubspec.lock b/mobile/plugins/ente_cast_normal/pubspec.lock index 86051800c6b..b65fe49c943 100644 --- a/mobile/plugins/ente_cast_normal/pubspec.lock +++ b/mobile/plugins/ente_cast_normal/pubspec.lock @@ -127,10 +127,10 @@ packages: dependency: transitive description: name: meta - sha256: d584fa6707a52763a52446f02cc621b077888fb63b93bbcb1143a7be5a0c0c04 + sha256: "7687075e408b093f36e6bbf6c91878cc0d4cd10f409506f7bc996f68220b9136" url: "https://pub.dev" source: hosted - version: "1.11.0" + version: "1.12.0" multicast_dns: dependency: transitive description: diff --git a/mobile/plugins/ente_feature_flag/pubspec.lock b/mobile/plugins/ente_feature_flag/pubspec.lock index 6760d7c6c5d..cd356f89420 100644 --- a/mobile/plugins/ente_feature_flag/pubspec.lock +++ b/mobile/plugins/ente_feature_flag/pubspec.lock @@ -87,10 +87,10 @@ packages: dependency: transitive description: name: meta - sha256: d584fa6707a52763a52446f02cc621b077888fb63b93bbcb1143a7be5a0c0c04 + sha256: "7687075e408b093f36e6bbf6c91878cc0d4cd10f409506f7bc996f68220b9136" url: "https://pub.dev" source: hosted - version: "1.11.0" + version: "1.12.0" path: dependency: transitive description: diff --git a/mobile/pubspec.lock b/mobile/pubspec.lock index 3aa3332caf4..4b11162474c 100644 --- a/mobile/pubspec.lock +++ b/mobile/pubspec.lock @@ -569,11 +569,11 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.0" - ffmpeg_kit_flutter_min: + ffmpeg_kit_flutter_full_gpl: dependency: "direct main" description: - name: ffmpeg_kit_flutter_min - sha256: "123bfbc0e0b9e7cf6d32d8ba8e08b666d66af0f52c07683dd2305fbfc13f494a" + name: ffmpeg_kit_flutter_full_gpl + sha256: "4f269bcb636bfcb544e5b4d65c706a3d311839970cb42638e72406410c1b5b7b" url: "https://pub.dev" source: hosted version: "6.0.3" diff --git a/mobile/pubspec.yaml b/mobile/pubspec.yaml index 0e8bcc567f1..b72b29a0e6f 100644 --- a/mobile/pubspec.yaml +++ b/mobile/pubspec.yaml @@ -61,7 +61,7 @@ dependencies: extended_image: ^8.1.1 fade_indexed_stack: ^0.2.2 fast_base58: ^0.2.1 - ffmpeg_kit_flutter_min: ^6.0.3 + ffmpeg_kit_flutter_full_gpl: ^6.0.3 figma_squircle: ^0.5.3 file_saver: # Use forked version till this PR is merged: https://github.com/incrediblezayed/file_saver/pull/87 @@ -152,7 +152,7 @@ dependencies: scrollable_positioned_list: ^0.3.5 sentry: ^7.9.0 sentry_flutter: ^7.9.0 - share_plus: ^9.0.0 + share_plus: ^9.0.0 shared_preferences: ^2.0.5 simple_cluster: ^0.3.0 sqflite: ^2.3.0 @@ -172,8 +172,8 @@ dependencies: git: url: https://github.com/RmanAkbarzadeh/VideoCompress.git video_editor: - git: - url: https://github.com/prateekmedia/video_editor.git + git: + url: https://github.com/prateekmedia/video_editor.git video_player: git: url: https://github.com/ente-io/packages.git From b7e60297a0d31a7196f4df215d0d2dbe4a107a6f Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Tue, 13 Aug 2024 04:36:01 +0530 Subject: [PATCH 04/90] fix: support for 3.24 as well as add button to cache preview --- mobile/lib/services/preview_video_store.dart | 24 ++++---- mobile/lib/ui/viewer/file/file_app_bar.dart | 23 ++++++++ mobile/pubspec.lock | 58 ++++++++++---------- mobile/pubspec.yaml | 5 +- 4 files changed, 69 insertions(+), 41 deletions(-) diff --git a/mobile/lib/services/preview_video_store.dart b/mobile/lib/services/preview_video_store.dart index 95cb4f816a9..92228593bd3 100644 --- a/mobile/lib/services/preview_video_store.dart +++ b/mobile/lib/services/preview_video_store.dart @@ -1,12 +1,12 @@ import "dart:async"; import "dart:convert"; import "dart:io"; -import "dart:typed_data"; import "package:dio/dio.dart"; import "package:encrypt/encrypt.dart"; import "package:ffmpeg_kit_flutter_min/ffmpeg_kit.dart"; import "package:ffmpeg_kit_flutter_min/return_code.dart"; +import "package:flutter/foundation.dart" hide Key; import "package:logging/logging.dart"; import "package:path_provider/path_provider.dart"; import "package:photos/core/network/network.dart"; @@ -33,12 +33,6 @@ class PreviewVideoStore { final tmpDirectory = await getTemporaryDirectory(); final prefix = "${tmpDirectory.path}/${enteFile.generatedID}"; Directory(prefix).createSync(); - final mediaInfo = await VideoCompress.compressVideo( - file.path, - quality: VideoQuality.Res1280x720Quality, - deleteOrigin: true, - ); - if (mediaInfo?.path == null) return; final key = Key.fromLength(16); final iv = IV.fromLength(16); @@ -52,12 +46,18 @@ class PreviewVideoStore { "${keyfile.path}\n" "${iv.base64}", ); - + final mediaInfo = await VideoCompress.compressVideo( + file.path, + quality: VideoQuality.Res1280x720Quality, + deleteOrigin: true, + ); + if (mediaInfo!.file?.path == null) return; + // -hls_key_info_file ${keyinfo.path} await FFmpegKit.execute( """ - -i "${mediaInfo!.path}" + -i "${mediaInfo.file!.path}" -c copy -f hls -hls_time 10 -hls_flags single_file - -hls_list_size 0 -hls_key_info_file ${keyinfo.path} + -hls_list_size 0 $prefix/video.m3u8""", ).then((session) async { final returnCode = await session.getReturnCode(); @@ -71,6 +71,10 @@ class PreviewVideoStore { _logger.warning("FFmpeg command cancelled"); } else { _logger.severe("FFmpeg command failed with return code $returnCode"); + if (kDebugMode) { + final output = await session.getOutput(); + _logger.severe(output); + } } }); } diff --git a/mobile/lib/ui/viewer/file/file_app_bar.dart b/mobile/lib/ui/viewer/file/file_app_bar.dart index e67795888f8..6493148d8a2 100644 --- a/mobile/lib/ui/viewer/file/file_app_bar.dart +++ b/mobile/lib/ui/viewer/file/file_app_bar.dart @@ -15,9 +15,11 @@ import 'package:photos/models/file/file_type.dart'; import 'package:photos/models/file/trash_file.dart'; import "package:photos/models/metadata/common_keys.dart"; import 'package:photos/models/selected_files.dart'; +import "package:photos/service_locator.dart"; import 'package:photos/services/collections_service.dart'; import 'package:photos/services/hidden_service.dart'; import "package:photos/services/local_authentication_service.dart"; +import "package:photos/services/preview_video_store.dart"; import 'package:photos/ui/collections/collection_action_sheet.dart'; import 'package:photos/ui/viewer/file/custom_app_bar.dart'; import "package:photos/ui/viewer/file_details/favorite_widget.dart"; @@ -294,6 +296,25 @@ class FileAppBarState extends State { ); } } + if (flagService.internalUser) { + items.add( + PopupMenuItem( + value: 99, + child: Row( + children: [ + Icon( + Icons.video_collection, + color: Theme.of(context).iconTheme.color, + ), + const Padding( + padding: EdgeInsets.all(8), + ), + const Text("Cache Preview"), + ], + ), + ), + ); + } items.add( PopupMenuItem( value: 6, @@ -330,6 +351,8 @@ class FileAppBarState extends State { await _handleUnHideRequest(context); } else if (value == 6) { await _onSwipeLock(); + } else if (value == 99) { + await PreviewVideoStore.instance.chunkAndUploadVideo(widget.file); } }, ), diff --git a/mobile/pubspec.lock b/mobile/pubspec.lock index e617b1f591b..c053fe2494c 100644 --- a/mobile/pubspec.lock +++ b/mobile/pubspec.lock @@ -69,10 +69,10 @@ packages: dependency: "direct main" description: name: archive - sha256: "22600aa1e926be775fa5fe7e6894e7fb3df9efda8891c73f70fb3262399a432d" + sha256: cb6a278ef2dbb298455e1a713bda08524a175630ec643a242c399c932a0a1f7d url: "https://pub.dev" source: hosted - version: "3.4.10" + version: "3.6.1" args: dependency: transitive description: @@ -815,26 +815,26 @@ packages: dependency: "direct main" description: name: flutter_local_notifications - sha256: f9a05409385b77b06c18f200a41c7c2711ebf7415669350bb0f8474c07bd40d1 + sha256: c500d5d9e7e553f06b61877ca6b9c8b92c570a4c8db371038702e8ce57f8a50f url: "https://pub.dev" source: hosted - version: "17.0.0" + version: "17.2.2" flutter_local_notifications_linux: dependency: transitive description: name: flutter_local_notifications_linux - sha256: "33f741ef47b5f63cc7f78fe75eeeac7e19f171ff3c3df054d84c1e38bedb6a03" + sha256: c49bd06165cad9beeb79090b18cd1eb0296f4bf4b23b84426e37dd7c027fc3af url: "https://pub.dev" source: hosted - version: "4.0.0+1" + version: "4.0.1" flutter_local_notifications_platform_interface: dependency: transitive description: name: flutter_local_notifications_platform_interface - sha256: "7cf643d6d5022f3baed0be777b0662cce5919c0a7b86e700299f22dc4ae660ef" + sha256: "85f8d07fe708c1bdcf45037f2c0109753b26ae077e9d9e899d55971711a4ea66" url: "https://pub.dev" source: hosted - version: "7.0.0+1" + version: "7.2.0" flutter_localizations: dependency: "direct main" description: flutter @@ -1320,18 +1320,18 @@ packages: dependency: transitive description: name: leak_tracker - sha256: "7f0df31977cb2c0b88585095d168e689669a2cc9b97c309665e3386f3e9d341a" + sha256: "3f87a60e8c63aecc975dda1ceedbc8f24de75f09e4856ea27daf8958f2f0ce05" url: "https://pub.dev" source: hosted - version: "10.0.4" + version: "10.0.5" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: "06e98f569d004c1315b991ded39924b21af84cf14cc94791b8aea337d25b57f8" + sha256: "932549fb305594d82d7183ecd9fa93463e9914e1b67cacc34bc40906594a1806" url: "https://pub.dev" source: hosted - version: "3.0.3" + version: "3.0.5" leak_tracker_testing: dependency: transitive description: @@ -1456,10 +1456,10 @@ packages: dependency: transitive description: name: material_color_utilities - sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a" + sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec url: "https://pub.dev" source: hosted - version: "0.8.0" + version: "0.11.1" media_extension: dependency: "direct main" description: @@ -1544,10 +1544,10 @@ packages: dependency: transitive description: name: meta - sha256: "7687075e408b093f36e6bbf6c91878cc0d4cd10f409506f7bc996f68220b9136" + sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7 url: "https://pub.dev" source: hosted - version: "1.12.0" + version: "1.15.0" mgrs_dart: dependency: transitive description: @@ -1883,10 +1883,10 @@ packages: dependency: transitive description: name: platform - sha256: "12220bb4b65720483f8fa9450b4332347737cf8213dd2840d8b2c823e47243ec" + sha256: "9b71283fc13df574056616011fb138fd3b793ea47cc509c189a6c3fa5f8a1a65" url: "https://pub.dev" source: hosted - version: "3.1.4" + version: "3.1.5" plugin_platform_interface: dependency: transitive description: @@ -2392,26 +2392,26 @@ packages: dependency: "direct dev" description: name: test - sha256: "7ee446762c2c50b3bd4ea96fe13ffac69919352bd3b4b17bac3f3465edc58073" + sha256: "7ee44229615f8f642b68120165ae4c2a75fe77ae2065b1e55ae4711f6cf0899e" url: "https://pub.dev" source: hosted - version: "1.25.2" + version: "1.25.7" test_api: dependency: transitive description: name: test_api - sha256: "9955ae474176f7ac8ee4e989dadfb411a58c30415bcfb648fa04b2b8a03afa7f" + sha256: "5b8a98dafc4d5c4c9c72d8b31ab2b23fc13422348d2997120294d3bac86b4ddb" url: "https://pub.dev" source: hosted - version: "0.7.0" + version: "0.7.2" test_core: dependency: transitive description: name: test_core - sha256: "2bc4b4ecddd75309300d8096f781c0e3280ca1ef85beda558d33fcbedc2eead4" + sha256: "55ea5a652e38a1dfb32943a7973f3681a60f872f8c3a05a14664ad54ef9c6696" url: "https://pub.dev" source: hosted - version: "0.6.0" + version: "0.6.4" timezone: dependency: transitive description: @@ -2699,10 +2699,10 @@ packages: dependency: transitive description: name: vm_service - sha256: "3923c89304b715fb1eb6423f017651664a03bf5f4b29983627c4da791f74a4ec" + sha256: f652077d0bdf60abe4c1f6377448e8655008eef28f128bc023f7b5e8dfeb48fc url: "https://pub.dev" source: hosted - version: "14.2.1" + version: "14.2.4" volume_controller: dependency: transitive description: @@ -2792,13 +2792,13 @@ packages: source: hosted version: "0.0.2" win32: - dependency: transitive + dependency: "direct overridden" description: name: win32 - sha256: "464f5674532865248444b4c3daca12bd9bf2d7c47f759ce2617986e7229494a8" + sha256: "68d1e89a91ed61ad9c370f9f8b6effed9ae5e0ede22a270bdfa6daf79fc2290a" url: "https://pub.dev" source: hosted - version: "5.2.0" + version: "5.5.4" win32_registry: dependency: transitive description: diff --git a/mobile/pubspec.yaml b/mobile/pubspec.yaml index 4be7fec8606..30ab97f9f1b 100644 --- a/mobile/pubspec.yaml +++ b/mobile/pubspec.yaml @@ -22,7 +22,7 @@ dependencies: adaptive_theme: ^3.1.0 animate_do: ^2.0.0 animated_list_plus: ^0.5.2 - archive: ^3.1.2 + archive: ^3.6.1 background_fetch: ^1.2.1 battery_info: ^1.1.1 bip39: ^1.0.6 @@ -82,7 +82,7 @@ dependencies: flutter_image_compress: ^1.1.0 flutter_inappwebview: ^5.8.0 flutter_launcher_icons: ^0.13.1 - flutter_local_notifications: ^17.0.0 + flutter_local_notifications: ^17.2.2 flutter_localizations: sdk: flutter flutter_map: ^6.2.0 @@ -199,6 +199,7 @@ dependency_overrides: ref: android_video_roation_fix path: packages/video_player/video_player/ watcher: ^1.1.0 + win32: ^5.5.4 flutter_intl: enabled: true From 5c760f8384542258cacc0d1e39147676db8abd9a Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Thu, 15 Aug 2024 00:36:29 +0530 Subject: [PATCH 05/90] fix: chunk and upload video code --- mobile/lib/services/preview_video_store.dart | 58 +++++++++----------- 1 file changed, 26 insertions(+), 32 deletions(-) diff --git a/mobile/lib/services/preview_video_store.dart b/mobile/lib/services/preview_video_store.dart index fe09f0055ca..6f6a6461a33 100644 --- a/mobile/lib/services/preview_video_store.dart +++ b/mobile/lib/services/preview_video_store.dart @@ -1,12 +1,11 @@ import "dart:async"; import "dart:convert"; import "dart:io"; -import "dart:typed_data"; import "package:dio/dio.dart"; import "package:encrypt/encrypt.dart"; -import "package:ffmpeg_kit_flutter_min/ffmpeg_kit.dart"; -import "package:ffmpeg_kit_flutter_min/return_code.dart"; +import "package:ffmpeg_kit_flutter_full_gpl/ffmpeg_kit.dart"; +import "package:ffmpeg_kit_flutter_full_gpl/return_code.dart"; import "package:flutter/foundation.dart" hide Key; import "package:logging/logging.dart"; import "package:path_provider/path_provider.dart"; @@ -31,7 +30,7 @@ class PreviewVideoStore { final file = await getFileFromServer(enteFile); if (file == null) return; - final tmpDirectory = await getTemporaryDirectory(); + final tmpDirectory = await getApplicationDocumentsDirectory(); final prefix = "${tmpDirectory.path}/${enteFile.generatedID}"; Directory(prefix).createSync(); final mediaInfo = await VideoCompress.compressVideo( @@ -42,42 +41,37 @@ class PreviewVideoStore { if (mediaInfo?.path == null) return; final key = Key.fromLength(16); - final iv = IV.fromLength(16); final keyfile = File('$prefix/keyfile.key'); keyfile.writeAsBytesSync(key.bytes); final keyinfo = File('$prefix/mykey.keyinfo'); - keyinfo.writeAsStringSync( - "data:text/plain;base64,${key.base64}\n" - "${keyfile.path}\n" - "${iv.base64}", + keyinfo.writeAsStringSync("data:text/plain;base64,${key.base64}\n" + "${keyfile.path}\n"); + + final session = await FFmpegKit.executeAsync( + '-i "${mediaInfo!.path}" ' + '-c copy -f hls -hls_time 10 -hls_flags single_file ' + '-hls_list_size 0 -hls_key_info_file ${keyinfo.path} ' + '$prefix/video.m3u8', ); - await FFmpegKit.execute( - """ - -i "${mediaInfo!.path}" - -c copy -f hls -hls_time 10 -hls_flags single_file - -hls_list_size 0 -hls_key_info_file ${keyinfo.path} - $prefix/video.m3u8""", - ).then((session) async { - final returnCode = await session.getReturnCode(); - - if (ReturnCode.isSuccess(returnCode)) { - final playlistFile = File("$prefix/output.m3u8"); - final previewFile = File("$prefix/segment000.ts"); - await _reportPreview(enteFile, previewFile); - await _reportPlaylist(enteFile, playlistFile); - } else if (ReturnCode.isCancel(returnCode)) { - _logger.warning("FFmpeg command cancelled"); - } else { - _logger.severe("FFmpeg command failed with return code $returnCode"); - if (kDebugMode) { - final output = await session.getOutput(); - _logger.severe(output); - } + final returnCode = await session.getReturnCode(); + + if (ReturnCode.isSuccess(returnCode)) { + final playlistFile = File("$prefix/output.m3u8"); + final previewFile = File("$prefix/video.ts"); + await _reportPreview(enteFile, previewFile); + await _reportPlaylist(enteFile, playlistFile); + } else if (ReturnCode.isCancel(returnCode)) { + _logger.warning("FFmpeg command cancelled"); + } else { + _logger.severe("FFmpeg command failed with return code $returnCode"); + if (kDebugMode) { + final output = await session.getOutput(); + _logger.severe(output); } - }); + } } Future _reportPlaylist(EnteFile file, File playlist) async { From 520d4e4f263c781393ea5255d0a422befa24b17e Mon Sep 17 00:00:00 2001 From: Neeraj Gupta <254676+ua741@users.noreply.github.com> Date: Tue, 1 Oct 2024 21:24:12 +0530 Subject: [PATCH 06/90] [mob] Fix file getter --- mobile/lib/services/preview_video_store.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mobile/lib/services/preview_video_store.dart b/mobile/lib/services/preview_video_store.dart index 72b5ea2c164..4777b5254d6 100644 --- a/mobile/lib/services/preview_video_store.dart +++ b/mobile/lib/services/preview_video_store.dart @@ -28,7 +28,7 @@ class PreviewVideoStore { Future chunkAndUploadVideo(EnteFile enteFile) async { if (!enteFile.isUploaded) return; - final file = await getFileFromServer(enteFile); + final file = await getFile(enteFile, isOrigin: true); if (file == null) return; final tmpDirectory = await getApplicationDocumentsDirectory(); final prefix = "${tmpDirectory.path}/${enteFile.generatedID}"; From 9898baddbbc8fe71ecaf8c40afa8bc0c18b60b26 Mon Sep 17 00:00:00 2001 From: Neeraj Gupta <254676+ua741@users.noreply.github.com> Date: Tue, 1 Oct 2024 22:33:31 +0530 Subject: [PATCH 07/90] [mob] Update preview code to use latest api --- mobile/lib/services/preview_video_store.dart | 119 ++++++++++++------- mobile/pubspec.lock | 2 +- 2 files changed, 80 insertions(+), 41 deletions(-) diff --git a/mobile/lib/services/preview_video_store.dart b/mobile/lib/services/preview_video_store.dart index 4777b5254d6..13dbfa376d9 100644 --- a/mobile/lib/services/preview_video_store.dart +++ b/mobile/lib/services/preview_video_store.dart @@ -1,5 +1,4 @@ import "dart:async"; -import "dart:convert"; import "dart:io"; import "package:dio/dio.dart"; @@ -11,9 +10,9 @@ import "package:logging/logging.dart"; import "package:path_provider/path_provider.dart"; import "package:photos/core/network/network.dart"; import "package:photos/models/file/file.dart"; -import "package:photos/utils/crypto_util.dart"; import "package:photos/utils/file_download_util.dart"; import "package:photos/utils/file_util.dart"; +import "package:photos/utils/gzip.dart"; import "package:video_compress/video_compress.dart"; class PreviewVideoStore { @@ -27,16 +26,21 @@ class PreviewVideoStore { Future chunkAndUploadVideo(EnteFile enteFile) async { if (!enteFile.isUploaded) return; - final file = await getFile(enteFile, isOrigin: true); if (file == null) return; + try { + // check if playlist already exist + await getPlaylist(enteFile); + return; + } catch (e) { + _logger.warning("Failed to get playlist for $enteFile", e); + } final tmpDirectory = await getApplicationDocumentsDirectory(); final prefix = "${tmpDirectory.path}/${enteFile.generatedID}"; Directory(prefix).createSync(); final mediaInfo = await VideoCompress.compressVideo( file.path, quality: VideoQuality.Res1280x720Quality, - deleteOrigin: true, ); if (mediaInfo?.path == null) return; @@ -49,11 +53,11 @@ class PreviewVideoStore { keyinfo.writeAsStringSync("data:text/plain;base64,${key.base64}\n" "${keyfile.path}\n"); - final session = await FFmpegKit.executeAsync( + final session = await FFmpegKit.execute( '-i "${mediaInfo!.path}" ' '-c copy -f hls -hls_time 10 -hls_flags single_file ' '-hls_list_size 0 -hls_key_info_file ${keyinfo.path} ' - '$prefix/video.m3u8', + '$prefix/output.m3u8', ); final returnCode = await session.getReturnCode(); @@ -61,8 +65,16 @@ class PreviewVideoStore { if (ReturnCode.isSuccess(returnCode)) { final playlistFile = File("$prefix/output.m3u8"); final previewFile = File("$prefix/video.ts"); - await _reportPreview(enteFile, previewFile); - await _reportPlaylist(enteFile, playlistFile); + final result = await _uploadPreviewVideo(enteFile, previewFile); + final String objectID = result.$1; + final objectSize = result.$2; + await _reportVideoPreview( + enteFile, + playlistFile, + objectID: objectID, + objectSize: objectSize, + ); + _logger.info("Video preview uploaded for $enteFile"); } else if (ReturnCode.isCancel(returnCode)) { _logger.warning("FFmpeg command cancelled"); } else { @@ -74,46 +86,61 @@ class PreviewVideoStore { } } - Future _reportPlaylist(EnteFile file, File playlist) async { - _logger.info("Pushing playlist for $file"); - final encryptionKey = getFileKey(file); - final playlistContent = playlist.readAsStringSync(); - final encryptedPlaylist = await CryptoUtil.encryptChaCha( - utf8.encode(playlistContent), - encryptionKey, - ); - final encryptedData = - CryptoUtil.bin2base64(encryptedPlaylist.encryptedData!); - final header = CryptoUtil.bin2base64(encryptedPlaylist.header!); + Future _reportVideoPreview( + EnteFile file, + File playlist, { + required String objectID, + required int objectSize, + }) async { + _logger.info("Pushing playlist for ${file.uploadedFileID}"); try { + final encryptionKey = getFileKey(file); + final playlistContent = playlist.readAsStringSync(); + final result = await gzipAndEncryptJson( + { + "playlist": playlistContent, + 'type': 'hls_video', + }, + encryptionKey, + ); final _ = await _dio.put( - "/files/file-data/playlist", + "/files/video-data", data: { - "fileID": file.generatedID, - "model": "hls_video", - "encryptedEmbedding": encryptedData, - "decryptionHeader": header, + "fileID": file.uploadedFileID!, + "objectID": objectID, + "objectSize": objectSize, + "playlist": result.encData, + "playlistHeader": result.header, }, ); } catch (e, s) { - _logger.severe(e, s); + _logger.severe("Failed to report video preview", e, s); } } - Future _reportPreview(EnteFile file, File preview) async { + Future<(String, int)> _uploadPreviewVideo(EnteFile file, File preview) async { _logger.info("Pushing preview for $file"); try { final response = await _dio.get( - "/files/file-data/preview/upload-url/${file.generatedID}", + "/files/data/preview-upload-url", + queryParameters: { + "fileID": file.uploadedFileID!, + "type": "vid_preview", + }, ); - final uploadURL = response.data["uploadURL"]; + final uploadURL = response.data["url"]; + final String objectID = response.data["objectID"]; + final objectSize = preview.lengthSync(); final _ = await _dio.put( uploadURL, - data: await preview.readAsBytes(), + data: preview.openRead(), options: Options( - contentType: "application/octet-stream", + headers: { + Headers.contentLengthHeader: objectSize, + }, ), ); + return (objectID, objectSize); } catch (e, s) { _logger.severe(e, s); rethrow; @@ -128,25 +155,37 @@ class PreviewVideoStore { _logger.info("Getting playlist for $file"); try { final response = await _dio.get( - "/files/file-data/playlist/${file.generatedID}", + "/files/data/fetch/", + queryParameters: { + "fileID": file.uploadedFileID, + "type": "vid_preview", + }, ); - final encryptedData = response.data["encryptedEmbedding"]; - final header = response.data["decryptionHeader"]; + final encryptedData = response.data["data"]["encryptedData"]; + final header = response.data["data"]["decryptionHeader"]; final encryptionKey = getFileKey(file); - final playlistData = await CryptoUtil.decryptChaCha( - CryptoUtil.base642bin(encryptedData), + final playlistData = await decryptAndUnzipJson( encryptionKey, - CryptoUtil.base642bin(header), + encryptedData: encryptedData, + header: header, ); final response2 = await _dio.get( - "/files/file-data/preview/${file.generatedID}", + "/files/data/preview", + queryParameters: { + "fileID": file.uploadedFileID, + "type": "vid_preview", + }, ); - final previewURL = response2.data["previewURL"]; - final finalPlaylist = - utf8.decode(playlistData).replaceAll('\nvideo.ts', '\n$previewURL'); + final previewURL = response2.data["url"]; + // todo: (prateek/neeraj) review this + final finalPlaylist = (playlistData["playlist"]) + .replaceAll('\nvideo.ts', '\n$previewURL') + .replaceAll('\noutput.ts', '\n$previewURL'); final tempDir = await getTemporaryDirectory(); final playlistFile = File("${tempDir.path}/${file.generatedID}.m3u8"); await playlistFile.writeAsString(finalPlaylist); + _logger.info("Writing playlist to ${playlistFile.path}"); + return playlistFile; } catch (e, s) { _logger.severe(e, s); diff --git a/mobile/pubspec.lock b/mobile/pubspec.lock index cc5c7040311..b0574b8facc 100644 --- a/mobile/pubspec.lock +++ b/mobile/pubspec.lock @@ -2615,7 +2615,7 @@ packages: source: hosted version: "1.0.3" uuid: - dependency: "direct main" + dependency: transitive description: name: uuid sha256: f33d6bb662f0e4f79dcd7ada2e6170f3b3a2530c28fc41f49a411ddedd576a77 From 982b4a42446172b44f0ba8cde30ad4805bd3be21 Mon Sep 17 00:00:00 2001 From: Neeraj Gupta <254676+ua741@users.noreply.github.com> Date: Fri, 8 Nov 2024 16:22:43 +0530 Subject: [PATCH 08/90] [mob] Sync fd early --- mobile/lib/services/sync_service.dart | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mobile/lib/services/sync_service.dart b/mobile/lib/services/sync_service.dart index 873270f349d..2eaafe25458 100644 --- a/mobile/lib/services/sync_service.dart +++ b/mobile/lib/services/sync_service.dart @@ -18,6 +18,7 @@ import 'package:photos/events/sync_status_update_event.dart'; import 'package:photos/events/trigger_logout_event.dart'; import 'package:photos/models/backup_status.dart'; import 'package:photos/models/file/file_type.dart'; +import "package:photos/services/filedata/filedata_service.dart"; import "package:photos/services/files_service.dart"; import 'package:photos/services/local_sync_service.dart'; import 'package:photos/services/notification_service.dart'; @@ -86,6 +87,7 @@ class SyncService { _existingSync = Completer(); bool successful = false; try { + FileDataService.instance.syncFDStatus().ignore(); await _doSync(); if (_lastSyncStatusEvent != null && _lastSyncStatusEvent!.status != From 223b22ef463a36822304b03f620c9becd48a1fe0 Mon Sep 17 00:00:00 2001 From: Neeraj Gupta <254676+ua741@users.noreply.github.com> Date: Fri, 8 Nov 2024 16:32:30 +0530 Subject: [PATCH 09/90] [mob] Add method to get preview video url --- mobile/lib/services/preview_video_store.dart | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/mobile/lib/services/preview_video_store.dart b/mobile/lib/services/preview_video_store.dart index d741691ee76..3fd3c416c7f 100644 --- a/mobile/lib/services/preview_video_store.dart +++ b/mobile/lib/services/preview_video_store.dart @@ -10,6 +10,7 @@ import "package:logging/logging.dart"; import "package:path_provider/path_provider.dart"; import "package:photos/core/network/network.dart"; import "package:photos/models/file/file.dart"; +import "package:photos/models/file/file_type.dart"; import "package:photos/utils/file_key.dart"; import "package:photos/utils/file_util.dart"; import "package:photos/utils/gzip.dart"; @@ -31,6 +32,8 @@ class PreviewVideoStore { try { // check if playlist already exist await getPlaylist(enteFile); + final resultUrl = await getPreviewUrl(enteFile); + debugPrint("previewUrl $resultUrl"); return; } catch (e) { _logger.warning("Failed to get playlist for $enteFile", e); @@ -191,4 +194,21 @@ class PreviewVideoStore { rethrow; } } + + Future getPreviewUrl(EnteFile file) async { + try { + final response = await _dio.get( + "/files/data/preview", + queryParameters: { + "fileID": file.uploadedFileID, + "type": + file.fileType == FileType.video ? "vid_preview" : "img_preview", + }, + ); + return response.data["url"]; + } catch (e) { + _logger.warning("Failed to get preview url", e); + rethrow; + } + } } From bbfa447e42fcdb943696d61041cced8d783d7ec6 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Mon, 11 Nov 2024 23:55:33 +0530 Subject: [PATCH 10/90] fix: source preview file as videoplayer's input --- .../ui/viewer/file/preview_video_widget.dart | 40 ++++--------------- .../lib/ui/viewer/file/video_view_widget.dart | 6 +-- mobile/lib/utils/file_util.dart | 39 ------------------ 3 files changed, 10 insertions(+), 75 deletions(-) diff --git a/mobile/lib/ui/viewer/file/preview_video_widget.dart b/mobile/lib/ui/viewer/file/preview_video_widget.dart index 2e687a27e1b..d8ce9cb790e 100644 --- a/mobile/lib/ui/viewer/file/preview_video_widget.dart +++ b/mobile/lib/ui/viewer/file/preview_video_widget.dart @@ -28,14 +28,16 @@ class PreviewVideoWidget extends StatefulWidget { final bool? autoPlay; final String? tagPrefix; final Function(bool)? playbackCallback; + final File preview; const PreviewVideoWidget( this.file, { + required this.preview, this.autoPlay = false, this.tagPrefix, this.playbackCallback, - Key? key, - }) : super(key: key); + super.key, + }); @override State createState() => _PreviewVideoWidgetState(); @@ -54,31 +56,8 @@ class _PreviewVideoWidgetState extends State { @override void initState() { super.initState(); - if (widget.file.isRemoteFile) { - _loadNetworkVideo(); - _setFileSizeIfNull(); - } else if (widget.file.isSharedMediaToAppSandbox) { - final localFile = File(getSharedMediaFilePath(widget.file)); - if (localFile.existsSync()) { - _logger.fine("loading from app cache"); - _setVideoPlayerController(file: localFile); - } else if (widget.file.uploadedFileID != null) { - _loadNetworkVideo(); - } - } else { - widget.file.getAsset.then((asset) async { - if (asset == null || !(await asset.exists)) { - if (widget.file.uploadedFileID != null) { - _loadNetworkVideo(); - } - } else { - // ignore: unawaited_futures - asset.getMediaUrl().then((url) { - _setVideoPlayerController(url: url); - }); - } - }); - } + + _setVideoPlayerController(); _fileSwipeLockEventSubscription = Bus.instance.on().listen((event) { setState(() { @@ -141,7 +120,6 @@ class _PreviewVideoWidgetState extends State { } void _setVideoPlayerController({ - String? url, File? file, }) { if (!mounted) { @@ -151,11 +129,7 @@ class _PreviewVideoWidgetState extends State { return; } VideoPlayerController videoPlayerController; - if (url != null) { - videoPlayerController = VideoPlayerController.networkUrl(Uri.parse(url)); - } else { - videoPlayerController = VideoPlayerController.file(file!); - } + videoPlayerController = VideoPlayerController.file(file ?? widget.preview); debugPrint("videoPlayerController: $videoPlayerController"); _videoPlayerController = videoPlayerController diff --git a/mobile/lib/ui/viewer/file/video_view_widget.dart b/mobile/lib/ui/viewer/file/video_view_widget.dart index 7d1050531e6..a9dbd0b3850 100644 --- a/mobile/lib/ui/viewer/file/video_view_widget.dart +++ b/mobile/lib/ui/viewer/file/video_view_widget.dart @@ -13,6 +13,7 @@ import "package:photos/core/event_bus.dart"; import "package:photos/generated/l10n.dart"; import 'package:photos/models/file/file.dart'; import "package:photos/service_locator.dart"; +import "package:photos/services/preview_video_store.dart"; import "package:photos/ui/actions/file/file_actions.dart"; import "package:photos/ui/viewer/file/preview_video_widget.dart"; import 'package:photos/ui/viewer/file/thumbnail_widget.dart'; @@ -56,9 +57,7 @@ class _VideoViewWidgetState extends State { void _checkForPreview() { if (!flagService.internalUser) return; - getPreviewFileFromServer( - widget.file, - ).then((file) { + PreviewVideoStore.instance.getPlaylist(widget.file).then((file) { if (!mounted) return; if (file != null) { isCheckingForPreview = false; @@ -96,6 +95,7 @@ class _VideoViewWidgetState extends State { if (previewFile != null) { return PreviewVideoWidget( widget.file, + preview: previewFile!, tagPrefix: widget.tagPrefix, playbackCallback: widget.playbackCallback, ); diff --git a/mobile/lib/utils/file_util.dart b/mobile/lib/utils/file_util.dart index 85eb60ddab8..8b0f76669f9 100644 --- a/mobile/lib/utils/file_util.dart +++ b/mobile/lib/utils/file_util.dart @@ -130,45 +130,6 @@ void removeCallBack(EnteFile file) { } } -Future getPreviewFileFromServer( - EnteFile file, { - ProgressCallback? progressCallback, -}) async { - final cacheManager = DefaultCacheManager(); - final fileFromCache = await cacheManager.getFileFromCache(file.downloadUrl); - if (fileFromCache != null) { - return fileFromCache.file; - } - final downloadID = file.uploadedFileID.toString(); - - if (progressCallback != null) { - _progressCallbacks[downloadID] = progressCallback; - } - - if (!_fileDownloadsInProgress.containsKey(downloadID)) { - final completer = Completer(); - _fileDownloadsInProgress[downloadID] = completer.future; - - Future downloadFuture; - - downloadFuture = _downloadAndCache( - file, - cacheManager, - progressCallback: (count, total) { - _progressCallbacks[downloadID]?.call(count, total); - }, - ); - - // ignore: unawaited_futures - downloadFuture.then((downloadedFile) async { - completer.complete(downloadedFile); - await _fileDownloadsInProgress.remove(downloadID); - _progressCallbacks.remove(downloadID); - }); - } - return _fileDownloadsInProgress[downloadID]; -} - Future getFileFromServer( EnteFile file, { ProgressCallback? progressCallback, From 68ac9cbe2697d04c6f4dbdf75f5ae33c0ec5b6e4 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Tue, 19 Nov 2024 13:42:18 +0530 Subject: [PATCH 11/90] fix: remove unwanted code --- .../ui/viewer/file/preview_video_widget.dart | 36 ++----------------- 1 file changed, 2 insertions(+), 34 deletions(-) diff --git a/mobile/lib/ui/viewer/file/preview_video_widget.dart b/mobile/lib/ui/viewer/file/preview_video_widget.dart index d8ce9cb790e..16b8b9c4060 100644 --- a/mobile/lib/ui/viewer/file/preview_video_widget.dart +++ b/mobile/lib/ui/viewer/file/preview_video_widget.dart @@ -8,7 +8,6 @@ import 'package:logging/logging.dart'; import 'package:photos/core/constants.dart'; import "package:photos/core/event_bus.dart"; import "package:photos/events/guest_view_event.dart"; -import "package:photos/generated/l10n.dart"; import "package:photos/models/file/extensions/file_props.dart"; import 'package:photos/models/file/file.dart'; import "package:photos/service_locator.dart"; @@ -79,35 +78,6 @@ class _PreviewVideoWidgetState extends State { } } - void _loadNetworkVideo() { - getFileFromServer( - widget.file, - progressCallback: (count, total) { - if (!mounted) { - return; - } - _progressNotifier.value = count / (widget.file.fileSize ?? total); - if (_progressNotifier.value == 1) { - if (mounted) { - showShortToast(context, S.of(context).decryptingVideo); - } - } - }, - ).then((file) { - if (file != null && mounted) { - _setVideoPlayerController(file: file); - } - }).onError((error, stackTrace) { - if (mounted) { - showErrorDialog( - context, - "Error", - S.of(context).failedToDownloadVideo, - ); - } - }); - } - @override void dispose() { _fileSwipeLockEventSubscription.cancel(); @@ -119,9 +89,7 @@ class _PreviewVideoWidgetState extends State { super.dispose(); } - void _setVideoPlayerController({ - File? file, - }) { + void _setVideoPlayerController() { if (!mounted) { // Note: Do not initiale video player if widget is not mounted. // On Android, if multiple instance of ExoPlayer is created, it will start @@ -129,7 +97,7 @@ class _PreviewVideoWidgetState extends State { return; } VideoPlayerController videoPlayerController; - videoPlayerController = VideoPlayerController.file(file ?? widget.preview); + videoPlayerController = VideoPlayerController.file(widget.preview); debugPrint("videoPlayerController: $videoPlayerController"); _videoPlayerController = videoPlayerController From 1fa3d873697b899e611c3a418187fa58044b8417 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Mon, 25 Nov 2024 02:24:32 +0530 Subject: [PATCH 12/90] fix: show toast about video is playing --- mobile/lib/ui/viewer/file/video_view_widget.dart | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mobile/lib/ui/viewer/file/video_view_widget.dart b/mobile/lib/ui/viewer/file/video_view_widget.dart index a9dbd0b3850..1a37e300860 100644 --- a/mobile/lib/ui/viewer/file/video_view_widget.dart +++ b/mobile/lib/ui/viewer/file/video_view_widget.dart @@ -7,6 +7,7 @@ import 'package:chewie/chewie.dart'; import 'package:flutter/cupertino.dart'; import "package:flutter/foundation.dart"; import 'package:flutter/material.dart'; +import "package:fluttertoast/fluttertoast.dart"; import 'package:logging/logging.dart'; import 'package:photos/core/constants.dart'; import "package:photos/core/event_bus.dart"; @@ -93,6 +94,7 @@ class _VideoViewWidgetState extends State { } if (previewFile != null) { + Fluttertoast.showToast(msg: "Playing preview video"); return PreviewVideoWidget( widget.file, preview: previewFile!, From 426cd70c31051405d6207aec31076769ffb8a333 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Mon, 25 Nov 2024 02:24:40 +0530 Subject: [PATCH 13/90] refactor: simplify error handling and remove unused imports in preview video components --- mobile/lib/services/preview_video_store.dart | 2 +- .../ui/viewer/file/preview_video_widget.dart | 17 ----------------- web/apps/photos/thirdparty/ffmpeg-wasm | 1 + 3 files changed, 2 insertions(+), 18 deletions(-) create mode 160000 web/apps/photos/thirdparty/ffmpeg-wasm diff --git a/mobile/lib/services/preview_video_store.dart b/mobile/lib/services/preview_video_store.dart index 3fd3c416c7f..02a39cf058f 100644 --- a/mobile/lib/services/preview_video_store.dart +++ b/mobile/lib/services/preview_video_store.dart @@ -190,7 +190,7 @@ class PreviewVideoStore { _logger.info("Writing playlist to ${playlistFile.path}"); return playlistFile; - } catch (e, s) { + } catch (_) { rethrow; } } diff --git a/mobile/lib/ui/viewer/file/preview_video_widget.dart b/mobile/lib/ui/viewer/file/preview_video_widget.dart index 16b8b9c4060..bb660b2fcb5 100644 --- a/mobile/lib/ui/viewer/file/preview_video_widget.dart +++ b/mobile/lib/ui/viewer/file/preview_video_widget.dart @@ -4,14 +4,11 @@ import 'dart:io'; import 'package:chewie/chewie.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; -import 'package:logging/logging.dart'; import 'package:photos/core/constants.dart'; import "package:photos/core/event_bus.dart"; import "package:photos/events/guest_view_event.dart"; -import "package:photos/models/file/extensions/file_props.dart"; import 'package:photos/models/file/file.dart'; import "package:photos/service_locator.dart"; -import 'package:photos/services/files_service.dart'; import "package:photos/ui/actions/file/file_actions.dart"; import 'package:photos/ui/viewer/file/thumbnail_widget.dart'; import 'package:photos/ui/viewer/file/video_controls.dart'; @@ -43,7 +40,6 @@ class PreviewVideoWidget extends StatefulWidget { } class _PreviewVideoWidgetState extends State { - final _logger = Logger("VideoWidget"); VideoPlayerController? _videoPlayerController; ChewieController? _chewieController; final _progressNotifier = ValueNotifier(null); @@ -65,19 +61,6 @@ class _PreviewVideoWidgetState extends State { }); } - void _setFileSizeIfNull() { - if (widget.file.fileSize == null && widget.file.canEditMetaInfo) { - FilesService.instance - .getFileSize(widget.file.uploadedFileID!) - .then((value) { - widget.file.fileSize = value; - if (mounted) { - setState(() {}); - } - }); - } - } - @override void dispose() { _fileSwipeLockEventSubscription.cancel(); diff --git a/web/apps/photos/thirdparty/ffmpeg-wasm b/web/apps/photos/thirdparty/ffmpeg-wasm new file mode 160000 index 00000000000..8493ad48b12 --- /dev/null +++ b/web/apps/photos/thirdparty/ffmpeg-wasm @@ -0,0 +1 @@ +Subproject commit 8493ad48b12f83f881a59b84b003974ef23f9e96 From f7fc50f2e60a50ce4cbe4001db8ebf22882fe697 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Thu, 28 Nov 2024 15:09:37 +0530 Subject: [PATCH 14/90] fix: don't show error --- mobile/lib/ui/viewer/file/video_view_widget.dart | 5 ----- 1 file changed, 5 deletions(-) diff --git a/mobile/lib/ui/viewer/file/video_view_widget.dart b/mobile/lib/ui/viewer/file/video_view_widget.dart index 1a37e300860..f2067502643 100644 --- a/mobile/lib/ui/viewer/file/video_view_widget.dart +++ b/mobile/lib/ui/viewer/file/video_view_widget.dart @@ -71,11 +71,6 @@ class _VideoViewWidgetState extends State { }).onError((error, stackTrace) { if (!mounted) return; _logger.warning("Failed to download preview video", error, stackTrace); - showErrorDialog( - context, - "Error", - S.of(context).failedToDownloadVideo, - ); isCheckingForPreview = false; setState(() {}); }); From 13da082cda7df35e49a5c99dc1fc39dcf18f24b0 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Thu, 28 Nov 2024 20:26:11 +0530 Subject: [PATCH 15/90] fix: check files db if preview exist --- mobile/lib/db/ml/filedata.dart | 1 + mobile/lib/ui/viewer/file/video_view_widget.dart | 15 +++++++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/mobile/lib/db/ml/filedata.dart b/mobile/lib/db/ml/filedata.dart index 477aca8b40e..e5de650ab70 100644 --- a/mobile/lib/db/ml/filedata.dart +++ b/mobile/lib/db/ml/filedata.dart @@ -26,6 +26,7 @@ extension FileDataTable on MLDataDB { ); } + // optimize this Future> getFileIDsWithFDData() async { final db = await MLDataDB.instance.asyncDB; final res = await db.execute('SELECT $fileIDColumn FROM $fileDataTable'); diff --git a/mobile/lib/ui/viewer/file/video_view_widget.dart b/mobile/lib/ui/viewer/file/video_view_widget.dart index f2067502643..f3cc0ffc80c 100644 --- a/mobile/lib/ui/viewer/file/video_view_widget.dart +++ b/mobile/lib/ui/viewer/file/video_view_widget.dart @@ -11,6 +11,8 @@ import "package:fluttertoast/fluttertoast.dart"; import 'package:logging/logging.dart'; import 'package:photos/core/constants.dart'; import "package:photos/core/event_bus.dart"; +import "package:photos/db/ml/db.dart"; +import "package:photos/db/ml/filedata.dart"; import "package:photos/generated/l10n.dart"; import 'package:photos/models/file/file.dart'; import "package:photos/service_locator.dart"; @@ -56,9 +58,18 @@ class _VideoViewWidgetState extends State { _checkForPreview(); } - void _checkForPreview() { + Future _checkForPreview() async { if (!flagService.internalUser) return; - PreviewVideoStore.instance.getPlaylist(widget.file).then((file) { + + final Set filesWithFDStatus = + await MLDataDB.instance.getFileIDsWithFDData(); + + if (!filesWithFDStatus.contains(widget.file.uploadedFileID)) { + isCheckingForPreview = false; + setState(() {}); + } + + await PreviewVideoStore.instance.getPlaylist(widget.file).then((file) { if (!mounted) return; if (file != null) { isCheckingForPreview = false; From d8490322d9ff314210569cd76db53ed4e1e9688a Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Thu, 28 Nov 2024 22:22:33 +0530 Subject: [PATCH 16/90] fix: update for iOS --- mobile/lib/main.dart | 6 ++++++ mobile/pubspec.lock | 23 +++++++++++++++-------- mobile/pubspec.yaml | 11 +++-------- 3 files changed, 24 insertions(+), 16 deletions(-) diff --git a/mobile/lib/main.dart b/mobile/lib/main.dart index f44a3d799f9..33dd4cc4ea9 100644 --- a/mobile/lib/main.dart +++ b/mobile/lib/main.dart @@ -51,6 +51,7 @@ import "package:photos/utils/email_util.dart"; import 'package:photos/utils/file_uploader.dart'; import "package:photos/utils/lock_screen_settings.dart"; import 'package:shared_preferences/shared_preferences.dart'; +import "package:video_player_media_kit/video_player_media_kit.dart"; final _logger = Logger("main"); @@ -65,6 +66,11 @@ const kBGPushTimeout = Duration(seconds: 28); const kFGTaskDeathTimeoutInMicroseconds = 5000000; void main() async { + VideoPlayerMediaKit.ensureInitialized( + android: + true, // default: false - dependency: media_kit_libs_android_video + iOS: true, // default: false - dependency: media_kit_libs_ios_video + ); debugRepaintRainbowEnabled = false; WidgetsFlutterBinding.ensureInitialized(); //For audio to work on vidoes in iOS when in silent mode. diff --git a/mobile/pubspec.lock b/mobile/pubspec.lock index 3de20725fb2..c104e49bac6 100644 --- a/mobile/pubspec.lock +++ b/mobile/pubspec.lock @@ -250,12 +250,11 @@ packages: chewie: dependency: "direct main" description: - path: "." - ref: forked_video_player_plus - resolved-ref: "2d8908efe9d7533ec76abe2e59444547c4031f28" - url: "https://github.com/ente-io/chewie.git" - source: git - version: "1.7.1" + name: chewie + sha256: "8bc4ac4cf3f316e50a25958c0f5eb9bb12cf7e8308bb1d74a43b230da2cfc144" + url: "https://pub.dev" + source: hosted + version: "1.7.5" cli_util: dependency: transitive description: @@ -1531,7 +1530,7 @@ packages: source: hosted version: "1.1.11" media_kit_libs_android_video: - dependency: transitive + dependency: "direct main" description: name: media_kit_libs_android_video sha256: "9dd8012572e4aff47516e55f2597998f0a378e3d588d0fad0ca1f11a53ae090c" @@ -1539,7 +1538,7 @@ packages: source: hosted version: "1.3.6" media_kit_libs_ios_video: - dependency: transitive + dependency: "direct main" description: name: media_kit_libs_ios_video sha256: b5382994eb37a4564c368386c154ad70ba0cc78dacdd3fb0cd9f30db6d837991 @@ -2790,6 +2789,14 @@ packages: url: "https://pub.dev" source: hosted version: "2.6.2" + video_player_media_kit: + dependency: "direct main" + description: + name: video_player_media_kit + sha256: eadf78b85d0ecc6f65bb5ca84c5ad9546a8609c6c0ee207e81673f7969461f3b + url: "https://pub.dev" + source: hosted + version: "1.0.5" video_player_platform_interface: dependency: transitive description: diff --git a/mobile/pubspec.yaml b/mobile/pubspec.yaml index 3c0fb72fef2..6c8216591a0 100644 --- a/mobile/pubspec.yaml +++ b/mobile/pubspec.yaml @@ -28,9 +28,6 @@ dependencies: bip39: ^1.0.6 cached_network_image: ^3.0.0 chewie: - git: - url: https://github.com/ente-io/chewie.git - ref: forked_video_player_plus collection: # dart computer: git: "https://github.com/ente-io/computer.git" @@ -114,6 +111,8 @@ dependencies: maps_launcher: ^2.2.1 media_extension: ^1.0.1 media_kit: ^1.1.10+1 + media_kit_libs_android_video: ^1.3.6 + media_kit_libs_ios_video: ^1.1.4 media_kit_libs_video: ^1.0.4 media_kit_video: ^1.2.4 ml_linalg: ^13.11.31 @@ -178,15 +177,11 @@ dependencies: video_compress: git: url: https://github.com/RmanAkbarzadeh/VideoCompress.git - video_editor: git: url: https://github.com/prateekmedia/video_editor.git video_player: - git: - url: https://github.com/ente-io/packages.git - ref: android_video_roation_fix - path: packages/video_player/video_player/ + video_player_media_kit: ^1.0.5 video_thumbnail: ^0.5.3 visibility_detector: ^0.3.3 wakelock_plus: ^1.1.1 From 03bfd854df7aa2f4d4da170aaa125c28447a74c2 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Thu, 28 Nov 2024 22:22:59 +0530 Subject: [PATCH 17/90] chore: bump packages --- mobile/ios/Podfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mobile/ios/Podfile.lock b/mobile/ios/Podfile.lock index 5eb373e6de8..587d5f002c7 100644 --- a/mobile/ios/Podfile.lock +++ b/mobile/ios/Podfile.lock @@ -524,4 +524,4 @@ SPEC CHECKSUMS: PODFILE CHECKSUM: 20e086e6008977d43a3d40260f3f9bffcac748dd -COCOAPODS: 1.16.2 +COCOAPODS: 1.15.2 From d84edcf85c825834604b3215d08b8a8d132e80e2 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Thu, 28 Nov 2024 22:27:23 +0530 Subject: [PATCH 18/90] fix: only use media_kit for iOS --- mobile/lib/main.dart | 4 +--- mobile/pubspec.yaml | 1 - 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/mobile/lib/main.dart b/mobile/lib/main.dart index 33dd4cc4ea9..c8cff9d485e 100644 --- a/mobile/lib/main.dart +++ b/mobile/lib/main.dart @@ -67,9 +67,7 @@ const kFGTaskDeathTimeoutInMicroseconds = 5000000; void main() async { VideoPlayerMediaKit.ensureInitialized( - android: - true, // default: false - dependency: media_kit_libs_android_video - iOS: true, // default: false - dependency: media_kit_libs_ios_video + iOS: true, // media_kit_libs_ios_video ); debugRepaintRainbowEnabled = false; WidgetsFlutterBinding.ensureInitialized(); diff --git a/mobile/pubspec.yaml b/mobile/pubspec.yaml index 22615717903..d704f1ea8b0 100644 --- a/mobile/pubspec.yaml +++ b/mobile/pubspec.yaml @@ -115,7 +115,6 @@ dependencies: url: "https://github.com/ente-io/media_extension.git" ref: deeplink_fixes media_kit: ^1.1.10+1 - media_kit_libs_android_video: ^1.3.6 media_kit_libs_ios_video: ^1.1.4 media_kit_libs_video: ^1.0.4 media_kit_video: ^1.2.4 From 3a50c45dde98ff9043300c24a496924e7ab8491e Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Fri, 29 Nov 2024 13:16:49 +0530 Subject: [PATCH 19/90] fix: init media kit video_player only when fg --- mobile/lib/main.dart | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/mobile/lib/main.dart b/mobile/lib/main.dart index c8cff9d485e..bf5f4e60926 100644 --- a/mobile/lib/main.dart +++ b/mobile/lib/main.dart @@ -66,9 +66,6 @@ const kBGPushTimeout = Duration(seconds: 28); const kFGTaskDeathTimeoutInMicroseconds = 5000000; void main() async { - VideoPlayerMediaKit.ensureInitialized( - iOS: true, // media_kit_libs_ios_video - ); debugRepaintRainbowEnabled = false; WidgetsFlutterBinding.ensureInitialized(); //For audio to work on vidoes in iOS when in silent mode. @@ -240,6 +237,10 @@ Future _init(bool isBackground, {String via = ''}) async { ServiceLocator.instance .init(preferences, NetworkClient.instance.enteDio, packageInfo); + if (!isBackground && flagService.internalUser) { + VideoPlayerMediaKit.ensureInitialized(iOS: true); + } + _logger.info("UserService init $tlog"); await UserService.instance.init(); _logger.info("UserService init done $tlog"); From a299dbcd6b56a110cdf8473b089df71835110868 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Fri, 29 Nov 2024 13:17:01 +0530 Subject: [PATCH 20/90] chore: bump lock --- mobile/pubspec.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mobile/pubspec.lock b/mobile/pubspec.lock index 48c3c04499a..4775e317a64 100644 --- a/mobile/pubspec.lock +++ b/mobile/pubspec.lock @@ -1539,7 +1539,7 @@ packages: source: hosted version: "1.1.11" media_kit_libs_android_video: - dependency: "direct main" + dependency: transitive description: name: media_kit_libs_android_video sha256: "9dd8012572e4aff47516e55f2597998f0a378e3d588d0fad0ca1f11a53ae090c" From 9aa49a7067e0bea52ec13b9c34ee3e9709c98e97 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Fri, 29 Nov 2024 16:08:19 +0530 Subject: [PATCH 21/90] fix: remove submodules --- mobile/plugins/clip_ggml | 1 - web/apps/photos/thirdparty/ffmpeg-wasm | 1 - 2 files changed, 2 deletions(-) delete mode 160000 mobile/plugins/clip_ggml delete mode 160000 web/apps/photos/thirdparty/ffmpeg-wasm diff --git a/mobile/plugins/clip_ggml b/mobile/plugins/clip_ggml deleted file mode 160000 index 16c7daea5d6..00000000000 --- a/mobile/plugins/clip_ggml +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 16c7daea5d6b80235ac473f1a823b0ff44f5305e diff --git a/web/apps/photos/thirdparty/ffmpeg-wasm b/web/apps/photos/thirdparty/ffmpeg-wasm deleted file mode 160000 index 8493ad48b12..00000000000 --- a/web/apps/photos/thirdparty/ffmpeg-wasm +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 8493ad48b12f83f881a59b84b003974ef23f9e96 From 3d96e4bd94eeed810a20b8e9694e9cef63ebb55b Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Fri, 29 Nov 2024 19:45:34 +0530 Subject: [PATCH 22/90] fix: revert source of chewie and video_player --- mobile/pubspec.lock | 11 ++++++----- mobile/pubspec.yaml | 7 +++++++ 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/mobile/pubspec.lock b/mobile/pubspec.lock index 4775e317a64..c1f9d562158 100644 --- a/mobile/pubspec.lock +++ b/mobile/pubspec.lock @@ -258,11 +258,12 @@ packages: chewie: dependency: "direct main" description: - name: chewie - sha256: "8bc4ac4cf3f316e50a25958c0f5eb9bb12cf7e8308bb1d74a43b230da2cfc144" - url: "https://pub.dev" - source: hosted - version: "1.7.5" + path: "." + ref: forked_video_player_plus + resolved-ref: "2d8908efe9d7533ec76abe2e59444547c4031f28" + url: "https://github.com/ente-io/chewie.git" + source: git + version: "1.7.1" cli_util: dependency: transitive description: diff --git a/mobile/pubspec.yaml b/mobile/pubspec.yaml index d704f1ea8b0..9507a8ee8f1 100644 --- a/mobile/pubspec.yaml +++ b/mobile/pubspec.yaml @@ -29,6 +29,9 @@ dependencies: bip39: ^1.0.6 cached_network_image: ^3.0.0 chewie: + git: + url: https://github.com/ente-io/chewie.git + ref: forked_video_player_plus collection: # dart computer: git: "https://github.com/ente-io/computer.git" @@ -184,6 +187,10 @@ dependencies: git: url: https://github.com/prateekmedia/video_editor.git video_player: + git: + url: https://github.com/ente-io/packages.git + ref: android_video_roation_fix + path: packages/video_player/video_player/ video_player_media_kit: ^1.0.5 video_thumbnail: ^0.5.3 visibility_detector: ^0.3.3 From ffeb9da0d6f5c05a4ba76986ca404d6120c99faa Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Tue, 3 Dec 2024 00:11:18 +0530 Subject: [PATCH 23/90] fix(preview): cache previewed list, use native player by default --- mobile/lib/db/ml/filedata.dart | 9 +- mobile/lib/main.dart | 8 +- .../services/filedata/filedata_service.dart | 2 + mobile/lib/ui/tabs/home_widget.dart | 2 +- mobile/lib/ui/viewer/file/file_widget.dart | 20 ++- .../ui/viewer/file/preview_video_widget.dart | 30 +++- .../lib/ui/viewer/file/video_view_widget.dart | 157 ------------------ .../ui/viewer/file/video_widget_native.dart | 6 +- 8 files changed, 62 insertions(+), 172 deletions(-) delete mode 100644 mobile/lib/ui/viewer/file/video_view_widget.dart diff --git a/mobile/lib/db/ml/filedata.dart b/mobile/lib/db/ml/filedata.dart index e5de650ab70..19e0c474bf5 100644 --- a/mobile/lib/db/ml/filedata.dart +++ b/mobile/lib/db/ml/filedata.dart @@ -26,7 +26,14 @@ extension FileDataTable on MLDataDB { ); } - // optimize this + Future> getFileIDsVidPreview() async { + final db = await MLDataDB.instance.asyncDB; + final res = await db.execute( + "SELECT $fileIDColumn FROM $fileDataTable WHERE type='vid_preview'", + ); + return res.map((e) => e[fileIDColumn] as int).toSet(); + } + Future> getFileIDsWithFDData() async { final db = await MLDataDB.instance.asyncDB; final res = await db.execute('SELECT $fileIDColumn FROM $fileDataTable'); diff --git a/mobile/lib/main.dart b/mobile/lib/main.dart index bf5f4e60926..64561c82093 100644 --- a/mobile/lib/main.dart +++ b/mobile/lib/main.dart @@ -250,6 +250,10 @@ Future _init(bool isBackground, {String via = ''}) async { _logger.info("CollectionsService init done $tlog"); FavoritesService.instance.initFav().ignore(); + MemoriesService.instance.init(preferences); + LocalFileUpdateService.instance.init(preferences); + SearchService.instance.init(); + FileDataService.instance.init(preferences); _logger.info("FileUploader init $tlog"); await FileUploader.instance.init(preferences, isBackground); @@ -265,10 +269,6 @@ Future _init(bool isBackground, {String via = ''}) async { await SyncService.instance.init(preferences); _logger.info("SyncService init done $tlog"); - MemoriesService.instance.init(preferences); - LocalFileUpdateService.instance.init(preferences); - SearchService.instance.init(); - FileDataService.instance.init(preferences); _logger.info("RemoteFileMLService done $tlog"); if (!isBackground && Platform.isAndroid && diff --git a/mobile/lib/services/filedata/filedata_service.dart b/mobile/lib/services/filedata/filedata_service.dart index cc629ed0feb..2a3a9069cf1 100644 --- a/mobile/lib/services/filedata/filedata_service.dart +++ b/mobile/lib/services/filedata/filedata_service.dart @@ -23,6 +23,7 @@ class FileDataService { final _logger = Logger("FileDataService"); final _dio = NetworkClient.instance.enteDio; late final SharedPreferences _prefs; + Set? previewIds; void init(SharedPreferences prefs) { _prefs = prefs; @@ -136,6 +137,7 @@ class FileDataService { await _prefs.setInt("fd.lastSyncTime", maxUpdatedAt); _logger.info('found ${result.length} fd entries'); hasMoreData = result.isNotEmpty; + previewIds = await MLDataDB.instance.getFileIDsVidPreview(); } while (hasMoreData); } catch (e) { _logger.severe("Failed to syncDiff", e); diff --git a/mobile/lib/ui/tabs/home_widget.dart b/mobile/lib/ui/tabs/home_widget.dart index 73ed33d4284..adf1cf14769 100644 --- a/mobile/lib/ui/tabs/home_widget.dart +++ b/mobile/lib/ui/tabs/home_widget.dart @@ -475,7 +475,7 @@ class _HomeWidgetState extends State { .getInitialMedia() .then((List value) { if (mounted) { - if (value[0].path.contains("albums.ente.io")) { + if (value.isNotEmpty && value[0].path.contains("albums.ente.io")) { final uri = Uri.parse(value[0].path); _handlePublicAlbumLink(uri); return; diff --git a/mobile/lib/ui/viewer/file/file_widget.dart b/mobile/lib/ui/viewer/file/file_widget.dart index 0e2fc4a560a..4df77c86d63 100644 --- a/mobile/lib/ui/viewer/file/file_widget.dart +++ b/mobile/lib/ui/viewer/file/file_widget.dart @@ -2,7 +2,10 @@ import 'package:flutter/material.dart'; import 'package:logging/logging.dart'; import 'package:photos/models/file/file.dart'; import 'package:photos/models/file/file_type.dart'; -import "package:photos/ui/viewer/file/video_view_widget.dart"; +import "package:photos/service_locator.dart"; +import "package:photos/services/filedata/filedata_service.dart"; +import "package:photos/ui/viewer/file/preview_video_widget.dart"; +import "package:photos/ui/viewer/file/video_widget_native.dart"; import "package:photos/ui/viewer/file/zoomable_live_image_new.dart"; class FileWidget extends StatelessWidget { @@ -40,8 +43,19 @@ class FileWidget extends StatelessWidget { key: key ?? ValueKey(fileKey), ); } else if (file.fileType == FileType.video) { - return VideoViewWidget( - // return VideoWidgetNative( + if (file.isRemoteFile && + flagService.internalUser && + (FileDataService.instance.previewIds + ?.contains(file.uploadedFileID!) ?? + false)) { + return PreviewVideoWidget( + file, + tagPrefix: tagPrefix, + playbackCallback: playbackCallback, + key: key ?? ValueKey(fileKey), + ); + } + return VideoWidgetNative( file, tagPrefix: tagPrefix, playbackCallback: playbackCallback, diff --git a/mobile/lib/ui/viewer/file/preview_video_widget.dart b/mobile/lib/ui/viewer/file/preview_video_widget.dart index bb660b2fcb5..8a63814afe2 100644 --- a/mobile/lib/ui/viewer/file/preview_video_widget.dart +++ b/mobile/lib/ui/viewer/file/preview_video_widget.dart @@ -1,14 +1,17 @@ import 'dart:async'; -import 'dart:io'; +import "dart:io"; import 'package:chewie/chewie.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; +import "package:fluttertoast/fluttertoast.dart"; +import "package:logging/logging.dart"; import 'package:photos/core/constants.dart'; import "package:photos/core/event_bus.dart"; import "package:photos/events/guest_view_event.dart"; import 'package:photos/models/file/file.dart'; import "package:photos/service_locator.dart"; +import "package:photos/services/preview_video_store.dart"; import "package:photos/ui/actions/file/file_actions.dart"; import 'package:photos/ui/viewer/file/thumbnail_widget.dart'; import 'package:photos/ui/viewer/file/video_controls.dart'; @@ -24,11 +27,9 @@ class PreviewVideoWidget extends StatefulWidget { final bool? autoPlay; final String? tagPrefix; final Function(bool)? playbackCallback; - final File preview; const PreviewVideoWidget( this.file, { - required this.preview, this.autoPlay = false, this.tagPrefix, this.playbackCallback, @@ -40,6 +41,7 @@ class PreviewVideoWidget extends StatefulWidget { } class _PreviewVideoWidgetState extends State { + final _logger = Logger("PreviewVideoWidget"); VideoPlayerController? _videoPlayerController; ChewieController? _chewieController; final _progressNotifier = ValueNotifier(null); @@ -47,12 +49,13 @@ class _PreviewVideoWidgetState extends State { final EnteWakeLock _wakeLock = EnteWakeLock(); bool _isFileSwipeLocked = false; late final StreamSubscription _fileSwipeLockEventSubscription; + File? previewFile; @override void initState() { super.initState(); - _setVideoPlayerController(); + _checkForPreview(); _fileSwipeLockEventSubscription = Bus.instance.on().listen((event) { setState(() { @@ -72,6 +75,23 @@ class _PreviewVideoWidgetState extends State { super.dispose(); } + Future _checkForPreview() async { + final file = await PreviewVideoStore.instance + .getPlaylist(widget.file) + .onError((error, stackTrace) { + if (!mounted) return; + _logger.warning("Failed to download preview video", error, stackTrace); + Fluttertoast.showToast(msg: "Failed to download preview!"); + return null; + }); + if (!mounted) return; + if (file != null) { + Fluttertoast.showToast(msg: "Playing Preview!").ignore(); + previewFile = file; + _setVideoPlayerController(); + } + } + void _setVideoPlayerController() { if (!mounted) { // Note: Do not initiale video player if widget is not mounted. @@ -80,7 +100,7 @@ class _PreviewVideoWidgetState extends State { return; } VideoPlayerController videoPlayerController; - videoPlayerController = VideoPlayerController.file(widget.preview); + videoPlayerController = VideoPlayerController.file(previewFile!); debugPrint("videoPlayerController: $videoPlayerController"); _videoPlayerController = videoPlayerController diff --git a/mobile/lib/ui/viewer/file/video_view_widget.dart b/mobile/lib/ui/viewer/file/video_view_widget.dart deleted file mode 100644 index f3cc0ffc80c..00000000000 --- a/mobile/lib/ui/viewer/file/video_view_widget.dart +++ /dev/null @@ -1,157 +0,0 @@ -// ignore_for_file: unused_import - -import 'dart:async'; -import 'dart:io'; - -import 'package:chewie/chewie.dart'; -import 'package:flutter/cupertino.dart'; -import "package:flutter/foundation.dart"; -import 'package:flutter/material.dart'; -import "package:fluttertoast/fluttertoast.dart"; -import 'package:logging/logging.dart'; -import 'package:photos/core/constants.dart'; -import "package:photos/core/event_bus.dart"; -import "package:photos/db/ml/db.dart"; -import "package:photos/db/ml/filedata.dart"; -import "package:photos/generated/l10n.dart"; -import 'package:photos/models/file/file.dart'; -import "package:photos/service_locator.dart"; -import "package:photos/services/preview_video_store.dart"; -import "package:photos/ui/actions/file/file_actions.dart"; -import "package:photos/ui/viewer/file/preview_video_widget.dart"; -import 'package:photos/ui/viewer/file/thumbnail_widget.dart'; -import 'package:photos/ui/viewer/file/video_controls.dart'; -import "package:photos/ui/viewer/file/video_widget.dart"; -import "package:photos/utils/dialog_util.dart"; -import 'package:photos/utils/file_util.dart'; -import 'package:photos/utils/toast_util.dart'; -import "package:photos/utils/wakelock_util.dart"; -import 'package:video_player/video_player.dart'; -import 'package:visibility_detector/visibility_detector.dart'; - -class VideoViewWidget extends StatefulWidget { - final EnteFile file; - final bool? autoPlay; - final String? tagPrefix; - final Function(bool)? playbackCallback; - - const VideoViewWidget( - this.file, { - this.autoPlay = false, - this.tagPrefix, - this.playbackCallback, - super.key, - }); - - @override - State createState() => _VideoViewWidgetState(); -} - -class _VideoViewWidgetState extends State { - final _logger = Logger("VideoViewWidget"); - bool isCheckingForPreview = true; - File? previewFile; - - @override - void initState() { - super.initState(); - _checkForPreview(); - } - - Future _checkForPreview() async { - if (!flagService.internalUser) return; - - final Set filesWithFDStatus = - await MLDataDB.instance.getFileIDsWithFDData(); - - if (!filesWithFDStatus.contains(widget.file.uploadedFileID)) { - isCheckingForPreview = false; - setState(() {}); - } - - await PreviewVideoStore.instance.getPlaylist(widget.file).then((file) { - if (!mounted) return; - if (file != null) { - isCheckingForPreview = false; - previewFile = file; - setState(() {}); - } else { - isCheckingForPreview = false; - setState(() {}); - } - }).onError((error, stackTrace) { - if (!mounted) return; - _logger.warning("Failed to download preview video", error, stackTrace); - isCheckingForPreview = false; - setState(() {}); - }); - } - - @override - void dispose() { - super.dispose(); - } - - @override - Widget build(BuildContext context) { - if (flagService.internalUser) { - if (isCheckingForPreview) { - return _getLoadingWidget(); - } - - if (previewFile != null) { - Fluttertoast.showToast(msg: "Playing preview video"); - return PreviewVideoWidget( - widget.file, - preview: previewFile!, - tagPrefix: widget.tagPrefix, - playbackCallback: widget.playbackCallback, - ); - } - } - - if (kDebugMode && Platform.isIOS) { - return VideoWidget( - widget.file, - tagPrefix: widget.tagPrefix, - playbackCallback: widget.playbackCallback, - ); - } - return VideoWidget( - widget.file, - tagPrefix: widget.tagPrefix, - playbackCallback: widget.playbackCallback, - ); - } - - Widget _getLoadingWidget() { - return Stack( - children: [ - _getThumbnail(), - Container( - color: Colors.black12, - constraints: const BoxConstraints.expand(), - ), - Center( - child: SizedBox.fromSize( - size: const Size.square(20), - child: const CupertinoActivityIndicator( - color: Colors.white, - ), - ), - ), - ], - ); - } - - Widget _getThumbnail() { - return Container( - color: Colors.black, - constraints: const BoxConstraints.expand(), - child: ThumbnailWidget( - widget.file, - fit: BoxFit.contain, - ), - ); - } -} diff --git a/mobile/lib/ui/viewer/file/video_widget_native.dart b/mobile/lib/ui/viewer/file/video_widget_native.dart index b5bea964957..4648f20e22b 100644 --- a/mobile/lib/ui/viewer/file/video_widget_native.dart +++ b/mobile/lib/ui/viewer/file/video_widget_native.dart @@ -379,7 +379,11 @@ class _VideoWidgetNativeState extends State _setFilePathForNativePlayer(file.path); } }).onError((error, stackTrace) { - showErrorDialog(context, S.of(context).error, S.of(context).failedToDownloadVideo); + showErrorDialog( + context, + S.of(context).error, + S.of(context).failedToDownloadVideo, + ); }); } From f19f1b0c688289745769b67cc290276e17f8b7fa Mon Sep 17 00:00:00 2001 From: Neeraj Gupta <254676+ua741@users.noreply.github.com> Date: Thu, 5 Dec 2024 15:40:20 +0530 Subject: [PATCH 24/90] [mob] Log video compression progress --- mobile/devtools_options.yaml | 3 +++ mobile/ios/Podfile.lock | 2 +- mobile/lib/main.dart | 2 ++ mobile/lib/services/preview_video_store.dart | 20 +++++++++++++++++--- mobile/lib/ui/viewer/file/file_app_bar.dart | 4 +++- 5 files changed, 26 insertions(+), 5 deletions(-) create mode 100644 mobile/devtools_options.yaml diff --git a/mobile/devtools_options.yaml b/mobile/devtools_options.yaml new file mode 100644 index 00000000000..fa0b357c4f4 --- /dev/null +++ b/mobile/devtools_options.yaml @@ -0,0 +1,3 @@ +description: This file stores settings for Dart & Flutter DevTools. +documentation: https://docs.flutter.dev/tools/devtools/extensions#configure-extension-enablement-states +extensions: diff --git a/mobile/ios/Podfile.lock b/mobile/ios/Podfile.lock index 587d5f002c7..5eb373e6de8 100644 --- a/mobile/ios/Podfile.lock +++ b/mobile/ios/Podfile.lock @@ -524,4 +524,4 @@ SPEC CHECKSUMS: PODFILE CHECKSUM: 20e086e6008977d43a3d40260f3f9bffcac748dd -COCOAPODS: 1.15.2 +COCOAPODS: 1.16.2 diff --git a/mobile/lib/main.dart b/mobile/lib/main.dart index 64561c82093..3ca16861e7c 100644 --- a/mobile/lib/main.dart +++ b/mobile/lib/main.dart @@ -39,6 +39,7 @@ import 'package:photos/services/machine_learning/ml_service.dart'; import 'package:photos/services/machine_learning/semantic_search/semantic_search_service.dart'; import 'package:photos/services/memories_service.dart'; import "package:photos/services/notification_service.dart"; +import "package:photos/services/preview_video_store.dart"; import 'package:photos/services/push_service.dart'; import 'package:photos/services/remote_sync_service.dart'; import 'package:photos/services/search_service.dart'; @@ -285,6 +286,7 @@ Future _init(bool isBackground, {String via = ''}) async { }); } _logger.info("PushService/HomeWidget done $tlog"); + PreviewVideoStore.instance.init(); unawaited(SemanticSearchService.instance.init()); unawaited(MLService.instance.init()); PersonService.init( diff --git a/mobile/lib/services/preview_video_store.dart b/mobile/lib/services/preview_video_store.dart index 02a39cf058f..becd3a79233 100644 --- a/mobile/lib/services/preview_video_store.dart +++ b/mobile/lib/services/preview_video_store.dart @@ -24,6 +24,13 @@ class PreviewVideoStore { final _logger = Logger("PreviewVideoStore"); final _dio = NetworkClient.instance.enteDio; + void init() { + VideoCompress.compressProgress$.subscribe((progress) { + if (kDebugMode) { + _logger.info("Compression progress: $progress"); + } + }); + } Future chunkAndUploadVideo(EnteFile enteFile) async { if (!enteFile.isUploaded) return; @@ -36,16 +43,22 @@ class PreviewVideoStore { debugPrint("previewUrl $resultUrl"); return; } catch (e) { - _logger.warning("Failed to get playlist for $enteFile", e); + if (e is DioError && e.response?.statusCode == 404) { + _logger.info("No preview found for $enteFile"); + } else { + _logger.warning("Failed to get playlist for $enteFile", e); + } } final tmpDirectory = await getApplicationDocumentsDirectory(); final prefix = "${tmpDirectory.path}/${enteFile.generatedID}"; Directory(prefix).createSync(); + _logger.info('Compressing video ${enteFile.displayName}'); final mediaInfo = await VideoCompress.compressVideo( file.path, quality: VideoQuality.Res1280x720Quality, ); if (mediaInfo?.path == null) return; + _logger.info('CompressionDone ${enteFile.displayName}'); final key = Key.fromLength(16); @@ -55,7 +68,7 @@ class PreviewVideoStore { final keyinfo = File('$prefix/mykey.keyinfo'); keyinfo.writeAsStringSync("data:text/plain;base64,${key.base64}\n" "${keyfile.path}\n"); - + _logger.info('Generating HLS Playlist ${enteFile.displayName}'); final session = await FFmpegKit.execute( '-i "${mediaInfo!.path}" ' '-c copy -f hls -hls_time 10 -hls_flags single_file ' @@ -66,6 +79,7 @@ class PreviewVideoStore { final returnCode = await session.getReturnCode(); if (ReturnCode.isSuccess(returnCode)) { + _logger.info('Playlist Generated ${enteFile.displayName}'); final playlistFile = File("$prefix/output.m3u8"); final previewFile = File("$prefix/output.ts"); final result = await _uploadPreviewVideo(enteFile, previewFile); @@ -77,7 +91,7 @@ class PreviewVideoStore { objectID: objectID, objectSize: objectSize, ); - _logger.info("Video preview uploaded for $enteFile"); + _logger.info("XXXHLS Video preview uploaded for $enteFile"); } else if (ReturnCode.isCancel(returnCode)) { _logger.warning("FFmpeg command cancelled"); } else { diff --git a/mobile/lib/ui/viewer/file/file_app_bar.dart b/mobile/lib/ui/viewer/file/file_app_bar.dart index bb47f53fd3c..c722d8a49f0 100644 --- a/mobile/lib/ui/viewer/file/file_app_bar.dart +++ b/mobile/lib/ui/viewer/file/file_app_bar.dart @@ -405,7 +405,9 @@ class FileAppBarState extends State { widget.file, ); } catch (e) { - await showGenericErrorDialog(context: context, error: e); + if (mounted) { + await showGenericErrorDialog(context: context, error: e); + } } } else if (value == 7) { _onToggleLoopVideo(); From f7b89b7126619f46f73c59c7c1f92cf2b58cd726 Mon Sep 17 00:00:00 2001 From: Neeraj Gupta <254676+ua741@users.noreply.github.com> Date: Sun, 8 Dec 2024 16:27:52 +0530 Subject: [PATCH 25/90] Use cached playlist in debugMode --- mobile/lib/services/preview_video_store.dart | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/mobile/lib/services/preview_video_store.dart b/mobile/lib/services/preview_video_store.dart index becd3a79233..17b33e2a45b 100644 --- a/mobile/lib/services/preview_video_store.dart +++ b/mobile/lib/services/preview_video_store.dart @@ -170,6 +170,13 @@ class PreviewVideoStore { Future _getPlaylist(EnteFile file) async { _logger.info("Getting playlist for $file"); + final tempDir = await getTemporaryDirectory(); + final String playlistLocalPath = + "${tempDir.path}/${file.uploadedFileID}.m3u8"; + // if path exists return the file + if (kDebugMode && File(playlistLocalPath).existsSync()) { + return File(playlistLocalPath); + } try { final response = await _dio.get( "/files/data/fetch/", @@ -198,8 +205,8 @@ class PreviewVideoStore { final finalPlaylist = (playlistData["playlist"]) .replaceAll('\nvideo.ts', '\n$previewURL') .replaceAll('\noutput.ts', '\n$previewURL'); - final tempDir = await getTemporaryDirectory(); - final playlistFile = File("${tempDir.path}/${file.generatedID}.m3u8"); + + final playlistFile = File("${tempDir.path}/${file.uploadedFileID}.m3u8"); await playlistFile.writeAsString(finalPlaylist); _logger.info("Writing playlist to ${playlistFile.path}"); From da38726f4042b7af389691a6608bfe083fa32e01 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Tue, 10 Dec 2024 01:43:05 +0530 Subject: [PATCH 26/90] fix: cache preview file --- mobile/lib/services/preview_video_store.dart | 22 ++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/mobile/lib/services/preview_video_store.dart b/mobile/lib/services/preview_video_store.dart index 17b33e2a45b..fe1eaa88893 100644 --- a/mobile/lib/services/preview_video_store.dart +++ b/mobile/lib/services/preview_video_store.dart @@ -6,6 +6,7 @@ import "package:encrypt/encrypt.dart"; import "package:ffmpeg_kit_flutter_full_gpl/ffmpeg_kit.dart"; import "package:ffmpeg_kit_flutter_full_gpl/return_code.dart"; import "package:flutter/foundation.dart" hide Key; +import "package:flutter_cache_manager/flutter_cache_manager.dart"; import "package:logging/logging.dart"; import "package:path_provider/path_provider.dart"; import "package:photos/core/network/network.dart"; @@ -23,6 +24,7 @@ class PreviewVideoStore { PreviewVideoStore._privateConstructor(); final _logger = Logger("PreviewVideoStore"); + final cacheManager = DefaultCacheManager(); final _dio = NetworkClient.instance.enteDio; void init() { VideoCompress.compressProgress$.subscribe((progress) { @@ -164,7 +166,20 @@ class PreviewVideoStore { } } + String _getCacheKey(EnteFile file) { + return "vid_preview_${file.uploadedFileID}"; + } + Future getPlaylist(EnteFile file) async { + if (file.uploadedFileID == null) return null; + final cachedFile = await cacheManager.getFileFromCache( + _getCacheKey(file), + ); + if (cachedFile != null) { + unawaited(_getPlaylist(file)); + return cachedFile.file; + } + return await _getPlaylist(file); } @@ -210,6 +225,13 @@ class PreviewVideoStore { await playlistFile.writeAsString(finalPlaylist); _logger.info("Writing playlist to ${playlistFile.path}"); + unawaited( + cacheManager.putFile( + _getCacheKey(file), + playlistFile.readAsBytesSync(), + ), + ); + return playlistFile; } catch (_) { rethrow; From f9df92212a4407cd13204d335181d8793e2fd67b Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Thu, 12 Dec 2024 03:00:57 +0530 Subject: [PATCH 27/90] feat: cache playlist and video --- mobile/lib/services/preview_video_store.dart | 74 +++++++++++++------- 1 file changed, 50 insertions(+), 24 deletions(-) diff --git a/mobile/lib/services/preview_video_store.dart b/mobile/lib/services/preview_video_store.dart index fe1eaa88893..339691ffbd5 100644 --- a/mobile/lib/services/preview_video_store.dart +++ b/mobile/lib/services/preview_video_store.dart @@ -9,6 +9,7 @@ import "package:flutter/foundation.dart" hide Key; import "package:flutter_cache_manager/flutter_cache_manager.dart"; import "package:logging/logging.dart"; import "package:path_provider/path_provider.dart"; +import "package:photos/core/cache/video_cache_manager.dart"; import "package:photos/core/network/network.dart"; import "package:photos/models/file/file.dart"; import "package:photos/models/file/file_type.dart"; @@ -25,6 +26,8 @@ class PreviewVideoStore { final _logger = Logger("PreviewVideoStore"); final cacheManager = DefaultCacheManager(); + final videoCacheManager = VideoCacheManager.instance; + final _dio = NetworkClient.instance.enteDio; void init() { VideoCompress.compressProgress$.subscribe((progress) { @@ -167,7 +170,11 @@ class PreviewVideoStore { } String _getCacheKey(EnteFile file) { - return "vid_preview_${file.uploadedFileID}"; + return "video_playlist_${file.uploadedFileID}"; + } + + String _getVideoPreviewKey(EnteFile file) { + return "video_preview_${file.uploadedFileID}"; } Future getPlaylist(EnteFile file) async { @@ -175,23 +182,24 @@ class PreviewVideoStore { final cachedFile = await cacheManager.getFileFromCache( _getCacheKey(file), ); - if (cachedFile != null) { - unawaited(_getPlaylist(file)); - return cachedFile.file; + final videoFile = + (await videoCacheManager.getFileFromCache(_getVideoPreviewKey(file))) + ?.file; + if (cachedFile != null && videoFile != null) { + final finalPlaylist = (cachedFile.file.readAsStringSync()) + .replaceAll('\noutput.ts', '\n${videoFile.path}'); + final tempDir = await getTemporaryDirectory(); + final playlistFile = File("${tempDir.path}/${file.uploadedFileID}.m3u8"); + playlistFile.writeAsStringSync(finalPlaylist); + unawaited(_getPlaylist(file, stopIfSame: true)); + return playlistFile; } - return await _getPlaylist(file); + return await _getPlaylist(file, stopIfSame: false); } - Future _getPlaylist(EnteFile file) async { + Future _getPlaylist(EnteFile file, {required bool stopIfSame}) async { _logger.info("Getting playlist for $file"); - final tempDir = await getTemporaryDirectory(); - final String playlistLocalPath = - "${tempDir.path}/${file.uploadedFileID}.m3u8"; - // if path exists return the file - if (kDebugMode && File(playlistLocalPath).existsSync()) { - return File(playlistLocalPath); - } try { final response = await _dio.get( "/files/data/fetch/", @@ -208,6 +216,21 @@ class PreviewVideoStore { encryptedData: encryptedData, header: header, ); + final playlistCache = + await cacheManager.getFileFromCache(_getCacheKey(file)); + if (playlistCache != null && + playlistData["playlist"] == playlistCache.file.readAsStringSync()) { + if (stopIfSame) { + return null; + } + } else { + unawaited( + cacheManager.putFile( + _getCacheKey(file), + Uint8List.fromList((playlistData["playlist"] as String).codeUnits), + ), + ); + } final response2 = await _dio.get( "/files/data/preview", queryParameters: { @@ -216,28 +239,31 @@ class PreviewVideoStore { }, ); final previewURL = response2.data["url"]; - // todo: (prateek/neeraj) review this - final finalPlaylist = (playlistData["playlist"]) - .replaceAll('\nvideo.ts', '\n$previewURL') - .replaceAll('\noutput.ts', '\n$previewURL'); + unawaited( + downloadAndCacheVideo( + previewURL, + _getVideoPreviewKey(file), + ), + ); + final finalPlaylist = + playlistData["playlist"].replaceAll('\noutput.ts', '\n$previewURL'); + final tempDir = await getTemporaryDirectory(); final playlistFile = File("${tempDir.path}/${file.uploadedFileID}.m3u8"); await playlistFile.writeAsString(finalPlaylist); _logger.info("Writing playlist to ${playlistFile.path}"); - unawaited( - cacheManager.putFile( - _getCacheKey(file), - playlistFile.readAsBytesSync(), - ), - ); - return playlistFile; } catch (_) { rethrow; } } + Future downloadAndCacheVideo(String url, String key) async { + final file = await videoCacheManager.downloadFile(url, key: key); + return file; + } + Future getPreviewUrl(EnteFile file) async { try { final response = await _dio.get( From 5dba4614810c62c323079bb1265cc5a688bea878 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Sun, 15 Dec 2024 00:36:20 +0530 Subject: [PATCH 28/90] fix: use object id for cache video and playlist keys --- mobile/lib/db/ml/db_fields.dart | 3 +- mobile/lib/db/ml/filedata.dart | 9 +- .../services/filedata/filedata_service.dart | 2 +- mobile/lib/services/preview_video_store.dart | 117 +++++++++--------- mobile/lib/ui/viewer/file/file_widget.dart | 2 +- 5 files changed, 66 insertions(+), 67 deletions(-) diff --git a/mobile/lib/db/ml/db_fields.dart b/mobile/lib/db/ml/db_fields.dart index 06f30ae9fd9..5968215cf5c 100644 --- a/mobile/lib/db/ml/db_fields.dart +++ b/mobile/lib/db/ml/db_fields.dart @@ -3,6 +3,7 @@ import 'package:photos/services/machine_learning/face_ml/face_filtering/face_fil const facesTable = 'faces'; const fileIDColumn = 'file_id'; +const objectIdColumn = 'obj_id'; const faceIDColumn = 'face_id'; const faceDetectionColumn = 'detection'; const embeddingColumn = 'embedding'; @@ -114,7 +115,7 @@ CREATE TABLE IF NOT EXISTS $fileDataTable ( user_id INTEGER NOT NULL, type TEXT NOT NULL, size INTEGER NOT NULL, - obj_id TEXT, + $objectIdColumn TEXT, obj_nonce TEXT, updated_at INTEGER NOT NULL, PRIMARY KEY ($fileIDColumn, type) diff --git a/mobile/lib/db/ml/filedata.dart b/mobile/lib/db/ml/filedata.dart index 19e0c474bf5..d973d7d9a20 100644 --- a/mobile/lib/db/ml/filedata.dart +++ b/mobile/lib/db/ml/filedata.dart @@ -26,12 +26,15 @@ extension FileDataTable on MLDataDB { ); } - Future> getFileIDsVidPreview() async { + Future> getFileIDsVidPreview() async { final db = await MLDataDB.instance.asyncDB; final res = await db.execute( - "SELECT $fileIDColumn FROM $fileDataTable WHERE type='vid_preview'", + "SELECT $fileIDColumn, $objectIdColumn FROM $fileDataTable WHERE type='vid_preview'", ); - return res.map((e) => e[fileIDColumn] as int).toSet(); + return res.asMap().map( + (i, e) => + MapEntry(e[fileIDColumn] as int, e[objectIdColumn] as String), + ); } Future> getFileIDsWithFDData() async { diff --git a/mobile/lib/services/filedata/filedata_service.dart b/mobile/lib/services/filedata/filedata_service.dart index 2a3a9069cf1..8a7902fbe6a 100644 --- a/mobile/lib/services/filedata/filedata_service.dart +++ b/mobile/lib/services/filedata/filedata_service.dart @@ -23,7 +23,7 @@ class FileDataService { final _logger = Logger("FileDataService"); final _dio = NetworkClient.instance.enteDio; late final SharedPreferences _prefs; - Set? previewIds; + Map? previewIds; void init(SharedPreferences prefs) { _prefs = prefs; diff --git a/mobile/lib/services/preview_video_store.dart b/mobile/lib/services/preview_video_store.dart index 339691ffbd5..1f68402c858 100644 --- a/mobile/lib/services/preview_video_store.dart +++ b/mobile/lib/services/preview_video_store.dart @@ -13,6 +13,7 @@ import "package:photos/core/cache/video_cache_manager.dart"; import "package:photos/core/network/network.dart"; import "package:photos/models/file/file.dart"; import "package:photos/models/file/file_type.dart"; +import "package:photos/services/filedata/filedata_service.dart"; import "package:photos/utils/file_key.dart"; import "package:photos/utils/file_util.dart"; import "package:photos/utils/gzip.dart"; @@ -169,84 +170,78 @@ class PreviewVideoStore { } } - String _getCacheKey(EnteFile file) { - return "video_playlist_${file.uploadedFileID}"; + String _getCacheKey(String objectKey) { + return "video_playlist_$objectKey"; } - String _getVideoPreviewKey(EnteFile file) { - return "video_preview_${file.uploadedFileID}"; + String _getVideoPreviewKey(String objectKey) { + return "video_preview_$objectKey"; } Future getPlaylist(EnteFile file) async { - if (file.uploadedFileID == null) return null; - final cachedFile = await cacheManager.getFileFromCache( - _getCacheKey(file), - ); - final videoFile = - (await videoCacheManager.getFileFromCache(_getVideoPreviewKey(file))) - ?.file; - if (cachedFile != null && videoFile != null) { - final finalPlaylist = (cachedFile.file.readAsStringSync()) - .replaceAll('\noutput.ts', '\n${videoFile.path}'); - final tempDir = await getTemporaryDirectory(); - final playlistFile = File("${tempDir.path}/${file.uploadedFileID}.m3u8"); - playlistFile.writeAsStringSync(finalPlaylist); - unawaited(_getPlaylist(file, stopIfSame: true)); - return playlistFile; - } - - return await _getPlaylist(file, stopIfSame: false); + return await _getPlaylist(file); } - Future _getPlaylist(EnteFile file, {required bool stopIfSame}) async { + Future _getPlaylist(EnteFile file) async { _logger.info("Getting playlist for $file"); try { - final response = await _dio.get( - "/files/data/fetch/", - queryParameters: { - "fileID": file.uploadedFileID, - "type": "vid_preview", - }, - ); - final encryptedData = response.data["data"]["encryptedData"]; - final header = response.data["data"]["decryptionHeader"]; - final encryptionKey = getFileKey(file); - final playlistData = await decryptAndUnzipJson( - encryptionKey, - encryptedData: encryptedData, - header: header, - ); + final objectKey = + FileDataService.instance.previewIds![file.uploadedFileID!]!; final playlistCache = - await cacheManager.getFileFromCache(_getCacheKey(file)); - if (playlistCache != null && - playlistData["playlist"] == playlistCache.file.readAsStringSync()) { - if (stopIfSame) { - return null; - } + await cacheManager.getFileFromCache(_getCacheKey(objectKey)); + String finalPlaylist; + if (playlistCache != null) { + finalPlaylist = playlistCache.file.readAsStringSync(); } else { + final response = await _dio.get( + "/files/data/fetch/", + queryParameters: { + "fileID": file.uploadedFileID, + "type": "vid_preview", + }, + ); + final encryptedData = response.data["data"]["encryptedData"]; + final header = response.data["data"]["decryptionHeader"]; + final encryptionKey = getFileKey(file); + final playlistData = await decryptAndUnzipJson( + encryptionKey, + encryptedData: encryptedData, + header: header, + ); + finalPlaylist = playlistData["playlist"]; + unawaited( cacheManager.putFile( - _getCacheKey(file), + _getCacheKey(objectKey), Uint8List.fromList((playlistData["playlist"] as String).codeUnits), ), ); } - final response2 = await _dio.get( - "/files/data/preview", - queryParameters: { - "fileID": file.uploadedFileID, - "type": "vid_preview", - }, - ); - final previewURL = response2.data["url"]; - unawaited( - downloadAndCacheVideo( - previewURL, - _getVideoPreviewKey(file), - ), - ); - final finalPlaylist = - playlistData["playlist"].replaceAll('\noutput.ts', '\n$previewURL'); + + final videoFile = (await videoCacheManager + .getFileFromCache(_getVideoPreviewKey(objectKey))) + ?.file; + if (videoFile == null) { + final response2 = await _dio.get( + "/files/data/preview", + queryParameters: { + "fileID": file.uploadedFileID, + "type": "vid_preview", + }, + ); + final previewURL = response2.data["url"]; + unawaited( + downloadAndCacheVideo( + previewURL, + _getVideoPreviewKey(objectKey), + ), + ); + finalPlaylist = + finalPlaylist.replaceAll('\noutput.ts', '\n$previewURL'); + } else { + finalPlaylist = + finalPlaylist.replaceAll('\noutput.ts', '\n${videoFile.path}'); + } final tempDir = await getTemporaryDirectory(); final playlistFile = File("${tempDir.path}/${file.uploadedFileID}.m3u8"); diff --git a/mobile/lib/ui/viewer/file/file_widget.dart b/mobile/lib/ui/viewer/file/file_widget.dart index 4df77c86d63..f0c43304ac1 100644 --- a/mobile/lib/ui/viewer/file/file_widget.dart +++ b/mobile/lib/ui/viewer/file/file_widget.dart @@ -46,7 +46,7 @@ class FileWidget extends StatelessWidget { if (file.isRemoteFile && flagService.internalUser && (FileDataService.instance.previewIds - ?.contains(file.uploadedFileID!) ?? + ?.containsKey(file.uploadedFileID!) ?? false)) { return PreviewVideoWidget( file, From d359d750c4e613599e5c6d26eed684e4fcdb87a0 Mon Sep 17 00:00:00 2001 From: Neeraj Gupta <254676+ua741@users.noreply.github.com> Date: Wed, 18 Dec 2024 16:40:26 +0530 Subject: [PATCH 29/90] [mob] Show progress toast --- mobile/lib/services/preview_video_store.dart | 25 ++++++++++++++++---- mobile/lib/ui/viewer/file/file_app_bar.dart | 1 + mobile/lib/ui/viewer/file/file_widget.dart | 2 +- 3 files changed, 22 insertions(+), 6 deletions(-) diff --git a/mobile/lib/services/preview_video_store.dart b/mobile/lib/services/preview_video_store.dart index 1f68402c858..76437e28395 100644 --- a/mobile/lib/services/preview_video_store.dart +++ b/mobile/lib/services/preview_video_store.dart @@ -2,10 +2,12 @@ import "dart:async"; import "dart:io"; import "package:dio/dio.dart"; -import "package:encrypt/encrypt.dart"; +import "package:encrypt/encrypt.dart" as enc; import "package:ffmpeg_kit_flutter_full_gpl/ffmpeg_kit.dart"; import "package:ffmpeg_kit_flutter_full_gpl/return_code.dart"; -import "package:flutter/foundation.dart" hide Key; +import "package:flutter/foundation.dart"; +// import "package:flutter/wid.dart"; +import "package:flutter/widgets.dart"; import "package:flutter_cache_manager/flutter_cache_manager.dart"; import "package:logging/logging.dart"; import "package:path_provider/path_provider.dart"; @@ -17,6 +19,7 @@ import "package:photos/services/filedata/filedata_service.dart"; import "package:photos/utils/file_key.dart"; import "package:photos/utils/file_util.dart"; import "package:photos/utils/gzip.dart"; +import "package:photos/utils/toast_util.dart"; import "package:video_compress/video_compress.dart"; class PreviewVideoStore { @@ -28,17 +31,19 @@ class PreviewVideoStore { final _logger = Logger("PreviewVideoStore"); final cacheManager = DefaultCacheManager(); final videoCacheManager = VideoCacheManager.instance; + double _progress = 0; final _dio = NetworkClient.instance.enteDio; void init() { VideoCompress.compressProgress$.subscribe((progress) { if (kDebugMode) { + _progress = progress; _logger.info("Compression progress: $progress"); } }); } - Future chunkAndUploadVideo(EnteFile enteFile) async { + Future chunkAndUploadVideo(BuildContext ctx, EnteFile enteFile) async { if (!enteFile.isUploaded) return; final file = await getFile(enteFile, isOrigin: true); if (file == null) return; @@ -46,6 +51,9 @@ class PreviewVideoStore { // check if playlist already exist await getPlaylist(enteFile); final resultUrl = await getPreviewUrl(enteFile); + if (ctx.mounted) { + showShortToast(ctx, 'Video preview already exists'); + } debugPrint("previewUrl $resultUrl"); return; } catch (e) { @@ -55,6 +63,13 @@ class PreviewVideoStore { _logger.warning("Failed to get playlist for $enteFile", e); } } + if (VideoCompress.isCompressing) { + showShortToast( + ctx, + "Another is being compressed ($_progress %), please wait", + ); + return; + } final tmpDirectory = await getApplicationDocumentsDirectory(); final prefix = "${tmpDirectory.path}/${enteFile.generatedID}"; Directory(prefix).createSync(); @@ -66,7 +81,7 @@ class PreviewVideoStore { if (mediaInfo?.path == null) return; _logger.info('CompressionDone ${enteFile.displayName}'); - final key = Key.fromLength(16); + final key = enc.Key.fromLength(16); final keyfile = File('$prefix/keyfile.key'); keyfile.writeAsBytesSync(key.bytes); @@ -97,7 +112,7 @@ class PreviewVideoStore { objectID: objectID, objectSize: objectSize, ); - _logger.info("XXXHLS Video preview uploaded for $enteFile"); + _logger.info("Video preview uploaded for $enteFile"); } else if (ReturnCode.isCancel(returnCode)) { _logger.warning("FFmpeg command cancelled"); } else { diff --git a/mobile/lib/ui/viewer/file/file_app_bar.dart b/mobile/lib/ui/viewer/file/file_app_bar.dart index c722d8a49f0..96a5a25f7d5 100644 --- a/mobile/lib/ui/viewer/file/file_app_bar.dart +++ b/mobile/lib/ui/viewer/file/file_app_bar.dart @@ -402,6 +402,7 @@ class FileAppBarState extends State { } else if (value == 99) { try { await PreviewVideoStore.instance.chunkAndUploadVideo( + context, widget.file, ); } catch (e) { diff --git a/mobile/lib/ui/viewer/file/file_widget.dart b/mobile/lib/ui/viewer/file/file_widget.dart index 6fc33250c35..49fa6e55b7a 100644 --- a/mobile/lib/ui/viewer/file/file_widget.dart +++ b/mobile/lib/ui/viewer/file/file_widget.dart @@ -41,7 +41,7 @@ class FileWidget extends StatelessWidget { key: key ?? ValueKey(fileKey), ); } else if (file.fileType == FileType.video) { - if (file.isRemoteFile && + if (file.isUploaded && flagService.internalUser && (FileDataService.instance.previewIds ?.containsKey(file.uploadedFileID!) ?? From a197851fe984e54916d1cb13e90ac427d997657f Mon Sep 17 00:00:00 2001 From: Neeraj Gupta <254676+ua741@users.noreply.github.com> Date: Wed, 18 Dec 2024 16:40:36 +0530 Subject: [PATCH 30/90] generated strings --- mobile/lib/generated/intl/messages_de.dart | 321 +++++++++++-------- mobile/lib/generated/intl/messages_en.dart | 280 ++++++++--------- mobile/lib/generated/intl/messages_es.dart | 338 ++++++++++++--------- mobile/lib/generated/intl/messages_fa.dart | 16 +- mobile/lib/generated/intl/messages_fr.dart | 319 +++++++++++-------- mobile/lib/generated/intl/messages_he.dart | 116 +++---- mobile/lib/generated/intl/messages_id.dart | 196 ++++++------ mobile/lib/generated/intl/messages_it.dart | 224 +++++++------- mobile/lib/generated/intl/messages_ja.dart | 220 +++++++------- mobile/lib/generated/intl/messages_lt.dart | 265 +++++++++++----- mobile/lib/generated/intl/messages_ml.dart | 118 ++++++- mobile/lib/generated/intl/messages_nl.dart | 317 +++++++++++-------- mobile/lib/generated/intl/messages_no.dart | 44 +-- mobile/lib/generated/intl/messages_pl.dart | 320 +++++++++++-------- 14 files changed, 1819 insertions(+), 1275 deletions(-) diff --git a/mobile/lib/generated/intl/messages_de.dart b/mobile/lib/generated/intl/messages_de.dart index c2dd01d0feb..fdcbea95348 100644 --- a/mobile/lib/generated/intl/messages_de.dart +++ b/mobile/lib/generated/intl/messages_de.dart @@ -61,189 +61,210 @@ class MessageLookup extends MessageLookupByLibrary { static String m18(albumName) => "Kollaborativer Link für ${albumName} erstellt"; - static String m19(familyAdminEmail) => + static String m19(count) => + "${Intl.plural(count, zero: '0 Mitarbeiter hinzugefügt', one: '1 Mitarbeiter hinzugefügt', other: '${count} Mitarbeiter hinzugefügt')}"; + + static String m20(email, numOfDays) => + "Du bist dabei, ${email} als vertrauenswürdigen Kontakt hinzuzufügen. Die Person wird in der Lage sein, dein Konto wiederherzustellen, wenn du für ${numOfDays} Tage abwesend bist."; + + static String m21(familyAdminEmail) => "Bitte kontaktiere ${familyAdminEmail} um dein Abo zu verwalten"; - static String m20(provider) => + static String m22(provider) => "Bitte kontaktiere uns über support@ente.io, um dein ${provider} Abo zu verwalten."; - static String m21(endpoint) => "Verbunden mit ${endpoint}"; + static String m23(endpoint) => "Verbunden mit ${endpoint}"; - static String m22(count) => + static String m24(count) => "${Intl.plural(count, one: 'Lösche ${count} Element', other: 'Lösche ${count} Elemente')}"; - static String m23(currentlyDeleting, totalCount) => + static String m25(currentlyDeleting, totalCount) => "Lösche ${currentlyDeleting} / ${totalCount}"; - static String m24(albumName) => + static String m26(albumName) => "Der öffentliche Link zum Zugriff auf \"${albumName}\" wird entfernt."; - static String m25(supportEmail) => + static String m27(supportEmail) => "Bitte sende eine E-Mail an ${supportEmail} von deiner registrierten E-Mail-Adresse"; - static String m26(count, storageSaved) => + static String m28(count, storageSaved) => "Du hast ${Intl.plural(count, one: '${count} duplizierte Datei', other: '${count} dupliziere Dateien')} gelöscht und (${storageSaved}!) freigegeben"; - static String m27(count, formattedSize) => + static String m29(count, formattedSize) => "${count} Dateien, ${formattedSize} jede"; - static String m28(newEmail) => "E-Mail-Adresse geändert zu ${newEmail}"; + static String m30(newEmail) => "E-Mail-Adresse geändert zu ${newEmail}"; - static String m29(email) => + static String m31(email) => "${email} hat kein Ente-Konto.\n\nSende eine Einladung, um Fotos zu teilen."; - static String m30(text) => "Zusätzliche Fotos für ${text} gefunden"; + static String m32(text) => "Zusätzliche Fotos für ${text} gefunden"; - static String m31(count, formattedNumber) => + static String m33(count, formattedNumber) => "${Intl.plural(count, one: '1 Datei', other: '${formattedNumber} Dateien')} auf diesem Gerät wurde(n) sicher gespeichert"; - static String m32(count, formattedNumber) => + static String m34(count, formattedNumber) => "${Intl.plural(count, one: '1 Datei', other: '${formattedNumber} Dateien')} in diesem Album wurde(n) sicher gespeichert"; - static String m33(storageAmountInGB) => + static String m35(storageAmountInGB) => "${storageAmountInGB} GB jedes Mal, wenn sich jemand mit deinem Code für einen bezahlten Tarif anmeldet"; - static String m34(endDate) => "Kostenlose Demo verfügbar bis zum ${endDate}"; + static String m36(endDate) => "Kostenlose Demo verfügbar bis zum ${endDate}"; - static String m35(count) => + static String m37(count) => "Du kannst immernoch über Ente ${Intl.plural(count, one: 'darauf', other: 'auf sie')} zugreifen, solange du ein aktives Abo hast"; - static String m36(sizeInMBorGB) => "${sizeInMBorGB} freigeben"; + static String m38(sizeInMBorGB) => "${sizeInMBorGB} freigeben"; - static String m37(count, formattedSize) => + static String m39(count, formattedSize) => "${Intl.plural(count, one: 'Es kann vom Gerät gelöscht werden, um ${formattedSize} freizugeben', other: 'Sie können vom Gerät gelöscht werden, um ${formattedSize} freizugeben')}"; - static String m38(currentlyProcessing, totalCount) => + static String m40(currentlyProcessing, totalCount) => "Verarbeite ${currentlyProcessing} / ${totalCount}"; - static String m39(count) => + static String m41(count) => "${Intl.plural(count, one: '${count} Objekt', other: '${count} Objekte')}"; - static String m40(expiryTime) => "Link läuft am ${expiryTime} ab"; + static String m42(email) => + "${email} hat dich eingeladen, ein vertrauenswürdiger Kontakt zu werden"; + + static String m43(expiryTime) => "Link läuft am ${expiryTime} ab"; static String m3(count, formattedCount) => "${Intl.plural(count, zero: 'keine Erinnerungsstücke', one: '${formattedCount} Erinnerung', other: '${formattedCount} Erinnerungsstücke')}"; - static String m41(count) => + static String m44(count) => "${Intl.plural(count, one: 'Element verschieben', other: 'Elemente verschieben')}"; - static String m42(albumName) => "Erfolgreich zu ${albumName} hinzugefügt"; + static String m45(albumName) => "Erfolgreich zu ${albumName} hinzugefügt"; - static String m43(personName) => "Keine Vorschläge für ${personName}"; + static String m46(personName) => "Keine Vorschläge für ${personName}"; - static String m44(name) => "Nicht ${name}?"; + static String m47(name) => "Nicht ${name}?"; - static String m45(familyAdminEmail) => + static String m48(familyAdminEmail) => "Bitte wende Dich an ${familyAdminEmail}, um den Code zu ändern."; static String m0(passwordStrengthValue) => "Passwortstärke: ${passwordStrengthValue}"; - static String m46(providerName) => + static String m49(providerName) => "Bitte kontaktiere den Support von ${providerName}, falls etwas abgebucht wurde"; - static String m47(count) => + static String m50(count) => "${Intl.plural(count, zero: '0 Fotos', one: '1 Foto', other: '${count} Fotos')}"; - static String m48(endDate) => + static String m51(endDate) => "Kostenlose Testversion gültig bis ${endDate}.\nDu kannst anschließend ein bezahltes Paket auswählen."; - static String m49(toEmail) => "Bitte sende uns eine E-Mail an ${toEmail}"; + static String m52(toEmail) => "Bitte sende uns eine E-Mail an ${toEmail}"; + + static String m53(toEmail) => "Bitte sende die Protokolle an ${toEmail}"; - static String m50(toEmail) => "Bitte sende die Protokolle an ${toEmail}"; + static String m54(folderName) => "Verarbeite ${folderName}..."; - static String m51(folderName) => "Verarbeite ${folderName}..."; + static String m55(storeName) => "Bewerte uns auf ${storeName}"; - static String m52(storeName) => "Bewerte uns auf ${storeName}"; + static String m56(days, email) => + "Du kannst nach ${days} Tagen auf das Konto zugreifen. Eine Benachrichtigung wird an ${email} versendet."; - static String m53(storageInGB) => + static String m57(email) => + "Du kannst jetzt das Konto von ${email} wiederherstellen, indem du ein neues Passwort setzt."; + + static String m58(email) => + "${email} versucht, dein Konto wiederherzustellen."; + + static String m59(storageInGB) => "3. Ihr beide erhaltet ${storageInGB} GB* kostenlos"; - static String m54(userEmail) => + static String m60(userEmail) => "${userEmail} wird aus diesem geteilten Album entfernt\n\nAlle von ihnen hinzugefügte Fotos werden ebenfalls aus dem Album entfernt"; - static String m55(endDate) => "Erneuert am ${endDate}"; + static String m61(endDate) => "Erneuert am ${endDate}"; - static String m56(count) => + static String m62(count) => "${Intl.plural(count, one: '${count} Ergebnis gefunden', other: '${count} Ergebnisse gefunden')}"; - static String m57(snapshotLenght, searchLenght) => + static String m63(snapshotLenght, searchLenght) => "Abschnittslänge stimmt nicht überein: ${snapshotLenght} != ${searchLenght}"; static String m4(count) => "${count} ausgewählt"; - static String m58(count, yourCount) => + static String m64(count, yourCount) => "${count} ausgewählt (${yourCount} von Ihnen)"; - static String m59(verificationID) => + static String m65(verificationID) => "Hier ist meine Verifizierungs-ID: ${verificationID} für ente.io."; static String m5(verificationID) => "Hey, kannst du bestätigen, dass dies deine ente.io Verifizierungs-ID ist: ${verificationID}"; - static String m60(referralCode, referralStorageInGB) => + static String m66(referralCode, referralStorageInGB) => "Ente Weiterempfehlungs-Code: ${referralCode} \n\nEinlösen unter Einstellungen → Allgemein → Weiterempfehlungen, um ${referralStorageInGB} GB kostenlos zu erhalten, sobald Sie einen kostenpflichtigen Tarif abgeschlossen haben\n\nhttps://ente.io"; - static String m61(numberOfPeople) => + static String m67(numberOfPeople) => "${Intl.plural(numberOfPeople, zero: 'Teile mit bestimmten Personen', one: 'Teilen mit 1 Person', other: 'Teilen mit ${numberOfPeople} Personen')}"; - static String m62(emailIDs) => "Geteilt mit ${emailIDs}"; + static String m68(emailIDs) => "Geteilt mit ${emailIDs}"; - static String m63(fileType) => + static String m69(fileType) => "Dieses ${fileType} wird von deinem Gerät gelöscht."; - static String m64(fileType) => + static String m70(fileType) => "Diese Datei ist sowohl in Ente als auch auf deinem Gerät."; - static String m65(fileType) => "Diese Datei wird von Ente gelöscht."; + static String m71(fileType) => "Diese Datei wird von Ente gelöscht."; static String m1(storageAmountInGB) => "${storageAmountInGB} GB"; - static String m66( + static String m72( usedAmount, usedStorageUnit, totalAmount, totalStorageUnit) => "${usedAmount} ${usedStorageUnit} von ${totalAmount} ${totalStorageUnit} verwendet"; - static String m67(id) => + static String m73(id) => "Dein ${id} ist bereits mit einem anderen Ente-Konto verknüpft.\nWenn du deine ${id} mit diesem Konto verwenden möchtest, kontaktiere bitte unseren Support"; - static String m68(endDate) => "Dein Abo endet am ${endDate}"; + static String m74(endDate) => "Dein Abo endet am ${endDate}"; - static String m69(completed, total) => + static String m75(completed, total) => "${completed}/${total} Erinnerungsstücke gesichert"; - static String m70(ignoreReason) => + static String m76(ignoreReason) => "Zum Hochladen tippen, Hochladen wird derzeit ignoriert, da ${ignoreReason}"; - static String m71(storageAmountInGB) => + static String m77(storageAmountInGB) => "Diese erhalten auch ${storageAmountInGB} GB"; - static String m72(email) => "Dies ist ${email}s Verifizierungs-ID"; + static String m78(email) => "Dies ist ${email}s Verifizierungs-ID"; - static String m73(count) => + static String m79(count) => "${Intl.plural(count, zero: 'Demnächst', one: '1 Tag', other: '${count} Tage')}"; - static String m74(galleryType) => + static String m80(email) => + "Du wurdest von ${email} eingeladen, ein Kontakt für das digitale Erbe zu werden."; + + static String m81(galleryType) => "Der Galerie-Typ ${galleryType} unterstützt kein Umbenennen"; - static String m75(ignoreReason) => + static String m82(ignoreReason) => "Upload wird aufgrund von ${ignoreReason} ignoriert"; - static String m76(count) => "Sichere ${count} Erinnerungsstücke..."; + static String m83(count) => "Sichere ${count} Erinnerungsstücke..."; - static String m77(endDate) => "Gültig bis ${endDate}"; + static String m84(endDate) => "Gültig bis ${endDate}"; - static String m78(email) => "Verifiziere ${email}"; + static String m85(email) => "Verifiziere ${email}"; - static String m79(count) => + static String m86(count) => "${Intl.plural(count, zero: '0 Betrachter hinzugefügt', one: '1 Betrachter hinzugefügt', other: '${count} Betrachter hinzugefügt')}"; static String m2(email) => "Wir haben eine E-Mail an ${email} gesendet"; - static String m80(count) => + static String m87(count) => "${Intl.plural(count, one: 'vor einem Jahr', other: 'vor ${count} Jahren')}"; - static String m81(storageSaved) => + static String m88(storageSaved) => "Du hast ${storageSaved} erfolgreich freigegeben!"; final messages = _notInlinedMessages(_notInlinedMessages); @@ -252,6 +273,8 @@ class MessageLookup extends MessageLookupByLibrary { "Eine neue Version von Ente ist verfügbar."), "about": MessageLookupByLibrary.simpleMessage("Allgemeine Informationen"), + "acceptTrustInvite": + MessageLookupByLibrary.simpleMessage("Einladung annehmen"), "account": MessageLookupByLibrary.simpleMessage("Konto"), "accountIsAlreadyConfigured": MessageLookupByLibrary.simpleMessage( "Das Konto ist bereits konfiguriert."), @@ -294,6 +317,8 @@ class MessageLookup extends MessageLookupByLibrary { "addToEnte": MessageLookupByLibrary.simpleMessage("Zu Ente hinzufügen"), "addToHiddenAlbum": MessageLookupByLibrary.simpleMessage( "Zum versteckten Album hinzufügen"), + "addTrustedContact": MessageLookupByLibrary.simpleMessage( + "Vertrauenswürdigen Kontakt hinzufügen"), "addViewer": MessageLookupByLibrary.simpleMessage("Album teilen"), "addViewers": m9, "addYourPhotosNow": @@ -406,6 +431,8 @@ class MessageLookup extends MessageLookupByLibrary { "Bitte authentifizieren, um Zwei-Faktor-Authentifizierung zu konfigurieren"), "authToInitiateAccountDeletion": MessageLookupByLibrary.simpleMessage( "Bitte authentifizieren, um die Löschung des Kontos einzuleiten"), + "authToManageLegacy": MessageLookupByLibrary.simpleMessage( + "Bitte authentifiziere dich, um deine vertrauenswürdigen Kontakte zu verwalten"), "authToViewPasskey": MessageLookupByLibrary.simpleMessage( "Bitte authentifizieren, um deinen Passkey zu sehen"), "authToViewYourActiveSessions": MessageLookupByLibrary.simpleMessage( @@ -469,6 +496,10 @@ class MessageLookup extends MessageLookupByLibrary { "canOnlyRemoveFilesOwnedByYou": MessageLookupByLibrary.simpleMessage( "Du kannst nur Dateien entfernen, die dir gehören"), "cancel": MessageLookupByLibrary.simpleMessage("Abbrechen"), + "cancelAccountRecovery": + MessageLookupByLibrary.simpleMessage("Wiederherstellung abbrechen"), + "cancelAccountRecoveryBody": MessageLookupByLibrary.simpleMessage( + "Bist du sicher, dass du die Wiederherstellung abbrechen möchtest?"), "cancelOtherSubscription": m15, "cancelSubscription": MessageLookupByLibrary.simpleMessage("Abonnement kündigen"), @@ -557,6 +588,7 @@ class MessageLookup extends MessageLookupByLibrary { "collaboratorsCanAddPhotosAndVideosToTheSharedAlbum": MessageLookupByLibrary.simpleMessage( "Bearbeiter können Fotos & Videos zu dem geteilten Album hinzufügen."), + "collaboratorsSuccessfullyAdded": m19, "collageLayout": MessageLookupByLibrary.simpleMessage("Layout"), "collageSaved": MessageLookupByLibrary.simpleMessage( "Collage in Galerie gespeichert"), @@ -573,6 +605,7 @@ class MessageLookup extends MessageLookupByLibrary { "Bist du sicher, dass du die Zwei-Faktor-Authentifizierung (2FA) deaktivieren willst?"), "confirmAccountDeletion": MessageLookupByLibrary.simpleMessage("Kontolöschung bestätigen"), + "confirmAddingTrustedContact": m20, "confirmDeletePrompt": MessageLookupByLibrary.simpleMessage( "Ja, ich möchte dieses Konto und alle enthaltenen Daten über alle Apps hinweg endgültig löschen."), "confirmPassword": @@ -585,10 +618,10 @@ class MessageLookup extends MessageLookupByLibrary { "Bestätige deinen Wiederherstellungsschlüssel"), "connectToDevice": MessageLookupByLibrary.simpleMessage("Mit Gerät verbinden"), - "contactFamilyAdmin": m19, + "contactFamilyAdmin": m21, "contactSupport": MessageLookupByLibrary.simpleMessage("Support kontaktieren"), - "contactToManageSubscription": m20, + "contactToManageSubscription": m22, "contacts": MessageLookupByLibrary.simpleMessage("Kontakte"), "contents": MessageLookupByLibrary.simpleMessage("Inhalte"), "continueLabel": MessageLookupByLibrary.simpleMessage("Weiter"), @@ -636,10 +669,12 @@ class MessageLookup extends MessageLookupByLibrary { "currentlyRunning": MessageLookupByLibrary.simpleMessage("läuft gerade"), "custom": MessageLookupByLibrary.simpleMessage("Benutzerdefiniert"), - "customEndpoint": m21, + "customEndpoint": m23, "darkTheme": MessageLookupByLibrary.simpleMessage("Dunkel"), "dayToday": MessageLookupByLibrary.simpleMessage("Heute"), "dayYesterday": MessageLookupByLibrary.simpleMessage("Gestern"), + "declineTrustInvite": + MessageLookupByLibrary.simpleMessage("Einladung ablehnen"), "decrypting": MessageLookupByLibrary.simpleMessage("Wird entschlüsselt..."), "decryptingVideo": @@ -672,11 +707,11 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Vom Gerät löschen"), "deleteFromEnte": MessageLookupByLibrary.simpleMessage("Von Ente löschen"), - "deleteItemCount": m22, + "deleteItemCount": m24, "deleteLocation": MessageLookupByLibrary.simpleMessage("Standort löschen"), "deletePhotos": MessageLookupByLibrary.simpleMessage("Fotos löschen"), - "deleteProgress": m23, + "deleteProgress": m25, "deleteReason1": MessageLookupByLibrary.simpleMessage( "Es fehlt eine zentrale Funktion, die ich benötige"), "deleteReason2": MessageLookupByLibrary.simpleMessage( @@ -714,7 +749,7 @@ class MessageLookup extends MessageLookupByLibrary { "Zuschauer können weiterhin Screenshots oder mit anderen externen Programmen Kopien der Bilder machen."), "disableDownloadWarningTitle": MessageLookupByLibrary.simpleMessage("Bitte beachten Sie:"), - "disableLinkMessage": m24, + "disableLinkMessage": m26, "disableTwofactor": MessageLookupByLibrary.simpleMessage( "Zweiten Faktor (2FA) deaktivieren"), "disablingTwofactorAuthentication": @@ -757,9 +792,9 @@ class MessageLookup extends MessageLookupByLibrary { "Herunterladen fehlgeschlagen"), "downloading": MessageLookupByLibrary.simpleMessage("Wird heruntergeladen..."), - "dropSupportEmail": m25, - "duplicateFileCountWithStorageSaved": m26, - "duplicateItemsGroup": m27, + "dropSupportEmail": m27, + "duplicateFileCountWithStorageSaved": m28, + "duplicateItemsGroup": m29, "edit": MessageLookupByLibrary.simpleMessage("Bearbeiten"), "editLocation": MessageLookupByLibrary.simpleMessage("Standort bearbeiten"), @@ -773,12 +808,14 @@ class MessageLookup extends MessageLookupByLibrary { "Edits to location will only be seen within Ente"), "eligible": MessageLookupByLibrary.simpleMessage("zulässig"), "email": MessageLookupByLibrary.simpleMessage("E-Mail"), - "emailChangedTo": m28, - "emailNoEnteAccount": m29, + "emailChangedTo": m30, + "emailNoEnteAccount": m31, "emailVerificationToggle": MessageLookupByLibrary.simpleMessage("E-Mail-Verifizierung"), "emailYourLogs": MessageLookupByLibrary.simpleMessage( "Protokolle per E-Mail senden"), + "emergencyContacts": + MessageLookupByLibrary.simpleMessage("Notfallkontakte"), "empty": MessageLookupByLibrary.simpleMessage("Leeren"), "emptyTrash": MessageLookupByLibrary.simpleMessage("Papierkorb leeren?"), @@ -855,7 +892,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Daten exportieren"), "extraPhotosFound": MessageLookupByLibrary.simpleMessage("Zusätzliche Fotos gefunden"), - "extraPhotosFoundFor": m30, + "extraPhotosFoundFor": m32, "faceNotClusteredYet": MessageLookupByLibrary.simpleMessage( "Gesicht ist noch nicht gruppiert, bitte komm später zurück"), "faceRecognition": @@ -905,8 +942,8 @@ class MessageLookup extends MessageLookupByLibrary { "fileTypes": MessageLookupByLibrary.simpleMessage("Dateitypen"), "fileTypesAndNames": MessageLookupByLibrary.simpleMessage("Dateitypen und -namen"), - "filesBackedUpFromDevice": m31, - "filesBackedUpInAlbum": m32, + "filesBackedUpFromDevice": m33, + "filesBackedUpInAlbum": m34, "filesDeleted": MessageLookupByLibrary.simpleMessage("Dateien gelöscht"), "filesSavedToGallery": MessageLookupByLibrary.simpleMessage( @@ -924,27 +961,27 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Gesichter gefunden"), "freeStorageClaimed": MessageLookupByLibrary.simpleMessage( "Kostenlos hinzugefügter Speicherplatz"), - "freeStorageOnReferralSuccess": m33, + "freeStorageOnReferralSuccess": m35, "freeStorageUsable": MessageLookupByLibrary.simpleMessage( "Freier Speicherplatz nutzbar"), "freeTrial": MessageLookupByLibrary.simpleMessage("Kostenlose Testphase"), - "freeTrialValidTill": m34, - "freeUpAccessPostDelete": m35, - "freeUpAmount": m36, + "freeTrialValidTill": m36, + "freeUpAccessPostDelete": m37, + "freeUpAmount": m38, "freeUpDeviceSpace": MessageLookupByLibrary.simpleMessage("Gerätespeicher freiräumen"), "freeUpDeviceSpaceDesc": MessageLookupByLibrary.simpleMessage( "Spare Speicherplatz auf deinem Gerät, indem du Dateien löschst, die bereits gesichert wurden."), "freeUpSpace": MessageLookupByLibrary.simpleMessage("Speicherplatz freigeben"), - "freeUpSpaceSaving": m37, + "freeUpSpaceSaving": m39, "galleryMemoryLimitInfo": MessageLookupByLibrary.simpleMessage( "Bis zu 1000 Erinnerungsstücke angezeigt in der Galerie"), "general": MessageLookupByLibrary.simpleMessage("Allgemein"), "generatingEncryptionKeys": MessageLookupByLibrary.simpleMessage( "Generierung von Verschlüsselungscodes..."), - "genericProgress": m38, + "genericProgress": m40, "goToSettings": MessageLookupByLibrary.simpleMessage("Zu den Einstellungen"), "googlePlayId": MessageLookupByLibrary.simpleMessage("Google Play ID"), @@ -1028,7 +1065,7 @@ class MessageLookup extends MessageLookupByLibrary { "itLooksLikeSomethingWentWrongPleaseRetryAfterSome": MessageLookupByLibrary.simpleMessage( "Etwas ist schiefgelaufen. Bitte versuche es später noch einmal. Sollte der Fehler weiter bestehen, kontaktiere unser Supportteam."), - "itemCount": m39, + "itemCount": m41, "itemsShowTheNumberOfDaysRemainingBeforePermanentDeletion": MessageLookupByLibrary.simpleMessage( "Elemente zeigen die Anzahl der Tage bis zum dauerhaften Löschen an"), @@ -1050,6 +1087,14 @@ class MessageLookup extends MessageLookupByLibrary { "leaveSharedAlbum": MessageLookupByLibrary.simpleMessage("Geteiltes Album verlassen?"), "left": MessageLookupByLibrary.simpleMessage("Links"), + "legacy": MessageLookupByLibrary.simpleMessage("Digitales Erbe"), + "legacyAccounts": + MessageLookupByLibrary.simpleMessage("Digital geerbte Konten"), + "legacyInvite": m42, + "legacyPageDesc": MessageLookupByLibrary.simpleMessage( + "Das digitale Erbe erlaubt vertrauenswürdigen Kontakten den Zugriff auf dein Konto in deiner Abwesenheit."), + "legacyPageDesc2": MessageLookupByLibrary.simpleMessage( + "Vertrauenswürdige Kontakte können eine Kontowiederherstellung einleiten und, wenn dies nicht innerhalb von 30 Tagen blockiert wird, dein Passwort und den Kontozugriff zurücksetzen."), "light": MessageLookupByLibrary.simpleMessage("Hell"), "lightTheme": MessageLookupByLibrary.simpleMessage("Hell"), "linkCopiedToClipboard": MessageLookupByLibrary.simpleMessage( @@ -1057,7 +1102,7 @@ class MessageLookup extends MessageLookupByLibrary { "linkDeviceLimit": MessageLookupByLibrary.simpleMessage("Geräte-Limit"), "linkEnabled": MessageLookupByLibrary.simpleMessage("Aktiviert"), "linkExpired": MessageLookupByLibrary.simpleMessage("Abgelaufen"), - "linkExpiresOn": m40, + "linkExpiresOn": m43, "linkExpiry": MessageLookupByLibrary.simpleMessage("Ablaufdatum des Links"), "linkHasExpired": @@ -1178,12 +1223,12 @@ class MessageLookup extends MessageLookupByLibrary { "moreDetails": MessageLookupByLibrary.simpleMessage("Weitere Details"), "mostRecent": MessageLookupByLibrary.simpleMessage("Neuste"), "mostRelevant": MessageLookupByLibrary.simpleMessage("Nach Relevanz"), - "moveItem": m41, + "moveItem": m44, "moveToAlbum": MessageLookupByLibrary.simpleMessage("Zum Album verschieben"), "moveToHiddenAlbum": MessageLookupByLibrary.simpleMessage( "Zu verstecktem Album verschieben"), - "movedSuccessfullyTo": m42, + "movedSuccessfullyTo": m45, "movedToTrash": MessageLookupByLibrary.simpleMessage( "In den Papierkorb verschoben"), "movingFilesToAlbum": MessageLookupByLibrary.simpleMessage( @@ -1234,10 +1279,10 @@ class MessageLookup extends MessageLookupByLibrary { "noResults": MessageLookupByLibrary.simpleMessage("Keine Ergebnisse"), "noResultsFound": MessageLookupByLibrary.simpleMessage("Keine Ergebnisse gefunden"), - "noSuggestionsForPerson": m43, + "noSuggestionsForPerson": m46, "noSystemLockFound": MessageLookupByLibrary.simpleMessage("Keine Systemsperre gefunden"), - "notPersonLabel": m44, + "notPersonLabel": m47, "nothingSharedWithYouYet": MessageLookupByLibrary.simpleMessage("Noch nichts mit Dir geteilt"), "nothingToSeeHere": MessageLookupByLibrary.simpleMessage( @@ -1248,7 +1293,7 @@ class MessageLookup extends MessageLookupByLibrary { "onDevice": MessageLookupByLibrary.simpleMessage("Auf dem Gerät"), "onEnte": MessageLookupByLibrary.simpleMessage( "Auf ente"), - "onlyFamilyAdminCanChangeCode": m45, + "onlyFamilyAdminCanChangeCode": m48, "onlyThem": MessageLookupByLibrary.simpleMessage("Nur diese"), "oops": MessageLookupByLibrary.simpleMessage("Hoppla"), "oopsCouldNotSaveEdits": MessageLookupByLibrary.simpleMessage( @@ -1296,7 +1341,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Zahlung fehlgeschlagen"), "paymentFailedMessage": MessageLookupByLibrary.simpleMessage( "Leider ist deine Zahlung fehlgeschlagen. Wende dich an unseren Support und wir helfen dir weiter!"), - "paymentFailedTalkToProvider": m46, + "paymentFailedTalkToProvider": m49, "pendingItems": MessageLookupByLibrary.simpleMessage("Ausstehende Elemente"), "pendingSync": @@ -1320,14 +1365,14 @@ class MessageLookup extends MessageLookupByLibrary { "photosAddedByYouWillBeRemovedFromTheAlbum": MessageLookupByLibrary.simpleMessage( "Von dir hinzugefügte Fotos werden vom Album entfernt"), - "photosCount": m47, + "photosCount": m50, "pickCenterPoint": MessageLookupByLibrary.simpleMessage("Mittelpunkt auswählen"), "pinAlbum": MessageLookupByLibrary.simpleMessage("Album anheften"), "pinLock": MessageLookupByLibrary.simpleMessage("PIN-Sperre"), "playOnTv": MessageLookupByLibrary.simpleMessage( "Album auf dem Fernseher wiedergeben"), - "playStoreFreeTrialValidTill": m48, + "playStoreFreeTrialValidTill": m51, "playstoreSubscription": MessageLookupByLibrary.simpleMessage("PlayStore Abo"), "pleaseCheckYourInternetConnectionAndTryAgain": @@ -1339,14 +1384,14 @@ class MessageLookup extends MessageLookupByLibrary { "pleaseContactSupportIfTheProblemPersists": MessageLookupByLibrary.simpleMessage( "Bitte wenden Sie sich an den Support, falls das Problem weiterhin besteht"), - "pleaseEmailUsAt": m49, + "pleaseEmailUsAt": m52, "pleaseGrantPermissions": MessageLookupByLibrary.simpleMessage( "Bitte erteile die nötigen Berechtigungen"), "pleaseLoginAgain": MessageLookupByLibrary.simpleMessage("Bitte logge dich erneut ein"), "pleaseSelectQuickLinksToRemove": MessageLookupByLibrary.simpleMessage( "Bitte wähle die zu entfernenden schnellen Links"), - "pleaseSendTheLogsTo": m50, + "pleaseSendTheLogsTo": m53, "pleaseTryAgain": MessageLookupByLibrary.simpleMessage("Bitte versuche es erneut"), "pleaseVerifyTheCodeYouHaveEntered": @@ -1373,7 +1418,8 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Private Sicherungen"), "privateSharing": MessageLookupByLibrary.simpleMessage("Privates Teilen"), - "processingImport": m51, + "proceed": MessageLookupByLibrary.simpleMessage("Fortfahren"), + "processingImport": m54, "publicLinkCreated": MessageLookupByLibrary.simpleMessage("Öffentlicher Link erstellt"), "publicLinkEnabled": @@ -1383,12 +1429,17 @@ class MessageLookup extends MessageLookupByLibrary { "raiseTicket": MessageLookupByLibrary.simpleMessage("Ticket erstellen"), "rateTheApp": MessageLookupByLibrary.simpleMessage("App bewerten"), "rateUs": MessageLookupByLibrary.simpleMessage("Bewerte uns"), - "rateUsOnStore": m52, + "rateUsOnStore": m55, "recover": MessageLookupByLibrary.simpleMessage("Wiederherstellen"), "recoverAccount": MessageLookupByLibrary.simpleMessage("Konto wiederherstellen"), "recoverButton": MessageLookupByLibrary.simpleMessage("Wiederherstellen"), + "recoveryAccount": + MessageLookupByLibrary.simpleMessage("Konto wiederherstellen"), + "recoveryInitiated": + MessageLookupByLibrary.simpleMessage("Wiederherstellung gestartet"), + "recoveryInitiatedDesc": m56, "recoveryKey": MessageLookupByLibrary.simpleMessage( "Wiederherstellungs-Schlüssel"), "recoveryKeyCopiedToClipboard": MessageLookupByLibrary.simpleMessage( @@ -1403,8 +1454,12 @@ class MessageLookup extends MessageLookupByLibrary { "Wiederherstellungs-Schlüssel überprüft"), "recoveryKeyVerifyReason": MessageLookupByLibrary.simpleMessage( "Dein Wiederherstellungsschlüssel ist die einzige Möglichkeit, auf deine Fotos zuzugreifen, solltest du dein Passwort vergessen. Du findest ihn unter Einstellungen > Konto.\n\nBitte gib deinen Wiederherstellungsschlüssel hier ein, um sicherzugehen, dass du ihn korrekt gesichert hast."), + "recoveryReady": m57, "recoverySuccessful": MessageLookupByLibrary.simpleMessage( "Wiederherstellung erfolgreich!"), + "recoveryWarning": MessageLookupByLibrary.simpleMessage( + "Ein vertrauenswürdiger Kontakt versucht, auf dein Konto zuzugreifen"), + "recoveryWarningBody": m58, "recreatePasswordBody": MessageLookupByLibrary.simpleMessage( "Das aktuelle Gerät ist nicht leistungsfähig genug, um dein Passwort zu verifizieren, aber wir können es neu erstellen, damit es auf allen Geräten funktioniert.\n\nBitte melde dich mit deinem Wiederherstellungs-Schlüssel an und erstelle dein Passwort neu (Wenn du willst, kannst du dasselbe erneut verwenden)."), "recreatePasswordTitle": @@ -1420,10 +1475,12 @@ class MessageLookup extends MessageLookupByLibrary { "1. Gib diesen Code an deine Freunde"), "referralStep2": MessageLookupByLibrary.simpleMessage( "2. Sie schließen ein bezahltes Abo ab"), - "referralStep3": m53, + "referralStep3": m59, "referrals": MessageLookupByLibrary.simpleMessage("Weiterempfehlungen"), "referralsAreCurrentlyPaused": MessageLookupByLibrary.simpleMessage( "Einlösungen sind derzeit pausiert"), + "rejectRecovery": + MessageLookupByLibrary.simpleMessage("Wiederherstellung ablehnen"), "remindToEmptyDeviceTrash": MessageLookupByLibrary.simpleMessage( "Lösche auch Dateien aus \"Kürzlich gelöscht\" unter \"Einstellungen\" -> \"Speicher\" um freien Speicher zu erhalten"), "remindToEmptyEnteTrash": MessageLookupByLibrary.simpleMessage( @@ -1445,10 +1502,12 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Aus Album entfernen?"), "removeFromFavorite": MessageLookupByLibrary.simpleMessage("Aus Favoriten entfernen"), + "removeInvite": + MessageLookupByLibrary.simpleMessage("Einladung entfernen"), "removeLink": MessageLookupByLibrary.simpleMessage("Link entfernen"), "removeParticipant": MessageLookupByLibrary.simpleMessage("Teilnehmer entfernen"), - "removeParticipantBody": m54, + "removeParticipantBody": m60, "removePersonLabel": MessageLookupByLibrary.simpleMessage("Personenetikett entfernen"), "removePublicLink": @@ -1459,6 +1518,8 @@ class MessageLookup extends MessageLookupByLibrary { "Einige der Elemente, die du entfernst, wurden von anderen Nutzern hinzugefügt und du wirst den Zugriff auf sie verlieren"), "removeWithQuestionMark": MessageLookupByLibrary.simpleMessage("Entfernen?"), + "removeYourselfAsTrustedContact": MessageLookupByLibrary.simpleMessage( + "Entferne dich als vertrauenswürdigen Kontakt"), "removingFromFavorites": MessageLookupByLibrary.simpleMessage( "Wird aus Favoriten entfernt..."), "rename": MessageLookupByLibrary.simpleMessage("Umbenennen"), @@ -1466,7 +1527,7 @@ class MessageLookup extends MessageLookupByLibrary { "renameFile": MessageLookupByLibrary.simpleMessage("Datei umbenennen"), "renewSubscription": MessageLookupByLibrary.simpleMessage("Abonnement erneuern"), - "renewsOn": m55, + "renewsOn": m61, "reportABug": MessageLookupByLibrary.simpleMessage("Fehler melden"), "reportBug": MessageLookupByLibrary.simpleMessage("Fehler melden"), "resendEmail": @@ -1545,8 +1606,8 @@ class MessageLookup extends MessageLookupByLibrary { "Laden Sie Personen ein, damit Sie geteilte Fotos hier einsehen können"), "searchPersonsEmptySection": MessageLookupByLibrary.simpleMessage( "Personen werden hier angezeigt, sobald die Verarbeitung abgeschlossen ist"), - "searchResultCount": m56, - "searchSectionsLengthMismatch": m57, + "searchResultCount": m62, + "searchSectionsLengthMismatch": m63, "security": MessageLookupByLibrary.simpleMessage("Sicherheit"), "seePublicAlbumLinksInApp": MessageLookupByLibrary.simpleMessage( "Öffentliche Album-Links in der App ansehen"), @@ -1581,7 +1642,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage( "Ausgewählte Elemente werden aus allen Alben gelöscht und in den Papierkorb verschoben."), "selectedPhotos": m4, - "selectedPhotosWithYours": m58, + "selectedPhotosWithYours": m64, "send": MessageLookupByLibrary.simpleMessage("Absenden"), "sendEmail": MessageLookupByLibrary.simpleMessage("E-Mail senden"), "sendInvite": MessageLookupByLibrary.simpleMessage("Einladung senden"), @@ -1611,16 +1672,16 @@ class MessageLookup extends MessageLookupByLibrary { "shareAnAlbumNow": MessageLookupByLibrary.simpleMessage("Teile jetzt ein Album"), "shareLink": MessageLookupByLibrary.simpleMessage("Link teilen"), - "shareMyVerificationID": m59, + "shareMyVerificationID": m65, "shareOnlyWithThePeopleYouWant": MessageLookupByLibrary.simpleMessage( "Teile mit ausgewählten Personen"), "shareTextConfirmOthersVerificationID": m5, "shareTextRecommendUsingEnte": MessageLookupByLibrary.simpleMessage( "Hol dir Ente, damit wir ganz einfach Fotos und Videos in Originalqualität teilen können\n\nhttps://ente.io"), - "shareTextReferralCode": m60, + "shareTextReferralCode": m66, "shareWithNonenteUsers": MessageLookupByLibrary.simpleMessage( "Mit Nicht-Ente-Benutzern teilen"), - "shareWithPeopleSectionTitle": m61, + "shareWithPeopleSectionTitle": m67, "shareYourFirstAlbum": MessageLookupByLibrary.simpleMessage("Teile dein erstes Album"), "sharedAlbumSectionDescription": MessageLookupByLibrary.simpleMessage( @@ -1631,7 +1692,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Neue geteilte Fotos"), "sharedPhotoNotificationsExplanation": MessageLookupByLibrary.simpleMessage( "Erhalte Benachrichtigungen, wenn jemand ein Foto zu einem gemeinsam genutzten Album hinzufügt, dem du angehörst"), - "sharedWith": m62, + "sharedWith": m68, "sharedWithMe": MessageLookupByLibrary.simpleMessage("Mit mir geteilt"), "sharedWithYou": MessageLookupByLibrary.simpleMessage("Mit dir geteilt"), @@ -1647,11 +1708,11 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Andere Geräte abmelden"), "signUpTerms": MessageLookupByLibrary.simpleMessage( "Ich stimme den Nutzungsbedingungen und der Datenschutzerklärung zu"), - "singleFileDeleteFromDevice": m63, + "singleFileDeleteFromDevice": m69, "singleFileDeleteHighlight": MessageLookupByLibrary.simpleMessage( "Es wird aus allen Alben gelöscht."), - "singleFileInBothLocalAndRemote": m64, - "singleFileInRemoteOnly": m65, + "singleFileInBothLocalAndRemote": m70, + "singleFileInRemoteOnly": m71, "skip": MessageLookupByLibrary.simpleMessage("Überspringen"), "social": MessageLookupByLibrary.simpleMessage("Social Media"), "someItemsAreInBothEnteAndYourDevice": @@ -1688,6 +1749,8 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Älteste zuerst"), "sparkleSuccess": MessageLookupByLibrary.simpleMessage("✨ Abgeschlossen"), + "startAccountRecoveryTitle": + MessageLookupByLibrary.simpleMessage("Wiederherstellung starten"), "startBackup": MessageLookupByLibrary.simpleMessage("Sicherung starten"), "status": MessageLookupByLibrary.simpleMessage("Status"), @@ -1701,10 +1764,10 @@ class MessageLookup extends MessageLookupByLibrary { "storageInGB": m1, "storageLimitExceeded": MessageLookupByLibrary.simpleMessage( "Speichergrenze überschritten"), - "storageUsageInfo": m66, + "storageUsageInfo": m72, "strongStrength": MessageLookupByLibrary.simpleMessage("Stark"), - "subAlreadyLinkedErrMessage": m67, - "subWillBeCancelledOn": m68, + "subAlreadyLinkedErrMessage": m73, + "subWillBeCancelledOn": m74, "subscribe": MessageLookupByLibrary.simpleMessage("Abonnieren"), "subscribeToEnableSharing": MessageLookupByLibrary.simpleMessage( "Du benötigst ein aktives, bezahltes Abonnement, um das Teilen zu aktivieren."), @@ -1721,7 +1784,7 @@ class MessageLookup extends MessageLookupByLibrary { "suggestFeatures": MessageLookupByLibrary.simpleMessage("Verbesserung vorschlagen"), "support": MessageLookupByLibrary.simpleMessage("Support"), - "syncProgress": m69, + "syncProgress": m75, "syncStopped": MessageLookupByLibrary.simpleMessage("Synchronisierung angehalten"), "syncing": MessageLookupByLibrary.simpleMessage("Synchronisiere …"), @@ -1734,7 +1797,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Zum Entsperren antippen"), "tapToUpload": MessageLookupByLibrary.simpleMessage("Zum Hochladen antippen"), - "tapToUploadIsIgnoredDue": m70, + "tapToUploadIsIgnoredDue": m76, "tempErrorContactSupportIfPersists": MessageLookupByLibrary.simpleMessage( "Etwas ist schiefgelaufen. Bitte versuche es später noch einmal. Sollte der Fehler weiter bestehen, kontaktiere unser Supportteam."), "terminate": MessageLookupByLibrary.simpleMessage("Beenden"), @@ -1758,7 +1821,7 @@ class MessageLookup extends MessageLookupByLibrary { "theseItemsWillBeDeletedFromYourDevice": MessageLookupByLibrary.simpleMessage( "Diese Elemente werden von deinem Gerät gelöscht."), - "theyAlsoGetXGb": m71, + "theyAlsoGetXGb": m77, "theyWillBeDeletedFromAllAlbums": MessageLookupByLibrary.simpleMessage( "Sie werden aus allen Alben gelöscht."), "thisActionCannotBeUndone": MessageLookupByLibrary.simpleMessage( @@ -1774,7 +1837,7 @@ class MessageLookup extends MessageLookupByLibrary { "Diese E-Mail-Adresse wird bereits verwendet"), "thisImageHasNoExifData": MessageLookupByLibrary.simpleMessage( "Dieses Bild hat keine Exif-Daten"), - "thisIsPersonVerificationId": m72, + "thisIsPersonVerificationId": m78, "thisIsYourVerificationId": MessageLookupByLibrary.simpleMessage( "Dies ist deine Verifizierungs-ID"), "thisWillLogYouOutOfTheFollowingDevice": @@ -1799,8 +1862,11 @@ class MessageLookup extends MessageLookupByLibrary { "total": MessageLookupByLibrary.simpleMessage("Gesamt"), "totalSize": MessageLookupByLibrary.simpleMessage("Gesamtgröße"), "trash": MessageLookupByLibrary.simpleMessage("Papierkorb"), - "trashDaysLeft": m73, + "trashDaysLeft": m79, "trim": MessageLookupByLibrary.simpleMessage("Schneiden"), + "trustedContacts": + MessageLookupByLibrary.simpleMessage("Vertrauenswürdige Kontakte"), + "trustedInviteBody": m80, "tryAgain": MessageLookupByLibrary.simpleMessage("Erneut versuchen"), "turnOnBackupForAutoUpload": MessageLookupByLibrary.simpleMessage( "Aktiviere die Sicherung, um neue Dateien in diesem Ordner automatisch zu Ente hochzuladen."), @@ -1819,7 +1885,7 @@ class MessageLookup extends MessageLookupByLibrary { "Zwei-Faktor-Authentifizierung (2FA) erfolgreich zurückgesetzt"), "twofactorSetup": MessageLookupByLibrary.simpleMessage( "Zweiten Faktor (2FA) einrichten"), - "typeOfGallerGallerytypeIsNotSupportedForRename": m74, + "typeOfGallerGallerytypeIsNotSupportedForRename": m81, "unarchive": MessageLookupByLibrary.simpleMessage("Dearchivieren"), "unarchiveAlbum": MessageLookupByLibrary.simpleMessage("Album dearchivieren"), @@ -1843,10 +1909,10 @@ class MessageLookup extends MessageLookupByLibrary { "updatingFolderSelection": MessageLookupByLibrary.simpleMessage( "Ordnerauswahl wird aktualisiert..."), "upgrade": MessageLookupByLibrary.simpleMessage("Upgrade"), - "uploadIsIgnoredDueToIgnorereason": m75, + "uploadIsIgnoredDueToIgnorereason": m82, "uploadingFilesToAlbum": MessageLookupByLibrary.simpleMessage( "Dateien werden ins Album hochgeladen..."), - "uploadingMultipleMemories": m76, + "uploadingMultipleMemories": m83, "uploadingSingleMemory": MessageLookupByLibrary.simpleMessage( "Sichere ein Erinnerungsstück..."), "upto50OffUntil4thDec": MessageLookupByLibrary.simpleMessage( @@ -1863,7 +1929,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Ausgewähltes Foto verwenden"), "usedSpace": MessageLookupByLibrary.simpleMessage("Belegter Speicherplatz"), - "validTill": m77, + "validTill": m84, "verificationFailedPleaseTryAgain": MessageLookupByLibrary.simpleMessage( "Verifizierung fehlgeschlagen, bitte versuchen Sie es erneut"), @@ -1872,7 +1938,7 @@ class MessageLookup extends MessageLookupByLibrary { "verify": MessageLookupByLibrary.simpleMessage("Überprüfen"), "verifyEmail": MessageLookupByLibrary.simpleMessage("E-Mail-Adresse verifizieren"), - "verifyEmailID": m78, + "verifyEmailID": m85, "verifyIDLabel": MessageLookupByLibrary.simpleMessage("Überprüfen"), "verifyPasskey": MessageLookupByLibrary.simpleMessage("Passkey verifizieren"), @@ -1899,13 +1965,14 @@ class MessageLookup extends MessageLookupByLibrary { "viewRecoveryKey": MessageLookupByLibrary.simpleMessage( "Wiederherstellungsschlüssel anzeigen"), "viewer": MessageLookupByLibrary.simpleMessage("Zuschauer"), - "viewersSuccessfullyAdded": m79, + "viewersSuccessfullyAdded": m86, "visitWebToManage": MessageLookupByLibrary.simpleMessage( "Bitte rufe \"web.ente.io\" auf, um dein Abo zu verwalten"), "waitingForVerification": MessageLookupByLibrary.simpleMessage("Warte auf Bestätigung..."), "waitingForWifi": MessageLookupByLibrary.simpleMessage("Warte auf WLAN..."), + "warning": MessageLookupByLibrary.simpleMessage("Warnung"), "weAreOpenSource": MessageLookupByLibrary.simpleMessage( "Unser Quellcode ist offen einsehbar!"), "weDontSupportEditingPhotosAndAlbumsThatYouDont": @@ -1916,9 +1983,11 @@ class MessageLookup extends MessageLookupByLibrary { "welcomeBack": MessageLookupByLibrary.simpleMessage("Willkommen zurück!"), "whatsNew": MessageLookupByLibrary.simpleMessage("Neue Funktionen"), + "whyAddTrustContact": MessageLookupByLibrary.simpleMessage( + "Ein vertrauenswürdiger Kontakt kann helfen, deine Daten wiederherzustellen."), "yearShort": MessageLookupByLibrary.simpleMessage("Jahr"), "yearly": MessageLookupByLibrary.simpleMessage("Jährlich"), - "yearsAgo": m80, + "yearsAgo": m87, "yes": MessageLookupByLibrary.simpleMessage("Ja"), "yesCancel": MessageLookupByLibrary.simpleMessage("Ja, kündigen"), "yesConvertToViewer": MessageLookupByLibrary.simpleMessage( @@ -1950,7 +2019,7 @@ class MessageLookup extends MessageLookupByLibrary { "Du kannst nicht mit dir selbst teilen"), "youDontHaveAnyArchivedItems": MessageLookupByLibrary.simpleMessage( "Du hast keine archivierten Elemente."), - "youHaveSuccessfullyFreedUp": m81, + "youHaveSuccessfullyFreedUp": m88, "yourAccountHasBeenDeleted": MessageLookupByLibrary.simpleMessage( "Dein Benutzerkonto wurde gelöscht"), "yourMap": MessageLookupByLibrary.simpleMessage("Deine Karte"), diff --git a/mobile/lib/generated/intl/messages_en.dart b/mobile/lib/generated/intl/messages_en.dart index 60afccfc479..9b90d88619a 100644 --- a/mobile/lib/generated/intl/messages_en.dart +++ b/mobile/lib/generated/intl/messages_en.dart @@ -59,208 +59,208 @@ class MessageLookup extends MessageLookupByLibrary { static String m18(albumName) => "Collaborative link created for ${albumName}"; - static String m82(count) => + static String m19(count) => "${Intl.plural(count, zero: 'Added 0 collaborator', one: 'Added 1 collaborator', other: 'Added ${count} collaborators')}"; - static String m83(email, numOfDays) => + static String m20(email, numOfDays) => "You are about to add ${email} as a trusted contact. They will be able to recover your account if you are absent for ${numOfDays} days."; - static String m19(familyAdminEmail) => + static String m21(familyAdminEmail) => "Please contact ${familyAdminEmail} to manage your subscription"; - static String m20(provider) => + static String m22(provider) => "Please contact us at support@ente.io to manage your ${provider} subscription."; - static String m21(endpoint) => "Connected to ${endpoint}"; + static String m23(endpoint) => "Connected to ${endpoint}"; - static String m22(count) => + static String m24(count) => "${Intl.plural(count, one: 'Delete ${count} item', other: 'Delete ${count} items')}"; - static String m23(currentlyDeleting, totalCount) => + static String m25(currentlyDeleting, totalCount) => "Deleting ${currentlyDeleting} / ${totalCount}"; - static String m24(albumName) => + static String m26(albumName) => "This will remove the public link for accessing \"${albumName}\"."; - static String m25(supportEmail) => + static String m27(supportEmail) => "Please drop an email to ${supportEmail} from your registered email address"; - static String m26(count, storageSaved) => + static String m28(count, storageSaved) => "You have cleaned up ${Intl.plural(count, one: '${count} duplicate file', other: '${count} duplicate files')}, saving (${storageSaved}!)"; - static String m27(count, formattedSize) => + static String m29(count, formattedSize) => "${count} files, ${formattedSize} each"; - static String m28(newEmail) => "Email changed to ${newEmail}"; + static String m30(newEmail) => "Email changed to ${newEmail}"; - static String m29(email) => + static String m31(email) => "${email} does not have an Ente account.\n\nSend them an invite to share photos."; - static String m30(text) => "Extra photos found for ${text}"; + static String m32(text) => "Extra photos found for ${text}"; - static String m31(count, formattedNumber) => + static String m33(count, formattedNumber) => "${Intl.plural(count, one: '1 file', other: '${formattedNumber} files')} on this device have been backed up safely"; - static String m32(count, formattedNumber) => + static String m34(count, formattedNumber) => "${Intl.plural(count, one: '1 file', other: '${formattedNumber} files')} in this album has been backed up safely"; - static String m33(storageAmountInGB) => + static String m35(storageAmountInGB) => "${storageAmountInGB} GB each time someone signs up for a paid plan and applies your code"; - static String m34(endDate) => "Free trial valid till ${endDate}"; + static String m36(endDate) => "Free trial valid till ${endDate}"; - static String m35(count) => + static String m37(count) => "You can still access ${Intl.plural(count, one: 'it', other: 'them')} on Ente as long as you have an active subscription"; - static String m36(sizeInMBorGB) => "Free up ${sizeInMBorGB}"; + static String m38(sizeInMBorGB) => "Free up ${sizeInMBorGB}"; - static String m37(count, formattedSize) => + static String m39(count, formattedSize) => "${Intl.plural(count, one: 'It can be deleted from the device to free up ${formattedSize}', other: 'They can be deleted from the device to free up ${formattedSize}')}"; - static String m38(currentlyProcessing, totalCount) => + static String m40(currentlyProcessing, totalCount) => "Processing ${currentlyProcessing} / ${totalCount}"; - static String m39(count) => + static String m41(count) => "${Intl.plural(count, one: '${count} item', other: '${count} items')}"; - static String m84(email) => + static String m42(email) => "${email} has invited you to be a trusted contact"; - static String m40(expiryTime) => "Link will expire on ${expiryTime}"; + static String m43(expiryTime) => "Link will expire on ${expiryTime}"; static String m3(count, formattedCount) => "${Intl.plural(count, zero: 'no memories', one: '${formattedCount} memory', other: '${formattedCount} memories')}"; - static String m41(count) => + static String m44(count) => "${Intl.plural(count, one: 'Move item', other: 'Move items')}"; - static String m42(albumName) => "Moved successfully to ${albumName}"; + static String m45(albumName) => "Moved successfully to ${albumName}"; - static String m43(personName) => "No suggestions for ${personName}"; + static String m46(personName) => "No suggestions for ${personName}"; - static String m44(name) => "Not ${name}?"; + static String m47(name) => "Not ${name}?"; - static String m45(familyAdminEmail) => + static String m48(familyAdminEmail) => "Please contact ${familyAdminEmail} to change your code."; static String m0(passwordStrengthValue) => "Password strength: ${passwordStrengthValue}"; - static String m46(providerName) => + static String m49(providerName) => "Please talk to ${providerName} support if you were charged"; - static String m47(count) => + static String m50(count) => "${Intl.plural(count, zero: '0 photo', one: '1 photo', other: '${count} photos')}"; - static String m48(endDate) => + static String m51(endDate) => "Free trial valid till ${endDate}.\nYou can choose a paid plan afterwards."; - static String m49(toEmail) => "Please email us at ${toEmail}"; + static String m52(toEmail) => "Please email us at ${toEmail}"; - static String m50(toEmail) => "Please send the logs to \n${toEmail}"; + static String m53(toEmail) => "Please send the logs to \n${toEmail}"; - static String m51(folderName) => "Processing ${folderName}..."; + static String m54(folderName) => "Processing ${folderName}..."; - static String m52(storeName) => "Rate us on ${storeName}"; + static String m55(storeName) => "Rate us on ${storeName}"; - static String m85(days, email) => + static String m56(days, email) => "You can access the account after ${days} days. A notification will be sent to ${email}."; - static String m86(email) => + static String m57(email) => "You can now recover ${email}\'s account by setting a new password."; - static String m87(email) => "${email} is trying to recover your account."; + static String m58(email) => "${email} is trying to recover your account."; - static String m53(storageInGB) => + static String m59(storageInGB) => "3. Both of you get ${storageInGB} GB* free"; - static String m54(userEmail) => + static String m60(userEmail) => "${userEmail} will be removed from this shared album\n\nAny photos added by them will also be removed from the album"; - static String m55(endDate) => "Subscription renews on ${endDate}"; + static String m61(endDate) => "Subscription renews on ${endDate}"; - static String m56(count) => + static String m62(count) => "${Intl.plural(count, one: '${count} result found', other: '${count} results found')}"; - static String m57(snapshotLenght, searchLenght) => + static String m63(snapshotLenght, searchLenght) => "Sections length mismatch: ${snapshotLenght} != ${searchLenght}"; static String m4(count) => "${count} selected"; - static String m58(count, yourCount) => + static String m64(count, yourCount) => "${count} selected (${yourCount} yours)"; - static String m59(verificationID) => + static String m65(verificationID) => "Here\'s my verification ID: ${verificationID} for ente.io."; static String m5(verificationID) => "Hey, can you confirm that this is your ente.io verification ID: ${verificationID}"; - static String m60(referralCode, referralStorageInGB) => + static String m66(referralCode, referralStorageInGB) => "Ente referral code: ${referralCode} \n\nApply it in Settings → General → Referrals to get ${referralStorageInGB} GB free after you signup for a paid plan\n\nhttps://ente.io"; - static String m61(numberOfPeople) => + static String m67(numberOfPeople) => "${Intl.plural(numberOfPeople, zero: 'Share with specific people', one: 'Shared with 1 person', other: 'Shared with ${numberOfPeople} people')}"; - static String m62(emailIDs) => "Shared with ${emailIDs}"; + static String m68(emailIDs) => "Shared with ${emailIDs}"; - static String m63(fileType) => + static String m69(fileType) => "This ${fileType} will be deleted from your device."; - static String m64(fileType) => + static String m70(fileType) => "This ${fileType} is in both Ente and your device."; - static String m65(fileType) => "This ${fileType} will be deleted from Ente."; + static String m71(fileType) => "This ${fileType} will be deleted from Ente."; static String m1(storageAmountInGB) => "${storageAmountInGB} GB"; - static String m66( + static String m72( usedAmount, usedStorageUnit, totalAmount, totalStorageUnit) => "${usedAmount} ${usedStorageUnit} of ${totalAmount} ${totalStorageUnit} used"; - static String m67(id) => + static String m73(id) => "Your ${id} is already linked to another Ente account.\nIf you would like to use your ${id} with this account, please contact our support\'\'"; - static String m68(endDate) => + static String m74(endDate) => "Your subscription will be cancelled on ${endDate}"; - static String m69(completed, total) => + static String m75(completed, total) => "${completed}/${total} memories preserved"; - static String m70(ignoreReason) => + static String m76(ignoreReason) => "Tap to upload, upload is currently ignored due to ${ignoreReason}"; - static String m71(storageAmountInGB) => + static String m77(storageAmountInGB) => "They also get ${storageAmountInGB} GB"; - static String m72(email) => "This is ${email}\'s Verification ID"; + static String m78(email) => "This is ${email}\'s Verification ID"; - static String m73(count) => + static String m79(count) => "${Intl.plural(count, zero: 'Soon', one: '1 day', other: '${count} days')}"; - static String m88(email) => + static String m80(email) => "You have been invited to be a legacy contact by ${email}."; - static String m74(galleryType) => + static String m81(galleryType) => "Type of gallery ${galleryType} is not supported for rename"; - static String m75(ignoreReason) => "Upload is ignored due to ${ignoreReason}"; + static String m82(ignoreReason) => "Upload is ignored due to ${ignoreReason}"; - static String m76(count) => "Preserving ${count} memories..."; + static String m83(count) => "Preserving ${count} memories..."; - static String m77(endDate) => "Valid till ${endDate}"; + static String m84(endDate) => "Valid till ${endDate}"; - static String m78(email) => "Verify ${email}"; + static String m85(email) => "Verify ${email}"; - static String m79(count) => + static String m86(count) => "${Intl.plural(count, zero: 'Added 0 viewer', one: 'Added 1 viewer', other: 'Added ${count} viewers')}"; static String m2(email) => "We have sent a mail to ${email}"; - static String m80(count) => + static String m87(count) => "${Intl.plural(count, one: '${count} year ago', other: '${count} years ago')}"; - static String m81(storageSaved) => + static String m88(storageSaved) => "You have successfully freed up ${storageSaved}!"; final messages = _notInlinedMessages(_notInlinedMessages); @@ -566,7 +566,7 @@ class MessageLookup extends MessageLookupByLibrary { "collaboratorsCanAddPhotosAndVideosToTheSharedAlbum": MessageLookupByLibrary.simpleMessage( "Collaborators can add photos and videos to the shared album."), - "collaboratorsSuccessfullyAdded": m82, + "collaboratorsSuccessfullyAdded": m19, "collageLayout": MessageLookupByLibrary.simpleMessage("Layout"), "collageSaved": MessageLookupByLibrary.simpleMessage("Collage saved to gallery"), @@ -583,7 +583,7 @@ class MessageLookup extends MessageLookupByLibrary { "Are you sure you want to disable two-factor authentication?"), "confirmAccountDeletion": MessageLookupByLibrary.simpleMessage("Confirm Account Deletion"), - "confirmAddingTrustedContact": m83, + "confirmAddingTrustedContact": m20, "confirmDeletePrompt": MessageLookupByLibrary.simpleMessage( "Yes, I want to permanently delete this account and its data across all apps."), "confirmPassword": @@ -596,10 +596,10 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Confirm your recovery key"), "connectToDevice": MessageLookupByLibrary.simpleMessage("Connect to device"), - "contactFamilyAdmin": m19, + "contactFamilyAdmin": m21, "contactSupport": MessageLookupByLibrary.simpleMessage("Contact support"), - "contactToManageSubscription": m20, + "contactToManageSubscription": m22, "contacts": MessageLookupByLibrary.simpleMessage("Contacts"), "contents": MessageLookupByLibrary.simpleMessage("Contents"), "continueLabel": MessageLookupByLibrary.simpleMessage("Continue"), @@ -645,7 +645,7 @@ class MessageLookup extends MessageLookupByLibrary { "currentlyRunning": MessageLookupByLibrary.simpleMessage("currently running"), "custom": MessageLookupByLibrary.simpleMessage("Custom"), - "customEndpoint": m21, + "customEndpoint": m23, "darkTheme": MessageLookupByLibrary.simpleMessage("Dark"), "dayToday": MessageLookupByLibrary.simpleMessage("Today"), "dayYesterday": MessageLookupByLibrary.simpleMessage("Yesterday"), @@ -682,11 +682,11 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Delete from device"), "deleteFromEnte": MessageLookupByLibrary.simpleMessage("Delete from Ente"), - "deleteItemCount": m22, + "deleteItemCount": m24, "deleteLocation": MessageLookupByLibrary.simpleMessage("Delete location"), "deletePhotos": MessageLookupByLibrary.simpleMessage("Delete photos"), - "deleteProgress": m23, + "deleteProgress": m25, "deleteReason1": MessageLookupByLibrary.simpleMessage( "It’s missing a key feature that I need"), "deleteReason2": MessageLookupByLibrary.simpleMessage( @@ -725,7 +725,7 @@ class MessageLookup extends MessageLookupByLibrary { "Viewers can still take screenshots or save a copy of your photos using external tools"), "disableDownloadWarningTitle": MessageLookupByLibrary.simpleMessage("Please note"), - "disableLinkMessage": m24, + "disableLinkMessage": m26, "disableTwofactor": MessageLookupByLibrary.simpleMessage("Disable two-factor"), "disablingTwofactorAuthentication": @@ -766,9 +766,9 @@ class MessageLookup extends MessageLookupByLibrary { "downloadFailed": MessageLookupByLibrary.simpleMessage("Download failed"), "downloading": MessageLookupByLibrary.simpleMessage("Downloading..."), - "dropSupportEmail": m25, - "duplicateFileCountWithStorageSaved": m26, - "duplicateItemsGroup": m27, + "dropSupportEmail": m27, + "duplicateFileCountWithStorageSaved": m28, + "duplicateItemsGroup": m29, "edit": MessageLookupByLibrary.simpleMessage("Edit"), "editLocation": MessageLookupByLibrary.simpleMessage("Edit location"), "editLocationTagTitle": @@ -780,8 +780,8 @@ class MessageLookup extends MessageLookupByLibrary { "Edits to location will only be seen within Ente"), "eligible": MessageLookupByLibrary.simpleMessage("eligible"), "email": MessageLookupByLibrary.simpleMessage("Email"), - "emailChangedTo": m28, - "emailNoEnteAccount": m29, + "emailChangedTo": m30, + "emailNoEnteAccount": m31, "emailVerificationToggle": MessageLookupByLibrary.simpleMessage("Email verification"), "emailYourLogs": @@ -860,7 +860,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Export your data"), "extraPhotosFound": MessageLookupByLibrary.simpleMessage("Extra photos found"), - "extraPhotosFoundFor": m30, + "extraPhotosFoundFor": m32, "faceNotClusteredYet": MessageLookupByLibrary.simpleMessage( "Face not clustered yet, please come back later"), "faceRecognition": @@ -909,8 +909,8 @@ class MessageLookup extends MessageLookupByLibrary { "fileTypes": MessageLookupByLibrary.simpleMessage("File types"), "fileTypesAndNames": MessageLookupByLibrary.simpleMessage("File types and names"), - "filesBackedUpFromDevice": m31, - "filesBackedUpInAlbum": m32, + "filesBackedUpFromDevice": m33, + "filesBackedUpInAlbum": m34, "filesDeleted": MessageLookupByLibrary.simpleMessage("Files deleted"), "filesSavedToGallery": MessageLookupByLibrary.simpleMessage("Files saved to gallery"), @@ -926,25 +926,25 @@ class MessageLookup extends MessageLookupByLibrary { "foundFaces": MessageLookupByLibrary.simpleMessage("Found faces"), "freeStorageClaimed": MessageLookupByLibrary.simpleMessage("Free storage claimed"), - "freeStorageOnReferralSuccess": m33, + "freeStorageOnReferralSuccess": m35, "freeStorageUsable": MessageLookupByLibrary.simpleMessage("Free storage usable"), "freeTrial": MessageLookupByLibrary.simpleMessage("Free trial"), - "freeTrialValidTill": m34, - "freeUpAccessPostDelete": m35, - "freeUpAmount": m36, + "freeTrialValidTill": m36, + "freeUpAccessPostDelete": m37, + "freeUpAmount": m38, "freeUpDeviceSpace": MessageLookupByLibrary.simpleMessage("Free up device space"), "freeUpDeviceSpaceDesc": MessageLookupByLibrary.simpleMessage( "Save space on your device by clearing files that have been already backed up."), "freeUpSpace": MessageLookupByLibrary.simpleMessage("Free up space"), - "freeUpSpaceSaving": m37, + "freeUpSpaceSaving": m39, "galleryMemoryLimitInfo": MessageLookupByLibrary.simpleMessage( "Up to 1000 memories shown in gallery"), "general": MessageLookupByLibrary.simpleMessage("General"), "generatingEncryptionKeys": MessageLookupByLibrary.simpleMessage( "Generating encryption keys..."), - "genericProgress": m38, + "genericProgress": m40, "goToSettings": MessageLookupByLibrary.simpleMessage("Go to settings"), "googlePlayId": MessageLookupByLibrary.simpleMessage("Google Play ID"), "grantFullAccessPrompt": MessageLookupByLibrary.simpleMessage( @@ -1022,7 +1022,7 @@ class MessageLookup extends MessageLookupByLibrary { "itLooksLikeSomethingWentWrongPleaseRetryAfterSome": MessageLookupByLibrary.simpleMessage( "It looks like something went wrong. Please retry after some time. If the error persists, please contact our support team."), - "itemCount": m39, + "itemCount": m41, "itemsShowTheNumberOfDaysRemainingBeforePermanentDeletion": MessageLookupByLibrary.simpleMessage( "Items show the number of days remaining before permanent deletion"), @@ -1044,7 +1044,7 @@ class MessageLookup extends MessageLookupByLibrary { "legacy": MessageLookupByLibrary.simpleMessage("Legacy"), "legacyAccounts": MessageLookupByLibrary.simpleMessage("Legacy accounts"), - "legacyInvite": m84, + "legacyInvite": m42, "legacyPageDesc": MessageLookupByLibrary.simpleMessage( "Legacy allows trusted contacts to access your account in your absence."), "legacyPageDesc2": MessageLookupByLibrary.simpleMessage( @@ -1056,7 +1056,7 @@ class MessageLookup extends MessageLookupByLibrary { "linkDeviceLimit": MessageLookupByLibrary.simpleMessage("Device limit"), "linkEnabled": MessageLookupByLibrary.simpleMessage("Enabled"), "linkExpired": MessageLookupByLibrary.simpleMessage("Expired"), - "linkExpiresOn": m40, + "linkExpiresOn": m43, "linkExpiry": MessageLookupByLibrary.simpleMessage("Link expiry"), "linkHasExpired": MessageLookupByLibrary.simpleMessage("Link has expired"), @@ -1173,11 +1173,11 @@ class MessageLookup extends MessageLookupByLibrary { "moreDetails": MessageLookupByLibrary.simpleMessage("More details"), "mostRecent": MessageLookupByLibrary.simpleMessage("Most recent"), "mostRelevant": MessageLookupByLibrary.simpleMessage("Most relevant"), - "moveItem": m41, + "moveItem": m44, "moveToAlbum": MessageLookupByLibrary.simpleMessage("Move to album"), "moveToHiddenAlbum": MessageLookupByLibrary.simpleMessage("Move to hidden album"), - "movedSuccessfullyTo": m42, + "movedSuccessfullyTo": m45, "movedToTrash": MessageLookupByLibrary.simpleMessage("Moved to trash"), "movingFilesToAlbum": MessageLookupByLibrary.simpleMessage("Moving files to album..."), @@ -1225,10 +1225,10 @@ class MessageLookup extends MessageLookupByLibrary { "noResults": MessageLookupByLibrary.simpleMessage("No results"), "noResultsFound": MessageLookupByLibrary.simpleMessage("No results found"), - "noSuggestionsForPerson": m43, + "noSuggestionsForPerson": m46, "noSystemLockFound": MessageLookupByLibrary.simpleMessage("No system lock found"), - "notPersonLabel": m44, + "notPersonLabel": m47, "nothingSharedWithYouYet": MessageLookupByLibrary.simpleMessage("Nothing shared with you yet"), "nothingToSeeHere": @@ -1238,7 +1238,7 @@ class MessageLookup extends MessageLookupByLibrary { "onDevice": MessageLookupByLibrary.simpleMessage("On device"), "onEnte": MessageLookupByLibrary.simpleMessage( "On ente"), - "onlyFamilyAdminCanChangeCode": m45, + "onlyFamilyAdminCanChangeCode": m48, "onlyThem": MessageLookupByLibrary.simpleMessage("Only them"), "oops": MessageLookupByLibrary.simpleMessage("Oops"), "oopsCouldNotSaveEdits": @@ -1284,7 +1284,7 @@ class MessageLookup extends MessageLookupByLibrary { "paymentFailed": MessageLookupByLibrary.simpleMessage("Payment failed"), "paymentFailedMessage": MessageLookupByLibrary.simpleMessage( "Unfortunately your payment failed. Please contact support and we\'ll help you out!"), - "paymentFailedTalkToProvider": m46, + "paymentFailedTalkToProvider": m49, "pendingItems": MessageLookupByLibrary.simpleMessage("Pending items"), "pendingSync": MessageLookupByLibrary.simpleMessage("Pending sync"), "people": MessageLookupByLibrary.simpleMessage("People"), @@ -1306,13 +1306,13 @@ class MessageLookup extends MessageLookupByLibrary { "photosAddedByYouWillBeRemovedFromTheAlbum": MessageLookupByLibrary.simpleMessage( "Photos added by you will be removed from the album"), - "photosCount": m47, + "photosCount": m50, "pickCenterPoint": MessageLookupByLibrary.simpleMessage("Pick center point"), "pinAlbum": MessageLookupByLibrary.simpleMessage("Pin album"), "pinLock": MessageLookupByLibrary.simpleMessage("PIN lock"), "playOnTv": MessageLookupByLibrary.simpleMessage("Play album on TV"), - "playStoreFreeTrialValidTill": m48, + "playStoreFreeTrialValidTill": m51, "playstoreSubscription": MessageLookupByLibrary.simpleMessage("PlayStore subscription"), "pleaseCheckYourInternetConnectionAndTryAgain": @@ -1324,14 +1324,14 @@ class MessageLookup extends MessageLookupByLibrary { "pleaseContactSupportIfTheProblemPersists": MessageLookupByLibrary.simpleMessage( "Please contact support if the problem persists"), - "pleaseEmailUsAt": m49, + "pleaseEmailUsAt": m52, "pleaseGrantPermissions": MessageLookupByLibrary.simpleMessage("Please grant permissions"), "pleaseLoginAgain": MessageLookupByLibrary.simpleMessage("Please login again"), "pleaseSelectQuickLinksToRemove": MessageLookupByLibrary.simpleMessage( "Please select quick links to remove"), - "pleaseSendTheLogsTo": m50, + "pleaseSendTheLogsTo": m53, "pleaseTryAgain": MessageLookupByLibrary.simpleMessage("Please try again"), "pleaseVerifyTheCodeYouHaveEntered": @@ -1358,7 +1358,7 @@ class MessageLookup extends MessageLookupByLibrary { "privateSharing": MessageLookupByLibrary.simpleMessage("Private sharing"), "proceed": MessageLookupByLibrary.simpleMessage("Proceed"), - "processingImport": m51, + "processingImport": m54, "publicLinkCreated": MessageLookupByLibrary.simpleMessage("Public link created"), "publicLinkEnabled": @@ -1368,7 +1368,7 @@ class MessageLookup extends MessageLookupByLibrary { "raiseTicket": MessageLookupByLibrary.simpleMessage("Raise ticket"), "rateTheApp": MessageLookupByLibrary.simpleMessage("Rate the app"), "rateUs": MessageLookupByLibrary.simpleMessage("Rate us"), - "rateUsOnStore": m52, + "rateUsOnStore": m55, "recover": MessageLookupByLibrary.simpleMessage("Recover"), "recoverAccount": MessageLookupByLibrary.simpleMessage("Recover account"), @@ -1377,7 +1377,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Recover account"), "recoveryInitiated": MessageLookupByLibrary.simpleMessage("Recovery initiated"), - "recoveryInitiatedDesc": m85, + "recoveryInitiatedDesc": m56, "recoveryKey": MessageLookupByLibrary.simpleMessage("Recovery key"), "recoveryKeyCopiedToClipboard": MessageLookupByLibrary.simpleMessage( "Recovery key copied to clipboard"), @@ -1391,12 +1391,12 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Recovery key verified"), "recoveryKeyVerifyReason": MessageLookupByLibrary.simpleMessage( "Your recovery key is the only way to recover your photos if you forget your password. You can find your recovery key in Settings > Account.\n\nPlease enter your recovery key here to verify that you have saved it correctly."), - "recoveryReady": m86, + "recoveryReady": m57, "recoverySuccessful": MessageLookupByLibrary.simpleMessage("Recovery successful!"), "recoveryWarning": MessageLookupByLibrary.simpleMessage( "A trusted contact is trying to access your account"), - "recoveryWarningBody": m87, + "recoveryWarningBody": m58, "recreatePasswordBody": MessageLookupByLibrary.simpleMessage( "The current device is not powerful enough to verify your password, but we can regenerate in a way that works with all devices.\n\nPlease login using your recovery key and regenerate your password (you can use the same one again if you wish)."), "recreatePasswordTitle": @@ -1411,7 +1411,7 @@ class MessageLookup extends MessageLookupByLibrary { "1. Give this code to your friends"), "referralStep2": MessageLookupByLibrary.simpleMessage( "2. They sign up for a paid plan"), - "referralStep3": m53, + "referralStep3": m59, "referrals": MessageLookupByLibrary.simpleMessage("Referrals"), "referralsAreCurrentlyPaused": MessageLookupByLibrary.simpleMessage( "Referrals are currently paused"), @@ -1440,7 +1440,7 @@ class MessageLookup extends MessageLookupByLibrary { "removeLink": MessageLookupByLibrary.simpleMessage("Remove link"), "removeParticipant": MessageLookupByLibrary.simpleMessage("Remove participant"), - "removeParticipantBody": m54, + "removeParticipantBody": m60, "removePersonLabel": MessageLookupByLibrary.simpleMessage("Remove person label"), "removePublicLink": @@ -1460,7 +1460,7 @@ class MessageLookup extends MessageLookupByLibrary { "renameFile": MessageLookupByLibrary.simpleMessage("Rename file"), "renewSubscription": MessageLookupByLibrary.simpleMessage("Renew subscription"), - "renewsOn": m55, + "renewsOn": m61, "reportABug": MessageLookupByLibrary.simpleMessage("Report a bug"), "reportBug": MessageLookupByLibrary.simpleMessage("Report bug"), "resendEmail": MessageLookupByLibrary.simpleMessage("Resend email"), @@ -1535,8 +1535,8 @@ class MessageLookup extends MessageLookupByLibrary { "Invite people, and you\'ll see all photos shared by them here"), "searchPersonsEmptySection": MessageLookupByLibrary.simpleMessage( "People will be shown here once processing is complete"), - "searchResultCount": m56, - "searchSectionsLengthMismatch": m57, + "searchResultCount": m62, + "searchSectionsLengthMismatch": m63, "security": MessageLookupByLibrary.simpleMessage("Security"), "seePublicAlbumLinksInApp": MessageLookupByLibrary.simpleMessage( "See public album links in app"), @@ -1571,7 +1571,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage( "Selected items will be deleted from all albums and moved to trash."), "selectedPhotos": m4, - "selectedPhotosWithYours": m58, + "selectedPhotosWithYours": m64, "send": MessageLookupByLibrary.simpleMessage("Send"), "sendEmail": MessageLookupByLibrary.simpleMessage("Send email"), "sendInvite": MessageLookupByLibrary.simpleMessage("Send invite"), @@ -1600,16 +1600,16 @@ class MessageLookup extends MessageLookupByLibrary { "shareAnAlbumNow": MessageLookupByLibrary.simpleMessage("Share an album now"), "shareLink": MessageLookupByLibrary.simpleMessage("Share link"), - "shareMyVerificationID": m59, + "shareMyVerificationID": m65, "shareOnlyWithThePeopleYouWant": MessageLookupByLibrary.simpleMessage( "Share only with the people you want"), "shareTextConfirmOthersVerificationID": m5, "shareTextRecommendUsingEnte": MessageLookupByLibrary.simpleMessage( "Download Ente so we can easily share original quality photos and videos\n\nhttps://ente.io"), - "shareTextReferralCode": m60, + "shareTextReferralCode": m66, "shareWithNonenteUsers": MessageLookupByLibrary.simpleMessage("Share with non-Ente users"), - "shareWithPeopleSectionTitle": m61, + "shareWithPeopleSectionTitle": m67, "shareYourFirstAlbum": MessageLookupByLibrary.simpleMessage("Share your first album"), "sharedAlbumSectionDescription": MessageLookupByLibrary.simpleMessage( @@ -1620,7 +1620,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("New shared photos"), "sharedPhotoNotificationsExplanation": MessageLookupByLibrary.simpleMessage( "Receive notifications when someone adds a photo to a shared album that you\'re a part of"), - "sharedWith": m62, + "sharedWith": m68, "sharedWithMe": MessageLookupByLibrary.simpleMessage("Shared with me"), "sharedWithYou": MessageLookupByLibrary.simpleMessage("Shared with you"), @@ -1635,11 +1635,11 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Sign out other devices"), "signUpTerms": MessageLookupByLibrary.simpleMessage( "I agree to the terms of service and privacy policy"), - "singleFileDeleteFromDevice": m63, + "singleFileDeleteFromDevice": m69, "singleFileDeleteHighlight": MessageLookupByLibrary.simpleMessage( "It will be deleted from all albums."), - "singleFileInBothLocalAndRemote": m64, - "singleFileInRemoteOnly": m65, + "singleFileInBothLocalAndRemote": m70, + "singleFileInRemoteOnly": m71, "skip": MessageLookupByLibrary.simpleMessage("Skip"), "social": MessageLookupByLibrary.simpleMessage("Social"), "someItemsAreInBothEnteAndYourDevice": @@ -1687,10 +1687,10 @@ class MessageLookup extends MessageLookupByLibrary { "storageInGB": m1, "storageLimitExceeded": MessageLookupByLibrary.simpleMessage("Storage limit exceeded"), - "storageUsageInfo": m66, + "storageUsageInfo": m72, "strongStrength": MessageLookupByLibrary.simpleMessage("Strong"), - "subAlreadyLinkedErrMessage": m67, - "subWillBeCancelledOn": m68, + "subAlreadyLinkedErrMessage": m73, + "subWillBeCancelledOn": m74, "subscribe": MessageLookupByLibrary.simpleMessage("Subscribe"), "subscribeToEnableSharing": MessageLookupByLibrary.simpleMessage( "You need an active paid subscription to enable sharing."), @@ -1707,7 +1707,7 @@ class MessageLookup extends MessageLookupByLibrary { "suggestFeatures": MessageLookupByLibrary.simpleMessage("Suggest features"), "support": MessageLookupByLibrary.simpleMessage("Support"), - "syncProgress": m69, + "syncProgress": m75, "syncStopped": MessageLookupByLibrary.simpleMessage("Sync stopped"), "syncing": MessageLookupByLibrary.simpleMessage("Syncing..."), "systemTheme": MessageLookupByLibrary.simpleMessage("System"), @@ -1716,7 +1716,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Tap to enter code"), "tapToUnlock": MessageLookupByLibrary.simpleMessage("Tap to unlock"), "tapToUpload": MessageLookupByLibrary.simpleMessage("Tap to upload"), - "tapToUploadIsIgnoredDue": m70, + "tapToUploadIsIgnoredDue": m76, "tempErrorContactSupportIfPersists": MessageLookupByLibrary.simpleMessage( "It looks like something went wrong. Please retry after some time. If the error persists, please contact our support team."), "terminate": MessageLookupByLibrary.simpleMessage("Terminate"), @@ -1739,7 +1739,7 @@ class MessageLookup extends MessageLookupByLibrary { "theseItemsWillBeDeletedFromYourDevice": MessageLookupByLibrary.simpleMessage( "These items will be deleted from your device."), - "theyAlsoGetXGb": m71, + "theyAlsoGetXGb": m77, "theyWillBeDeletedFromAllAlbums": MessageLookupByLibrary.simpleMessage( "They will be deleted from all albums."), "thisActionCannotBeUndone": MessageLookupByLibrary.simpleMessage( @@ -1755,7 +1755,7 @@ class MessageLookup extends MessageLookupByLibrary { "This email is already in use"), "thisImageHasNoExifData": MessageLookupByLibrary.simpleMessage("This image has no exif data"), - "thisIsPersonVerificationId": m72, + "thisIsPersonVerificationId": m78, "thisIsYourVerificationId": MessageLookupByLibrary.simpleMessage( "This is your Verification ID"), "thisWillLogYouOutOfTheFollowingDevice": @@ -1779,11 +1779,11 @@ class MessageLookup extends MessageLookupByLibrary { "total": MessageLookupByLibrary.simpleMessage("total"), "totalSize": MessageLookupByLibrary.simpleMessage("Total size"), "trash": MessageLookupByLibrary.simpleMessage("Trash"), - "trashDaysLeft": m73, + "trashDaysLeft": m79, "trim": MessageLookupByLibrary.simpleMessage("Trim"), "trustedContacts": MessageLookupByLibrary.simpleMessage("Trusted contacts"), - "trustedInviteBody": m88, + "trustedInviteBody": m80, "tryAgain": MessageLookupByLibrary.simpleMessage("Try again"), "turnOnBackupForAutoUpload": MessageLookupByLibrary.simpleMessage( "Turn on backup to automatically upload files added to this device folder to Ente."), @@ -1801,7 +1801,7 @@ class MessageLookup extends MessageLookupByLibrary { "Two-factor authentication successfully reset"), "twofactorSetup": MessageLookupByLibrary.simpleMessage("Two-factor setup"), - "typeOfGallerGallerytypeIsNotSupportedForRename": m74, + "typeOfGallerGallerytypeIsNotSupportedForRename": m81, "unarchive": MessageLookupByLibrary.simpleMessage("Unarchive"), "unarchiveAlbum": MessageLookupByLibrary.simpleMessage("Unarchive album"), @@ -1824,10 +1824,10 @@ class MessageLookup extends MessageLookupByLibrary { "updatingFolderSelection": MessageLookupByLibrary.simpleMessage( "Updating folder selection..."), "upgrade": MessageLookupByLibrary.simpleMessage("Upgrade"), - "uploadIsIgnoredDueToIgnorereason": m75, + "uploadIsIgnoredDueToIgnorereason": m82, "uploadingFilesToAlbum": MessageLookupByLibrary.simpleMessage("Uploading files to album..."), - "uploadingMultipleMemories": m76, + "uploadingMultipleMemories": m83, "uploadingSingleMemory": MessageLookupByLibrary.simpleMessage("Preserving 1 memory..."), "upto50OffUntil4thDec": MessageLookupByLibrary.simpleMessage( @@ -1843,7 +1843,7 @@ class MessageLookup extends MessageLookupByLibrary { "useSelectedPhoto": MessageLookupByLibrary.simpleMessage("Use selected photo"), "usedSpace": MessageLookupByLibrary.simpleMessage("Used space"), - "validTill": m77, + "validTill": m84, "verificationFailedPleaseTryAgain": MessageLookupByLibrary.simpleMessage( "Verification failed, please try again"), @@ -1851,7 +1851,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Verification ID"), "verify": MessageLookupByLibrary.simpleMessage("Verify"), "verifyEmail": MessageLookupByLibrary.simpleMessage("Verify email"), - "verifyEmailID": m78, + "verifyEmailID": m85, "verifyIDLabel": MessageLookupByLibrary.simpleMessage("Verify"), "verifyPasskey": MessageLookupByLibrary.simpleMessage("Verify passkey"), "verifyPassword": @@ -1875,7 +1875,7 @@ class MessageLookup extends MessageLookupByLibrary { "viewRecoveryKey": MessageLookupByLibrary.simpleMessage("View recovery key"), "viewer": MessageLookupByLibrary.simpleMessage("Viewer"), - "viewersSuccessfullyAdded": m79, + "viewersSuccessfullyAdded": m86, "visitWebToManage": MessageLookupByLibrary.simpleMessage( "Please visit web.ente.io to manage your subscription"), "waitingForVerification": @@ -1896,7 +1896,7 @@ class MessageLookup extends MessageLookupByLibrary { "Trusted contact can help in recovering your data."), "yearShort": MessageLookupByLibrary.simpleMessage("yr"), "yearly": MessageLookupByLibrary.simpleMessage("Yearly"), - "yearsAgo": m80, + "yearsAgo": m87, "yes": MessageLookupByLibrary.simpleMessage("Yes"), "yesCancel": MessageLookupByLibrary.simpleMessage("Yes, cancel"), "yesConvertToViewer": @@ -1928,7 +1928,7 @@ class MessageLookup extends MessageLookupByLibrary { "You cannot share with yourself"), "youDontHaveAnyArchivedItems": MessageLookupByLibrary.simpleMessage( "You don\'t have any archived items."), - "youHaveSuccessfullyFreedUp": m81, + "youHaveSuccessfullyFreedUp": m88, "yourAccountHasBeenDeleted": MessageLookupByLibrary.simpleMessage( "Your account has been deleted"), "yourMap": MessageLookupByLibrary.simpleMessage("Your map"), diff --git a/mobile/lib/generated/intl/messages_es.dart b/mobile/lib/generated/intl/messages_es.dart index 5ae5b6b16dc..91d01a67a7e 100644 --- a/mobile/lib/generated/intl/messages_es.dart +++ b/mobile/lib/generated/intl/messages_es.dart @@ -62,199 +62,218 @@ class MessageLookup extends MessageLookupByLibrary { static String m18(albumName) => "Enlace colaborativo creado para ${albumName}"; - static String m82(count) => + static String m19(count) => "${Intl.plural(count, zero: '0 colaboradores añadidos', one: '1 colaborador añadido', other: '${count} colaboradores añadidos')}"; - static String m19(familyAdminEmail) => + static String m20(email, numOfDays) => + "Estás a punto de añadir ${email} como un contacto de confianza. Esta persona podrá recuperar tu cuenta si no estás durante ${numOfDays} días."; + + static String m21(familyAdminEmail) => "Por favor contacta con ${familyAdminEmail} para administrar tu suscripción"; - static String m20(provider) => + static String m22(provider) => "Por favor, contáctanos en support@ente.io para gestionar tu suscripción a ${provider}."; - static String m21(endpoint) => "Conectado a ${endpoint}"; + static String m23(endpoint) => "Conectado a ${endpoint}"; - static String m22(count) => + static String m24(count) => "${Intl.plural(count, one: 'Elimina ${count} elemento', other: 'Elimina ${count} elementos')}"; - static String m23(currentlyDeleting, totalCount) => + static String m25(currentlyDeleting, totalCount) => "Borrando ${currentlyDeleting} / ${totalCount}"; - static String m24(albumName) => + static String m26(albumName) => "Esto eliminará el enlace público para acceder a \"${albumName}\"."; - static String m25(supportEmail) => + static String m27(supportEmail) => "Por favor, envía un correo electrónico a ${supportEmail} desde tu dirección de correo electrónico registrada"; - static String m26(count, storageSaved) => + static String m28(count, storageSaved) => "¡Has limpiado ${Intl.plural(count, one: '${count} archivo duplicado', other: '${count} archivos duplicados')}, ahorrando (${storageSaved}!)"; - static String m27(count, formattedSize) => + static String m29(count, formattedSize) => "${count} archivos, ${formattedSize} cada uno"; - static String m28(newEmail) => "Correo cambiado a ${newEmail}"; + static String m30(newEmail) => "Correo cambiado a ${newEmail}"; - static String m29(email) => + static String m31(email) => "${email} no tiene una cuente en Ente.\n\nEnvíale una invitación para compartir fotos."; - static String m30(text) => "Fotos adicionales encontradas para ${text}"; + static String m32(text) => "Fotos adicionales encontradas para ${text}"; - static String m31(count, formattedNumber) => + static String m33(count, formattedNumber) => "Se ha realizado la copia de seguridad de ${Intl.plural(count, one: '1 archivo', other: '${formattedNumber} archivos')} de este dispositivo de forma segura"; - static String m32(count, formattedNumber) => + static String m34(count, formattedNumber) => "Se ha realizado la copia de seguridad de ${Intl.plural(count, one: '1 archivo', other: '${formattedNumber} archivos')} de este álbum de forma segura"; - static String m33(storageAmountInGB) => + static String m35(storageAmountInGB) => "${storageAmountInGB} GB cada vez que alguien se registra en un plan de pago y aplica tu código"; - static String m34(endDate) => "Prueba gratuita válida hasta ${endDate}"; + static String m36(endDate) => "Prueba gratuita válida hasta ${endDate}"; - static String m35(count) => + static String m37(count) => "Aún puedes acceder ${Intl.plural(count, one: 'a él', other: 'a ellos')} en Ente mientras tengas una suscripción activa"; - static String m36(sizeInMBorGB) => "Liberar ${sizeInMBorGB}"; + static String m38(sizeInMBorGB) => "Liberar ${sizeInMBorGB}"; - static String m37(count, formattedSize) => + static String m39(count, formattedSize) => "${Intl.plural(count, one: 'Se puede eliminar del dispositivo para liberar ${formattedSize}', other: 'Se pueden eliminar del dispositivo para liberar ${formattedSize}')}"; - static String m38(currentlyProcessing, totalCount) => + static String m40(currentlyProcessing, totalCount) => "Procesando ${currentlyProcessing} / ${totalCount}"; - static String m39(count) => + static String m41(count) => "${Intl.plural(count, one: '${count} elemento', other: '${count} elementos')}"; - static String m40(expiryTime) => "El enlace caducará en ${expiryTime}"; + static String m42(email) => + "${email} te ha invitado a ser un contacto de confianza"; + + static String m43(expiryTime) => "El enlace caducará en ${expiryTime}"; static String m3(count, formattedCount) => "${Intl.plural(count, zero: 'sin recuerdos', one: '${formattedCount} recuerdo', other: '${formattedCount} recuerdos')}"; - static String m41(count) => + static String m44(count) => "${Intl.plural(count, one: 'Mover elemento', other: 'Mover elementos')}"; - static String m42(albumName) => "Movido exitosamente a ${albumName}"; + static String m45(albumName) => "Movido exitosamente a ${albumName}"; - static String m43(personName) => "No hay sugerencias para ${personName}"; + static String m46(personName) => "No hay sugerencias para ${personName}"; - static String m44(name) => "¿No es ${name}?"; + static String m47(name) => "¿No es ${name}?"; - static String m45(familyAdminEmail) => + static String m48(familyAdminEmail) => "Por favor, contacta a ${familyAdminEmail} para cambiar tu código."; static String m0(passwordStrengthValue) => "Seguridad de la contraseña: ${passwordStrengthValue}"; - static String m46(providerName) => + static String m49(providerName) => "Por favor, habla con el soporte de ${providerName} si se te cobró"; - static String m47(count) => + static String m50(count) => "${Intl.plural(count, zero: '0 fotos', one: '1 foto', other: '${count} fotos')}"; - static String m48(endDate) => + static String m51(endDate) => "Prueba gratuita válida hasta ${endDate}.\nPuedes elegir un plan de pago después."; - static String m49(toEmail) => + static String m52(toEmail) => "Por favor, envíanos un correo electrónico a ${toEmail}"; - static String m50(toEmail) => "Por favor, envía los registros a ${toEmail}"; + static String m53(toEmail) => "Por favor, envía los registros a ${toEmail}"; + + static String m54(folderName) => "Procesando ${folderName}..."; + + static String m55(storeName) => "Puntúanos en ${storeName}"; - static String m51(folderName) => "Procesando ${folderName}..."; + static String m56(days, email) => + "Puedes acceder a la cuenta después de ${days} días. Se enviará una notificación a ${email}."; - static String m52(storeName) => "Puntúanos en ${storeName}"; + static String m57(email) => + "Ahora puedes recuperar la cuenta de ${email} estableciendo una nueva contraseña."; - static String m53(storageInGB) => + static String m58(email) => "${email} está intentando recuperar tu cuenta."; + + static String m59(storageInGB) => "3. Ambos obtienen ${storageInGB} GB* gratis"; - static String m54(userEmail) => + static String m60(userEmail) => "${userEmail} será eliminado de este álbum compartido\n\nCualquier foto añadida por ellos también será eliminada del álbum"; - static String m55(endDate) => "La suscripción se renueva el ${endDate}"; + static String m61(endDate) => "La suscripción se renueva el ${endDate}"; - static String m56(count) => + static String m62(count) => "${Intl.plural(count, one: '${count} resultado encontrado', other: '${count} resultados encontrados')}"; - static String m57(snapshotLenght, searchLenght) => + static String m63(snapshotLenght, searchLenght) => "La longitud de las secciones no coincide: ${snapshotLenght} != ${searchLenght}"; static String m4(count) => "${count} seleccionados"; - static String m58(count, yourCount) => + static String m64(count, yourCount) => "${count} seleccionados (${yourCount} tuyos)"; - static String m59(verificationID) => + static String m65(verificationID) => "Aquí está mi ID de verificación: ${verificationID} para ente.io."; static String m5(verificationID) => "Hola, ¿puedes confirmar que esta es tu ID de verificación ente.io: ${verificationID}?"; - static String m60(referralCode, referralStorageInGB) => + static String m66(referralCode, referralStorageInGB) => "Código de referido de Ente: ${referralCode} \n\nAñádelo en Ajustes → General → Referidos para obtener ${referralStorageInGB} GB gratis tras comprar un plan de pago.\n\nhttps://ente.io"; - static String m61(numberOfPeople) => + static String m67(numberOfPeople) => "${Intl.plural(numberOfPeople, zero: 'Compartir con personas específicas', one: 'Compartido con 1 persona', other: 'Compartido con ${numberOfPeople} personas')}"; - static String m62(emailIDs) => "Compartido con ${emailIDs}"; + static String m68(emailIDs) => "Compartido con ${emailIDs}"; - static String m63(fileType) => + static String m69(fileType) => "Este ${fileType} se eliminará de tu dispositivo."; - static String m64(fileType) => + static String m70(fileType) => "Este ${fileType} está tanto en Ente como en tu dispositivo."; - static String m65(fileType) => "Este ${fileType} será eliminado de Ente."; + static String m71(fileType) => "Este ${fileType} será eliminado de Ente."; static String m1(storageAmountInGB) => "${storageAmountInGB} GB"; - static String m66( + static String m72( usedAmount, usedStorageUnit, totalAmount, totalStorageUnit) => "${usedAmount} ${usedStorageUnit} de ${totalAmount} ${totalStorageUnit} usados"; - static String m67(id) => + static String m73(id) => "Tu ${id} ya está vinculada a otra cuenta de Ente.\nSi deseas utilizar tu ${id} con esta cuenta, ponte en contacto con nuestro servicio de asistencia\'\'"; - static String m68(endDate) => "Tu suscripción se cancelará el ${endDate}"; + static String m74(endDate) => "Tu suscripción se cancelará el ${endDate}"; - static String m69(completed, total) => + static String m75(completed, total) => "${completed}/${total} recuerdos conservados"; - static String m70(ignoreReason) => + static String m76(ignoreReason) => "Toca para subir, la subida se está ignorando debido a ${ignoreReason}"; - static String m71(storageAmountInGB) => + static String m77(storageAmountInGB) => "También obtienen ${storageAmountInGB} GB"; - static String m72(email) => "Este es el ID de verificación de ${email}"; + static String m78(email) => "Este es el ID de verificación de ${email}"; - static String m73(count) => + static String m79(count) => "${Intl.plural(count, zero: 'Pronto', one: '1 día', other: '${count} días')}"; - static String m74(galleryType) => + static String m80(email) => + "Has sido invitado a ser un contacto legado por ${email}."; + + static String m81(galleryType) => "El tipo de galería ${galleryType} no es compatible con el renombrado"; - static String m75(ignoreReason) => + static String m82(ignoreReason) => "La subida se ignoró debido a ${ignoreReason}"; - static String m76(count) => "Preservando ${count} memorias..."; + static String m83(count) => "Preservando ${count} memorias..."; - static String m77(endDate) => "Válido hasta ${endDate}"; + static String m84(endDate) => "Válido hasta ${endDate}"; - static String m78(email) => "Verificar ${email}"; + static String m85(email) => "Verificar ${email}"; - static String m79(count) => + static String m86(count) => "${Intl.plural(count, zero: '0 espectadores añadidos', one: '1 espectador añadido', other: '${count} espectadores añadidos')}"; static String m2(email) => "Hemos enviado un correo a ${email}"; - static String m80(count) => + static String m87(count) => "${Intl.plural(count, one: 'Hace ${count} año', other: 'Hace ${count} años')}"; - static String m81(storageSaved) => "¡Has liberado ${storageSaved} con éxito!"; + static String m88(storageSaved) => "¡Has liberado ${storageSaved} con éxito!"; final messages = _notInlinedMessages(_notInlinedMessages); static Map _notInlinedMessages(_) => { "aNewVersionOfEnteIsAvailable": MessageLookupByLibrary.simpleMessage( "Hay una nueva versión de Ente disponible."), "about": MessageLookupByLibrary.simpleMessage("Acerca de"), + "acceptTrustInvite": + MessageLookupByLibrary.simpleMessage("Aceptar invitación"), "account": MessageLookupByLibrary.simpleMessage("Cuenta"), "accountIsAlreadyConfigured": MessageLookupByLibrary.simpleMessage( "La cuenta ya está configurada."), @@ -296,6 +315,8 @@ class MessageLookup extends MessageLookupByLibrary { "addToEnte": MessageLookupByLibrary.simpleMessage("Añadir a Ente"), "addToHiddenAlbum": MessageLookupByLibrary.simpleMessage("Añadir al álbum oculto"), + "addTrustedContact": MessageLookupByLibrary.simpleMessage( + "Añadir contacto de confianza"), "addViewer": MessageLookupByLibrary.simpleMessage("Añadir espectador"), "addViewers": m9, "addYourPhotosNow": @@ -355,8 +376,8 @@ class MessageLookup extends MessageLookupByLibrary { "La autenticación biométrica no está configurada en su dispositivo. \'Ve a Ajustes > Seguridad\' para añadir autenticación biométrica."), "androidIosWebDesktop": MessageLookupByLibrary.simpleMessage( "Android, iOS, Web, Computadora"), - "androidSignInTitle": - MessageLookupByLibrary.simpleMessage("Autentificación requerida"), + "androidSignInTitle": MessageLookupByLibrary.simpleMessage( + "Se necesita autenticación biométrica"), "appLock": MessageLookupByLibrary.simpleMessage("Bloqueo de aplicación"), "appLockDescriptions": MessageLookupByLibrary.simpleMessage( @@ -409,6 +430,8 @@ class MessageLookup extends MessageLookupByLibrary { "Por favor, autentícate para configurar la autenticación de dos factores"), "authToInitiateAccountDeletion": MessageLookupByLibrary.simpleMessage( "Por favor, autentícate para iniciar la eliminación de la cuenta"), + "authToManageLegacy": MessageLookupByLibrary.simpleMessage( + "Por favor, autentícate para administrar tus contactos de confianza"), "authToViewPasskey": MessageLookupByLibrary.simpleMessage( "Por favor, autentícate para ver tu clave de acceso"), "authToViewYourActiveSessions": MessageLookupByLibrary.simpleMessage( @@ -430,7 +453,7 @@ class MessageLookup extends MessageLookupByLibrary { "Aquí verás los dispositivos de transmisión disponibles."), "autoCastiOSPermission": MessageLookupByLibrary.simpleMessage( "Asegúrate de que los permisos de la red local están activados para la aplicación Ente Fotos, en Configuración."), - "autoLock": MessageLookupByLibrary.simpleMessage("Autobloqueo"), + "autoLock": MessageLookupByLibrary.simpleMessage("Bloqueo automático"), "autoLockFeatureDescription": MessageLookupByLibrary.simpleMessage( "Tiempo después de que la aplicación esté en segundo plano"), "autoLogoutMessage": MessageLookupByLibrary.simpleMessage( @@ -474,6 +497,10 @@ class MessageLookup extends MessageLookupByLibrary { "canOnlyRemoveFilesOwnedByYou": MessageLookupByLibrary.simpleMessage( "Sólo puede eliminar archivos de tu propiedad"), "cancel": MessageLookupByLibrary.simpleMessage("Cancelar"), + "cancelAccountRecovery": + MessageLookupByLibrary.simpleMessage("Cancelar la recuperación"), + "cancelAccountRecoveryBody": MessageLookupByLibrary.simpleMessage( + "¿Estás seguro de que quieres cancelar la recuperación?"), "cancelOtherSubscription": m15, "cancelSubscription": MessageLookupByLibrary.simpleMessage("Cancelar suscripción"), @@ -529,7 +556,7 @@ class MessageLookup extends MessageLookupByLibrary { "claimed": MessageLookupByLibrary.simpleMessage("Obtenido"), "claimedStorageSoFar": m17, "cleanUncategorized": - MessageLookupByLibrary.simpleMessage("Limpiar no categorizado"), + MessageLookupByLibrary.simpleMessage("Limpiar sin categorizar"), "cleanUncategorizedDescription": MessageLookupByLibrary.simpleMessage( "Elimina todos los archivos de Sin categorizar que están presentes en otros álbumes"), "clearCaches": MessageLookupByLibrary.simpleMessage("Limpiar cachés"), @@ -561,7 +588,7 @@ class MessageLookup extends MessageLookupByLibrary { "collaboratorsCanAddPhotosAndVideosToTheSharedAlbum": MessageLookupByLibrary.simpleMessage( "Colaboradores pueden añadir fotos y videos al álbum compartido."), - "collaboratorsSuccessfullyAdded": m82, + "collaboratorsSuccessfullyAdded": m19, "collageLayout": MessageLookupByLibrary.simpleMessage("Disposición"), "collageSaved": MessageLookupByLibrary.simpleMessage( "Collage guardado en la galería"), @@ -579,6 +606,7 @@ class MessageLookup extends MessageLookupByLibrary { "¿Estás seguro de que deseas deshabilitar la autenticación de doble factor?"), "confirmAccountDeletion": MessageLookupByLibrary.simpleMessage("Confirmar borrado de cuenta"), + "confirmAddingTrustedContact": m20, "confirmDeletePrompt": MessageLookupByLibrary.simpleMessage( "Sí, quiero eliminar permanentemente esta cuenta y todos sus datos en todas las aplicaciones."), "confirmPassword": @@ -591,10 +619,10 @@ class MessageLookup extends MessageLookupByLibrary { "Confirma tu clave de recuperación"), "connectToDevice": MessageLookupByLibrary.simpleMessage("Conectar a dispositivo"), - "contactFamilyAdmin": m19, + "contactFamilyAdmin": m21, "contactSupport": MessageLookupByLibrary.simpleMessage("Contactar con soporte"), - "contactToManageSubscription": m20, + "contactToManageSubscription": m22, "contacts": MessageLookupByLibrary.simpleMessage("Contactos"), "contents": MessageLookupByLibrary.simpleMessage("Contenidos"), "continueLabel": MessageLookupByLibrary.simpleMessage("Continuar"), @@ -640,10 +668,12 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("El uso actual es de "), "currentlyRunning": MessageLookupByLibrary.simpleMessage("ejecutando"), "custom": MessageLookupByLibrary.simpleMessage("Personalizado"), - "customEndpoint": m21, + "customEndpoint": m23, "darkTheme": MessageLookupByLibrary.simpleMessage("Oscuro"), "dayToday": MessageLookupByLibrary.simpleMessage("Hoy"), "dayYesterday": MessageLookupByLibrary.simpleMessage("Ayer"), + "declineTrustInvite": + MessageLookupByLibrary.simpleMessage("Rechazar invitación"), "decrypting": MessageLookupByLibrary.simpleMessage("Descifrando..."), "decryptingVideo": MessageLookupByLibrary.simpleMessage("Descifrando video..."), @@ -676,12 +706,12 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Eliminar del dispositivo"), "deleteFromEnte": MessageLookupByLibrary.simpleMessage("Eliminar de Ente"), - "deleteItemCount": m22, + "deleteItemCount": m24, "deleteLocation": MessageLookupByLibrary.simpleMessage("Borrar la ubicación"), "deletePhotos": MessageLookupByLibrary.simpleMessage("Borrar las fotos"), - "deleteProgress": m23, + "deleteProgress": m25, "deleteReason1": MessageLookupByLibrary.simpleMessage( "Falta una característica clave que necesito"), "deleteReason2": MessageLookupByLibrary.simpleMessage( @@ -710,19 +740,19 @@ class MessageLookup extends MessageLookupByLibrary { "deviceFilesAutoUploading": MessageLookupByLibrary.simpleMessage( "Los archivos añadidos a este álbum de dispositivo se subirán automáticamente a Ente."), "deviceLock": - MessageLookupByLibrary.simpleMessage("Dispositivo Bloqueado"), + MessageLookupByLibrary.simpleMessage("Bloqueo del dispositivo"), "deviceLockExplanation": MessageLookupByLibrary.simpleMessage( "Deshabilita el bloqueo de pantalla del dispositivo cuando Ente está en primer plano y haya una copia de seguridad en curso. Normalmente esto no es necesario, pero puede ayudar a que las grandes cargas y las importaciones iniciales de grandes bibliotecas se completen más rápido."), "deviceNotFound": MessageLookupByLibrary.simpleMessage("Dispositivo no encontrado"), "didYouKnow": MessageLookupByLibrary.simpleMessage("¿Sabías que?"), - "disableAutoLock": - MessageLookupByLibrary.simpleMessage("Desactivar autobloqueo"), + "disableAutoLock": MessageLookupByLibrary.simpleMessage( + "Desactivar bloqueo automático"), "disableDownloadWarningBody": MessageLookupByLibrary.simpleMessage( "Los espectadores todavía pueden tomar capturas de pantalla o guardar una copia de tus fotos usando herramientas externas"), "disableDownloadWarningTitle": MessageLookupByLibrary.simpleMessage("Por favor, ten en cuenta"), - "disableLinkMessage": m24, + "disableLinkMessage": m26, "disableTwofactor": MessageLookupByLibrary.simpleMessage("Deshabilitar dos factores"), "disablingTwofactorAuthentication": @@ -765,9 +795,9 @@ class MessageLookup extends MessageLookupByLibrary { "downloadFailed": MessageLookupByLibrary.simpleMessage("Descarga fallida"), "downloading": MessageLookupByLibrary.simpleMessage("Descargando..."), - "dropSupportEmail": m25, - "duplicateFileCountWithStorageSaved": m26, - "duplicateItemsGroup": m27, + "dropSupportEmail": m27, + "duplicateFileCountWithStorageSaved": m28, + "duplicateItemsGroup": m29, "edit": MessageLookupByLibrary.simpleMessage("Editar"), "editLocation": MessageLookupByLibrary.simpleMessage("Editar la ubicación"), @@ -781,12 +811,14 @@ class MessageLookup extends MessageLookupByLibrary { "Las ediciones a la ubicación sólo se verán dentro de Ente"), "eligible": MessageLookupByLibrary.simpleMessage("elegible"), "email": MessageLookupByLibrary.simpleMessage("Correo electrónico"), - "emailChangedTo": m28, - "emailNoEnteAccount": m29, + "emailChangedTo": m30, + "emailNoEnteAccount": m31, "emailVerificationToggle": MessageLookupByLibrary.simpleMessage( "Verificación por correo electrónico"), "emailYourLogs": MessageLookupByLibrary.simpleMessage( "Envía tus registros por correo electrónico"), + "emergencyContacts": + MessageLookupByLibrary.simpleMessage("Contactos de emergencia"), "empty": MessageLookupByLibrary.simpleMessage("Vaciar"), "emptyTrash": MessageLookupByLibrary.simpleMessage("¿Vaciar la papelera?"), @@ -866,7 +898,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Exportar tus datos"), "extraPhotosFound": MessageLookupByLibrary.simpleMessage( "Fotos adicionales encontradas"), - "extraPhotosFoundFor": m30, + "extraPhotosFoundFor": m32, "faceNotClusteredYet": MessageLookupByLibrary.simpleMessage( "Cara no agrupada todavía, por favor vuelve más tarde"), "faceRecognition": @@ -917,8 +949,8 @@ class MessageLookup extends MessageLookupByLibrary { "fileTypes": MessageLookupByLibrary.simpleMessage("Tipos de archivos"), "fileTypesAndNames": MessageLookupByLibrary.simpleMessage("Tipos de archivo y nombres"), - "filesBackedUpFromDevice": m31, - "filesBackedUpInAlbum": m32, + "filesBackedUpFromDevice": m33, + "filesBackedUpInAlbum": m34, "filesDeleted": MessageLookupByLibrary.simpleMessage("Archivos eliminados"), "filesSavedToGallery": MessageLookupByLibrary.simpleMessage( @@ -935,25 +967,25 @@ class MessageLookup extends MessageLookupByLibrary { "foundFaces": MessageLookupByLibrary.simpleMessage("Caras encontradas"), "freeStorageClaimed": MessageLookupByLibrary.simpleMessage( "Almacenamiento gratuito obtenido"), - "freeStorageOnReferralSuccess": m33, + "freeStorageOnReferralSuccess": m35, "freeStorageUsable": MessageLookupByLibrary.simpleMessage( "Almacenamiento libre disponible"), "freeTrial": MessageLookupByLibrary.simpleMessage("Prueba gratuita"), - "freeTrialValidTill": m34, - "freeUpAccessPostDelete": m35, - "freeUpAmount": m36, + "freeTrialValidTill": m36, + "freeUpAccessPostDelete": m37, + "freeUpAmount": m38, "freeUpDeviceSpace": MessageLookupByLibrary.simpleMessage( "Liberar espacio del dispositivo"), "freeUpDeviceSpaceDesc": MessageLookupByLibrary.simpleMessage( "Ahorra espacio en tu dispositivo limpiando archivos que tienen copia de seguridad."), "freeUpSpace": MessageLookupByLibrary.simpleMessage("Liberar espacio"), - "freeUpSpaceSaving": m37, + "freeUpSpaceSaving": m39, "galleryMemoryLimitInfo": MessageLookupByLibrary.simpleMessage( "Hasta 1000 memorias mostradas en la galería"), "general": MessageLookupByLibrary.simpleMessage("General"), "generatingEncryptionKeys": MessageLookupByLibrary.simpleMessage( "Generando claves de cifrado..."), - "genericProgress": m38, + "genericProgress": m40, "goToSettings": MessageLookupByLibrary.simpleMessage("Ir a Ajustes"), "googlePlayId": MessageLookupByLibrary.simpleMessage("ID de Google Play"), @@ -1035,7 +1067,7 @@ class MessageLookup extends MessageLookupByLibrary { "itLooksLikeSomethingWentWrongPleaseRetryAfterSome": MessageLookupByLibrary.simpleMessage( "Parece que algo salió mal. Por favor, vuelve a intentarlo después de algún tiempo. Si el error persiste, ponte en contacto con nuestro equipo de soporte."), - "itemCount": m39, + "itemCount": m41, "itemsShowTheNumberOfDaysRemainingBeforePermanentDeletion": MessageLookupByLibrary.simpleMessage( "Los artículos muestran el número de días restantes antes de ser borrados permanente"), @@ -1057,6 +1089,14 @@ class MessageLookup extends MessageLookupByLibrary { "leaveSharedAlbum": MessageLookupByLibrary.simpleMessage("¿Dejar álbum compartido?"), "left": MessageLookupByLibrary.simpleMessage("Izquierda"), + "legacy": MessageLookupByLibrary.simpleMessage("Legado"), + "legacyAccounts": + MessageLookupByLibrary.simpleMessage("Cuentas legadas"), + "legacyInvite": m42, + "legacyPageDesc": MessageLookupByLibrary.simpleMessage( + "Legado permite a los contactos de confianza acceder a su cuenta en su ausencia."), + "legacyPageDesc2": MessageLookupByLibrary.simpleMessage( + "Los contactos de confianza pueden iniciar la recuperación de la cuenta, y si no están bloqueados en un plazo de 30 días, restablecer su contraseña y acceder a su cuenta."), "light": MessageLookupByLibrary.simpleMessage("Brillo"), "lightTheme": MessageLookupByLibrary.simpleMessage("Claro"), "linkCopiedToClipboard": MessageLookupByLibrary.simpleMessage( @@ -1065,7 +1105,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Límite del dispositivo"), "linkEnabled": MessageLookupByLibrary.simpleMessage("Habilitado"), "linkExpired": MessageLookupByLibrary.simpleMessage("Vencido"), - "linkExpiresOn": m40, + "linkExpiresOn": m43, "linkExpiry": MessageLookupByLibrary.simpleMessage("Enlace vence"), "linkHasExpired": MessageLookupByLibrary.simpleMessage("El enlace ha caducado"), @@ -1192,11 +1232,11 @@ class MessageLookup extends MessageLookupByLibrary { "moreDetails": MessageLookupByLibrary.simpleMessage("Más detalles"), "mostRecent": MessageLookupByLibrary.simpleMessage("Más reciente"), "mostRelevant": MessageLookupByLibrary.simpleMessage("Más relevante"), - "moveItem": m41, + "moveItem": m44, "moveToAlbum": MessageLookupByLibrary.simpleMessage("Mover al álbum"), "moveToHiddenAlbum": MessageLookupByLibrary.simpleMessage("Mover al álbum oculto"), - "movedSuccessfullyTo": m42, + "movedSuccessfullyTo": m45, "movedToTrash": MessageLookupByLibrary.simpleMessage("Movido a la papelera"), "movingFilesToAlbum": MessageLookupByLibrary.simpleMessage( @@ -1247,10 +1287,10 @@ class MessageLookup extends MessageLookupByLibrary { "noResults": MessageLookupByLibrary.simpleMessage("Sin resultados"), "noResultsFound": MessageLookupByLibrary.simpleMessage( "No se han encontrado resultados"), - "noSuggestionsForPerson": m43, + "noSuggestionsForPerson": m46, "noSystemLockFound": MessageLookupByLibrary.simpleMessage( "Bloqueo de sistema no encontrado"), - "notPersonLabel": m44, + "notPersonLabel": m47, "nothingSharedWithYouYet": MessageLookupByLibrary.simpleMessage( "Aún no hay nada compartido contigo"), "nothingToSeeHere": MessageLookupByLibrary.simpleMessage( @@ -1260,7 +1300,7 @@ class MessageLookup extends MessageLookupByLibrary { "onDevice": MessageLookupByLibrary.simpleMessage("En el dispositivo"), "onEnte": MessageLookupByLibrary.simpleMessage( "En ente"), - "onlyFamilyAdminCanChangeCode": m45, + "onlyFamilyAdminCanChangeCode": m48, "onlyThem": MessageLookupByLibrary.simpleMessage("Solo ellos"), "oops": MessageLookupByLibrary.simpleMessage("Ups"), "oopsCouldNotSaveEdits": MessageLookupByLibrary.simpleMessage( @@ -1298,7 +1338,7 @@ class MessageLookup extends MessageLookupByLibrary { "passwordChangedSuccessfully": MessageLookupByLibrary.simpleMessage( "Contraseña cambiada correctamente"), "passwordLock": - MessageLookupByLibrary.simpleMessage("Bloqueo por contraseña"), + MessageLookupByLibrary.simpleMessage("Bloqueo con contraseña"), "passwordStrength": m0, "passwordStrengthInfo": MessageLookupByLibrary.simpleMessage( "La intensidad de la contraseña se calcula teniendo en cuenta la longitud de la contraseña, los caracteres utilizados, y si la contraseña aparece o no en el top 10,000 de contraseñas más usadas"), @@ -1309,7 +1349,7 @@ class MessageLookup extends MessageLookupByLibrary { "paymentFailed": MessageLookupByLibrary.simpleMessage("Pago fallido"), "paymentFailedMessage": MessageLookupByLibrary.simpleMessage( "Lamentablemente tu pago falló. Por favor, ¡contacta con el soporte técnico y te ayudaremos!"), - "paymentFailedTalkToProvider": m46, + "paymentFailedTalkToProvider": m49, "pendingItems": MessageLookupByLibrary.simpleMessage("Elementos pendientes"), "pendingSync": @@ -1334,14 +1374,14 @@ class MessageLookup extends MessageLookupByLibrary { "photosAddedByYouWillBeRemovedFromTheAlbum": MessageLookupByLibrary.simpleMessage( "Las fotos añadidas por ti serán removidas del álbum"), - "photosCount": m47, + "photosCount": m50, "pickCenterPoint": MessageLookupByLibrary.simpleMessage("Elegir punto central"), "pinAlbum": MessageLookupByLibrary.simpleMessage("Fijar álbum"), - "pinLock": MessageLookupByLibrary.simpleMessage("PIN Bloqueado"), + "pinLock": MessageLookupByLibrary.simpleMessage("Bloqueo con Pin"), "playOnTv": MessageLookupByLibrary.simpleMessage("Reproducir álbum en TV"), - "playStoreFreeTrialValidTill": m48, + "playStoreFreeTrialValidTill": m51, "playstoreSubscription": MessageLookupByLibrary.simpleMessage("Suscripción en la PlayStore"), "pleaseCheckYourInternetConnectionAndTryAgain": @@ -1353,14 +1393,14 @@ class MessageLookup extends MessageLookupByLibrary { "pleaseContactSupportIfTheProblemPersists": MessageLookupByLibrary.simpleMessage( "Por favor, contacta a soporte técnico si el problema persiste"), - "pleaseEmailUsAt": m49, + "pleaseEmailUsAt": m52, "pleaseGrantPermissions": MessageLookupByLibrary.simpleMessage("Por favor, concede permiso"), "pleaseLoginAgain": MessageLookupByLibrary.simpleMessage( "Por favor, vuelve a iniciar sesión"), "pleaseSelectQuickLinksToRemove": MessageLookupByLibrary.simpleMessage( "Por favor, selecciona enlaces rápidos para eliminar"), - "pleaseSendTheLogsTo": m50, + "pleaseSendTheLogsTo": m53, "pleaseTryAgain": MessageLookupByLibrary.simpleMessage( "Por favor, inténtalo nuevamente"), "pleaseVerifyTheCodeYouHaveEntered": @@ -1387,7 +1427,8 @@ class MessageLookup extends MessageLookupByLibrary { "Copias de seguridad privadas"), "privateSharing": MessageLookupByLibrary.simpleMessage("Compartir en privado"), - "processingImport": m51, + "proceed": MessageLookupByLibrary.simpleMessage("Continuar"), + "processingImport": m54, "publicLinkCreated": MessageLookupByLibrary.simpleMessage("Enlace público creado"), "publicLinkEnabled": @@ -1398,11 +1439,16 @@ class MessageLookup extends MessageLookupByLibrary { "rateTheApp": MessageLookupByLibrary.simpleMessage("Evalúa la aplicación"), "rateUs": MessageLookupByLibrary.simpleMessage("Califícanos"), - "rateUsOnStore": m52, + "rateUsOnStore": m55, "recover": MessageLookupByLibrary.simpleMessage("Recuperar"), "recoverAccount": MessageLookupByLibrary.simpleMessage("Recuperar cuenta"), "recoverButton": MessageLookupByLibrary.simpleMessage("Recuperar"), + "recoveryAccount": + MessageLookupByLibrary.simpleMessage("Recuperar cuenta"), + "recoveryInitiated": + MessageLookupByLibrary.simpleMessage("Recuperación iniciada"), + "recoveryInitiatedDesc": m56, "recoveryKey": MessageLookupByLibrary.simpleMessage("Clave de recuperación"), "recoveryKeyCopiedToClipboard": MessageLookupByLibrary.simpleMessage( @@ -1417,8 +1463,12 @@ class MessageLookup extends MessageLookupByLibrary { "Clave de recuperación verificada"), "recoveryKeyVerifyReason": MessageLookupByLibrary.simpleMessage( "Tu clave de recuperación es la única forma de recuperar tus fotos si olvidas tu contraseña. Puedes encontrar tu clave de recuperación en Ajustes > Cuenta.\n\nPor favor, introduce tu clave de recuperación aquí para verificar que la has guardado correctamente."), + "recoveryReady": m57, "recoverySuccessful": MessageLookupByLibrary.simpleMessage("¡Recuperación exitosa!"), + "recoveryWarning": MessageLookupByLibrary.simpleMessage( + "Un contacto de confianza está intentando acceder a tu cuenta"), + "recoveryWarningBody": m58, "recreatePasswordBody": MessageLookupByLibrary.simpleMessage( "El dispositivo actual no es lo suficientemente potente para verificar su contraseña, pero podemos regenerarla de una manera que funcione con todos los dispositivos.\n\nPor favor inicie sesión usando su clave de recuperación y regenere su contraseña (puede volver a utilizar la misma si lo desea)."), "recreatePasswordTitle": @@ -1433,10 +1483,12 @@ class MessageLookup extends MessageLookupByLibrary { "1. Dale este código a tus amigos"), "referralStep2": MessageLookupByLibrary.simpleMessage( "2. Se suscriben a un plan de pago"), - "referralStep3": m53, + "referralStep3": m59, "referrals": MessageLookupByLibrary.simpleMessage("Referidos"), "referralsAreCurrentlyPaused": MessageLookupByLibrary.simpleMessage( "Las referencias están actualmente en pausa"), + "rejectRecovery": + MessageLookupByLibrary.simpleMessage("Rechazar la recuperación"), "remindToEmptyDeviceTrash": MessageLookupByLibrary.simpleMessage( "También vacía \"Eliminado Recientemente\" de \"Configuración\" -> \"Almacenamiento\" para reclamar el espacio libre"), "remindToEmptyEnteTrash": MessageLookupByLibrary.simpleMessage( @@ -1457,10 +1509,12 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("¿Eliminar del álbum?"), "removeFromFavorite": MessageLookupByLibrary.simpleMessage("Remover desde favoritos"), + "removeInvite": + MessageLookupByLibrary.simpleMessage("Eliminar invitación"), "removeLink": MessageLookupByLibrary.simpleMessage("Eliminar enlace"), "removeParticipant": MessageLookupByLibrary.simpleMessage("Quitar participante"), - "removeParticipantBody": m54, + "removeParticipantBody": m60, "removePersonLabel": MessageLookupByLibrary.simpleMessage( "Eliminar etiqueta de persona"), "removePublicLink": @@ -1471,6 +1525,8 @@ class MessageLookup extends MessageLookupByLibrary { "Algunos de los elementos que estás eliminando fueron añadidos por otras personas, y perderás el acceso a ellos"), "removeWithQuestionMark": MessageLookupByLibrary.simpleMessage("Quitar?"), + "removeYourselfAsTrustedContact": MessageLookupByLibrary.simpleMessage( + "Quitarse como contacto de confianza"), "removingFromFavorites": MessageLookupByLibrary.simpleMessage("Quitando de favoritos..."), "rename": MessageLookupByLibrary.simpleMessage("Renombrar"), @@ -1478,7 +1534,7 @@ class MessageLookup extends MessageLookupByLibrary { "renameFile": MessageLookupByLibrary.simpleMessage("Renombrar archivo"), "renewSubscription": MessageLookupByLibrary.simpleMessage("Renovar suscripción"), - "renewsOn": m55, + "renewsOn": m61, "reportABug": MessageLookupByLibrary.simpleMessage("Reportar un error"), "reportBug": MessageLookupByLibrary.simpleMessage("Reportar error"), "resendEmail": @@ -1558,8 +1614,8 @@ class MessageLookup extends MessageLookupByLibrary { "Invita a gente y verás todas las fotos compartidas aquí"), "searchPersonsEmptySection": MessageLookupByLibrary.simpleMessage( "Las personas se mostrarán aquí cuando se complete el procesamiento"), - "searchResultCount": m56, - "searchSectionsLengthMismatch": m57, + "searchResultCount": m62, + "searchSectionsLengthMismatch": m63, "security": MessageLookupByLibrary.simpleMessage("Seguridad"), "seePublicAlbumLinksInApp": MessageLookupByLibrary.simpleMessage( "Ver enlaces del álbum público en la aplicación"), @@ -1596,7 +1652,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage( "Los archivos seleccionados serán eliminados de todos los álbumes y movidos a la papelera."), "selectedPhotos": m4, - "selectedPhotosWithYours": m58, + "selectedPhotosWithYours": m64, "send": MessageLookupByLibrary.simpleMessage("Enviar"), "sendEmail": MessageLookupByLibrary.simpleMessage("Enviar correo electrónico"), @@ -1630,16 +1686,16 @@ class MessageLookup extends MessageLookupByLibrary { "shareAnAlbumNow": MessageLookupByLibrary.simpleMessage("Compartir un álbum ahora"), "shareLink": MessageLookupByLibrary.simpleMessage("Compartir enlace"), - "shareMyVerificationID": m59, + "shareMyVerificationID": m65, "shareOnlyWithThePeopleYouWant": MessageLookupByLibrary.simpleMessage( "Comparte sólo con la gente que quieres"), "shareTextConfirmOthersVerificationID": m5, "shareTextRecommendUsingEnte": MessageLookupByLibrary.simpleMessage( "Descarga Ente para que podamos compartir fácilmente fotos y videos en calidad original.\n\nhttps://ente.io"), - "shareTextReferralCode": m60, + "shareTextReferralCode": m66, "shareWithNonenteUsers": MessageLookupByLibrary.simpleMessage( "Compartir con usuarios fuera de Ente"), - "shareWithPeopleSectionTitle": m61, + "shareWithPeopleSectionTitle": m67, "shareYourFirstAlbum": MessageLookupByLibrary.simpleMessage("Comparte tu primer álbum"), "sharedAlbumSectionDescription": MessageLookupByLibrary.simpleMessage( @@ -1651,7 +1707,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Nuevas fotos compartidas"), "sharedPhotoNotificationsExplanation": MessageLookupByLibrary.simpleMessage( "Recibir notificaciones cuando alguien agrega una foto a un álbum compartido contigo"), - "sharedWith": m62, + "sharedWith": m68, "sharedWithMe": MessageLookupByLibrary.simpleMessage("Compartido conmigo"), "sharedWithYou": @@ -1668,11 +1724,11 @@ class MessageLookup extends MessageLookupByLibrary { "Cerrar la sesión de otros dispositivos"), "signUpTerms": MessageLookupByLibrary.simpleMessage( "Estoy de acuerdo con los términos del servicio y la política de privacidad"), - "singleFileDeleteFromDevice": m63, + "singleFileDeleteFromDevice": m69, "singleFileDeleteHighlight": MessageLookupByLibrary.simpleMessage( "Se borrará de todos los álbumes."), - "singleFileInBothLocalAndRemote": m64, - "singleFileInRemoteOnly": m65, + "singleFileInBothLocalAndRemote": m70, + "singleFileInRemoteOnly": m71, "skip": MessageLookupByLibrary.simpleMessage("Omitir"), "social": MessageLookupByLibrary.simpleMessage("Social"), "someItemsAreInBothEnteAndYourDevice": @@ -1708,6 +1764,8 @@ class MessageLookup extends MessageLookupByLibrary { "sortOldestFirst": MessageLookupByLibrary.simpleMessage("Más antiguos primero"), "sparkleSuccess": MessageLookupByLibrary.simpleMessage("✨ Éxito"), + "startAccountRecoveryTitle": + MessageLookupByLibrary.simpleMessage("Iniciar la recuperación"), "startBackup": MessageLookupByLibrary.simpleMessage("Iniciar copia de seguridad"), "status": MessageLookupByLibrary.simpleMessage("Estado"), @@ -1721,10 +1779,10 @@ class MessageLookup extends MessageLookupByLibrary { "storageInGB": m1, "storageLimitExceeded": MessageLookupByLibrary.simpleMessage("Límite de datos excedido"), - "storageUsageInfo": m66, + "storageUsageInfo": m72, "strongStrength": MessageLookupByLibrary.simpleMessage("Segura"), - "subAlreadyLinkedErrMessage": m67, - "subWillBeCancelledOn": m68, + "subAlreadyLinkedErrMessage": m73, + "subWillBeCancelledOn": m74, "subscribe": MessageLookupByLibrary.simpleMessage("Suscribirse"), "subscribeToEnableSharing": MessageLookupByLibrary.simpleMessage( "Necesitas una suscripción activa de pago para habilitar el compartir."), @@ -1741,7 +1799,7 @@ class MessageLookup extends MessageLookupByLibrary { "suggestFeatures": MessageLookupByLibrary.simpleMessage("Sugerir una característica"), "support": MessageLookupByLibrary.simpleMessage("Soporte"), - "syncProgress": m69, + "syncProgress": m75, "syncStopped": MessageLookupByLibrary.simpleMessage("Sincronización detenida"), "syncing": MessageLookupByLibrary.simpleMessage("Sincronizando..."), @@ -1752,7 +1810,7 @@ class MessageLookup extends MessageLookupByLibrary { "tapToUnlock": MessageLookupByLibrary.simpleMessage("Toca para desbloquear"), "tapToUpload": MessageLookupByLibrary.simpleMessage("Toca para subir"), - "tapToUploadIsIgnoredDue": m70, + "tapToUploadIsIgnoredDue": m76, "tempErrorContactSupportIfPersists": MessageLookupByLibrary.simpleMessage( "Parece que algo salió mal. Por favor, vuelve a intentarlo después de algún tiempo. Si el error persiste, ponte en contacto con nuestro equipo de soporte."), "terminate": MessageLookupByLibrary.simpleMessage("Terminar"), @@ -1776,7 +1834,7 @@ class MessageLookup extends MessageLookupByLibrary { "theseItemsWillBeDeletedFromYourDevice": MessageLookupByLibrary.simpleMessage( "Estos elementos se eliminarán de tu dispositivo."), - "theyAlsoGetXGb": m71, + "theyAlsoGetXGb": m77, "theyWillBeDeletedFromAllAlbums": MessageLookupByLibrary.simpleMessage( "Se borrarán de todos los álbumes."), "thisActionCannotBeUndone": MessageLookupByLibrary.simpleMessage( @@ -1792,7 +1850,7 @@ class MessageLookup extends MessageLookupByLibrary { "Este correo electrónico ya está en uso"), "thisImageHasNoExifData": MessageLookupByLibrary.simpleMessage( "Esta imagen no tiene datos exif"), - "thisIsPersonVerificationId": m72, + "thisIsPersonVerificationId": m78, "thisIsYourVerificationId": MessageLookupByLibrary.simpleMessage( "Esta es tu ID de verificación"), "thisWillLogYouOutOfTheFollowingDevice": @@ -1816,8 +1874,11 @@ class MessageLookup extends MessageLookupByLibrary { "total": MessageLookupByLibrary.simpleMessage("total"), "totalSize": MessageLookupByLibrary.simpleMessage("Tamaño total"), "trash": MessageLookupByLibrary.simpleMessage("Papelera"), - "trashDaysLeft": m73, + "trashDaysLeft": m79, "trim": MessageLookupByLibrary.simpleMessage("Ajustar duración"), + "trustedContacts": + MessageLookupByLibrary.simpleMessage("Contactos de confianza"), + "trustedInviteBody": m80, "tryAgain": MessageLookupByLibrary.simpleMessage("Inténtalo de nuevo"), "turnOnBackupForAutoUpload": MessageLookupByLibrary.simpleMessage( "Activar la copia de seguridad para subir automáticamente archivos añadidos a la carpeta de este dispositivo a Ente."), @@ -1835,7 +1896,7 @@ class MessageLookup extends MessageLookupByLibrary { "Autenticación de doble factor restablecida con éxito"), "twofactorSetup": MessageLookupByLibrary.simpleMessage("Configuración de dos pasos"), - "typeOfGallerGallerytypeIsNotSupportedForRename": m74, + "typeOfGallerGallerytypeIsNotSupportedForRename": m81, "unarchive": MessageLookupByLibrary.simpleMessage("Desarchivar"), "unarchiveAlbum": MessageLookupByLibrary.simpleMessage("Desarchivar álbum"), @@ -1860,10 +1921,10 @@ class MessageLookup extends MessageLookupByLibrary { "updatingFolderSelection": MessageLookupByLibrary.simpleMessage( "Actualizando la selección de carpeta..."), "upgrade": MessageLookupByLibrary.simpleMessage("Mejorar"), - "uploadIsIgnoredDueToIgnorereason": m75, + "uploadIsIgnoredDueToIgnorereason": m82, "uploadingFilesToAlbum": MessageLookupByLibrary.simpleMessage( "Subiendo archivos al álbum..."), - "uploadingMultipleMemories": m76, + "uploadingMultipleMemories": m83, "uploadingSingleMemory": MessageLookupByLibrary.simpleMessage("Preservando 1 memoria..."), "upto50OffUntil4thDec": MessageLookupByLibrary.simpleMessage( @@ -1880,7 +1941,7 @@ class MessageLookup extends MessageLookupByLibrary { "useSelectedPhoto": MessageLookupByLibrary.simpleMessage("Usar foto seleccionada"), "usedSpace": MessageLookupByLibrary.simpleMessage("Espacio usado"), - "validTill": m77, + "validTill": m84, "verificationFailedPleaseTryAgain": MessageLookupByLibrary.simpleMessage( "Verificación fallida, por favor inténtalo de nuevo"), @@ -1889,7 +1950,7 @@ class MessageLookup extends MessageLookupByLibrary { "verify": MessageLookupByLibrary.simpleMessage("Verificar"), "verifyEmail": MessageLookupByLibrary.simpleMessage( "Verificar correo electrónico"), - "verifyEmailID": m78, + "verifyEmailID": m85, "verifyIDLabel": MessageLookupByLibrary.simpleMessage("Verificar"), "verifyPasskey": MessageLookupByLibrary.simpleMessage("Verificar clave de acceso"), @@ -1917,13 +1978,14 @@ class MessageLookup extends MessageLookupByLibrary { "viewRecoveryKey": MessageLookupByLibrary.simpleMessage("Ver código de recuperación"), "viewer": MessageLookupByLibrary.simpleMessage("Espectador"), - "viewersSuccessfullyAdded": m79, + "viewersSuccessfullyAdded": m86, "visitWebToManage": MessageLookupByLibrary.simpleMessage( "Por favor, visita web.ente.io para administrar tu suscripción"), "waitingForVerification": MessageLookupByLibrary.simpleMessage("Esperando verificación..."), "waitingForWifi": MessageLookupByLibrary.simpleMessage("Esperando WiFi..."), + "warning": MessageLookupByLibrary.simpleMessage("Advertencia"), "weAreOpenSource": MessageLookupByLibrary.simpleMessage("¡Somos de código abierto!"), "weDontSupportEditingPhotosAndAlbumsThatYouDont": @@ -1934,9 +1996,11 @@ class MessageLookup extends MessageLookupByLibrary { "welcomeBack": MessageLookupByLibrary.simpleMessage("¡Bienvenido de nuevo!"), "whatsNew": MessageLookupByLibrary.simpleMessage("Qué hay de nuevo"), + "whyAddTrustContact": MessageLookupByLibrary.simpleMessage( + "Un contacto de confianza puede ayudar a recuperar sus datos."), "yearShort": MessageLookupByLibrary.simpleMessage("año"), "yearly": MessageLookupByLibrary.simpleMessage("Anualmente"), - "yearsAgo": m80, + "yearsAgo": m87, "yes": MessageLookupByLibrary.simpleMessage("Sí"), "yesCancel": MessageLookupByLibrary.simpleMessage("Sí, cancelar"), "yesConvertToViewer": @@ -1968,7 +2032,7 @@ class MessageLookup extends MessageLookupByLibrary { "No puedes compartir contigo mismo"), "youDontHaveAnyArchivedItems": MessageLookupByLibrary.simpleMessage( "No tienes ningún elemento archivado."), - "youHaveSuccessfullyFreedUp": m81, + "youHaveSuccessfullyFreedUp": m88, "yourAccountHasBeenDeleted": MessageLookupByLibrary.simpleMessage("Tu cuenta ha sido eliminada"), "yourMap": MessageLookupByLibrary.simpleMessage("Tu mapa"), diff --git a/mobile/lib/generated/intl/messages_fa.dart b/mobile/lib/generated/intl/messages_fa.dart index 41be2be1890..ff03c504048 100644 --- a/mobile/lib/generated/intl/messages_fa.dart +++ b/mobile/lib/generated/intl/messages_fa.dart @@ -25,19 +25,19 @@ class MessageLookup extends MessageLookupByLibrary { static String m14(freeAmount, storageUnit) => "${freeAmount} ${storageUnit} رایگان"; - static String m25(supportEmail) => + static String m27(supportEmail) => "لطفا یک ایمیل از آدرس ایمیلی که ثبت نام کردید به ${supportEmail} ارسال کنید"; static String m0(passwordStrengthValue) => "قدرت رمز عبور: ${passwordStrengthValue}"; - static String m52(storeName) => "به ما در ${storeName} امتیاز دهید"; + static String m55(storeName) => "به ما در ${storeName} امتیاز دهید"; - static String m66( + static String m72( usedAmount, usedStorageUnit, totalAmount, totalStorageUnit) => "${usedAmount} ${usedStorageUnit} از ${totalAmount} ${totalStorageUnit} استفاده شده"; - static String m78(email) => "تایید ${email}"; + static String m85(email) => "تایید ${email}"; static String m2(email) => "ما یک ایمیل به ${email} ارسال کرده‌ایم"; @@ -166,7 +166,7 @@ class MessageLookup extends MessageLookupByLibrary { "discord": MessageLookupByLibrary.simpleMessage("دیسکورد"), "doThisLater": MessageLookupByLibrary.simpleMessage("بعداً انجام شود"), "downloading": MessageLookupByLibrary.simpleMessage("در حال دانلود..."), - "dropSupportEmail": m25, + "dropSupportEmail": m27, "editLocationTagTitle": MessageLookupByLibrary.simpleMessage("ویرایش مکان"), "email": MessageLookupByLibrary.simpleMessage("ایمیل"), @@ -292,7 +292,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("پشتیبان گیری خصوصی"), "privateSharing": MessageLookupByLibrary.simpleMessage("اشتراک گذاری خصوصی"), - "rateUsOnStore": m52, + "rateUsOnStore": m55, "recover": MessageLookupByLibrary.simpleMessage("بازیابی"), "recoverAccount": MessageLookupByLibrary.simpleMessage("بازیابی حساب کاربری"), @@ -368,7 +368,7 @@ class MessageLookup extends MessageLookupByLibrary { "storageBreakupFamily": MessageLookupByLibrary.simpleMessage("خانوادگی"), "storageBreakupYou": MessageLookupByLibrary.simpleMessage("شما"), - "storageUsageInfo": m66, + "storageUsageInfo": m72, "strongStrength": MessageLookupByLibrary.simpleMessage("قوی"), "support": MessageLookupByLibrary.simpleMessage("پشتیبانی"), "systemTheme": MessageLookupByLibrary.simpleMessage("سیستم"), @@ -409,7 +409,7 @@ class MessageLookup extends MessageLookupByLibrary { "از کلید بازیابی استفاده کنید"), "verify": MessageLookupByLibrary.simpleMessage("تایید"), "verifyEmail": MessageLookupByLibrary.simpleMessage("تایید ایمیل"), - "verifyEmailID": m78, + "verifyEmailID": m85, "verifyIDLabel": MessageLookupByLibrary.simpleMessage("تایید"), "verifyPassword": MessageLookupByLibrary.simpleMessage("تایید رمز عبور"), diff --git a/mobile/lib/generated/intl/messages_fr.dart b/mobile/lib/generated/intl/messages_fr.dart index dc42a2d9714..dd523d8963f 100644 --- a/mobile/lib/generated/intl/messages_fr.dart +++ b/mobile/lib/generated/intl/messages_fr.dart @@ -62,192 +62,208 @@ class MessageLookup extends MessageLookupByLibrary { static String m18(albumName) => "Lien collaboratif créé pour ${albumName}"; - static String m82(count) => + static String m19(count) => "${Intl.plural(count, zero: '0 collaborateur ajouté', one: '1 collaborateur ajouté', other: '${count} collaborateurs ajoutés')}"; - static String m19(familyAdminEmail) => + static String m20(email, numOfDays) => + "Vous êtes sur le point d\'ajouter ${email} en tant que contact sûr. Il pourra récupérer votre compte si vous êtes absent pendant ${numOfDays} jours."; + + static String m21(familyAdminEmail) => "Veuillez contacter ${familyAdminEmail} pour gérer votre abonnement"; - static String m20(provider) => + static String m22(provider) => "Veuillez nous contacter à support@ente.io pour gérer votre abonnement ${provider}."; - static String m21(endpoint) => "Connecté à ${endpoint}"; + static String m23(endpoint) => "Connecté à ${endpoint}"; - static String m22(count) => + static String m24(count) => "${Intl.plural(count, one: 'Supprimer le fichier', other: 'Supprimer ${count} fichiers')}"; - static String m23(currentlyDeleting, totalCount) => + static String m25(currentlyDeleting, totalCount) => "Suppression de ${currentlyDeleting} / ${totalCount}"; - static String m24(albumName) => + static String m26(albumName) => "Cela supprimera le lien public pour accéder à \"${albumName}\"."; - static String m25(supportEmail) => + static String m27(supportEmail) => "Veuillez envoyer un e-mail à ${supportEmail} depuis votre adresse enregistrée"; - static String m26(count, storageSaved) => + static String m28(count, storageSaved) => "Vous avez nettoyé ${Intl.plural(count, one: '${count} fichier dupliqué', other: '${count} fichiers dupliqués')}, sauvegarde (${storageSaved}!)"; - static String m27(count, formattedSize) => + static String m29(count, formattedSize) => "${count} fichiers, ${formattedSize} chacun"; - static String m28(newEmail) => "L\'e-mail a été changé en ${newEmail}"; + static String m30(newEmail) => "L\'e-mail a été changé en ${newEmail}"; - static String m29(email) => + static String m31(email) => "${email} n\'a pas de compte Ente.\n\nEnvoyez une invitation pour partager des photos."; - static String m30(text) => "Photos supplémentaires trouvées pour ${text}"; + static String m32(text) => "Photos supplémentaires trouvées pour ${text}"; - static String m31(count, formattedNumber) => + static String m33(count, formattedNumber) => "${Intl.plural(count, one: '1 fichier sur cet appareil a été sauvegardé en toute sécurité', other: '${formattedNumber} fichiers sur cet appareil ont été sauvegardés en toute sécurité')}"; - static String m32(count, formattedNumber) => + static String m34(count, formattedNumber) => "${Intl.plural(count, one: '1 fichier dans cet album a été sauvegardé en toute sécurité', other: '${formattedNumber} fichiers dans cet album ont été sauvegardés en toute sécurité')}"; - static String m33(storageAmountInGB) => + static String m35(storageAmountInGB) => "${storageAmountInGB} Go chaque fois que quelqu\'un s\'inscrit à une offre payante et applique votre code"; - static String m34(endDate) => "Essai gratuit valide jusqu’au ${endDate}"; + static String m36(endDate) => "Essai gratuit valide jusqu’au ${endDate}"; - static String m35(count) => + static String m37(count) => "Vous pouvez toujours ${Intl.plural(count, one: 'y', other: 'y')} accéder sur ente tant que vous avez un abonnement actif"; - static String m36(sizeInMBorGB) => "Libérer ${sizeInMBorGB}"; + static String m38(sizeInMBorGB) => "Libérer ${sizeInMBorGB}"; - static String m37(count, formattedSize) => + static String m39(count, formattedSize) => "${Intl.plural(count, one: 'Peut être supprimé de l\'appareil pour libérer ${formattedSize}', other: 'Peuvent être supprimés de l\'appareil pour libérer ${formattedSize}')}"; - static String m38(currentlyProcessing, totalCount) => + static String m40(currentlyProcessing, totalCount) => "Traitement en cours ${currentlyProcessing} / ${totalCount}"; - static String m39(count) => + static String m41(count) => "${Intl.plural(count, one: '${count} objet', other: '${count} objets')}"; - static String m40(expiryTime) => "Le lien expirera le ${expiryTime}"; + static String m42(email) => "${email} vous a invité à être un contact sûr"; + + static String m43(expiryTime) => "Le lien expirera le ${expiryTime}"; static String m3(count, formattedCount) => "${Intl.plural(count, one: '${formattedCount} souvenir', other: '${formattedCount} souvenirs')}"; - static String m41(count) => + static String m44(count) => "${Intl.plural(count, one: 'Déplacez l\'objet', other: 'Déplacez des objets')}"; - static String m42(albumName) => "Déplacé avec succès vers ${albumName}"; + static String m45(albumName) => "Déplacé avec succès vers ${albumName}"; - static String m43(personName) => "Aucune suggestion pour ${personName}"; + static String m46(personName) => "Aucune suggestion pour ${personName}"; - static String m44(name) => "Pas ${name}?"; + static String m47(name) => "Pas ${name}?"; - static String m45(familyAdminEmail) => + static String m48(familyAdminEmail) => "Veuillez contacter ${familyAdminEmail} pour modifier votre code."; static String m0(passwordStrengthValue) => "Sécurité du mot de passe : ${passwordStrengthValue}"; - static String m46(providerName) => + static String m49(providerName) => "Veuillez contacter le support ${providerName} si vous avez été facturé"; - static String m47(count) => + static String m50(count) => "${Intl.plural(count, zero: '0 photo', one: '1 photo', other: '${count} photos')}"; - static String m48(endDate) => + static String m51(endDate) => "Essai gratuit valable jusqu\'à ${endDate}.\nVous pouvez choisir un plan payant par la suite."; - static String m49(toEmail) => "Merci de nous envoyer un e-mail à ${toEmail}"; + static String m52(toEmail) => "Merci de nous envoyer un e-mail à ${toEmail}"; + + static String m53(toEmail) => "Envoyez les logs à ${toEmail}"; + + static String m54(folderName) => "Traitement de ${folderName}..."; - static String m50(toEmail) => "Envoyez les logs à ${toEmail}"; + static String m55(storeName) => "Notez-nous sur ${storeName}"; - static String m51(folderName) => "Traitement de ${folderName}..."; + static String m56(days, email) => + "Vous pourrez accéder au compte d\'ici ${days} jours. Une notification sera envoyée à ${email}."; - static String m52(storeName) => "Notez-nous sur ${storeName}"; + static String m57(email) => + "Vous pouvez maintenant récupérer le compte de ${email} en définissant un nouveau mot de passe."; - static String m53(storageInGB) => + static String m58(email) => "${email} tente de récupérer votre compte."; + + static String m59(storageInGB) => "3. Vous recevez tous les deux ${storageInGB} GB* gratuits"; - static String m54(userEmail) => + static String m60(userEmail) => "${userEmail} sera retiré de cet album partagé\n\nToutes les photos ajoutées par eux seront également retirées de l\'album"; - static String m55(endDate) => "Renouvellement le ${endDate}"; + static String m61(endDate) => "Renouvellement le ${endDate}"; - static String m56(count) => + static String m62(count) => "${Intl.plural(count, one: '${count} résultat trouvé', other: '${count} résultats trouvés')}"; - static String m57(snapshotLenght, searchLenght) => + static String m63(snapshotLenght, searchLenght) => "Incompatibilité de la longueur des sections: ${snapshotLenght} != ${searchLenght}"; static String m4(count) => "${count} sélectionné(s)"; - static String m58(count, yourCount) => + static String m64(count, yourCount) => "${count} sélectionné(s) (${yourCount} à vous)"; - static String m59(verificationID) => + static String m65(verificationID) => "Voici mon ID de vérification : ${verificationID} pour ente.io."; static String m5(verificationID) => "Hé, pouvez-vous confirmer qu\'il s\'agit de votre ID de vérification ente.io : ${verificationID}"; - static String m60(referralCode, referralStorageInGB) => + static String m66(referralCode, referralStorageInGB) => "Code de parrainage Ente : ${referralCode} \n\nValidez le dans Paramètres → Général → Références pour obtenir ${referralStorageInGB} Go gratuitement après votre inscription à un plan payant\n\nhttps://ente.io"; - static String m61(numberOfPeople) => + static String m67(numberOfPeople) => "${Intl.plural(numberOfPeople, zero: 'Partagez avec des personnes spécifiques', one: 'Partagé avec 1 personne', other: 'Partagé avec ${numberOfPeople} personnes')}"; - static String m62(emailIDs) => "Partagé avec ${emailIDs}"; + static String m68(emailIDs) => "Partagé avec ${emailIDs}"; - static String m63(fileType) => + static String m69(fileType) => "Elle ${fileType} sera supprimée de votre appareil."; - static String m64(fileType) => + static String m70(fileType) => "Cette ${fileType} est à la fois sur ente et sur votre appareil."; - static String m65(fileType) => "Cette ${fileType} sera supprimée de l\'Ente."; + static String m71(fileType) => "Cette ${fileType} sera supprimée de l\'Ente."; static String m1(storageAmountInGB) => "${storageAmountInGB} Go"; - static String m66( + static String m72( usedAmount, usedStorageUnit, totalAmount, totalStorageUnit) => "${usedAmount} ${usedStorageUnit} sur ${totalAmount} ${totalStorageUnit} utilisé"; - static String m67(id) => + static String m73(id) => "Votre ${id} est déjà lié à un autre compte Ente.\nSi vous souhaitez utiliser votre ${id} avec ce compte, veuillez contacter notre support"; - static String m68(endDate) => "Votre abonnement sera annulé le ${endDate}"; + static String m74(endDate) => "Votre abonnement sera annulé le ${endDate}"; - static String m69(completed, total) => + static String m75(completed, total) => "${completed}/${total} souvenirs conservés"; - static String m70(ignoreReason) => + static String m76(ignoreReason) => "Appuyer pour envoyer, l\'envoi est actuellement ignoré en raison de ${ignoreReason}"; - static String m71(storageAmountInGB) => + static String m77(storageAmountInGB) => "Ils obtiennent aussi ${storageAmountInGB} Go"; - static String m72(email) => "Ceci est l\'ID de vérification de ${email}"; + static String m78(email) => "Ceci est l\'ID de vérification de ${email}"; - static String m73(count) => + static String m79(count) => "${Intl.plural(count, zero: 'Bientôt', one: '1 jour', other: '${count} jours')}"; - static String m74(galleryType) => + static String m80(email) => + "Vous avez été invité(e) à être un(e) héritier(e) par ${email}."; + + static String m81(galleryType) => "Les galeries de type \'${galleryType}\' ne peuvent être renommées"; - static String m75(ignoreReason) => + static String m82(ignoreReason) => "L\'envoi est ignoré en raison de ${ignoreReason}"; - static String m76(count) => "Sauvegarde ${count} souvenirs..."; + static String m83(count) => "Sauvegarde ${count} souvenirs..."; - static String m77(endDate) => "Valable jusqu\'au ${endDate}"; + static String m84(endDate) => "Valable jusqu\'au ${endDate}"; - static String m78(email) => "Vérifier ${email}"; + static String m85(email) => "Vérifier ${email}"; - static String m79(count) => + static String m86(count) => "${Intl.plural(count, zero: '0 observateur ajouté', one: '1 observateur ajouté', other: '${count} observateurs ajoutés')}"; static String m2(email) => "Nous avons envoyé un e-mail à ${email}"; - static String m80(count) => + static String m87(count) => "${Intl.plural(count, one: 'il y a ${count} an', other: 'il y a ${count} ans')}"; - static String m81(storageSaved) => + static String m88(storageSaved) => "Vous avez libéré ${storageSaved} avec succès !"; final messages = _notInlinedMessages(_notInlinedMessages); @@ -255,6 +271,8 @@ class MessageLookup extends MessageLookupByLibrary { "aNewVersionOfEnteIsAvailable": MessageLookupByLibrary.simpleMessage( "Une nouvelle version de Ente est disponible."), "about": MessageLookupByLibrary.simpleMessage("À propos"), + "acceptTrustInvite": + MessageLookupByLibrary.simpleMessage("Accepter l\'invitation"), "account": MessageLookupByLibrary.simpleMessage("Compte"), "accountIsAlreadyConfigured": MessageLookupByLibrary.simpleMessage( "Le compte est déjà configuré."), @@ -299,6 +317,8 @@ class MessageLookup extends MessageLookupByLibrary { "addToEnte": MessageLookupByLibrary.simpleMessage("Ajouter à Ente"), "addToHiddenAlbum": MessageLookupByLibrary.simpleMessage("Ajouter à un album masqué"), + "addTrustedContact": MessageLookupByLibrary.simpleMessage( + "Ajouter un contact de confiance"), "addViewer": MessageLookupByLibrary.simpleMessage("Ajouter un observateur"), "addViewers": m9, @@ -412,6 +432,8 @@ class MessageLookup extends MessageLookupByLibrary { "Veuillez vous authentifier pour configurer l\'authentification à deux facteurs"), "authToInitiateAccountDeletion": MessageLookupByLibrary.simpleMessage( "Veuillez vous authentifier pour débuter la suppression du compte"), + "authToManageLegacy": MessageLookupByLibrary.simpleMessage( + "Veuillez vous authentifier pour gérer vos contacts de confiance"), "authToViewPasskey": MessageLookupByLibrary.simpleMessage( "Veuillez vous authentifier pour afficher votre clé de récupération"), "authToViewYourActiveSessions": MessageLookupByLibrary.simpleMessage( @@ -478,6 +500,10 @@ class MessageLookup extends MessageLookupByLibrary { "canOnlyRemoveFilesOwnedByYou": MessageLookupByLibrary.simpleMessage( "Vous ne pouvez supprimer que les fichiers que vous possédez"), "cancel": MessageLookupByLibrary.simpleMessage("Annuler"), + "cancelAccountRecovery": + MessageLookupByLibrary.simpleMessage("Annuler la récupération"), + "cancelAccountRecoveryBody": MessageLookupByLibrary.simpleMessage( + "Êtes-vous sûr de vouloir annuler la récupération ?"), "cancelOtherSubscription": m15, "cancelSubscription": MessageLookupByLibrary.simpleMessage("Annuler l\'abonnement"), @@ -568,7 +594,7 @@ class MessageLookup extends MessageLookupByLibrary { "collaboratorsCanAddPhotosAndVideosToTheSharedAlbum": MessageLookupByLibrary.simpleMessage( "Les collaborateurs peuvent ajouter des photos et des vidéos à l\'album partagé."), - "collaboratorsSuccessfullyAdded": m82, + "collaboratorsSuccessfullyAdded": m19, "collageLayout": MessageLookupByLibrary.simpleMessage("Disposition"), "collageSaved": MessageLookupByLibrary.simpleMessage( "Collage sauvegardé dans la galerie"), @@ -586,6 +612,7 @@ class MessageLookup extends MessageLookupByLibrary { "Voulez-vous vraiment désactiver l\'authentification à deux facteurs ?"), "confirmAccountDeletion": MessageLookupByLibrary.simpleMessage( "Confirmer la suppression du compte"), + "confirmAddingTrustedContact": m20, "confirmDeletePrompt": MessageLookupByLibrary.simpleMessage( "Oui, je veux supprimer définitivement ce compte et ses données dans toutes les applications."), "confirmPassword": @@ -598,10 +625,10 @@ class MessageLookup extends MessageLookupByLibrary { "Confirmer la clé de récupération"), "connectToDevice": MessageLookupByLibrary.simpleMessage("Connexion à l\'appareil"), - "contactFamilyAdmin": m19, + "contactFamilyAdmin": m21, "contactSupport": MessageLookupByLibrary.simpleMessage("Contacter l\'assistance"), - "contactToManageSubscription": m20, + "contactToManageSubscription": m22, "contacts": MessageLookupByLibrary.simpleMessage("Contacts"), "contents": MessageLookupByLibrary.simpleMessage("Contenus"), "continueLabel": MessageLookupByLibrary.simpleMessage("Continuer"), @@ -649,10 +676,12 @@ class MessageLookup extends MessageLookupByLibrary { "currentlyRunning": MessageLookupByLibrary.simpleMessage("en cours d\'exécution"), "custom": MessageLookupByLibrary.simpleMessage("Personnaliser"), - "customEndpoint": m21, + "customEndpoint": m23, "darkTheme": MessageLookupByLibrary.simpleMessage("Sombre"), "dayToday": MessageLookupByLibrary.simpleMessage("Aujourd\'hui"), "dayYesterday": MessageLookupByLibrary.simpleMessage("Hier"), + "declineTrustInvite": + MessageLookupByLibrary.simpleMessage("Refuser l’invitation"), "decrypting": MessageLookupByLibrary.simpleMessage("Déchiffrement en cours..."), "decryptingVideo": MessageLookupByLibrary.simpleMessage( @@ -688,12 +717,12 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Supprimer de l\'appareil"), "deleteFromEnte": MessageLookupByLibrary.simpleMessage("Supprimer de Ente"), - "deleteItemCount": m22, + "deleteItemCount": m24, "deleteLocation": MessageLookupByLibrary.simpleMessage("Supprimer la localisation"), "deletePhotos": MessageLookupByLibrary.simpleMessage("Supprimer des photos"), - "deleteProgress": m23, + "deleteProgress": m25, "deleteReason1": MessageLookupByLibrary.simpleMessage( "Il manque une fonction clé dont j\'ai besoin"), "deleteReason2": MessageLookupByLibrary.simpleMessage( @@ -734,7 +763,7 @@ class MessageLookup extends MessageLookupByLibrary { "Les observateurs peuvent toujours prendre des captures d\'écran ou enregistrer une copie de vos photos en utilisant des outils externes"), "disableDownloadWarningTitle": MessageLookupByLibrary.simpleMessage("Veuillez remarquer"), - "disableLinkMessage": m24, + "disableLinkMessage": m26, "disableTwofactor": MessageLookupByLibrary.simpleMessage( "Désactiver la double-authentification"), "disablingTwofactorAuthentication": @@ -778,9 +807,9 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Échec du téléchargement"), "downloading": MessageLookupByLibrary.simpleMessage("Téléchargement en cours..."), - "dropSupportEmail": m25, - "duplicateFileCountWithStorageSaved": m26, - "duplicateItemsGroup": m27, + "dropSupportEmail": m27, + "duplicateFileCountWithStorageSaved": m28, + "duplicateItemsGroup": m29, "edit": MessageLookupByLibrary.simpleMessage("Éditer"), "editLocation": MessageLookupByLibrary.simpleMessage("Modifier l’emplacement"), @@ -795,12 +824,14 @@ class MessageLookup extends MessageLookupByLibrary { "Les modifications de l\'emplacement ne seront visibles que dans Ente"), "eligible": MessageLookupByLibrary.simpleMessage("éligible"), "email": MessageLookupByLibrary.simpleMessage("E-mail"), - "emailChangedTo": m28, - "emailNoEnteAccount": m29, + "emailChangedTo": m30, + "emailNoEnteAccount": m31, "emailVerificationToggle": MessageLookupByLibrary.simpleMessage( "Vérification de l\'adresse e-mail"), "emailYourLogs": MessageLookupByLibrary.simpleMessage("Envoyez vos logs par e-mail"), + "emergencyContacts": + MessageLookupByLibrary.simpleMessage("Contacts d\'urgence"), "empty": MessageLookupByLibrary.simpleMessage("Vider"), "emptyTrash": MessageLookupByLibrary.simpleMessage("Vider la corbeille ?"), @@ -876,7 +907,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Exportez vos données"), "extraPhotosFound": MessageLookupByLibrary.simpleMessage( "Photos supplémentaires trouvées"), - "extraPhotosFoundFor": m30, + "extraPhotosFoundFor": m32, "faceNotClusteredYet": MessageLookupByLibrary.simpleMessage( "Ce visage n\'a pas encore été regroupé, veuillez revenir plus tard"), "faceRecognition": @@ -926,8 +957,8 @@ class MessageLookup extends MessageLookupByLibrary { "fileTypes": MessageLookupByLibrary.simpleMessage("Types de fichiers"), "fileTypesAndNames": MessageLookupByLibrary.simpleMessage("Types et noms de fichiers"), - "filesBackedUpFromDevice": m31, - "filesBackedUpInAlbum": m32, + "filesBackedUpFromDevice": m33, + "filesBackedUpInAlbum": m34, "filesDeleted": MessageLookupByLibrary.simpleMessage("Fichiers supprimés"), "filesSavedToGallery": MessageLookupByLibrary.simpleMessage( @@ -944,26 +975,26 @@ class MessageLookup extends MessageLookupByLibrary { "foundFaces": MessageLookupByLibrary.simpleMessage("Visages trouvés"), "freeStorageClaimed": MessageLookupByLibrary.simpleMessage("Stockage gratuit réclamé"), - "freeStorageOnReferralSuccess": m33, + "freeStorageOnReferralSuccess": m35, "freeStorageUsable": MessageLookupByLibrary.simpleMessage("Stockage gratuit utilisable"), "freeTrial": MessageLookupByLibrary.simpleMessage("Essai gratuit"), - "freeTrialValidTill": m34, - "freeUpAccessPostDelete": m35, - "freeUpAmount": m36, + "freeTrialValidTill": m36, + "freeUpAccessPostDelete": m37, + "freeUpAmount": m38, "freeUpDeviceSpace": MessageLookupByLibrary.simpleMessage( "Libérer de l\'espace sur l\'appareil"), "freeUpDeviceSpaceDesc": MessageLookupByLibrary.simpleMessage( "Économisez de l\'espace sur votre appareil en effaçant les fichiers qui ont déjà été sauvegardés."), "freeUpSpace": MessageLookupByLibrary.simpleMessage("Libérer de l\'espace"), - "freeUpSpaceSaving": m37, + "freeUpSpaceSaving": m39, "galleryMemoryLimitInfo": MessageLookupByLibrary.simpleMessage( "Jusqu\'à 1000 souvenirs affichés dans la galerie"), "general": MessageLookupByLibrary.simpleMessage("Général"), "generatingEncryptionKeys": MessageLookupByLibrary.simpleMessage( "Génération des clés de chiffrement..."), - "genericProgress": m38, + "genericProgress": m40, "goToSettings": MessageLookupByLibrary.simpleMessage("Allez aux réglages"), "googlePlayId": @@ -1049,7 +1080,7 @@ class MessageLookup extends MessageLookupByLibrary { "itLooksLikeSomethingWentWrongPleaseRetryAfterSome": MessageLookupByLibrary.simpleMessage( "Il semble qu\'une erreur s\'est produite. Veuillez réessayer après un certain temps. Si l\'erreur persiste, veuillez contacter notre équipe d\'assistance."), - "itemCount": m39, + "itemCount": m41, "itemsShowTheNumberOfDaysRemainingBeforePermanentDeletion": MessageLookupByLibrary.simpleMessage( "Les éléments montrent le nombre de jours restants avant la suppression définitive"), @@ -1072,6 +1103,14 @@ class MessageLookup extends MessageLookupByLibrary { "leaveSharedAlbum": MessageLookupByLibrary.simpleMessage("Quitter l\'album partagé?"), "left": MessageLookupByLibrary.simpleMessage("Gauche"), + "legacy": MessageLookupByLibrary.simpleMessage("Héritage"), + "legacyAccounts": + MessageLookupByLibrary.simpleMessage("Comptes hérités"), + "legacyInvite": m42, + "legacyPageDesc": MessageLookupByLibrary.simpleMessage( + "Héritage permet aux contacts de confiance d\'accéder à votre compte en votre absence."), + "legacyPageDesc2": MessageLookupByLibrary.simpleMessage( + "Les contacts de confiance peuvent initier la récupération du compte et, s\'ils ne sont pas bloqués dans les 30 jours qui suivent, peuvent réinitialiser votre mot de passe et accéder à votre compte."), "light": MessageLookupByLibrary.simpleMessage("Clair"), "lightTheme": MessageLookupByLibrary.simpleMessage("Clair"), "linkCopiedToClipboard": MessageLookupByLibrary.simpleMessage( @@ -1080,7 +1119,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Limite d\'appareil"), "linkEnabled": MessageLookupByLibrary.simpleMessage("Activé"), "linkExpired": MessageLookupByLibrary.simpleMessage("Expiré"), - "linkExpiresOn": m40, + "linkExpiresOn": m43, "linkExpiry": MessageLookupByLibrary.simpleMessage("Expiration du lien"), "linkHasExpired": @@ -1206,12 +1245,12 @@ class MessageLookup extends MessageLookupByLibrary { "mostRecent": MessageLookupByLibrary.simpleMessage("Les plus récents"), "mostRelevant": MessageLookupByLibrary.simpleMessage("Les plus pertinents"), - "moveItem": m41, + "moveItem": m44, "moveToAlbum": MessageLookupByLibrary.simpleMessage("Déplacer vers l\'album"), "moveToHiddenAlbum": MessageLookupByLibrary.simpleMessage( "Déplacer vers un album masqué"), - "movedSuccessfullyTo": m42, + "movedSuccessfullyTo": m45, "movedToTrash": MessageLookupByLibrary.simpleMessage("Déplacé dans la corbeille"), "movingFilesToAlbum": MessageLookupByLibrary.simpleMessage( @@ -1262,10 +1301,10 @@ class MessageLookup extends MessageLookupByLibrary { "noResults": MessageLookupByLibrary.simpleMessage("Aucun résultat"), "noResultsFound": MessageLookupByLibrary.simpleMessage("Aucun résultat trouvé"), - "noSuggestionsForPerson": m43, + "noSuggestionsForPerson": m46, "noSystemLockFound": MessageLookupByLibrary.simpleMessage("Aucun verrou système trouvé"), - "notPersonLabel": m44, + "notPersonLabel": m47, "nothingSharedWithYouYet": MessageLookupByLibrary.simpleMessage( "Rien n\'a encore été partagé avec vous"), "nothingToSeeHere": MessageLookupByLibrary.simpleMessage( @@ -1275,7 +1314,7 @@ class MessageLookup extends MessageLookupByLibrary { "onDevice": MessageLookupByLibrary.simpleMessage("Sur l\'appareil"), "onEnte": MessageLookupByLibrary.simpleMessage( "Sur ente"), - "onlyFamilyAdminCanChangeCode": m45, + "onlyFamilyAdminCanChangeCode": m48, "onlyThem": MessageLookupByLibrary.simpleMessage("Seulement eux"), "oops": MessageLookupByLibrary.simpleMessage("Oups"), "oopsCouldNotSaveEdits": MessageLookupByLibrary.simpleMessage( @@ -1326,7 +1365,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Échec du paiement"), "paymentFailedMessage": MessageLookupByLibrary.simpleMessage( "Malheureusement votre paiement a échoué. Veuillez contacter le support et nous vous aiderons !"), - "paymentFailedTalkToProvider": m46, + "paymentFailedTalkToProvider": m49, "pendingItems": MessageLookupByLibrary.simpleMessage("Éléments en attente"), "pendingSync": @@ -1351,7 +1390,7 @@ class MessageLookup extends MessageLookupByLibrary { "photosAddedByYouWillBeRemovedFromTheAlbum": MessageLookupByLibrary.simpleMessage( "Les photos ajoutées par vous seront retirées de l\'album"), - "photosCount": m47, + "photosCount": m50, "pickCenterPoint": MessageLookupByLibrary.simpleMessage( "Sélectionner le point central"), "pinAlbum": MessageLookupByLibrary.simpleMessage("Épingler l\'album"), @@ -1359,7 +1398,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Verrouillage du code PIN"), "playOnTv": MessageLookupByLibrary.simpleMessage("Lire l\'album sur la TV"), - "playStoreFreeTrialValidTill": m48, + "playStoreFreeTrialValidTill": m51, "playstoreSubscription": MessageLookupByLibrary.simpleMessage("Abonnement au PlayStore"), "pleaseCheckYourInternetConnectionAndTryAgain": @@ -1371,14 +1410,14 @@ class MessageLookup extends MessageLookupByLibrary { "pleaseContactSupportIfTheProblemPersists": MessageLookupByLibrary.simpleMessage( "Merci de contacter l\'assistance si cette erreur persiste"), - "pleaseEmailUsAt": m49, + "pleaseEmailUsAt": m52, "pleaseGrantPermissions": MessageLookupByLibrary.simpleMessage( "Veuillez accorder la permission"), "pleaseLoginAgain": MessageLookupByLibrary.simpleMessage("Veuillez vous reconnecter"), "pleaseSelectQuickLinksToRemove": MessageLookupByLibrary.simpleMessage( "Veuillez sélectionner les liens rapides à supprimer"), - "pleaseSendTheLogsTo": m50, + "pleaseSendTheLogsTo": m53, "pleaseTryAgain": MessageLookupByLibrary.simpleMessage("Veuillez réessayer"), "pleaseVerifyTheCodeYouHaveEntered": @@ -1404,7 +1443,8 @@ class MessageLookup extends MessageLookupByLibrary { "privateBackups": MessageLookupByLibrary.simpleMessage("Sauvegardes privées"), "privateSharing": MessageLookupByLibrary.simpleMessage("Partage privé"), - "processingImport": m51, + "proceed": MessageLookupByLibrary.simpleMessage("Procéder"), + "processingImport": m54, "publicLinkCreated": MessageLookupByLibrary.simpleMessage("Lien public créé"), "publicLinkEnabled": @@ -1415,11 +1455,16 @@ class MessageLookup extends MessageLookupByLibrary { "rateTheApp": MessageLookupByLibrary.simpleMessage("Évaluer l\'application"), "rateUs": MessageLookupByLibrary.simpleMessage("Évaluez-nous"), - "rateUsOnStore": m52, + "rateUsOnStore": m55, "recover": MessageLookupByLibrary.simpleMessage("Récupérer"), "recoverAccount": MessageLookupByLibrary.simpleMessage("Récupérer un compte"), "recoverButton": MessageLookupByLibrary.simpleMessage("Restaurer"), + "recoveryAccount": + MessageLookupByLibrary.simpleMessage("Récupérer un compte"), + "recoveryInitiated": + MessageLookupByLibrary.simpleMessage("Récupération initiée"), + "recoveryInitiatedDesc": m56, "recoveryKey": MessageLookupByLibrary.simpleMessage("Clé de secours"), "recoveryKeyCopiedToClipboard": MessageLookupByLibrary.simpleMessage( "Clé de secours copiée dans le presse-papiers"), @@ -1433,8 +1478,12 @@ class MessageLookup extends MessageLookupByLibrary { "Clé de récupération vérifiée"), "recoveryKeyVerifyReason": MessageLookupByLibrary.simpleMessage( "Votre clé de récupération est la seule façon de récupérer vos photos si vous oubliez votre mot de passe. Vous pouvez trouver votre clé de récupération dans Paramètres > Compte.\n\nVeuillez saisir votre clé de récupération ici pour vous assurer de l\'avoir enregistré correctement."), + "recoveryReady": m57, "recoverySuccessful": MessageLookupByLibrary.simpleMessage("Restauration réussie !"), + "recoveryWarning": MessageLookupByLibrary.simpleMessage( + "Un contact de confiance tente d\'accéder à votre compte"), + "recoveryWarningBody": m58, "recreatePasswordBody": MessageLookupByLibrary.simpleMessage( "L\'appareil actuel n\'est pas assez puissant pour vérifier votre mot de passe, mais nous pouvons le régénérer d\'une manière qui fonctionne avec tous les appareils.\n\nVeuillez vous connecter à l\'aide de votre clé de secours et régénérer votre mot de passe (vous pouvez réutiliser le même si vous le souhaitez)."), "recreatePasswordTitle": @@ -1450,10 +1499,12 @@ class MessageLookup extends MessageLookupByLibrary { "1. Donnez ce code à vos amis"), "referralStep2": MessageLookupByLibrary.simpleMessage( "2. Ils s\'inscrivent à une offre payante"), - "referralStep3": m53, + "referralStep3": m59, "referrals": MessageLookupByLibrary.simpleMessage("Parrainages"), "referralsAreCurrentlyPaused": MessageLookupByLibrary.simpleMessage( "Les recommandations sont actuellement en pause"), + "rejectRecovery": + MessageLookupByLibrary.simpleMessage("Rejeter la récupération"), "remindToEmptyDeviceTrash": MessageLookupByLibrary.simpleMessage( "Également vide \"récemment supprimé\" de \"Paramètres\" -> \"Stockage\" pour réclamer l\'espace libéré"), "remindToEmptyEnteTrash": MessageLookupByLibrary.simpleMessage( @@ -1475,10 +1526,12 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Retirer de l\'album ?"), "removeFromFavorite": MessageLookupByLibrary.simpleMessage("Retirer des favoris"), + "removeInvite": + MessageLookupByLibrary.simpleMessage("Supprimer l’Invitation"), "removeLink": MessageLookupByLibrary.simpleMessage("Supprimer le lien"), "removeParticipant": MessageLookupByLibrary.simpleMessage("Supprimer le participant"), - "removeParticipantBody": m54, + "removeParticipantBody": m60, "removePersonLabel": MessageLookupByLibrary.simpleMessage( "Supprimer le libellé d\'une personne"), "removePublicLink": @@ -1489,6 +1542,8 @@ class MessageLookup extends MessageLookupByLibrary { "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": MessageLookupByLibrary.simpleMessage("Enlever?"), + "removeYourselfAsTrustedContact": MessageLookupByLibrary.simpleMessage( + "Retirez-vous comme contact de confiance"), "removingFromFavorites": MessageLookupByLibrary.simpleMessage("Suppression des favoris…"), "rename": MessageLookupByLibrary.simpleMessage("Renommer"), @@ -1498,7 +1553,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Renommer le fichier"), "renewSubscription": MessageLookupByLibrary.simpleMessage("Renouveler l’abonnement"), - "renewsOn": m55, + "renewsOn": m61, "reportABug": MessageLookupByLibrary.simpleMessage("Signaler un bug"), "reportBug": MessageLookupByLibrary.simpleMessage("Signaler un bug"), "resendEmail": @@ -1580,8 +1635,8 @@ class MessageLookup extends MessageLookupByLibrary { "Invitez des personnes, et vous verrez ici toutes les photos qu\'elles partagent"), "searchPersonsEmptySection": MessageLookupByLibrary.simpleMessage( "Les personnes seront affichées ici une fois le traitement terminé"), - "searchResultCount": m56, - "searchSectionsLengthMismatch": m57, + "searchResultCount": m62, + "searchSectionsLengthMismatch": m63, "security": MessageLookupByLibrary.simpleMessage("Sécurité"), "seePublicAlbumLinksInApp": MessageLookupByLibrary.simpleMessage( "Ouvrir les liens des albums publics dans l\'application"), @@ -1618,7 +1673,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage( "Les éléments sélectionnés seront supprimés de tous les albums et déplacés dans la corbeille."), "selectedPhotos": m4, - "selectedPhotosWithYours": m58, + "selectedPhotosWithYours": m64, "send": MessageLookupByLibrary.simpleMessage("Envoyer"), "sendEmail": MessageLookupByLibrary.simpleMessage("Envoyer un e-mail"), "sendInvite": @@ -1652,16 +1707,16 @@ class MessageLookup extends MessageLookupByLibrary { "shareAnAlbumNow": MessageLookupByLibrary.simpleMessage( "Partagez un album maintenant"), "shareLink": MessageLookupByLibrary.simpleMessage("Partager le lien"), - "shareMyVerificationID": m59, + "shareMyVerificationID": m65, "shareOnlyWithThePeopleYouWant": MessageLookupByLibrary.simpleMessage( "Partager uniquement avec les personnes que vous voulez"), "shareTextConfirmOthersVerificationID": m5, "shareTextRecommendUsingEnte": MessageLookupByLibrary.simpleMessage( "Téléchargez Ente pour que nous puissions facilement partager des photos et des vidéos de qualité originale\n\nhttps://ente.io"), - "shareTextReferralCode": m60, + "shareTextReferralCode": m66, "shareWithNonenteUsers": MessageLookupByLibrary.simpleMessage( "Partager avec des utilisateurs non-Ente"), - "shareWithPeopleSectionTitle": m61, + "shareWithPeopleSectionTitle": m67, "shareYourFirstAlbum": MessageLookupByLibrary.simpleMessage( "Partagez votre premier album"), "sharedAlbumSectionDescription": MessageLookupByLibrary.simpleMessage( @@ -1672,7 +1727,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Nouvelles photos partagées"), "sharedPhotoNotificationsExplanation": MessageLookupByLibrary.simpleMessage( "Recevoir des notifications quand quelqu\'un ajoute une photo à un album partagé dont vous faites partie"), - "sharedWith": m62, + "sharedWith": m68, "sharedWithMe": MessageLookupByLibrary.simpleMessage("Partagés avec moi"), "sharedWithYou": @@ -1690,11 +1745,11 @@ class MessageLookup extends MessageLookupByLibrary { "Déconnecter les autres appareils"), "signUpTerms": MessageLookupByLibrary.simpleMessage( "J\'accepte les conditions d\'utilisation et la politique de confidentialité"), - "singleFileDeleteFromDevice": m63, + "singleFileDeleteFromDevice": m69, "singleFileDeleteHighlight": MessageLookupByLibrary.simpleMessage( "Elle sera supprimée de tous les albums."), - "singleFileInBothLocalAndRemote": m64, - "singleFileInRemoteOnly": m65, + "singleFileInBothLocalAndRemote": m70, + "singleFileInRemoteOnly": m71, "skip": MessageLookupByLibrary.simpleMessage("Ignorer"), "social": MessageLookupByLibrary.simpleMessage("Réseaux Sociaux"), "someItemsAreInBothEnteAndYourDevice": @@ -1730,6 +1785,8 @@ class MessageLookup extends MessageLookupByLibrary { "sortOldestFirst": MessageLookupByLibrary.simpleMessage("Plus ancien en premier"), "sparkleSuccess": MessageLookupByLibrary.simpleMessage("✨ Succès"), + "startAccountRecoveryTitle": + MessageLookupByLibrary.simpleMessage("Démarrer la récupération"), "startBackup": MessageLookupByLibrary.simpleMessage("Démarrer la sauvegarde"), "status": MessageLookupByLibrary.simpleMessage("État"), @@ -1743,10 +1800,10 @@ class MessageLookup extends MessageLookupByLibrary { "storageInGB": m1, "storageLimitExceeded": MessageLookupByLibrary.simpleMessage("Limite de stockage atteinte"), - "storageUsageInfo": m66, + "storageUsageInfo": m72, "strongStrength": MessageLookupByLibrary.simpleMessage("Forte"), - "subAlreadyLinkedErrMessage": m67, - "subWillBeCancelledOn": m68, + "subAlreadyLinkedErrMessage": m73, + "subWillBeCancelledOn": m74, "subscribe": MessageLookupByLibrary.simpleMessage("S\'abonner"), "subscribeToEnableSharing": MessageLookupByLibrary.simpleMessage( "Vous avez besoin d\'un abonnement payant actif pour activer le partage."), @@ -1763,7 +1820,7 @@ class MessageLookup extends MessageLookupByLibrary { "suggestFeatures": MessageLookupByLibrary.simpleMessage( "Suggérer des fonctionnalités"), "support": MessageLookupByLibrary.simpleMessage("Support"), - "syncProgress": m69, + "syncProgress": m75, "syncStopped": MessageLookupByLibrary.simpleMessage("Synchronisation arrêtée ?"), "syncing": MessageLookupByLibrary.simpleMessage( @@ -1776,7 +1833,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Appuyer pour déverrouiller"), "tapToUpload": MessageLookupByLibrary.simpleMessage("Appuyer pour envoyer"), - "tapToUploadIsIgnoredDue": m70, + "tapToUploadIsIgnoredDue": m76, "tempErrorContactSupportIfPersists": MessageLookupByLibrary.simpleMessage( "Il semble qu\'une erreur s\'est produite. Veuillez réessayer après un certain temps. Si l\'erreur persiste, veuillez contacter notre équipe d\'assistance."), "terminate": MessageLookupByLibrary.simpleMessage("Se déconnecter"), @@ -1800,7 +1857,7 @@ class MessageLookup extends MessageLookupByLibrary { "theseItemsWillBeDeletedFromYourDevice": MessageLookupByLibrary.simpleMessage( "Ces éléments seront supprimés de votre appareil."), - "theyAlsoGetXGb": m71, + "theyAlsoGetXGb": m77, "theyWillBeDeletedFromAllAlbums": MessageLookupByLibrary.simpleMessage( "Ils seront supprimés de tous les albums."), "thisActionCannotBeUndone": MessageLookupByLibrary.simpleMessage( @@ -1816,7 +1873,7 @@ class MessageLookup extends MessageLookupByLibrary { "Cette adresse mail est déjà utilisé"), "thisImageHasNoExifData": MessageLookupByLibrary.simpleMessage( "Cette image n\'a pas de données exif"), - "thisIsPersonVerificationId": m72, + "thisIsPersonVerificationId": m78, "thisIsYourVerificationId": MessageLookupByLibrary.simpleMessage( "Ceci est votre ID de vérification"), "thisWillLogYouOutOfTheFollowingDevice": @@ -1840,8 +1897,11 @@ class MessageLookup extends MessageLookupByLibrary { "total": MessageLookupByLibrary.simpleMessage("total"), "totalSize": MessageLookupByLibrary.simpleMessage("Taille totale"), "trash": MessageLookupByLibrary.simpleMessage("Corbeille"), - "trashDaysLeft": m73, + "trashDaysLeft": m79, "trim": MessageLookupByLibrary.simpleMessage("Recadrer"), + "trustedContacts": + MessageLookupByLibrary.simpleMessage("Contacts de confiance"), + "trustedInviteBody": m80, "tryAgain": MessageLookupByLibrary.simpleMessage("Réessayer"), "turnOnBackupForAutoUpload": MessageLookupByLibrary.simpleMessage( "Activez la sauvegarde pour charger automatiquement sur Ente les fichiers ajoutés à ce dossier de l\'appareil."), @@ -1861,7 +1921,7 @@ class MessageLookup extends MessageLookupByLibrary { "L\'authentification à deux facteurs a été réinitialisée avec succès "), "twofactorSetup": MessageLookupByLibrary.simpleMessage( "Configuration de l\'authentification à deux facteurs"), - "typeOfGallerGallerytypeIsNotSupportedForRename": m74, + "typeOfGallerGallerytypeIsNotSupportedForRename": m81, "unarchive": MessageLookupByLibrary.simpleMessage("Désarchiver"), "unarchiveAlbum": MessageLookupByLibrary.simpleMessage("Désarchiver l\'album"), @@ -1889,10 +1949,10 @@ class MessageLookup extends MessageLookupByLibrary { "updatingFolderSelection": MessageLookupByLibrary.simpleMessage( "Mise à jour de la sélection du dossier..."), "upgrade": MessageLookupByLibrary.simpleMessage("Améliorer"), - "uploadIsIgnoredDueToIgnorereason": m75, + "uploadIsIgnoredDueToIgnorereason": m82, "uploadingFilesToAlbum": MessageLookupByLibrary.simpleMessage( "Envoi des fichiers vers l\'album..."), - "uploadingMultipleMemories": m76, + "uploadingMultipleMemories": m83, "uploadingSingleMemory": MessageLookupByLibrary.simpleMessage("Sauvegarde 1 souvenir..."), "upto50OffUntil4thDec": MessageLookupByLibrary.simpleMessage( @@ -1908,7 +1968,7 @@ class MessageLookup extends MessageLookupByLibrary { "useSelectedPhoto": MessageLookupByLibrary.simpleMessage( "Utiliser la photo sélectionnée"), "usedSpace": MessageLookupByLibrary.simpleMessage("Stockage utilisé"), - "validTill": m77, + "validTill": m84, "verificationFailedPleaseTryAgain": MessageLookupByLibrary.simpleMessage( "La vérification a échouée, veuillez réessayer"), @@ -1917,7 +1977,7 @@ class MessageLookup extends MessageLookupByLibrary { "verify": MessageLookupByLibrary.simpleMessage("Vérifier"), "verifyEmail": MessageLookupByLibrary.simpleMessage("Vérifier l\'email"), - "verifyEmailID": m78, + "verifyEmailID": m85, "verifyIDLabel": MessageLookupByLibrary.simpleMessage("Vérifier"), "verifyPasskey": MessageLookupByLibrary.simpleMessage("Vérifier le code d\'accès"), @@ -1946,13 +2006,14 @@ class MessageLookup extends MessageLookupByLibrary { "viewRecoveryKey": MessageLookupByLibrary.simpleMessage("Voir la clé de récupération"), "viewer": MessageLookupByLibrary.simpleMessage("Observateur"), - "viewersSuccessfullyAdded": m79, + "viewersSuccessfullyAdded": m86, "visitWebToManage": MessageLookupByLibrary.simpleMessage( "Veuillez visiter web.ente.io pour gérer votre abonnement"), "waitingForVerification": MessageLookupByLibrary.simpleMessage( "En attente de vérification..."), "waitingForWifi": MessageLookupByLibrary.simpleMessage( "En attente de connexion Wi-Fi..."), + "warning": MessageLookupByLibrary.simpleMessage("Attention"), "weAreOpenSource": MessageLookupByLibrary.simpleMessage("Nous sommes open source !"), "weDontSupportEditingPhotosAndAlbumsThatYouDont": @@ -1962,9 +2023,11 @@ class MessageLookup extends MessageLookupByLibrary { "weakStrength": MessageLookupByLibrary.simpleMessage("Securité Faible"), "welcomeBack": MessageLookupByLibrary.simpleMessage("Bienvenue !"), "whatsNew": MessageLookupByLibrary.simpleMessage("Nouveautés"), + "whyAddTrustContact": MessageLookupByLibrary.simpleMessage( + "Un contact de confiance peut vous aider à récupérer vos données."), "yearShort": MessageLookupByLibrary.simpleMessage("an"), "yearly": MessageLookupByLibrary.simpleMessage("Annuel"), - "yearsAgo": m80, + "yearsAgo": m87, "yes": MessageLookupByLibrary.simpleMessage("Oui"), "yesCancel": MessageLookupByLibrary.simpleMessage("Oui, annuler"), "yesConvertToViewer": MessageLookupByLibrary.simpleMessage( @@ -1997,7 +2060,7 @@ class MessageLookup extends MessageLookupByLibrary { "Vous ne pouvez pas partager avec vous-même"), "youDontHaveAnyArchivedItems": MessageLookupByLibrary.simpleMessage( "Vous n\'avez aucun élément archivé."), - "youHaveSuccessfullyFreedUp": m81, + "youHaveSuccessfullyFreedUp": m88, "yourAccountHasBeenDeleted": MessageLookupByLibrary.simpleMessage("Votre compte a été supprimé"), "yourMap": MessageLookupByLibrary.simpleMessage("Votre carte"), diff --git a/mobile/lib/generated/intl/messages_he.dart b/mobile/lib/generated/intl/messages_he.dart index 6ca198645d3..d7156458e4f 100644 --- a/mobile/lib/generated/intl/messages_he.dart +++ b/mobile/lib/generated/intl/messages_he.dart @@ -39,94 +39,94 @@ class MessageLookup extends MessageLookupByLibrary { 'other': 'קיבלת ${storageAmountInGb} GB עד כה!', })}"; - static String m19(familyAdminEmail) => + static String m21(familyAdminEmail) => "אנא צור קשר עם ${familyAdminEmail} על מנת לנהל את המנוי שלך"; - static String m20(provider) => + static String m22(provider) => "אנא צור איתנו קשר ב-support@ente.io על מנת לנהל את המנוי ${provider}."; - static String m22(count) => + static String m24(count) => "${Intl.plural(count, one: 'מחק ${count} פריט', two: 'מחק ${count} פריטים', other: 'מחק ${count} פריטים')}"; - static String m23(currentlyDeleting, totalCount) => + static String m25(currentlyDeleting, totalCount) => "מוחק ${currentlyDeleting} / ${totalCount}"; - static String m24(albumName) => + static String m26(albumName) => "זה יסיר את הלינק הפומבי שדרכו ניתן לגשת ל\"${albumName}\"."; - static String m25(supportEmail) => + static String m27(supportEmail) => "אנא תשלח דוא\"ל ל${supportEmail} מהכתובת דוא\"ל שנרשמת איתה"; - static String m27(count, formattedSize) => + static String m29(count, formattedSize) => "${count} קבצים, כל אחד ${formattedSize}"; - static String m29(email) => + static String m31(email) => "לא נמצא חשבון ente ל-${email}.\n\nשלח להם הזמנה על מנת לשתף תמונות."; - static String m33(storageAmountInGB) => + static String m35(storageAmountInGB) => "${storageAmountInGB} GB כל פעם שמישהו נרשם עבור תוכנית בתשלום ומחיל את הקוד שלך"; - static String m34(endDate) => "ניסיון חינם בתוקף עד ל-${endDate}"; + static String m36(endDate) => "ניסיון חינם בתוקף עד ל-${endDate}"; - static String m39(count) => + static String m41(count) => "${Intl.plural(count, one: '${count} פריט', two: '${count} פריטים', many: '${count} פריטים', other: '${count} פריטים')}"; - static String m40(expiryTime) => "תוקף הקישור יפוג ב-${expiryTime}"; + static String m43(expiryTime) => "תוקף הקישור יפוג ב-${expiryTime}"; static String m3(count, formattedCount) => "${Intl.plural(count, one: '${formattedCount} זכרון', two: '${formattedCount} זכרונות', many: '${formattedCount} זכרונות', other: '${formattedCount} זכרונות')}"; - static String m41(count) => + static String m44(count) => "${Intl.plural(count, one: 'הזז פריט', two: 'הזז פריטים', many: 'הזז פריטים', other: 'הזז פריטים')}"; static String m0(passwordStrengthValue) => "חוזק הסיסמא: ${passwordStrengthValue}"; - static String m46(providerName) => + static String m49(providerName) => "אנא דבר עם התמיכה של ${providerName} אם אתה חוייבת"; - static String m52(storeName) => "דרג אותנו ב-${storeName}"; + static String m55(storeName) => "דרג אותנו ב-${storeName}"; - static String m53(storageInGB) => "3. שניכים מקבלים ${storageInGB} GB* בחינם"; + static String m59(storageInGB) => "3. שניכים מקבלים ${storageInGB} GB* בחינם"; - static String m54(userEmail) => + static String m60(userEmail) => "${userEmail} יוסר מהאלבום המשותף הזה\n\nגם תמונות שנוספו על ידיהם יוסרו מהאלבום"; static String m4(count) => "${count} נבחרו"; - static String m58(count, yourCount) => "${count} נבחרו (${yourCount} שלך)"; + static String m64(count, yourCount) => "${count} נבחרו (${yourCount} שלך)"; - static String m59(verificationID) => + static String m65(verificationID) => "הנה מזהה האימות שלי: ${verificationID} עבור ente.io."; static String m5(verificationID) => "היי, תוכל לוודא שזה מזהה האימות שלך של ente.io: ${verificationID}"; - static String m61(numberOfPeople) => + static String m67(numberOfPeople) => "${Intl.plural(numberOfPeople, zero: 'שתף עם אנשים ספציפיים', one: 'שותף עם איש 1', two: 'שותף עם 2 אנשים', other: 'שותף עם ${numberOfPeople} אנשים')}"; - static String m62(emailIDs) => "הושתף ע\"י ${emailIDs}"; + static String m68(emailIDs) => "הושתף ע\"י ${emailIDs}"; - static String m63(fileType) => "${fileType} יימחק מהמכשיר שלך."; + static String m69(fileType) => "${fileType} יימחק מהמכשיר שלך."; static String m1(storageAmountInGB) => "${storageAmountInGB} GB"; - static String m68(endDate) => "המנוי שלך יבוטל ב-${endDate}"; + static String m74(endDate) => "המנוי שלך יבוטל ב-${endDate}"; - static String m69(completed, total) => "${completed}/${total} זכרונות נשמרו"; + static String m75(completed, total) => "${completed}/${total} זכרונות נשמרו"; - static String m71(storageAmountInGB) => "הם גם יקבלו ${storageAmountInGB} GB"; + static String m77(storageAmountInGB) => "הם גם יקבלו ${storageAmountInGB} GB"; - static String m72(email) => "זה מזהה האימות של ${email}"; + static String m78(email) => "זה מזהה האימות של ${email}"; - static String m78(email) => "אמת ${email}"; + static String m85(email) => "אמת ${email}"; static String m2(email) => "שלחנו דוא\"ל ל${email}"; - static String m80(count) => + static String m87(count) => "${Intl.plural(count, one: 'לפני ${count} שנה', two: 'לפני ${count} שנים', many: 'לפני ${count} שנים', other: 'לפני ${count} שנים')}"; - static String m81(storageSaved) => "הצלחת לפנות ${storageSaved}!"; + static String m88(storageSaved) => "הצלחת לפנות ${storageSaved}!"; final messages = _notInlinedMessages(_notInlinedMessages); static Map _notInlinedMessages(_) => { @@ -302,10 +302,10 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("אמת את מפתח השחזור"), "confirmYourRecoveryKey": MessageLookupByLibrary.simpleMessage("אמת את מפתח השחזור"), - "contactFamilyAdmin": m19, + "contactFamilyAdmin": m21, "contactSupport": MessageLookupByLibrary.simpleMessage("צור קשר עם התמיכה"), - "contactToManageSubscription": m20, + "contactToManageSubscription": m22, "continueLabel": MessageLookupByLibrary.simpleMessage("המשך"), "continueOnFreeTrial": MessageLookupByLibrary.simpleMessage("המשך עם ניסיון חינמי"), @@ -363,9 +363,9 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("למחוק אלבומים ריקים?"), "deleteFromBoth": MessageLookupByLibrary.simpleMessage("מחק משניהם"), "deleteFromDevice": MessageLookupByLibrary.simpleMessage("מחק מהמכשיר"), - "deleteItemCount": m22, + "deleteItemCount": m24, "deletePhotos": MessageLookupByLibrary.simpleMessage("מחק תמונות"), - "deleteProgress": m23, + "deleteProgress": m25, "deleteReason1": MessageLookupByLibrary.simpleMessage("חסר מאפיין מרכזי שאני צריך"), "deleteReason2": MessageLookupByLibrary.simpleMessage( @@ -390,7 +390,7 @@ class MessageLookup extends MessageLookupByLibrary { "צופים יכולים עדיין לקחת צילומי מסך או לשמור עותק של התמונות שלך בעזרת כלים חיצוניים"), "disableDownloadWarningTitle": MessageLookupByLibrary.simpleMessage("שים לב"), - "disableLinkMessage": m24, + "disableLinkMessage": m26, "disableTwofactor": MessageLookupByLibrary.simpleMessage("השבת דו-גורמי"), "discord": MessageLookupByLibrary.simpleMessage("Discord"), @@ -401,12 +401,12 @@ class MessageLookup extends MessageLookupByLibrary { "download": MessageLookupByLibrary.simpleMessage("הורד"), "downloadFailed": MessageLookupByLibrary.simpleMessage("ההורדה נכשלה"), "downloading": MessageLookupByLibrary.simpleMessage("מוריד..."), - "dropSupportEmail": m25, - "duplicateItemsGroup": m27, + "dropSupportEmail": m27, + "duplicateItemsGroup": m29, "edit": MessageLookupByLibrary.simpleMessage("ערוך"), "eligible": MessageLookupByLibrary.simpleMessage("זכאי"), "email": MessageLookupByLibrary.simpleMessage("דוא\"ל"), - "emailNoEnteAccount": m29, + "emailNoEnteAccount": m31, "emailVerificationToggle": MessageLookupByLibrary.simpleMessage("אימות מייל"), "empty": MessageLookupByLibrary.simpleMessage("ריק"), @@ -475,11 +475,11 @@ class MessageLookup extends MessageLookupByLibrary { "forgotPassword": MessageLookupByLibrary.simpleMessage("שכחתי סיסמה"), "freeStorageClaimed": MessageLookupByLibrary.simpleMessage("מקום אחסון בחינם נתבע"), - "freeStorageOnReferralSuccess": m33, + "freeStorageOnReferralSuccess": m35, "freeStorageUsable": MessageLookupByLibrary.simpleMessage("מקום אחסון שמיש"), "freeTrial": MessageLookupByLibrary.simpleMessage("ניסיון חינמי"), - "freeTrialValidTill": m34, + "freeTrialValidTill": m36, "freeUpDeviceSpace": MessageLookupByLibrary.simpleMessage("פנה אחסון במכשיר"), "freeUpSpace": MessageLookupByLibrary.simpleMessage("פנה מקום"), @@ -517,7 +517,7 @@ class MessageLookup extends MessageLookupByLibrary { "invite": MessageLookupByLibrary.simpleMessage("הזמן"), "inviteYourFriends": MessageLookupByLibrary.simpleMessage("הזמן את חברייך"), - "itemCount": m39, + "itemCount": m41, "itemsWillBeRemovedFromAlbum": MessageLookupByLibrary.simpleMessage( "הפריטים שנבחרו יוסרו מהאלבום הזה"), "keepPhotos": MessageLookupByLibrary.simpleMessage("השאר תמונות"), @@ -539,7 +539,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("מגבלת כמות מכשירים"), "linkEnabled": MessageLookupByLibrary.simpleMessage("מאופשר"), "linkExpired": MessageLookupByLibrary.simpleMessage("פג תוקף"), - "linkExpiresOn": m40, + "linkExpiresOn": m43, "linkExpiry": MessageLookupByLibrary.simpleMessage("תאריך תפוגה ללינק"), "linkHasExpired": MessageLookupByLibrary.simpleMessage("הקישור פג תוקף"), @@ -571,7 +571,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("פלאפון, דפדפן, שולחן עבודה"), "moderateStrength": MessageLookupByLibrary.simpleMessage("מתונה"), "monthly": MessageLookupByLibrary.simpleMessage("חודשי"), - "moveItem": m41, + "moveItem": m44, "moveToAlbum": MessageLookupByLibrary.simpleMessage("הזז לאלבום"), "movedToTrash": MessageLookupByLibrary.simpleMessage("הועבר לאשפה"), "movingFilesToAlbum": @@ -615,7 +615,7 @@ class MessageLookup extends MessageLookupByLibrary { "אנחנו לא שומרים את הסיסמא הזו, לכן אם אתה שוכח אותה, אנחנו לא יכולים לפענח את המידע שלך"), "paymentDetails": MessageLookupByLibrary.simpleMessage("פרטי תשלום"), "paymentFailed": MessageLookupByLibrary.simpleMessage("התשלום נכשל"), - "paymentFailedTalkToProvider": m46, + "paymentFailedTalkToProvider": m49, "peopleUsingYourCode": MessageLookupByLibrary.simpleMessage("אנשים משתמשים בקוד שלך"), "permanentlyDelete": @@ -657,7 +657,7 @@ class MessageLookup extends MessageLookupByLibrary { "raiseTicket": MessageLookupByLibrary.simpleMessage("צור ticket"), "rateTheApp": MessageLookupByLibrary.simpleMessage("דרג את האפליקציה"), "rateUs": MessageLookupByLibrary.simpleMessage("דרג אותנו"), - "rateUsOnStore": m52, + "rateUsOnStore": m55, "recover": MessageLookupByLibrary.simpleMessage("שחזר"), "recoverAccount": MessageLookupByLibrary.simpleMessage("שחזר חשבון"), "recoverButton": MessageLookupByLibrary.simpleMessage("שחזר"), @@ -683,7 +683,7 @@ class MessageLookup extends MessageLookupByLibrary { "1. תמסור את הקוד הזה לחברייך"), "referralStep2": MessageLookupByLibrary.simpleMessage( "2. הם נרשמים עבור תוכנית בתשלום"), - "referralStep3": m53, + "referralStep3": m59, "referrals": MessageLookupByLibrary.simpleMessage("הפניות"), "referralsAreCurrentlyPaused": MessageLookupByLibrary.simpleMessage("הפניות כרגע מושהות"), @@ -699,7 +699,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("הסר מהאלבום?"), "removeLink": MessageLookupByLibrary.simpleMessage("הסרת קישור"), "removeParticipant": MessageLookupByLibrary.simpleMessage("הסר משתתף"), - "removeParticipantBody": m54, + "removeParticipantBody": m60, "removePublicLink": MessageLookupByLibrary.simpleMessage("הסר לינק ציבורי"), "removeShareItemsWarning": MessageLookupByLibrary.simpleMessage( @@ -751,7 +751,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage( "התיקיות שנבחרו יוצפנו ויגובו"), "selectedPhotos": m4, - "selectedPhotosWithYours": m58, + "selectedPhotosWithYours": m64, "send": MessageLookupByLibrary.simpleMessage("שלח"), "sendEmail": MessageLookupByLibrary.simpleMessage("שלח דוא\"ל"), "sendInvite": MessageLookupByLibrary.simpleMessage("שלח הזמנה"), @@ -770,7 +770,7 @@ class MessageLookup extends MessageLookupByLibrary { "shareAnAlbumNow": MessageLookupByLibrary.simpleMessage("שתף אלבום עכשיו"), "shareLink": MessageLookupByLibrary.simpleMessage("שתף קישור"), - "shareMyVerificationID": m59, + "shareMyVerificationID": m65, "shareOnlyWithThePeopleYouWant": MessageLookupByLibrary.simpleMessage("שתף רק אם אנשים שאתה בוחר"), "shareTextConfirmOthersVerificationID": m5, @@ -778,7 +778,7 @@ class MessageLookup extends MessageLookupByLibrary { "הורד את ente על מנת שנוכל לשתף תמונות וסרטונים באיכות המקור באופן קל\n\nhttps://ente.io"), "shareWithNonenteUsers": MessageLookupByLibrary.simpleMessage( "שתף עם משתמשים שהם לא של ente"), - "shareWithPeopleSectionTitle": m61, + "shareWithPeopleSectionTitle": m67, "shareYourFirstAlbum": MessageLookupByLibrary.simpleMessage("שתף את האלבום הראשון שלך"), "sharedAlbumSectionDescription": MessageLookupByLibrary.simpleMessage( @@ -789,13 +789,13 @@ class MessageLookup extends MessageLookupByLibrary { "sharedPhotoNotificationsExplanation": MessageLookupByLibrary.simpleMessage( "קבל התראות כשמישהו מוסיף תמונה לאלבום משותף שאתה חלק ממנו"), - "sharedWith": m62, + "sharedWith": m68, "sharedWithMe": MessageLookupByLibrary.simpleMessage("שותף איתי"), "sharing": MessageLookupByLibrary.simpleMessage("משתף..."), "showMemories": MessageLookupByLibrary.simpleMessage("הצג זכרונות"), "signUpTerms": MessageLookupByLibrary.simpleMessage( "אני מסכים לתנאי שירות ולמדיניות הפרטיות"), - "singleFileDeleteFromDevice": m63, + "singleFileDeleteFromDevice": m69, "singleFileDeleteHighlight": MessageLookupByLibrary.simpleMessage("זה יימחק מכל האלבומים."), "skip": MessageLookupByLibrary.simpleMessage("דלג"), @@ -828,14 +828,14 @@ class MessageLookup extends MessageLookupByLibrary { "storageLimitExceeded": MessageLookupByLibrary.simpleMessage("גבול מקום האחסון נחרג"), "strongStrength": MessageLookupByLibrary.simpleMessage("חזקה"), - "subWillBeCancelledOn": m68, + "subWillBeCancelledOn": m74, "subscribe": MessageLookupByLibrary.simpleMessage("הרשם"), "subscription": MessageLookupByLibrary.simpleMessage("מנוי"), "success": MessageLookupByLibrary.simpleMessage("הצלחה"), "suggestFeatures": MessageLookupByLibrary.simpleMessage("הציעו מאפיינים"), "support": MessageLookupByLibrary.simpleMessage("תמיכה"), - "syncProgress": m69, + "syncProgress": m75, "syncing": MessageLookupByLibrary.simpleMessage("מסנכרן..."), "systemTheme": MessageLookupByLibrary.simpleMessage("מערכת"), "tapToCopy": MessageLookupByLibrary.simpleMessage("הקש כדי להעתיק"), @@ -851,12 +851,12 @@ class MessageLookup extends MessageLookupByLibrary { "theDownloadCouldNotBeCompleted": MessageLookupByLibrary.simpleMessage("לא ניתן להשלים את ההורדה"), "theme": MessageLookupByLibrary.simpleMessage("ערכת נושא"), - "theyAlsoGetXGb": m71, + "theyAlsoGetXGb": m77, "thisCanBeUsedToRecoverYourAccountIfYou": MessageLookupByLibrary.simpleMessage( "זה יכול לשמש לשחזור החשבון שלך במקרה ותאבד את הגורם השני"), "thisDevice": MessageLookupByLibrary.simpleMessage("מכשיר זה"), - "thisIsPersonVerificationId": m72, + "thisIsPersonVerificationId": m78, "thisIsYourVerificationId": MessageLookupByLibrary.simpleMessage("זה מזהה האימות שלך"), "thisWillLogYouOutOfTheFollowingDevice": @@ -900,7 +900,7 @@ class MessageLookup extends MessageLookupByLibrary { "verificationId": MessageLookupByLibrary.simpleMessage("מזהה אימות"), "verify": MessageLookupByLibrary.simpleMessage("אמת"), "verifyEmail": MessageLookupByLibrary.simpleMessage("אימות דוא\"ל"), - "verifyEmailID": m78, + "verifyEmailID": m85, "verifyIDLabel": MessageLookupByLibrary.simpleMessage("אמת"), "verifyPassword": MessageLookupByLibrary.simpleMessage("אמת סיסמא"), "verifyingRecoveryKey": @@ -921,7 +921,7 @@ class MessageLookup extends MessageLookupByLibrary { "weakStrength": MessageLookupByLibrary.simpleMessage("חלשה"), "welcomeBack": MessageLookupByLibrary.simpleMessage("ברוך שובך!"), "yearly": MessageLookupByLibrary.simpleMessage("שנתי"), - "yearsAgo": m80, + "yearsAgo": m87, "yes": MessageLookupByLibrary.simpleMessage("כן"), "yesCancel": MessageLookupByLibrary.simpleMessage("כן, בטל"), "yesConvertToViewer": @@ -944,7 +944,7 @@ class MessageLookup extends MessageLookupByLibrary { "אתה לא יכול לשנמך לתוכנית הזו"), "youCannotShareWithYourself": MessageLookupByLibrary.simpleMessage("אתה לא יכול לשתף עם עצמך"), - "youHaveSuccessfullyFreedUp": m81, + "youHaveSuccessfullyFreedUp": m88, "yourAccountHasBeenDeleted": MessageLookupByLibrary.simpleMessage("החשבון שלך נמחק"), "yourPlanWasSuccessfullyDowngraded": diff --git a/mobile/lib/generated/intl/messages_id.dart b/mobile/lib/generated/intl/messages_id.dart index 565044ef231..485d9470d84 100644 --- a/mobile/lib/generated/intl/messages_id.dart +++ b/mobile/lib/generated/intl/messages_id.dart @@ -56,151 +56,151 @@ class MessageLookup extends MessageLookupByLibrary { static String m18(albumName) => "Link kolaborasi terbuat untuk ${albumName}"; - static String m19(familyAdminEmail) => + static String m21(familyAdminEmail) => "Silakan hubungi ${familyAdminEmail} untuk mengatur langgananmu"; - static String m20(provider) => + static String m22(provider) => "Silakan hubungi kami di support@ente.io untuk mengatur langganan ${provider} kamu."; - static String m21(endpoint) => "Terhubung ke ${endpoint}"; + static String m23(endpoint) => "Terhubung ke ${endpoint}"; - static String m22(count) => + static String m24(count) => "${Intl.plural(count, one: 'Hapus ${count} item', other: 'Hapus ${count} item')}"; - static String m23(currentlyDeleting, totalCount) => + static String m25(currentlyDeleting, totalCount) => "Menghapus ${currentlyDeleting} / ${totalCount}"; - static String m24(albumName) => + static String m26(albumName) => "Ini akan menghapus link publik yang digunakan untuk mengakses \"${albumName}\"."; - static String m25(supportEmail) => + static String m27(supportEmail) => "Silakan kirimkan email ke ${supportEmail} dari alamat email terdaftar kamu"; - static String m26(count, storageSaved) => + static String m28(count, storageSaved) => "Kamu telah menghapus ${Intl.plural(count, other: '${count} file duplikat')} dan membersihkan (${storageSaved}!)"; - static String m28(newEmail) => "Email diubah menjadi ${newEmail}"; + static String m30(newEmail) => "Email diubah menjadi ${newEmail}"; - static String m29(email) => + static String m31(email) => "${email} tidak punya akun Ente.\n\nUndang dia untuk berbagi foto."; - static String m31(count, formattedNumber) => + static String m33(count, formattedNumber) => "${Intl.plural(count, other: '${formattedNumber} file')} di perangkat ini telah berhasil dicadangkan"; - static String m32(count, formattedNumber) => + static String m34(count, formattedNumber) => "${Intl.plural(count, other: '${formattedNumber} file')} dalam album ini telah berhasil dicadangkan"; - static String m33(storageAmountInGB) => + static String m35(storageAmountInGB) => "${storageAmountInGB} GB setiap kali orang mendaftar dengan paket berbayar lalu menerapkan kode milikmu"; - static String m34(endDate) => "Percobaan gratis berlaku hingga ${endDate}"; + static String m36(endDate) => "Percobaan gratis berlaku hingga ${endDate}"; - static String m35(count) => + static String m37(count) => "Kamu masih bisa mengakses ${Intl.plural(count, other: 'filenya')} di Ente selama kamu masih berlangganan"; - static String m36(sizeInMBorGB) => "Bersihkan ${sizeInMBorGB}"; + static String m38(sizeInMBorGB) => "Bersihkan ${sizeInMBorGB}"; - static String m37(count, formattedSize) => + static String m39(count, formattedSize) => "${Intl.plural(count, other: 'File tersebut bisa dihapus dari perangkat ini untuk membersihkan ${formattedSize}')}"; - static String m38(currentlyProcessing, totalCount) => + static String m40(currentlyProcessing, totalCount) => "Memproses ${currentlyProcessing} / ${totalCount}"; - static String m39(count) => "${Intl.plural(count, other: '${count} item')}"; + static String m41(count) => "${Intl.plural(count, other: '${count} item')}"; - static String m40(expiryTime) => "Link akan kedaluwarsa pada ${expiryTime}"; + static String m43(expiryTime) => "Link akan kedaluwarsa pada ${expiryTime}"; static String m3(count, formattedCount) => "${Intl.plural(count, zero: 'tiada kenangan', one: '${formattedCount} kenangan', other: '${formattedCount} kenangan')}"; - static String m41(count) => "${Intl.plural(count, other: 'Pindahkan item')}"; + static String m44(count) => "${Intl.plural(count, other: 'Pindahkan item')}"; - static String m42(albumName) => "Berhasil dipindahkan ke ${albumName}"; + static String m45(albumName) => "Berhasil dipindahkan ke ${albumName}"; - static String m45(familyAdminEmail) => + static String m48(familyAdminEmail) => "Harap hubungi ${familyAdminEmail} untuk mengubah kode kamu."; static String m0(passwordStrengthValue) => "Keamanan sandi: ${passwordStrengthValue}"; - static String m46(providerName) => + static String m49(providerName) => "Harap hubungi dukungan ${providerName} jika kamu dikenai biaya"; - static String m48(endDate) => + static String m51(endDate) => "Percobaan gratis berlaku hingga ${endDate}.\nKamu dapat memilih paket berbayar setelahnya."; - static String m49(toEmail) => "Silakan kirimi kami email di ${toEmail}"; + static String m52(toEmail) => "Silakan kirimi kami email di ${toEmail}"; - static String m50(toEmail) => "Silakan kirim log-nya ke \n${toEmail}"; + static String m53(toEmail) => "Silakan kirim log-nya ke \n${toEmail}"; - static String m52(storeName) => "Beri nilai di ${storeName}"; + static String m55(storeName) => "Beri nilai di ${storeName}"; - static String m53(storageInGB) => + static String m59(storageInGB) => "3. Kalian berdua mendapat ${storageInGB} GB* gratis"; - static String m54(userEmail) => + static String m60(userEmail) => "${userEmail} akan dikeluarkan dari album berbagi ini\n\nSemua foto yang ia tambahkan juga akan dihapus dari album ini"; - static String m55(endDate) => "Langganan akan diperpanjang pada ${endDate}"; + static String m61(endDate) => "Langganan akan diperpanjang pada ${endDate}"; - static String m56(count) => + static String m62(count) => "${Intl.plural(count, other: '${count} hasil ditemukan')}"; static String m4(count) => "${count} terpilih"; - static String m58(count, yourCount) => + static String m64(count, yourCount) => "${count} dipilih (${yourCount} milikmu)"; - static String m59(verificationID) => + static String m65(verificationID) => "Ini ID Verifikasi saya di ente.io: ${verificationID}."; static String m5(verificationID) => "Halo, bisakah kamu pastikan bahwa ini adalah ID Verifikasi ente.io milikmu: ${verificationID}"; - static String m60(referralCode, referralStorageInGB) => + static String m66(referralCode, referralStorageInGB) => "Kode rujukan Ente: ${referralCode} \n\nTerapkan pada Pengaturan → Umum → Rujukan untuk mendapatkan ${referralStorageInGB} GB gratis setelah kamu mendaftar paket berbayar\n\nhttps://ente.io"; - static String m61(numberOfPeople) => + static String m67(numberOfPeople) => "${Intl.plural(numberOfPeople, zero: 'Bagikan dengan orang tertentu', one: 'Berbagi dengan 1 orang', other: 'Berbagi dengan ${numberOfPeople} orang')}"; - static String m62(emailIDs) => "Dibagikan dengan ${emailIDs}"; + static String m68(emailIDs) => "Dibagikan dengan ${emailIDs}"; - static String m63(fileType) => + static String m69(fileType) => "${fileType} ini akan dihapus dari perangkat ini."; - static String m64(fileType) => + static String m70(fileType) => "${fileType} ini tersimpan di Ente dan juga di perangkat ini."; - static String m65(fileType) => "${fileType} ini akan dihapus dari Ente."; + static String m71(fileType) => "${fileType} ini akan dihapus dari Ente."; static String m1(storageAmountInGB) => "${storageAmountInGB} GB"; - static String m66( + static String m72( usedAmount, usedStorageUnit, totalAmount, totalStorageUnit) => "${usedAmount} ${usedStorageUnit} dari ${totalAmount} ${totalStorageUnit} terpakai"; - static String m67(id) => + static String m73(id) => "${id} kamu telah terhubung dengan akun Ente lain.\nJika kamu ingin menggunakan ${id} kamu untuk akun ini, silahkan hubungi tim bantuan kami"; - static String m68(endDate) => + static String m74(endDate) => "Langganan kamu akan dibatalkan pada ${endDate}"; - static String m71(storageAmountInGB) => + static String m77(storageAmountInGB) => "Ia juga mendapat ${storageAmountInGB} GB"; - static String m72(email) => "Ini adalah ID Verifikasi milik ${email}"; + static String m78(email) => "Ini adalah ID Verifikasi milik ${email}"; - static String m77(endDate) => "Berlaku hingga ${endDate}"; + static String m84(endDate) => "Berlaku hingga ${endDate}"; - static String m78(email) => "Verifikasi ${email}"; + static String m85(email) => "Verifikasi ${email}"; static String m2(email) => "Kami telah mengirimkan email ke ${email}"; - static String m80(count) => + static String m87(count) => "${Intl.plural(count, other: '${count} tahun lalu')}"; - static String m81(storageSaved) => + static String m88(storageSaved) => "Kamu telah berhasil membersihkan ${storageSaved}!"; final messages = _notInlinedMessages(_notInlinedMessages); @@ -443,10 +443,10 @@ class MessageLookup extends MessageLookupByLibrary { "Konfirmasi kunci pemulihan kamu"), "connectToDevice": MessageLookupByLibrary.simpleMessage("Hubungkan ke perangkat"), - "contactFamilyAdmin": m19, + "contactFamilyAdmin": m21, "contactSupport": MessageLookupByLibrary.simpleMessage("Hubungi dukungan"), - "contactToManageSubscription": m20, + "contactToManageSubscription": m22, "contacts": MessageLookupByLibrary.simpleMessage("Kontak"), "continueLabel": MessageLookupByLibrary.simpleMessage("Lanjut"), "continueOnFreeTrial": MessageLookupByLibrary.simpleMessage( @@ -487,7 +487,7 @@ class MessageLookup extends MessageLookupByLibrary { "currentUsageIs": MessageLookupByLibrary.simpleMessage("Pemakaian saat ini sebesar "), "custom": MessageLookupByLibrary.simpleMessage("Kustom"), - "customEndpoint": m21, + "customEndpoint": m23, "darkTheme": MessageLookupByLibrary.simpleMessage("Gelap"), "dayToday": MessageLookupByLibrary.simpleMessage("Hari Ini"), "dayYesterday": MessageLookupByLibrary.simpleMessage("Kemarin"), @@ -516,9 +516,9 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Hapus dari perangkat ini"), "deleteFromEnte": MessageLookupByLibrary.simpleMessage("Hapus dari Ente"), - "deleteItemCount": m22, + "deleteItemCount": m24, "deletePhotos": MessageLookupByLibrary.simpleMessage("Hapus foto"), - "deleteProgress": m23, + "deleteProgress": m25, "deleteReason1": MessageLookupByLibrary.simpleMessage( "Fitur penting yang saya perlukan tidak ada"), "deleteReason2": MessageLookupByLibrary.simpleMessage( @@ -554,7 +554,7 @@ class MessageLookup extends MessageLookupByLibrary { "Orang yang melihat masih bisa mengambil tangkapan layar atau menyalin foto kamu menggunakan alat eksternal"), "disableDownloadWarningTitle": MessageLookupByLibrary.simpleMessage("Perlu diketahui"), - "disableLinkMessage": m24, + "disableLinkMessage": m26, "disableTwofactor": MessageLookupByLibrary.simpleMessage( "Nonaktifkan autentikasi dua langkah"), "disablingTwofactorAuthentication": @@ -589,8 +589,8 @@ class MessageLookup extends MessageLookupByLibrary { "downloadFailed": MessageLookupByLibrary.simpleMessage("Gagal mengunduh"), "downloading": MessageLookupByLibrary.simpleMessage("Mengunduh..."), - "dropSupportEmail": m25, - "duplicateFileCountWithStorageSaved": m26, + "dropSupportEmail": m27, + "duplicateFileCountWithStorageSaved": m28, "edit": MessageLookupByLibrary.simpleMessage("Edit"), "editLocation": MessageLookupByLibrary.simpleMessage("Edit lokasi"), "editLocationTagTitle": @@ -602,8 +602,8 @@ class MessageLookup extends MessageLookupByLibrary { "Perubahan lokasi hanya akan terlihat di Ente"), "eligible": MessageLookupByLibrary.simpleMessage("memenuhi syarat"), "email": MessageLookupByLibrary.simpleMessage("Email"), - "emailChangedTo": m28, - "emailNoEnteAccount": m29, + "emailChangedTo": m30, + "emailNoEnteAccount": m31, "emailVerificationToggle": MessageLookupByLibrary.simpleMessage("Verifikasi email"), "empty": MessageLookupByLibrary.simpleMessage("Kosongkan"), @@ -700,8 +700,8 @@ class MessageLookup extends MessageLookupByLibrary { "fileTypes": MessageLookupByLibrary.simpleMessage("Jenis file"), "fileTypesAndNames": MessageLookupByLibrary.simpleMessage("Nama dan jenis file"), - "filesBackedUpFromDevice": m31, - "filesBackedUpInAlbum": m32, + "filesBackedUpFromDevice": m33, + "filesBackedUpInAlbum": m34, "filesDeleted": MessageLookupByLibrary.simpleMessage("File terhapus"), "filesSavedToGallery": MessageLookupByLibrary.simpleMessage("File tersimpan ke galeri"), @@ -715,23 +715,23 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Wajah yang ditemukan"), "freeStorageClaimed": MessageLookupByLibrary.simpleMessage("Kuota gratis diperoleh"), - "freeStorageOnReferralSuccess": m33, + "freeStorageOnReferralSuccess": m35, "freeStorageUsable": MessageLookupByLibrary.simpleMessage( "Kuota gratis yang dapat digunakan"), "freeTrial": MessageLookupByLibrary.simpleMessage("Percobaan gratis"), - "freeTrialValidTill": m34, - "freeUpAccessPostDelete": m35, - "freeUpAmount": m36, + "freeTrialValidTill": m36, + "freeUpAccessPostDelete": m37, + "freeUpAmount": m38, "freeUpDeviceSpace": MessageLookupByLibrary.simpleMessage( "Bersihkan penyimpanan perangkat"), "freeUpDeviceSpaceDesc": MessageLookupByLibrary.simpleMessage( "Hemat ruang penyimpanan di perangkatmu dengan membersihkan file yang sudah tercadangkan."), "freeUpSpace": MessageLookupByLibrary.simpleMessage("Bersihkan ruang"), - "freeUpSpaceSaving": m37, + "freeUpSpaceSaving": m39, "general": MessageLookupByLibrary.simpleMessage("Umum"), "generatingEncryptionKeys": MessageLookupByLibrary.simpleMessage( "Menghasilkan kunci enkripsi..."), - "genericProgress": m38, + "genericProgress": m40, "goToSettings": MessageLookupByLibrary.simpleMessage("Buka pengaturan"), "googlePlayId": MessageLookupByLibrary.simpleMessage("ID Google Play"), "grantFullAccessPrompt": MessageLookupByLibrary.simpleMessage( @@ -791,7 +791,7 @@ class MessageLookup extends MessageLookupByLibrary { "itLooksLikeSomethingWentWrongPleaseRetryAfterSome": MessageLookupByLibrary.simpleMessage( "Sepertinya terjadi kesalahan. Silakan coba lagi setelah beberapa saat. Jika kesalahan terus terjadi, silakan hubungi tim dukungan kami."), - "itemCount": m39, + "itemCount": m41, "itemsWillBeRemovedFromAlbum": MessageLookupByLibrary.simpleMessage( "Item yang dipilih akan dihapus dari album ini"), "joinDiscord": @@ -818,7 +818,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Batas perangkat"), "linkEnabled": MessageLookupByLibrary.simpleMessage("Aktif"), "linkExpired": MessageLookupByLibrary.simpleMessage("Kedaluwarsa"), - "linkExpiresOn": m40, + "linkExpiresOn": m43, "linkExpiry": MessageLookupByLibrary.simpleMessage("Waktu kedaluwarsa link"), "linkHasExpired": @@ -898,10 +898,10 @@ class MessageLookup extends MessageLookupByLibrary { "moderateStrength": MessageLookupByLibrary.simpleMessage("Sedang"), "moments": MessageLookupByLibrary.simpleMessage("Momen"), "monthly": MessageLookupByLibrary.simpleMessage("Bulanan"), - "moveItem": m41, + "moveItem": m44, "moveToHiddenAlbum": MessageLookupByLibrary.simpleMessage( "Pindahkan ke album tersembunyi"), - "movedSuccessfullyTo": m42, + "movedSuccessfullyTo": m45, "movedToTrash": MessageLookupByLibrary.simpleMessage("Pindah ke sampah"), "movingFilesToAlbum": MessageLookupByLibrary.simpleMessage( @@ -952,7 +952,7 @@ class MessageLookup extends MessageLookupByLibrary { "onDevice": MessageLookupByLibrary.simpleMessage("Di perangkat ini"), "onEnte": MessageLookupByLibrary.simpleMessage( "Di ente"), - "onlyFamilyAdminCanChangeCode": m45, + "onlyFamilyAdminCanChangeCode": m48, "oops": MessageLookupByLibrary.simpleMessage("Aduh"), "oopsCouldNotSaveEdits": MessageLookupByLibrary.simpleMessage( "Aduh, tidak dapat menyimpan perubahan"), @@ -988,7 +988,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Pembayaran gagal"), "paymentFailedMessage": MessageLookupByLibrary.simpleMessage( "Sayangnya, pembayaranmu gagal. Silakan hubungi tim bantuan agar dapat kami bantu!"), - "paymentFailedTalkToProvider": m46, + "paymentFailedTalkToProvider": m49, "pendingItems": MessageLookupByLibrary.simpleMessage("Item menunggu"), "pendingSync": MessageLookupByLibrary.simpleMessage("Sinkronisasi tertunda"), @@ -1011,7 +1011,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage( "Foto yang telah kamu tambahkan akan dihapus dari album ini"), "playOnTv": MessageLookupByLibrary.simpleMessage("Putar album di TV"), - "playStoreFreeTrialValidTill": m48, + "playStoreFreeTrialValidTill": m51, "playstoreSubscription": MessageLookupByLibrary.simpleMessage("Langganan PlayStore"), "pleaseCheckYourInternetConnectionAndTryAgain": @@ -1023,12 +1023,12 @@ class MessageLookup extends MessageLookupByLibrary { "pleaseContactSupportIfTheProblemPersists": MessageLookupByLibrary.simpleMessage( "Silakan hubungi tim bantuan jika masalah terus terjadi"), - "pleaseEmailUsAt": m49, + "pleaseEmailUsAt": m52, "pleaseGrantPermissions": MessageLookupByLibrary.simpleMessage("Harap berikan izin"), "pleaseLoginAgain": MessageLookupByLibrary.simpleMessage("Silakan masuk akun lagi"), - "pleaseSendTheLogsTo": m50, + "pleaseSendTheLogsTo": m53, "pleaseTryAgain": MessageLookupByLibrary.simpleMessage("Silakan coba lagi"), "pleaseVerifyTheCodeYouHaveEntered": @@ -1062,7 +1062,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Buat tiket dukungan"), "rateTheApp": MessageLookupByLibrary.simpleMessage("Nilai app ini"), "rateUs": MessageLookupByLibrary.simpleMessage("Beri kami nilai"), - "rateUsOnStore": m52, + "rateUsOnStore": m55, "recover": MessageLookupByLibrary.simpleMessage("Pulihkan"), "recoverAccount": MessageLookupByLibrary.simpleMessage("Pulihkan akun"), "recoverButton": MessageLookupByLibrary.simpleMessage("Pulihkan"), @@ -1090,7 +1090,7 @@ class MessageLookup extends MessageLookupByLibrary { "1. Berikan kode ini ke teman kamu"), "referralStep2": MessageLookupByLibrary.simpleMessage( "2. Ia perlu daftar ke paket berbayar"), - "referralStep3": m53, + "referralStep3": m59, "referrals": MessageLookupByLibrary.simpleMessage("Referensi"), "referralsAreCurrentlyPaused": MessageLookupByLibrary.simpleMessage("Rujukan sedang dijeda"), @@ -1112,7 +1112,7 @@ class MessageLookup extends MessageLookupByLibrary { "removeLink": MessageLookupByLibrary.simpleMessage("Hapus link"), "removeParticipant": MessageLookupByLibrary.simpleMessage("Hapus peserta"), - "removeParticipantBody": m54, + "removeParticipantBody": m60, "removePersonLabel": MessageLookupByLibrary.simpleMessage("Hapus label orang"), "removePublicLink": @@ -1128,7 +1128,7 @@ class MessageLookup extends MessageLookupByLibrary { "renameFile": MessageLookupByLibrary.simpleMessage("Ubah nama file"), "renewSubscription": MessageLookupByLibrary.simpleMessage("Perpanjang langganan"), - "renewsOn": m55, + "renewsOn": m61, "reportABug": MessageLookupByLibrary.simpleMessage("Laporkan bug"), "reportBug": MessageLookupByLibrary.simpleMessage("Laporkan bug"), "resendEmail": @@ -1179,7 +1179,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Album, nama dan jenis file"), "searchHint5": MessageLookupByLibrary.simpleMessage( "Segera tiba: Penelusuran wajah & ajaib ✨"), - "searchResultCount": m56, + "searchResultCount": m62, "security": MessageLookupByLibrary.simpleMessage("Keamanan"), "selectALocation": MessageLookupByLibrary.simpleMessage("Pilih lokasi"), "selectALocationFirst": MessageLookupByLibrary.simpleMessage( @@ -1205,7 +1205,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage( "Item terpilih akan dihapus dari semua album dan dipindahkan ke sampah."), "selectedPhotos": m4, - "selectedPhotosWithYours": m58, + "selectedPhotosWithYours": m64, "send": MessageLookupByLibrary.simpleMessage("Kirim"), "sendEmail": MessageLookupByLibrary.simpleMessage("Kirim email"), "sendInvite": MessageLookupByLibrary.simpleMessage("Kirim undangan"), @@ -1226,16 +1226,16 @@ class MessageLookup extends MessageLookupByLibrary { "shareAnAlbumNow": MessageLookupByLibrary.simpleMessage("Bagikan album sekarang"), "shareLink": MessageLookupByLibrary.simpleMessage("Bagikan link"), - "shareMyVerificationID": m59, + "shareMyVerificationID": m65, "shareOnlyWithThePeopleYouWant": MessageLookupByLibrary.simpleMessage( "Bagikan hanya dengan orang yang kamu inginkan"), "shareTextConfirmOthersVerificationID": m5, "shareTextRecommendUsingEnte": MessageLookupByLibrary.simpleMessage( "Unduh Ente agar kita bisa berbagi foto dan video kualitas asli dengan mudah\n\nhttps://ente.io"), - "shareTextReferralCode": m60, + "shareTextReferralCode": m66, "shareWithNonenteUsers": MessageLookupByLibrary.simpleMessage( "Bagikan ke pengguna non-Ente"), - "shareWithPeopleSectionTitle": m61, + "shareWithPeopleSectionTitle": m67, "shareYourFirstAlbum": MessageLookupByLibrary.simpleMessage("Bagikan album pertamamu"), "sharedAlbumSectionDescription": MessageLookupByLibrary.simpleMessage( @@ -1248,7 +1248,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Foto terbagi baru"), "sharedPhotoNotificationsExplanation": MessageLookupByLibrary.simpleMessage( "Terima notifikasi apabila seseorang menambahkan foto ke album bersama yang kamu ikuti"), - "sharedWith": m62, + "sharedWith": m68, "sharedWithMe": MessageLookupByLibrary.simpleMessage("Dibagikan dengan saya"), "sharedWithYou": @@ -1263,11 +1263,11 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Keluar di perangkat lain"), "signUpTerms": MessageLookupByLibrary.simpleMessage( "Saya menyetujui ketentuan layanan dan kebijakan privasi Ente"), - "singleFileDeleteFromDevice": m63, + "singleFileDeleteFromDevice": m69, "singleFileDeleteHighlight": MessageLookupByLibrary.simpleMessage( "Ia akan dihapus dari semua album."), - "singleFileInBothLocalAndRemote": m64, - "singleFileInRemoteOnly": m65, + "singleFileInBothLocalAndRemote": m70, + "singleFileInRemoteOnly": m71, "skip": MessageLookupByLibrary.simpleMessage("Lewati"), "social": MessageLookupByLibrary.simpleMessage("Sosial"), "someItemsAreInBothEnteAndYourDevice": @@ -1312,10 +1312,10 @@ class MessageLookup extends MessageLookupByLibrary { "storageInGB": m1, "storageLimitExceeded": MessageLookupByLibrary.simpleMessage( "Batas penyimpanan terlampaui"), - "storageUsageInfo": m66, + "storageUsageInfo": m72, "strongStrength": MessageLookupByLibrary.simpleMessage("Kuat"), - "subAlreadyLinkedErrMessage": m67, - "subWillBeCancelledOn": m68, + "subAlreadyLinkedErrMessage": m73, + "subWillBeCancelledOn": m74, "subscribe": MessageLookupByLibrary.simpleMessage("Berlangganan"), "subscription": MessageLookupByLibrary.simpleMessage("Langganan"), "success": MessageLookupByLibrary.simpleMessage("Berhasil"), @@ -1355,7 +1355,7 @@ class MessageLookup extends MessageLookupByLibrary { "theseItemsWillBeDeletedFromYourDevice": MessageLookupByLibrary.simpleMessage( "Item ini akan dihapus dari perangkat ini."), - "theyAlsoGetXGb": m71, + "theyAlsoGetXGb": m77, "thisActionCannotBeUndone": MessageLookupByLibrary.simpleMessage( "Tindakan ini tidak dapat dibatalkan"), "thisAlbumAlreadyHDACollaborativeLink": @@ -1369,7 +1369,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Email ini telah digunakan"), "thisImageHasNoExifData": MessageLookupByLibrary.simpleMessage( "Gambar ini tidak memiliki data exif"), - "thisIsPersonVerificationId": m72, + "thisIsPersonVerificationId": m78, "thisIsYourVerificationId": MessageLookupByLibrary.simpleMessage( "Ini adalah ID Verifikasi kamu"), "thisWillLogYouOutOfTheFollowingDevice": @@ -1435,14 +1435,14 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Gunakan kunci pemulihan"), "useSelectedPhoto": MessageLookupByLibrary.simpleMessage("Gunakan foto terpilih"), - "validTill": m77, + "validTill": m84, "verificationFailedPleaseTryAgain": MessageLookupByLibrary.simpleMessage( "Verifikasi gagal, silakan coba lagi"), "verificationId": MessageLookupByLibrary.simpleMessage("ID Verifikasi"), "verify": MessageLookupByLibrary.simpleMessage("Verifikasi"), "verifyEmail": MessageLookupByLibrary.simpleMessage("Verifikasi email"), - "verifyEmailID": m78, + "verifyEmailID": m85, "verifyPasskey": MessageLookupByLibrary.simpleMessage("Verifikasi passkey"), "verifyPassword": @@ -1478,7 +1478,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Selamat datang kembali!"), "whatsNew": MessageLookupByLibrary.simpleMessage("Hal yang baru"), "yearly": MessageLookupByLibrary.simpleMessage("Tahunan"), - "yearsAgo": m80, + "yearsAgo": m87, "yes": MessageLookupByLibrary.simpleMessage("Ya"), "yesCancel": MessageLookupByLibrary.simpleMessage("Ya, batalkan"), "yesConvertToViewer": @@ -1505,7 +1505,7 @@ class MessageLookup extends MessageLookupByLibrary { "Kamu tidak bisa berbagi dengan dirimu sendiri"), "youDontHaveAnyArchivedItems": MessageLookupByLibrary.simpleMessage( "Kamu tidak memiliki item di arsip."), - "youHaveSuccessfullyFreedUp": m81, + "youHaveSuccessfullyFreedUp": m88, "yourAccountHasBeenDeleted": MessageLookupByLibrary.simpleMessage("Akunmu telah dihapus"), "yourMap": MessageLookupByLibrary.simpleMessage("Peta kamu"), diff --git a/mobile/lib/generated/intl/messages_it.dart b/mobile/lib/generated/intl/messages_it.dart index a2c711a0659..9df3bc53388 100644 --- a/mobile/lib/generated/intl/messages_it.dart +++ b/mobile/lib/generated/intl/messages_it.dart @@ -60,168 +60,168 @@ class MessageLookup extends MessageLookupByLibrary { static String m18(albumName) => "Link collaborativo creato per ${albumName}"; - static String m19(familyAdminEmail) => + static String m21(familyAdminEmail) => "Contatta ${familyAdminEmail} per gestire il tuo abbonamento"; - static String m20(provider) => + static String m22(provider) => "Scrivi all\'indirizzo support@ente.io per gestire il tuo abbonamento ${provider}."; - static String m21(endpoint) => "Connesso a ${endpoint}"; + static String m23(endpoint) => "Connesso a ${endpoint}"; - static String m22(count) => + static String m24(count) => "${Intl.plural(count, one: 'Elimina ${count} elemento', other: 'Elimina ${count} elementi')}"; - static String m23(currentlyDeleting, totalCount) => + static String m25(currentlyDeleting, totalCount) => "Eliminazione di ${currentlyDeleting} / ${totalCount}"; - static String m24(albumName) => + static String m26(albumName) => "Questo rimuoverà il link pubblico per accedere a \"${albumName}\"."; - static String m25(supportEmail) => + static String m27(supportEmail) => "Per favore invia un\'email a ${supportEmail} dall\'indirizzo email con cui ti sei registrato"; - static String m26(count, storageSaved) => + static String m28(count, storageSaved) => "Hai ripulito ${Intl.plural(count, one: '${count} doppione', other: '${count} doppioni')}, salvando (${storageSaved}!)"; - static String m27(count, formattedSize) => + static String m29(count, formattedSize) => "${count} file, ${formattedSize} l\'uno"; - static String m28(newEmail) => "Email cambiata in ${newEmail}"; + static String m30(newEmail) => "Email cambiata in ${newEmail}"; - static String m29(email) => + static String m31(email) => "${email} non ha un account Ente.\n\nInvia un invito per condividere foto."; - static String m30(text) => "Trovate foto aggiuntive per ${text}"; + static String m32(text) => "Trovate foto aggiuntive per ${text}"; - static String m31(count, formattedNumber) => + static String m33(count, formattedNumber) => "${Intl.plural(count, one: '1 file', other: '${formattedNumber} file')} di quest\'album sono stati salvati in modo sicuro"; - static String m32(count, formattedNumber) => + static String m34(count, formattedNumber) => "${Intl.plural(count, one: '1 file', other: '${formattedNumber} file')} di quest\'album sono stati salvati in modo sicuro"; - static String m33(storageAmountInGB) => + static String m35(storageAmountInGB) => "${storageAmountInGB} GB ogni volta che qualcuno si iscrive a un piano a pagamento e applica il tuo codice"; - static String m34(endDate) => "La prova gratuita termina il ${endDate}"; + static String m36(endDate) => "La prova gratuita termina il ${endDate}"; - static String m35(count) => + static String m37(count) => "Puoi ancora accedere a ${Intl.plural(count, one: '', other: 'loro')} su ente finché hai un abbonamento attivo"; - static String m36(sizeInMBorGB) => "Libera ${sizeInMBorGB}"; + static String m38(sizeInMBorGB) => "Libera ${sizeInMBorGB}"; - static String m37(count, formattedSize) => + static String m39(count, formattedSize) => "${Intl.plural(count, one: 'Può essere cancellata per liberare ${formattedSize}', other: 'Possono essere cancellati per liberare ${formattedSize}')}"; - static String m38(currentlyProcessing, totalCount) => + static String m40(currentlyProcessing, totalCount) => "Elaborazione ${currentlyProcessing} / ${totalCount}"; - static String m39(count) => + static String m41(count) => "${Intl.plural(count, one: '${count} elemento', other: '${count} elementi')}"; - static String m40(expiryTime) => "Il link scadrà il ${expiryTime}"; + static String m43(expiryTime) => "Il link scadrà il ${expiryTime}"; static String m3(count, formattedCount) => "${Intl.plural(count, one: '${formattedCount} ricordo', other: '${formattedCount} ricordi')}"; - static String m41(count) => + static String m44(count) => "${Intl.plural(count, one: 'Sposta elemento', other: 'Sposta elementi')}"; - static String m42(albumName) => "Spostato con successo su ${albumName}"; + static String m45(albumName) => "Spostato con successo su ${albumName}"; - static String m43(personName) => "Nessun suggerimento per ${personName}"; + static String m46(personName) => "Nessun suggerimento per ${personName}"; - static String m44(name) => "Non è ${name}?"; + static String m47(name) => "Non è ${name}?"; - static String m45(familyAdminEmail) => + static String m48(familyAdminEmail) => "Per favore contatta ${familyAdminEmail} per cambiare il tuo codice."; static String m0(passwordStrengthValue) => "Sicurezza password: ${passwordStrengthValue}"; - static String m46(providerName) => + static String m49(providerName) => "Si prega di parlare con il supporto di ${providerName} se ti è stato addebitato qualcosa"; - static String m48(endDate) => + static String m51(endDate) => "Prova gratuita valida fino al ${endDate}.\nIn seguito potrai scegliere un piano a pagamento."; - static String m49(toEmail) => "Per favore invia un\'email a ${toEmail}"; + static String m52(toEmail) => "Per favore invia un\'email a ${toEmail}"; - static String m50(toEmail) => "Invia i log a \n${toEmail}"; + static String m53(toEmail) => "Invia i log a \n${toEmail}"; - static String m51(folderName) => "Elaborando ${folderName}..."; + static String m54(folderName) => "Elaborando ${folderName}..."; - static String m52(storeName) => "Valutaci su ${storeName}"; + static String m55(storeName) => "Valutaci su ${storeName}"; - static String m53(storageInGB) => + static String m59(storageInGB) => "3. Ottenete entrambi ${storageInGB} GB* gratis"; - static String m54(userEmail) => + static String m60(userEmail) => "${userEmail} verrà rimosso da questo album condiviso\n\nQualsiasi foto aggiunta dall\'utente verrà rimossa dall\'album"; - static String m55(endDate) => "Si rinnova il ${endDate}"; + static String m61(endDate) => "Si rinnova il ${endDate}"; - static String m56(count) => + static String m62(count) => "${Intl.plural(count, one: '${count} risultato trovato', other: '${count} risultati trovati')}"; static String m4(count) => "${count} selezionati"; - static String m58(count, yourCount) => + static String m64(count, yourCount) => "${count} selezionato (${yourCount} tuoi)"; - static String m59(verificationID) => + static String m65(verificationID) => "Ecco il mio ID di verifica: ${verificationID} per ente.io."; static String m5(verificationID) => "Hey, puoi confermare che questo è il tuo ID di verifica: ${verificationID} su ente.io"; - static String m60(referralCode, referralStorageInGB) => + static String m66(referralCode, referralStorageInGB) => "Codice invito Ente: ${referralCode} \n\nInseriscilo in Impostazioni → Generali → Inviti per ottenere ${referralStorageInGB} GB gratis dopo la sottoscrizione a un piano a pagamento\n\nhttps://ente.io"; - static String m61(numberOfPeople) => + static String m67(numberOfPeople) => "${Intl.plural(numberOfPeople, zero: 'Condividi con persone specifiche', one: 'Condividi con una persona', other: 'Condividi con ${numberOfPeople} persone')}"; - static String m62(emailIDs) => "Condiviso con ${emailIDs}"; + static String m68(emailIDs) => "Condiviso con ${emailIDs}"; - static String m63(fileType) => + static String m69(fileType) => "Questo ${fileType} verrà eliminato dal tuo dispositivo."; - static String m64(fileType) => + static String m70(fileType) => "Questo ${fileType} è sia su Ente che sul tuo dispositivo."; - static String m65(fileType) => "Questo ${fileType} verrà eliminato da Ente."; + static String m71(fileType) => "Questo ${fileType} verrà eliminato da Ente."; static String m1(storageAmountInGB) => "${storageAmountInGB} GB"; - static String m66( + static String m72( usedAmount, usedStorageUnit, totalAmount, totalStorageUnit) => "${usedAmount} ${usedStorageUnit} di ${totalAmount} ${totalStorageUnit} utilizzati"; - static String m67(id) => + static String m73(id) => "Il tuo ${id} è già collegato a un altro account Ente.\nSe desideri utilizzare il tuo ${id} con questo account, per favore contatta il nostro supporto\'\'"; - static String m68(endDate) => "L\'abbonamento verrà cancellato il ${endDate}"; + static String m74(endDate) => "L\'abbonamento verrà cancellato il ${endDate}"; - static String m69(completed, total) => + static String m75(completed, total) => "${completed}/${total} ricordi conservati"; - static String m71(storageAmountInGB) => + static String m77(storageAmountInGB) => "Anche loro riceveranno ${storageAmountInGB} GB"; - static String m72(email) => "Questo è l\'ID di verifica di ${email}"; + static String m78(email) => "Questo è l\'ID di verifica di ${email}"; - static String m76(count) => "Conservando ${count} ricordi..."; + static String m83(count) => "Conservando ${count} ricordi..."; - static String m77(endDate) => "Valido fino al ${endDate}"; + static String m84(endDate) => "Valido fino al ${endDate}"; - static String m78(email) => "Verifica ${email}"; + static String m85(email) => "Verifica ${email}"; static String m2(email) => "Abbiamo inviato una mail a ${email}"; - static String m80(count) => + static String m87(count) => "${Intl.plural(count, one: '${count} anno fa', other: '${count} anni fa')}"; - static String m81(storageSaved) => + static String m88(storageSaved) => "Hai liberato con successo ${storageSaved}!"; final messages = _notInlinedMessages(_notInlinedMessages); @@ -545,10 +545,10 @@ class MessageLookup extends MessageLookupByLibrary { "Conferma la tua chiave di recupero"), "connectToDevice": MessageLookupByLibrary.simpleMessage("Connetti al dispositivo"), - "contactFamilyAdmin": m19, + "contactFamilyAdmin": m21, "contactSupport": MessageLookupByLibrary.simpleMessage("Contatta il supporto"), - "contactToManageSubscription": m20, + "contactToManageSubscription": m22, "contacts": MessageLookupByLibrary.simpleMessage("Contatti"), "contents": MessageLookupByLibrary.simpleMessage("Contenuti"), "continueLabel": MessageLookupByLibrary.simpleMessage("Continua"), @@ -595,7 +595,7 @@ class MessageLookup extends MessageLookupByLibrary { "currentlyRunning": MessageLookupByLibrary.simpleMessage("attualmente in esecuzione"), "custom": MessageLookupByLibrary.simpleMessage("Personalizza"), - "customEndpoint": m21, + "customEndpoint": m23, "darkTheme": MessageLookupByLibrary.simpleMessage("Scuro"), "dayToday": MessageLookupByLibrary.simpleMessage("Oggi"), "dayYesterday": MessageLookupByLibrary.simpleMessage("Ieri"), @@ -631,11 +631,11 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Elimina dal dispositivo"), "deleteFromEnte": MessageLookupByLibrary.simpleMessage("Elimina da Ente"), - "deleteItemCount": m22, + "deleteItemCount": m24, "deleteLocation": MessageLookupByLibrary.simpleMessage("Elimina posizione"), "deletePhotos": MessageLookupByLibrary.simpleMessage("Elimina foto"), - "deleteProgress": m23, + "deleteProgress": m25, "deleteReason1": MessageLookupByLibrary.simpleMessage( "Manca una caratteristica chiave di cui ho bisogno"), "deleteReason2": MessageLookupByLibrary.simpleMessage( @@ -676,7 +676,7 @@ class MessageLookup extends MessageLookupByLibrary { "I visualizzatori possono scattare screenshot o salvare una copia delle foto utilizzando strumenti esterni"), "disableDownloadWarningTitle": MessageLookupByLibrary.simpleMessage("Nota bene"), - "disableLinkMessage": m24, + "disableLinkMessage": m26, "disableTwofactor": MessageLookupByLibrary.simpleMessage( "Disabilita autenticazione a due fattori"), "disablingTwofactorAuthentication": @@ -719,9 +719,9 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Scaricamento fallito"), "downloading": MessageLookupByLibrary.simpleMessage("Scaricamento in corso..."), - "dropSupportEmail": m25, - "duplicateFileCountWithStorageSaved": m26, - "duplicateItemsGroup": m27, + "dropSupportEmail": m27, + "duplicateFileCountWithStorageSaved": m28, + "duplicateItemsGroup": m29, "edit": MessageLookupByLibrary.simpleMessage("Modifica"), "editLocation": MessageLookupByLibrary.simpleMessage("Modifica luogo"), "editLocationTagTitle": @@ -732,8 +732,8 @@ class MessageLookup extends MessageLookupByLibrary { "Le modifiche alla posizione saranno visibili solo all\'interno di Ente"), "eligible": MessageLookupByLibrary.simpleMessage("idoneo"), "email": MessageLookupByLibrary.simpleMessage("Email"), - "emailChangedTo": m28, - "emailNoEnteAccount": m29, + "emailChangedTo": m30, + "emailNoEnteAccount": m31, "emailVerificationToggle": MessageLookupByLibrary.simpleMessage("Verifica Email"), "emailYourLogs": MessageLookupByLibrary.simpleMessage( @@ -809,7 +809,7 @@ class MessageLookup extends MessageLookupByLibrary { "exportYourData": MessageLookupByLibrary.simpleMessage("Esporta dati"), "extraPhotosFound": MessageLookupByLibrary.simpleMessage("Trovate foto aggiuntive"), - "extraPhotosFoundFor": m30, + "extraPhotosFoundFor": m32, "faceRecognition": MessageLookupByLibrary.simpleMessage("Riconoscimento facciale"), "faces": MessageLookupByLibrary.simpleMessage("Volti"), @@ -857,8 +857,8 @@ class MessageLookup extends MessageLookupByLibrary { "fileTypes": MessageLookupByLibrary.simpleMessage("Tipi di file"), "fileTypesAndNames": MessageLookupByLibrary.simpleMessage("Tipi e nomi di file"), - "filesBackedUpFromDevice": m31, - "filesBackedUpInAlbum": m32, + "filesBackedUpFromDevice": m33, + "filesBackedUpInAlbum": m34, "filesDeleted": MessageLookupByLibrary.simpleMessage("File eliminati"), "filesSavedToGallery": MessageLookupByLibrary.simpleMessage("File salvati nella galleria"), @@ -874,25 +874,25 @@ class MessageLookup extends MessageLookupByLibrary { "foundFaces": MessageLookupByLibrary.simpleMessage("Volti trovati"), "freeStorageClaimed": MessageLookupByLibrary.simpleMessage("Spazio gratuito richiesto"), - "freeStorageOnReferralSuccess": m33, + "freeStorageOnReferralSuccess": m35, "freeStorageUsable": MessageLookupByLibrary.simpleMessage("Spazio libero utilizzabile"), "freeTrial": MessageLookupByLibrary.simpleMessage("Prova gratuita"), - "freeTrialValidTill": m34, - "freeUpAccessPostDelete": m35, - "freeUpAmount": m36, + "freeTrialValidTill": m36, + "freeUpAccessPostDelete": m37, + "freeUpAmount": m38, "freeUpDeviceSpace": MessageLookupByLibrary.simpleMessage("Libera spazio"), "freeUpDeviceSpaceDesc": MessageLookupByLibrary.simpleMessage( "Risparmia spazio sul tuo dispositivo cancellando i file che sono già stati salvati online."), "freeUpSpace": MessageLookupByLibrary.simpleMessage("Libera spazio"), - "freeUpSpaceSaving": m37, + "freeUpSpaceSaving": m39, "galleryMemoryLimitInfo": MessageLookupByLibrary.simpleMessage( "Fino a 1000 ricordi mostrati nella galleria"), "general": MessageLookupByLibrary.simpleMessage("Generali"), "generatingEncryptionKeys": MessageLookupByLibrary.simpleMessage( "Generazione delle chiavi di crittografia..."), - "genericProgress": m38, + "genericProgress": m40, "goToSettings": MessageLookupByLibrary.simpleMessage("Vai alle impostazioni"), "googlePlayId": MessageLookupByLibrary.simpleMessage("Google Play ID"), @@ -975,7 +975,7 @@ class MessageLookup extends MessageLookupByLibrary { "itLooksLikeSomethingWentWrongPleaseRetryAfterSome": MessageLookupByLibrary.simpleMessage( "Sembra che qualcosa sia andato storto. Riprova tra un po\'. Se l\'errore persiste, contatta il nostro team di supporto."), - "itemCount": m39, + "itemCount": m41, "itemsShowTheNumberOfDaysRemainingBeforePermanentDeletion": MessageLookupByLibrary.simpleMessage( "Gli elementi mostrano il numero di giorni rimanenti prima della cancellazione permanente"), @@ -1006,7 +1006,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Limite dei dispositivi"), "linkEnabled": MessageLookupByLibrary.simpleMessage("Attivato"), "linkExpired": MessageLookupByLibrary.simpleMessage("Scaduto"), - "linkExpiresOn": m40, + "linkExpiresOn": m43, "linkExpiry": MessageLookupByLibrary.simpleMessage("Scadenza del link"), "linkHasExpired": MessageLookupByLibrary.simpleMessage("Il link è scaduto"), @@ -1123,12 +1123,12 @@ class MessageLookup extends MessageLookupByLibrary { "moreDetails": MessageLookupByLibrary.simpleMessage("Più dettagli"), "mostRecent": MessageLookupByLibrary.simpleMessage("Più recenti"), "mostRelevant": MessageLookupByLibrary.simpleMessage("Più rilevanti"), - "moveItem": m41, + "moveItem": m44, "moveToAlbum": MessageLookupByLibrary.simpleMessage("Sposta nell\'album"), "moveToHiddenAlbum": MessageLookupByLibrary.simpleMessage("Sposta in album nascosto"), - "movedSuccessfullyTo": m42, + "movedSuccessfullyTo": m45, "movedToTrash": MessageLookupByLibrary.simpleMessage("Spostato nel cestino"), "movingFilesToAlbum": MessageLookupByLibrary.simpleMessage( @@ -1181,10 +1181,10 @@ class MessageLookup extends MessageLookupByLibrary { "noResults": MessageLookupByLibrary.simpleMessage("Nessun risultato"), "noResultsFound": MessageLookupByLibrary.simpleMessage("Nessun risultato trovato"), - "noSuggestionsForPerson": m43, + "noSuggestionsForPerson": m46, "noSystemLockFound": MessageLookupByLibrary.simpleMessage( "Nessun blocco di sistema trovato"), - "notPersonLabel": m44, + "notPersonLabel": m47, "nothingSharedWithYouYet": MessageLookupByLibrary.simpleMessage( "Ancora nulla di condiviso con te"), "nothingToSeeHere": @@ -1194,7 +1194,7 @@ class MessageLookup extends MessageLookupByLibrary { "onDevice": MessageLookupByLibrary.simpleMessage("Sul dispositivo"), "onEnte": MessageLookupByLibrary.simpleMessage( "Su ente"), - "onlyFamilyAdminCanChangeCode": m45, + "onlyFamilyAdminCanChangeCode": m48, "onlyThem": MessageLookupByLibrary.simpleMessage("Solo loro"), "oops": MessageLookupByLibrary.simpleMessage("Oops"), "oopsCouldNotSaveEdits": MessageLookupByLibrary.simpleMessage( @@ -1237,7 +1237,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Pagamento non riuscito"), "paymentFailedMessage": MessageLookupByLibrary.simpleMessage( "Purtroppo il tuo pagamento non è riuscito. Contatta l\'assistenza e ti aiuteremo!"), - "paymentFailedTalkToProvider": m46, + "paymentFailedTalkToProvider": m49, "pendingItems": MessageLookupByLibrary.simpleMessage("Elementi in sospeso"), "pendingSync": @@ -1268,7 +1268,7 @@ class MessageLookup extends MessageLookupByLibrary { "pinLock": MessageLookupByLibrary.simpleMessage("Blocco con PIN"), "playOnTv": MessageLookupByLibrary.simpleMessage("Riproduci album sulla TV"), - "playStoreFreeTrialValidTill": m48, + "playStoreFreeTrialValidTill": m51, "playstoreSubscription": MessageLookupByLibrary.simpleMessage("Abbonamento su PlayStore"), "pleaseCheckYourInternetConnectionAndTryAgain": @@ -1280,14 +1280,14 @@ class MessageLookup extends MessageLookupByLibrary { "pleaseContactSupportIfTheProblemPersists": MessageLookupByLibrary.simpleMessage( "Riprova. Se il problema persiste, ti invitiamo a contattare l\'assistenza"), - "pleaseEmailUsAt": m49, + "pleaseEmailUsAt": m52, "pleaseGrantPermissions": MessageLookupByLibrary.simpleMessage("Concedi i permessi"), "pleaseLoginAgain": MessageLookupByLibrary.simpleMessage( "Effettua nuovamente l\'accesso"), "pleaseSelectQuickLinksToRemove": MessageLookupByLibrary.simpleMessage( "Si prega di selezionare i link rapidi da rimuovere"), - "pleaseSendTheLogsTo": m50, + "pleaseSendTheLogsTo": m53, "pleaseTryAgain": MessageLookupByLibrary.simpleMessage("Riprova"), "pleaseVerifyTheCodeYouHaveEntered": MessageLookupByLibrary.simpleMessage( @@ -1311,7 +1311,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Backup privato"), "privateSharing": MessageLookupByLibrary.simpleMessage("Condivisioni private"), - "processingImport": m51, + "processingImport": m54, "publicLinkCreated": MessageLookupByLibrary.simpleMessage("Link pubblico creato"), "publicLinkEnabled": @@ -1322,7 +1322,7 @@ class MessageLookup extends MessageLookupByLibrary { "raiseTicket": MessageLookupByLibrary.simpleMessage("Invia ticket"), "rateTheApp": MessageLookupByLibrary.simpleMessage("Valuta l\'app"), "rateUs": MessageLookupByLibrary.simpleMessage("Lascia una recensione"), - "rateUsOnStore": m52, + "rateUsOnStore": m55, "recover": MessageLookupByLibrary.simpleMessage("Recupera"), "recoverAccount": MessageLookupByLibrary.simpleMessage("Recupera account"), @@ -1358,7 +1358,7 @@ class MessageLookup extends MessageLookupByLibrary { "1. Condividi questo codice con i tuoi amici"), "referralStep2": MessageLookupByLibrary.simpleMessage( "2. Si iscrivono per un piano a pagamento"), - "referralStep3": m53, + "referralStep3": m59, "referrals": MessageLookupByLibrary.simpleMessage("Invita un Amico"), "referralsAreCurrentlyPaused": MessageLookupByLibrary.simpleMessage( "I referral code sono attualmente in pausa"), @@ -1384,7 +1384,7 @@ class MessageLookup extends MessageLookupByLibrary { "removeLink": MessageLookupByLibrary.simpleMessage("Elimina link"), "removeParticipant": MessageLookupByLibrary.simpleMessage("Rimuovi partecipante"), - "removeParticipantBody": m54, + "removeParticipantBody": m60, "removePersonLabel": MessageLookupByLibrary.simpleMessage("Rimuovi etichetta persona"), "removePublicLink": @@ -1402,7 +1402,7 @@ class MessageLookup extends MessageLookupByLibrary { "renameFile": MessageLookupByLibrary.simpleMessage("Rinomina file"), "renewSubscription": MessageLookupByLibrary.simpleMessage("Rinnova abbonamento"), - "renewsOn": m55, + "renewsOn": m61, "reportABug": MessageLookupByLibrary.simpleMessage("Segnala un bug"), "reportBug": MessageLookupByLibrary.simpleMessage("Segnala un bug"), "resendEmail": MessageLookupByLibrary.simpleMessage("Rinvia email"), @@ -1475,7 +1475,7 @@ class MessageLookup extends MessageLookupByLibrary { "Raggruppa foto scattate entro un certo raggio da una foto"), "searchPeopleEmptySection": MessageLookupByLibrary.simpleMessage( "Invita persone e vedrai qui tutte le foto condivise da loro"), - "searchResultCount": m56, + "searchResultCount": m62, "security": MessageLookupByLibrary.simpleMessage("Sicurezza"), "selectALocation": MessageLookupByLibrary.simpleMessage("Seleziona un luogo"), @@ -1506,7 +1506,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage( "Gli elementi selezionati verranno eliminati da tutti gli album e spostati nel cestino."), "selectedPhotos": m4, - "selectedPhotosWithYours": m58, + "selectedPhotosWithYours": m64, "send": MessageLookupByLibrary.simpleMessage("Invia"), "sendEmail": MessageLookupByLibrary.simpleMessage("Invia email"), "sendInvite": MessageLookupByLibrary.simpleMessage("Invita"), @@ -1538,16 +1538,16 @@ class MessageLookup extends MessageLookupByLibrary { "shareAnAlbumNow": MessageLookupByLibrary.simpleMessage("Condividi un album"), "shareLink": MessageLookupByLibrary.simpleMessage("Condividi link"), - "shareMyVerificationID": m59, + "shareMyVerificationID": m65, "shareOnlyWithThePeopleYouWant": MessageLookupByLibrary.simpleMessage( "Condividi solo con le persone che vuoi"), "shareTextConfirmOthersVerificationID": m5, "shareTextRecommendUsingEnte": MessageLookupByLibrary.simpleMessage( "Scarica Ente in modo da poter facilmente condividere foto e video in qualità originale\n\nhttps://ente.io"), - "shareTextReferralCode": m60, + "shareTextReferralCode": m66, "shareWithNonenteUsers": MessageLookupByLibrary.simpleMessage( "Condividi con utenti che non hanno un account Ente"), - "shareWithPeopleSectionTitle": m61, + "shareWithPeopleSectionTitle": m67, "shareYourFirstAlbum": MessageLookupByLibrary.simpleMessage( "Condividi il tuo primo album"), "sharedAlbumSectionDescription": MessageLookupByLibrary.simpleMessage( @@ -1558,7 +1558,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Nuove foto condivise"), "sharedPhotoNotificationsExplanation": MessageLookupByLibrary.simpleMessage( "Ricevi notifiche quando qualcuno aggiunge una foto a un album condiviso, di cui fai parte"), - "sharedWith": m62, + "sharedWith": m68, "sharedWithMe": MessageLookupByLibrary.simpleMessage("Condivisi con me"), "sharedWithYou": @@ -1575,11 +1575,11 @@ class MessageLookup extends MessageLookupByLibrary { "Esci dagli altri dispositivi"), "signUpTerms": MessageLookupByLibrary.simpleMessage( "Accetto i termini di servizio e la politica sulla privacy"), - "singleFileDeleteFromDevice": m63, + "singleFileDeleteFromDevice": m69, "singleFileDeleteHighlight": MessageLookupByLibrary.simpleMessage( "Verrà eliminato da tutti gli album."), - "singleFileInBothLocalAndRemote": m64, - "singleFileInRemoteOnly": m65, + "singleFileInBothLocalAndRemote": m70, + "singleFileInRemoteOnly": m71, "skip": MessageLookupByLibrary.simpleMessage("Salta"), "social": MessageLookupByLibrary.simpleMessage("Social"), "someItemsAreInBothEnteAndYourDevice": @@ -1629,10 +1629,10 @@ class MessageLookup extends MessageLookupByLibrary { "storageInGB": m1, "storageLimitExceeded": MessageLookupByLibrary.simpleMessage( "Limite d\'archiviazione superato"), - "storageUsageInfo": m66, + "storageUsageInfo": m72, "strongStrength": MessageLookupByLibrary.simpleMessage("Forte"), - "subAlreadyLinkedErrMessage": m67, - "subWillBeCancelledOn": m68, + "subAlreadyLinkedErrMessage": m73, + "subWillBeCancelledOn": m74, "subscribe": MessageLookupByLibrary.simpleMessage("Iscriviti"), "subscribeToEnableSharing": MessageLookupByLibrary.simpleMessage( "È necessario un abbonamento a pagamento attivo per abilitare la condivisione."), @@ -1649,7 +1649,7 @@ class MessageLookup extends MessageLookupByLibrary { "suggestFeatures": MessageLookupByLibrary.simpleMessage("Suggerisci una funzionalità"), "support": MessageLookupByLibrary.simpleMessage("Assistenza"), - "syncProgress": m69, + "syncProgress": m75, "syncStopped": MessageLookupByLibrary.simpleMessage("Sincronizzazione interrotta"), "syncing": MessageLookupByLibrary.simpleMessage( @@ -1682,7 +1682,7 @@ class MessageLookup extends MessageLookupByLibrary { "theseItemsWillBeDeletedFromYourDevice": MessageLookupByLibrary.simpleMessage( "Questi file verranno eliminati dal tuo dispositivo."), - "theyAlsoGetXGb": m71, + "theyAlsoGetXGb": m77, "theyWillBeDeletedFromAllAlbums": MessageLookupByLibrary.simpleMessage( "Verranno eliminati da tutti gli album."), "thisActionCannotBeUndone": MessageLookupByLibrary.simpleMessage( @@ -1699,7 +1699,7 @@ class MessageLookup extends MessageLookupByLibrary { "Questo indirizzo email è già registrato"), "thisImageHasNoExifData": MessageLookupByLibrary.simpleMessage( "Questa immagine non ha dati EXIF"), - "thisIsPersonVerificationId": m72, + "thisIsPersonVerificationId": m78, "thisIsYourVerificationId": MessageLookupByLibrary.simpleMessage( "Questo è il tuo ID di verifica"), "thisWillLogYouOutOfTheFollowingDevice": @@ -1771,7 +1771,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Acquista altro spazio"), "uploadingFilesToAlbum": MessageLookupByLibrary.simpleMessage( "Caricamento dei file nell\'album..."), - "uploadingMultipleMemories": m76, + "uploadingMultipleMemories": m83, "uploadingSingleMemory": MessageLookupByLibrary.simpleMessage("Conservando 1 ricordo..."), "upto50OffUntil4thDec": MessageLookupByLibrary.simpleMessage( @@ -1788,7 +1788,7 @@ class MessageLookup extends MessageLookupByLibrary { "useSelectedPhoto": MessageLookupByLibrary.simpleMessage("Usa la foto selezionata"), "usedSpace": MessageLookupByLibrary.simpleMessage("Spazio utilizzato"), - "validTill": m77, + "validTill": m84, "verificationFailedPleaseTryAgain": MessageLookupByLibrary.simpleMessage( "Verifica fallita, per favore prova di nuovo"), @@ -1796,7 +1796,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("ID di verifica"), "verify": MessageLookupByLibrary.simpleMessage("Verifica"), "verifyEmail": MessageLookupByLibrary.simpleMessage("Verifica email"), - "verifyEmailID": m78, + "verifyEmailID": m85, "verifyIDLabel": MessageLookupByLibrary.simpleMessage("Verifica"), "verifyPasskey": MessageLookupByLibrary.simpleMessage("Verifica passkey"), @@ -1841,7 +1841,7 @@ class MessageLookup extends MessageLookupByLibrary { "whatsNew": MessageLookupByLibrary.simpleMessage("Novità"), "yearShort": MessageLookupByLibrary.simpleMessage("anno"), "yearly": MessageLookupByLibrary.simpleMessage("Annuale"), - "yearsAgo": m80, + "yearsAgo": m87, "yes": MessageLookupByLibrary.simpleMessage("Si"), "yesCancel": MessageLookupByLibrary.simpleMessage("Sì, cancella"), "yesConvertToViewer": MessageLookupByLibrary.simpleMessage( @@ -1873,7 +1873,7 @@ class MessageLookup extends MessageLookupByLibrary { "Non puoi condividere con te stesso"), "youDontHaveAnyArchivedItems": MessageLookupByLibrary.simpleMessage( "Non hai nulla di archiviato."), - "youHaveSuccessfullyFreedUp": m81, + "youHaveSuccessfullyFreedUp": m88, "yourAccountHasBeenDeleted": MessageLookupByLibrary.simpleMessage( "Il tuo account è stato eliminato"), "yourMap": MessageLookupByLibrary.simpleMessage("La tua mappa"), diff --git a/mobile/lib/generated/intl/messages_ja.dart b/mobile/lib/generated/intl/messages_ja.dart index 7cfd9593191..fd0bc7526e2 100644 --- a/mobile/lib/generated/intl/messages_ja.dart +++ b/mobile/lib/generated/intl/messages_ja.dart @@ -59,155 +59,155 @@ class MessageLookup extends MessageLookupByLibrary { static String m18(albumName) => "${albumName} のコラボレーションリンクを生成しました"; - static String m19(familyAdminEmail) => + static String m21(familyAdminEmail) => "サブスクリプションを管理するには、 ${familyAdminEmail} に連絡してください"; - static String m20(provider) => + static String m22(provider) => "${provider} サブスクリプションを管理するには、support@ente.io までご連絡ください。"; - static String m21(endpoint) => "${endpoint} に接続しました"; + static String m23(endpoint) => "${endpoint} に接続しました"; - static String m22(count) => + static String m24(count) => "${Intl.plural(count, one: '${count} 個の項目を削除', other: '${count} 個の項目を削除')}"; - static String m23(currentlyDeleting, totalCount) => + static String m25(currentlyDeleting, totalCount) => "${currentlyDeleting} / ${totalCount} を削除中"; - static String m24(albumName) => "\"${albumName}\" にアクセスするための公開リンクが削除されます。"; + static String m26(albumName) => "\"${albumName}\" にアクセスするための公開リンクが削除されます。"; - static String m25(supportEmail) => + static String m27(supportEmail) => "あなたの登録したメールアドレスから${supportEmail} にメールを送ってください"; - static String m26(count, storageSaved) => + static String m28(count, storageSaved) => "お掃除しました ${Intl.plural(count, one: '${count} 個の重複ファイル', other: '${count} 個の重複ファイル')}, (${storageSaved}が開放されます!)"; - static String m27(count, formattedSize) => + static String m29(count, formattedSize) => "${count} 個のファイル、それぞれ${formattedSize}"; - static String m28(newEmail) => "メールアドレスが ${newEmail} に変更されました"; + static String m30(newEmail) => "メールアドレスが ${newEmail} に変更されました"; - static String m29(email) => + static String m31(email) => "${email} はEnteアカウントを持っていません。\n\n写真を共有するために「招待」を送信してください。"; - static String m30(text) => "${text} の写真が見つかりました"; + static String m32(text) => "${text} の写真が見つかりました"; - static String m31(count, formattedNumber) => + static String m33(count, formattedNumber) => "${Intl.plural(count, other: '${formattedNumber} 個のファイル')} が安全にバックアップされました"; - static String m32(count, formattedNumber) => + static String m34(count, formattedNumber) => "${Intl.plural(count, other: '${formattedNumber} ファイル')} が安全にバックアップされました"; - static String m33(storageAmountInGB) => + static String m35(storageAmountInGB) => "誰かが有料プランにサインアップしてコードを適用する度に ${storageAmountInGB} GB"; - static String m34(endDate) => "無料トライアルは${endDate} までです"; + static String m36(endDate) => "無料トライアルは${endDate} までです"; - static String m35(count) => + static String m37(count) => "あなたが有効なサブスクリプションを持っている限りEnte上の ${Intl.plural(count, other: 'それらに')} アクセスできます"; - static String m36(sizeInMBorGB) => "${sizeInMBorGB} を解放する"; + static String m38(sizeInMBorGB) => "${sizeInMBorGB} を解放する"; - static String m37(count, formattedSize) => + static String m39(count, formattedSize) => "${Intl.plural(count, other: 'デバイスから削除して${formattedSize} 解放することができます')}"; - static String m38(currentlyProcessing, totalCount) => + static String m40(currentlyProcessing, totalCount) => "${currentlyProcessing} / ${totalCount} を処理中"; - static String m39(count) => "${Intl.plural(count, other: '${count}個のアイテム')}"; + static String m41(count) => "${Intl.plural(count, other: '${count}個のアイテム')}"; - static String m40(expiryTime) => "リンクは ${expiryTime} に期限切れになります"; + static String m43(expiryTime) => "リンクは ${expiryTime} に期限切れになります"; static String m3(count, formattedCount) => "${Intl.plural(count, zero: '思い出なし', one: '${formattedCount} 思い出', other: '${formattedCount} 思い出')}"; - static String m41(count) => + static String m44(count) => "${Intl.plural(count, one: '項目を移動', other: '項目を移動')}"; - static String m42(albumName) => "${albumName} に移動しました"; + static String m45(albumName) => "${albumName} に移動しました"; - static String m44(name) => "${name} ではありませんか?"; + static String m47(name) => "${name} ではありませんか?"; - static String m45(familyAdminEmail) => + static String m48(familyAdminEmail) => "コードを変更するには、 ${familyAdminEmail} までご連絡ください。"; static String m0(passwordStrengthValue) => "パスワードの長さ: ${passwordStrengthValue}"; - static String m46(providerName) => "請求された場合は、 ${providerName} のサポートに連絡してください"; + static String m49(providerName) => "請求された場合は、 ${providerName} のサポートに連絡してください"; - static String m48(endDate) => + static String m51(endDate) => "${endDate} まで無料トライアルが有効です。\nその後、有料プランを選択することができます。"; - static String m49(toEmail) => "${toEmail} にメールでご連絡ください"; + static String m52(toEmail) => "${toEmail} にメールでご連絡ください"; - static String m50(toEmail) => "ログを以下のアドレスに送信してください \n${toEmail}"; + static String m53(toEmail) => "ログを以下のアドレスに送信してください \n${toEmail}"; - static String m51(folderName) => "${folderName} を処理中..."; + static String m54(folderName) => "${folderName} を処理中..."; - static String m52(storeName) => "${storeName} で評価"; + static String m55(storeName) => "${storeName} で評価"; - static String m53(storageInGB) => "3. お二人とも ${storageInGB} GB*を無料で手に入ります。"; + static String m59(storageInGB) => "3. お二人とも ${storageInGB} GB*を無料で手に入ります。"; - static String m54(userEmail) => + static String m60(userEmail) => "${userEmail} はこの共有アルバムから退出します\n\n${userEmail} が追加した写真もアルバムから削除されます"; - static String m55(endDate) => "サブスクリプションは ${endDate} に更新します"; + static String m61(endDate) => "サブスクリプションは ${endDate} に更新します"; - static String m56(count) => + static String m62(count) => "${Intl.plural(count, one: '${count} 個の結果', other: '${count} 個の結果')}"; static String m4(count) => "${count} 個を選択"; - static String m58(count, yourCount) => "${count} 個選択中(${yourCount} あなた)"; + static String m64(count, yourCount) => "${count} 個選択中(${yourCount} あなた)"; - static String m59(verificationID) => "私の確認ID: ente.ioの ${verificationID}"; + static String m65(verificationID) => "私の確認ID: ente.ioの ${verificationID}"; static String m5(verificationID) => "これがあなたのente.io確認用IDであることを確認できますか? ${verificationID}"; - static String m60(referralCode, referralStorageInGB) => + static String m66(referralCode, referralStorageInGB) => "リフェラルコード: ${referralCode}\n\n設定→一般→リフェラルで使うことで${referralStorageInGB}が無料になります(あなたが有料プランに加入したあと)。\n\nhttps://ente.io"; - static String m61(numberOfPeople) => + static String m67(numberOfPeople) => "${Intl.plural(numberOfPeople, zero: '誰かと共有しましょう', one: '1人と共有されています', other: '${numberOfPeople} 人と共有されています')}"; - static String m62(emailIDs) => "${emailIDs} と共有中"; + static String m68(emailIDs) => "${emailIDs} と共有中"; - static String m63(fileType) => "${fileType} はEnteから削除されます。"; + static String m69(fileType) => "${fileType} はEnteから削除されます。"; - static String m64(fileType) => "この ${fileType} はEnteとお使いのデバイスの両方にあります。"; + static String m70(fileType) => "この ${fileType} はEnteとお使いのデバイスの両方にあります。"; - static String m65(fileType) => "${fileType} はEnteから削除されます。"; + static String m71(fileType) => "${fileType} はEnteから削除されます。"; static String m1(storageAmountInGB) => "${storageAmountInGB} GB"; - static String m66( + static String m72( usedAmount, usedStorageUnit, totalAmount, totalStorageUnit) => "${usedAmount} ${usedStorageUnit} / ${totalAmount} ${totalStorageUnit} 使用"; - static String m67(id) => + static String m73(id) => "あなたの ${id} はすでに別のEnteアカウントにリンクされています。\nこのアカウントであなたの ${id} を使用したい場合は、サポートにお問い合わせください。"; - static String m68(endDate) => "サブスクリプションは ${endDate} でキャンセルされます"; + static String m74(endDate) => "サブスクリプションは ${endDate} でキャンセルされます"; - static String m69(completed, total) => "${completed}/${total} のメモリが保存されました"; + static String m75(completed, total) => "${completed}/${total} のメモリが保存されました"; - static String m71(storageAmountInGB) => "紹介者も ${storageAmountInGB} GB を得ます"; + static String m77(storageAmountInGB) => "紹介者も ${storageAmountInGB} GB を得ます"; - static String m72(email) => "これは ${email} の確認用ID"; + static String m78(email) => "これは ${email} の確認用ID"; - static String m76(count) => "${count} メモリを保存しています..."; + static String m83(count) => "${count} メモリを保存しています..."; - static String m77(endDate) => "${endDate} まで"; + static String m84(endDate) => "${endDate} まで"; - static String m78(email) => "${email} を確認"; + static String m85(email) => "${email} を確認"; static String m2(email) => "${email}にメールを送りました"; - static String m80(count) => + static String m87(count) => "${Intl.plural(count, one: '${count} 年前', other: '${count} 年前')}"; - static String m81(storageSaved) => "${storageSaved} を解放しました"; + static String m88(storageSaved) => "${storageSaved} を解放しました"; final messages = _notInlinedMessages(_notInlinedMessages); static Map _notInlinedMessages(_) => { @@ -468,9 +468,9 @@ class MessageLookup extends MessageLookupByLibrary { "confirmYourRecoveryKey": MessageLookupByLibrary.simpleMessage("リカバリーキーを確認"), "connectToDevice": MessageLookupByLibrary.simpleMessage("デバイスに接続"), - "contactFamilyAdmin": m19, + "contactFamilyAdmin": m21, "contactSupport": MessageLookupByLibrary.simpleMessage("お問い合わせ"), - "contactToManageSubscription": m20, + "contactToManageSubscription": m22, "contacts": MessageLookupByLibrary.simpleMessage("連絡先"), "contents": MessageLookupByLibrary.simpleMessage("内容"), "continueLabel": MessageLookupByLibrary.simpleMessage("つづける"), @@ -506,7 +506,7 @@ class MessageLookup extends MessageLookupByLibrary { "crop": MessageLookupByLibrary.simpleMessage("クロップ"), "currentUsageIs": MessageLookupByLibrary.simpleMessage("現在の使用状況 "), "custom": MessageLookupByLibrary.simpleMessage("カスタム"), - "customEndpoint": m21, + "customEndpoint": m23, "darkTheme": MessageLookupByLibrary.simpleMessage("ダーク"), "dayToday": MessageLookupByLibrary.simpleMessage("今日"), "dayYesterday": MessageLookupByLibrary.simpleMessage("昨日"), @@ -535,10 +535,10 @@ class MessageLookup extends MessageLookupByLibrary { "deleteFromBoth": MessageLookupByLibrary.simpleMessage("両方から削除"), "deleteFromDevice": MessageLookupByLibrary.simpleMessage("デバイスから削除"), "deleteFromEnte": MessageLookupByLibrary.simpleMessage("Enteから削除"), - "deleteItemCount": m22, + "deleteItemCount": m24, "deleteLocation": MessageLookupByLibrary.simpleMessage("位置情報を削除"), "deletePhotos": MessageLookupByLibrary.simpleMessage("写真を削除"), - "deleteProgress": m23, + "deleteProgress": m25, "deleteReason1": MessageLookupByLibrary.simpleMessage("いちばん必要な機能がない"), "deleteReason2": MessageLookupByLibrary.simpleMessage("アプリや特定の機能が想定通りに動かない"), @@ -570,7 +570,7 @@ class MessageLookup extends MessageLookupByLibrary { "ビューアーはスクリーンショットを撮ったり、外部ツールを使用して写真のコピーを保存したりすることができます"), "disableDownloadWarningTitle": MessageLookupByLibrary.simpleMessage("ご注意ください"), - "disableLinkMessage": m24, + "disableLinkMessage": m26, "disableTwofactor": MessageLookupByLibrary.simpleMessage("2段階認証を無効にする"), "disablingTwofactorAuthentication": MessageLookupByLibrary.simpleMessage("2要素認証を無効にしています..."), @@ -605,9 +605,9 @@ class MessageLookup extends MessageLookupByLibrary { "download": MessageLookupByLibrary.simpleMessage("ダウンロード"), "downloadFailed": MessageLookupByLibrary.simpleMessage("ダウンロード失敗"), "downloading": MessageLookupByLibrary.simpleMessage("ダウンロード中…"), - "dropSupportEmail": m25, - "duplicateFileCountWithStorageSaved": m26, - "duplicateItemsGroup": m27, + "dropSupportEmail": m27, + "duplicateFileCountWithStorageSaved": m28, + "duplicateItemsGroup": m29, "edit": MessageLookupByLibrary.simpleMessage("編集"), "editLocation": MessageLookupByLibrary.simpleMessage("位置情報を編集"), "editLocationTagTitle": MessageLookupByLibrary.simpleMessage("位置情報を編集"), @@ -617,8 +617,8 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("位置情報の編集はEnteでのみ表示されます"), "eligible": MessageLookupByLibrary.simpleMessage("対象となる"), "email": MessageLookupByLibrary.simpleMessage("Eメール"), - "emailChangedTo": m28, - "emailNoEnteAccount": m29, + "emailChangedTo": m30, + "emailNoEnteAccount": m31, "emailVerificationToggle": MessageLookupByLibrary.simpleMessage("メール確認"), "emailYourLogs": MessageLookupByLibrary.simpleMessage("ログをメールで送信"), @@ -685,7 +685,7 @@ class MessageLookup extends MessageLookupByLibrary { "exportYourData": MessageLookupByLibrary.simpleMessage("データをエクスポート"), "extraPhotosFound": MessageLookupByLibrary.simpleMessage("追加の写真が見つかりました"), - "extraPhotosFoundFor": m30, + "extraPhotosFoundFor": m32, "faceRecognition": MessageLookupByLibrary.simpleMessage("顔認識"), "faces": MessageLookupByLibrary.simpleMessage("顔"), "failedToApplyCode": @@ -717,8 +717,8 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("ファイルをギャラリーに保存しました"), "fileTypes": MessageLookupByLibrary.simpleMessage("ファイルの種類"), "fileTypesAndNames": MessageLookupByLibrary.simpleMessage("ファイルの種類と名前"), - "filesBackedUpFromDevice": m31, - "filesBackedUpInAlbum": m32, + "filesBackedUpFromDevice": m33, + "filesBackedUpInAlbum": m34, "filesDeleted": MessageLookupByLibrary.simpleMessage("削除されたファイル"), "filesSavedToGallery": MessageLookupByLibrary.simpleMessage("ギャラリーに保存されたファイル"), @@ -729,25 +729,25 @@ class MessageLookup extends MessageLookupByLibrary { "forgotPassword": MessageLookupByLibrary.simpleMessage("パスワードを忘れた"), "foundFaces": MessageLookupByLibrary.simpleMessage("見つかった顔"), "freeStorageClaimed": MessageLookupByLibrary.simpleMessage("空き容量を受け取る"), - "freeStorageOnReferralSuccess": m33, + "freeStorageOnReferralSuccess": m35, "freeStorageUsable": MessageLookupByLibrary.simpleMessage("無料のストレージが利用可能です"), "freeTrial": MessageLookupByLibrary.simpleMessage("無料トライアル"), - "freeTrialValidTill": m34, - "freeUpAccessPostDelete": m35, - "freeUpAmount": m36, + "freeTrialValidTill": m36, + "freeUpAccessPostDelete": m37, + "freeUpAmount": m38, "freeUpDeviceSpace": MessageLookupByLibrary.simpleMessage("デバイスの空き領域を解放する"), "freeUpDeviceSpaceDesc": MessageLookupByLibrary.simpleMessage( "すでにバックアップされているファイルを消去して、デバイスの容量を空けます。"), "freeUpSpace": MessageLookupByLibrary.simpleMessage("スペースを解放する"), - "freeUpSpaceSaving": m37, + "freeUpSpaceSaving": m39, "galleryMemoryLimitInfo": MessageLookupByLibrary.simpleMessage("ギャラリーに表示されるメモリは最大1000個までです"), "general": MessageLookupByLibrary.simpleMessage("設定"), "generatingEncryptionKeys": MessageLookupByLibrary.simpleMessage("暗号化鍵を生成しています"), - "genericProgress": m38, + "genericProgress": m40, "goToSettings": MessageLookupByLibrary.simpleMessage("設定に移動"), "googlePlayId": MessageLookupByLibrary.simpleMessage("Google Play ID"), "grantFullAccessPrompt": MessageLookupByLibrary.simpleMessage( @@ -816,7 +816,7 @@ class MessageLookup extends MessageLookupByLibrary { "itLooksLikeSomethingWentWrongPleaseRetryAfterSome": MessageLookupByLibrary.simpleMessage( "問題が発生したようです。しばらくしてから再試行してください。エラーが解決しない場合は、サポートチームにお問い合わせください。"), - "itemCount": m39, + "itemCount": m41, "itemsShowTheNumberOfDaysRemainingBeforePermanentDeletion": MessageLookupByLibrary.simpleMessage("完全に削除されるまでの日数が項目に表示されます"), "itemsWillBeRemovedFromAlbum": @@ -841,7 +841,7 @@ class MessageLookup extends MessageLookupByLibrary { "linkDeviceLimit": MessageLookupByLibrary.simpleMessage("デバイスの制限"), "linkEnabled": MessageLookupByLibrary.simpleMessage("有効"), "linkExpired": MessageLookupByLibrary.simpleMessage("期限切れ"), - "linkExpiresOn": m40, + "linkExpiresOn": m43, "linkExpiry": MessageLookupByLibrary.simpleMessage("リンクの期限切れ"), "linkHasExpired": MessageLookupByLibrary.simpleMessage("リンクは期限切れです"), "linkNeverExpires": MessageLookupByLibrary.simpleMessage("なし"), @@ -942,10 +942,10 @@ class MessageLookup extends MessageLookupByLibrary { "moreDetails": MessageLookupByLibrary.simpleMessage("さらに詳細を表示"), "mostRecent": MessageLookupByLibrary.simpleMessage("新しい順"), "mostRelevant": MessageLookupByLibrary.simpleMessage("関連度順"), - "moveItem": m41, + "moveItem": m44, "moveToAlbum": MessageLookupByLibrary.simpleMessage("アルバムに移動"), "moveToHiddenAlbum": MessageLookupByLibrary.simpleMessage("隠しアルバムに移動"), - "movedSuccessfullyTo": m42, + "movedSuccessfullyTo": m45, "movedToTrash": MessageLookupByLibrary.simpleMessage("ごみ箱へ移動"), "movingFilesToAlbum": MessageLookupByLibrary.simpleMessage("アルバムにファイルを移動中"), @@ -989,7 +989,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("一致する結果が見つかりませんでした"), "noSystemLockFound": MessageLookupByLibrary.simpleMessage("システムロックが見つかりませんでした"), - "notPersonLabel": m44, + "notPersonLabel": m47, "nothingSharedWithYouYet": MessageLookupByLibrary.simpleMessage("あなたに共有されたものはありません"), "nothingToSeeHere": @@ -999,7 +999,7 @@ class MessageLookup extends MessageLookupByLibrary { "onDevice": MessageLookupByLibrary.simpleMessage("デバイス上"), "onEnte": MessageLookupByLibrary.simpleMessage( "Enteで保管"), - "onlyFamilyAdminCanChangeCode": m45, + "onlyFamilyAdminCanChangeCode": m48, "oops": MessageLookupByLibrary.simpleMessage("Oops"), "oopsCouldNotSaveEdits": MessageLookupByLibrary.simpleMessage("編集を保存できませんでした"), @@ -1036,7 +1036,7 @@ class MessageLookup extends MessageLookupByLibrary { "paymentFailed": MessageLookupByLibrary.simpleMessage("支払いに失敗しました"), "paymentFailedMessage": MessageLookupByLibrary.simpleMessage( "残念ながらお支払いに失敗しました。サポートにお問い合わせください。お手伝いします!"), - "paymentFailedTalkToProvider": m46, + "paymentFailedTalkToProvider": m49, "pendingItems": MessageLookupByLibrary.simpleMessage("処理待ちの項目"), "pendingSync": MessageLookupByLibrary.simpleMessage("同期を保留中"), "people": MessageLookupByLibrary.simpleMessage("人物"), @@ -1058,7 +1058,7 @@ class MessageLookup extends MessageLookupByLibrary { "pinAlbum": MessageLookupByLibrary.simpleMessage("アルバムをピンする"), "pinLock": MessageLookupByLibrary.simpleMessage("PINロック"), "playOnTv": MessageLookupByLibrary.simpleMessage("TVでアルバムを再生"), - "playStoreFreeTrialValidTill": m48, + "playStoreFreeTrialValidTill": m51, "playstoreSubscription": MessageLookupByLibrary.simpleMessage("PlayStoreサブスクリプション"), "pleaseCheckYourInternetConnectionAndTryAgain": @@ -1068,13 +1068,13 @@ class MessageLookup extends MessageLookupByLibrary { "Support@ente.ioにお問い合わせください、お手伝いいたします。"), "pleaseContactSupportIfTheProblemPersists": MessageLookupByLibrary.simpleMessage("問題が解決しない場合はサポートにお問い合わせください"), - "pleaseEmailUsAt": m49, + "pleaseEmailUsAt": m52, "pleaseGrantPermissions": MessageLookupByLibrary.simpleMessage("権限を付与してください"), "pleaseLoginAgain": MessageLookupByLibrary.simpleMessage("もう一度試してください"), "pleaseSelectQuickLinksToRemove": MessageLookupByLibrary.simpleMessage("削除するクイックリンクを選択してください"), - "pleaseSendTheLogsTo": m50, + "pleaseSendTheLogsTo": m53, "pleaseTryAgain": MessageLookupByLibrary.simpleMessage("もう一度試してください"), "pleaseVerifyTheCodeYouHaveEntered": MessageLookupByLibrary.simpleMessage("入力したコードを確認してください"), @@ -1094,7 +1094,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("プライバシーポリシー"), "privateBackups": MessageLookupByLibrary.simpleMessage("プライベートバックアップ"), "privateSharing": MessageLookupByLibrary.simpleMessage("プライベート共有"), - "processingImport": m51, + "processingImport": m54, "publicLinkCreated": MessageLookupByLibrary.simpleMessage("公開リンクが作成されました"), "publicLinkEnabled": @@ -1104,7 +1104,7 @@ class MessageLookup extends MessageLookupByLibrary { "raiseTicket": MessageLookupByLibrary.simpleMessage("サポートを受ける"), "rateTheApp": MessageLookupByLibrary.simpleMessage("アプリを評価"), "rateUs": MessageLookupByLibrary.simpleMessage("評価して下さい"), - "rateUsOnStore": m52, + "rateUsOnStore": m55, "recover": MessageLookupByLibrary.simpleMessage("復元"), "recoverAccount": MessageLookupByLibrary.simpleMessage("アカウントを復元"), "recoverButton": MessageLookupByLibrary.simpleMessage("復元"), @@ -1136,7 +1136,7 @@ class MessageLookup extends MessageLookupByLibrary { "referralStep1": MessageLookupByLibrary.simpleMessage("1. このコードを友達に贈りましょう"), "referralStep2": MessageLookupByLibrary.simpleMessage("2. 友達が有料プランに登録"), - "referralStep3": m53, + "referralStep3": m59, "referrals": MessageLookupByLibrary.simpleMessage("リフェラル"), "referralsAreCurrentlyPaused": MessageLookupByLibrary.simpleMessage("リフェラルは現在一時停止しています"), @@ -1159,7 +1159,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("お気に入りリストから外す"), "removeLink": MessageLookupByLibrary.simpleMessage("リンクを削除"), "removeParticipant": MessageLookupByLibrary.simpleMessage("参加者を削除"), - "removeParticipantBody": m54, + "removeParticipantBody": m60, "removePersonLabel": MessageLookupByLibrary.simpleMessage("人名を削除"), "removePublicLink": MessageLookupByLibrary.simpleMessage("公開リンクを削除"), "removePublicLinks": MessageLookupByLibrary.simpleMessage("公開リンクを削除"), @@ -1174,7 +1174,7 @@ class MessageLookup extends MessageLookupByLibrary { "renameFile": MessageLookupByLibrary.simpleMessage("ファイル名を変更"), "renewSubscription": MessageLookupByLibrary.simpleMessage("サブスクリプションの更新"), - "renewsOn": m55, + "renewsOn": m61, "reportABug": MessageLookupByLibrary.simpleMessage("バグを報告"), "reportBug": MessageLookupByLibrary.simpleMessage("バグを報告"), "resendEmail": MessageLookupByLibrary.simpleMessage("メールを再送信"), @@ -1233,7 +1233,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("当時の直近で撮影された写真をグループ化"), "searchPeopleEmptySection": MessageLookupByLibrary.simpleMessage("友達を招待すると、共有される写真はここから閲覧できます"), - "searchResultCount": m56, + "searchResultCount": m62, "security": MessageLookupByLibrary.simpleMessage("セキュリティ"), "selectALocation": MessageLookupByLibrary.simpleMessage("場所を選択"), "selectALocationFirst": @@ -1256,7 +1256,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage( "選択したアイテムはすべてのアルバムから削除され、ゴミ箱に移動されます。"), "selectedPhotos": m4, - "selectedPhotosWithYours": m58, + "selectedPhotosWithYours": m64, "send": MessageLookupByLibrary.simpleMessage("送信"), "sendEmail": MessageLookupByLibrary.simpleMessage("メールを送信する"), "sendInvite": MessageLookupByLibrary.simpleMessage("招待を送る"), @@ -1278,16 +1278,16 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("アルバムを開いて右上のシェアボタンをタップ"), "shareAnAlbumNow": MessageLookupByLibrary.simpleMessage("アルバムを共有"), "shareLink": MessageLookupByLibrary.simpleMessage("リンクの共有"), - "shareMyVerificationID": m59, + "shareMyVerificationID": m65, "shareOnlyWithThePeopleYouWant": MessageLookupByLibrary.simpleMessage("選んだ人と共有します"), "shareTextConfirmOthersVerificationID": m5, "shareTextRecommendUsingEnte": MessageLookupByLibrary.simpleMessage( "Enteをダウンロードして、写真や動画の共有を簡単に!\n\nhttps://ente.io"), - "shareTextReferralCode": m60, + "shareTextReferralCode": m66, "shareWithNonenteUsers": MessageLookupByLibrary.simpleMessage("Enteを使っていない人に共有"), - "shareWithPeopleSectionTitle": m61, + "shareWithPeopleSectionTitle": m67, "shareYourFirstAlbum": MessageLookupByLibrary.simpleMessage("アルバムの共有をしてみましょう"), "sharedAlbumSectionDescription": MessageLookupByLibrary.simpleMessage( @@ -1298,7 +1298,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("新しい共有写真"), "sharedPhotoNotificationsExplanation": MessageLookupByLibrary.simpleMessage("誰かが写真を共有アルバムに追加した時に通知を受け取る"), - "sharedWith": m62, + "sharedWith": m68, "sharedWithMe": MessageLookupByLibrary.simpleMessage("あなたと共有されたアルバム"), "sharedWithYou": MessageLookupByLibrary.simpleMessage("あなたと共有されています"), "sharing": MessageLookupByLibrary.simpleMessage("共有中..."), @@ -1312,11 +1312,11 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("他のデバイスからサインアウトする"), "signUpTerms": MessageLookupByLibrary.simpleMessage( "利用規約プライバシーポリシーに同意します"), - "singleFileDeleteFromDevice": m63, + "singleFileDeleteFromDevice": m69, "singleFileDeleteHighlight": MessageLookupByLibrary.simpleMessage("全てのアルバムから削除されます。"), - "singleFileInBothLocalAndRemote": m64, - "singleFileInRemoteOnly": m65, + "singleFileInBothLocalAndRemote": m70, + "singleFileInRemoteOnly": m71, "skip": MessageLookupByLibrary.simpleMessage("スキップ"), "social": MessageLookupByLibrary.simpleMessage("SNS"), "someItemsAreInBothEnteAndYourDevice": @@ -1357,10 +1357,10 @@ class MessageLookup extends MessageLookupByLibrary { "storageInGB": m1, "storageLimitExceeded": MessageLookupByLibrary.simpleMessage("ストレージの上限を超えました"), - "storageUsageInfo": m66, + "storageUsageInfo": m72, "strongStrength": MessageLookupByLibrary.simpleMessage("強いパスワード"), - "subAlreadyLinkedErrMessage": m67, - "subWillBeCancelledOn": m68, + "subAlreadyLinkedErrMessage": m73, + "subWillBeCancelledOn": m74, "subscribe": MessageLookupByLibrary.simpleMessage("サブスクライブ"), "subscribeToEnableSharing": MessageLookupByLibrary.simpleMessage( "共有を有効にするには、有料サブスクリプションが必要です。"), @@ -1374,7 +1374,7 @@ class MessageLookup extends MessageLookupByLibrary { "successfullyUnhid": MessageLookupByLibrary.simpleMessage("非表示を解除しました"), "suggestFeatures": MessageLookupByLibrary.simpleMessage("機能を提案"), "support": MessageLookupByLibrary.simpleMessage("サポート"), - "syncProgress": m69, + "syncProgress": m75, "syncStopped": MessageLookupByLibrary.simpleMessage("同期が停止しました"), "syncing": MessageLookupByLibrary.simpleMessage("同期中..."), "systemTheme": MessageLookupByLibrary.simpleMessage("システム"), @@ -1397,7 +1397,7 @@ class MessageLookup extends MessageLookupByLibrary { "theme": MessageLookupByLibrary.simpleMessage("テーマ"), "theseItemsWillBeDeletedFromYourDevice": MessageLookupByLibrary.simpleMessage("これらの項目はデバイスから削除されます。"), - "theyAlsoGetXGb": m71, + "theyAlsoGetXGb": m77, "theyWillBeDeletedFromAllAlbums": MessageLookupByLibrary.simpleMessage("全てのアルバムから削除されます。"), "thisActionCannotBeUndone": @@ -1413,7 +1413,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("このメールアドレスはすでに使用されています。"), "thisImageHasNoExifData": MessageLookupByLibrary.simpleMessage("この画像にEXIFデータはありません"), - "thisIsPersonVerificationId": m72, + "thisIsPersonVerificationId": m78, "thisIsYourVerificationId": MessageLookupByLibrary.simpleMessage("これはあなたの認証IDです"), "thisWillLogYouOutOfTheFollowingDevice": @@ -1472,7 +1472,7 @@ class MessageLookup extends MessageLookupByLibrary { "upgrade": MessageLookupByLibrary.simpleMessage("アップグレード"), "uploadingFilesToAlbum": MessageLookupByLibrary.simpleMessage("アルバムにファイルをアップロード中"), - "uploadingMultipleMemories": m76, + "uploadingMultipleMemories": m83, "uploadingSingleMemory": MessageLookupByLibrary.simpleMessage("1メモリを保存しています..."), "upto50OffUntil4thDec": @@ -1486,13 +1486,13 @@ class MessageLookup extends MessageLookupByLibrary { "useRecoveryKey": MessageLookupByLibrary.simpleMessage("リカバリーキーを使用"), "useSelectedPhoto": MessageLookupByLibrary.simpleMessage("選択した写真を使用"), "usedSpace": MessageLookupByLibrary.simpleMessage("使用済み領域"), - "validTill": m77, + "validTill": m84, "verificationFailedPleaseTryAgain": MessageLookupByLibrary.simpleMessage("確認に失敗しました、再試行してください"), "verificationId": MessageLookupByLibrary.simpleMessage("確認用ID"), "verify": MessageLookupByLibrary.simpleMessage("確認"), "verifyEmail": MessageLookupByLibrary.simpleMessage("Eメールの確認"), - "verifyEmailID": m78, + "verifyEmailID": m85, "verifyIDLabel": MessageLookupByLibrary.simpleMessage("確認"), "verifyPasskey": MessageLookupByLibrary.simpleMessage("パスキーを確認"), "verifyPassword": MessageLookupByLibrary.simpleMessage("パスワードの確認"), @@ -1529,7 +1529,7 @@ class MessageLookup extends MessageLookupByLibrary { "welcomeBack": MessageLookupByLibrary.simpleMessage("おかえりなさい!"), "whatsNew": MessageLookupByLibrary.simpleMessage("最新情報"), "yearly": MessageLookupByLibrary.simpleMessage("年額"), - "yearsAgo": m80, + "yearsAgo": m87, "yes": MessageLookupByLibrary.simpleMessage("はい"), "yesCancel": MessageLookupByLibrary.simpleMessage("キャンセル"), "yesConvertToViewer": @@ -1557,7 +1557,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("自分自身と共有することはできません"), "youDontHaveAnyArchivedItems": MessageLookupByLibrary.simpleMessage("アーカイブした項目はありません"), - "youHaveSuccessfullyFreedUp": m81, + "youHaveSuccessfullyFreedUp": m88, "yourAccountHasBeenDeleted": MessageLookupByLibrary.simpleMessage("アカウントは削除されました"), "yourMap": MessageLookupByLibrary.simpleMessage("あなたの地図"), diff --git a/mobile/lib/generated/intl/messages_lt.dart b/mobile/lib/generated/intl/messages_lt.dart index 12627e0d773..df3c07850e0 100644 --- a/mobile/lib/generated/intl/messages_lt.dart +++ b/mobile/lib/generated/intl/messages_lt.dart @@ -44,125 +44,154 @@ class MessageLookup extends MessageLookupByLibrary { 'other': 'Jūs gavote ${storageAmountInGb} GB iki šiol.', })}"; - static String m82(count) => + static String m19(count) => "${Intl.plural(count, zero: 'Pridėta 0 bendradarbių', one: 'Pridėtas 1 bendradarbis', few: 'Pridėti ${count} bendradarbiai', many: 'Pridėta ${count} bendradarbio', other: 'Pridėta ${count} bendradarbių')}"; - static String m21(endpoint) => "Prijungta prie ${endpoint}"; + static String m20(email, numOfDays) => + "Ketinate pridėti ${email} kaip patikimą kontaktą. Jie galės atkurti jūsų paskyrą, jei jūsų nebus ${numOfDays} dienų."; - static String m23(currentlyDeleting, totalCount) => + static String m23(endpoint) => "Prijungta prie ${endpoint}"; + + static String m25(currentlyDeleting, totalCount) => "Ištrinama ${currentlyDeleting} / ${totalCount}"; - static String m25(supportEmail) => + static String m27(supportEmail) => "Iš savo registruoto el. pašto adreso atsiųskite el. laišką adresu ${supportEmail}"; - static String m27(count, formattedSize) => + static String m29(count, formattedSize) => "${count} failai (-ų), kiekvienas ${formattedSize}"; - static String m29(email) => + static String m31(email) => "${email} neturi „Ente“ paskyros.\n\nSiųskite jiems kvietimą bendrinti nuotraukas."; - static String m30(text) => "Rastos papildomos nuotraukos, skirtos ${text}"; + static String m32(text) => "Rastos papildomos nuotraukos, skirtos ${text}"; + + static String m35(storageAmountInGB) => + "${storageAmountInGB} GB kiekvieną kartą, kai kas nors užsiregistruoja mokamam planui ir pritaiko jūsų kodą."; - static String m34(endDate) => + static String m36(endDate) => "Nemokamas bandomasis laikotarpis galioja iki ${endDate}"; - static String m36(sizeInMBorGB) => "Atlaisvinti ${sizeInMBorGB}"; + static String m38(sizeInMBorGB) => "Atlaisvinti ${sizeInMBorGB}"; - static String m38(currentlyProcessing, totalCount) => + static String m40(currentlyProcessing, totalCount) => "Apdorojama ${currentlyProcessing} / ${totalCount}"; - static String m40(expiryTime) => "Nuoroda nebegalios ${expiryTime}"; + static String m42(email) => "${email} pakvietė jus būti patikimu kontaktu"; - static String m41(count) => + static String m43(expiryTime) => "Nuoroda nebegalios ${expiryTime}"; + + static String m44(count) => "${Intl.plural(count, one: 'Perkelti elementą', few: 'Perkelti elementus', many: 'Perkelti elemento', other: 'Perkelti elementų')}"; - static String m43(personName) => "Nėra pasiūlymų asmeniui ${personName}."; + static String m46(personName) => "Nėra pasiūlymų asmeniui ${personName}."; - static String m44(name) => "Ne ${name}?"; + static String m47(name) => "Ne ${name}?"; static String m0(passwordStrengthValue) => "Slaptažodžio stiprumas: ${passwordStrengthValue}"; - static String m46(providerName) => + static String m49(providerName) => "Kreipkitės į ${providerName} palaikymo komandą, jei jums buvo nuskaičiuota."; - static String m47(count) => + static String m50(count) => "${Intl.plural(count, zero: '0 nuotraukų', one: '1 nuotrauka', few: '${count} nuotraukos', many: '${count} nuotraukos', other: '${count} nuotraukų')}"; - static String m51(folderName) => "Apdorojama ${folderName}..."; + static String m51(endDate) => + "Nemokama bandomoji versija galioja iki ${endDate}.\nVėliau galėsite pasirinkti mokamą planą."; + + static String m53(toEmail) => "Siųskite žurnalus adresu\n${toEmail}"; + + static String m54(folderName) => "Apdorojama ${folderName}..."; + + static String m55(storeName) => "Vertinti mus parduotuvėje „${storeName}“"; + + static String m56(days, email) => + "Paskyrą galėsite pasiekti po ${days} dienų. Pranešimas bus išsiųstas į ${email}."; + + static String m57(email) => + "Dabar galite atkurti ${email} paskyrą nustatydami naują slaptažodį."; - static String m52(storeName) => "Vertinti mus parduotuvėje „${storeName}“"; + static String m58(email) => "${email} bando atkurti jūsų paskyrą."; - static String m53(storageInGB) => + static String m59(storageInGB) => "3. Abu gaunate ${storageInGB} GB* nemokamai"; - static String m54(userEmail) => + static String m60(userEmail) => "${userEmail} bus pašalintas iš šio bendrinamo albumo.\n\nVisos jų pridėtos nuotraukos taip pat bus pašalintos iš albumo."; - static String m55(endDate) => "Prenumerata atnaujinama ${endDate}"; + static String m61(endDate) => "Prenumerata atnaujinama ${endDate}"; - static String m56(count) => + static String m62(count) => "${Intl.plural(count, one: 'Rastas ${count} rezultatas', few: 'Rasti ${count} rezultatai', many: 'Rasta ${count} rezultato', other: 'Rasta ${count} rezultatų')}"; - static String m57(snapshotLenght, searchLenght) => + static String m63(snapshotLenght, searchLenght) => "Skyrių ilgio neatitikimas: ${snapshotLenght} != ${searchLenght}"; static String m4(count) => "${count} pasirinkta"; - static String m58(count, yourCount) => + static String m64(count, yourCount) => "${count} pasirinkta (${yourCount} jūsų)"; - static String m59(verificationID) => + static String m65(verificationID) => "Štai mano patvirtinimo ID: ${verificationID}, skirta ente.io."; static String m5(verificationID) => "Ei, ar galite patvirtinti, kad tai yra jūsų ente.io patvirtinimo ID: ${verificationID}"; - static String m61(numberOfPeople) => + static String m66(referralCode, referralStorageInGB) => + "„Ente“ rekomendacijos kodas: ${referralCode} \n\nTaikykite jį per Nustatymai → Bendrieji → Rekomendacijos, kad gautumėte ${referralStorageInGB} GB nemokamai po to, kai užsiregistruosite mokamam planui.\n\nhttps://ente.io"; + + static String m67(numberOfPeople) => "${Intl.plural(numberOfPeople, zero: 'Bendrinti su konkrečiais asmenimis', one: 'Bendrinima su 1 asmeniu', few: 'Bendrinima su ${numberOfPeople} asmenims', many: 'Bendrinima su ${numberOfPeople} asmens', other: 'Bendrinima su ${numberOfPeople} asmenų')}"; - static String m64(fileType) => + static String m70(fileType) => "Šis ${fileType} yra ir saugykloje „Ente“ bei įrenginyje."; - static String m65(fileType) => "Šis ${fileType} bus ištrintas iš „Ente“."; + static String m71(fileType) => "Šis ${fileType} bus ištrintas iš „Ente“."; static String m1(storageAmountInGB) => "${storageAmountInGB} GB"; - static String m67(id) => + static String m73(id) => "Jūsų ${id} jau susietas su kita „Ente“ paskyra.\nJei norite naudoti savo ${id} su šia paskyra, susisiekite su mūsų palaikymo komanda."; - static String m69(completed, total) => + static String m75(completed, total) => "${completed} / ${total} išsaugomi prisiminimai"; - static String m70(ignoreReason) => + static String m76(ignoreReason) => "Palieskite, kad įkeltumėte. Įkėlimas šiuo metu ignoruojamas dėl ${ignoreReason}."; - static String m72(email) => "Tai – ${email} patvirtinimo ID"; + static String m78(email) => "Tai – ${email} patvirtinimo ID"; - static String m73(count) => + static String m79(count) => "${Intl.plural(count, zero: 'Netrukus', one: '1 diena', few: '${count} dienos', many: '${count} dienos', other: '${count} dienų')}"; - static String m74(galleryType) => + static String m80(email) => + "Buvote pakviesti tapti ${email} palikimo kontaktu."; + + static String m81(galleryType) => "Galerijos tipas ${galleryType} nepalaikomas pervadinimui."; - static String m75(ignoreReason) => + static String m82(ignoreReason) => "Įkėlimas ignoruojamas dėl ${ignoreReason}."; - static String m77(endDate) => "Galioja iki ${endDate}"; + static String m84(endDate) => "Galioja iki ${endDate}"; - static String m78(email) => "Patvirtinti ${email}"; + static String m85(email) => "Patvirtinti ${email}"; - static String m79(count) => + static String m86(count) => "${Intl.plural(count, zero: 'Pridėta 0 žiūrėtojų', one: 'Pridėtas 1 žiūrėtojas', few: 'Pridėti ${count} žiūrėtojai', many: 'Pridėta ${count} žiūrėtojo', other: 'Pridėta ${count} žiūrėtojų')}"; static String m2(email) => "Išsiuntėme laišką adresu ${email}"; - static String m80(count) => + static String m87(count) => "${Intl.plural(count, one: 'prieš ${count} metus', few: 'prieš ${count} metus', many: 'prieš ${count} metų', other: 'prieš ${count} metų')}"; final messages = _notInlinedMessages(_notInlinedMessages); static Map _notInlinedMessages(_) => { "about": MessageLookupByLibrary.simpleMessage("Apie"), + "acceptTrustInvite": + MessageLookupByLibrary.simpleMessage("Priimti kvietimą"), "account": MessageLookupByLibrary.simpleMessage("Paskyra"), "accountIsAlreadyConfigured": MessageLookupByLibrary.simpleMessage("Paskyra jau sukonfigūruota."), @@ -192,6 +221,8 @@ class MessageLookup extends MessageLookupByLibrary { "addOns": MessageLookupByLibrary.simpleMessage("Priedai"), "addToAlbum": MessageLookupByLibrary.simpleMessage("Pridėti į albumą"), "addToEnte": MessageLookupByLibrary.simpleMessage("Pridėti į „Ente“"), + "addTrustedContact": + MessageLookupByLibrary.simpleMessage("Pridėti patikimą kontaktą"), "addViewer": MessageLookupByLibrary.simpleMessage("Pridėti žiūrėtoją"), "addViewers": m9, "addedAs": MessageLookupByLibrary.simpleMessage("Pridėta kaip"), @@ -225,7 +256,17 @@ class MessageLookup extends MessageLookupByLibrary { "Leiskite asmenims pridėti nuotraukų"), "androidBiometricHint": MessageLookupByLibrary.simpleMessage("Patvirtinkite tapatybę"), + "androidBiometricRequiredTitle": + MessageLookupByLibrary.simpleMessage("Privaloma biometrija"), "androidCancelButton": MessageLookupByLibrary.simpleMessage("Atšaukti"), + "androidDeviceCredentialsRequiredTitle": + MessageLookupByLibrary.simpleMessage( + "Privalomi įrenginio kredencialai"), + "androidDeviceCredentialsSetupDescription": + MessageLookupByLibrary.simpleMessage( + "Privalomi įrenginio kredencialai"), + "androidGoToSettingsDescription": MessageLookupByLibrary.simpleMessage( + "Biometrinis tapatybės nustatymas jūsų įrenginyje nenustatytas. Eikite į Nustatymai > Saugumas ir pridėkite biometrinį tapatybės nustatymą."), "androidIosWebDesktop": MessageLookupByLibrary.simpleMessage( "„Android“, „iOS“, internete ir darbalaukyje"), "androidSignInTitle": MessageLookupByLibrary.simpleMessage( @@ -269,6 +310,8 @@ class MessageLookup extends MessageLookupByLibrary { "Nustatykite tapatybę, kad pakeistumėte slaptažodį"), "authToInitiateAccountDeletion": MessageLookupByLibrary.simpleMessage( "Nustatykite tapatybę, kad pradėtumėte paskyros ištrynimą"), + "authToManageLegacy": MessageLookupByLibrary.simpleMessage( + "Nustatykite tapatybę, kad tvarkytumėte patikimus kontaktus"), "authToViewPasskey": MessageLookupByLibrary.simpleMessage( "Nustatykite tapatybę, kad peržiūrėtumėte savo slaptaraktį"), "authToViewYourHiddenFiles": MessageLookupByLibrary.simpleMessage( @@ -308,6 +351,10 @@ class MessageLookup extends MessageLookupByLibrary { "canOnlyRemoveFilesOwnedByYou": MessageLookupByLibrary.simpleMessage( "Galima pašalinti tik jums priklausančius failus"), "cancel": MessageLookupByLibrary.simpleMessage("Atšaukti"), + "cancelAccountRecovery": + MessageLookupByLibrary.simpleMessage("Atšaukti atkūrimą"), + "cancelAccountRecoveryBody": MessageLookupByLibrary.simpleMessage( + "Ar tikrai norite atšaukti atkūrimą?"), "cancelOtherSubscription": m15, "cancelSubscription": MessageLookupByLibrary.simpleMessage("Atsisakyti prenumeratos"), @@ -344,6 +391,8 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Keisti slaptažodį"), "changePermissions": MessageLookupByLibrary.simpleMessage("Keisti leidimus?"), + "changeYourReferralCode": MessageLookupByLibrary.simpleMessage( + "Keisti savo rekomendacijos kodą"), "checkForUpdates": MessageLookupByLibrary.simpleMessage( "Tikrinti, ar yra atnaujinimų"), "checkInboxAndSpamFolder": MessageLookupByLibrary.simpleMessage( @@ -379,7 +428,7 @@ class MessageLookup extends MessageLookupByLibrary { "collaboratorsCanAddPhotosAndVideosToTheSharedAlbum": MessageLookupByLibrary.simpleMessage( "Bendradarbiai gali pridėti nuotraukų ir vaizdo įrašų į bendrintą albumą."), - "collaboratorsSuccessfullyAdded": m82, + "collaboratorsSuccessfullyAdded": m19, "collect": MessageLookupByLibrary.simpleMessage("Rinkti"), "collectEventPhotos": MessageLookupByLibrary.simpleMessage("Rinkti įvykių nuotraukas"), @@ -394,6 +443,7 @@ class MessageLookup extends MessageLookupByLibrary { "Ar tikrai norite išjungti dvigubą tapatybės nustatymą?"), "confirmAccountDeletion": MessageLookupByLibrary.simpleMessage( "Patvirtinti paskyros ištrynimą"), + "confirmAddingTrustedContact": m20, "confirmDeletePrompt": MessageLookupByLibrary.simpleMessage( "Taip, noriu negrįžtamai ištrinti šią paskyrą ir jos duomenis per visas programas"), "confirmPassword": @@ -438,10 +488,12 @@ class MessageLookup extends MessageLookupByLibrary { "currentlyRunning": MessageLookupByLibrary.simpleMessage("šiuo metu vykdoma"), "custom": MessageLookupByLibrary.simpleMessage("Pasirinktinis"), - "customEndpoint": m21, + "customEndpoint": m23, "darkTheme": MessageLookupByLibrary.simpleMessage("Tamsi"), "dayToday": MessageLookupByLibrary.simpleMessage("Šiandien"), "dayYesterday": MessageLookupByLibrary.simpleMessage("Vakar"), + "declineTrustInvite": + MessageLookupByLibrary.simpleMessage("Atmesti kvietimą"), "decrypting": MessageLookupByLibrary.simpleMessage("Iššifruojama..."), "deduplicateFiles": MessageLookupByLibrary.simpleMessage("Atdubliuoti failus"), @@ -476,7 +528,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Ištrinti vietovę"), "deletePhotos": MessageLookupByLibrary.simpleMessage("Ištrinti nuotraukas"), - "deleteProgress": m23, + "deleteProgress": m25, "deleteReason1": MessageLookupByLibrary.simpleMessage( "Trūksta pagrindinės funkcijos, kurios man reikia"), "deleteReason2": MessageLookupByLibrary.simpleMessage( @@ -541,8 +593,8 @@ class MessageLookup extends MessageLookupByLibrary { "downloadFailed": MessageLookupByLibrary.simpleMessage("Atsisiuntimas nepavyko."), "downloading": MessageLookupByLibrary.simpleMessage("Atsisiunčiama..."), - "dropSupportEmail": m25, - "duplicateItemsGroup": m27, + "dropSupportEmail": m27, + "duplicateItemsGroup": m29, "edit": MessageLookupByLibrary.simpleMessage("Redaguoti"), "editLocation": MessageLookupByLibrary.simpleMessage("Redaguoti vietovę"), @@ -553,9 +605,13 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage( "Vietovės pakeitimai bus matomi tik per „Ente“"), "email": MessageLookupByLibrary.simpleMessage("El. paštas"), - "emailNoEnteAccount": m29, + "emailNoEnteAccount": m31, "emailVerificationToggle": MessageLookupByLibrary.simpleMessage("El. pašto patvirtinimas"), + "emailYourLogs": MessageLookupByLibrary.simpleMessage( + "Atsiųskite žurnalus el. laišku"), + "emergencyContacts": + MessageLookupByLibrary.simpleMessage("Skubios pagalbos kontaktai"), "empty": MessageLookupByLibrary.simpleMessage("Ištuštinti"), "emptyTrash": MessageLookupByLibrary.simpleMessage("Ištuštinti šiukšlinę?"), @@ -601,6 +657,8 @@ class MessageLookup extends MessageLookupByLibrary { "enterPersonName": MessageLookupByLibrary.simpleMessage("Įveskite asmens vardą"), "enterPin": MessageLookupByLibrary.simpleMessage("Įveskite PIN"), + "enterReferralCode": MessageLookupByLibrary.simpleMessage( + "Įveskite rekomendacijos kodą"), "enterThe6digitCodeFromnyourAuthenticatorApp": MessageLookupByLibrary.simpleMessage( "Įveskite 6 skaitmenų kodą\niš autentifikatoriaus programos"), @@ -619,11 +677,13 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Esamas naudotojas"), "expiredLinkInfo": MessageLookupByLibrary.simpleMessage( "Ši nuoroda nebegalioja. Pasirinkite naują galiojimo laiką arba išjunkite nuorodos galiojimo laiką."), + "exportLogs": + MessageLookupByLibrary.simpleMessage("Eksportuoti žurnalus"), "exportYourData": MessageLookupByLibrary.simpleMessage("Eksportuoti duomenis"), "extraPhotosFound": MessageLookupByLibrary.simpleMessage( "Rastos papildomos nuotraukos"), - "extraPhotosFoundFor": m30, + "extraPhotosFoundFor": m32, "faceNotClusteredYet": MessageLookupByLibrary.simpleMessage( "Veidas dar nesugrupuotas. Grįžkite vėliau."), "faceRecognition": @@ -637,6 +697,8 @@ class MessageLookup extends MessageLookupByLibrary { "Nepavyko gauti aktyvių seansų."), "failedToFetchOriginalForEdit": MessageLookupByLibrary.simpleMessage( "Nepavyko gauti originalo redagavimui."), + "failedToFetchReferralDetails": MessageLookupByLibrary.simpleMessage( + "Nepavyksta gauti rekomendacijos informacijos. Bandykite dar kartą vėliau."), "failedToPlayVideo": MessageLookupByLibrary.simpleMessage( "Nepavyko paleisti vaizdo įrašą. "), "failedToRefreshStripeSubscription": @@ -644,6 +706,7 @@ class MessageLookup extends MessageLookupByLibrary { "Nepavyko atnaujinti prenumeratos."), "failedToVerifyPaymentStatus": MessageLookupByLibrary.simpleMessage( "Nepavyko patvirtinti mokėjimo būsenos"), + "familyPlanPortalTitle": MessageLookupByLibrary.simpleMessage("Šeima"), "familyPlans": MessageLookupByLibrary.simpleMessage("Šeimos planai"), "faq": MessageLookupByLibrary.simpleMessage("DUK"), "faqs": MessageLookupByLibrary.simpleMessage("DUK"), @@ -661,14 +724,15 @@ class MessageLookup extends MessageLookupByLibrary { "forgotPassword": MessageLookupByLibrary.simpleMessage("Pamiršau slaptažodį"), "foundFaces": MessageLookupByLibrary.simpleMessage("Rasti veidai"), + "freeStorageOnReferralSuccess": m35, "freeTrial": MessageLookupByLibrary.simpleMessage( "Nemokamas bandomasis laikotarpis"), - "freeTrialValidTill": m34, - "freeUpAmount": m36, + "freeTrialValidTill": m36, + "freeUpAmount": m38, "general": MessageLookupByLibrary.simpleMessage("Bendrieji"), "generatingEncryptionKeys": MessageLookupByLibrary.simpleMessage( "Generuojami šifravimo raktai..."), - "genericProgress": m38, + "genericProgress": m40, "goToSettings": MessageLookupByLibrary.simpleMessage("Eiti į nustatymus"), "googlePlayId": @@ -695,6 +759,8 @@ class MessageLookup extends MessageLookupByLibrary { "Paprašykite jų ilgai paspausti savo el. pašto adresą nustatymų ekrane ir patvirtinti, kad abiejų įrenginių ID sutampa."), "iOSGoToSettingsDescription": MessageLookupByLibrary.simpleMessage( "Biometrinis tapatybės nustatymas jūsų įrenginyje nenustatytas. Telefone įjunkite „Touch ID“ arba „Face ID“."), + "iOSLockOut": MessageLookupByLibrary.simpleMessage( + "Biometrinis tapatybės nustatymas išjungtas. Kad jį įjungtumėte, užrakinkite ir atrakinkite ekraną."), "iOSOkButton": MessageLookupByLibrary.simpleMessage("Gerai"), "ignoreUpdate": MessageLookupByLibrary.simpleMessage("Ignoruoti"), "ignored": MessageLookupByLibrary.simpleMessage("ignoruota"), @@ -753,13 +819,21 @@ class MessageLookup extends MessageLookupByLibrary { "leaveSharedAlbum": MessageLookupByLibrary.simpleMessage("Palikti bendrinamą albumą?"), "left": MessageLookupByLibrary.simpleMessage("Kairė"), + "legacy": MessageLookupByLibrary.simpleMessage("Palikimas"), + "legacyAccounts": + MessageLookupByLibrary.simpleMessage("Palikimo paskyros"), + "legacyInvite": m42, + "legacyPageDesc": MessageLookupByLibrary.simpleMessage( + "Palikimas leidžia patikimiems kontaktams pasiekti jūsų paskyrą jums nesant."), + "legacyPageDesc2": MessageLookupByLibrary.simpleMessage( + "Patikimi kontaktai gali pradėti paskyros atkūrimą, o jei per 30 dienų paskyra neužblokuojama, iš naujo nustatyti slaptažodį ir pasiekti paskyrą."), "light": MessageLookupByLibrary.simpleMessage("Šviesi"), "lightTheme": MessageLookupByLibrary.simpleMessage("Šviesi"), "linkDeviceLimit": MessageLookupByLibrary.simpleMessage("Įrenginių riba"), "linkEnabled": MessageLookupByLibrary.simpleMessage("Įjungta"), "linkExpired": MessageLookupByLibrary.simpleMessage("Nebegalioja"), - "linkExpiresOn": m40, + "linkExpiresOn": m43, "linkExpiry": MessageLookupByLibrary.simpleMessage("Nuorodos galiojimo laikas"), "linkHasExpired": @@ -814,6 +888,8 @@ class MessageLookup extends MessageLookupByLibrary { "loginWithTOTP": MessageLookupByLibrary.simpleMessage("Prisijungti su TOTP"), "logout": MessageLookupByLibrary.simpleMessage("Atsijungti"), + "logsDialogBody": MessageLookupByLibrary.simpleMessage( + "Tai nusiųs žurnalus, kurie padės mums išspręsti jūsų problemą. Atkreipkite dėmesį, kad failų pavadinimai bus įtraukti, kad būtų lengviau atsekti problemas su konkrečiais failais."), "longPressAnEmailToVerifyEndToEndEncryption": MessageLookupByLibrary.simpleMessage( "Ilgai paspauskite el. paštą, kad patvirtintumėte visapusį šifravimą."), @@ -869,7 +945,7 @@ class MessageLookup extends MessageLookupByLibrary { "Daugiau išsamios informacijos"), "mostRecent": MessageLookupByLibrary.simpleMessage("Naujausią"), "mostRelevant": MessageLookupByLibrary.simpleMessage("Aktualiausią"), - "moveItem": m41, + "moveItem": m44, "movedToTrash": MessageLookupByLibrary.simpleMessage("Perkelta į šiukšlinę"), "name": MessageLookupByLibrary.simpleMessage("Pavadinimą"), @@ -908,10 +984,10 @@ class MessageLookup extends MessageLookupByLibrary { "noResults": MessageLookupByLibrary.simpleMessage("Rezultatų nėra."), "noResultsFound": MessageLookupByLibrary.simpleMessage("Rezultatų nerasta."), - "noSuggestionsForPerson": m43, + "noSuggestionsForPerson": m46, "noSystemLockFound": MessageLookupByLibrary.simpleMessage("Nerastas sistemos užraktas"), - "notPersonLabel": m44, + "notPersonLabel": m47, "nothingSharedWithYouYet": MessageLookupByLibrary.simpleMessage( "Kol kas su jumis niekuo nesibendrinama."), "nothingToSeeHere": MessageLookupByLibrary.simpleMessage( @@ -960,7 +1036,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Mokėjimas nepavyko"), "paymentFailedMessage": MessageLookupByLibrary.simpleMessage( "Deja, jūsų mokėjimas nepavyko. Susisiekite su palaikymo komanda ir mes jums padėsime!"), - "paymentFailedTalkToProvider": m46, + "paymentFailedTalkToProvider": m49, "pendingItems": MessageLookupByLibrary.simpleMessage("Laukiami elementai"), "pendingSync": @@ -976,11 +1052,12 @@ class MessageLookup extends MessageLookupByLibrary { "photosAddedByYouWillBeRemovedFromTheAlbum": MessageLookupByLibrary.simpleMessage( "Jūsų pridėtos nuotraukos bus pašalintos iš albumo"), - "photosCount": m47, + "photosCount": m50, "pinAlbum": MessageLookupByLibrary.simpleMessage("Prisegti albumą"), "pinLock": MessageLookupByLibrary.simpleMessage("PIN užrakinimas"), "playOnTv": MessageLookupByLibrary.simpleMessage( "Paleisti albumą televizoriuje"), + "playStoreFreeTrialValidTill": m51, "playstoreSubscription": MessageLookupByLibrary.simpleMessage("„PlayStore“ prenumerata"), "pleaseCheckYourInternetConnectionAndTryAgain": @@ -992,11 +1069,14 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Prisijunkite iš naujo."), "pleaseSelectQuickLinksToRemove": MessageLookupByLibrary.simpleMessage( "Pasirinkite sparčiąsias nuorodas, kad pašalintumėte"), + "pleaseSendTheLogsTo": m53, "pleaseTryAgain": MessageLookupByLibrary.simpleMessage("Bandykite dar kartą."), "pleaseVerifyTheCodeYouHaveEntered": MessageLookupByLibrary.simpleMessage("Patvirtinkite įvestą kodą."), "pleaseWait": MessageLookupByLibrary.simpleMessage("Palaukite..."), + "preparingLogs": + MessageLookupByLibrary.simpleMessage("Ruošiami žurnalai..."), "pressAndHoldToPlayVideo": MessageLookupByLibrary.simpleMessage( "Paspauskite ir palaikykite, kad paleistumėte vaizdo įrašą"), "pressAndHoldToPlayVideoDetailed": MessageLookupByLibrary.simpleMessage( @@ -1008,17 +1088,23 @@ class MessageLookup extends MessageLookupByLibrary { "Privačios atsarginės kopijos"), "privateSharing": MessageLookupByLibrary.simpleMessage("Privatus bendrinimas"), - "processingImport": m51, + "proceed": MessageLookupByLibrary.simpleMessage("Tęsti"), + "processingImport": m54, "publicLinkEnabled": MessageLookupByLibrary.simpleMessage("Įjungta viešoji nuoroda"), "raiseTicket": MessageLookupByLibrary.simpleMessage("Sukurti paraišką"), "rateTheApp": MessageLookupByLibrary.simpleMessage("Vertinti programą"), "rateUs": MessageLookupByLibrary.simpleMessage("Vertinti mus"), - "rateUsOnStore": m52, + "rateUsOnStore": m55, "recover": MessageLookupByLibrary.simpleMessage("Atkurti"), "recoverAccount": MessageLookupByLibrary.simpleMessage("Atkurti paskyrą"), "recoverButton": MessageLookupByLibrary.simpleMessage("Atkurti"), + "recoveryAccount": + MessageLookupByLibrary.simpleMessage("Atkurti paskyrą"), + "recoveryInitiated": + MessageLookupByLibrary.simpleMessage("Pradėtas atkūrimas"), + "recoveryInitiatedDesc": m56, "recoveryKey": MessageLookupByLibrary.simpleMessage("Atkūrimo raktas"), "recoveryKeyCopiedToClipboard": MessageLookupByLibrary.simpleMessage( "Nukopijuotas atkūrimo raktas į iškarpinę"), @@ -1032,8 +1118,12 @@ class MessageLookup extends MessageLookupByLibrary { "Patvirtintas atkūrimo raktas"), "recoveryKeyVerifyReason": MessageLookupByLibrary.simpleMessage( "Atkūrimo raktas – vienintelis būdas atkurti nuotraukas, jei pamiršote slaptažodį. Atkūrimo raktą galite rasti Nustatymose > Paskyra.\n\nĮveskite savo atkūrimo raktą čia, kad patvirtintumėte, ar teisingai jį išsaugojote."), + "recoveryReady": m57, "recoverySuccessful": MessageLookupByLibrary.simpleMessage("Atkūrimas sėkmingas."), + "recoveryWarning": MessageLookupByLibrary.simpleMessage( + "Patikimas kontaktas bando pasiekti jūsų paskyrą."), + "recoveryWarningBody": m58, "recreatePasswordBody": MessageLookupByLibrary.simpleMessage( "Dabartinis įrenginys nėra pakankamai galingas, kad patvirtintų jūsų slaptažodį, bet mes galime iš naujo sugeneruoti taip, kad jis veiktų su visais įrenginiais.\n\nPrisijunkite naudojant atkūrimo raktą ir sugeneruokite iš naujo slaptažodį (jei norite, galite vėl naudoti tą patį)."), "recreatePasswordTitle": @@ -1049,7 +1139,11 @@ class MessageLookup extends MessageLookupByLibrary { "1. Duokite šį kodą savo draugams"), "referralStep2": MessageLookupByLibrary.simpleMessage( "2. Jie užsiregistruoja mokamą planą"), - "referralStep3": m53, + "referralStep3": m59, + "referralsAreCurrentlyPaused": MessageLookupByLibrary.simpleMessage( + "Šiuo metu rekomendacijos yra pristabdytos"), + "rejectRecovery": + MessageLookupByLibrary.simpleMessage("Atmesti atkūrimą"), "remindToEmptyDeviceTrash": MessageLookupByLibrary.simpleMessage( "Taip pat ištuštinkite Neseniai ištrinti iš Nustatymai -> Saugykla, kad atlaisvintumėte vietos."), "remoteImages": @@ -1067,10 +1161,12 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Pašalinti iš albumo?"), "removeFromFavorite": MessageLookupByLibrary.simpleMessage("Šalinti iš mėgstamų"), + "removeInvite": + MessageLookupByLibrary.simpleMessage("Šalinti kvietimą"), "removeLink": MessageLookupByLibrary.simpleMessage("Šalinti nuorodą"), "removeParticipant": MessageLookupByLibrary.simpleMessage("Šalinti dalyvį"), - "removeParticipantBody": m54, + "removeParticipantBody": m60, "removePersonLabel": MessageLookupByLibrary.simpleMessage("Šalinti asmens žymą"), "removePublicLink": @@ -1081,11 +1177,13 @@ class MessageLookup extends MessageLookupByLibrary { "Kai kuriuos elementus, kuriuos šalinate, pridėjo kiti asmenys, todėl prarasite prieigą prie jų"), "removeWithQuestionMark": MessageLookupByLibrary.simpleMessage("Šalinti?"), + "removeYourselfAsTrustedContact": MessageLookupByLibrary.simpleMessage( + "Šalinti save kaip patikimą kontaktą"), "rename": MessageLookupByLibrary.simpleMessage("Pervadinti"), "renameFile": MessageLookupByLibrary.simpleMessage("Pervadinti failą"), "renewSubscription": MessageLookupByLibrary.simpleMessage("Atnaujinti prenumeratą"), - "renewsOn": m55, + "renewsOn": m61, "reportABug": MessageLookupByLibrary.simpleMessage("Pranešti apie riktą"), "reportBug": @@ -1137,8 +1235,8 @@ class MessageLookup extends MessageLookupByLibrary { "Pakvieskite asmenis ir čia matysite visas jų bendrinamas nuotraukas."), "searchPersonsEmptySection": MessageLookupByLibrary.simpleMessage( "Asmenys bus rodomi čia, kai bus užbaigtas apdorojimas"), - "searchResultCount": m56, - "searchSectionsLengthMismatch": m57, + "searchResultCount": m62, + "searchSectionsLengthMismatch": m63, "security": MessageLookupByLibrary.simpleMessage("Saugumas"), "seePublicAlbumLinksInApp": MessageLookupByLibrary.simpleMessage( "Žiūrėti viešų albumų nuorodas programoje"), @@ -1166,7 +1264,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage( "Pasirinkti aplankai bus užšifruoti ir sukurtos atsarginės kopijos."), "selectedPhotos": m4, - "selectedPhotosWithYours": m58, + "selectedPhotosWithYours": m64, "send": MessageLookupByLibrary.simpleMessage("Siųsti"), "sendEmail": MessageLookupByLibrary.simpleMessage("Siųsti el. laišką"), "sendInvite": MessageLookupByLibrary.simpleMessage("Siųsti kvietimą"), @@ -1197,15 +1295,16 @@ class MessageLookup extends MessageLookupByLibrary { "shareAnAlbumNow": MessageLookupByLibrary.simpleMessage("Bendrinti albumą dabar"), "shareLink": MessageLookupByLibrary.simpleMessage("Bendrinti nuorodą"), - "shareMyVerificationID": m59, + "shareMyVerificationID": m65, "shareOnlyWithThePeopleYouWant": MessageLookupByLibrary.simpleMessage( "Bendrinkite tik su tais asmenimis, su kuriais norite"), "shareTextConfirmOthersVerificationID": m5, "shareTextRecommendUsingEnte": MessageLookupByLibrary.simpleMessage( "Atsisiųskite „Ente“, kad galėtume lengvai bendrinti originalios kokybės nuotraukas ir vaizdo įrašus.\n\nhttps://ente.io"), + "shareTextReferralCode": m66, "shareWithNonenteUsers": MessageLookupByLibrary.simpleMessage( "Bendrinkite su ne „Ente“ naudotojais."), - "shareWithPeopleSectionTitle": m61, + "shareWithPeopleSectionTitle": m67, "sharedAlbumSectionDescription": MessageLookupByLibrary.simpleMessage( "Sukurkite bendrinamus ir bendradarbiaujamus albumus su kitais „Ente“ naudotojais, įskaitant naudotojus nemokamuose planuose."), "sharedByYou": @@ -1226,8 +1325,8 @@ class MessageLookup extends MessageLookupByLibrary { "Jei manote, kad kas nors gali žinoti jūsų slaptažodį, galite priverstinai atsijungti iš visų kitų įrenginių, naudojančių jūsų paskyrą."), "signUpTerms": MessageLookupByLibrary.simpleMessage( "Sutinku su paslaugų sąlygomis ir privatumo politika"), - "singleFileInBothLocalAndRemote": m64, - "singleFileInRemoteOnly": m65, + "singleFileInBothLocalAndRemote": m70, + "singleFileInRemoteOnly": m71, "skip": MessageLookupByLibrary.simpleMessage("Praleisti"), "social": MessageLookupByLibrary.simpleMessage("Socialinės"), "someoneSharingAlbumsWithYouShouldSeeTheSameId": @@ -1251,6 +1350,8 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Naujausią pirmiausiai"), "sortOldestFirst": MessageLookupByLibrary.simpleMessage("Seniausią pirmiausiai"), + "startAccountRecoveryTitle": + MessageLookupByLibrary.simpleMessage("Pradėti atkūrimą"), "startBackup": MessageLookupByLibrary.simpleMessage( "Pradėti kurti atsarginę kopiją"), "status": MessageLookupByLibrary.simpleMessage("Būsena"), @@ -1264,7 +1365,7 @@ class MessageLookup extends MessageLookupByLibrary { "storageLimitExceeded": MessageLookupByLibrary.simpleMessage("Viršyta saugyklos riba."), "strongStrength": MessageLookupByLibrary.simpleMessage("Stipri"), - "subAlreadyLinkedErrMessage": m67, + "subAlreadyLinkedErrMessage": m73, "subscribe": MessageLookupByLibrary.simpleMessage("Prenumeruoti"), "subscribeToEnableSharing": MessageLookupByLibrary.simpleMessage( "Kad įjungtumėte bendrinimą, reikia aktyvios mokamos prenumeratos."), @@ -1277,7 +1378,7 @@ class MessageLookup extends MessageLookupByLibrary { "suggestFeatures": MessageLookupByLibrary.simpleMessage("Siūlyti funkcijas"), "support": MessageLookupByLibrary.simpleMessage("Palaikymas"), - "syncProgress": m69, + "syncProgress": m75, "syncStopped": MessageLookupByLibrary.simpleMessage( "Sinchronizavimas sustabdytas"), "syncing": MessageLookupByLibrary.simpleMessage("Sinchronizuojama..."), @@ -1290,7 +1391,7 @@ class MessageLookup extends MessageLookupByLibrary { "Palieskite, kad atrakintumėte"), "tapToUpload": MessageLookupByLibrary.simpleMessage("Palieskite, kad įkeltumėte"), - "tapToUploadIsIgnoredDue": m70, + "tapToUploadIsIgnoredDue": m76, "tempErrorContactSupportIfPersists": MessageLookupByLibrary.simpleMessage( "Atrodo, kad kažkas nutiko ne taip. Bandykite dar kartą po kurio laiko. Jei klaida tęsiasi, susisiekite su mūsų palaikymo komanda."), "terminate": MessageLookupByLibrary.simpleMessage("Baigti"), @@ -1314,7 +1415,7 @@ class MessageLookup extends MessageLookupByLibrary { "Šis el. paštas jau naudojamas."), "thisImageHasNoExifData": MessageLookupByLibrary.simpleMessage( "Šis vaizdas neturi Exif duomenų"), - "thisIsPersonVerificationId": m72, + "thisIsPersonVerificationId": m78, "thisIsYourVerificationId": MessageLookupByLibrary.simpleMessage("Tai – jūsų patvirtinimo ID"), "thisWillLogYouOutOfTheFollowingDevice": @@ -1336,8 +1437,11 @@ class MessageLookup extends MessageLookupByLibrary { "Per daug neteisingų bandymų."), "total": MessageLookupByLibrary.simpleMessage("iš viso"), "trash": MessageLookupByLibrary.simpleMessage("Šiukšlinė"), - "trashDaysLeft": m73, + "trashDaysLeft": m79, "trim": MessageLookupByLibrary.simpleMessage("Trumpinti"), + "trustedContacts": + MessageLookupByLibrary.simpleMessage("Patikimi kontaktai"), + "trustedInviteBody": m80, "tryAgain": MessageLookupByLibrary.simpleMessage("Bandyti dar kartą"), "twitter": MessageLookupByLibrary.simpleMessage("„Twitter“"), "twoMonthsFreeOnYearlyPlans": MessageLookupByLibrary.simpleMessage( @@ -1349,7 +1453,7 @@ class MessageLookup extends MessageLookupByLibrary { "Dvigubas tapatybės nustatymas"), "twofactorSetup": MessageLookupByLibrary.simpleMessage( "Dvigubo tapatybės nustatymo sąranka"), - "typeOfGallerGallerytypeIsNotSupportedForRename": m74, + "typeOfGallerGallerytypeIsNotSupportedForRename": m81, "unarchive": MessageLookupByLibrary.simpleMessage("Išarchyvuoti"), "unarchiveAlbum": MessageLookupByLibrary.simpleMessage("Išarchyvuoti albumą"), @@ -1365,9 +1469,11 @@ class MessageLookup extends MessageLookupByLibrary { "updatingFolderSelection": MessageLookupByLibrary.simpleMessage( "Atnaujinamas aplankų pasirinkimas..."), "upgrade": MessageLookupByLibrary.simpleMessage("Keisti planą"), - "uploadIsIgnoredDueToIgnorereason": m75, + "uploadIsIgnoredDueToIgnorereason": m82, "upto50OffUntil4thDec": MessageLookupByLibrary.simpleMessage( "Iki 50% nuolaida, gruodžio 4 d."), + "usableReferralStorageInfo": MessageLookupByLibrary.simpleMessage( + "Naudojama saugykla ribojama pagal jūsų dabartinį planą. Perteklinė gauta saugykla automatiškai taps tinkama naudoti, kai pakeisite planą."), "useAsCover": MessageLookupByLibrary.simpleMessage("Naudoti kaip viršelį"), "usePublicLinksForPeopleNotOnEnte": MessageLookupByLibrary.simpleMessage( @@ -1375,7 +1481,7 @@ class MessageLookup extends MessageLookupByLibrary { "useRecoveryKey": MessageLookupByLibrary.simpleMessage("Naudoti atkūrimo raktą"), "usedSpace": MessageLookupByLibrary.simpleMessage("Naudojama vieta"), - "validTill": m77, + "validTill": m84, "verificationFailedPleaseTryAgain": MessageLookupByLibrary.simpleMessage( "Patvirtinimas nepavyko. Bandykite dar kartą."), @@ -1384,7 +1490,7 @@ class MessageLookup extends MessageLookupByLibrary { "verify": MessageLookupByLibrary.simpleMessage("Patvirtinti"), "verifyEmail": MessageLookupByLibrary.simpleMessage("Patvirtinti el. paštą"), - "verifyEmailID": m78, + "verifyEmailID": m85, "verifyIDLabel": MessageLookupByLibrary.simpleMessage("Patvirtinti"), "verifyPasskey": MessageLookupByLibrary.simpleMessage("Patvirtinti slaptaraktį"), @@ -1404,11 +1510,12 @@ class MessageLookup extends MessageLookupByLibrary { "viewRecoveryKey": MessageLookupByLibrary.simpleMessage("Peržiūrėti atkūrimo raktą"), "viewer": MessageLookupByLibrary.simpleMessage("Žiūrėtojas"), - "viewersSuccessfullyAdded": m79, + "viewersSuccessfullyAdded": m86, "visitWebToManage": MessageLookupByLibrary.simpleMessage( "Aplankykite web.ente.io, kad tvarkytumėte savo prenumeratą"), "waitingForVerification": MessageLookupByLibrary.simpleMessage("Laukiama patvirtinimo..."), + "warning": MessageLookupByLibrary.simpleMessage("Įspėjimas"), "weAreOpenSource": MessageLookupByLibrary.simpleMessage("Esame atviro kodo!"), "weDontSupportEditingPhotosAndAlbumsThatYouDont": @@ -1418,9 +1525,11 @@ class MessageLookup extends MessageLookupByLibrary { "weakStrength": MessageLookupByLibrary.simpleMessage("Silpna"), "welcomeBack": MessageLookupByLibrary.simpleMessage("Sveiki sugrįžę!"), "whatsNew": MessageLookupByLibrary.simpleMessage("Kas naujo"), + "whyAddTrustContact": MessageLookupByLibrary.simpleMessage( + "Patikimas kontaktas gali padėti atkurti jūsų duomenis."), "yearShort": MessageLookupByLibrary.simpleMessage("m."), "yearly": MessageLookupByLibrary.simpleMessage("Metinis"), - "yearsAgo": m80, + "yearsAgo": m87, "yes": MessageLookupByLibrary.simpleMessage("Taip"), "yesCancel": MessageLookupByLibrary.simpleMessage("Taip, atsisakyti"), "yesConvertToViewer": diff --git a/mobile/lib/generated/intl/messages_ml.dart b/mobile/lib/generated/intl/messages_ml.dart index 67826830c11..6a3eec447cb 100644 --- a/mobile/lib/generated/intl/messages_ml.dart +++ b/mobile/lib/generated/intl/messages_ml.dart @@ -21,5 +21,121 @@ class MessageLookup extends MessageLookupByLibrary { String get localeName => 'ml'; final messages = _notInlinedMessages(_notInlinedMessages); - static Map _notInlinedMessages(_) => {}; + static Map _notInlinedMessages(_) => { + "accountWelcomeBack": + MessageLookupByLibrary.simpleMessage("വീണ്ടും സ്വാഗതം!"), + "albumOwner": MessageLookupByLibrary.simpleMessage("ഉടമ"), + "askDeleteReason": MessageLookupByLibrary.simpleMessage( + "അക്കൗണ്ട് ഉപേക്ഷിക്കുവാൻ പ്രധാന കാരണമെന്താണ്?"), + "available": MessageLookupByLibrary.simpleMessage("ലഭ്യമാണ്"), + "calculating": + MessageLookupByLibrary.simpleMessage("കണക്കുകൂട്ടുന്നു..."), + "cancel": MessageLookupByLibrary.simpleMessage("റദ്ദാക്കുക"), + "changeEmail": MessageLookupByLibrary.simpleMessage("ഇമെയിൽ മാറ്റുക"), + "close": MessageLookupByLibrary.simpleMessage("അടക്കുക"), + "confirm": MessageLookupByLibrary.simpleMessage("നിജപ്പെടുത്തുക"), + "confirmPassword": + MessageLookupByLibrary.simpleMessage("സങ്കേതക്കുറി ഉറപ്പിക്കുക"), + "continueLabel": MessageLookupByLibrary.simpleMessage("തുടരൂ"), + "count": MessageLookupByLibrary.simpleMessage("എണ്ണം"), + "createAccount": + MessageLookupByLibrary.simpleMessage("അക്കൗണ്ട് തുറക്കുക"), + "createNewAccount": + MessageLookupByLibrary.simpleMessage("പുതിയ അക്കൗണ്ട് തുറക്കുക"), + "custom": MessageLookupByLibrary.simpleMessage("ഇഷ്‌ടാനുസൃതം"), + "darkTheme": MessageLookupByLibrary.simpleMessage("ഇരുണ്ട"), + "deleteAccount": + MessageLookupByLibrary.simpleMessage("അക്കൗണ്ട് ഉപേക്ഷിക്കു"), + "deleteAccountFeedbackPrompt": MessageLookupByLibrary.simpleMessage( + "സേവനം ഉപേക്ഷിക്കുന്നതിൽ ഖേദിക്കുന്നു. മെച്ചപ്പെടുത്താൻ ഞങ്ങളെ സഹായിക്കുന്നതിനായി ദയവായി നിങ്ങളുടെ അഭിപ്രായം പങ്കിടുക."), + "deleteReason1": MessageLookupByLibrary.simpleMessage( + "അത്യാവശപെട്ടയൊരു സുവിഷേശത ഇതിൽ ഇല്ല"), + "deleteReason3": MessageLookupByLibrary.simpleMessage( + "ഇതിനേക്കാൾ ഇഷ്ടപ്പെടുന്ന മറ്റൊരു സേവനം കണ്ടെത്തി"), + "deleteReason4": + MessageLookupByLibrary.simpleMessage("എന്റെ കാരണം ഉൾകൊണ്ടിട്ടില്ല"), + "doThisLater": MessageLookupByLibrary.simpleMessage("പിന്നീട് ചെയ്യുക"), + "email": MessageLookupByLibrary.simpleMessage("ഇമെയിൽ"), + "emailVerificationToggle": + MessageLookupByLibrary.simpleMessage("ഇമെയിൽ ദൃഢീകരണം"), + "enterValidEmail": + MessageLookupByLibrary.simpleMessage("സാധുവായ ഒരു ഇമെയിൽ നൽകുക."), + "enterYourEmailAddress": MessageLookupByLibrary.simpleMessage( + "നിങ്ങളുടെ ഇമെയിൽ വിലാസം നൽകുക"), + "faqs": MessageLookupByLibrary.simpleMessage("പതിവുചോദ്യങ്ങൾ"), + "favorite": MessageLookupByLibrary.simpleMessage("പ്രിയപ്പെട്ടവ"), + "feedback": MessageLookupByLibrary.simpleMessage("അഭിപ്രായം"), + "forgotPassword": + MessageLookupByLibrary.simpleMessage("സങ്കേതക്കുറി മറന്നുപോയി"), + "general": MessageLookupByLibrary.simpleMessage("പൊതുവായവ"), + "hide": MessageLookupByLibrary.simpleMessage("മറയ്ക്കുക"), + "howItWorks": MessageLookupByLibrary.simpleMessage("പ്രവർത്തന രീതി"), + "ignoreUpdate": MessageLookupByLibrary.simpleMessage("അവഗണിക്കുക"), + "incorrectPasswordTitle": + MessageLookupByLibrary.simpleMessage("തെറ്റായ സങ്കേതക്കുറി"), + "invalidEmailAddress": + MessageLookupByLibrary.simpleMessage("അസാധുവായ ഇമെയിൽ വിലാസം"), + "kindlyHelpUsWithThisInformation": + MessageLookupByLibrary.simpleMessage("വിവരങ്ങൾ തന്നു സഹായിക്കുക"), + "lightTheme": MessageLookupByLibrary.simpleMessage("തെളിഞ"), + "linkExpired": MessageLookupByLibrary.simpleMessage("കാലഹരണപ്പെട്ടു"), + "mastodon": MessageLookupByLibrary.simpleMessage("മാസ്റ്റഡോൺ"), + "matrix": MessageLookupByLibrary.simpleMessage("മേട്രിക്സ്"), + "moderateStrength": MessageLookupByLibrary.simpleMessage("ഇടത്തരം"), + "monthly": MessageLookupByLibrary.simpleMessage("പ്രതിമാസം"), + "name": MessageLookupByLibrary.simpleMessage("പേര്"), + "no": MessageLookupByLibrary.simpleMessage("വേണ്ട"), + "noDeviceLimit": MessageLookupByLibrary.simpleMessage("ഒന്നുമില്ല"), + "nothingToSeeHere": + MessageLookupByLibrary.simpleMessage("ഇവിടൊന്നും കാണ്മാനില്ല! 👀"), + "ok": MessageLookupByLibrary.simpleMessage("ശരി"), + "oops": MessageLookupByLibrary.simpleMessage("അയ്യോ"), + "password": MessageLookupByLibrary.simpleMessage("സങ്കേതക്കുറി"), + "pleaseTryAgain": + MessageLookupByLibrary.simpleMessage("ദയവായി വീണ്ടും ശ്രമിക്കുക"), + "privacy": MessageLookupByLibrary.simpleMessage("സ്വകാര്യത"), + "privacyPolicyTitle": + MessageLookupByLibrary.simpleMessage("സ്വകാര്യതാനയം"), + "recoverButton": MessageLookupByLibrary.simpleMessage("വീണ്ടെടുക്കുക"), + "recoverySuccessful": + MessageLookupByLibrary.simpleMessage("വീണ്ടെടുക്കൽ വിജയകരം!"), + "recreatePasswordTitle": + MessageLookupByLibrary.simpleMessage("സങ്കേതക്കുറി പുനസൃഷ്ടിക്കുക"), + "reddit": MessageLookupByLibrary.simpleMessage("റെഡ്ഡിറ്റ്"), + "retry": MessageLookupByLibrary.simpleMessage("പുനശ്രമിക്കുക"), + "security": MessageLookupByLibrary.simpleMessage("സുരക്ഷ"), + "selectReason": + MessageLookupByLibrary.simpleMessage("കാരണം തിരഞ്ഞെടുക്കൂ"), + "send": MessageLookupByLibrary.simpleMessage("അയക്കുക"), + "sendEmail": MessageLookupByLibrary.simpleMessage("ഇമെയിൽ അയക്കുക"), + "setupComplete": + MessageLookupByLibrary.simpleMessage("സജ്ജീകരണം പൂർത്തിയായി"), + "share": MessageLookupByLibrary.simpleMessage("പങ്കിടുക"), + "sharedByMe": MessageLookupByLibrary.simpleMessage("ഞാനാൽ പങ്കിട്ടവ"), + "sharedWithMe": + MessageLookupByLibrary.simpleMessage("എന്നോട് പങ്കിട്ടവ"), + "somethingWentWrongPleaseTryAgain": + MessageLookupByLibrary.simpleMessage( + "എന്തോ കുഴപ്പം സംഭവിച്ചു, ദയവായി വീണ്ടും ശ്രമിക്കുക"), + "sorry": MessageLookupByLibrary.simpleMessage("ക്ഷമിക്കുക"), + "sortAlbumsBy": + MessageLookupByLibrary.simpleMessage("ഇപ്രകാരം അടുക്കുക"), + "sparkleSuccess": MessageLookupByLibrary.simpleMessage("✨ സഫലം"), + "strongStrength": MessageLookupByLibrary.simpleMessage("ശക്തം"), + "success": MessageLookupByLibrary.simpleMessage("സഫലം"), + "support": MessageLookupByLibrary.simpleMessage("പിന്തുണ"), + "terms": MessageLookupByLibrary.simpleMessage("നിബന്ധനകൾ"), + "termsOfServicesTitle": + MessageLookupByLibrary.simpleMessage("നിബന്ധനകൾ"), + "thankYou": MessageLookupByLibrary.simpleMessage("നന്ദി"), + "thisDevice": MessageLookupByLibrary.simpleMessage("ഈ ഉപകരണം"), + "verify": MessageLookupByLibrary.simpleMessage("ഉറപ്പിക്കുക"), + "verifyEmail": + MessageLookupByLibrary.simpleMessage("ഇമെയിൽ ദൃഢീകരിക്കുക"), + "verifyPassword": + MessageLookupByLibrary.simpleMessage("സങ്കേതക്കുറി ദൃഢീകരിക്കുക"), + "weakStrength": MessageLookupByLibrary.simpleMessage("ദുർബലം"), + "welcomeBack": MessageLookupByLibrary.simpleMessage("വീണ്ടും സ്വാഗതം!"), + "yearly": MessageLookupByLibrary.simpleMessage("പ്രതിവർഷം") + }; } diff --git a/mobile/lib/generated/intl/messages_nl.dart b/mobile/lib/generated/intl/messages_nl.dart index d23b55d91a2..0050aef1e5c 100644 --- a/mobile/lib/generated/intl/messages_nl.dart +++ b/mobile/lib/generated/intl/messages_nl.dart @@ -61,194 +61,194 @@ class MessageLookup extends MessageLookupByLibrary { static String m18(albumName) => "Gezamenlijke link aangemaakt voor ${albumName}"; - static String m82(count) => + static String m19(count) => "${Intl.plural(count, zero: '0 samenwerkers toegevoegd', one: '1 samenwerker toegevoegd', other: '${count} samenwerkers toegevoegd')}"; - static String m19(familyAdminEmail) => + static String m21(familyAdminEmail) => "Neem contact op met ${familyAdminEmail} om uw abonnement te beheren"; - static String m20(provider) => + static String m22(provider) => "Neem contact met ons op via support@ente.io om uw ${provider} abonnement te beheren."; - static String m21(endpoint) => "Verbonden met ${endpoint}"; + static String m23(endpoint) => "Verbonden met ${endpoint}"; - static String m22(count) => + static String m24(count) => "${Intl.plural(count, one: 'Verwijder ${count} bestand', other: 'Verwijder ${count} bestanden')}"; - static String m23(currentlyDeleting, totalCount) => + static String m25(currentlyDeleting, totalCount) => "Verwijderen van ${currentlyDeleting} / ${totalCount}"; - static String m24(albumName) => + static String m26(albumName) => "Dit verwijdert de openbare link voor toegang tot \"${albumName}\"."; - static String m25(supportEmail) => + static String m27(supportEmail) => "Stuur een e-mail naar ${supportEmail} vanaf het door jou geregistreerde e-mailadres"; - static String m26(count, storageSaved) => + static String m28(count, storageSaved) => "Je hebt ${Intl.plural(count, one: '${count} dubbel bestand', other: '${count} dubbele bestanden')} opgeruimd, totaal (${storageSaved}!)"; - static String m27(count, formattedSize) => + static String m29(count, formattedSize) => "${count} bestanden, elk ${formattedSize}"; - static String m28(newEmail) => "E-mailadres gewijzigd naar ${newEmail}"; + static String m30(newEmail) => "E-mailadres gewijzigd naar ${newEmail}"; - static String m29(email) => + static String m31(email) => "${email} heeft geen Ente account.\n\nStuur ze een uitnodiging om foto\'s te delen."; - static String m30(text) => "Extra foto\'s gevonden voor ${text}"; + static String m32(text) => "Extra foto\'s gevonden voor ${text}"; - static String m31(count, formattedNumber) => + static String m33(count, formattedNumber) => "${Intl.plural(count, one: '1 bestand', other: '${formattedNumber} bestanden')} in dit album zijn veilig geback-upt"; - static String m32(count, formattedNumber) => + static String m34(count, formattedNumber) => "${Intl.plural(count, one: '1 bestand', other: '${formattedNumber} bestanden')} in dit album is veilig geback-upt"; - static String m33(storageAmountInGB) => + static String m35(storageAmountInGB) => "${storageAmountInGB} GB telkens als iemand zich aanmeldt voor een betaald abonnement en je code toepast"; - static String m34(endDate) => "Gratis proefversie geldig tot ${endDate}"; + static String m36(endDate) => "Gratis proefversie geldig tot ${endDate}"; - static String m35(count) => + static String m37(count) => "Je hebt nog steeds toegang tot ${Intl.plural(count, one: 'het', other: 'ze')} op Ente zolang je een actief abonnement hebt"; - static String m36(sizeInMBorGB) => "Maak ${sizeInMBorGB} vrij"; + static String m38(sizeInMBorGB) => "Maak ${sizeInMBorGB} vrij"; - static String m37(count, formattedSize) => + static String m39(count, formattedSize) => "${Intl.plural(count, one: 'Het kan verwijderd worden van het apparaat om ${formattedSize} vrij te maken', other: 'Ze kunnen verwijderd worden van het apparaat om ${formattedSize} vrij te maken')}"; - static String m38(currentlyProcessing, totalCount) => + static String m40(currentlyProcessing, totalCount) => "Verwerken van ${currentlyProcessing} / ${totalCount}"; - static String m39(count) => + static String m41(count) => "${Intl.plural(count, one: '${count} item', other: '${count} items')}"; - static String m40(expiryTime) => "Link vervalt op ${expiryTime}"; + static String m43(expiryTime) => "Link vervalt op ${expiryTime}"; static String m3(count, formattedCount) => "${Intl.plural(count, zero: 'geen herinneringen', one: '${formattedCount} herinnering', other: '${formattedCount} herinneringen')}"; - static String m41(count) => + static String m44(count) => "${Intl.plural(count, one: 'Bestand verplaatsen', other: 'Bestanden verplaatsen')}"; - static String m42(albumName) => "Succesvol verplaatst naar ${albumName}"; + static String m45(albumName) => "Succesvol verplaatst naar ${albumName}"; - static String m43(personName) => "Geen suggesties voor ${personName}"; + static String m46(personName) => "Geen suggesties voor ${personName}"; - static String m44(name) => "Niet ${name}?"; + static String m47(name) => "Niet ${name}?"; - static String m45(familyAdminEmail) => + static String m48(familyAdminEmail) => "Neem contact op met ${familyAdminEmail} om uw code te wijzigen."; static String m0(passwordStrengthValue) => "Wachtwoord sterkte: ${passwordStrengthValue}"; - static String m46(providerName) => + static String m49(providerName) => "Praat met ${providerName} klantenservice als u in rekening bent gebracht"; - static String m47(count) => + static String m50(count) => "${Intl.plural(count, zero: '0 foto\'s', one: '1 foto', other: '${count} foto\'s')}"; - static String m48(endDate) => + static String m51(endDate) => "Gratis proefperiode geldig tot ${endDate}.\nU kunt naderhand een betaald abonnement kiezen."; - static String m49(toEmail) => "Stuur ons een e-mail op ${toEmail}"; + static String m52(toEmail) => "Stuur ons een e-mail op ${toEmail}"; - static String m50(toEmail) => + static String m53(toEmail) => "Verstuur de logboeken alstublieft naar ${toEmail}"; - static String m51(folderName) => "Verwerken van ${folderName}..."; + static String m54(folderName) => "Verwerken van ${folderName}..."; - static String m52(storeName) => "Beoordeel ons op ${storeName}"; + static String m55(storeName) => "Beoordeel ons op ${storeName}"; - static String m53(storageInGB) => + static String m59(storageInGB) => "Jullie krijgen allebei ${storageInGB} GB* gratis"; - static String m54(userEmail) => + static String m60(userEmail) => "${userEmail} zal worden verwijderd uit dit gedeelde album\n\nAlle door hen toegevoegde foto\'s worden ook uit het album verwijderd"; - static String m55(endDate) => "Wordt verlengd op ${endDate}"; + static String m61(endDate) => "Wordt verlengd op ${endDate}"; - static String m56(count) => + static String m62(count) => "${Intl.plural(count, one: '${count} resultaat gevonden', other: '${count} resultaten gevonden')}"; - static String m57(snapshotLenght, searchLenght) => + static String m63(snapshotLenght, searchLenght) => "Lengte van secties komt niet overeen: ${snapshotLenght} != ${searchLenght}"; static String m4(count) => "${count} geselecteerd"; - static String m58(count, yourCount) => + static String m64(count, yourCount) => "${count} geselecteerd (${yourCount} van jou)"; - static String m59(verificationID) => + static String m65(verificationID) => "Hier is mijn verificatie-ID: ${verificationID} voor ente.io."; static String m5(verificationID) => "Hey, kunt u bevestigen dat dit uw ente.io verificatie-ID is: ${verificationID}"; - static String m60(referralCode, referralStorageInGB) => + static String m66(referralCode, referralStorageInGB) => "Ente verwijzingscode: ${referralCode} \n\nPas het toe bij Instellingen → Algemeen → Verwijzingen om ${referralStorageInGB} GB gratis te krijgen nadat je je hebt aangemeld voor een betaald abonnement\n\nhttps://ente.io"; - static String m61(numberOfPeople) => + static String m67(numberOfPeople) => "${Intl.plural(numberOfPeople, zero: 'Deel met specifieke mensen', one: 'Gedeeld met 1 persoon', other: 'Gedeeld met ${numberOfPeople} mensen')}"; - static String m62(emailIDs) => "Gedeeld met ${emailIDs}"; + static String m68(emailIDs) => "Gedeeld met ${emailIDs}"; - static String m63(fileType) => + static String m69(fileType) => "Deze ${fileType} zal worden verwijderd van jouw apparaat."; - static String m64(fileType) => + static String m70(fileType) => "Deze ${fileType} staat zowel in Ente als op jouw apparaat."; - static String m65(fileType) => + static String m71(fileType) => "Deze ${fileType} zal worden verwijderd uit Ente."; static String m1(storageAmountInGB) => "${storageAmountInGB} GB"; - static String m66( + static String m72( usedAmount, usedStorageUnit, totalAmount, totalStorageUnit) => "${usedAmount} ${usedStorageUnit} van ${totalAmount} ${totalStorageUnit} gebruikt"; - static String m67(id) => + static String m73(id) => "Jouw ${id} is al aan een ander Ente account gekoppeld.\nAls je jouw ${id} wilt gebruiken met dit account, neem dan contact op met onze klantenservice"; - static String m68(endDate) => "Uw abonnement loopt af op ${endDate}"; + static String m74(endDate) => "Uw abonnement loopt af op ${endDate}"; - static String m69(completed, total) => + static String m75(completed, total) => "${completed}/${total} herinneringen bewaard"; - static String m70(ignoreReason) => + static String m76(ignoreReason) => "Tik om te uploaden, upload wordt momenteel genegeerd vanwege ${ignoreReason}"; - static String m71(storageAmountInGB) => + static String m77(storageAmountInGB) => "Zij krijgen ook ${storageAmountInGB} GB"; - static String m72(email) => "Dit is de verificatie-ID van ${email}"; + static String m78(email) => "Dit is de verificatie-ID van ${email}"; - static String m73(count) => + static String m79(count) => "${Intl.plural(count, zero: 'Binnenkort', one: '1 dag', other: '${count} dagen')}"; - static String m74(galleryType) => + static String m81(galleryType) => "Galerijtype ${galleryType} wordt niet ondersteund voor hernoemen"; - static String m75(ignoreReason) => + static String m82(ignoreReason) => "Upload wordt genegeerd omdat ${ignoreReason}"; - static String m76(count) => "${count} herinneringen veiligstellen..."; + static String m83(count) => "${count} herinneringen veiligstellen..."; - static String m77(endDate) => "Geldig tot ${endDate}"; + static String m84(endDate) => "Geldig tot ${endDate}"; - static String m78(email) => "Verifieer ${email}"; + static String m85(email) => "Verifieer ${email}"; - static String m79(count) => + static String m86(count) => "${Intl.plural(count, zero: '0 kijkers toegevoegd', one: '1 kijker toegevoegd', other: '${count} kijkers toegevoegd')}"; static String m2(email) => "We hebben een e-mail gestuurd naar ${email}"; - static String m80(count) => + static String m87(count) => "${Intl.plural(count, one: '${count} jaar geleden', other: '${count} jaar geleden')}"; - static String m81(storageSaved) => + static String m88(storageSaved) => "Je hebt ${storageSaved} succesvol vrijgemaakt!"; final messages = _notInlinedMessages(_notInlinedMessages); @@ -256,6 +256,8 @@ class MessageLookup extends MessageLookupByLibrary { "aNewVersionOfEnteIsAvailable": MessageLookupByLibrary.simpleMessage( "Er is een nieuwe versie van Ente beschikbaar."), "about": MessageLookupByLibrary.simpleMessage("Over"), + "acceptTrustInvite": + MessageLookupByLibrary.simpleMessage("Uitnodiging accepteren"), "account": MessageLookupByLibrary.simpleMessage("Account"), "accountIsAlreadyConfigured": MessageLookupByLibrary.simpleMessage( "Account is al geconfigureerd."), @@ -298,6 +300,8 @@ class MessageLookup extends MessageLookupByLibrary { "addToEnte": MessageLookupByLibrary.simpleMessage("Toevoegen aan Ente"), "addToHiddenAlbum": MessageLookupByLibrary.simpleMessage( "Toevoegen aan verborgen album"), + "addTrustedContact": + MessageLookupByLibrary.simpleMessage("Vertrouwd contact toevoegen"), "addViewer": MessageLookupByLibrary.simpleMessage("Voeg kijker toe"), "addViewers": m9, "addYourPhotosNow": @@ -325,10 +329,13 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Alle herinneringen bewaard"), "allPersonGroupingWillReset": MessageLookupByLibrary.simpleMessage( "Alle groepen voor deze persoon worden gereset, en je verliest alle suggesties die voor deze persoon zijn gedaan"), + "allow": MessageLookupByLibrary.simpleMessage("Toestaan"), "allowAddPhotosDescription": MessageLookupByLibrary.simpleMessage( "Sta toe dat mensen met de link ook foto\'s kunnen toevoegen aan het gedeelde album."), "allowAddingPhotos": MessageLookupByLibrary.simpleMessage("Foto\'s toevoegen toestaan"), + "allowAppToOpenSharedAlbumLinks": MessageLookupByLibrary.simpleMessage( + "App toestaan gedeelde album links te openen"), "allowDownloads": MessageLookupByLibrary.simpleMessage("Downloads toestaan"), "allowPeopleToAddPhotos": MessageLookupByLibrary.simpleMessage( @@ -406,6 +413,8 @@ class MessageLookup extends MessageLookupByLibrary { "Graag verifiëren om tweestapsverificatie te configureren"), "authToInitiateAccountDeletion": MessageLookupByLibrary.simpleMessage( "Gelieve te verifiëren om het verwijderen van je account te starten"), + "authToManageLegacy": MessageLookupByLibrary.simpleMessage( + "Verifieer om je vertrouwde contacten te beheren"), "authToViewPasskey": MessageLookupByLibrary.simpleMessage( "Verifieer uzelf om uw toegangssleutel te bekijken"), "authToViewYourActiveSessions": MessageLookupByLibrary.simpleMessage( @@ -442,6 +451,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Back-up mappen"), "backup": MessageLookupByLibrary.simpleMessage("Back-up"), "backupFailed": MessageLookupByLibrary.simpleMessage("Back-up mislukt"), + "backupFile": MessageLookupByLibrary.simpleMessage("Back-up bestand"), "backupOverMobileData": MessageLookupByLibrary.simpleMessage( "Back-up maken via mobiele data"), "backupSettings": @@ -466,6 +476,10 @@ class MessageLookup extends MessageLookupByLibrary { "canOnlyRemoveFilesOwnedByYou": MessageLookupByLibrary.simpleMessage( "Kan alleen bestanden verwijderen die jouw eigendom zijn"), "cancel": MessageLookupByLibrary.simpleMessage("Annuleer"), + "cancelAccountRecovery": + MessageLookupByLibrary.simpleMessage("Herstel annuleren"), + "cancelAccountRecoveryBody": MessageLookupByLibrary.simpleMessage( + "Weet je zeker dat je het herstel wilt annuleren?"), "cancelOtherSubscription": m15, "cancelSubscription": MessageLookupByLibrary.simpleMessage("Abonnement opzeggen"), @@ -552,7 +566,7 @@ class MessageLookup extends MessageLookupByLibrary { "collaboratorsCanAddPhotosAndVideosToTheSharedAlbum": MessageLookupByLibrary.simpleMessage( "Samenwerkers kunnen foto\'s en video\'s toevoegen aan het gedeelde album."), - "collaboratorsSuccessfullyAdded": m82, + "collaboratorsSuccessfullyAdded": m19, "collageLayout": MessageLookupByLibrary.simpleMessage("Layout"), "collageSaved": MessageLookupByLibrary.simpleMessage( "Collage opgeslagen in gallerij"), @@ -582,10 +596,10 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Bevestig herstelsleutel"), "connectToDevice": MessageLookupByLibrary.simpleMessage( "Verbinding maken met apparaat"), - "contactFamilyAdmin": m19, + "contactFamilyAdmin": m21, "contactSupport": MessageLookupByLibrary.simpleMessage("Contacteer klantenservice"), - "contactToManageSubscription": m20, + "contactToManageSubscription": m22, "contacts": MessageLookupByLibrary.simpleMessage("Contacten"), "contents": MessageLookupByLibrary.simpleMessage("Inhoud"), "continueLabel": MessageLookupByLibrary.simpleMessage("Doorgaan"), @@ -632,10 +646,12 @@ class MessageLookup extends MessageLookupByLibrary { "currentlyRunning": MessageLookupByLibrary.simpleMessage("momenteel bezig"), "custom": MessageLookupByLibrary.simpleMessage("Aangepast"), - "customEndpoint": m21, + "customEndpoint": m23, "darkTheme": MessageLookupByLibrary.simpleMessage("Donker"), "dayToday": MessageLookupByLibrary.simpleMessage("Vandaag"), "dayYesterday": MessageLookupByLibrary.simpleMessage("Gisteren"), + "declineTrustInvite": + MessageLookupByLibrary.simpleMessage("Uitnodiging afwijzen"), "decrypting": MessageLookupByLibrary.simpleMessage("Ontsleutelen..."), "decryptingVideo": MessageLookupByLibrary.simpleMessage("Video ontsleutelen..."), @@ -668,12 +684,12 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Verwijder van apparaat"), "deleteFromEnte": MessageLookupByLibrary.simpleMessage("Verwijder van Ente"), - "deleteItemCount": m22, + "deleteItemCount": m24, "deleteLocation": MessageLookupByLibrary.simpleMessage("Verwijder locatie"), "deletePhotos": MessageLookupByLibrary.simpleMessage("Foto\'s verwijderen"), - "deleteProgress": m23, + "deleteProgress": m25, "deleteReason1": MessageLookupByLibrary.simpleMessage( "Ik mis een belangrijke functie"), "deleteReason2": MessageLookupByLibrary.simpleMessage( @@ -714,7 +730,7 @@ class MessageLookup extends MessageLookupByLibrary { "Kijkers kunnen nog steeds screenshots maken of een kopie van je foto\'s opslaan met behulp van externe tools"), "disableDownloadWarningTitle": MessageLookupByLibrary.simpleMessage("Let op"), - "disableLinkMessage": m24, + "disableLinkMessage": m26, "disableTwofactor": MessageLookupByLibrary.simpleMessage( "Tweestapsverificatie uitschakelen"), "disablingTwofactorAuthentication": @@ -756,9 +772,9 @@ class MessageLookup extends MessageLookupByLibrary { "downloadFailed": MessageLookupByLibrary.simpleMessage("Download mislukt"), "downloading": MessageLookupByLibrary.simpleMessage("Downloaden..."), - "dropSupportEmail": m25, - "duplicateFileCountWithStorageSaved": m26, - "duplicateItemsGroup": m27, + "dropSupportEmail": m27, + "duplicateFileCountWithStorageSaved": m28, + "duplicateItemsGroup": m29, "edit": MessageLookupByLibrary.simpleMessage("Bewerken"), "editLocation": MessageLookupByLibrary.simpleMessage("Locatie bewerken"), @@ -772,12 +788,14 @@ class MessageLookup extends MessageLookupByLibrary { "Bewerkte locatie wordt alleen gezien binnen Ente"), "eligible": MessageLookupByLibrary.simpleMessage("gerechtigd"), "email": MessageLookupByLibrary.simpleMessage("E-mail"), - "emailChangedTo": m28, - "emailNoEnteAccount": m29, + "emailChangedTo": m30, + "emailNoEnteAccount": m31, "emailVerificationToggle": MessageLookupByLibrary.simpleMessage("E-mailverificatie"), "emailYourLogs": MessageLookupByLibrary.simpleMessage("E-mail uw logboeken"), + "emergencyContacts": + MessageLookupByLibrary.simpleMessage("Noodcontacten"), "empty": MessageLookupByLibrary.simpleMessage("Leeg"), "emptyTrash": MessageLookupByLibrary.simpleMessage("Prullenbak leegmaken?"), @@ -856,7 +874,9 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Exporteer je gegevens"), "extraPhotosFound": MessageLookupByLibrary.simpleMessage("Extra foto\'s gevonden"), - "extraPhotosFoundFor": m30, + "extraPhotosFoundFor": m32, + "faceNotClusteredYet": MessageLookupByLibrary.simpleMessage( + "Gezicht nog niet geclusterd, kom later terug"), "faceRecognition": MessageLookupByLibrary.simpleMessage("Gezichtsherkenning"), "faces": MessageLookupByLibrary.simpleMessage("Gezichten"), @@ -906,8 +926,8 @@ class MessageLookup extends MessageLookupByLibrary { "fileTypes": MessageLookupByLibrary.simpleMessage("Bestandstype"), "fileTypesAndNames": MessageLookupByLibrary.simpleMessage("Bestandstypen en namen"), - "filesBackedUpFromDevice": m31, - "filesBackedUpInAlbum": m32, + "filesBackedUpFromDevice": m33, + "filesBackedUpInAlbum": m34, "filesDeleted": MessageLookupByLibrary.simpleMessage("Bestanden verwijderd"), "filesSavedToGallery": MessageLookupByLibrary.simpleMessage( @@ -924,25 +944,25 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Gezichten gevonden"), "freeStorageClaimed": MessageLookupByLibrary.simpleMessage("Gratis opslag geclaimd"), - "freeStorageOnReferralSuccess": m33, + "freeStorageOnReferralSuccess": m35, "freeStorageUsable": MessageLookupByLibrary.simpleMessage("Gratis opslag bruikbaar"), "freeTrial": MessageLookupByLibrary.simpleMessage("Gratis proefversie"), - "freeTrialValidTill": m34, - "freeUpAccessPostDelete": m35, - "freeUpAmount": m36, + "freeTrialValidTill": m36, + "freeUpAccessPostDelete": m37, + "freeUpAmount": m38, "freeUpDeviceSpace": MessageLookupByLibrary.simpleMessage("Apparaatruimte vrijmaken"), "freeUpDeviceSpaceDesc": MessageLookupByLibrary.simpleMessage( "Bespaar ruimte op je apparaat door bestanden die al geback-upt zijn te wissen."), "freeUpSpace": MessageLookupByLibrary.simpleMessage("Ruimte vrijmaken"), - "freeUpSpaceSaving": m37, + "freeUpSpaceSaving": m39, "galleryMemoryLimitInfo": MessageLookupByLibrary.simpleMessage( "Tot 1000 herinneringen getoond in de galerij"), "general": MessageLookupByLibrary.simpleMessage("Algemeen"), "generatingEncryptionKeys": MessageLookupByLibrary.simpleMessage( "Encryptiesleutels genereren..."), - "genericProgress": m38, + "genericProgress": m40, "goToSettings": MessageLookupByLibrary.simpleMessage("Ga naar instellingen"), "googlePlayId": MessageLookupByLibrary.simpleMessage("Google Play ID"), @@ -1023,7 +1043,7 @@ class MessageLookup extends MessageLookupByLibrary { "itLooksLikeSomethingWentWrongPleaseRetryAfterSome": MessageLookupByLibrary.simpleMessage( "Het lijkt erop dat er iets fout is gegaan. Probeer het later opnieuw. Als de fout zich blijft voordoen, neem dan contact op met ons supportteam."), - "itemCount": m39, + "itemCount": m41, "itemsShowTheNumberOfDaysRemainingBeforePermanentDeletion": MessageLookupByLibrary.simpleMessage( "Bestanden tonen het aantal resterende dagen voordat ze permanent worden verwijderd"), @@ -1043,6 +1063,13 @@ class MessageLookup extends MessageLookupByLibrary { "leaveSharedAlbum": MessageLookupByLibrary.simpleMessage("Gedeeld album verlaten?"), "left": MessageLookupByLibrary.simpleMessage("Links"), + "legacy": MessageLookupByLibrary.simpleMessage("Legacy"), + "legacyAccounts": + MessageLookupByLibrary.simpleMessage("Legacy accounts"), + "legacyPageDesc": MessageLookupByLibrary.simpleMessage( + "Legacy geeft vertrouwde contacten toegang tot je account bij afwezigheid."), + "legacyPageDesc2": MessageLookupByLibrary.simpleMessage( + "Vertrouwde contacten kunnen accountherstel starten, en indien deze niet binnen 30 dagen wordt geblokkeerd, je wachtwoord resetten en toegang krijgen tot je account."), "light": MessageLookupByLibrary.simpleMessage("Licht"), "lightTheme": MessageLookupByLibrary.simpleMessage("Licht"), "linkCopiedToClipboard": MessageLookupByLibrary.simpleMessage( @@ -1051,7 +1078,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Apparaat limiet"), "linkEnabled": MessageLookupByLibrary.simpleMessage("Ingeschakeld"), "linkExpired": MessageLookupByLibrary.simpleMessage("Verlopen"), - "linkExpiresOn": m40, + "linkExpiresOn": m43, "linkExpiry": MessageLookupByLibrary.simpleMessage("Vervaldatum"), "linkHasExpired": MessageLookupByLibrary.simpleMessage("Link is vervallen"), @@ -1105,6 +1132,8 @@ class MessageLookup extends MessageLookupByLibrary { "Jouw sessie is verlopen. Log opnieuw in."), "loginTerms": MessageLookupByLibrary.simpleMessage( "Door op inloggen te klikken, ga ik akkoord met de gebruiksvoorwaarden en privacybeleid"), + "loginWithTOTP": + MessageLookupByLibrary.simpleMessage("Inloggen met TOTP"), "logout": MessageLookupByLibrary.simpleMessage("Uitloggen"), "logsDialogBody": MessageLookupByLibrary.simpleMessage( "Dit zal logboeken verzenden om ons te helpen uw probleem op te lossen. Houd er rekening mee dat bestandsnamen zullen worden meegenomen om problemen met specifieke bestanden bij te houden."), @@ -1126,6 +1155,10 @@ class MessageLookup extends MessageLookupByLibrary { "magicSearchHint": MessageLookupByLibrary.simpleMessage( "Magisch zoeken maakt het mogelijk om foto\'s op hun inhoud worden gezocht, bijvoorbeeld \"bloem\", \"rode auto\", \"identiteitsdocumenten\""), "manage": MessageLookupByLibrary.simpleMessage("Beheren"), + "manageDeviceStorage": + MessageLookupByLibrary.simpleMessage("Apparaatcache beheren"), + "manageDeviceStorageDesc": MessageLookupByLibrary.simpleMessage( + "Bekijk en wis lokale cache opslag."), "manageFamily": MessageLookupByLibrary.simpleMessage("Familie abonnement beheren"), "manageLink": MessageLookupByLibrary.simpleMessage("Beheer link"), @@ -1168,12 +1201,12 @@ class MessageLookup extends MessageLookupByLibrary { "moreDetails": MessageLookupByLibrary.simpleMessage("Meer details"), "mostRecent": MessageLookupByLibrary.simpleMessage("Meest recent"), "mostRelevant": MessageLookupByLibrary.simpleMessage("Meest relevant"), - "moveItem": m41, + "moveItem": m44, "moveToAlbum": MessageLookupByLibrary.simpleMessage("Verplaats naar album"), "moveToHiddenAlbum": MessageLookupByLibrary.simpleMessage( "Verplaatsen naar verborgen album"), - "movedSuccessfullyTo": m42, + "movedSuccessfullyTo": m45, "movedToTrash": MessageLookupByLibrary.simpleMessage("Naar prullenbak verplaatst"), "movingFilesToAlbum": MessageLookupByLibrary.simpleMessage( @@ -1225,10 +1258,10 @@ class MessageLookup extends MessageLookupByLibrary { "noResults": MessageLookupByLibrary.simpleMessage("Geen resultaten"), "noResultsFound": MessageLookupByLibrary.simpleMessage("Geen resultaten gevonden"), - "noSuggestionsForPerson": m43, + "noSuggestionsForPerson": m46, "noSystemLockFound": MessageLookupByLibrary.simpleMessage( "Geen systeemvergrendeling gevonden"), - "notPersonLabel": m44, + "notPersonLabel": m47, "nothingSharedWithYouYet": MessageLookupByLibrary.simpleMessage("Nog niets met je gedeeld"), "nothingToSeeHere": @@ -1238,13 +1271,18 @@ class MessageLookup extends MessageLookupByLibrary { "onDevice": MessageLookupByLibrary.simpleMessage("Op het apparaat"), "onEnte": MessageLookupByLibrary.simpleMessage( "Op ente"), - "onlyFamilyAdminCanChangeCode": m45, + "onlyFamilyAdminCanChangeCode": m48, "onlyThem": MessageLookupByLibrary.simpleMessage("Alleen hen"), "oops": MessageLookupByLibrary.simpleMessage("Oeps"), "oopsCouldNotSaveEdits": MessageLookupByLibrary.simpleMessage( "Oeps, kon bewerkingen niet opslaan"), "oopsSomethingWentWrong": MessageLookupByLibrary.simpleMessage("Oeps, er is iets misgegaan"), + "openAlbumInBrowser": + MessageLookupByLibrary.simpleMessage("Open album in browser"), + "openAlbumInBrowserTitle": MessageLookupByLibrary.simpleMessage( + "Gebruik de webapp om foto\'s aan dit album toe te voegen"), + "openFile": MessageLookupByLibrary.simpleMessage("Bestand openen"), "openSettings": MessageLookupByLibrary.simpleMessage("Instellingen openen"), "openTheItem": MessageLookupByLibrary.simpleMessage("• Open het item"), @@ -1281,7 +1319,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Betaling mislukt"), "paymentFailedMessage": MessageLookupByLibrary.simpleMessage( "Helaas is je betaling mislukt. Neem contact op met support zodat we je kunnen helpen!"), - "paymentFailedTalkToProvider": m46, + "paymentFailedTalkToProvider": m49, "pendingItems": MessageLookupByLibrary.simpleMessage("Bestanden in behandeling"), "pendingSync": MessageLookupByLibrary.simpleMessage( @@ -1305,7 +1343,7 @@ class MessageLookup extends MessageLookupByLibrary { "photosAddedByYouWillBeRemovedFromTheAlbum": MessageLookupByLibrary.simpleMessage( "Foto\'s toegevoegd door u zullen worden verwijderd uit het album"), - "photosCount": m47, + "photosCount": m50, "pickCenterPoint": MessageLookupByLibrary.simpleMessage("Kies middelpunt"), "pinAlbum": @@ -1313,7 +1351,7 @@ class MessageLookup extends MessageLookupByLibrary { "pinLock": MessageLookupByLibrary.simpleMessage("PIN vergrendeling"), "playOnTv": MessageLookupByLibrary.simpleMessage("Album afspelen op TV"), - "playStoreFreeTrialValidTill": m48, + "playStoreFreeTrialValidTill": m51, "playstoreSubscription": MessageLookupByLibrary.simpleMessage("PlayStore abonnement"), "pleaseCheckYourInternetConnectionAndTryAgain": @@ -1325,14 +1363,14 @@ class MessageLookup extends MessageLookupByLibrary { "pleaseContactSupportIfTheProblemPersists": MessageLookupByLibrary.simpleMessage( "Neem contact op met klantenservice als het probleem aanhoudt"), - "pleaseEmailUsAt": m49, + "pleaseEmailUsAt": m52, "pleaseGrantPermissions": MessageLookupByLibrary.simpleMessage( "Geef alstublieft toestemming"), "pleaseLoginAgain": MessageLookupByLibrary.simpleMessage("Log opnieuw in"), "pleaseSelectQuickLinksToRemove": MessageLookupByLibrary.simpleMessage( "Selecteer snelle links om te verwijderen"), - "pleaseSendTheLogsTo": m50, + "pleaseSendTheLogsTo": m53, "pleaseTryAgain": MessageLookupByLibrary.simpleMessage("Probeer het nog eens"), "pleaseVerifyTheCodeYouHaveEntered": @@ -1358,7 +1396,7 @@ class MessageLookup extends MessageLookupByLibrary { "privateBackups": MessageLookupByLibrary.simpleMessage("Privé back-ups"), "privateSharing": MessageLookupByLibrary.simpleMessage("Privé delen"), - "processingImport": m51, + "processingImport": m54, "publicLinkCreated": MessageLookupByLibrary.simpleMessage("Publieke link aangemaakt"), "publicLinkEnabled": @@ -1368,11 +1406,15 @@ class MessageLookup extends MessageLookupByLibrary { "raiseTicket": MessageLookupByLibrary.simpleMessage("Meld probleem"), "rateTheApp": MessageLookupByLibrary.simpleMessage("Beoordeel de app"), "rateUs": MessageLookupByLibrary.simpleMessage("Beoordeel ons"), - "rateUsOnStore": m52, + "rateUsOnStore": m55, "recover": MessageLookupByLibrary.simpleMessage("Herstellen"), "recoverAccount": MessageLookupByLibrary.simpleMessage("Account herstellen"), "recoverButton": MessageLookupByLibrary.simpleMessage("Herstellen"), + "recoveryAccount": + MessageLookupByLibrary.simpleMessage("Account herstellen"), + "recoveryInitiated": + MessageLookupByLibrary.simpleMessage("Herstel gestart"), "recoveryKey": MessageLookupByLibrary.simpleMessage("Herstelsleutel"), "recoveryKeyCopiedToClipboard": MessageLookupByLibrary.simpleMessage( "Herstelsleutel gekopieerd naar klembord"), @@ -1388,6 +1430,8 @@ class MessageLookup extends MessageLookupByLibrary { "Je herstelsleutel is de enige manier om je foto\'s te herstellen als je je wachtwoord bent vergeten. Je vindt je herstelsleutel in Instellingen > Account.\n\nVoer hier je herstelsleutel in om te controleren of je hem correct hebt opgeslagen."), "recoverySuccessful": MessageLookupByLibrary.simpleMessage("Herstel succesvol!"), + "recoveryWarning": MessageLookupByLibrary.simpleMessage( + "Een vertrouwd contact probeert toegang te krijgen tot je account"), "recreatePasswordBody": MessageLookupByLibrary.simpleMessage( "Het huidige apparaat is niet krachtig genoeg om je wachtwoord te verifiëren, dus moeten we de code een keer opnieuw genereren op een manier die met alle apparaten werkt.\n\nLog in met behulp van uw herstelcode en genereer opnieuw uw wachtwoord (je kunt dezelfde indien gewenst opnieuw gebruiken)."), "recreatePasswordTitle": MessageLookupByLibrary.simpleMessage( @@ -1403,10 +1447,12 @@ class MessageLookup extends MessageLookupByLibrary { "1. Geef deze code aan je vrienden"), "referralStep2": MessageLookupByLibrary.simpleMessage( "2. Ze registreren voor een betaald plan"), - "referralStep3": m53, + "referralStep3": m59, "referrals": MessageLookupByLibrary.simpleMessage("Referenties"), "referralsAreCurrentlyPaused": MessageLookupByLibrary.simpleMessage( "Verwijzingen zijn momenteel gepauzeerd"), + "rejectRecovery": + MessageLookupByLibrary.simpleMessage("Herstel weigeren"), "remindToEmptyDeviceTrash": MessageLookupByLibrary.simpleMessage( "Leeg ook \"Onlangs verwijderd\" uit \"Instellingen\" -> \"Opslag\" om de vrij gekomen ruimte te benutten"), "remindToEmptyEnteTrash": MessageLookupByLibrary.simpleMessage( @@ -1428,10 +1474,12 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Uit album verwijderen?"), "removeFromFavorite": MessageLookupByLibrary.simpleMessage("Verwijder van favorieten"), + "removeInvite": + MessageLookupByLibrary.simpleMessage("Verwijder uitnodiging"), "removeLink": MessageLookupByLibrary.simpleMessage("Verwijder link"), "removeParticipant": MessageLookupByLibrary.simpleMessage("Deelnemer verwijderen"), - "removeParticipantBody": m54, + "removeParticipantBody": m60, "removePersonLabel": MessageLookupByLibrary.simpleMessage("Verwijder persoonslabel"), "removePublicLink": @@ -1442,6 +1490,8 @@ class MessageLookup extends MessageLookupByLibrary { "Sommige van de items die je verwijdert zijn door andere mensen toegevoegd, en je verliest de toegang daartoe"), "removeWithQuestionMark": MessageLookupByLibrary.simpleMessage("Verwijder?"), + "removeYourselfAsTrustedContact": MessageLookupByLibrary.simpleMessage( + "Verwijder jezelf als vertrouwd contact"), "removingFromFavorites": MessageLookupByLibrary.simpleMessage( "Verwijderen uit favorieten..."), "rename": MessageLookupByLibrary.simpleMessage("Naam wijzigen"), @@ -1451,7 +1501,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Bestandsnaam wijzigen"), "renewSubscription": MessageLookupByLibrary.simpleMessage("Abonnement verlengen"), - "renewsOn": m55, + "renewsOn": m61, "reportABug": MessageLookupByLibrary.simpleMessage("Een fout melden"), "reportBug": MessageLookupByLibrary.simpleMessage("Fout melden"), "resendEmail": @@ -1529,9 +1579,11 @@ class MessageLookup extends MessageLookupByLibrary { "Nodig mensen uit, en je ziet alle foto\'s die door hen worden gedeeld hier"), "searchPersonsEmptySection": MessageLookupByLibrary.simpleMessage( "Mensen worden hier getoond zodra de verwerking voltooid is"), - "searchResultCount": m56, - "searchSectionsLengthMismatch": m57, + "searchResultCount": m62, + "searchSectionsLengthMismatch": m63, "security": MessageLookupByLibrary.simpleMessage("Beveiliging"), + "seePublicAlbumLinksInApp": MessageLookupByLibrary.simpleMessage( + "Bekijk publieke album links in de app"), "selectALocation": MessageLookupByLibrary.simpleMessage("Selecteer een locatie"), "selectALocationFirst": @@ -1563,7 +1615,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage( "Geselecteerde bestanden worden verwijderd uit alle albums en verplaatst naar de prullenbak."), "selectedPhotos": m4, - "selectedPhotosWithYours": m58, + "selectedPhotosWithYours": m64, "send": MessageLookupByLibrary.simpleMessage("Verzenden"), "sendEmail": MessageLookupByLibrary.simpleMessage("E-mail versturen"), "sendInvite": @@ -1595,16 +1647,16 @@ class MessageLookup extends MessageLookupByLibrary { "shareAnAlbumNow": MessageLookupByLibrary.simpleMessage("Deel nu een album"), "shareLink": MessageLookupByLibrary.simpleMessage("Link delen"), - "shareMyVerificationID": m59, + "shareMyVerificationID": m65, "shareOnlyWithThePeopleYouWant": MessageLookupByLibrary.simpleMessage( "Deel alleen met de mensen die u wilt"), "shareTextConfirmOthersVerificationID": m5, "shareTextRecommendUsingEnte": MessageLookupByLibrary.simpleMessage( "Download Ente zodat we gemakkelijk foto\'s en video\'s in originele kwaliteit kunnen delen\n\nhttps://ente.io"), - "shareTextReferralCode": m60, + "shareTextReferralCode": m66, "shareWithNonenteUsers": MessageLookupByLibrary.simpleMessage( "Delen met niet-Ente gebruikers"), - "shareWithPeopleSectionTitle": m61, + "shareWithPeopleSectionTitle": m67, "shareYourFirstAlbum": MessageLookupByLibrary.simpleMessage("Deel jouw eerste album"), "sharedAlbumSectionDescription": MessageLookupByLibrary.simpleMessage( @@ -1615,7 +1667,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Nieuwe gedeelde foto\'s"), "sharedPhotoNotificationsExplanation": MessageLookupByLibrary.simpleMessage( "Ontvang meldingen wanneer iemand een foto toevoegt aan een gedeeld album waar je deel van uitmaakt"), - "sharedWith": m62, + "sharedWith": m68, "sharedWithMe": MessageLookupByLibrary.simpleMessage("Gedeeld met mij"), "sharedWithYou": MessageLookupByLibrary.simpleMessage("Gedeeld met jou"), @@ -1631,11 +1683,11 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Log uit op andere apparaten"), "signUpTerms": MessageLookupByLibrary.simpleMessage( "Ik ga akkoord met de gebruiksvoorwaarden en privacybeleid"), - "singleFileDeleteFromDevice": m63, + "singleFileDeleteFromDevice": m69, "singleFileDeleteHighlight": MessageLookupByLibrary.simpleMessage( "Het wordt uit alle albums verwijderd."), - "singleFileInBothLocalAndRemote": m64, - "singleFileInRemoteOnly": m65, + "singleFileInBothLocalAndRemote": m70, + "singleFileInRemoteOnly": m71, "skip": MessageLookupByLibrary.simpleMessage("Overslaan"), "social": MessageLookupByLibrary.simpleMessage("Sociale media"), "someItemsAreInBothEnteAndYourDevice": MessageLookupByLibrary.simpleMessage( @@ -1669,6 +1721,8 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Nieuwste eerst"), "sortOldestFirst": MessageLookupByLibrary.simpleMessage("Oudste eerst"), "sparkleSuccess": MessageLookupByLibrary.simpleMessage("✨ Succes"), + "startAccountRecoveryTitle": + MessageLookupByLibrary.simpleMessage("Herstel starten"), "startBackup": MessageLookupByLibrary.simpleMessage("Back-up starten"), "status": MessageLookupByLibrary.simpleMessage("Status"), "stopCastingBody": @@ -1681,10 +1735,10 @@ class MessageLookup extends MessageLookupByLibrary { "storageInGB": m1, "storageLimitExceeded": MessageLookupByLibrary.simpleMessage("Opslaglimiet overschreden"), - "storageUsageInfo": m66, + "storageUsageInfo": m72, "strongStrength": MessageLookupByLibrary.simpleMessage("Sterk"), - "subAlreadyLinkedErrMessage": m67, - "subWillBeCancelledOn": m68, + "subAlreadyLinkedErrMessage": m73, + "subWillBeCancelledOn": m74, "subscribe": MessageLookupByLibrary.simpleMessage("Abonneer"), "subscribeToEnableSharing": MessageLookupByLibrary.simpleMessage( "Je hebt een actief betaald abonnement nodig om delen mogelijk te maken."), @@ -1701,7 +1755,7 @@ class MessageLookup extends MessageLookupByLibrary { "suggestFeatures": MessageLookupByLibrary.simpleMessage("Features voorstellen"), "support": MessageLookupByLibrary.simpleMessage("Ondersteuning"), - "syncProgress": m69, + "syncProgress": m75, "syncStopped": MessageLookupByLibrary.simpleMessage("Synchronisatie gestopt"), "syncing": MessageLookupByLibrary.simpleMessage("Synchroniseren..."), @@ -1713,7 +1767,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Tik om te ontgrendelen"), "tapToUpload": MessageLookupByLibrary.simpleMessage("Tik om te uploaden"), - "tapToUploadIsIgnoredDue": m70, + "tapToUploadIsIgnoredDue": m76, "tempErrorContactSupportIfPersists": MessageLookupByLibrary.simpleMessage( "Het lijkt erop dat er iets fout is gegaan. Probeer het later opnieuw. Als de fout zich blijft voordoen, neem dan contact op met ons supportteam."), "terminate": MessageLookupByLibrary.simpleMessage("Beëindigen"), @@ -1727,6 +1781,9 @@ class MessageLookup extends MessageLookupByLibrary { "Dank je wel voor het abonneren!"), "theDownloadCouldNotBeCompleted": MessageLookupByLibrary.simpleMessage( "De download kon niet worden voltooid"), + "theLinkYouAreTryingToAccessHasExpired": + MessageLookupByLibrary.simpleMessage( + "De link die je probeert te openen is verlopen."), "theRecoveryKeyYouEnteredIsIncorrect": MessageLookupByLibrary.simpleMessage( "De ingevoerde herstelsleutel is onjuist"), @@ -1734,7 +1791,7 @@ class MessageLookup extends MessageLookupByLibrary { "theseItemsWillBeDeletedFromYourDevice": MessageLookupByLibrary.simpleMessage( "Deze bestanden zullen worden verwijderd van uw apparaat."), - "theyAlsoGetXGb": m71, + "theyAlsoGetXGb": m77, "theyWillBeDeletedFromAllAlbums": MessageLookupByLibrary.simpleMessage( "Ze zullen uit alle albums worden verwijderd."), "thisActionCannotBeUndone": MessageLookupByLibrary.simpleMessage( @@ -1750,7 +1807,7 @@ class MessageLookup extends MessageLookupByLibrary { "Dit e-mailadres is al in gebruik"), "thisImageHasNoExifData": MessageLookupByLibrary.simpleMessage( "Deze foto heeft geen exif gegevens"), - "thisIsPersonVerificationId": m72, + "thisIsPersonVerificationId": m78, "thisIsYourVerificationId": MessageLookupByLibrary.simpleMessage("Dit is uw verificatie-ID"), "thisWillLogYouOutOfTheFollowingDevice": @@ -1775,8 +1832,10 @@ class MessageLookup extends MessageLookupByLibrary { "total": MessageLookupByLibrary.simpleMessage("totaal"), "totalSize": MessageLookupByLibrary.simpleMessage("Totale grootte"), "trash": MessageLookupByLibrary.simpleMessage("Prullenbak"), - "trashDaysLeft": m73, + "trashDaysLeft": m79, "trim": MessageLookupByLibrary.simpleMessage("Knippen"), + "trustedContacts": + MessageLookupByLibrary.simpleMessage("Vertrouwde contacten"), "tryAgain": MessageLookupByLibrary.simpleMessage("Probeer opnieuw"), "turnOnBackupForAutoUpload": MessageLookupByLibrary.simpleMessage( "Schakel back-up in om bestanden die toegevoegd zijn aan deze map op dit apparaat automatisch te uploaden."), @@ -1795,7 +1854,7 @@ class MessageLookup extends MessageLookupByLibrary { "Tweestapsverificatie succesvol gereset"), "twofactorSetup": MessageLookupByLibrary.simpleMessage("Tweestapsverificatie"), - "typeOfGallerGallerytypeIsNotSupportedForRename": m74, + "typeOfGallerGallerytypeIsNotSupportedForRename": m81, "unarchive": MessageLookupByLibrary.simpleMessage("Uit archief halen"), "unarchiveAlbum": MessageLookupByLibrary.simpleMessage("Album uit archief halen"), @@ -1821,10 +1880,10 @@ class MessageLookup extends MessageLookupByLibrary { "updatingFolderSelection": MessageLookupByLibrary.simpleMessage("Map selectie bijwerken..."), "upgrade": MessageLookupByLibrary.simpleMessage("Upgraden"), - "uploadIsIgnoredDueToIgnorereason": m75, + "uploadIsIgnoredDueToIgnorereason": m82, "uploadingFilesToAlbum": MessageLookupByLibrary.simpleMessage( "Bestanden worden geüpload naar album..."), - "uploadingMultipleMemories": m76, + "uploadingMultipleMemories": m83, "uploadingSingleMemory": MessageLookupByLibrary.simpleMessage( "1 herinnering veiligstellen..."), "upto50OffUntil4thDec": MessageLookupByLibrary.simpleMessage( @@ -1840,7 +1899,7 @@ class MessageLookup extends MessageLookupByLibrary { "useSelectedPhoto": MessageLookupByLibrary.simpleMessage("Gebruik geselecteerde foto"), "usedSpace": MessageLookupByLibrary.simpleMessage("Gebruikte ruimte"), - "validTill": m77, + "validTill": m84, "verificationFailedPleaseTryAgain": MessageLookupByLibrary.simpleMessage( "Verificatie mislukt, probeer het opnieuw"), @@ -1848,7 +1907,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Verificatie ID"), "verify": MessageLookupByLibrary.simpleMessage("Verifiëren"), "verifyEmail": MessageLookupByLibrary.simpleMessage("Bevestig e-mail"), - "verifyEmailID": m78, + "verifyEmailID": m85, "verifyIDLabel": MessageLookupByLibrary.simpleMessage("Verifiëren"), "verifyPasskey": MessageLookupByLibrary.simpleMessage("Bevestig passkey"), @@ -1875,7 +1934,7 @@ class MessageLookup extends MessageLookupByLibrary { "viewRecoveryKey": MessageLookupByLibrary.simpleMessage("Toon herstelsleutel"), "viewer": MessageLookupByLibrary.simpleMessage("Kijker"), - "viewersSuccessfullyAdded": m79, + "viewersSuccessfullyAdded": m86, "visitWebToManage": MessageLookupByLibrary.simpleMessage( "Bezoek alstublieft web.ente.io om uw abonnement te beheren"), "waitingForVerification": @@ -1891,9 +1950,11 @@ class MessageLookup extends MessageLookupByLibrary { "weakStrength": MessageLookupByLibrary.simpleMessage("Zwak"), "welcomeBack": MessageLookupByLibrary.simpleMessage("Welkom terug!"), "whatsNew": MessageLookupByLibrary.simpleMessage("Nieuw"), + "whyAddTrustContact": MessageLookupByLibrary.simpleMessage( + "Vertrouwde contacten kunnen helpen bij het herstellen van je data."), "yearShort": MessageLookupByLibrary.simpleMessage("jr"), "yearly": MessageLookupByLibrary.simpleMessage("Jaarlijks"), - "yearsAgo": m80, + "yearsAgo": m87, "yes": MessageLookupByLibrary.simpleMessage("Ja"), "yesCancel": MessageLookupByLibrary.simpleMessage("Ja, opzeggen"), "yesConvertToViewer": @@ -1925,7 +1986,7 @@ class MessageLookup extends MessageLookupByLibrary { "Je kunt niet met jezelf delen"), "youDontHaveAnyArchivedItems": MessageLookupByLibrary.simpleMessage( "U heeft geen gearchiveerde bestanden."), - "youHaveSuccessfullyFreedUp": m81, + "youHaveSuccessfullyFreedUp": m88, "yourAccountHasBeenDeleted": MessageLookupByLibrary.simpleMessage("Je account is verwijderd"), "yourMap": MessageLookupByLibrary.simpleMessage("Jouw kaart"), diff --git a/mobile/lib/generated/intl/messages_no.dart b/mobile/lib/generated/intl/messages_no.dart index 4f35bbb6bb6..5d70d1c00b2 100644 --- a/mobile/lib/generated/intl/messages_no.dart +++ b/mobile/lib/generated/intl/messages_no.dart @@ -26,22 +26,22 @@ class MessageLookup extends MessageLookupByLibrary { static String m16(user) => "${user} vil ikke kunne legge til flere bilder til dette albumet\n\nDe vil fortsatt kunne fjerne eksisterende bilder lagt til av dem"; - static String m22(count) => + static String m24(count) => "${Intl.plural(count, one: 'Slett ${count} element', other: 'Slett ${count} elementer')}"; - static String m24(albumName) => + static String m26(albumName) => "Dette fjerner den offentlige lenken for tilgang til \"${albumName}\"."; - static String m25(supportEmail) => + static String m27(supportEmail) => "Vennligst send en e-post til ${supportEmail} fra din registrerte e-postadresse"; - static String m27(count, formattedSize) => + static String m29(count, formattedSize) => "${count} filer, ${formattedSize} hver"; - static String m39(count) => + static String m41(count) => "${Intl.plural(count, one: '${count} element', other: '${count} elementer')}"; - static String m40(expiryTime) => "Lenken utløper på ${expiryTime}"; + static String m43(expiryTime) => "Lenken utløper på ${expiryTime}"; static String m3(count, formattedCount) => "${Intl.plural(count, zero: 'ingen minner', one: '${formattedCount} minne', other: '${formattedCount} minner')}"; @@ -51,20 +51,20 @@ class MessageLookup extends MessageLookupByLibrary { static String m4(count) => "${count} valgt"; - static String m58(count, yourCount) => "${count} valgt (${yourCount} dine)"; + static String m64(count, yourCount) => "${count} valgt (${yourCount} dine)"; - static String m59(verificationID) => + static String m65(verificationID) => "Her er min verifiserings-ID: ${verificationID} for ente.io."; static String m5(verificationID) => "Hei, kan du bekrefte at dette er din ente.io verifiserings-ID: ${verificationID}"; - static String m61(numberOfPeople) => + static String m67(numberOfPeople) => "${Intl.plural(numberOfPeople, zero: 'Del med bestemte personer', one: 'Delt med 1 person', other: 'Delt med ${numberOfPeople} personer')}"; - static String m72(email) => "Dette er ${email} sin verifiserings-ID"; + static String m78(email) => "Dette er ${email} sin verifiserings-ID"; - static String m78(email) => "Verifiser ${email}"; + static String m85(email) => "Verifiser ${email}"; static String m2(email) => "Vi har sendt en e-post til ${email}"; @@ -164,7 +164,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Slett fra begge"), "deleteFromDevice": MessageLookupByLibrary.simpleMessage("Slett fra enhet"), - "deleteItemCount": m22, + "deleteItemCount": m24, "deletePhotos": MessageLookupByLibrary.simpleMessage("Slett bilder"), "deleteReason1": MessageLookupByLibrary.simpleMessage( "Det mangler en hovedfunksjon jeg trenger"), @@ -180,12 +180,12 @@ class MessageLookup extends MessageLookupByLibrary { "Seere kan fremdeles ta skjermbilder eller lagre en kopi av bildene dine ved bruk av eksterne verktøy"), "disableDownloadWarningTitle": MessageLookupByLibrary.simpleMessage("Vær oppmerksom på"), - "disableLinkMessage": m24, + "disableLinkMessage": m26, "doThisLater": MessageLookupByLibrary.simpleMessage("Gjør dette senere"), "done": MessageLookupByLibrary.simpleMessage("Ferdig"), - "dropSupportEmail": m25, - "duplicateItemsGroup": m27, + "dropSupportEmail": m27, + "duplicateItemsGroup": m29, "email": MessageLookupByLibrary.simpleMessage("E-post"), "encryption": MessageLookupByLibrary.simpleMessage("Kryptering"), "encryptionKeys": @@ -245,14 +245,14 @@ class MessageLookup extends MessageLookupByLibrary { "invalidKey": MessageLookupByLibrary.simpleMessage("Ugyldig nøkkel"), "invalidRecoveryKey": MessageLookupByLibrary.simpleMessage( "Gjenopprettingsnøkkelen du har skrevet inn er ikke gyldig. Kontroller at den inneholder 24 ord og kontroller stavemåten av hvert ord.\n\nHvis du har angitt en eldre gjenopprettingskode, må du kontrollere at den er 64 tegn lang, og kontrollere hvert av dem."), - "itemCount": m39, + "itemCount": m41, "keepPhotos": MessageLookupByLibrary.simpleMessage("Behold Bilder"), "kindlyHelpUsWithThisInformation": MessageLookupByLibrary.simpleMessage( "Vær vennlig og hjelp oss med denne informasjonen"), "linkDeviceLimit": MessageLookupByLibrary.simpleMessage("Enhetsgrense"), "linkEnabled": MessageLookupByLibrary.simpleMessage("Aktivert"), "linkExpired": MessageLookupByLibrary.simpleMessage("Utløpt"), - "linkExpiresOn": m40, + "linkExpiresOn": m43, "linkExpiry": MessageLookupByLibrary.simpleMessage("Lenkeutløp"), "linkHasExpired": MessageLookupByLibrary.simpleMessage("Lenken har utløpt"), @@ -355,7 +355,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage( "Valgte mapper vil bli kryptert og sikkerhetskopiert"), "selectedPhotos": m4, - "selectedPhotosWithYours": m58, + "selectedPhotosWithYours": m64, "sendEmail": MessageLookupByLibrary.simpleMessage("Send e-post"), "sendInvite": MessageLookupByLibrary.simpleMessage("Send invitasjon"), "sendLink": MessageLookupByLibrary.simpleMessage("Send lenke"), @@ -365,9 +365,9 @@ class MessageLookup extends MessageLookupByLibrary { "setupComplete": MessageLookupByLibrary.simpleMessage("Oppsett fullført"), "shareALink": MessageLookupByLibrary.simpleMessage("Del en lenke"), - "shareMyVerificationID": m59, + "shareMyVerificationID": m65, "shareTextConfirmOthersVerificationID": m5, - "shareWithPeopleSectionTitle": m61, + "shareWithPeopleSectionTitle": m67, "sharedPhotoNotifications": MessageLookupByLibrary.simpleMessage("Nye delte bilder"), "sharedPhotoNotificationsExplanation": MessageLookupByLibrary.simpleMessage( @@ -405,7 +405,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage( "Dette kan brukes til å gjenopprette kontoen din hvis du mister din andre faktor"), "thisDevice": MessageLookupByLibrary.simpleMessage("Denne enheten"), - "thisIsPersonVerificationId": m72, + "thisIsPersonVerificationId": m78, "thisIsYourVerificationId": MessageLookupByLibrary.simpleMessage( "Dette er din bekreftelses-ID"), "thisWillLogYouOutOfTheFollowingDevice": @@ -432,7 +432,7 @@ class MessageLookup extends MessageLookupByLibrary { "verify": MessageLookupByLibrary.simpleMessage("Bekreft"), "verifyEmail": MessageLookupByLibrary.simpleMessage("Bekreft e-postadresse"), - "verifyEmailID": m78, + "verifyEmailID": m85, "verifyPassword": MessageLookupByLibrary.simpleMessage("Bekreft passord"), "verifyingRecoveryKey": MessageLookupByLibrary.simpleMessage( diff --git a/mobile/lib/generated/intl/messages_pl.dart b/mobile/lib/generated/intl/messages_pl.dart index 084714c38a6..8f32268af28 100644 --- a/mobile/lib/generated/intl/messages_pl.dart +++ b/mobile/lib/generated/intl/messages_pl.dart @@ -60,201 +60,220 @@ class MessageLookup extends MessageLookupByLibrary { static String m18(albumName) => "Utworzono link współpracy dla ${albumName}"; - static String m82(count) => + static String m19(count) => "${Intl.plural(count, zero: 'Dodano 0 współuczestników', one: 'Dodano 1 współuczestnika', other: 'Dodano ${count} współuczestników')}"; - static String m19(familyAdminEmail) => + static String m20(email, numOfDays) => + "Zamierzasz dodać ${email} jako zaufany kontakt. Będą mogli odzyskać Twoje konto, jeśli jesteś nieobecny przez ${numOfDays} dni."; + + static String m21(familyAdminEmail) => "Prosimy skontaktować się z ${familyAdminEmail}, by zarzadząć swoją subskrypcją"; - static String m20(provider) => + static String m22(provider) => "Skontaktuj się z nami pod adresem support@ente.io, aby zarządzać subskrypcją ${provider}."; - static String m21(endpoint) => "Połączono z ${endpoint}"; + static String m23(endpoint) => "Połączono z ${endpoint}"; - static String m22(count) => + static String m24(count) => "${Intl.plural(count, one: 'Usuń ${count} element', few: 'Usuń ${count} elementy', many: 'Usuń ${count} elementów', other: 'Usuń ${count} elementu')}"; - static String m23(currentlyDeleting, totalCount) => + static String m25(currentlyDeleting, totalCount) => "Usuwanie ${currentlyDeleting} / ${totalCount}"; - static String m24(albumName) => + static String m26(albumName) => "Spowoduje to usunięcie publicznego linku dostępu do \"${albumName}\"."; - static String m25(supportEmail) => + static String m27(supportEmail) => "Wyślij wiadomość e-mail na ${supportEmail} z zarejestrowanego adresu e-mail"; - static String m26(count, storageSaved) => + static String m28(count, storageSaved) => "Wyczyszczono ${Intl.plural(count, one: '${count} zdduplikowany plik', other: '${count} zdduplikowane pliki')}, oszczędzając (${storageSaved}!)"; - static String m27(count, formattedSize) => + static String m29(count, formattedSize) => "${count} plików, każdy po ${formattedSize}"; - static String m28(newEmail) => "Adres e-mail został zmieniony na ${newEmail}"; + static String m30(newEmail) => "Adres e-mail został zmieniony na ${newEmail}"; - static String m29(email) => + static String m31(email) => "${email} nie posiada konta Ente.\n\nWyślij im zaproszenie do udostępniania zdjęć."; - static String m30(text) => "Znaleziono dodatkowe zdjęcia dla ${text}"; + static String m32(text) => "Znaleziono dodatkowe zdjęcia dla ${text}"; - static String m31(count, formattedNumber) => + static String m33(count, formattedNumber) => "${Intl.plural(count, one: '1 plikowi', other: '${formattedNumber} plikom')} na tym urządzeniu została bezpiecznie utworzona kopia zapasowa"; - static String m32(count, formattedNumber) => + static String m34(count, formattedNumber) => "${Intl.plural(count, one: '1 plikowi', other: '${formattedNumber} plikom')} w tym albumie została bezpiecznie utworzona kopia zapasowa"; - static String m33(storageAmountInGB) => + static String m35(storageAmountInGB) => "${storageAmountInGB} GB za każdym razem, gdy ktoś zarejestruje się w płatnym planie i użyje twojego kodu"; - static String m34(endDate) => "Okres próbny ważny do ${endDate}"; + static String m36(endDate) => "Okres próbny ważny do ${endDate}"; - static String m35(count) => + static String m37(count) => "Nadal możesz mieć dostęp ${Intl.plural(count, one: 'do tego', other: 'do tych')} na Ente tak długo, jak masz aktywną subskrypcję"; - static String m36(sizeInMBorGB) => "Zwolnij ${sizeInMBorGB}"; + static String m38(sizeInMBorGB) => "Zwolnij ${sizeInMBorGB}"; - static String m37(count, formattedSize) => + static String m39(count, formattedSize) => "${Intl.plural(count, one: 'Można to usunąć z urządzenia, aby zwolnić ${formattedSize}', other: 'Można je usunąć z urządzenia, aby zwolnić ${formattedSize}')}"; - static String m38(currentlyProcessing, totalCount) => + static String m40(currentlyProcessing, totalCount) => "Przetwarzanie ${currentlyProcessing} / ${totalCount}"; - static String m39(count) => + static String m41(count) => "${Intl.plural(count, one: '${count} element', few: '${count} elementy', many: '${count} elementów', other: '${count} elementu')}"; - static String m40(expiryTime) => "Link wygaśnie ${expiryTime}"; + static String m42(email) => + "${email} zaprosił Cię do zostania zaufanym kontaktem"; + + static String m43(expiryTime) => "Link wygaśnie ${expiryTime}"; static String m3(count, formattedCount) => "${Intl.plural(count, zero: 'brak wspomnień', one: '${formattedCount} wspomnienie', few: '${formattedCount} wspomnienia', other: '${formattedCount} wspomnień')}"; - static String m41(count) => + static String m44(count) => "${Intl.plural(count, one: 'Przenieś element', few: 'Przenieś elementy', other: 'Przenieś elementów')}"; - static String m42(albumName) => "Pomyślnie przeniesiono do ${albumName}"; + static String m45(albumName) => "Pomyślnie przeniesiono do ${albumName}"; - static String m43(personName) => "Brak sugestii dla ${personName}"; + static String m46(personName) => "Brak sugestii dla ${personName}"; - static String m44(name) => "Nie ${name}?"; + static String m47(name) => "Nie ${name}?"; - static String m45(familyAdminEmail) => + static String m48(familyAdminEmail) => "Skontaktuj się z ${familyAdminEmail}, aby zmienić swój kod."; static String m0(passwordStrengthValue) => "Siła hasła: ${passwordStrengthValue}"; - static String m46(providerName) => + static String m49(providerName) => "Porozmawiaj ze wsparciem ${providerName} jeśli zostałeś obciążony"; - static String m47(count) => + static String m50(count) => "${Intl.plural(count, zero: '0 zdjęć', one: '1 zdjęcie', few: '${count} zdjęcia', other: '${count} zdjęć')}"; - static String m48(endDate) => + static String m51(endDate) => "Bezpłatny okres próbny ważny do ${endDate}.\nNastępnie możesz wybrać płatny plan."; - static String m49(toEmail) => + static String m52(toEmail) => "Prosimy o kontakt mailowy pod adresem ${toEmail}"; - static String m50(toEmail) => "Prosimy wysłać logi do ${toEmail}"; + static String m53(toEmail) => "Prosimy wysłać logi do ${toEmail}"; + + static String m54(folderName) => "Przetwarzanie ${folderName}..."; + + static String m55(storeName) => "Oceń nas na ${storeName}"; - static String m51(folderName) => "Przetwarzanie ${folderName}..."; + static String m56(days, email) => + "Możesz uzyskać dostęp do konta po dniu ${days} dni. Powiadomienie zostanie wysłane na ${email}."; - static String m52(storeName) => "Oceń nas na ${storeName}"; + static String m57(email) => + "Możesz teraz odzyskać konto ${email} poprzez ustawienie nowego hasła."; - static String m53(storageInGB) => + static String m58(email) => "${email} próbuje odzyskać Twoje konto."; + + static String m59(storageInGB) => "3. Oboje otrzymujecie ${storageInGB} GB* za darmo"; - static String m54(userEmail) => + static String m60(userEmail) => "${userEmail} zostanie usunięty z tego udostępnionego albumu\n\nWszelkie dodane przez nich zdjęcia zostaną usunięte z albumu"; - static String m55(endDate) => "Subskrypcja odnowi się ${endDate}"; + static String m61(endDate) => "Subskrypcja odnowi się ${endDate}"; - static String m56(count) => + static String m62(count) => "${Intl.plural(count, one: 'Znaleziono ${count} wynik', few: 'Znaleziono ${count} wyniki', other: 'Znaleziono ${count} wyników')}"; - static String m57(snapshotLenght, searchLenght) => + static String m63(snapshotLenght, searchLenght) => "Niezgodność długości sekcji: ${snapshotLenght} != ${searchLenght}"; static String m4(count) => "Wybrano ${count}"; - static String m58(count, yourCount) => + static String m64(count, yourCount) => "Wybrano ${count} (twoich ${yourCount})"; - static String m59(verificationID) => + static String m65(verificationID) => "Oto mój identyfikator weryfikacyjny: ${verificationID} dla ente.io."; static String m5(verificationID) => "Hej, czy możesz potwierdzić, że to jest Twój identyfikator weryfikacyjny ente.io: ${verificationID}"; - static String m60(referralCode, referralStorageInGB) => + static String m66(referralCode, referralStorageInGB) => "Kod polecający: ${referralCode} \n\nZastosuj go w: Ustawienia → Ogólne → Polecanie, aby otrzymać ${referralStorageInGB} GB za darmo po zarejestrowaniu się w płatnym planie\n\nhttps://ente.io"; - static String m61(numberOfPeople) => + static String m67(numberOfPeople) => "${Intl.plural(numberOfPeople, zero: 'Udostępnione określonym osobom', one: 'Udostępnione 1 osobie', other: 'Udostępnione ${numberOfPeople} osobom')}"; - static String m62(emailIDs) => "Udostępnione z ${emailIDs}"; + static String m68(emailIDs) => "Udostępnione z ${emailIDs}"; - static String m63(fileType) => + static String m69(fileType) => "Ten ${fileType} zostanie usunięty z Twojego urządzenia."; - static String m64(fileType) => + static String m70(fileType) => "Ten ${fileType} jest zarówno w Ente, jak i na twoim urządzeniu."; - static String m65(fileType) => "Ten ${fileType} zostanie usunięty z Ente."; + static String m71(fileType) => "Ten ${fileType} zostanie usunięty z Ente."; static String m1(storageAmountInGB) => "${storageAmountInGB} GB"; - static String m66( + static String m72( usedAmount, usedStorageUnit, totalAmount, totalStorageUnit) => "Użyto ${usedAmount} ${usedStorageUnit} z ${totalAmount} ${totalStorageUnit}"; - static String m67(id) => + static String m73(id) => "Twoje ${id} jest już połączony z innym kontem Ente.\nJeśli chcesz użyć swojego ${id} za pomocą tego konta, skontaktuj się z naszym wsparciem technicznym"; - static String m68(endDate) => + static String m74(endDate) => "Twoja subskrypcja zostanie anulowana dnia ${endDate}"; - static String m69(completed, total) => + static String m75(completed, total) => "Zachowano ${completed}/${total} wspomnień"; - static String m70(ignoreReason) => + static String m76(ignoreReason) => "Naciśnij, aby przesłać, przesyłanie jest obecnie ignorowane z powodu ${ignoreReason}"; - static String m71(storageAmountInGB) => + static String m77(storageAmountInGB) => "Oni również otrzymują ${storageAmountInGB} GB"; - static String m72(email) => "To jest identyfikator weryfikacyjny ${email}"; + static String m78(email) => "To jest identyfikator weryfikacyjny ${email}"; - static String m73(count) => + static String m79(count) => "${Intl.plural(count, zero: 'Wkrótce', one: '1 dzień', few: '${count} dni', other: '${count} dni')}"; - static String m74(galleryType) => + static String m80(email) => + "Zostałeś zaproszony do bycia dziedzicznym kontaktem przez ${email}."; + + static String m81(galleryType) => "Typ galerii ${galleryType} nie jest obsługiwany dla zmiany nazwy"; - static String m75(ignoreReason) => + static String m82(ignoreReason) => "Przesyłanie jest ignorowane z powodu ${ignoreReason}"; - static String m76(count) => + static String m83(count) => "${Intl.plural(count, one: 'Zachowywanie ${count} wspomnienia...', few: 'Zachowywanie ${count} wspomnienia...', many: 'Zachowywanie ${count} wspomnień...', other: 'Zachowywanie ${count} wspomnień...')}"; - static String m77(endDate) => "Ważne do ${endDate}"; + static String m84(endDate) => "Ważne do ${endDate}"; - static String m78(email) => "Zweryfikuj ${email}"; + static String m85(email) => "Zweryfikuj ${email}"; - static String m79(count) => + static String m86(count) => "${Intl.plural(count, zero: 'Dodano 0 widzów', one: 'Dodano 1 widza', other: 'Dodano ${count} widzów')}"; static String m2(email) => "Wysłaliśmy wiadomość na adres ${email}"; - static String m80(count) => + static String m87(count) => "${Intl.plural(count, one: '${count} rok temu', few: '${count} lata temu', many: '${count} lat temu', other: '${count} lata temu')}"; - static String m81(storageSaved) => "Pomyślnie zwolniłeś/aś ${storageSaved}!"; + static String m88(storageSaved) => "Pomyślnie zwolniłeś/aś ${storageSaved}!"; final messages = _notInlinedMessages(_notInlinedMessages); static Map _notInlinedMessages(_) => { "aNewVersionOfEnteIsAvailable": MessageLookupByLibrary.simpleMessage( "Dostępna jest nowa wersja Ente."), "about": MessageLookupByLibrary.simpleMessage("O nas"), + "acceptTrustInvite": + MessageLookupByLibrary.simpleMessage("Zaakceptuj Zaproszenie"), "account": MessageLookupByLibrary.simpleMessage("Konto"), "accountIsAlreadyConfigured": MessageLookupByLibrary.simpleMessage( "Konto jest już skonfigurowane."), @@ -294,6 +313,8 @@ class MessageLookup extends MessageLookupByLibrary { "addToEnte": MessageLookupByLibrary.simpleMessage("Dodaj do Ente"), "addToHiddenAlbum": MessageLookupByLibrary.simpleMessage("Dodaj do ukrytego albumu"), + "addTrustedContact": + MessageLookupByLibrary.simpleMessage("Dodaj Zaufany Kontakt"), "addViewer": MessageLookupByLibrary.simpleMessage("Dodaj widza"), "addViewers": m9, "addYourPhotosNow": @@ -389,7 +410,7 @@ class MessageLookup extends MessageLookupByLibrary { "askCancelReason": MessageLookupByLibrary.simpleMessage( "Twoja subskrypcja została anulowana. Czy chcesz podzielić się powodem?"), "askDeleteReason": MessageLookupByLibrary.simpleMessage( - "Jaka jest przyczyna usunięcia konta?"), + "Jaka jest główna przyczyna usunięcia Twojego konta?"), "askYourLovedOnesToShare": MessageLookupByLibrary.simpleMessage( "Poproś swoich bliskich o udostępnienie"), "atAFalloutShelter": MessageLookupByLibrary.simpleMessage("w schronie"), @@ -407,6 +428,8 @@ class MessageLookup extends MessageLookupByLibrary { "Uwierzytelnij się, aby skonfigurować uwierzytelnianie dwustopniowe"), "authToInitiateAccountDeletion": MessageLookupByLibrary.simpleMessage( "Prosimy uwierzytelnić się, aby zainicjować usuwanie konta"), + "authToManageLegacy": MessageLookupByLibrary.simpleMessage( + "Prosimy uwierzytelnić się, aby zarządzać zaufanymi kontaktami"), "authToViewPasskey": MessageLookupByLibrary.simpleMessage( "Prosimy uwierzytelnić się, aby wyświetlić swój klucz dostępu"), "authToViewYourActiveSessions": MessageLookupByLibrary.simpleMessage( @@ -473,6 +496,10 @@ class MessageLookup extends MessageLookupByLibrary { "canOnlyRemoveFilesOwnedByYou": MessageLookupByLibrary.simpleMessage( "Można usuwać tylko pliki należące do Ciebie"), "cancel": MessageLookupByLibrary.simpleMessage("Anuluj"), + "cancelAccountRecovery": + MessageLookupByLibrary.simpleMessage("Anuluj odzyskiwanie"), + "cancelAccountRecoveryBody": MessageLookupByLibrary.simpleMessage( + "Czy na pewno chcesz anulować odzyskiwanie?"), "cancelOtherSubscription": m15, "cancelSubscription": MessageLookupByLibrary.simpleMessage("Anuluj subskrypcję"), @@ -559,7 +586,7 @@ class MessageLookup extends MessageLookupByLibrary { "collaboratorsCanAddPhotosAndVideosToTheSharedAlbum": MessageLookupByLibrary.simpleMessage( "Współuczestnicy mogą dodawać zdjęcia i wideo do udostępnionego albumu."), - "collaboratorsSuccessfullyAdded": m82, + "collaboratorsSuccessfullyAdded": m19, "collageLayout": MessageLookupByLibrary.simpleMessage("Układ"), "collageSaved": MessageLookupByLibrary.simpleMessage("Kolaż zapisano w galerii"), @@ -576,6 +603,7 @@ class MessageLookup extends MessageLookupByLibrary { "Czy na pewno chcesz wyłączyć uwierzytelnianie dwustopniowe?"), "confirmAccountDeletion": MessageLookupByLibrary.simpleMessage("Potwierdź usunięcie konta"), + "confirmAddingTrustedContact": m20, "confirmDeletePrompt": MessageLookupByLibrary.simpleMessage( "Tak, chcę trwale usunąć to konto i jego dane ze wszystkich aplikacji."), "confirmPassword": @@ -588,10 +616,10 @@ class MessageLookup extends MessageLookupByLibrary { "Potwierdź klucz odzyskiwania"), "connectToDevice": MessageLookupByLibrary.simpleMessage("Połącz z urządzeniem"), - "contactFamilyAdmin": m19, + "contactFamilyAdmin": m21, "contactSupport": MessageLookupByLibrary.simpleMessage( "Skontaktuj się z pomocą techniczną"), - "contactToManageSubscription": m20, + "contactToManageSubscription": m22, "contacts": MessageLookupByLibrary.simpleMessage("Kontakty"), "contents": MessageLookupByLibrary.simpleMessage("Zawartość"), "continueLabel": MessageLookupByLibrary.simpleMessage("Kontynuuj"), @@ -637,10 +665,12 @@ class MessageLookup extends MessageLookupByLibrary { "currentlyRunning": MessageLookupByLibrary.simpleMessage("aktualnie uruchomiony"), "custom": MessageLookupByLibrary.simpleMessage("Niestandardowy"), - "customEndpoint": m21, + "customEndpoint": m23, "darkTheme": MessageLookupByLibrary.simpleMessage("Ciemny"), "dayToday": MessageLookupByLibrary.simpleMessage("Dzisiaj"), "dayYesterday": MessageLookupByLibrary.simpleMessage("Wczoraj"), + "declineTrustInvite": + MessageLookupByLibrary.simpleMessage("Odrzuć Zaproszenie"), "decrypting": MessageLookupByLibrary.simpleMessage("Odszyfrowanie..."), "decryptingVideo": MessageLookupByLibrary.simpleMessage("Odszyfrowywanie wideo..."), @@ -670,11 +700,11 @@ class MessageLookup extends MessageLookupByLibrary { "deleteFromDevice": MessageLookupByLibrary.simpleMessage("Usuń z urządzenia"), "deleteFromEnte": MessageLookupByLibrary.simpleMessage("Usuń z Ente"), - "deleteItemCount": m22, + "deleteItemCount": m24, "deleteLocation": MessageLookupByLibrary.simpleMessage("Usuń lokalizację"), "deletePhotos": MessageLookupByLibrary.simpleMessage("Usuń zdjęcia"), - "deleteProgress": m23, + "deleteProgress": m25, "deleteReason1": MessageLookupByLibrary.simpleMessage( "Brakuje kluczowej funkcji, której potrzebuję"), "deleteReason2": MessageLookupByLibrary.simpleMessage( @@ -714,7 +744,7 @@ class MessageLookup extends MessageLookupByLibrary { "Widzowie mogą nadal robić zrzuty ekranu lub zapisywać kopie zdjęć za pomocą programów trzecich"), "disableDownloadWarningTitle": MessageLookupByLibrary.simpleMessage("Uwaga"), - "disableLinkMessage": m24, + "disableLinkMessage": m26, "disableTwofactor": MessageLookupByLibrary.simpleMessage( "Wyłącz uwierzytelnianie dwustopniowe"), "disablingTwofactorAuthentication": @@ -757,9 +787,9 @@ class MessageLookup extends MessageLookupByLibrary { "downloadFailed": MessageLookupByLibrary.simpleMessage("Pobieranie nie powiodło się"), "downloading": MessageLookupByLibrary.simpleMessage("Pobieranie..."), - "dropSupportEmail": m25, - "duplicateFileCountWithStorageSaved": m26, - "duplicateItemsGroup": m27, + "dropSupportEmail": m27, + "duplicateFileCountWithStorageSaved": m28, + "duplicateItemsGroup": m29, "edit": MessageLookupByLibrary.simpleMessage("Edytuj"), "editLocation": MessageLookupByLibrary.simpleMessage("Edytuj lokalizację"), @@ -772,12 +802,14 @@ class MessageLookup extends MessageLookupByLibrary { "Edycje lokalizacji będą widoczne tylko w Ente"), "eligible": MessageLookupByLibrary.simpleMessage("kwalifikujący się"), "email": MessageLookupByLibrary.simpleMessage("Adres e-mail"), - "emailChangedTo": m28, - "emailNoEnteAccount": m29, + "emailChangedTo": m30, + "emailNoEnteAccount": m31, "emailVerificationToggle": MessageLookupByLibrary.simpleMessage("Weryfikacja e-mail"), "emailYourLogs": MessageLookupByLibrary.simpleMessage("Wyślij mailem logi"), + "emergencyContacts": + MessageLookupByLibrary.simpleMessage("Kontakty Alarmowe"), "empty": MessageLookupByLibrary.simpleMessage("Opróżnij"), "emptyTrash": MessageLookupByLibrary.simpleMessage("Opróżnić kosz?"), "enable": MessageLookupByLibrary.simpleMessage("Włącz"), @@ -852,7 +884,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Eksportuj swoje dane"), "extraPhotosFound": MessageLookupByLibrary.simpleMessage( "Znaleziono dodatkowe zdjęcia"), - "extraPhotosFoundFor": m30, + "extraPhotosFoundFor": m32, "faceNotClusteredYet": MessageLookupByLibrary.simpleMessage( "Twarz jeszcze nie zgrupowana, prosimy wrócić później"), "faceRecognition": @@ -904,8 +936,8 @@ class MessageLookup extends MessageLookupByLibrary { "fileTypes": MessageLookupByLibrary.simpleMessage("Rodzaje plików"), "fileTypesAndNames": MessageLookupByLibrary.simpleMessage("Typy plików i nazwy"), - "filesBackedUpFromDevice": m31, - "filesBackedUpInAlbum": m32, + "filesBackedUpFromDevice": m33, + "filesBackedUpInAlbum": m34, "filesDeleted": MessageLookupByLibrary.simpleMessage("Pliki usunięto"), "filesSavedToGallery": MessageLookupByLibrary.simpleMessage("Pliki zapisane do galerii"), @@ -921,26 +953,26 @@ class MessageLookup extends MessageLookupByLibrary { "foundFaces": MessageLookupByLibrary.simpleMessage("Znaleziono twarze"), "freeStorageClaimed": MessageLookupByLibrary.simpleMessage( "Bezpłatna pamięć, którą odebrano"), - "freeStorageOnReferralSuccess": m33, + "freeStorageOnReferralSuccess": m35, "freeStorageUsable": MessageLookupByLibrary.simpleMessage("Darmowa pamięć użyteczna"), "freeTrial": MessageLookupByLibrary.simpleMessage("Darmowy okres próbny"), - "freeTrialValidTill": m34, - "freeUpAccessPostDelete": m35, - "freeUpAmount": m36, + "freeTrialValidTill": m36, + "freeUpAccessPostDelete": m37, + "freeUpAmount": m38, "freeUpDeviceSpace": MessageLookupByLibrary.simpleMessage( "Zwolnij miejsce na urządzeniu"), "freeUpDeviceSpaceDesc": MessageLookupByLibrary.simpleMessage( "Oszczędzaj miejsce na urządzeniu poprzez wyczyszczenie plików, które zostały już przesłane."), "freeUpSpace": MessageLookupByLibrary.simpleMessage("Zwolnij miejsce"), - "freeUpSpaceSaving": m37, + "freeUpSpaceSaving": m39, "galleryMemoryLimitInfo": MessageLookupByLibrary.simpleMessage( "W galerii wyświetlane jest do 1000 pamięci"), "general": MessageLookupByLibrary.simpleMessage("Ogólne"), "generatingEncryptionKeys": MessageLookupByLibrary.simpleMessage( "Generowanie kluczy szyfrujących..."), - "genericProgress": m38, + "genericProgress": m40, "goToSettings": MessageLookupByLibrary.simpleMessage("Przejdź do ustawień"), "googlePlayId": @@ -1023,7 +1055,7 @@ class MessageLookup extends MessageLookupByLibrary { "itLooksLikeSomethingWentWrongPleaseRetryAfterSome": MessageLookupByLibrary.simpleMessage( "Wygląda na to, że coś poszło nie tak. Spróbuj ponownie po pewnym czasie. Jeśli błąd będzie się powtarzał, skontaktuj się z naszym zespołem pomocy technicznej."), - "itemCount": m39, + "itemCount": m41, "itemsShowTheNumberOfDaysRemainingBeforePermanentDeletion": MessageLookupByLibrary.simpleMessage( "Elementy pokazują liczbę dni pozostałych przed trwałym usunięciem"), @@ -1044,6 +1076,12 @@ class MessageLookup extends MessageLookupByLibrary { "leaveSharedAlbum": MessageLookupByLibrary.simpleMessage("Opuścić udostępniony album?"), "left": MessageLookupByLibrary.simpleMessage("W lewo"), + "legacy": MessageLookupByLibrary.simpleMessage("Dziedzictwo"), + "legacyInvite": m42, + "legacyPageDesc": MessageLookupByLibrary.simpleMessage( + "Dziedzictwo pozwala zaufanym kontaktom na dostęp do Twojego konta w razie Twojej nieobecności."), + "legacyPageDesc2": MessageLookupByLibrary.simpleMessage( + "Zaufane kontakty mogą rozpocząć odzyskiwanie konta, a jeśli nie zostaną zablokowane w ciągu 30 dni, zresetować Twoje hasło i uzyskać dostęp do Twojego konta."), "light": MessageLookupByLibrary.simpleMessage("Jasny"), "lightTheme": MessageLookupByLibrary.simpleMessage("Jasny"), "linkCopiedToClipboard": @@ -1052,7 +1090,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Limit urządzeń"), "linkEnabled": MessageLookupByLibrary.simpleMessage("Aktywny"), "linkExpired": MessageLookupByLibrary.simpleMessage("Wygasł"), - "linkExpiresOn": m40, + "linkExpiresOn": m43, "linkExpiry": MessageLookupByLibrary.simpleMessage("Wygaśnięcie linku"), "linkHasExpired": MessageLookupByLibrary.simpleMessage("Link wygasł"), "linkNeverExpires": MessageLookupByLibrary.simpleMessage("Nigdy"), @@ -1178,12 +1216,12 @@ class MessageLookup extends MessageLookupByLibrary { "mostRecent": MessageLookupByLibrary.simpleMessage("Od najnowszych"), "mostRelevant": MessageLookupByLibrary.simpleMessage("Najbardziej trafne"), - "moveItem": m41, + "moveItem": m44, "moveToAlbum": MessageLookupByLibrary.simpleMessage("Przenieś do albumu"), "moveToHiddenAlbum": MessageLookupByLibrary.simpleMessage("Przenieś do ukrytego albumu"), - "movedSuccessfullyTo": m42, + "movedSuccessfullyTo": m45, "movedToTrash": MessageLookupByLibrary.simpleMessage("Przeniesiono do kosza"), "movingFilesToAlbum": MessageLookupByLibrary.simpleMessage( @@ -1234,10 +1272,10 @@ class MessageLookup extends MessageLookupByLibrary { "noResults": MessageLookupByLibrary.simpleMessage("Brak wyników"), "noResultsFound": MessageLookupByLibrary.simpleMessage("Nie znaleziono wyników"), - "noSuggestionsForPerson": m43, + "noSuggestionsForPerson": m46, "noSystemLockFound": MessageLookupByLibrary.simpleMessage( "Nie znaleziono blokady systemowej"), - "notPersonLabel": m44, + "notPersonLabel": m47, "nothingSharedWithYouYet": MessageLookupByLibrary.simpleMessage( "Nic Ci jeszcze nie udostępniono"), "nothingToSeeHere": MessageLookupByLibrary.simpleMessage( @@ -1247,7 +1285,7 @@ class MessageLookup extends MessageLookupByLibrary { "onDevice": MessageLookupByLibrary.simpleMessage("Na urządzeniu"), "onEnte": MessageLookupByLibrary.simpleMessage("W ente"), - "onlyFamilyAdminCanChangeCode": m45, + "onlyFamilyAdminCanChangeCode": m48, "onlyThem": MessageLookupByLibrary.simpleMessage("Tylko te"), "oops": MessageLookupByLibrary.simpleMessage("Ups"), "oopsCouldNotSaveEdits": MessageLookupByLibrary.simpleMessage( @@ -1295,7 +1333,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Płatność się nie powiodła"), "paymentFailedMessage": MessageLookupByLibrary.simpleMessage( "Niestety Twoja płatność nie powiodła się. Skontaktuj się z pomocą techniczną, a my Ci pomożemy!"), - "paymentFailedTalkToProvider": m46, + "paymentFailedTalkToProvider": m49, "pendingItems": MessageLookupByLibrary.simpleMessage("Oczekujące elementy"), "pendingSync": @@ -1319,14 +1357,14 @@ class MessageLookup extends MessageLookupByLibrary { "photosAddedByYouWillBeRemovedFromTheAlbum": MessageLookupByLibrary.simpleMessage( "Zdjęcia dodane przez Ciebie zostaną usunięte z albumu"), - "photosCount": m47, + "photosCount": m50, "pickCenterPoint": MessageLookupByLibrary.simpleMessage("Wybierz punkt środkowy"), "pinAlbum": MessageLookupByLibrary.simpleMessage("Przypnij album"), "pinLock": MessageLookupByLibrary.simpleMessage("Blokada PIN"), "playOnTv": MessageLookupByLibrary.simpleMessage( "Odtwórz album na telewizorze"), - "playStoreFreeTrialValidTill": m48, + "playStoreFreeTrialValidTill": m51, "playstoreSubscription": MessageLookupByLibrary.simpleMessage("Subskrypcja PlayStore"), "pleaseCheckYourInternetConnectionAndTryAgain": @@ -1338,14 +1376,14 @@ class MessageLookup extends MessageLookupByLibrary { "pleaseContactSupportIfTheProblemPersists": MessageLookupByLibrary.simpleMessage( "Skontaktuj się z pomocą techniczną, jeśli problem będzie się powtarzał"), - "pleaseEmailUsAt": m49, + "pleaseEmailUsAt": m52, "pleaseGrantPermissions": MessageLookupByLibrary.simpleMessage( "Prosimy przyznać uprawnienia"), "pleaseLoginAgain": MessageLookupByLibrary.simpleMessage("Zaloguj się ponownie"), "pleaseSelectQuickLinksToRemove": MessageLookupByLibrary.simpleMessage( "Prosimy wybrać szybkie linki do usunięcia"), - "pleaseSendTheLogsTo": m50, + "pleaseSendTheLogsTo": m53, "pleaseTryAgain": MessageLookupByLibrary.simpleMessage("Spróbuj ponownie"), "pleaseVerifyTheCodeYouHaveEntered": @@ -1371,7 +1409,8 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Prywatne kopie zapasowe"), "privateSharing": MessageLookupByLibrary.simpleMessage("Udostępnianie prywatne"), - "processingImport": m51, + "proceed": MessageLookupByLibrary.simpleMessage("Kontynuuj"), + "processingImport": m54, "publicLinkCreated": MessageLookupByLibrary.simpleMessage("Utworzono publiczny link"), "publicLinkEnabled": @@ -1381,11 +1420,16 @@ class MessageLookup extends MessageLookupByLibrary { "raiseTicket": MessageLookupByLibrary.simpleMessage("Zgłoś"), "rateTheApp": MessageLookupByLibrary.simpleMessage("Oceń aplikację"), "rateUs": MessageLookupByLibrary.simpleMessage("Oceń nas"), - "rateUsOnStore": m52, + "rateUsOnStore": m55, "recover": MessageLookupByLibrary.simpleMessage("Odzyskaj"), "recoverAccount": MessageLookupByLibrary.simpleMessage("Odzyskaj konto"), "recoverButton": MessageLookupByLibrary.simpleMessage("Odzyskaj"), + "recoveryAccount": + MessageLookupByLibrary.simpleMessage("Odzyskaj konto"), + "recoveryInitiated": + MessageLookupByLibrary.simpleMessage("Odzyskiwanie rozpoczęte"), + "recoveryInitiatedDesc": m56, "recoveryKey": MessageLookupByLibrary.simpleMessage("Klucz odzyskiwania"), "recoveryKeyCopiedToClipboard": MessageLookupByLibrary.simpleMessage( @@ -1400,8 +1444,12 @@ class MessageLookup extends MessageLookupByLibrary { "Klucz odzyskiwania zweryfikowany"), "recoveryKeyVerifyReason": MessageLookupByLibrary.simpleMessage( "Twój klucz odzyskiwania jest jedynym sposobem na odzyskanie zdjęć, jeśli zapomnisz hasła. Klucz odzyskiwania można znaleźć w Ustawieniach > Konto.\n\nWprowadź tutaj swój klucz odzyskiwania, aby sprawdzić, czy został zapisany poprawnie."), + "recoveryReady": m57, "recoverySuccessful": MessageLookupByLibrary.simpleMessage("Odzyskano pomyślnie!"), + "recoveryWarning": MessageLookupByLibrary.simpleMessage( + "Zaufany kontakt próbuje uzyskać dostęp do Twojego konta"), + "recoveryWarningBody": m58, "recreatePasswordBody": MessageLookupByLibrary.simpleMessage( "Obecne urządzenie nie jest wystarczająco wydajne, aby zweryfikować hasło, ale możemy je wygenerować w sposób działający na wszystkich urządzeniach.\n\nZaloguj się przy użyciu klucza odzyskiwania i wygeneruj nowe hasło (jeśli chcesz, możesz ponownie użyć tego samego)."), "recreatePasswordTitle": @@ -1417,10 +1465,12 @@ class MessageLookup extends MessageLookupByLibrary { "1. Przekaż ten kod swoim znajomym"), "referralStep2": MessageLookupByLibrary.simpleMessage("2. Wykupują płatny plan"), - "referralStep3": m53, + "referralStep3": m59, "referrals": MessageLookupByLibrary.simpleMessage("Polecenia"), "referralsAreCurrentlyPaused": MessageLookupByLibrary.simpleMessage( "Wysyłanie poleceń jest obecnie wstrzymane"), + "rejectRecovery": + MessageLookupByLibrary.simpleMessage("Odrzuć odzyskiwanie"), "remindToEmptyDeviceTrash": MessageLookupByLibrary.simpleMessage( "Również opróżnij \"Ostatnio usunięte\" z \"Ustawienia\" -> \"Pamięć\", aby odebrać wolną przestrzeń"), "remindToEmptyEnteTrash": MessageLookupByLibrary.simpleMessage( @@ -1440,10 +1490,12 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Usunąć z albumu?"), "removeFromFavorite": MessageLookupByLibrary.simpleMessage("Usuń z ulubionych"), + "removeInvite": + MessageLookupByLibrary.simpleMessage("Usuń zaproszenie"), "removeLink": MessageLookupByLibrary.simpleMessage("Usuń link"), "removeParticipant": MessageLookupByLibrary.simpleMessage("Usuń użytkownika"), - "removeParticipantBody": m54, + "removeParticipantBody": m60, "removePersonLabel": MessageLookupByLibrary.simpleMessage("Usuń etykietę osoby"), "removePublicLink": @@ -1454,6 +1506,8 @@ class MessageLookup extends MessageLookupByLibrary { "Niektóre z usuwanych elementów zostały dodane przez inne osoby i utracisz do nich dostęp"), "removeWithQuestionMark": MessageLookupByLibrary.simpleMessage("Usunąć?"), + "removeYourselfAsTrustedContact": MessageLookupByLibrary.simpleMessage( + "Usuń siebie z listy zaufanych kontaktów"), "removingFromFavorites": MessageLookupByLibrary.simpleMessage("Usuwanie z ulubionych..."), "rename": MessageLookupByLibrary.simpleMessage("Zmień nazwę"), @@ -1462,7 +1516,7 @@ class MessageLookup extends MessageLookupByLibrary { "renameFile": MessageLookupByLibrary.simpleMessage("Zmień nazwę pliku"), "renewSubscription": MessageLookupByLibrary.simpleMessage("Odnów subskrypcję"), - "renewsOn": m55, + "renewsOn": m61, "reportABug": MessageLookupByLibrary.simpleMessage("Zgłoś błąd"), "reportBug": MessageLookupByLibrary.simpleMessage("Zgłoś błąd"), "resendEmail": @@ -1540,8 +1594,8 @@ class MessageLookup extends MessageLookupByLibrary { "Zaproś ludzi, a zobaczysz tutaj wszystkie udostępnione przez nich zdjęcia"), "searchPersonsEmptySection": MessageLookupByLibrary.simpleMessage( "Osoby będą wyświetlane tutaj po zakończeniu przetwarzania"), - "searchResultCount": m56, - "searchSectionsLengthMismatch": m57, + "searchResultCount": m62, + "searchSectionsLengthMismatch": m63, "security": MessageLookupByLibrary.simpleMessage("Bezpieczeństwo"), "seePublicAlbumLinksInApp": MessageLookupByLibrary.simpleMessage( "Zobacz publiczne linki do albumów w aplikacji"), @@ -1575,7 +1629,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage( "Wybrane elementy zostaną usunięte ze wszystkich albumów i przeniesione do kosza."), "selectedPhotos": m4, - "selectedPhotosWithYours": m58, + "selectedPhotosWithYours": m64, "send": MessageLookupByLibrary.simpleMessage("Wyślij"), "sendEmail": MessageLookupByLibrary.simpleMessage("Wyślij e-mail"), "sendInvite": @@ -1604,16 +1658,16 @@ class MessageLookup extends MessageLookupByLibrary { "shareAnAlbumNow": MessageLookupByLibrary.simpleMessage("Udostępnij teraz album"), "shareLink": MessageLookupByLibrary.simpleMessage("Udostępnij link"), - "shareMyVerificationID": m59, + "shareMyVerificationID": m65, "shareOnlyWithThePeopleYouWant": MessageLookupByLibrary.simpleMessage( "Udostępnij tylko ludziom, którym chcesz"), "shareTextConfirmOthersVerificationID": m5, "shareTextRecommendUsingEnte": MessageLookupByLibrary.simpleMessage( "Pobierz Ente, abyśmy mogli łatwo udostępniać zdjęcia i wideo w oryginalnej jakości\n\nhttps://ente.io"), - "shareTextReferralCode": m60, + "shareTextReferralCode": m66, "shareWithNonenteUsers": MessageLookupByLibrary.simpleMessage( "Udostępnij użytkownikom bez konta Ente"), - "shareWithPeopleSectionTitle": m61, + "shareWithPeopleSectionTitle": m67, "shareYourFirstAlbum": MessageLookupByLibrary.simpleMessage( "Udostępnij swój pierwszy album"), "sharedAlbumSectionDescription": MessageLookupByLibrary.simpleMessage( @@ -1626,7 +1680,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Nowe udostępnione zdjęcia"), "sharedPhotoNotificationsExplanation": MessageLookupByLibrary.simpleMessage( "Otrzymuj powiadomienia, gdy ktoś doda zdjęcie do udostępnionego albumu, którego jesteś częścią"), - "sharedWith": m62, + "sharedWith": m68, "sharedWithMe": MessageLookupByLibrary.simpleMessage("Udostępnione ze mną"), "sharedWithYou": @@ -1643,11 +1697,11 @@ class MessageLookup extends MessageLookupByLibrary { "Wyloguj z pozostałych urządzeń"), "signUpTerms": MessageLookupByLibrary.simpleMessage( "Akceptuję warunki korzystania z usługi i politykę prywatności"), - "singleFileDeleteFromDevice": m63, + "singleFileDeleteFromDevice": m69, "singleFileDeleteHighlight": MessageLookupByLibrary.simpleMessage( "To zostanie usunięte ze wszystkich albumów."), - "singleFileInBothLocalAndRemote": m64, - "singleFileInRemoteOnly": m65, + "singleFileInBothLocalAndRemote": m70, + "singleFileInRemoteOnly": m71, "skip": MessageLookupByLibrary.simpleMessage("Pomiń"), "social": MessageLookupByLibrary.simpleMessage("Społeczność"), "someItemsAreInBothEnteAndYourDevice": @@ -1683,6 +1737,8 @@ class MessageLookup extends MessageLookupByLibrary { "sortOldestFirst": MessageLookupByLibrary.simpleMessage("Od najstarszych"), "sparkleSuccess": MessageLookupByLibrary.simpleMessage("✨ Sukces"), + "startAccountRecoveryTitle": + MessageLookupByLibrary.simpleMessage("Rozpocznij odzyskiwanie"), "startBackup": MessageLookupByLibrary.simpleMessage( "Uruchom tworzenie kopii zapasowej"), "status": MessageLookupByLibrary.simpleMessage("Stan"), @@ -1696,10 +1752,10 @@ class MessageLookup extends MessageLookupByLibrary { "storageInGB": m1, "storageLimitExceeded": MessageLookupByLibrary.simpleMessage("Przekroczono limit pamięci"), - "storageUsageInfo": m66, + "storageUsageInfo": m72, "strongStrength": MessageLookupByLibrary.simpleMessage("Silne"), - "subAlreadyLinkedErrMessage": m67, - "subWillBeCancelledOn": m68, + "subAlreadyLinkedErrMessage": m73, + "subWillBeCancelledOn": m74, "subscribe": MessageLookupByLibrary.simpleMessage("Subskrybuj"), "subscribeToEnableSharing": MessageLookupByLibrary.simpleMessage( "Potrzebujesz aktywnej płatnej subskrypcji, aby włączyć udostępnianie."), @@ -1716,7 +1772,7 @@ class MessageLookup extends MessageLookupByLibrary { "suggestFeatures": MessageLookupByLibrary.simpleMessage("Zaproponuj funkcje"), "support": MessageLookupByLibrary.simpleMessage("Wsparcie techniczne"), - "syncProgress": m69, + "syncProgress": m75, "syncStopped": MessageLookupByLibrary.simpleMessage("Synchronizacja zatrzymana"), "syncing": MessageLookupByLibrary.simpleMessage("Synchronizowanie..."), @@ -1729,7 +1785,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Naciśnij, aby odblokować"), "tapToUpload": MessageLookupByLibrary.simpleMessage("Naciśnij, aby przesłać"), - "tapToUploadIsIgnoredDue": m70, + "tapToUploadIsIgnoredDue": m76, "tempErrorContactSupportIfPersists": MessageLookupByLibrary.simpleMessage( "Wygląda na to, że coś poszło nie tak. Spróbuj ponownie po pewnym czasie. Jeśli błąd będzie się powtarzał, skontaktuj się z naszym zespołem pomocy technicznej."), "terminate": MessageLookupByLibrary.simpleMessage("Zakończ"), @@ -1753,7 +1809,7 @@ class MessageLookup extends MessageLookupByLibrary { "theseItemsWillBeDeletedFromYourDevice": MessageLookupByLibrary.simpleMessage( "Te elementy zostaną usunięte z Twojego urządzenia."), - "theyAlsoGetXGb": m71, + "theyAlsoGetXGb": m77, "theyWillBeDeletedFromAllAlbums": MessageLookupByLibrary.simpleMessage( "Zostaną one usunięte ze wszystkich albumów."), "thisActionCannotBeUndone": MessageLookupByLibrary.simpleMessage( @@ -1769,7 +1825,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Ten e-mail jest już używany"), "thisImageHasNoExifData": MessageLookupByLibrary.simpleMessage( "Ten obraz nie posiada danych exif"), - "thisIsPersonVerificationId": m72, + "thisIsPersonVerificationId": m78, "thisIsYourVerificationId": MessageLookupByLibrary.simpleMessage( "To jest Twój Identyfikator Weryfikacji"), "thisWillLogYouOutOfTheFollowingDevice": @@ -1793,8 +1849,11 @@ class MessageLookup extends MessageLookupByLibrary { "total": MessageLookupByLibrary.simpleMessage("ogółem"), "totalSize": MessageLookupByLibrary.simpleMessage("Całkowity rozmiar"), "trash": MessageLookupByLibrary.simpleMessage("Kosz"), - "trashDaysLeft": m73, + "trashDaysLeft": m79, "trim": MessageLookupByLibrary.simpleMessage("Przytnij"), + "trustedContacts": + MessageLookupByLibrary.simpleMessage("Zaufane kontakty"), + "trustedInviteBody": m80, "tryAgain": MessageLookupByLibrary.simpleMessage("Spróbuj ponownie"), "turnOnBackupForAutoUpload": MessageLookupByLibrary.simpleMessage( "Włącz kopię zapasową, aby automatycznie przesyłać pliki dodane do folderu urządzenia do Ente."), @@ -1814,7 +1873,7 @@ class MessageLookup extends MessageLookupByLibrary { "Pomyślnie zresetowano uwierzytelnianie dwustopniowe"), "twofactorSetup": MessageLookupByLibrary.simpleMessage( "Uwierzytelnianie dwustopniowe"), - "typeOfGallerGallerytypeIsNotSupportedForRename": m74, + "typeOfGallerGallerytypeIsNotSupportedForRename": m81, "unarchive": MessageLookupByLibrary.simpleMessage("Przywróć z archiwum"), "unarchiveAlbum": @@ -1839,10 +1898,10 @@ class MessageLookup extends MessageLookupByLibrary { "updatingFolderSelection": MessageLookupByLibrary.simpleMessage( "Aktualizowanie wyboru folderu..."), "upgrade": MessageLookupByLibrary.simpleMessage("Ulepsz"), - "uploadIsIgnoredDueToIgnorereason": m75, + "uploadIsIgnoredDueToIgnorereason": m82, "uploadingFilesToAlbum": MessageLookupByLibrary.simpleMessage( "Przesyłanie plików do albumu..."), - "uploadingMultipleMemories": m76, + "uploadingMultipleMemories": m83, "uploadingSingleMemory": MessageLookupByLibrary.simpleMessage( "Zachowywanie 1 wspomnienia..."), "upto50OffUntil4thDec": MessageLookupByLibrary.simpleMessage( @@ -1858,7 +1917,7 @@ class MessageLookup extends MessageLookupByLibrary { "useSelectedPhoto": MessageLookupByLibrary.simpleMessage("Użyj zaznaczone zdjęcie"), "usedSpace": MessageLookupByLibrary.simpleMessage("Zajęta przestrzeń"), - "validTill": m77, + "validTill": m84, "verificationFailedPleaseTryAgain": MessageLookupByLibrary.simpleMessage( "Weryfikacja nie powiodła się, spróbuj ponownie"), @@ -1867,7 +1926,7 @@ class MessageLookup extends MessageLookupByLibrary { "verify": MessageLookupByLibrary.simpleMessage("Zweryfikuj"), "verifyEmail": MessageLookupByLibrary.simpleMessage("Zweryfikuj adres e-mail"), - "verifyEmailID": m78, + "verifyEmailID": m85, "verifyIDLabel": MessageLookupByLibrary.simpleMessage("Zweryfikuj"), "verifyPasskey": MessageLookupByLibrary.simpleMessage("Zweryfikuj klucz dostępu"), @@ -1893,13 +1952,14 @@ class MessageLookup extends MessageLookupByLibrary { "viewRecoveryKey": MessageLookupByLibrary.simpleMessage("Zobacz klucz odzyskiwania"), "viewer": MessageLookupByLibrary.simpleMessage("Widz"), - "viewersSuccessfullyAdded": m79, + "viewersSuccessfullyAdded": m86, "visitWebToManage": MessageLookupByLibrary.simpleMessage( "Odwiedź stronę web.ente.io, aby zarządzać subskrypcją"), "waitingForVerification": MessageLookupByLibrary.simpleMessage( "Oczekiwanie na weryfikację..."), "waitingForWifi": MessageLookupByLibrary.simpleMessage("Czekanie na WiFi..."), + "warning": MessageLookupByLibrary.simpleMessage("Uwaga"), "weAreOpenSource": MessageLookupByLibrary.simpleMessage("Posiadamy otwarte źródło!"), "weDontSupportEditingPhotosAndAlbumsThatYouDont": @@ -1909,9 +1969,11 @@ class MessageLookup extends MessageLookupByLibrary { "weakStrength": MessageLookupByLibrary.simpleMessage("Słabe"), "welcomeBack": MessageLookupByLibrary.simpleMessage("Witaj ponownie!"), "whatsNew": MessageLookupByLibrary.simpleMessage("Co nowego"), + "whyAddTrustContact": MessageLookupByLibrary.simpleMessage( + "Zaufany kontakt może pomóc w odzyskaniu Twoich danych."), "yearShort": MessageLookupByLibrary.simpleMessage("r"), "yearly": MessageLookupByLibrary.simpleMessage("Rocznie"), - "yearsAgo": m80, + "yearsAgo": m87, "yes": MessageLookupByLibrary.simpleMessage("Tak"), "yesCancel": MessageLookupByLibrary.simpleMessage("Tak, anuluj"), "yesConvertToViewer": @@ -1943,7 +2005,7 @@ class MessageLookup extends MessageLookupByLibrary { "Nie możesz udostępnić samemu sobie"), "youDontHaveAnyArchivedItems": MessageLookupByLibrary.simpleMessage( "Nie masz żadnych zarchiwizowanych elementów."), - "youHaveSuccessfullyFreedUp": m81, + "youHaveSuccessfullyFreedUp": m88, "yourAccountHasBeenDeleted": MessageLookupByLibrary.simpleMessage( "Twoje konto zostało usunięte"), "yourMap": MessageLookupByLibrary.simpleMessage("Twoja mapa"), From eba6429e9986341c3361a7c58415c7384a569b54 Mon Sep 17 00:00:00 2001 From: Neeraj Gupta <254676+ua741@users.noreply.github.com> Date: Wed, 18 Dec 2024 16:53:30 +0530 Subject: [PATCH 31/90] [mob] use unique prefix for each preview generation --- mobile/lib/models/base/id.dart | 4 ++++ mobile/lib/services/preview_video_store.dart | 11 ++++++++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/mobile/lib/models/base/id.dart b/mobile/lib/models/base/id.dart index b8e5647a0a6..2b095e02742 100644 --- a/mobile/lib/models/base/id.dart +++ b/mobile/lib/models/base/id.dart @@ -8,6 +8,10 @@ String newClusterID() { return "cluster_${customAlphabet(enteWhiteListedAlphabet, clusterIDLength)}"; } +String newID(String prefix) { + return "${prefix}_${customAlphabet(enteWhiteListedAlphabet, clusterIDLength)}"; +} + String newIsolateTaskID(String task) { return "${task}_${customAlphabet(enteWhiteListedAlphabet, clusterIDLength)}"; } diff --git a/mobile/lib/services/preview_video_store.dart b/mobile/lib/services/preview_video_store.dart index 76437e28395..3380b681add 100644 --- a/mobile/lib/services/preview_video_store.dart +++ b/mobile/lib/services/preview_video_store.dart @@ -12,7 +12,9 @@ import "package:flutter_cache_manager/flutter_cache_manager.dart"; import "package:logging/logging.dart"; import "package:path_provider/path_provider.dart"; import "package:photos/core/cache/video_cache_manager.dart"; +import "package:photos/core/configuration.dart"; import "package:photos/core/network/network.dart"; +import "package:photos/models/base/id.dart"; import "package:photos/models/file/file.dart"; import "package:photos/models/file/file_type.dart"; import "package:photos/services/filedata/filedata_service.dart"; @@ -70,8 +72,9 @@ class PreviewVideoStore { ); return; } - final tmpDirectory = await getApplicationDocumentsDirectory(); - final prefix = "${tmpDirectory.path}/${enteFile.generatedID}"; + final String tempDir = Configuration.instance.getTempDirectory(); + final String prefix = + "${tempDir}_${enteFile.uploadedFileID}_${newID("pv")}"; Directory(prefix).createSync(); _logger.info('Compressing video ${enteFile.displayName}'); final mediaInfo = await VideoCompress.compressVideo( @@ -89,7 +92,9 @@ class PreviewVideoStore { final keyinfo = File('$prefix/mykey.keyinfo'); keyinfo.writeAsStringSync("data:text/plain;base64,${key.base64}\n" "${keyfile.path}\n"); - _logger.info('Generating HLS Playlist ${enteFile.displayName}'); + _logger.info( + 'Generating HLS Playlist ${enteFile.displayName} at $prefix/output.m3u8}', + ); final session = await FFmpegKit.execute( '-i "${mediaInfo!.path}" ' '-c copy -f hls -hls_time 10 -hls_flags single_file ' From ff01477021c6923adcbba02850a7f4088e6db749 Mon Sep 17 00:00:00 2001 From: Neeraj Gupta <254676+ua741@users.noreply.github.com> Date: Thu, 19 Dec 2024 12:23:50 +0530 Subject: [PATCH 32/90] Show size in toast --- mobile/lib/db/ml/filedata.dart | 13 +++++++++---- .../lib/services/filedata/filedata_service.dart | 2 +- mobile/lib/services/filedata/model/file_data.dart | 11 +++++++++++ mobile/lib/services/preview_video_store.dart | 2 +- .../lib/ui/viewer/file/preview_video_widget.dart | 15 +++++++++++++-- 5 files changed, 35 insertions(+), 8 deletions(-) diff --git a/mobile/lib/db/ml/filedata.dart b/mobile/lib/db/ml/filedata.dart index d973d7d9a20..3ecb440a0ec 100644 --- a/mobile/lib/db/ml/filedata.dart +++ b/mobile/lib/db/ml/filedata.dart @@ -26,14 +26,19 @@ extension FileDataTable on MLDataDB { ); } - Future> getFileIDsVidPreview() async { + Future> getFileIDsVidPreview() async { final db = await MLDataDB.instance.asyncDB; final res = await db.execute( - "SELECT $fileIDColumn, $objectIdColumn FROM $fileDataTable WHERE type='vid_preview'", + "SELECT $fileIDColumn, $objectIdColumn, size FROM $fileDataTable WHERE type='vid_preview'", ); return res.asMap().map( - (i, e) => - MapEntry(e[fileIDColumn] as int, e[objectIdColumn] as String), + (i, e) => MapEntry( + e[fileIDColumn] as int, + PreviewInfo( + objectId: e[objectIdColumn] as String, + objectSize: e['size'] as int, + ), + ), ); } diff --git a/mobile/lib/services/filedata/filedata_service.dart b/mobile/lib/services/filedata/filedata_service.dart index 2fa313ae05f..96d9668c4fb 100644 --- a/mobile/lib/services/filedata/filedata_service.dart +++ b/mobile/lib/services/filedata/filedata_service.dart @@ -23,7 +23,7 @@ class FileDataService { final _logger = Logger("FileDataService"); final _dio = NetworkClient.instance.enteDio; late final SharedPreferences _prefs; - Map? previewIds = {}; + Map? previewIds = {}; void init(SharedPreferences prefs) { _prefs = prefs; diff --git a/mobile/lib/services/filedata/model/file_data.dart b/mobile/lib/services/filedata/model/file_data.dart index 4e479bdc7dd..717eeba2ddc 100644 --- a/mobile/lib/services/filedata/model/file_data.dart +++ b/mobile/lib/services/filedata/model/file_data.dart @@ -189,3 +189,14 @@ class FDStatus { ); } } + +class PreviewInfo { + final String objectId; + final int objectSize; + String? nonce; + PreviewInfo({ + required this.objectId, + required this.objectSize, + this.nonce, + }); +} diff --git a/mobile/lib/services/preview_video_store.dart b/mobile/lib/services/preview_video_store.dart index b6ff328b620..d0ef026164b 100644 --- a/mobile/lib/services/preview_video_store.dart +++ b/mobile/lib/services/preview_video_store.dart @@ -207,7 +207,7 @@ class PreviewVideoStore { _logger.info("Getting playlist for $file"); try { final objectKey = - FileDataService.instance.previewIds![file.uploadedFileID!]!; + FileDataService.instance.previewIds![file.uploadedFileID!]!.objectId; final playlistCache = await cacheManager.getFileFromCache(_getCacheKey(objectKey)); String finalPlaylist; diff --git a/mobile/lib/ui/viewer/file/preview_video_widget.dart b/mobile/lib/ui/viewer/file/preview_video_widget.dart index d7b9063c547..f1dfe8e7f2d 100644 --- a/mobile/lib/ui/viewer/file/preview_video_widget.dart +++ b/mobile/lib/ui/viewer/file/preview_video_widget.dart @@ -16,6 +16,7 @@ import "package:photos/services/preview_video_store.dart"; import "package:photos/ui/actions/file/file_actions.dart"; import 'package:photos/ui/viewer/file/thumbnail_widget.dart'; import "package:photos/ui/viewer/file/video_control.dart"; +import "package:photos/utils/data_util.dart"; // import 'package:photos/ui/viewer/file/video_controls.dart'; import "package:photos/utils/dialog_util.dart"; import 'package:photos/utils/file_util.dart'; @@ -88,8 +89,18 @@ class _PreviewVideoWidgetState extends State { }); if (!mounted) return; if (file != null) { - // FileDataService.instance.previewIds![widget.file.uploadedFileID!] = file; - Fluttertoast.showToast(msg: "Playing Preview!").ignore(); + final d = + FileDataService.instance.previewIds![widget.file.uploadedFileID!]; + if (d != null && widget.file.fileSize != null) { + // show toast with human readable size + final size = formatBytes(widget.file.fileSize!); + showToast( + context, + "Preview OG Size ($size), previewSize: ${formatBytes(d.objectSize)}", + ); + } else { + showShortToast(context, "Playing preview"); + } previewFile = file; _setVideoPlayerController(); } From 50f4cb8e13ffce5ac62c910da70be6224ae07561 Mon Sep 17 00:00:00 2001 From: Neeraj Gupta <254676+ua741@users.noreply.github.com> Date: Thu, 19 Dec 2024 12:24:12 +0530 Subject: [PATCH 33/90] Bump version --- mobile/pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mobile/pubspec.yaml b/mobile/pubspec.yaml index 8851f744d44..9583434e5b9 100644 --- a/mobile/pubspec.yaml +++ b/mobile/pubspec.yaml @@ -12,7 +12,7 @@ description: ente photos application # Read more about iOS versioning at # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html -version: 0.9.72+972 +version: 0.9.73+973 publish_to: none environment: From 7a99377dc976d311c775fa4ed95a235dccbe5760 Mon Sep 17 00:00:00 2001 From: Neeraj Gupta <254676+ua741@users.noreply.github.com> Date: Fri, 20 Dec 2024 11:35:51 +0530 Subject: [PATCH 34/90] [mob] Fix null pointer in playlist cache --- mobile/lib/services/preview_video_store.dart | 49 +++++++++++--------- 1 file changed, 28 insertions(+), 21 deletions(-) diff --git a/mobile/lib/services/preview_video_store.dart b/mobile/lib/services/preview_video_store.dart index d0ef026164b..910473d3d15 100644 --- a/mobile/lib/services/preview_video_store.dart +++ b/mobile/lib/services/preview_video_store.dart @@ -207,12 +207,13 @@ class PreviewVideoStore { _logger.info("Getting playlist for $file"); try { final objectKey = - FileDataService.instance.previewIds![file.uploadedFileID!]!.objectId; - final playlistCache = - await cacheManager.getFileFromCache(_getCacheKey(objectKey)); + FileDataService.instance.previewIds![file.uploadedFileID!]?.objectId; + final FileInfo? playlistCache = (objectKey == null) + ? null + : await cacheManager.getFileFromCache(_getCacheKey(objectKey)); String finalPlaylist; if (playlistCache != null) { - finalPlaylist = playlistCache.file.readAsStringSync(); + finalPlaylist = playlistCache!.file.readAsStringSync(); } else { final response = await _dio.get( "/files/data/fetch/", @@ -230,18 +231,23 @@ class PreviewVideoStore { header: header, ); finalPlaylist = playlistData["playlist"]; - - unawaited( - cacheManager.putFile( - _getCacheKey(objectKey), - Uint8List.fromList((playlistData["playlist"] as String).codeUnits), - ), - ); + if (objectKey != null) { + unawaited( + cacheManager.putFile( + _getCacheKey(objectKey), + Uint8List.fromList( + (playlistData["playlist"] as String).codeUnits, + ), + ), + ); + } } - final videoFile = (await videoCacheManager - .getFileFromCache(_getVideoPreviewKey(objectKey))) - ?.file; + final videoFile = objectKey == null + ? null + : (await videoCacheManager + .getFileFromCache(_getVideoPreviewKey(objectKey))) + ?.file; if (videoFile == null) { final response2 = await _dio.get( "/files/data/preview", @@ -251,12 +257,14 @@ class PreviewVideoStore { }, ); final previewURL = response2.data["url"]; - unawaited( - downloadAndCacheVideo( - previewURL, - _getVideoPreviewKey(objectKey), - ), - ); + if (objectKey != null) { + unawaited( + downloadAndCacheVideo( + previewURL, + _getVideoPreviewKey(objectKey), + ), + ); + } finalPlaylist = finalPlaylist.replaceAll('\noutput.ts', '\n$previewURL'); } else { @@ -268,7 +276,6 @@ class PreviewVideoStore { final playlistFile = File("${tempDir.path}/${file.uploadedFileID}.m3u8"); await playlistFile.writeAsString(finalPlaylist); _logger.info("Writing playlist to ${playlistFile.path}"); - return playlistFile; } catch (_) { rethrow; From 1f122c79f7eeafef6a8eaa7aa3b70d4080b7354a Mon Sep 17 00:00:00 2001 From: Neeraj Gupta <254676+ua741@users.noreply.github.com> Date: Fri, 20 Dec 2024 15:44:16 +0530 Subject: [PATCH 35/90] [mob] Switch to medium quality --- mobile/lib/services/preview_video_store.dart | 24 +++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/mobile/lib/services/preview_video_store.dart b/mobile/lib/services/preview_video_store.dart index 910473d3d15..2d80290e95c 100644 --- a/mobile/lib/services/preview_video_store.dart +++ b/mobile/lib/services/preview_video_store.dart @@ -45,6 +45,8 @@ class PreviewVideoStore { }); } + List get qualities => VideoQuality.values; + Future chunkAndUploadVideo(BuildContext ctx, EnteFile enteFile) async { if (!enteFile.isUploaded) return; final file = await getFile(enteFile, isOrigin: true); @@ -80,7 +82,7 @@ class PreviewVideoStore { _logger.info('Compressing video ${enteFile.displayName}'); final mediaInfo = await VideoCompress.compressVideo( file.path, - quality: VideoQuality.Res1280x720Quality, + quality: VideoQuality.MediumQuality, ); if (mediaInfo?.path == null) return; _logger.info('CompressionDone ${enteFile.displayName}'); @@ -103,6 +105,26 @@ class PreviewVideoStore { '$prefix/output.m3u8', ); + // final session = await FFmpegKit.execute('-i "${file.path}" ' + // // Video encoding settings + // '-c:v libx264 ' // Use H.264 codec + // '-preset medium ' // Encoding speed preset + // '-crf 23 ' // Quality setting (lower = better quality, 23 is a good balance) + // '-profile:v main ' // H.264 profile for better compatibility + // '-level:v 4.0 ' // H.264 level for device compatibility + // '-vf scale=-2:720 ' // Scale to 720p while maintaining aspect ratio + // // Audio encoding settings + // '-c:a aac ' // Use AAC audio codec + // '-b:a 128k ' // Audio bitrate + // // HLS specific settings + // '-f hls ' + // '-hls_time 10 ' + // '-hls_flags single_file ' + // '-hls_list_size 0 ' + // '-hls_key_info_file ${keyinfo.path} ' + // // Output + // '$prefix/output.m3u8'); + final returnCode = await session.getReturnCode(); if (ReturnCode.isSuccess(returnCode)) { From 1de19e7a3e2056ec0d8c102884e5b109dd406460 Mon Sep 17 00:00:00 2001 From: Neeraj Gupta <254676+ua741@users.noreply.github.com> Date: Fri, 20 Dec 2024 15:44:57 +0530 Subject: [PATCH 36/90] [mob] Bump version --- mobile/pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mobile/pubspec.yaml b/mobile/pubspec.yaml index 9583434e5b9..f570c570d6a 100644 --- a/mobile/pubspec.yaml +++ b/mobile/pubspec.yaml @@ -12,7 +12,7 @@ description: ente photos application # Read more about iOS versioning at # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html -version: 0.9.73+973 +version: 0.9.74+974 publish_to: none environment: From acc367d522b7a6b7ee020de684b903fbeed9dff1 Mon Sep 17 00:00:00 2001 From: Neeraj Gupta <254676+ua741@users.noreply.github.com> Date: Fri, 20 Dec 2024 16:24:32 +0530 Subject: [PATCH 37/90] Lint fix --- mobile/lib/services/preview_video_store.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mobile/lib/services/preview_video_store.dart b/mobile/lib/services/preview_video_store.dart index 2d80290e95c..c416c041278 100644 --- a/mobile/lib/services/preview_video_store.dart +++ b/mobile/lib/services/preview_video_store.dart @@ -235,7 +235,7 @@ class PreviewVideoStore { : await cacheManager.getFileFromCache(_getCacheKey(objectKey)); String finalPlaylist; if (playlistCache != null) { - finalPlaylist = playlistCache!.file.readAsStringSync(); + finalPlaylist = playlistCache.file.readAsStringSync(); } else { final response = await _dio.get( "/files/data/fetch/", From 05ee252be8ece14d9c7cf002792ba424d33ab7e3 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Wed, 8 Jan 2025 02:25:33 +0530 Subject: [PATCH 38/90] chore: bump versions --- mobile/ios/Podfile.lock | 112 ++++++++++++++++++++-------------------- 1 file changed, 56 insertions(+), 56 deletions(-) diff --git a/mobile/ios/Podfile.lock b/mobile/ios/Podfile.lock index 5eb373e6de8..9930483baaf 100644 --- a/mobile/ios/Podfile.lock +++ b/mobile/ios/Podfile.lock @@ -444,83 +444,83 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/wakelock_plus/ios" SPEC CHECKSUMS: - background_fetch: 39f11371c0dce04b001c4bfd5e782bcccb0a85e2 - battery_info: 09f5c9ee65394f2291c8c6227bedff345b8a730c - connectivity_plus: ddd7f30999e1faaef5967c23d5b6d503d10434db - dart_ui_isolate: d5bcda83ca4b04f129d70eb90110b7a567aece14 - device_info_plus: c6fb39579d0f423935b0c9ce7ee2f44b71b9fce6 + background_fetch: 94b36ee293e82972852dba8ede1fbcd3bd3d9d57 + battery_info: a06b00c06a39bc94c92beebf600f1810cb6c8c87 + connectivity_plus: 3f6c9057f4cd64198dc826edfb0542892f825343 + dart_ui_isolate: 46f6714abe6891313267153ef6f9748d8ecfcab1 + device_info_plus: 335f3ce08d2e174b9fdc3db3db0f4e3b1f66bd89 ffmpeg-kit-ios-full-gpl: 80adc341962e55ef709e36baa8ed9a70cf4ea62b - ffmpeg_kit_flutter_full_gpl: 8d15c14c0c3aba616fac04fe44b3d27d02e3c330 - file_saver: 503e386464dbe118f630e17b4c2e1190fa0cf808 + ffmpeg_kit_flutter_full_gpl: ce18b888487c05c46ed252cd2e7956812f2e3bd1 + file_saver: 6cdbcddd690cb02b0c1a0c225b37cd805c2bf8b6 Firebase: 98e6bf5278170668a7983e12971a66b2cd57fc8c - firebase_core: 2bedc3136ec7c7b8561c6123ed0239387b53f2af - firebase_messaging: 15d114e1a41fc31e4fbabcd48d765a19eec94a38 + firebase_core: 085320ddfaacb80d1a96eac3a87857afcc150db1 + firebase_messaging: d398edc15fe825f832836e74f6ac61e8cd2f3ad3 FirebaseCore: a282032ae9295c795714ded2ec9c522fc237f8da FirebaseCoreInternal: ac26d09a70c730e497936430af4e60fb0c68ec4e FirebaseInstallations: 58cf94dabf1e2bb2fa87725a9be5c2249171cda0 FirebaseMessaging: c9ec7b90c399c7a6100297e9d16f8a27fc7f7152 Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7 - flutter_email_sender: 02d7443217d8c41483223627972bfdc09f74276b - flutter_image_compress: 5a5e9aee05b6553048b8df1c3bc456d0afaac433 - flutter_inappwebview_ios: 6f63631e2c62a7c350263b13fa5427aedefe81d4 - flutter_local_notifications: 4cde75091f6327eb8517fa068a0a5950212d2086 - flutter_native_splash: edf599c81f74d093a4daf8e17bd7a018854bc778 - flutter_secure_storage: 23fc622d89d073675f2eaa109381aefbcf5a49be - flutter_sodium: c84426b4de738514b5b66cfdeb8a06634e72fe0b - fluttertoast: e9a18c7be5413da53898f660530c56f35edfba9c + flutter_email_sender: cd533cdc7ea5eda6fabb2c7f78521c71207778a4 + flutter_image_compress: 4b058288a81f76e5e80340af37c709abafff34c4 + flutter_inappwebview_ios: b89ba3482b96fb25e00c967aae065701b66e9b99 + flutter_local_notifications: ad39620c743ea4c15127860f4b5641649a988100 + flutter_native_splash: 35ddbc7228eafcb3969dcc5f1fbbe27c1145a4f0 + flutter_secure_storage: 2c2ff13db9e0a5647389bff88b0ecac56e3f3418 + flutter_sodium: 152647449ba89a157fd48d7e293dcd6d29c6ab0e + fluttertoast: 76fea30fcf04176325f6864c87306927bd7d2038 GoogleDataTransport: aae35b7ea0c09004c3797d53c8c41f66f219d6a7 GoogleUtilities: 26a3abef001b6533cf678d3eb38fd3f614b7872d - home_widget: 0434835a4c9a75704264feff6be17ea40e0f0d57 - image_editor_common: d6f6644ae4a6de80481e89fe6d0a8c49e30b4b43 - image_picker_ios: c560581cceedb403a6ff17f2f816d7fea1421fc1 - in_app_purchase_storekit: 8c3b0b3eb1b0f04efbff401c3de6266d4258d433 - integration_test: 252f60fa39af5e17c3aa9899d35d908a0721b573 + home_widget: f169fc41fd807b4d46ab6615dc44d62adbf9f64f + image_editor_common: 3de87e7c4804f4ae24c8f8a998362b98c105cac1 + image_picker_ios: 7fe1ff8e34c1790d6fff70a32484959f563a928a + in_app_purchase_storekit: e126ef1b89e4a9fdf07e28f005f82632b4609437 + integration_test: 4a889634ef21a45d28d50d622cf412dc6d9f586e libwebp: 1786c9f4ff8a279e4dac1e8f385004d5fc253009 - local_auth_darwin: 66e40372f1c29f383a314c738c7446e2f7fdadc3 - local_auth_ios: 5046a18c018dd973247a0564496c8898dbb5adf9 + local_auth_darwin: 553ce4f9b16d3fdfeafce9cf042e7c9f77c1c391 + local_auth_ios: f7a1841beef3151d140a967c2e46f30637cdf451 Mantle: c5aa8794a29a022dfbbfc9799af95f477a69b62d - maps_launcher: 2e5b6a2d664ec6c27f82ffa81b74228d770ab203 - media_extension: 6d30dc1431ebaa63f43c397c37917b1a0a597a4c - media_kit_libs_ios_video: a5fe24bc7875ccd6378a0978c13185e1344651c1 - media_kit_native_event_loop: e6b2ab20cf0746eb1c33be961fcf79667304fa2a - media_kit_video: 5da63f157170e5bf303bf85453b7ef6971218a2e - motion_sensors: 03f55b7c637a7e365a0b5f9697a449f9059d5d91 - motionphoto: d4a432b8c8f22fb3ad966258597c0103c9c5ff16 - move_to_background: 39a5b79b26d577b0372cbe8a8c55e7aa9fcd3a2d + maps_launcher: edf829809ba9e894d70e569bab11c16352dedb45 + media_extension: a1fec16ee9c8241a6aef9613578ebf097d6c5e64 + media_kit_libs_ios_video: 5a18affdb97d1f5d466dc79988b13eff6c5e2854 + media_kit_native_event_loop: 5fba1a849a6c87a34985f1e178a0de5bd444a0cf + media_kit_video: 1746e198cb697d1ffb734b1d05ec429d1fcd1474 + motion_sensors: 741e702c17467b9569a92165dda8d4d88c6167f1 + motionphoto: 584b43031ead3060225cdff08fa49818879801d2 + move_to_background: 155f7bfbd34d43ad847cb630d2d2d87c17199710 nanopb: fad817b59e0457d11a5dfbde799381cd727c1275 - native_video_player: d12af78a1a4a8cf09775a5177d5b392def6fd23c - onnxruntime: e7c2ae44385191eaad5ae64c935a72debaddc997 + native_video_player: b65c58951ede2f93d103a25366bdebca95081265 + onnxruntime: f9b296392c96c42882be020a59dbeac6310d81b2 onnxruntime-c: a909204639a1f035f575127ac406f781ac797c9c onnxruntime-objc: b6fab0f1787aa6f7190c2013f03037df4718bd8b - open_mail_app: 794172f6a22cd16319d3ddaf45e945b2f74952b0 + open_mail_app: 06d5a4162866388a92b1df3deb96e56be20cf45c OrderedSet: e539b66b644ff081c73a262d24ad552a69be3a94 - package_info_plus: 115f4ad11e0698c8c1c5d8a689390df880f47e85 - path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46 - permission_handler_apple: 9878588469a2b0d0fc1e048d9f43605f92e6cec2 - photo_manager: ff695c7a1dd5bc379974953a2b5c0a293f7c4c8a - privacy_screen: 1a131c052ceb3c3659934b003b0d397c2381a24e + package_info_plus: 566e1b7a2f3900e4b0020914ad3fc051dcc95596 + path_provider_foundation: 080d55be775b7414fd5a5ef3ac137b97b097e564 + permission_handler_apple: 4ed2196e43d0651e8ff7ca3483a069d469701f2d + photo_manager: d2fbcc0f2d82458700ee6256a15018210a81d413 + privacy_screen: 3159a541f5d3a31bea916cfd4e58f9dc722b3fd4 PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47 - receive_sharing_intent: df9c334dc9feadcbd3266e5cb49c8443405e1c9f - screen_brightness_ios: 715ca807df953bf676d339f11464e438143ee625 + receive_sharing_intent: f6a12b7e8f7ed745f61c982de8a65de88db44a44 + screen_brightness_ios: 5ed898fa50fa82a26171c086ca5e28228f932576 SDWebImage: 8a6b7b160b4d710e2a22b6900e25301075c34cb3 SDWebImageWebPCoder: e38c0a70396191361d60c092933e22c20d5b1380 Sentry: f8374b5415bc38dfb5645941b3ae31230fbeae57 - sentry_flutter: 0eb93e5279eb41e2392212afe1ccd2fecb4f8cbe - share_plus: 8875f4f2500512ea181eef553c3e27dba5135aad - shared_preferences_foundation: fcdcbc04712aee1108ac7fda236f363274528f78 - sqflite_darwin: a553b1fd6fe66f53bbb0fe5b4f5bab93f08d7a13 + sentry_flutter: 0a211008f52553ba5dd81ceb71f48d78f0f1f6ab + share_plus: 011d6fb4f9d2576b83179a3a5c5e323202cdabcf + shared_preferences_foundation: 9e1978ff2562383bd5676f64ec4e9aa8fa06a6f7 + sqflite_darwin: 44bb54cc302bff1fbe5752293aba1820b157cf1c sqlite3: 0bb0e6389d824e40296f531b858a2a0b71c0d2fb - sqlite3_flutter_libs: c00457ebd31e59fa6bb830380ddba24d44fbcd3b - system_info_plus: 5393c8da281d899950d751713575fbf91c7709aa + sqlite3_flutter_libs: 9379996d65aa23dcda7585a5b58766cebe0aa042 + system_info_plus: 555ce7047fbbf29154726db942ae785c29211740 Toast: 1f5ea13423a1e6674c4abdac5be53587ae481c4e - ua_client_hints: 46bb5817a868f9e397c0ba7e3f2f5c5d90c35156 - uni_links: d97da20c7701486ba192624d99bffaaffcfc298a - url_launcher_ios: 5334b05cef931de560670eeae103fd3e431ac3fe - video_compress: fce97e4fb1dfd88175aa07d2ffc8a2f297f87fbe - video_player_avfoundation: 7c6c11d8470e1675df7397027218274b6d2360b3 - video_thumbnail: c4e2a3c539e247d4de13cd545344fd2d26ffafd1 - volume_controller: 531ddf792994285c9b17f9d8a7e4dcdd29b3eae9 - wakelock_plus: 8b09852c8876491e4b6d179e17dfe2a0b5f60d47 + ua_client_hints: 0b48eae1134283f5b131ee0871fa878377f07a01 + uni_links: ed8c961e47ed9ce42b6d91e1de8049e38a4b3152 + url_launcher_ios: 694010445543906933d732453a59da0a173ae33d + video_compress: f2133a07762889d67f0711ac831faa26f956980e + video_player_avfoundation: 2cef49524dd1f16c5300b9cd6efd9611ce03639b + video_thumbnail: b637e0ad5f588ca9945f6e2c927f73a69a661140 + volume_controller: ca1cde542ee70fad77d388f82e9616488110942b + wakelock_plus: 8c239121a007daa1d6759c6acdc507860273dd2f PODFILE CHECKSUM: 20e086e6008977d43a3d40260f3f9bffcac748dd From ca08f39a4e611992d894aca611a7915e8a8d4532 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Wed, 8 Jan 2025 02:25:47 +0530 Subject: [PATCH 39/90] fix: add custom bitrate, framerate for preview compress --- mobile/lib/services/preview_video_store.dart | 4 +++- mobile/pubspec.yaml | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/mobile/lib/services/preview_video_store.dart b/mobile/lib/services/preview_video_store.dart index c416c041278..69fe6ca3988 100644 --- a/mobile/lib/services/preview_video_store.dart +++ b/mobile/lib/services/preview_video_store.dart @@ -82,7 +82,9 @@ class PreviewVideoStore { _logger.info('Compressing video ${enteFile.displayName}'); final mediaInfo = await VideoCompress.compressVideo( file.path, - quality: VideoQuality.MediumQuality, + quality: VideoQuality.Res1280x720Quality, + bitRate: 2000000, + frameRate: 30, ); if (mediaInfo?.path == null) return; _logger.info('CompressionDone ${enteFile.displayName}'); diff --git a/mobile/pubspec.yaml b/mobile/pubspec.yaml index e50cb57f046..fb68fddce33 100644 --- a/mobile/pubspec.yaml +++ b/mobile/pubspec.yaml @@ -186,7 +186,7 @@ dependencies: uuid: ^4.5.0 video_compress: git: - url: https://github.com/RmanAkbarzadeh/VideoCompress.git + url: https://github.com/prateekmedia/VideoCompress-forked.git video_editor: git: url: https://github.com/prateekmedia/video_editor.git From 04f860c97a11365988a92d988aca4fbc4d1ebea5 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Fri, 10 Jan 2025 01:52:03 +0530 Subject: [PATCH 40/90] feat: upgrade package to support bitrate in video compress --- mobile/ios/Podfile.lock | 105 +++++------ mobile/pubspec.lock | 396 ++++++++++++++++++++-------------------- mobile/pubspec.yaml | 1 + 3 files changed, 252 insertions(+), 250 deletions(-) diff --git a/mobile/ios/Podfile.lock b/mobile/ios/Podfile.lock index 9930483baaf..a40410ca64f 100644 --- a/mobile/ios/Podfile.lock +++ b/mobile/ios/Podfile.lock @@ -19,31 +19,31 @@ PODS: - Flutter - file_saver (0.0.1): - Flutter - - Firebase/CoreOnly (11.2.0): - - FirebaseCore (= 11.2.0) - - Firebase/Messaging (11.2.0): + - Firebase/CoreOnly (11.6.0): + - FirebaseCore (~> 11.6.0) + - Firebase/Messaging (11.6.0): - Firebase/CoreOnly - - FirebaseMessaging (~> 11.2.0) - - firebase_core (3.6.0): - - Firebase/CoreOnly (= 11.2.0) + - FirebaseMessaging (~> 11.6.0) + - firebase_core (3.10.0): + - Firebase/CoreOnly (= 11.6.0) - Flutter - - firebase_messaging (15.1.3): - - Firebase/Messaging (= 11.2.0) + - firebase_messaging (15.2.0): + - Firebase/Messaging (= 11.6.0) - firebase_core - Flutter - - FirebaseCore (11.2.0): - - FirebaseCoreInternal (~> 11.0) + - FirebaseCore (11.6.0): + - FirebaseCoreInternal (~> 11.6.0) - GoogleUtilities/Environment (~> 8.0) - GoogleUtilities/Logger (~> 8.0) - - FirebaseCoreInternal (11.3.0): + - FirebaseCoreInternal (11.6.0): - "GoogleUtilities/NSData+zlib (~> 8.0)" - - FirebaseInstallations (11.3.0): - - FirebaseCore (~> 11.0) + - FirebaseInstallations (11.6.0): + - FirebaseCore (~> 11.6.0) - GoogleUtilities/Environment (~> 8.0) - GoogleUtilities/UserDefaults (~> 8.0) - PromisesObjC (~> 2.4) - - FirebaseMessaging (11.2.0): - - FirebaseCore (~> 11.0) + - FirebaseMessaging (11.6.0): + - FirebaseCore (~> 11.6.0) - FirebaseInstallations (~> 11.0) - GoogleDataTransport (~> 10.0) - GoogleUtilities/AppDelegateSwizzler (~> 8.0) @@ -68,7 +68,7 @@ PODS: - OrderedSet (~> 6.0.3) - flutter_local_notifications (0.0.1): - Flutter - - flutter_native_splash (0.0.1): + - flutter_native_splash (2.4.3): - Flutter - flutter_secure_storage (6.0.0): - Flutter @@ -182,21 +182,21 @@ PODS: - privacy_screen (0.0.1): - Flutter - PromisesObjC (2.4.0) - - receive_sharing_intent (1.8.0): + - receive_sharing_intent (1.8.1): - Flutter - screen_brightness_ios (0.1.0): - Flutter - - SDWebImage (5.19.7): - - SDWebImage/Core (= 5.19.7) - - SDWebImage/Core (5.19.7) + - SDWebImage (5.20.0): + - SDWebImage/Core (= 5.20.0) + - SDWebImage/Core (5.20.0) - SDWebImageWebPCoder (0.14.6): - libwebp (~> 1.0) - SDWebImage/Core (~> 5.17) - - Sentry/HybridSDK (8.36.0) - - sentry_flutter (8.9.0): + - Sentry/HybridSDK (8.42.0) + - sentry_flutter (8.12.0): - Flutter - FlutterMacOS - - Sentry/HybridSDK (= 8.36.0) + - Sentry/HybridSDK (= 8.42.0) - share_plus (0.0.1): - Flutter - shared_preferences_foundation (0.0.1): @@ -205,20 +205,21 @@ PODS: - sqflite_darwin (0.0.4): - Flutter - FlutterMacOS - - "sqlite3 (3.46.1+1)": - - "sqlite3/common (= 3.46.1+1)" - - "sqlite3/common (3.46.1+1)" - - "sqlite3/dbstatvtab (3.46.1+1)": + - sqlite3 (3.47.2): + - sqlite3/common (= 3.47.2) + - sqlite3/common (3.47.2) + - sqlite3/dbstatvtab (3.47.2): - sqlite3/common - - "sqlite3/fts5 (3.46.1+1)": + - sqlite3/fts5 (3.47.2): - sqlite3/common - - "sqlite3/perf-threadsafe (3.46.1+1)": + - sqlite3/perf-threadsafe (3.47.2): - sqlite3/common - - "sqlite3/rtree (3.46.1+1)": + - sqlite3/rtree (3.47.2): - sqlite3/common - sqlite3_flutter_libs (0.0.1): - Flutter - - "sqlite3 (~> 3.46.0+1)" + - FlutterMacOS + - sqlite3 (~> 3.47.2) - sqlite3/dbstatvtab - sqlite3/fts5 - sqlite3/perf-threadsafe @@ -226,7 +227,7 @@ PODS: - system_info_plus (0.0.1): - Flutter - Toast (4.1.1) - - ua_client_hints (1.4.0): + - ua_client_hints (1.4.1): - Flutter - uni_links (0.0.1): - Flutter @@ -293,7 +294,7 @@ DEPENDENCIES: - share_plus (from `.symlinks/plugins/share_plus/ios`) - shared_preferences_foundation (from `.symlinks/plugins/shared_preferences_foundation/darwin`) - sqflite_darwin (from `.symlinks/plugins/sqflite_darwin/darwin`) - - sqlite3_flutter_libs (from `.symlinks/plugins/sqlite3_flutter_libs/ios`) + - sqlite3_flutter_libs (from `.symlinks/plugins/sqlite3_flutter_libs/darwin`) - system_info_plus (from `.symlinks/plugins/system_info_plus/ios`) - ua_client_hints (from `.symlinks/plugins/ua_client_hints/ios`) - uni_links (from `.symlinks/plugins/uni_links/ios`) @@ -423,7 +424,7 @@ EXTERNAL SOURCES: sqflite_darwin: :path: ".symlinks/plugins/sqflite_darwin/darwin" sqlite3_flutter_libs: - :path: ".symlinks/plugins/sqlite3_flutter_libs/ios" + :path: ".symlinks/plugins/sqlite3_flutter_libs/darwin" system_info_plus: :path: ".symlinks/plugins/system_info_plus/ios" ua_client_hints: @@ -446,25 +447,25 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: background_fetch: 94b36ee293e82972852dba8ede1fbcd3bd3d9d57 battery_info: a06b00c06a39bc94c92beebf600f1810cb6c8c87 - connectivity_plus: 3f6c9057f4cd64198dc826edfb0542892f825343 + connectivity_plus: 2256d3e20624a7749ed21653aafe291a46446fee dart_ui_isolate: 46f6714abe6891313267153ef6f9748d8ecfcab1 device_info_plus: 335f3ce08d2e174b9fdc3db3db0f4e3b1f66bd89 ffmpeg-kit-ios-full-gpl: 80adc341962e55ef709e36baa8ed9a70cf4ea62b ffmpeg_kit_flutter_full_gpl: ce18b888487c05c46ed252cd2e7956812f2e3bd1 file_saver: 6cdbcddd690cb02b0c1a0c225b37cd805c2bf8b6 - Firebase: 98e6bf5278170668a7983e12971a66b2cd57fc8c - firebase_core: 085320ddfaacb80d1a96eac3a87857afcc150db1 - firebase_messaging: d398edc15fe825f832836e74f6ac61e8cd2f3ad3 - FirebaseCore: a282032ae9295c795714ded2ec9c522fc237f8da - FirebaseCoreInternal: ac26d09a70c730e497936430af4e60fb0c68ec4e - FirebaseInstallations: 58cf94dabf1e2bb2fa87725a9be5c2249171cda0 - FirebaseMessaging: c9ec7b90c399c7a6100297e9d16f8a27fc7f7152 + Firebase: 374a441a91ead896215703a674d58cdb3e9d772b + firebase_core: 2337982fb78ee4d8d91e608b0a3d4f44346a93c8 + firebase_messaging: f3bddfa28c2cad70b3341bf461e987a24efd28d6 + FirebaseCore: 48b0dd707581cf9c1a1220da68223fb0a562afaa + FirebaseCoreInternal: d98ab91e2d80a56d7b246856a8885443b302c0c2 + FirebaseInstallations: efc0946fc756e4d22d8113f7c761948120322e8c + FirebaseMessaging: e1aca1fcc23e8b9eddb0e33f375ff90944623021 Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7 flutter_email_sender: cd533cdc7ea5eda6fabb2c7f78521c71207778a4 flutter_image_compress: 4b058288a81f76e5e80340af37c709abafff34c4 flutter_inappwebview_ios: b89ba3482b96fb25e00c967aae065701b66e9b99 flutter_local_notifications: ad39620c743ea4c15127860f4b5641649a988100 - flutter_native_splash: 35ddbc7228eafcb3969dcc5f1fbbe27c1145a4f0 + flutter_native_splash: 6cad9122ea0fad137d23137dd14b937f3e90b145 flutter_secure_storage: 2c2ff13db9e0a5647389bff88b0ecac56e3f3418 flutter_sodium: 152647449ba89a157fd48d7e293dcd6d29c6ab0e fluttertoast: 76fea30fcf04176325f6864c87306927bd7d2038 @@ -500,20 +501,20 @@ SPEC CHECKSUMS: photo_manager: d2fbcc0f2d82458700ee6256a15018210a81d413 privacy_screen: 3159a541f5d3a31bea916cfd4e58f9dc722b3fd4 PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47 - receive_sharing_intent: f6a12b7e8f7ed745f61c982de8a65de88db44a44 + receive_sharing_intent: 222384f00ffe7e952bbfabaa9e3967cb87e5fe00 screen_brightness_ios: 5ed898fa50fa82a26171c086ca5e28228f932576 - SDWebImage: 8a6b7b160b4d710e2a22b6900e25301075c34cb3 + SDWebImage: 73c6079366fea25fa4bb9640d5fb58f0893facd8 SDWebImageWebPCoder: e38c0a70396191361d60c092933e22c20d5b1380 - Sentry: f8374b5415bc38dfb5645941b3ae31230fbeae57 - sentry_flutter: 0a211008f52553ba5dd81ceb71f48d78f0f1f6ab - share_plus: 011d6fb4f9d2576b83179a3a5c5e323202cdabcf + Sentry: 38ed8bf38eab5812787274bf591e528074c19e02 + sentry_flutter: a72ca0eb6e78335db7c4ddcddd1b9f6c8ed5b764 + share_plus: 50da8cb520a8f0f65671c6c6a99b3617ed10a58a shared_preferences_foundation: 9e1978ff2562383bd5676f64ec4e9aa8fa06a6f7 - sqflite_darwin: 44bb54cc302bff1fbe5752293aba1820b157cf1c - sqlite3: 0bb0e6389d824e40296f531b858a2a0b71c0d2fb - sqlite3_flutter_libs: 9379996d65aa23dcda7585a5b58766cebe0aa042 + sqflite_darwin: 20b2a3a3b70e43edae938624ce550a3cbf66a3d0 + sqlite3: 7559e33dae4c78538df563795af3a86fc887ee71 + sqlite3_flutter_libs: 5235ce0546528db87927a3ef1baff8b7d5107f0e system_info_plus: 555ce7047fbbf29154726db942ae785c29211740 Toast: 1f5ea13423a1e6674c4abdac5be53587ae481c4e - ua_client_hints: 0b48eae1134283f5b131ee0871fa878377f07a01 + ua_client_hints: 92fe0d139619b73ec9fcb46cc7e079a26178f586 uni_links: ed8c961e47ed9ce42b6d91e1de8049e38a4b3152 url_launcher_ios: 694010445543906933d732453a59da0a173ae33d video_compress: f2133a07762889d67f0711ac831faa26f956980e diff --git a/mobile/pubspec.lock b/mobile/pubspec.lock index 2f04ee67ede..207a04a8210 100644 --- a/mobile/pubspec.lock +++ b/mobile/pubspec.lock @@ -13,10 +13,10 @@ packages: dependency: transitive description: name: _flutterfire_internals - sha256: "5534e701a2c505fed1f0799e652dd6ae23bd4d2c4cf797220e5ced5764a7c1c2" + sha256: "27899c95f9e7ec06c8310e6e0eac967707714b9f1450c4a58fa00ca011a4a8ae" url: "https://pub.dev" source: hosted - version: "1.3.44" + version: "1.3.49" _macros: dependency: transitive description: dart @@ -42,10 +42,10 @@ packages: dependency: "direct main" description: name: android_intent_plus - sha256: "38921ec22ebb3b9a7eb678792cf6fab0b6f458b61b9d327688573449c9b47db3" + sha256: "53136214d506d3128c9f4e5bfce3d026abe7e8038958629811a8d3223b1757c1" url: "https://pub.dev" source: hosted - version: "5.2.0" + version: "5.2.1" animate_do: dependency: "direct main" description: @@ -90,10 +90,10 @@ packages: dependency: transitive description: name: args - sha256: "7cf60b9f0cc88203c5a190b4cd62a99feea42759a7fa695010eb5de1c0b2252a" + sha256: bf9f5caeea8d8fe6721a9c358dd8a5c1947b27f1cfaa18b39c301273594919e6 url: "https://pub.dev" source: hosted - version: "2.5.0" + version: "2.6.0" asn1lib: dependency: transitive description: @@ -202,10 +202,10 @@ packages: dependency: transitive description: name: built_value - sha256: c7913a9737ee4007efedaffc968c049fd0f3d0e49109e778edc10de9426005cb + sha256: "28a712df2576b63c6c005c465989a348604960c0958d28be5303ba9baa841ac2" url: "https://pub.dev" source: hosted - version: "8.9.2" + version: "8.9.3" cached_network_image: dependency: "direct main" description: @@ -268,10 +268,10 @@ packages: dependency: transitive description: name: cli_util - sha256: c05b7406fdabc7a49a3929d4af76bcaccbbffcbcdcf185b082e1ae07da323d19 + sha256: ff6785f7e9e3c38ac98b2fb035701789de90154024a75b6cb926445e83197d1c url: "https://pub.dev" source: hosted - version: "0.4.1" + version: "0.4.2" clock: dependency: transitive description: @@ -284,10 +284,10 @@ packages: dependency: transitive description: name: code_builder - sha256: f692079e25e7869c14132d39f223f8eec9830eb76131925143b2129c4bb01b37 + sha256: "0ec10bf4a89e4c613960bf1e8b42c64127021740fb21640c29c909826a5eea3e" url: "https://pub.dev" source: hosted - version: "4.10.0" + version: "4.10.1" collection: dependency: "direct main" description: @@ -309,10 +309,10 @@ packages: dependency: "direct main" description: name: connectivity_plus - sha256: "2056db5241f96cdc0126bd94459fc4cdc13876753768fc7a31c425e50a7177d0" + sha256: e0817759ec6d2d8e57eb234e6e57d2173931367a865850c7acea40d4b4f9c27d url: "https://pub.dev" source: hosted - version: "6.0.5" + version: "6.1.1" connectivity_plus_platform_interface: dependency: transitive description: @@ -325,18 +325,18 @@ packages: dependency: transitive description: name: convert - sha256: "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592" + sha256: b30acd5944035672bc15c6b7a8b47d773e41e2f17de064350988c5d02adb1c68 url: "https://pub.dev" source: hosted - version: "3.1.1" + version: "3.1.2" coverage: dependency: transitive description: name: coverage - sha256: c1fb2dce3c0085f39dc72668e85f8e0210ec7de05345821ff58530567df345a5 + sha256: e3493833ea012784c740e341952298f1cc77f1f01b1bbc3eb4eecf6984fb7f43 url: "https://pub.dev" source: hosted - version: "1.9.2" + version: "1.11.1" cross_file: dependency: "direct main" description: @@ -349,18 +349,18 @@ packages: dependency: "direct main" description: name: crypto - sha256: ec30d999af904f33454ba22ed9a86162b35e52b44ac4807d1d93c288041d7d27 + sha256: "1e445881f28f22d6140f181e07737b22f1e099a5e1ff94b0af2f9e4a463f4855" url: "https://pub.dev" source: hosted - version: "3.0.5" + version: "3.0.6" csslib: dependency: transitive description: name: csslib - sha256: "706b5707578e0c1b4b7550f64078f0a0f19dec3f50a178ffae7006b0a9ca58fb" + sha256: "09bad715f418841f976c77db72d5398dc1253c21fb9c0c7f0b0b985860b2d58e" url: "https://pub.dev" source: hosted - version: "1.0.0" + version: "1.0.2" cupertino_icons: dependency: "direct main" description: @@ -413,10 +413,10 @@ packages: dependency: transitive description: name: device_info_plus_platform_interface - sha256: "282d3cf731045a2feb66abfe61bbc40870ae50a3ed10a4d3d217556c35c8c2ba" + sha256: "0b04e02b30791224b31969eb1b50d723498f402971bff3630bca2ba839bd1ed2" url: "https://pub.dev" source: hosted - version: "7.0.1" + version: "7.0.2" dio: dependency: "direct main" description: @@ -498,10 +498,10 @@ packages: dependency: "direct main" description: name: equatable - sha256: c2b87cb7756efdf69892005af546c56c0b5037f54d2a88269b4f347a505e3ca2 + sha256: "567c64b3cb4cf82397aac55f4f0cbd3ca20d77c6c03bedbc4ceaddc08904aef7" url: "https://pub.dev" source: hosted - version: "2.0.5" + version: "2.0.7" event_bus: dependency: "direct main" description: @@ -627,10 +627,10 @@ packages: dependency: transitive description: name: file_selector_linux - sha256: "712ce7fab537ba532c8febdb1a8f167b32441e74acd68c3ccb2e36dcb52c4ab2" + sha256: "54cbbd957e1156d29548c7d9b9ec0c0ebb6de0a90452198683a7d23aed617a33" url: "https://pub.dev" source: hosted - version: "0.9.3" + version: "0.9.3+2" file_selector_macos: dependency: transitive description: @@ -659,58 +659,58 @@ packages: dependency: "direct main" description: name: firebase_core - sha256: "51dfe2fbf3a984787a2e7b8592f2f05c986bfedd6fdacea3f9e0a7beb334de96" + sha256: "0307c1fde82e2b8b97e0be2dab93612aff9a72f31ebe9bfac66ed8b37ef7c568" url: "https://pub.dev" source: hosted - version: "3.6.0" + version: "3.10.0" firebase_core_platform_interface: dependency: transitive description: name: firebase_core_platform_interface - sha256: e30da58198a6d4b49d5bce4e852f985c32cb10db329ebef9473db2b9f09ce810 + sha256: d7253d255ff10f85cfd2adaba9ac17bae878fa3ba577462451163bd9f1d1f0bf url: "https://pub.dev" source: hosted - version: "5.3.0" + version: "5.4.0" firebase_core_web: dependency: transitive description: name: firebase_core_web - sha256: f967a7138f5d2ffb1ce15950e2a382924239eaa521150a8f144af34e68b3b3e5 + sha256: fbc008cf390d909b823763064b63afefe9f02d8afdb13eb3f485b871afee956b url: "https://pub.dev" source: hosted - version: "2.18.1" + version: "2.19.0" firebase_messaging: dependency: "direct main" description: name: firebase_messaging - sha256: eb6e28a3a35deda61fe8634967c84215efc19133ba58d8e0fc6c9a2af2cba05e + sha256: "48a8a59197c1c5174060ba9aa1e0036e9b5a0d28a0cc22d19c1fcabc67fafe3c" url: "https://pub.dev" source: hosted - version: "15.1.3" + version: "15.2.0" firebase_messaging_platform_interface: dependency: transitive description: name: firebase_messaging_platform_interface - sha256: b316c4ee10d93d32c033644207afc282d9b2b4372f3cf9c6022f3558b3873d2d + sha256: "9770a8e91f54296829dcaa61ce9b7c2f9ae9abbf99976dd3103a60470d5264dd" url: "https://pub.dev" source: hosted - version: "4.5.46" + version: "4.6.0" firebase_messaging_web: dependency: transitive description: name: firebase_messaging_web - sha256: d7f0147a1a9fe4313168e20154a01fd5cf332898de1527d3930ff77b8c7f5387 + sha256: "329ca4ef45ec616abe6f1d5e58feed0934a50840a65aa327052354ad3c64ed77" url: "https://pub.dev" source: hosted - version: "3.9.2" + version: "3.10.0" fixnum: dependency: transitive description: name: fixnum - sha256: "25517a4deb0c03aa0f32fd12db525856438902d9c16536311e76cdc57b31d7d1" + sha256: b6dc7065e46c974bc7c5f143080a6764ec7a4be6da1285ececdc37be96de53be url: "https://pub.dev" source: hosted - version: "1.1.0" + version: "1.1.1" flutter: dependency: "direct main" description: flutter @@ -720,10 +720,10 @@ packages: dependency: "direct main" description: name: flutter_animate - sha256: "7c8a6594a9252dad30cc2ef16e33270b6248c4dedc3b3d06c86c4f3f4dc05ae5" + sha256: "7befe2d3252728afb77aecaaea1dec88a89d35b9b1d2eea6d04479e8af9117b5" url: "https://pub.dev" source: hosted - version: "4.5.0" + version: "4.5.2" flutter_cache_manager: dependency: "direct main" description: @@ -789,10 +789,10 @@ packages: dependency: "direct main" description: name: flutter_inappwebview - sha256: "93cfcca02bdda4b26cd700cf70d9ddba09d8348e3e8f2857638c23ed23a4fcb4" + sha256: "80092d13d3e29b6227e25b67973c67c7210bd5e35c4b747ca908e31eb71a46d5" url: "https://pub.dev" source: hosted - version: "6.1.4" + version: "6.1.5" flutter_inappwebview_android: dependency: transitive description: @@ -805,10 +805,10 @@ packages: dependency: transitive description: name: flutter_inappwebview_internal_annotations - sha256: "5f80fd30e208ddded7dbbcd0d569e7995f9f63d45ea3f548d8dd4c0b473fb4c8" + sha256: "787171d43f8af67864740b6f04166c13190aa74a1468a1f1f1e9ee5b90c359cd" url: "https://pub.dev" source: hosted - version: "1.1.1" + version: "1.2.0" flutter_inappwebview_ios: dependency: transitive description: @@ -845,10 +845,10 @@ packages: dependency: transitive description: name: flutter_inappwebview_windows - sha256: "95ebc65aecfa63b2084c822aec6ba0545f0a0afaa3899f2c752ec96c09108db5" + sha256: "8b4d3a46078a2cdc636c4a3d10d10f2a16882f6be607962dbfff8874d1642055" url: "https://pub.dev" source: hosted - version: "0.5.0+2" + version: "0.6.0" flutter_launcher_icons: dependency: "direct main" description: @@ -869,10 +869,10 @@ packages: dependency: "direct main" description: name: flutter_local_notifications - sha256: "49eeef364fddb71515bc78d5a8c51435a68bccd6e4d68e25a942c5e47761ae71" + sha256: "674173fd3c9eda9d4c8528da2ce0ea69f161577495a9cc835a2a4ecd7eadeb35" url: "https://pub.dev" source: hosted - version: "17.2.3" + version: "17.2.4" flutter_local_notifications_linux: dependency: transitive description: @@ -922,10 +922,10 @@ packages: dependency: "direct main" description: name: flutter_native_splash - sha256: aa06fec78de2190f3db4319dd60fdc8d12b2626e93ef9828633928c2dcaea840 + sha256: "7062602e0dbd29141fb8eb19220b5871ca650be5197ab9c1f193a28b17537bc7" url: "https://pub.dev" source: hosted - version: "2.4.1" + version: "2.4.4" flutter_password_strength: dependency: "direct main" description: @@ -938,10 +938,10 @@ packages: dependency: transitive description: name: flutter_plugin_android_lifecycle - sha256: "9b78450b89f059e96c9ebb355fa6b3df1d6b330436e0b885fb49594c41721398" + sha256: "615a505aef59b151b46bbeef55b36ce2b6ed299d160c51d84281946f0aa0ce0e" url: "https://pub.dev" source: hosted - version: "2.0.23" + version: "2.0.24" flutter_secure_storage: dependency: "direct main" description: @@ -954,18 +954,18 @@ packages: dependency: transitive description: name: flutter_secure_storage_linux - sha256: "4d91bfc23047422cbcd73ac684bc169859ee766482517c22172c86596bf1464b" + sha256: bf7404619d7ab5c0a1151d7c4e802edad8f33535abfbeff2f9e1fe1274e2d705 url: "https://pub.dev" source: hosted - version: "1.2.1" + version: "1.2.2" flutter_secure_storage_macos: dependency: transitive description: name: flutter_secure_storage_macos - sha256: "1693ab11121a5f925bbea0be725abfcfbbcf36c1e29e571f84a0c0f436147a81" + sha256: "6c0a2795a2d1de26ae202a0d78527d163f4acbb11cde4c75c670f3a0fc064247" url: "https://pub.dev" source: hosted - version: "3.1.2" + version: "3.1.3" flutter_secure_storage_platform_interface: dependency: transitive description: @@ -1026,10 +1026,10 @@ packages: dependency: "direct main" description: name: flutter_svg - sha256: "7b4ca6cf3304575fe9c8ec64813c8d02ee41d2afe60bcfe0678bcb5375d596a2" + sha256: "54900a1a1243f3c4a5506d853a2b5c2dbc38d5f27e52a52618a8054401431123" url: "https://pub.dev" source: hosted - version: "2.0.10+1" + version: "2.0.16" flutter_test: dependency: "direct dev" description: flutter @@ -1044,10 +1044,10 @@ packages: dependency: "direct main" description: name: fluttertoast - sha256: "95f349437aeebe524ef7d6c9bde3e6b4772717cf46a0eb6a3ceaddc740b297cc" + sha256: "24467dc20bbe49fd63e57d8e190798c4d22cbbdac30e54209d153a15273721d1" url: "https://pub.dev" source: hosted - version: "8.2.8" + version: "8.2.10" fraction: dependency: "direct main" description: @@ -1097,10 +1097,10 @@ packages: dependency: "direct main" description: name: google_nav_bar - sha256: "1c8e3882fa66ee7b74c24320668276ca23affbd58f0b14a24c1e5590f4d07ab0" + sha256: bb12dd21514ee1b041ab3127673e2fd85e693337df308f7f2b75cd1e8e92eaf4 url: "https://pub.dev" source: hosted - version: "5.0.6" + version: "5.0.7" graphs: dependency: transitive description: @@ -1129,10 +1129,10 @@ packages: dependency: transitive description: name: html - sha256: "3a7812d5bcd2894edf53dfaf8cd640876cf6cef50a8f238745c8b8120ea74d3a" + sha256: "1fc58edeaec4307368c60d59b7e15b9d658b57d7f3125098b6294153c75337ec" url: "https://pub.dev" source: hosted - version: "0.15.4" + version: "0.15.5" html_unescape: dependency: "direct main" description: @@ -1161,10 +1161,10 @@ packages: dependency: transitive description: name: http_multi_server - sha256: "97486f20f9c2f7be8f514851703d0119c3596d14ea63227af6f7a481ef2b2f8b" + sha256: aa6199f908078bb1c5efb8d8638d4ae191aac11b311132c3ef48ce352fb52ef8 url: "https://pub.dev" source: hosted - version: "3.2.1" + version: "3.2.2" http_parser: dependency: transitive description: @@ -1177,26 +1177,26 @@ packages: dependency: "direct main" description: name: image - sha256: "2237616a36c0d69aef7549ab439b833fb7f9fb9fc861af2cc9ac3eedddd69ca8" + sha256: f31d52537dc417fdcde36088fdf11d191026fd5e4fae742491ebd40e5a8bea7d url: "https://pub.dev" source: hosted - version: "4.2.0" + version: "4.3.0" image_editor: dependency: "direct main" description: name: image_editor - sha256: "0fe70befea0dbaf24a7cacc32c28311a65118f66637997ad072e9063f59efdd8" + sha256: "38070067264fd9fea4328ca630d2ff7bd65ebe6aa4ed375d983b732d2ae7146b" url: "https://pub.dev" source: hosted - version: "1.5.1" + version: "1.6.0" image_editor_common: dependency: transitive description: name: image_editor_common - sha256: d141c0847148a7da573a5be5ca02e70d381e61cb6484ebef52a230ca1d6c56ab + sha256: "93d2f5c8b636f862775dd62a9ec20d09c8272598daa02f935955a4640e1844ee" url: "https://pub.dev" source: hosted - version: "1.1.2" + version: "1.2.0" image_editor_ohos: dependency: transitive description: @@ -1225,26 +1225,26 @@ packages: dependency: transitive description: name: image_picker_android - sha256: d3e5e00fdfeca8fd4ffb3227001264d449cc8950414c2ff70b0e06b9c628e643 + sha256: aa6f1280b670861ac45220cc95adc59bb6ae130259d36f980ccb62220dc5e59f url: "https://pub.dev" source: hosted - version: "0.8.12+15" + version: "0.8.12+19" image_picker_for_web: dependency: transitive description: name: image_picker_for_web - sha256: "65d94623e15372c5c51bebbcb820848d7bcb323836e12dfdba60b5d3a8b39e50" + sha256: "717eb042ab08c40767684327be06a5d8dbb341fe791d514e4b92c7bbe1b7bb83" url: "https://pub.dev" source: hosted - version: "3.0.5" + version: "3.0.6" image_picker_ios: dependency: transitive description: name: image_picker_ios - sha256: "6703696ad49f5c3c8356d576d7ace84d1faf459afb07accbb0fae780753ff447" + sha256: "05da758e67bc7839e886b3959848aa6b44ff123ab4b28f67891008afe8ef9100" url: "https://pub.dev" source: hosted - version: "0.8.12" + version: "0.8.12+2" image_picker_linux: dependency: transitive description: @@ -1265,10 +1265,10 @@ packages: dependency: transitive description: name: image_picker_platform_interface - sha256: "9ec26d410ff46f483c5519c29c02ef0e02e13a543f882b152d4bfd2f06802f80" + sha256: "886d57f0be73c4b140004e78b9f28a8914a09e50c2d816bdd0520051a71236a0" url: "https://pub.dev" source: hosted - version: "2.10.0" + version: "2.10.1" image_picker_windows: dependency: transitive description: @@ -1289,10 +1289,10 @@ packages: dependency: transitive description: name: in_app_purchase_android - sha256: bee60266e443d4ae0e4809bae7f9cd4d6be75ab5ec6bb3d2ca737774a274a3bd + sha256: fa1befc0e25374d16ca532154546503f25a865ed6e7ea5641f4f2b75b092d669 url: "https://pub.dev" source: hosted - version: "0.3.6+9" + version: "0.3.6+12" in_app_purchase_platform_interface: dependency: transitive description: @@ -1305,10 +1305,10 @@ packages: dependency: transitive description: name: in_app_purchase_storekit - sha256: e9a408da11d055f9af9849859e1251b2b0a2f84f256fa3bf1285c5614a397079 + sha256: d3187532f20ae4aca3bb65e3adaf09f9a870294b1709d2971bb8485f1825d472 url: "https://pub.dev" source: hosted - version: "0.3.18+1" + version: "0.3.20+3" integration_test: dependency: "direct dev" description: flutter @@ -1334,10 +1334,10 @@ packages: dependency: transitive description: name: io - sha256: "2ec25704aba361659e10e3e5f5d672068d332fc8ac516421d483a11e5cbd061e" + sha256: dfd5a80599cf0165756e3181807ed3e77daf6dd4137caaad72d0b7931597650b url: "https://pub.dev" source: hosted - version: "1.0.4" + version: "1.0.5" js: dependency: transitive description: @@ -1358,10 +1358,10 @@ packages: dependency: "direct dev" description: name: json_serializable - sha256: ea1432d167339ea9b5bb153f0571d0039607a873d6e04e0117af043f14a1fd4b + sha256: c2fcb3920cf2b6ae6845954186420fca40bc0a8abcc84903b7801f17d7050d7c url: "https://pub.dev" source: hosted - version: "6.8.0" + version: "6.9.0" latlong2: dependency: "direct main" description: @@ -1446,10 +1446,10 @@ packages: dependency: transitive description: name: local_auth_darwin - sha256: "6d2950da311d26d492a89aeb247c72b4653ddc93601ea36a84924a396806d49c" + sha256: "5c5127061107278ab4cafa1ac51b3b6760282bf1a2abf011270908a429d1634b" url: "https://pub.dev" source: hosted - version: "1.4.1" + version: "1.4.2" local_auth_ios: dependency: "direct main" description: @@ -1478,18 +1478,18 @@ packages: dependency: transitive description: name: logger - sha256: "697d067c60c20999686a0add96cf6aba723b3aa1f83ecf806a8097231529ec32" + sha256: be4b23575aac7ebf01f225a241eb7f6b5641eeaf43c6a8613510fc2f8cf187d1 url: "https://pub.dev" source: hosted - version: "2.4.0" + version: "2.5.0" logging: dependency: "direct main" description: name: logging - sha256: "623a88c9594aa774443aa3eb2d41807a48486b5613e67599fb4c41c0ad47c340" + sha256: c8245ada5f1717ed44271ed1c26b8ce85ca3228fd2ffdb75468ab01979309d61 url: "https://pub.dev" source: hosted - version: "1.2.0" + version: "1.3.0" lottie: dependency: "direct main" description: @@ -1631,10 +1631,10 @@ packages: dependency: transitive description: name: mime - sha256: "801fd0b26f14a4a58ccb09d5892c3fbdeff209594300a542492cf13fba9d247a" + sha256: "41a20518f0cb1256669420fdba0cd90d21561e560ac240f26ef8322e45bb7ed6" url: "https://pub.dev" source: hosted - version: "1.0.6" + version: "2.0.0" ml_linalg: dependency: "direct main" description: @@ -1771,10 +1771,10 @@ packages: dependency: transitive description: name: package_config - sha256: "1c5b77ccc91e4823a5af61ee74e6b972db1ef98c2ff5a18d3161c982a55448bd" + sha256: "92d4488434b520a62570293fbd33bb556c7d49230791c1b4bbd973baf6d2dc67" url: "https://pub.dev" source: hosted - version: "2.1.0" + version: "2.1.1" package_info_plus: dependency: "direct main" description: @@ -1795,10 +1795,10 @@ packages: dependency: "direct main" description: name: page_transition - sha256: dee976b1f23de9bbef5cd512fe567e9f6278caee11f5eaca9a2115c19dc49ef6 + sha256: "9d2a780d7d68b53ae82fbcc43e06a16195e6775e9aae40e55dc0cbb593460f9d" url: "https://pub.dev" source: hosted - version: "2.1.0" + version: "2.2.1" panorama: dependency: "direct main" description: @@ -1836,34 +1836,34 @@ packages: dependency: transitive description: name: path_parsing - sha256: e3e67b1629e6f7e8100b367d3db6ba6af4b1f0bb80f64db18ef1fbabd2fa9ccf + sha256: "883402936929eac138ee0a45da5b0f2c80f89913e6dc3bf77eb65b84b409c6ca" url: "https://pub.dev" source: hosted - version: "1.0.1" + version: "1.1.0" path_provider: dependency: "direct main" description: name: path_provider - sha256: fec0d61223fba3154d87759e3cc27fe2c8dc498f6386c6d6fc80d1afdd1bf378 + sha256: "50c5dd5b6e1aaf6fb3a78b33f6aa3afca52bf903a8a5298f53101fdaee55bbcd" url: "https://pub.dev" source: hosted - version: "2.1.4" + version: "2.1.5" path_provider_android: dependency: transitive description: name: path_provider_android - sha256: c464428172cb986b758c6d1724c603097febb8fb855aa265aeecc9280c294d4a + sha256: "4adf4fd5423ec60a29506c76581bc05854c55e3a0b72d35bb28d661c9686edf2" url: "https://pub.dev" source: hosted - version: "2.2.12" + version: "2.2.15" path_provider_foundation: dependency: transitive description: name: path_provider_foundation - sha256: f234384a3fdd67f989b4d54a5d73ca2a6c422fa55ae694381ae0f4375cd1ea16 + sha256: "4843174df4d288f5e29185bd6e72a6fbdf5a4a4602717eed565497429f179942" url: "https://pub.dev" source: hosted - version: "2.4.0" + version: "2.4.1" path_provider_linux: dependency: transitive description: @@ -1908,10 +1908,10 @@ packages: dependency: transitive description: name: permission_handler_android - sha256: "76e4ab092c1b240d31177bb64d2b0bea43f43d0e23541ec866151b9f7b2490fa" + sha256: "71bbecfee799e65aff7c744761a57e817e73b738fedf62ab7afd5593da21f9f1" url: "https://pub.dev" source: hosted - version: "12.0.12" + version: "12.0.13" permission_handler_apple: dependency: transitive description: @@ -1924,10 +1924,10 @@ packages: dependency: transitive description: name: permission_handler_html - sha256: af26edbbb1f2674af65a8f4b56e1a6f526156bc273d0e65dd8075fab51c78851 + sha256: "38f000e83355abb3392140f6bc3030660cfaef189e1f87824facb76300b4ff24" url: "https://pub.dev" source: hosted - version: "0.1.3+2" + version: "0.1.3+5" permission_handler_platform_interface: dependency: transitive description: @@ -1956,10 +1956,10 @@ packages: dependency: "direct main" description: name: photo_manager - sha256: "32a1ce1095aeaaa792a29f28c1f74613aa75109f21c2d4ab85be3ad9964230a4" + sha256: dc26184676b26d722d656073ca8fe29203d7631ec613aed1a9679de3aa1f52c2 url: "https://pub.dev" source: hosted - version: "3.5.0" + version: "3.6.3" photo_manager_image_provider: dependency: transitive description: @@ -2068,18 +2068,18 @@ packages: dependency: transitive description: name: pub_semver - sha256: "40d3ab1bbd474c4c2328c91e3a7df8c6dd629b79ece4c4bd04bee496a224fb0c" + sha256: "7b3cfbf654f3edd0c6298ecd5be782ce997ddf0e00531b9464b55245185bbbbd" url: "https://pub.dev" source: hosted - version: "2.1.4" + version: "2.1.5" pubspec_parse: dependency: transitive description: name: pubspec_parse - sha256: c799b721d79eb6ee6fa56f00c04b472dcd44a30d258fac2174a6ec57302678f8 + sha256: "81876843eb50dc2e1e5b151792c9a985c5ed2536914115ed04e9c8528f6647b0" url: "https://pub.dev" source: hosted - version: "1.3.0" + version: "1.4.0" quiver: dependency: "direct main" description: @@ -2092,10 +2092,10 @@ packages: dependency: "direct main" description: name: receive_sharing_intent - sha256: f127989f8662ea15e193bd1e10605e5a0ab6bb92dffd51f3ce002feb0ce24c93 + sha256: ec76056e4d258ad708e76d85591d933678625318e411564dcb9059048ca3a593 url: "https://pub.dev" source: hosted - version: "1.8.0" + version: "1.8.1" rxdart: dependency: transitive description: @@ -2180,58 +2180,58 @@ packages: dependency: "direct main" description: name: sentry - sha256: "033287044a6644a93498969449d57c37907e56f5cedb17b88a3ff20a882261dd" + sha256: "576ad83415102ba2060142a6701611abc6e67a55af1d7ab339cedd3ba1b0f84c" url: "https://pub.dev" source: hosted - version: "8.9.0" + version: "8.12.0" sentry_flutter: dependency: "direct main" description: name: sentry_flutter - sha256: "3780b5a0bb6afd476857cfbc6c7444d969c29a4d9bd1aa5b6960aa76c65b737a" + sha256: dc3761e8659839cc67a18432d9f12e5531affb7ff68e196dbb56846909b5dfdc url: "https://pub.dev" source: hosted - version: "8.9.0" + version: "8.12.0" share_plus: dependency: "direct main" description: name: share_plus - sha256: "468c43f285207c84bcabf5737f33b914ceb8eb38398b91e5e3ad1698d1b72a52" + sha256: "6327c3f233729374d0abaafd61f6846115b2a481b4feddd8534211dc10659400" url: "https://pub.dev" source: hosted - version: "10.0.2" + version: "10.1.3" share_plus_platform_interface: dependency: transitive description: name: share_plus_platform_interface - sha256: "6ababf341050edff57da8b6990f11f4e99eaba837865e2e6defe16d039619db5" + sha256: cc012a23fc2d479854e6c80150696c4a5f5bb62cb89af4de1c505cf78d0a5d0b url: "https://pub.dev" source: hosted - version: "5.0.0" + version: "5.0.2" shared_preferences: dependency: "direct main" description: name: shared_preferences - sha256: "746e5369a43170c25816cc472ee016d3a66bc13fcf430c0bc41ad7b4b2922051" + sha256: a752ce92ea7540fc35a0d19722816e04d0e72828a4200e83a98cf1a1eb524c9a url: "https://pub.dev" source: hosted - version: "2.3.2" + version: "2.3.5" shared_preferences_android: dependency: transitive description: name: shared_preferences_android - sha256: "3b9febd815c9ca29c9e3520d50ec32f49157711e143b7a4ca039eb87e8ade5ab" + sha256: "02a7d8a9ef346c9af715811b01fbd8e27845ad2c41148eefd31321471b41863d" url: "https://pub.dev" source: hosted - version: "2.3.3" + version: "2.4.0" shared_preferences_foundation: dependency: transitive description: name: shared_preferences_foundation - sha256: "07e050c7cd39bad516f8d64c455f04508d09df104be326d8c02551590a0d513d" + sha256: "6a52cfcdaeac77cad8c97b539ff688ccfc458c007b4db12be584fbe5c0e49e03" url: "https://pub.dev" source: hosted - version: "2.5.3" + version: "2.5.4" shared_preferences_linux: dependency: transitive description: @@ -2292,10 +2292,10 @@ packages: dependency: transitive description: name: shelf_web_socket - sha256: "073c147238594ecd0d193f3456a5fe91c4b0abbcc68bf5cd95b36c4e194ac611" + sha256: cc36c297b52866d203dbf9332263c94becc2fe0ceaa9681d07b6ef9807023b67 url: "https://pub.dev" source: hosted - version: "2.0.0" + version: "2.0.1" simple_cluster: dependency: "direct main" description: @@ -2321,10 +2321,10 @@ packages: dependency: transitive description: name: source_helper - sha256: "6adebc0006c37dd63fe05bca0a929b99f06402fc95aa35bf36d67f5c06de01fd" + sha256: "86d247119aedce8e63f4751bd9626fc9613255935558447569ad42f9f5b48b3c" url: "https://pub.dev" source: hosted - version: "1.3.4" + version: "1.3.5" source_map_stack_trace: dependency: transitive description: @@ -2337,10 +2337,10 @@ packages: dependency: transitive description: name: source_maps - sha256: "708b3f6b97248e5781f493b765c3337db11c5d2c81c3094f10904bfa8004c703" + sha256: "190222579a448b03896e0ca6eca5998fa810fda630c1d65e2f78b3f638f54812" url: "https://pub.dev" source: hosted - version: "0.10.12" + version: "0.10.13" source_span: dependency: transitive description: @@ -2361,10 +2361,10 @@ packages: dependency: "direct main" description: name: sqflite - sha256: "79a297dc3cc137e758c6a4baf83342b039e5a6d2436fcdf3f96a00adaaf2ad62" + sha256: "2d7299468485dca85efeeadf5d38986909c5eb0cd71fd3db2c2f000e6c9454bb" url: "https://pub.dev" source: hosted - version: "2.4.0" + version: "2.4.1" sqflite_android: dependency: transitive description: @@ -2377,18 +2377,18 @@ packages: dependency: transitive description: name: sqflite_common - sha256: "4468b24876d673418a7b7147e5a08a715b4998a7ae69227acafaab762e0e5490" + sha256: "761b9740ecbd4d3e66b8916d784e581861fd3c3553eda85e167bc49fdb68f709" url: "https://pub.dev" source: hosted - version: "2.5.4+5" + version: "2.5.4+6" sqflite_darwin: dependency: transitive description: name: sqflite_darwin - sha256: "769733dddf94622d5541c73e4ddc6aa7b252d865285914b6fcd54a63c4b4f027" + sha256: "22adfd9a2c7d634041e96d6241e6e1c8138ca6817018afc5d443fef91dcefa9c" url: "https://pub.dev" source: hosted - version: "2.4.1-1" + version: "2.4.1+1" sqflite_migration: dependency: "direct main" description: @@ -2409,18 +2409,18 @@ packages: dependency: transitive description: name: sqlite3 - sha256: "45f168ae2213201b54e09429ed0c593dc2c88c924a1488d6f9c523a255d567cb" + sha256: cb7f4e9dc1b52b1fa350f7b3d41c662e75fc3d399555fa4e5efcf267e9a4fbb5 url: "https://pub.dev" source: hosted - version: "2.4.6" + version: "2.5.0" sqlite3_flutter_libs: dependency: "direct main" description: name: sqlite3_flutter_libs - sha256: "62bbb4073edbcdf53f40c80775f33eea01d301b7b81417e5b3fb7395416258c1" + sha256: "73016db8419f019e807b7a5e5fbf2a7bd45c165fed403b8e7681230f3a102785" url: "https://pub.dev" source: hosted - version: "0.5.24" + version: "0.5.28" sqlite_async: dependency: "direct main" description: @@ -2457,10 +2457,10 @@ packages: dependency: transitive description: name: stream_transform - sha256: "14a00e794c7c11aa145a170587321aedce29769c08d7f58b1d141da75e3b1c6f" + sha256: ad47125e588cfd37a9a7f86c7d6356dde8dfe89d071d293f80ca9e9273a33871 url: "https://pub.dev" source: hosted - version: "2.1.0" + version: "2.1.1" string_scanner: dependency: transitive description: @@ -2561,10 +2561,10 @@ packages: dependency: transitive description: name: timing - sha256: "70a3b636575d4163c477e6de42f247a23b315ae20e86442bebe32d3cabf61c32" + sha256: "62ee18aca144e4a9f29d212f5a4c6a053be252b895ab14b5821996cff4ed90fe" url: "https://pub.dev" source: hosted - version: "1.0.1" + version: "1.0.2" transparent_image: dependency: transitive description: @@ -2585,18 +2585,18 @@ packages: dependency: transitive description: name: typed_data - sha256: facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c + sha256: f9049c039ebfeb4cf7a7104a675823cd72dba8297f264b6637062516699fa006 url: "https://pub.dev" source: hosted - version: "1.3.2" + version: "1.4.0" ua_client_hints: dependency: "direct main" description: name: ua_client_hints - sha256: dfea54a1b4d259c057d0f33f198094cf4e09e1a21d347baadbe6dbd3d820c0d4 + sha256: "1b8759a46bfeab355252881df27f2604c01bded86aa2b578869fb1b638b23118" url: "https://pub.dev" source: hosted - version: "1.4.0" + version: "1.4.1" uni_links: dependency: "direct main" description: @@ -2657,42 +2657,42 @@ packages: dependency: "direct main" description: name: url_launcher - sha256: "21b704ce5fa560ea9f3b525b43601c678728ba46725bab9b01187b4831377ed3" + sha256: "9d06212b1362abc2f0f0d78e6f09f726608c74e3b9462e8368bb03314aa8d603" url: "https://pub.dev" source: hosted - version: "6.3.0" + version: "6.3.1" url_launcher_android: dependency: transitive description: name: url_launcher_android - sha256: "8fc3bae0b68c02c47c5c86fa8bfa74471d42687b0eded01b78de87872db745e2" + sha256: "6fc2f56536ee873eeb867ad176ae15f304ccccc357848b351f6f0d8d4a40d193" url: "https://pub.dev" source: hosted - version: "6.3.12" + version: "6.3.14" url_launcher_ios: dependency: transitive description: name: url_launcher_ios - sha256: e43b677296fadce447e987a2f519dcf5f6d1e527dc35d01ffab4fff5b8a7063e + sha256: "16a513b6c12bb419304e72ea0ae2ab4fed569920d1c7cb850263fe3acc824626" url: "https://pub.dev" source: hosted - version: "6.3.1" + version: "6.3.2" url_launcher_linux: dependency: transitive description: name: url_launcher_linux - sha256: e2b9622b4007f97f504cd64c0128309dfb978ae66adbe944125ed9e1750f06af + sha256: "4e9ba368772369e3e08f231d2301b4ef72b9ff87c31192ef471b380ef29a4935" url: "https://pub.dev" source: hosted - version: "3.2.0" + version: "3.2.1" url_launcher_macos: dependency: transitive description: name: url_launcher_macos - sha256: "769549c999acdb42b8bcfa7c43d72bf79a382ca7441ab18a808e101149daf672" + sha256: "17ba2000b847f334f16626a574c702b196723af2a289e7a93ffcb79acff855c2" url: "https://pub.dev" source: hosted - version: "3.2.1" + version: "3.2.2" url_launcher_platform_interface: dependency: transitive description: @@ -2713,10 +2713,10 @@ packages: dependency: transitive description: name: url_launcher_windows - sha256: "49c10f879746271804767cb45551ec5592cdab00ee105c06dddde1a98f73b185" + sha256: "44cf3aabcedde30f2dba119a9dea3b0f2672fbe6fa96e85536251d678216b3c4" url: "https://pub.dev" source: hosted - version: "3.1.2" + version: "3.1.3" utility: dependency: transitive description: @@ -2737,26 +2737,26 @@ packages: dependency: transitive description: name: vector_graphics - sha256: "32c3c684e02f9bc0afb0ae0aa653337a2fe022e8ab064bcd7ffda27a74e288e3" + sha256: "27d5fefe86fb9aace4a9f8375b56b3c292b64d8c04510df230f849850d912cb7" url: "https://pub.dev" source: hosted - version: "1.1.11+1" + version: "1.1.15" vector_graphics_codec: dependency: transitive description: name: vector_graphics_codec - sha256: c86987475f162fadff579e7320c7ddda04cd2fdeffbe1129227a85d9ac9e03da + sha256: "99fd9fbd34d9f9a32efd7b6a6aae14125d8237b10403b422a6a6dfeac2806146" url: "https://pub.dev" source: hosted - version: "1.1.11+1" + version: "1.1.13" vector_graphics_compiler: dependency: transitive description: name: vector_graphics_compiler - sha256: "12faff3f73b1741a36ca7e31b292ddeb629af819ca9efe9953b70bd63fc8cd81" + sha256: "1b4b9e706a10294258727674a340ae0d6e64a7231980f9f9a3d12e4b42407aad" url: "https://pub.dev" source: hosted - version: "1.1.11+1" + version: "1.1.16" vector_math: dependency: transitive description: @@ -2769,11 +2769,11 @@ packages: dependency: "direct main" description: path: "." - ref: HEAD - resolved-ref: "7d37839d90d4410528d5da4cba28937f19122894" - url: "https://github.com/RmanAkbarzadeh/VideoCompress.git" + ref: prateekmedia-patch-1 + resolved-ref: c347ccd60c76f79e71f968661c282f75c27b26fd + url: "https://github.com/prateekmedia/VideoCompress-forked.git" source: git - version: "3.1.3" + version: "3.1.5" video_editor: dependency: "direct main" description: @@ -2796,18 +2796,18 @@ packages: dependency: transitive description: name: video_player_android - sha256: ae5287ca367e206eb74d7b3dc1ce0b8912ab9a3fc0597b6a101a0a5239f229d3 + sha256: "391e092ba4abe2f93b3e625bd6b6a6ec7d7414279462c1c0ee42b5ab8d0a0898" url: "https://pub.dev" source: hosted - version: "2.7.9" + version: "2.7.16" video_player_avfoundation: dependency: transitive description: name: video_player_avfoundation - sha256: cd5ab8a8bc0eab65ab0cea40304097edc46da574c8c1ecdee96f28cd8ef3792f + sha256: "33224c19775fd244be2d6e3dbd8e1826ab162877bd61123bf71890772119a2b7" url: "https://pub.dev" source: hosted - version: "2.6.2" + version: "2.6.5" video_player_media_kit: dependency: "direct main" description: @@ -2828,10 +2828,10 @@ packages: dependency: transitive description: name: video_player_web - sha256: "6dcdd298136523eaf7dfc31abaf0dfba9aa8a8dbc96670e87e9d42b6f2caf774" + sha256: "881b375a934d8ebf868c7fb1423b2bfaa393a0a265fa3f733079a86536064a10" url: "https://pub.dev" source: hosted - version: "2.3.2" + version: "2.3.3" video_thumbnail: dependency: "direct main" description: @@ -2876,10 +2876,10 @@ packages: dependency: transitive description: name: wakelock_plus_platform_interface - sha256: "422d1cdbb448079a8a62a5a770b69baa489f8f7ca21aef47800c726d404f9d16" + sha256: "70e780bc99796e1db82fe764b1e7dcb89a86f1e5b3afb1db354de50f2e41eb7a" url: "https://pub.dev" source: hosted - version: "1.2.1" + version: "1.2.2" wallpaper_manager_flutter: dependency: "direct main" description: @@ -2892,10 +2892,10 @@ packages: dependency: "direct overridden" description: name: watcher - sha256: "3d2ad6751b3c16cf07c7fca317a1413b3f26530319181b37e3b9039b84fc01d8" + sha256: "69da27e49efa56a15f8afe8f4438c4ec02eff0a117df1b22ea4aad194fe1c104" url: "https://pub.dev" source: hosted - version: "1.1.0" + version: "1.1.1" web: dependency: transitive description: @@ -2956,10 +2956,10 @@ packages: dependency: "direct overridden" description: name: win32 - sha256: "4d45dc9069dba4619dc0ebd93c7cec5e66d8482cb625a370ac806dcc8165f2ec" + sha256: "154360849a56b7b67331c21f09a386562d88903f90a1099c5987afc1912e1f29" url: "https://pub.dev" source: hosted - version: "5.5.5" + version: "5.10.0" win32_registry: dependency: transitive description: @@ -3012,10 +3012,10 @@ packages: dependency: transitive description: name: yaml - sha256: "75769501ea3489fca56601ff33454fe45507ea3bfb014161abc3b43ae25989d5" + sha256: b9da305ac7c39faa3f030eccd175340f968459dae4af175130b3fc47e40d76ce url: "https://pub.dev" source: hosted - version: "3.1.2" + version: "3.1.3" sdks: dart: ">=3.5.0 <4.0.0" flutter: ">=3.24.0" diff --git a/mobile/pubspec.yaml b/mobile/pubspec.yaml index 2d635a15fbd..17ab3f17d8c 100644 --- a/mobile/pubspec.yaml +++ b/mobile/pubspec.yaml @@ -187,6 +187,7 @@ dependencies: video_compress: git: url: https://github.com/prateekmedia/VideoCompress-forked.git + ref: prateekmedia-patch-1 video_editor: git: url: https://github.com/prateekmedia/video_editor.git From ca118c397b18c566d94f46d39e2b591ea41325e4 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Mon, 13 Jan 2025 05:40:29 +0530 Subject: [PATCH 41/90] fix: match collection id to "Camera" --- mobile/lib/services/preview_video_store.dart | 6 +++--- mobile/lib/utils/file_uploader.dart | 15 +++++++++++++++ mobile/lib/utils/toast_util.dart | 2 +- 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/mobile/lib/services/preview_video_store.dart b/mobile/lib/services/preview_video_store.dart index 69fe6ca3988..3699cc37dad 100644 --- a/mobile/lib/services/preview_video_store.dart +++ b/mobile/lib/services/preview_video_store.dart @@ -47,7 +47,7 @@ class PreviewVideoStore { List get qualities => VideoQuality.values; - Future chunkAndUploadVideo(BuildContext ctx, EnteFile enteFile) async { + Future chunkAndUploadVideo(BuildContext? ctx, EnteFile enteFile) async { if (!enteFile.isUploaded) return; final file = await getFile(enteFile, isOrigin: true); if (file == null) return; @@ -55,7 +55,7 @@ class PreviewVideoStore { // check if playlist already exist await getPlaylist(enteFile); final resultUrl = await getPreviewUrl(enteFile); - if (ctx.mounted) { + if (ctx != null && ctx.mounted) { showShortToast(ctx, 'Video preview already exists'); } debugPrint("previewUrl $resultUrl"); @@ -68,7 +68,7 @@ class PreviewVideoStore { rethrow; } } - if (VideoCompress.isCompressing) { + if (VideoCompress.isCompressing && ctx != null) { showShortToast( ctx, "Another is being compressed ($_progress %), please wait", diff --git a/mobile/lib/utils/file_uploader.dart b/mobile/lib/utils/file_uploader.dart index 84c33446d13..dc334fdc17b 100644 --- a/mobile/lib/utils/file_uploader.dart +++ b/mobile/lib/utils/file_uploader.dart @@ -35,6 +35,7 @@ import "package:photos/service_locator.dart"; import 'package:photos/services/collections_service.dart'; import "package:photos/services/file_magic_service.dart"; import 'package:photos/services/local_sync_service.dart'; +import "package:photos/services/preview_video_store.dart"; import 'package:photos/services/sync_service.dart'; import "package:photos/services/user_service.dart"; import 'package:photos/utils/crypto_util.dart'; @@ -97,6 +98,8 @@ class FileUploader { static FileUploader instance = FileUploader._privateConstructor(); + static final _previewVideoStore = PreviewVideoStore.instance; + Future init(SharedPreferences preferences, bool isBackground) async { _prefs = preferences; _isBackground = isBackground; @@ -463,6 +466,16 @@ class FileUploader { } } + void _uploadPreview(EnteFile file) { + final collection = + CollectionsService.instance.getCollectionByID(file.collectionID!); + if (collection?.displayName == "Camera") { + unawaited( + _previewVideoStore.chunkAndUploadVideo(null, file), + ); + } + } + Future _tryToUpload( EnteFile file, int collectionID, @@ -718,6 +731,8 @@ class FileUploader { if (SyncService.instance.shouldStopSync()) { throw SyncStopRequestedError(); } + + _uploadPreview(file); EnteFile remoteFile; if (isUpdatedFile) { remoteFile = await _updateFile( diff --git a/mobile/lib/utils/toast_util.dart b/mobile/lib/utils/toast_util.dart index 96658ec29d8..2e876222a7f 100644 --- a/mobile/lib/utils/toast_util.dart +++ b/mobile/lib/utils/toast_util.dart @@ -46,6 +46,6 @@ void showToast( } } -void showShortToast(context, String message) { +void showShortToast(BuildContext context, String message) { showToast(context, message, toastLength: Toast.LENGTH_SHORT); } From 6e258490fe4407955332340e59994e8cf49b07fd Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Mon, 13 Jan 2025 05:49:48 +0530 Subject: [PATCH 42/90] fix: append to a set if already compressing --- mobile/lib/services/preview_video_store.dart | 21 +++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/mobile/lib/services/preview_video_store.dart b/mobile/lib/services/preview_video_store.dart index 3699cc37dad..89eb509f796 100644 --- a/mobile/lib/services/preview_video_store.dart +++ b/mobile/lib/services/preview_video_store.dart @@ -35,6 +35,8 @@ class PreviewVideoStore { final videoCacheManager = VideoCacheManager.instance; double _progress = 0; + final files = {}; + final _dio = NetworkClient.instance.enteDio; void init() { VideoCompress.compressProgress$.subscribe((progress) { @@ -68,11 +70,14 @@ class PreviewVideoStore { rethrow; } } - if (VideoCompress.isCompressing && ctx != null) { - showShortToast( - ctx, - "Another is being compressed ($_progress %), please wait", - ); + if (VideoCompress.isCompressing) { + files.add(enteFile); + if (ctx != null) { + showShortToast( + ctx, + "Another is being compressed ($_progress %), please wait", + ); + } return; } final String tempDir = Configuration.instance.getTempDirectory(); @@ -152,6 +157,12 @@ class PreviewVideoStore { _logger.severe(output); } } + + if (files.isNotEmpty) { + final file = files.first; + files.remove(file); + await chunkAndUploadVideo(ctx, file); + } } Future _reportVideoPreview( From b595272713bcb4ece0c41fdc782fe16fbe3adfe6 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Mon, 13 Jan 2025 13:36:43 +0530 Subject: [PATCH 43/90] fix: check isUploading & only upload for internal user --- mobile/lib/services/preview_video_store.dart | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/mobile/lib/services/preview_video_store.dart b/mobile/lib/services/preview_video_store.dart index 89eb509f796..797aa2419d5 100644 --- a/mobile/lib/services/preview_video_store.dart +++ b/mobile/lib/services/preview_video_store.dart @@ -17,6 +17,7 @@ import "package:photos/core/network/network.dart"; import "package:photos/models/base/id.dart"; import "package:photos/models/file/file.dart"; import "package:photos/models/file/file_type.dart"; +import "package:photos/service_locator.dart"; import "package:photos/services/filedata/filedata_service.dart"; import "package:photos/utils/file_key.dart"; import "package:photos/utils/file_util.dart"; @@ -36,6 +37,7 @@ class PreviewVideoStore { double _progress = 0; final files = {}; + bool isUploading = false; final _dio = NetworkClient.instance.enteDio; void init() { @@ -50,7 +52,7 @@ class PreviewVideoStore { List get qualities => VideoQuality.values; Future chunkAndUploadVideo(BuildContext? ctx, EnteFile enteFile) async { - if (!enteFile.isUploaded) return; + if (!enteFile.isUploaded || !flagService.internalUser) return; final file = await getFile(enteFile, isOrigin: true); if (file == null) return; try { @@ -70,9 +72,9 @@ class PreviewVideoStore { rethrow; } } - if (VideoCompress.isCompressing) { + if (isUploading || VideoCompress.isCompressing) { files.add(enteFile); - if (ctx != null) { + if (ctx != null && VideoCompress.isCompressing) { showShortToast( ctx, "Another is being compressed ($_progress %), please wait", @@ -158,6 +160,7 @@ class PreviewVideoStore { } } + isUploading = false; if (files.isNotEmpty) { final file = files.first; files.remove(file); From c302f1ba2ae951a4080a180ddb71bb9a39407069 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Tue, 14 Jan 2025 17:26:53 +0530 Subject: [PATCH 44/90] fix: remove unwanted key --- mobile/lib/models/metadata/file_magic.dart | 1 - 1 file changed, 1 deletion(-) diff --git a/mobile/lib/models/metadata/file_magic.dart b/mobile/lib/models/metadata/file_magic.dart index 5326d52fabe..7599b7c82f3 100644 --- a/mobile/lib/models/metadata/file_magic.dart +++ b/mobile/lib/models/metadata/file_magic.dart @@ -14,7 +14,6 @@ const latKey = "lat"; const longKey = "long"; const motionVideoIndexKey = "mvi"; const noThumbKey = "noThumb"; -const previewVersionKey = "previewVersion"; class MagicMetadata { // 0 -> visible From 882850e3d55cea7a30cd28718aa66155e948b46d Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Tue, 14 Jan 2025 17:59:19 +0530 Subject: [PATCH 45/90] fix: null check issue --- .../ui/tools/collage/collage_save_button.dart | 19 +++++++++---------- mobile/lib/utils/file_download_util.dart | 11 ++++------- 2 files changed, 13 insertions(+), 17 deletions(-) diff --git a/mobile/lib/ui/tools/collage/collage_save_button.dart b/mobile/lib/ui/tools/collage/collage_save_button.dart index 5a21d628272..cd2645403bc 100644 --- a/mobile/lib/ui/tools/collage/collage_save_button.dart +++ b/mobile/lib/ui/tools/collage/collage_save_button.dart @@ -40,19 +40,18 @@ class SaveCollageButton extends StatelessWidget { final fileName = "ente_collage_" + DateTime.now().microsecondsSinceEpoch.toString() + ".jpeg"; - AssetEntity? newAsset = await (PhotoManager.editor.saveImage( + final newAsset = await (PhotoManager.editor + .saveImage( compressedBytes, filename: fileName, relativePath: "ente Collages", - )); - newAsset ??= await (PhotoManager.editor.saveImage( - compressedBytes, - filename: fileName, - )); - if (newAsset == null) { - showShortToast(context, S.of(context).fileFailedToSaveToGallery); - return; - } + ) + .onError((err, st) async { + return await (PhotoManager.editor.saveImage( + compressedBytes, + filename: fileName, + )); + })); final newFile = await EnteFile.fromAsset("ente Collages", newAsset); SyncService.instance.sync().ignore(); showShortToast(context, S.of(context).collageSaved); diff --git a/mobile/lib/utils/file_download_util.dart b/mobile/lib/utils/file_download_util.dart index 3b6842a740e..b998c22db38 100644 --- a/mobile/lib/utils/file_download_util.dart +++ b/mobile/lib/utils/file_download_util.dart @@ -251,10 +251,10 @@ Future _saveLivePhotoOnDroid( ) async { debugPrint("Downloading LivePhoto on Droid"); AssetEntity? savedAsset = await (PhotoManager.editor - .saveImageWithPath(image.path, title: enteFile.title!)); - if (savedAsset == null) { + .saveImageWithPath(image.path, title: enteFile.title!)) + .catchError((err) { throw Exception("Failed to save image of live photo"); - } + }); IgnoredFile ignoreVideoFile = IgnoredFile( savedAsset.id, savedAsset.title ?? '', @@ -267,10 +267,7 @@ Future _saveLivePhotoOnDroid( savedAsset = (await (PhotoManager.editor.saveVideo( video, title: videoTitle, - ))); - if (savedAsset == null) { - throw Exception("Failed to save video of live photo"); - } + )).catchError((_) => throw Exception("Failed to save video of live photo"))); ignoreVideoFile = IgnoredFile( savedAsset.id, From 815848450c26a7e55fae7e889f80b969132920f1 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Sat, 18 Jan 2025 04:20:50 +0530 Subject: [PATCH 46/90] fix: turn rotate off and re-encode to fix iOS issue --- mobile/lib/services/preview_video_store.dart | 5 ++++- mobile/pubspec.lock | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/mobile/lib/services/preview_video_store.dart b/mobile/lib/services/preview_video_store.dart index 797aa2419d5..1f46a817272 100644 --- a/mobile/lib/services/preview_video_store.dart +++ b/mobile/lib/services/preview_video_store.dart @@ -107,9 +107,12 @@ class PreviewVideoStore { _logger.info( 'Generating HLS Playlist ${enteFile.displayName} at $prefix/output.m3u8}', ); + final session = await FFmpegKit.execute( '-i "${mediaInfo!.path}" ' - '-c copy -f hls -hls_time 10 -hls_flags single_file ' + '-metadata:s:v:0 rotate=0 ' + '-c:v libx264 -crf 18 -preset veryfast ' + '-c:a copy -f hls -hls_time 10 -hls_flags single_file ' '-hls_list_size 0 -hls_key_info_file ${keyinfo.path} ' '$prefix/output.m3u8', ); diff --git a/mobile/pubspec.lock b/mobile/pubspec.lock index 207a04a8210..61268393ef5 100644 --- a/mobile/pubspec.lock +++ b/mobile/pubspec.lock @@ -2770,7 +2770,7 @@ packages: description: path: "." ref: prateekmedia-patch-1 - resolved-ref: c347ccd60c76f79e71f968661c282f75c27b26fd + resolved-ref: "8bce37682e20da618ea155fca1b4756b22621882" url: "https://github.com/prateekmedia/VideoCompress-forked.git" source: git version: "3.1.5" From 3cf050c2e872d5ce74663a3d4b9df21387b0f4dc Mon Sep 17 00:00:00 2001 From: Neeraj Gupta <254676+ua741@users.noreply.github.com> Date: Sat, 18 Jan 2025 15:45:49 +0530 Subject: [PATCH 47/90] [mob] Bump version --- mobile/ios/Podfile.lock | 112 ++++++++++++++++++++-------------------- mobile/pubspec.yaml | 2 +- 2 files changed, 57 insertions(+), 57 deletions(-) diff --git a/mobile/ios/Podfile.lock b/mobile/ios/Podfile.lock index a40410ca64f..53ed1a425f6 100644 --- a/mobile/ios/Podfile.lock +++ b/mobile/ios/Podfile.lock @@ -445,83 +445,83 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/wakelock_plus/ios" SPEC CHECKSUMS: - background_fetch: 94b36ee293e82972852dba8ede1fbcd3bd3d9d57 - battery_info: a06b00c06a39bc94c92beebf600f1810cb6c8c87 - connectivity_plus: 2256d3e20624a7749ed21653aafe291a46446fee - dart_ui_isolate: 46f6714abe6891313267153ef6f9748d8ecfcab1 - device_info_plus: 335f3ce08d2e174b9fdc3db3db0f4e3b1f66bd89 + background_fetch: 39f11371c0dce04b001c4bfd5e782bcccb0a85e2 + battery_info: 09f5c9ee65394f2291c8c6227bedff345b8a730c + connectivity_plus: 18382e7311ba19efcaee94442b23b32507b20695 + dart_ui_isolate: d5bcda83ca4b04f129d70eb90110b7a567aece14 + device_info_plus: c6fb39579d0f423935b0c9ce7ee2f44b71b9fce6 ffmpeg-kit-ios-full-gpl: 80adc341962e55ef709e36baa8ed9a70cf4ea62b - ffmpeg_kit_flutter_full_gpl: ce18b888487c05c46ed252cd2e7956812f2e3bd1 - file_saver: 6cdbcddd690cb02b0c1a0c225b37cd805c2bf8b6 + ffmpeg_kit_flutter_full_gpl: 8d15c14c0c3aba616fac04fe44b3d27d02e3c330 + file_saver: 503e386464dbe118f630e17b4c2e1190fa0cf808 Firebase: 374a441a91ead896215703a674d58cdb3e9d772b - firebase_core: 2337982fb78ee4d8d91e608b0a3d4f44346a93c8 - firebase_messaging: f3bddfa28c2cad70b3341bf461e987a24efd28d6 + firebase_core: feb37e79f775c2bd08dd35e02d83678291317e10 + firebase_messaging: e2f0ba891b1509668c07f5099761518a5af8fe3c FirebaseCore: 48b0dd707581cf9c1a1220da68223fb0a562afaa FirebaseCoreInternal: d98ab91e2d80a56d7b246856a8885443b302c0c2 FirebaseInstallations: efc0946fc756e4d22d8113f7c761948120322e8c FirebaseMessaging: e1aca1fcc23e8b9eddb0e33f375ff90944623021 Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7 - flutter_email_sender: cd533cdc7ea5eda6fabb2c7f78521c71207778a4 - flutter_image_compress: 4b058288a81f76e5e80340af37c709abafff34c4 - flutter_inappwebview_ios: b89ba3482b96fb25e00c967aae065701b66e9b99 - flutter_local_notifications: ad39620c743ea4c15127860f4b5641649a988100 - flutter_native_splash: 6cad9122ea0fad137d23137dd14b937f3e90b145 - flutter_secure_storage: 2c2ff13db9e0a5647389bff88b0ecac56e3f3418 - flutter_sodium: 152647449ba89a157fd48d7e293dcd6d29c6ab0e - fluttertoast: 76fea30fcf04176325f6864c87306927bd7d2038 + flutter_email_sender: 02d7443217d8c41483223627972bfdc09f74276b + flutter_image_compress: 5a5e9aee05b6553048b8df1c3bc456d0afaac433 + flutter_inappwebview_ios: 6f63631e2c62a7c350263b13fa5427aedefe81d4 + flutter_local_notifications: 4cde75091f6327eb8517fa068a0a5950212d2086 + flutter_native_splash: f71420956eb811e6d310720fee915f1d42852e7a + flutter_secure_storage: 23fc622d89d073675f2eaa109381aefbcf5a49be + flutter_sodium: c84426b4de738514b5b66cfdeb8a06634e72fe0b + fluttertoast: e9a18c7be5413da53898f660530c56f35edfba9c GoogleDataTransport: aae35b7ea0c09004c3797d53c8c41f66f219d6a7 GoogleUtilities: 26a3abef001b6533cf678d3eb38fd3f614b7872d - home_widget: f169fc41fd807b4d46ab6615dc44d62adbf9f64f - image_editor_common: 3de87e7c4804f4ae24c8f8a998362b98c105cac1 - image_picker_ios: 7fe1ff8e34c1790d6fff70a32484959f563a928a - in_app_purchase_storekit: e126ef1b89e4a9fdf07e28f005f82632b4609437 - integration_test: 4a889634ef21a45d28d50d622cf412dc6d9f586e + home_widget: 0434835a4c9a75704264feff6be17ea40e0f0d57 + image_editor_common: d6f6644ae4a6de80481e89fe6d0a8c49e30b4b43 + image_picker_ios: c560581cceedb403a6ff17f2f816d7fea1421fc1 + in_app_purchase_storekit: 8c3b0b3eb1b0f04efbff401c3de6266d4258d433 + integration_test: 252f60fa39af5e17c3aa9899d35d908a0721b573 libwebp: 1786c9f4ff8a279e4dac1e8f385004d5fc253009 - local_auth_darwin: 553ce4f9b16d3fdfeafce9cf042e7c9f77c1c391 - local_auth_ios: f7a1841beef3151d140a967c2e46f30637cdf451 + local_auth_darwin: 66e40372f1c29f383a314c738c7446e2f7fdadc3 + local_auth_ios: 5046a18c018dd973247a0564496c8898dbb5adf9 Mantle: c5aa8794a29a022dfbbfc9799af95f477a69b62d - maps_launcher: edf829809ba9e894d70e569bab11c16352dedb45 - media_extension: a1fec16ee9c8241a6aef9613578ebf097d6c5e64 - media_kit_libs_ios_video: 5a18affdb97d1f5d466dc79988b13eff6c5e2854 - media_kit_native_event_loop: 5fba1a849a6c87a34985f1e178a0de5bd444a0cf - media_kit_video: 1746e198cb697d1ffb734b1d05ec429d1fcd1474 - motion_sensors: 741e702c17467b9569a92165dda8d4d88c6167f1 - motionphoto: 584b43031ead3060225cdff08fa49818879801d2 - move_to_background: 155f7bfbd34d43ad847cb630d2d2d87c17199710 + maps_launcher: 2e5b6a2d664ec6c27f82ffa81b74228d770ab203 + media_extension: 6d30dc1431ebaa63f43c397c37917b1a0a597a4c + media_kit_libs_ios_video: a5fe24bc7875ccd6378a0978c13185e1344651c1 + media_kit_native_event_loop: e6b2ab20cf0746eb1c33be961fcf79667304fa2a + media_kit_video: 5da63f157170e5bf303bf85453b7ef6971218a2e + motion_sensors: 03f55b7c637a7e365a0b5f9697a449f9059d5d91 + motionphoto: d4a432b8c8f22fb3ad966258597c0103c9c5ff16 + move_to_background: 39a5b79b26d577b0372cbe8a8c55e7aa9fcd3a2d nanopb: fad817b59e0457d11a5dfbde799381cd727c1275 - native_video_player: b65c58951ede2f93d103a25366bdebca95081265 - onnxruntime: f9b296392c96c42882be020a59dbeac6310d81b2 + native_video_player: d12af78a1a4a8cf09775a5177d5b392def6fd23c + onnxruntime: e7c2ae44385191eaad5ae64c935a72debaddc997 onnxruntime-c: a909204639a1f035f575127ac406f781ac797c9c onnxruntime-objc: b6fab0f1787aa6f7190c2013f03037df4718bd8b - open_mail_app: 06d5a4162866388a92b1df3deb96e56be20cf45c + open_mail_app: 794172f6a22cd16319d3ddaf45e945b2f74952b0 OrderedSet: e539b66b644ff081c73a262d24ad552a69be3a94 - package_info_plus: 566e1b7a2f3900e4b0020914ad3fc051dcc95596 - path_provider_foundation: 080d55be775b7414fd5a5ef3ac137b97b097e564 - permission_handler_apple: 4ed2196e43d0651e8ff7ca3483a069d469701f2d - photo_manager: d2fbcc0f2d82458700ee6256a15018210a81d413 - privacy_screen: 3159a541f5d3a31bea916cfd4e58f9dc722b3fd4 + package_info_plus: 115f4ad11e0698c8c1c5d8a689390df880f47e85 + path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46 + permission_handler_apple: 9878588469a2b0d0fc1e048d9f43605f92e6cec2 + photo_manager: ff695c7a1dd5bc379974953a2b5c0a293f7c4c8a + privacy_screen: 1a131c052ceb3c3659934b003b0d397c2381a24e PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47 - receive_sharing_intent: 222384f00ffe7e952bbfabaa9e3967cb87e5fe00 - screen_brightness_ios: 5ed898fa50fa82a26171c086ca5e28228f932576 + receive_sharing_intent: 79c848f5b045674ad60b9fea3bafea59962ad2c1 + screen_brightness_ios: 715ca807df953bf676d339f11464e438143ee625 SDWebImage: 73c6079366fea25fa4bb9640d5fb58f0893facd8 SDWebImageWebPCoder: e38c0a70396191361d60c092933e22c20d5b1380 Sentry: 38ed8bf38eab5812787274bf591e528074c19e02 - sentry_flutter: a72ca0eb6e78335db7c4ddcddd1b9f6c8ed5b764 - share_plus: 50da8cb520a8f0f65671c6c6a99b3617ed10a58a - shared_preferences_foundation: 9e1978ff2562383bd5676f64ec4e9aa8fa06a6f7 - sqflite_darwin: 20b2a3a3b70e43edae938624ce550a3cbf66a3d0 + sentry_flutter: 7d1f1df30f3768c411603ed449519bbb90a7d87b + share_plus: 8b6f8b3447e494cca5317c8c3073de39b3600d1f + shared_preferences_foundation: fcdcbc04712aee1108ac7fda236f363274528f78 + sqflite_darwin: 5a7236e3b501866c1c9befc6771dfd73ffb8702d sqlite3: 7559e33dae4c78538df563795af3a86fc887ee71 - sqlite3_flutter_libs: 5235ce0546528db87927a3ef1baff8b7d5107f0e - system_info_plus: 555ce7047fbbf29154726db942ae785c29211740 + sqlite3_flutter_libs: 58ae36c0dd086395d066b4fe4de9cdca83e717b3 + system_info_plus: 5393c8da281d899950d751713575fbf91c7709aa Toast: 1f5ea13423a1e6674c4abdac5be53587ae481c4e - ua_client_hints: 92fe0d139619b73ec9fcb46cc7e079a26178f586 - uni_links: ed8c961e47ed9ce42b6d91e1de8049e38a4b3152 - url_launcher_ios: 694010445543906933d732453a59da0a173ae33d - video_compress: f2133a07762889d67f0711ac831faa26f956980e - video_player_avfoundation: 2cef49524dd1f16c5300b9cd6efd9611ce03639b - video_thumbnail: b637e0ad5f588ca9945f6e2c927f73a69a661140 - volume_controller: ca1cde542ee70fad77d388f82e9616488110942b - wakelock_plus: 8c239121a007daa1d6759c6acdc507860273dd2f + ua_client_hints: aeabd123262c087f0ce151ef96fa3ab77bfc8b38 + uni_links: d97da20c7701486ba192624d99bffaaffcfc298a + url_launcher_ios: 5334b05cef931de560670eeae103fd3e431ac3fe + video_compress: fce97e4fb1dfd88175aa07d2ffc8a2f297f87fbe + video_player_avfoundation: 7c6c11d8470e1675df7397027218274b6d2360b3 + video_thumbnail: c4e2a3c539e247d4de13cd545344fd2d26ffafd1 + volume_controller: 531ddf792994285c9b17f9d8a7e4dcdd29b3eae9 + wakelock_plus: 8b09852c8876491e4b6d179e17dfe2a0b5f60d47 PODFILE CHECKSUM: 20e086e6008977d43a3d40260f3f9bffcac748dd diff --git a/mobile/pubspec.yaml b/mobile/pubspec.yaml index 9dce72bb2ef..66c82300b30 100644 --- a/mobile/pubspec.yaml +++ b/mobile/pubspec.yaml @@ -12,7 +12,7 @@ description: ente photos application # Read more about iOS versioning at # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html -version: 0.9.81+981 +version: 0.9.82+982 publish_to: none environment: From edb5e901e483e90cac213f102779536715e51bc7 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Wed, 22 Jan 2025 02:03:06 +0530 Subject: [PATCH 48/90] fix: use ffmpeg --- mobile/android/app/build.gradle | 2 +- .../gradle/wrapper/gradle-wrapper.properties | 4 +- mobile/ios/Podfile.lock | 116 +++++++++--------- mobile/ios/Runner.xcodeproj/project.pbxproj | 2 - mobile/lib/services/preview_video_store.dart | 37 +----- mobile/pubspec.lock | 9 -- mobile/pubspec.yaml | 8 +- 7 files changed, 66 insertions(+), 112 deletions(-) diff --git a/mobile/android/app/build.gradle b/mobile/android/app/build.gradle index ad09d00b949..0f52013db4f 100644 --- a/mobile/android/app/build.gradle +++ b/mobile/android/app/build.gradle @@ -28,7 +28,7 @@ if (keystorePropertiesFile.exists()) { } android { - compileSdkVersion 34 + compileSdkVersion 35 ndkVersion "26.0.10792818" sourceSets { diff --git a/mobile/android/gradle/wrapper/gradle-wrapper.properties b/mobile/android/gradle/wrapper/gradle-wrapper.properties index a7e3608ded7..86b8ba7660e 100644 --- a/mobile/android/gradle/wrapper/gradle-wrapper.properties +++ b/mobile/android/gradle/wrapper/gradle-wrapper.properties @@ -3,5 +3,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-all.zip -distributionSha256Sum=a8da5b02437a60819cad23e10fc7e9cf32bcb57029d9cb277e26eeff76ce014b +distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-bin.zip +distributionSha256Sum=9631d53cf3e74bfa726893aee1f8994fee4e060c401335946dba2156f440f24c diff --git a/mobile/ios/Podfile.lock b/mobile/ios/Podfile.lock index 53ed1a425f6..4fa09535339 100644 --- a/mobile/ios/Podfile.lock +++ b/mobile/ios/Podfile.lock @@ -233,8 +233,6 @@ PODS: - Flutter - url_launcher_ios (0.0.1): - Flutter - - video_compress (0.3.0): - - Flutter - video_player_avfoundation (0.0.1): - Flutter - FlutterMacOS @@ -299,7 +297,6 @@ DEPENDENCIES: - ua_client_hints (from `.symlinks/plugins/ua_client_hints/ios`) - uni_links (from `.symlinks/plugins/uni_links/ios`) - url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`) - - video_compress (from `.symlinks/plugins/video_compress/ios`) - video_player_avfoundation (from `.symlinks/plugins/video_player_avfoundation/darwin`) - video_thumbnail (from `.symlinks/plugins/video_thumbnail/ios`) - volume_controller (from `.symlinks/plugins/volume_controller/ios`) @@ -433,8 +430,6 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/uni_links/ios" url_launcher_ios: :path: ".symlinks/plugins/url_launcher_ios/ios" - video_compress: - :path: ".symlinks/plugins/video_compress/ios" video_player_avfoundation: :path: ".symlinks/plugins/video_player_avfoundation/darwin" video_thumbnail: @@ -445,83 +440,82 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/wakelock_plus/ios" SPEC CHECKSUMS: - background_fetch: 39f11371c0dce04b001c4bfd5e782bcccb0a85e2 - battery_info: 09f5c9ee65394f2291c8c6227bedff345b8a730c - connectivity_plus: 18382e7311ba19efcaee94442b23b32507b20695 - dart_ui_isolate: d5bcda83ca4b04f129d70eb90110b7a567aece14 - device_info_plus: c6fb39579d0f423935b0c9ce7ee2f44b71b9fce6 + background_fetch: 94b36ee293e82972852dba8ede1fbcd3bd3d9d57 + battery_info: a06b00c06a39bc94c92beebf600f1810cb6c8c87 + connectivity_plus: 2256d3e20624a7749ed21653aafe291a46446fee + dart_ui_isolate: 46f6714abe6891313267153ef6f9748d8ecfcab1 + device_info_plus: 335f3ce08d2e174b9fdc3db3db0f4e3b1f66bd89 ffmpeg-kit-ios-full-gpl: 80adc341962e55ef709e36baa8ed9a70cf4ea62b - ffmpeg_kit_flutter_full_gpl: 8d15c14c0c3aba616fac04fe44b3d27d02e3c330 - file_saver: 503e386464dbe118f630e17b4c2e1190fa0cf808 + ffmpeg_kit_flutter_full_gpl: ce18b888487c05c46ed252cd2e7956812f2e3bd1 + file_saver: 6cdbcddd690cb02b0c1a0c225b37cd805c2bf8b6 Firebase: 374a441a91ead896215703a674d58cdb3e9d772b - firebase_core: feb37e79f775c2bd08dd35e02d83678291317e10 - firebase_messaging: e2f0ba891b1509668c07f5099761518a5af8fe3c + firebase_core: 2337982fb78ee4d8d91e608b0a3d4f44346a93c8 + firebase_messaging: f3bddfa28c2cad70b3341bf461e987a24efd28d6 FirebaseCore: 48b0dd707581cf9c1a1220da68223fb0a562afaa FirebaseCoreInternal: d98ab91e2d80a56d7b246856a8885443b302c0c2 FirebaseInstallations: efc0946fc756e4d22d8113f7c761948120322e8c FirebaseMessaging: e1aca1fcc23e8b9eddb0e33f375ff90944623021 Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7 - flutter_email_sender: 02d7443217d8c41483223627972bfdc09f74276b - flutter_image_compress: 5a5e9aee05b6553048b8df1c3bc456d0afaac433 - flutter_inappwebview_ios: 6f63631e2c62a7c350263b13fa5427aedefe81d4 - flutter_local_notifications: 4cde75091f6327eb8517fa068a0a5950212d2086 - flutter_native_splash: f71420956eb811e6d310720fee915f1d42852e7a - flutter_secure_storage: 23fc622d89d073675f2eaa109381aefbcf5a49be - flutter_sodium: c84426b4de738514b5b66cfdeb8a06634e72fe0b - fluttertoast: e9a18c7be5413da53898f660530c56f35edfba9c + flutter_email_sender: cd533cdc7ea5eda6fabb2c7f78521c71207778a4 + flutter_image_compress: 4b058288a81f76e5e80340af37c709abafff34c4 + flutter_inappwebview_ios: b89ba3482b96fb25e00c967aae065701b66e9b99 + flutter_local_notifications: ad39620c743ea4c15127860f4b5641649a988100 + flutter_native_splash: 6cad9122ea0fad137d23137dd14b937f3e90b145 + flutter_secure_storage: 2c2ff13db9e0a5647389bff88b0ecac56e3f3418 + flutter_sodium: 152647449ba89a157fd48d7e293dcd6d29c6ab0e + fluttertoast: 76fea30fcf04176325f6864c87306927bd7d2038 GoogleDataTransport: aae35b7ea0c09004c3797d53c8c41f66f219d6a7 GoogleUtilities: 26a3abef001b6533cf678d3eb38fd3f614b7872d - home_widget: 0434835a4c9a75704264feff6be17ea40e0f0d57 - image_editor_common: d6f6644ae4a6de80481e89fe6d0a8c49e30b4b43 - image_picker_ios: c560581cceedb403a6ff17f2f816d7fea1421fc1 - in_app_purchase_storekit: 8c3b0b3eb1b0f04efbff401c3de6266d4258d433 - integration_test: 252f60fa39af5e17c3aa9899d35d908a0721b573 + home_widget: f169fc41fd807b4d46ab6615dc44d62adbf9f64f + image_editor_common: 3de87e7c4804f4ae24c8f8a998362b98c105cac1 + image_picker_ios: 7fe1ff8e34c1790d6fff70a32484959f563a928a + in_app_purchase_storekit: e126ef1b89e4a9fdf07e28f005f82632b4609437 + integration_test: 4a889634ef21a45d28d50d622cf412dc6d9f586e libwebp: 1786c9f4ff8a279e4dac1e8f385004d5fc253009 - local_auth_darwin: 66e40372f1c29f383a314c738c7446e2f7fdadc3 - local_auth_ios: 5046a18c018dd973247a0564496c8898dbb5adf9 + local_auth_darwin: 553ce4f9b16d3fdfeafce9cf042e7c9f77c1c391 + local_auth_ios: f7a1841beef3151d140a967c2e46f30637cdf451 Mantle: c5aa8794a29a022dfbbfc9799af95f477a69b62d - maps_launcher: 2e5b6a2d664ec6c27f82ffa81b74228d770ab203 - media_extension: 6d30dc1431ebaa63f43c397c37917b1a0a597a4c - media_kit_libs_ios_video: a5fe24bc7875ccd6378a0978c13185e1344651c1 - media_kit_native_event_loop: e6b2ab20cf0746eb1c33be961fcf79667304fa2a - media_kit_video: 5da63f157170e5bf303bf85453b7ef6971218a2e - motion_sensors: 03f55b7c637a7e365a0b5f9697a449f9059d5d91 - motionphoto: d4a432b8c8f22fb3ad966258597c0103c9c5ff16 - move_to_background: 39a5b79b26d577b0372cbe8a8c55e7aa9fcd3a2d + maps_launcher: edf829809ba9e894d70e569bab11c16352dedb45 + media_extension: a1fec16ee9c8241a6aef9613578ebf097d6c5e64 + media_kit_libs_ios_video: 5a18affdb97d1f5d466dc79988b13eff6c5e2854 + media_kit_native_event_loop: 5fba1a849a6c87a34985f1e178a0de5bd444a0cf + media_kit_video: 1746e198cb697d1ffb734b1d05ec429d1fcd1474 + motion_sensors: 741e702c17467b9569a92165dda8d4d88c6167f1 + motionphoto: 584b43031ead3060225cdff08fa49818879801d2 + move_to_background: 155f7bfbd34d43ad847cb630d2d2d87c17199710 nanopb: fad817b59e0457d11a5dfbde799381cd727c1275 - native_video_player: d12af78a1a4a8cf09775a5177d5b392def6fd23c - onnxruntime: e7c2ae44385191eaad5ae64c935a72debaddc997 + native_video_player: b65c58951ede2f93d103a25366bdebca95081265 + onnxruntime: f9b296392c96c42882be020a59dbeac6310d81b2 onnxruntime-c: a909204639a1f035f575127ac406f781ac797c9c onnxruntime-objc: b6fab0f1787aa6f7190c2013f03037df4718bd8b - open_mail_app: 794172f6a22cd16319d3ddaf45e945b2f74952b0 + open_mail_app: 06d5a4162866388a92b1df3deb96e56be20cf45c OrderedSet: e539b66b644ff081c73a262d24ad552a69be3a94 - package_info_plus: 115f4ad11e0698c8c1c5d8a689390df880f47e85 - path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46 - permission_handler_apple: 9878588469a2b0d0fc1e048d9f43605f92e6cec2 - photo_manager: ff695c7a1dd5bc379974953a2b5c0a293f7c4c8a - privacy_screen: 1a131c052ceb3c3659934b003b0d397c2381a24e + package_info_plus: 566e1b7a2f3900e4b0020914ad3fc051dcc95596 + path_provider_foundation: 080d55be775b7414fd5a5ef3ac137b97b097e564 + permission_handler_apple: 4ed2196e43d0651e8ff7ca3483a069d469701f2d + photo_manager: d2fbcc0f2d82458700ee6256a15018210a81d413 + privacy_screen: 3159a541f5d3a31bea916cfd4e58f9dc722b3fd4 PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47 - receive_sharing_intent: 79c848f5b045674ad60b9fea3bafea59962ad2c1 - screen_brightness_ios: 715ca807df953bf676d339f11464e438143ee625 + receive_sharing_intent: 222384f00ffe7e952bbfabaa9e3967cb87e5fe00 + screen_brightness_ios: 5ed898fa50fa82a26171c086ca5e28228f932576 SDWebImage: 73c6079366fea25fa4bb9640d5fb58f0893facd8 SDWebImageWebPCoder: e38c0a70396191361d60c092933e22c20d5b1380 Sentry: 38ed8bf38eab5812787274bf591e528074c19e02 - sentry_flutter: 7d1f1df30f3768c411603ed449519bbb90a7d87b - share_plus: 8b6f8b3447e494cca5317c8c3073de39b3600d1f - shared_preferences_foundation: fcdcbc04712aee1108ac7fda236f363274528f78 - sqflite_darwin: 5a7236e3b501866c1c9befc6771dfd73ffb8702d + sentry_flutter: a72ca0eb6e78335db7c4ddcddd1b9f6c8ed5b764 + share_plus: 50da8cb520a8f0f65671c6c6a99b3617ed10a58a + shared_preferences_foundation: 9e1978ff2562383bd5676f64ec4e9aa8fa06a6f7 + sqflite_darwin: 20b2a3a3b70e43edae938624ce550a3cbf66a3d0 sqlite3: 7559e33dae4c78538df563795af3a86fc887ee71 - sqlite3_flutter_libs: 58ae36c0dd086395d066b4fe4de9cdca83e717b3 - system_info_plus: 5393c8da281d899950d751713575fbf91c7709aa + sqlite3_flutter_libs: 5235ce0546528db87927a3ef1baff8b7d5107f0e + system_info_plus: 555ce7047fbbf29154726db942ae785c29211740 Toast: 1f5ea13423a1e6674c4abdac5be53587ae481c4e - ua_client_hints: aeabd123262c087f0ce151ef96fa3ab77bfc8b38 - uni_links: d97da20c7701486ba192624d99bffaaffcfc298a - url_launcher_ios: 5334b05cef931de560670eeae103fd3e431ac3fe - video_compress: fce97e4fb1dfd88175aa07d2ffc8a2f297f87fbe - video_player_avfoundation: 7c6c11d8470e1675df7397027218274b6d2360b3 - video_thumbnail: c4e2a3c539e247d4de13cd545344fd2d26ffafd1 - volume_controller: 531ddf792994285c9b17f9d8a7e4dcdd29b3eae9 - wakelock_plus: 8b09852c8876491e4b6d179e17dfe2a0b5f60d47 + ua_client_hints: 92fe0d139619b73ec9fcb46cc7e079a26178f586 + uni_links: ed8c961e47ed9ce42b6d91e1de8049e38a4b3152 + url_launcher_ios: 694010445543906933d732453a59da0a173ae33d + video_player_avfoundation: 2cef49524dd1f16c5300b9cd6efd9611ce03639b + video_thumbnail: b637e0ad5f588ca9945f6e2c927f73a69a661140 + volume_controller: ca1cde542ee70fad77d388f82e9616488110942b + wakelock_plus: 8c239121a007daa1d6759c6acdc507860273dd2f PODFILE CHECKSUM: 20e086e6008977d43a3d40260f3f9bffcac748dd diff --git a/mobile/ios/Runner.xcodeproj/project.pbxproj b/mobile/ios/Runner.xcodeproj/project.pbxproj index ee6a1f6c0b7..0d192bb03c8 100644 --- a/mobile/ios/Runner.xcodeproj/project.pbxproj +++ b/mobile/ios/Runner.xcodeproj/project.pbxproj @@ -338,7 +338,6 @@ "${BUILT_PRODUCTS_DIR}/ua_client_hints/ua_client_hints.framework", "${BUILT_PRODUCTS_DIR}/uni_links/uni_links.framework", "${BUILT_PRODUCTS_DIR}/url_launcher_ios/url_launcher_ios.framework", - "${BUILT_PRODUCTS_DIR}/video_compress/video_compress.framework", "${BUILT_PRODUCTS_DIR}/video_player_avfoundation/video_player_avfoundation.framework", "${BUILT_PRODUCTS_DIR}/video_thumbnail/video_thumbnail.framework", "${BUILT_PRODUCTS_DIR}/volume_controller/volume_controller.framework", @@ -434,7 +433,6 @@ "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/ua_client_hints.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/uni_links.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/url_launcher_ios.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/video_compress.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/video_player_avfoundation.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/video_thumbnail.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/volume_controller.framework", diff --git a/mobile/lib/services/preview_video_store.dart b/mobile/lib/services/preview_video_store.dart index 1f46a817272..509f4f00f7c 100644 --- a/mobile/lib/services/preview_video_store.dart +++ b/mobile/lib/services/preview_video_store.dart @@ -23,7 +23,6 @@ import "package:photos/utils/file_key.dart"; import "package:photos/utils/file_util.dart"; import "package:photos/utils/gzip.dart"; import "package:photos/utils/toast_util.dart"; -import "package:video_compress/video_compress.dart"; class PreviewVideoStore { PreviewVideoStore._privateConstructor(); @@ -34,22 +33,12 @@ class PreviewVideoStore { final _logger = Logger("PreviewVideoStore"); final cacheManager = DefaultCacheManager(); final videoCacheManager = VideoCacheManager.instance; - double _progress = 0; final files = {}; bool isUploading = false; final _dio = NetworkClient.instance.enteDio; - void init() { - VideoCompress.compressProgress$.subscribe((progress) { - if (kDebugMode) { - _progress = progress; - _logger.info("Compression progress: $progress"); - } - }); - } - - List get qualities => VideoQuality.values; + void init() {} Future chunkAndUploadVideo(BuildContext? ctx, EnteFile enteFile) async { if (!enteFile.isUploaded || !flagService.internalUser) return; @@ -72,14 +61,8 @@ class PreviewVideoStore { rethrow; } } - if (isUploading || VideoCompress.isCompressing) { + if (isUploading) { files.add(enteFile); - if (ctx != null && VideoCompress.isCompressing) { - showShortToast( - ctx, - "Another is being compressed ($_progress %), please wait", - ); - } return; } final String tempDir = Configuration.instance.getTempDirectory(); @@ -87,15 +70,6 @@ class PreviewVideoStore { "${tempDir}_${enteFile.uploadedFileID}_${newID("pv")}"; Directory(prefix).createSync(); _logger.info('Compressing video ${enteFile.displayName}'); - final mediaInfo = await VideoCompress.compressVideo( - file.path, - quality: VideoQuality.Res1280x720Quality, - bitRate: 2000000, - frameRate: 30, - ); - if (mediaInfo?.path == null) return; - _logger.info('CompressionDone ${enteFile.displayName}'); - final key = enc.Key.fromLength(16); final keyfile = File('$prefix/keyfile.key'); @@ -109,10 +83,11 @@ class PreviewVideoStore { ); final session = await FFmpegKit.execute( - '-i "${mediaInfo!.path}" ' + '-i "${file.path}" ' '-metadata:s:v:0 rotate=0 ' - '-c:v libx264 -crf 18 -preset veryfast ' - '-c:a copy -f hls -hls_time 10 -hls_flags single_file ' + '-vf "scale=-2:720,fps=30" ' + '-c:v libx264 -b:v 2000k -preset medium ' + '-c:a aac -b:a 128k -f hls -hls_time 10 -hls_flags single_file ' '-hls_list_size 0 -hls_key_info_file ${keyinfo.path} ' '$prefix/output.m3u8', ); diff --git a/mobile/pubspec.lock b/mobile/pubspec.lock index 61268393ef5..cc25b6a2142 100644 --- a/mobile/pubspec.lock +++ b/mobile/pubspec.lock @@ -2765,15 +2765,6 @@ packages: url: "https://pub.dev" source: hosted version: "2.1.4" - video_compress: - dependency: "direct main" - description: - path: "." - ref: prateekmedia-patch-1 - resolved-ref: "8bce37682e20da618ea155fca1b4756b22621882" - url: "https://github.com/prateekmedia/VideoCompress-forked.git" - source: git - version: "3.1.5" video_editor: dependency: "direct main" description: diff --git a/mobile/pubspec.yaml b/mobile/pubspec.yaml index 66c82300b30..e9bda5bfb66 100644 --- a/mobile/pubspec.yaml +++ b/mobile/pubspec.yaml @@ -100,7 +100,7 @@ dependencies: html_unescape: ^2.0.0 http: ^1.1.0 image: ^4.0.17 - image_editor: ^1.3.0 + image_editor: ^1.6.0 image_picker: ^1.1.1 in_app_purchase: ^3.0.7 intl: ^0.19.0 @@ -152,7 +152,7 @@ dependencies: path_provider: ^2.1.1 pedantic: ^1.9.2 permission_handler: ^11.0.1 - photo_manager: ^3.5.0 + photo_manager: ^3.5.3 photo_view: ^0.14.0 pinput: ^5.0.0 pointycastle: ^3.7.3 @@ -184,10 +184,6 @@ dependencies: uni_links: ^0.5.1 url_launcher: ^6.3.0 uuid: ^4.5.0 - video_compress: - git: - url: https://github.com/prateekmedia/VideoCompress-forked.git - ref: prateekmedia-patch-1 video_editor: git: url: https://github.com/prateekmedia/video_editor.git From 17c2bd24e4f383fbe224e11daed14fddc700840c Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Sat, 25 Jan 2025 23:19:19 +0530 Subject: [PATCH 49/90] fix: HDR to SDR conversion --- mobile/lib/services/preview_video_store.dart | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/mobile/lib/services/preview_video_store.dart b/mobile/lib/services/preview_video_store.dart index 509f4f00f7c..6b5e1dd81ef 100644 --- a/mobile/lib/services/preview_video_store.dart +++ b/mobile/lib/services/preview_video_store.dart @@ -85,7 +85,9 @@ class PreviewVideoStore { final session = await FFmpegKit.execute( '-i "${file.path}" ' '-metadata:s:v:0 rotate=0 ' - '-vf "scale=-2:720,fps=30" ' + '-vf "scale=-2:720,fps=30,format=yuv420p10le,zscale=transfer=linear,tonemap=tonemap=hable:desat=0:peak=10,zscale=transfer=bt709:matrix=bt709:primaries=bt709,format=yuv420p" ' + '-color_primaries bt709 -color_trc bt709 -colorspace bt709 ' + '-x264-params "colorprim=bt709:transfer=bt709:colormatrix=bt709" ' '-c:v libx264 -b:v 2000k -preset medium ' '-c:a aac -b:a 128k -f hls -hls_time 10 -hls_flags single_file ' '-hls_list_size 0 -hls_key_info_file ${keyinfo.path} ' From 858de20726dea389447d3dc34eae070b61323e5c Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Sat, 25 Jan 2025 23:21:19 +0530 Subject: [PATCH 50/90] chore: bump version --- mobile/pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mobile/pubspec.yaml b/mobile/pubspec.yaml index d651092ae9a..028346207af 100644 --- a/mobile/pubspec.yaml +++ b/mobile/pubspec.yaml @@ -12,7 +12,7 @@ description: ente photos application # Read more about iOS versioning at # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html -version: 0.9.83+983 +version: 0.9.84+984 publish_to: none environment: From 9e3d412e9921bd6ed3334628681a0c617ada5339 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Sun, 26 Jan 2025 03:03:41 +0530 Subject: [PATCH 51/90] fix: use sdk 34 --- mobile/android/app/build.gradle | 2 +- mobile/android/build.gradle | 5 +++++ mobile/android/gradle.properties | 1 - mobile/android/gradle/wrapper/gradle-wrapper.properties | 4 ++-- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/mobile/android/app/build.gradle b/mobile/android/app/build.gradle index 0f52013db4f..ad09d00b949 100644 --- a/mobile/android/app/build.gradle +++ b/mobile/android/app/build.gradle @@ -28,7 +28,7 @@ if (keystorePropertiesFile.exists()) { } android { - compileSdkVersion 35 + compileSdkVersion 34 ndkVersion "26.0.10792818" sourceSets { diff --git a/mobile/android/build.gradle b/mobile/android/build.gradle index ad35549805c..0552ef7fe44 100644 --- a/mobile/android/build.gradle +++ b/mobile/android/build.gradle @@ -12,6 +12,11 @@ allprojects { url "${project(':background_fetch').projectDir}/libs" } } + ext { + compileSdkVersion = 34 + targetSdkVersion = 34 + appCompatVersion = "1.7.0" + } } rootProject.buildDir = '../build' diff --git a/mobile/android/gradle.properties b/mobile/android/gradle.properties index ecdde07f904..ed508580fae 100644 --- a/mobile/android/gradle.properties +++ b/mobile/android/gradle.properties @@ -1,4 +1,3 @@ org.gradle.jvmargs=-Xmx4608m -android.enableR8=true android.useAndroidX=true android.enableJetifier=true diff --git a/mobile/android/gradle/wrapper/gradle-wrapper.properties b/mobile/android/gradle/wrapper/gradle-wrapper.properties index 86b8ba7660e..a7e3608ded7 100644 --- a/mobile/android/gradle/wrapper/gradle-wrapper.properties +++ b/mobile/android/gradle/wrapper/gradle-wrapper.properties @@ -3,5 +3,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-bin.zip -distributionSha256Sum=9631d53cf3e74bfa726893aee1f8994fee4e060c401335946dba2156f440f24c +distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-all.zip +distributionSha256Sum=a8da5b02437a60819cad23e10fc7e9cf32bcb57029d9cb277e26eeff76ce014b From 6aa3733111f6be0914810c36b967f7261f322d81 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Sun, 26 Jan 2025 13:27:58 +0530 Subject: [PATCH 52/90] Update pubspec.yaml --- mobile/pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mobile/pubspec.yaml b/mobile/pubspec.yaml index 028346207af..76d59dbcdb2 100644 --- a/mobile/pubspec.yaml +++ b/mobile/pubspec.yaml @@ -12,7 +12,7 @@ description: ente photos application # Read more about iOS versioning at # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html -version: 0.9.84+984 +version: 0.9.85+985 publish_to: none environment: From fc89b9bfc1078fede4257e5891a59504b55921b3 Mon Sep 17 00:00:00 2001 From: ashilkn Date: Tue, 28 Jan 2025 13:25:41 +0530 Subject: [PATCH 53/90] [mob][photos] Bump up to v0.9.86 --- mobile/pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mobile/pubspec.yaml b/mobile/pubspec.yaml index 76d59dbcdb2..e36266e7fef 100644 --- a/mobile/pubspec.yaml +++ b/mobile/pubspec.yaml @@ -12,7 +12,7 @@ description: ente photos application # Read more about iOS versioning at # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html -version: 0.9.85+985 +version: 0.9.86+986 publish_to: none environment: From f5ee666a52718863994b807e5dcdb5b7f3b56d12 Mon Sep 17 00:00:00 2001 From: ashilkn Date: Tue, 28 Jan 2025 13:27:37 +0530 Subject: [PATCH 54/90] [mob][photos] Auto generated changes --- mobile/lib/generated/intl/messages_ar.dart | 4 - mobile/lib/generated/intl/messages_be.dart | 4 - mobile/lib/generated/intl/messages_bg.dart | 7 +- mobile/lib/generated/intl/messages_ca.dart | 7 +- mobile/lib/generated/intl/messages_cs.dart | 6 +- mobile/lib/generated/intl/messages_da.dart | 228 ++++++++++++++- mobile/lib/generated/intl/messages_de.dart | 303 ++++++++++--------- mobile/lib/generated/intl/messages_el.dart | 6 +- mobile/lib/generated/intl/messages_en.dart | 300 +++++++++---------- mobile/lib/generated/intl/messages_es.dart | 313 ++++++++++---------- mobile/lib/generated/intl/messages_et.dart | 4 - mobile/lib/generated/intl/messages_fa.dart | 24 +- mobile/lib/generated/intl/messages_fr.dart | 325 +++++++++++---------- mobile/lib/generated/intl/messages_gu.dart | 7 +- mobile/lib/generated/intl/messages_he.dart | 136 +++++---- mobile/lib/generated/intl/messages_hi.dart | 4 - mobile/lib/generated/intl/messages_hu.dart | 4 - mobile/lib/generated/intl/messages_id.dart | 240 ++++++++------- mobile/lib/generated/intl/messages_it.dart | 300 ++++++++++--------- mobile/lib/generated/intl/messages_ja.dart | 264 +++++++++-------- mobile/lib/generated/intl/messages_km.dart | 7 +- mobile/lib/generated/intl/messages_ko.dart | 4 - mobile/lib/generated/intl/messages_lt.dart | 315 +++++++++++++------- mobile/lib/generated/intl/messages_ml.dart | 4 - mobile/lib/generated/intl/messages_nl.dart | 304 ++++++++++--------- mobile/lib/generated/intl/messages_no.dart | 60 ++-- mobile/lib/generated/intl/messages_pl.dart | 306 ++++++++++--------- mobile/lib/generated/intl/messages_pt.dart | 306 +++++++++---------- mobile/lib/generated/intl/messages_ro.dart | 304 ++++++++++--------- mobile/lib/generated/intl/messages_ru.dart | 272 +++++++++-------- mobile/lib/generated/intl/messages_sl.dart | 7 +- mobile/lib/generated/intl/messages_sv.dart | 76 +++-- mobile/lib/generated/intl/messages_ta.dart | 4 - mobile/lib/generated/intl/messages_te.dart | 7 +- mobile/lib/generated/intl/messages_th.dart | 40 ++- mobile/lib/generated/intl/messages_ti.dart | 7 +- mobile/lib/generated/intl/messages_tr.dart | 220 +++++++------- mobile/lib/generated/intl/messages_uk.dart | 304 ++++++++++--------- mobile/lib/generated/intl/messages_vi.dart | 309 ++++++++++---------- mobile/lib/generated/intl/messages_zh.dart | 325 +++++++++++---------- 40 files changed, 2945 insertions(+), 2722 deletions(-) diff --git a/mobile/lib/generated/intl/messages_ar.dart b/mobile/lib/generated/intl/messages_ar.dart index 645721693e0..1ce7ba622c8 100644 --- a/mobile/lib/generated/intl/messages_ar.dart +++ b/mobile/lib/generated/intl/messages_ar.dart @@ -41,10 +41,6 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("مفتاح الاسترداد غير صحيح"), "invalidEmailAddress": MessageLookupByLibrary.simpleMessage( "عنوان البريد الإلكتروني غير صالح"), - "link": MessageLookupByLibrary.simpleMessage("Link"), - "linkEmail": MessageLookupByLibrary.simpleMessage("Link email"), - "noEnteAccountExclamation": - MessageLookupByLibrary.simpleMessage("No Ente account!"), "noRecoveryKey": MessageLookupByLibrary.simpleMessage("ما من مفتاح استرداد؟"), "noRecoveryKeyNoDecryption": MessageLookupByLibrary.simpleMessage( diff --git a/mobile/lib/generated/intl/messages_be.dart b/mobile/lib/generated/intl/messages_be.dart index 3cb73d7e92f..a4a49d3b643 100644 --- a/mobile/lib/generated/intl/messages_be.dart +++ b/mobile/lib/generated/intl/messages_be.dart @@ -156,8 +156,6 @@ class MessageLookup extends MessageLookupByLibrary { "kindlyHelpUsWithThisInformation": MessageLookupByLibrary.simpleMessage( "Калі ласка, дапамажыце нам з гэтай інфармацыяй"), "lightTheme": MessageLookupByLibrary.simpleMessage("Светлая"), - "link": MessageLookupByLibrary.simpleMessage("Link"), - "linkEmail": MessageLookupByLibrary.simpleMessage("Link email"), "lockscreen": MessageLookupByLibrary.simpleMessage("Экран блакіроўкі"), "logInLabel": MessageLookupByLibrary.simpleMessage("Увайсці"), "loginTerms": MessageLookupByLibrary.simpleMessage( @@ -170,8 +168,6 @@ class MessageLookup extends MessageLookupByLibrary { "never": MessageLookupByLibrary.simpleMessage("Ніколі"), "noDuplicates": MessageLookupByLibrary.simpleMessage("✨ Няма дублікатаў"), - "noEnteAccountExclamation": - MessageLookupByLibrary.simpleMessage("No Ente account!"), "noRecoveryKey": MessageLookupByLibrary.simpleMessage("Няма ключа аднаўлення?"), "noRecoveryKeyNoDecryption": MessageLookupByLibrary.simpleMessage( diff --git a/mobile/lib/generated/intl/messages_bg.dart b/mobile/lib/generated/intl/messages_bg.dart index 5530097185a..e887127f40f 100644 --- a/mobile/lib/generated/intl/messages_bg.dart +++ b/mobile/lib/generated/intl/messages_bg.dart @@ -21,10 +21,5 @@ class MessageLookup extends MessageLookupByLibrary { String get localeName => 'bg'; final messages = _notInlinedMessages(_notInlinedMessages); - static Map _notInlinedMessages(_) => { - "link": MessageLookupByLibrary.simpleMessage("Link"), - "linkEmail": MessageLookupByLibrary.simpleMessage("Link email"), - "noEnteAccountExclamation": - MessageLookupByLibrary.simpleMessage("No Ente account!") - }; + static Map _notInlinedMessages(_) => {}; } diff --git a/mobile/lib/generated/intl/messages_ca.dart b/mobile/lib/generated/intl/messages_ca.dart index 03a5af3af14..84dea987b01 100644 --- a/mobile/lib/generated/intl/messages_ca.dart +++ b/mobile/lib/generated/intl/messages_ca.dart @@ -21,10 +21,5 @@ class MessageLookup extends MessageLookupByLibrary { String get localeName => 'ca'; final messages = _notInlinedMessages(_notInlinedMessages); - static Map _notInlinedMessages(_) => { - "link": MessageLookupByLibrary.simpleMessage("Link"), - "linkEmail": MessageLookupByLibrary.simpleMessage("Link email"), - "noEnteAccountExclamation": - MessageLookupByLibrary.simpleMessage("No Ente account!") - }; + static Map _notInlinedMessages(_) => {}; } diff --git a/mobile/lib/generated/intl/messages_cs.dart b/mobile/lib/generated/intl/messages_cs.dart index c65701ef73d..226e365e9c3 100644 --- a/mobile/lib/generated/intl/messages_cs.dart +++ b/mobile/lib/generated/intl/messages_cs.dart @@ -26,10 +26,6 @@ class MessageLookup extends MessageLookupByLibrary { "Jaký je váš hlavní důvod, proč mažete svůj účet?"), "checkInboxAndSpamFolder": MessageLookupByLibrary.simpleMessage( "Zkontrolujte prosím svou doručenou poštu (a spam) pro dokončení ověření"), - "incorrectRecoveryKeyBody": MessageLookupByLibrary.simpleMessage(""), - "link": MessageLookupByLibrary.simpleMessage("Link"), - "linkEmail": MessageLookupByLibrary.simpleMessage("Link email"), - "noEnteAccountExclamation": - MessageLookupByLibrary.simpleMessage("No Ente account!") + "incorrectRecoveryKeyBody": MessageLookupByLibrary.simpleMessage("") }; } diff --git a/mobile/lib/generated/intl/messages_da.dart b/mobile/lib/generated/intl/messages_da.dart index ed6af4ac51f..8eef3e4a80b 100644 --- a/mobile/lib/generated/intl/messages_da.dart +++ b/mobile/lib/generated/intl/messages_da.dart @@ -20,31 +20,83 @@ typedef String MessageIfAbsent(String messageStr, List args); class MessageLookup extends MessageLookupByLibrary { String get localeName => 'da'; - static String m3(count, formattedCount) => + static String m3(user) => + "${user} vil ikke kunne tilføje flere billeder til dette album\n\nDe vil stadig kunne fjerne eksisterende billeder tilføjet af dem"; + + static String m4(storageAmountInGB) => + "${storageAmountInGB} GB hver gang nogen tilmelder sig et betalt abonnement og anvender din kode"; + + static String m5(count, formattedCount) => "${Intl.plural(count, zero: 'ingen minder', one: '${formattedCount} minde', other: '${formattedCount} minder')}"; - static String m4(count) => "${count} valgt"; + static String m0(passwordStrengthValue) => + "Kodeordets styrke: ${passwordStrengthValue}"; + + static String m6(count) => "${count} valgt"; - static String m5(verificationID) => + static String m7(verificationID) => "Hey, kan du bekræfte, at dette er dit ente.io verifikation ID: ${verificationID}"; + static String m1(storageAmountInGB) => "${storageAmountInGB} GB"; + + static String m8(storageAmountInGB) => "De får også ${storageAmountInGB} GB"; + + static String m2(email) => + "Vi har sendt en email til ${email}"; + final messages = _notInlinedMessages(_notInlinedMessages); static Map _notInlinedMessages(_) => { "accountWelcomeBack": MessageLookupByLibrary.simpleMessage("Velkommen tilbage!"), + "ackPasswordLostWarning": MessageLookupByLibrary.simpleMessage( + "Jeg forstår at hvis jeg mister min adgangskode kan jeg miste mine data, da mine data er end-to-end krypteret."), "activeSessions": MessageLookupByLibrary.simpleMessage("Aktive sessioner"), + "addMore": MessageLookupByLibrary.simpleMessage("Tilføj flere"), "addOnPageSubtitle": MessageLookupByLibrary.simpleMessage("Oplysninger om tilføjelser"), + "addedAs": MessageLookupByLibrary.simpleMessage("Tilføjet som"), + "addingToFavorites": + MessageLookupByLibrary.simpleMessage("Tilføjer til favoritter..."), + "advancedSettings": MessageLookupByLibrary.simpleMessage("Avanceret"), + "after1Day": MessageLookupByLibrary.simpleMessage("Efter 1 dag"), + "after1Hour": MessageLookupByLibrary.simpleMessage("Efter 1 time"), + "after1Month": MessageLookupByLibrary.simpleMessage("Efter 1 måned"), + "after1Week": MessageLookupByLibrary.simpleMessage("Efter 1 uge"), + "after1Year": MessageLookupByLibrary.simpleMessage("Efter 1 år"), + "albumOwner": MessageLookupByLibrary.simpleMessage("Ejer"), + "allowDownloads": + MessageLookupByLibrary.simpleMessage("Tillad downloads"), "askDeleteReason": MessageLookupByLibrary.simpleMessage( "Hvad er hovedårsagen til, at du sletter din konto?"), "backedUpFolders": MessageLookupByLibrary.simpleMessage("Sikkerhedskopierede mapper"), + "backupStatusDescription": MessageLookupByLibrary.simpleMessage( + "Elementer, der er blevet sikkerhedskopieret, vil blive vist her"), + "canNotOpenBody": MessageLookupByLibrary.simpleMessage( + "Beklager, dette album kan ikke åbnes i appen."), + "canOnlyRemoveFilesOwnedByYou": MessageLookupByLibrary.simpleMessage( + "Kan kun fjerne filer ejet af dig"), "cancel": MessageLookupByLibrary.simpleMessage("Annuller"), + "cannotAddMorePhotosAfterBecomingViewer": m3, + "cannotDeleteSharedFiles": + MessageLookupByLibrary.simpleMessage("Kan ikke slette delte filer"), + "changeEmail": + MessageLookupByLibrary.simpleMessage("Skift email adresse"), + "changePasswordTitle": + MessageLookupByLibrary.simpleMessage("Skift adgangskode"), + "checkInboxAndSpamFolder": MessageLookupByLibrary.simpleMessage( + "Tjek venligst din indbakke (og spam) for at færdiggøre verificeringen"), + "clearIndexes": MessageLookupByLibrary.simpleMessage("Ryd indekser"), + "collectPhotos": + MessageLookupByLibrary.simpleMessage("Indsaml billeder"), "confirmAccountDeletion": MessageLookupByLibrary.simpleMessage("Bekræft Sletning Af Konto"), "confirmPassword": MessageLookupByLibrary.simpleMessage("Bekræft adgangskode"), + "contactSupport": + MessageLookupByLibrary.simpleMessage("Kontakt support"), + "continueLabel": MessageLookupByLibrary.simpleMessage("Fortsæt"), "copypasteThisCodentoYourAuthenticatorApp": MessageLookupByLibrary.simpleMessage( "Kopiér denne kode\ntil din autentificeringsapp"), @@ -53,11 +105,15 @@ class MessageLookup extends MessageLookupByLibrary { "createAccount": MessageLookupByLibrary.simpleMessage("Opret konto"), "createNewAccount": MessageLookupByLibrary.simpleMessage("Opret en ny konto"), + "creatingLink": + MessageLookupByLibrary.simpleMessage("Opretter link..."), + "decrypting": MessageLookupByLibrary.simpleMessage("Dekrypterer..."), "deleteAccount": MessageLookupByLibrary.simpleMessage("Slet konto"), "deleteAccountFeedbackPrompt": MessageLookupByLibrary.simpleMessage( "Vi er kede af at du forlader os. Forklar venligst hvorfor, så vi kan forbedre os."), "deleteAccountPermanentlyButton": MessageLookupByLibrary.simpleMessage("Slet konto permanent"), + "deleteAlbum": MessageLookupByLibrary.simpleMessage("Slet album"), "deleteEmailRequest": MessageLookupByLibrary.simpleMessage( "Send venligst en email til account-deletion@ente.io fra din registrerede email adresse."), "deleteReason1": MessageLookupByLibrary.simpleMessage( @@ -68,14 +124,50 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Min grund er ikke angivet"), "deleteRequestSLAText": MessageLookupByLibrary.simpleMessage( "Din anmodning vil blive behandlet inden for 72 timer."), + "deleteSharedAlbum": + MessageLookupByLibrary.simpleMessage("Slet delt album?"), + "details": MessageLookupByLibrary.simpleMessage("Detaljer"), "developerSettingsWarning": MessageLookupByLibrary.simpleMessage( "Er du sikker på, at du vil ændre udviklerindstillingerne?"), + "disableDownloadWarningTitle": + MessageLookupByLibrary.simpleMessage("Bemærk venligst"), + "discover_food": MessageLookupByLibrary.simpleMessage("Mad"), + "discover_identity": MessageLookupByLibrary.simpleMessage("Identitet"), + "discover_memes": MessageLookupByLibrary.simpleMessage("Memes"), + "discover_notes": MessageLookupByLibrary.simpleMessage("Noter"), + "discover_pets": MessageLookupByLibrary.simpleMessage("Kæledyr"), + "discover_screenshots": + MessageLookupByLibrary.simpleMessage("Skærmbilleder"), + "discover_selfies": MessageLookupByLibrary.simpleMessage("Selfier"), + "discover_sunset": MessageLookupByLibrary.simpleMessage("Solnedgang"), + "discover_wallpapers": + MessageLookupByLibrary.simpleMessage("Baggrundsbilleder"), + "eligible": MessageLookupByLibrary.simpleMessage("kvalificeret"), "email": MessageLookupByLibrary.simpleMessage("Email"), + "emailAlreadyRegistered": MessageLookupByLibrary.simpleMessage( + "E-mail er allerede registreret."), + "emailNotRegistered": + MessageLookupByLibrary.simpleMessage("E-mail er ikke registreret."), + "encryption": MessageLookupByLibrary.simpleMessage("Kryptering"), + "encryptionKeys": + MessageLookupByLibrary.simpleMessage("Krypteringsnøgler"), + "enterEmail": + MessageLookupByLibrary.simpleMessage("Indtast email adresse"), + "enterNewPasswordToEncrypt": MessageLookupByLibrary.simpleMessage( + "Indtast en ny adgangskode vi kan bruge til at kryptere dine data"), + "enterPassword": + MessageLookupByLibrary.simpleMessage("Indtast adgangskode"), + "enterPasswordToEncrypt": MessageLookupByLibrary.simpleMessage( + "Indtast en adgangskode vi kan bruge til at kryptere dine data"), "enterPin": MessageLookupByLibrary.simpleMessage("Indtast PIN"), "enterValidEmail": MessageLookupByLibrary.simpleMessage( "Indtast venligst en gyldig email adresse."), "enterYourEmailAddress": MessageLookupByLibrary.simpleMessage("Indtast din email adresse"), + "enterYourPassword": + MessageLookupByLibrary.simpleMessage("Indtast adgangskode"), + "enterYourRecoveryKey": MessageLookupByLibrary.simpleMessage( + "Indtast din gendannelsesnøgle"), "familyPlanPortalTitle": MessageLookupByLibrary.simpleMessage("Familie"), "feedback": MessageLookupByLibrary.simpleMessage("Feedback"), @@ -85,59 +177,175 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Find folk hurtigt ved navn"), "forgotPassword": MessageLookupByLibrary.simpleMessage("Glemt adgangskode"), + "freeStorageOnReferralSuccess": m4, + "freeUpDeviceSpace": + MessageLookupByLibrary.simpleMessage("Frigør enhedsplads"), + "freeUpDeviceSpaceDesc": MessageLookupByLibrary.simpleMessage( + "Spar plads på din enhed ved at rydde filer, der allerede er sikkerhedskopieret."), + "generatingEncryptionKeys": MessageLookupByLibrary.simpleMessage( + "Genererer krypteringsnøgler..."), + "help": MessageLookupByLibrary.simpleMessage("Hjælp"), + "howItWorks": + MessageLookupByLibrary.simpleMessage("Sådan fungerer det"), "incorrectPasswordTitle": MessageLookupByLibrary.simpleMessage("Forkert adgangskode"), "incorrectRecoveryKeyBody": MessageLookupByLibrary.simpleMessage( "Den gendannelsesnøgle du indtastede er forkert"), + "incorrectRecoveryKeyTitle": + MessageLookupByLibrary.simpleMessage("Forkert gendannelsesnøgle"), + "indexedItems": + MessageLookupByLibrary.simpleMessage("Indekserede elementer"), + "insecureDevice": MessageLookupByLibrary.simpleMessage("Usikker enhed"), "invalidEmailAddress": MessageLookupByLibrary.simpleMessage("Ugyldig email adresse"), "invite": MessageLookupByLibrary.simpleMessage("Inviter"), + "inviteYourFriends": + MessageLookupByLibrary.simpleMessage("Inviter dine venner"), + "itemsWillBeRemovedFromAlbum": MessageLookupByLibrary.simpleMessage( + "Valgte elementer vil blive fjernet fra dette album"), + "keepPhotos": MessageLookupByLibrary.simpleMessage("Behold billeder"), "kindlyHelpUsWithThisInformation": MessageLookupByLibrary.simpleMessage( "Hjælp os venligst med disse oplysninger"), - "link": MessageLookupByLibrary.simpleMessage("Link"), - "linkEmail": MessageLookupByLibrary.simpleMessage("Link email"), + "linkEnabled": MessageLookupByLibrary.simpleMessage("Aktiveret"), + "linkExpired": MessageLookupByLibrary.simpleMessage("Udløbet"), + "linkNeverExpires": MessageLookupByLibrary.simpleMessage("Aldrig"), + "loadingModel": + MessageLookupByLibrary.simpleMessage("Downloader modeller..."), + "lockButtonLabel": MessageLookupByLibrary.simpleMessage("Lås"), + "logInLabel": MessageLookupByLibrary.simpleMessage("Log ind"), "loggingOut": MessageLookupByLibrary.simpleMessage("Logger ud..."), "longPressAnEmailToVerifyEndToEndEncryption": MessageLookupByLibrary.simpleMessage( "Langt tryk på en e-mail for at bekræfte slutningen af krypteringen."), + "machineLearning": MessageLookupByLibrary.simpleMessage("Maskinlæring"), + "magicSearch": MessageLookupByLibrary.simpleMessage("Magisk søgning"), "manage": MessageLookupByLibrary.simpleMessage("Administrér"), - "memoryCount": m3, + "manageDeviceStorageDesc": MessageLookupByLibrary.simpleMessage( + "Gennemgå og ryd lokal cache-lagring."), + "memoryCount": m5, + "mlConsent": + MessageLookupByLibrary.simpleMessage("Aktiver maskinlæring"), + "mlConsentPrivacy": MessageLookupByLibrary.simpleMessage( + "Klik her for flere detaljer om denne funktion i vores privatlivspolitik"), + "mlConsentTitle": + MessageLookupByLibrary.simpleMessage("Aktiver maskinlæring?"), "mlIndexingDescription": MessageLookupByLibrary.simpleMessage( "Bemærk venligst, at maskinindlæring vil resultere i en højere båndbredde og batteriforbrug, indtil alle elementer er indekseret. Overvej at bruge desktop app til hurtigere indeksering, vil alle resultater blive synkroniseret automatisk."), "moments": MessageLookupByLibrary.simpleMessage("Øjeblikke"), + "never": MessageLookupByLibrary.simpleMessage("Aldrig"), + "newAlbum": MessageLookupByLibrary.simpleMessage("Nyt album"), "next": MessageLookupByLibrary.simpleMessage("Næste"), - "noEnteAccountExclamation": - MessageLookupByLibrary.simpleMessage("No Ente account!"), + "noRecoveryKey": + MessageLookupByLibrary.simpleMessage("Ingen gendannelsesnøgle?"), "ok": MessageLookupByLibrary.simpleMessage("Ok"), "oops": MessageLookupByLibrary.simpleMessage("Ups"), + "oopsSomethingWentWrong": + MessageLookupByLibrary.simpleMessage("Ups, noget gik galt"), "password": MessageLookupByLibrary.simpleMessage("Adgangskode"), + "passwordChangedSuccessfully": MessageLookupByLibrary.simpleMessage( + "Adgangskoden er blevet ændret"), + "passwordStrength": m0, + "passwordWarning": MessageLookupByLibrary.simpleMessage( + "Vi gemmer ikke denne adgangskode, så hvis du glemmer den kan vi ikke dekryptere dine data"), + "pendingItems": + MessageLookupByLibrary.simpleMessage("Afventende elementer"), + "peopleUsingYourCode": MessageLookupByLibrary.simpleMessage( + "Personer, der bruger din kode"), "pleaseContactSupportAndWeWillBeHappyToHelp": MessageLookupByLibrary.simpleMessage( "Kontakt support@ente.io og vi vil være glade for at hjælpe!"), + "pleaseWait": MessageLookupByLibrary.simpleMessage("Vent venligst..."), + "privacyPolicyTitle": + MessageLookupByLibrary.simpleMessage("Privatlivspolitik"), + "recoverButton": MessageLookupByLibrary.simpleMessage("Gendan"), + "referralStep2": MessageLookupByLibrary.simpleMessage( + "2. De tilmelder sig en betalt plan"), + "removeFromAlbum": + MessageLookupByLibrary.simpleMessage("Fjern fra album"), + "removeFromAlbumTitle": + MessageLookupByLibrary.simpleMessage("Fjern fra album?"), + "removeLink": MessageLookupByLibrary.simpleMessage("Fjern link"), + "removeParticipant": + MessageLookupByLibrary.simpleMessage("Fjern deltager"), + "removeWithQuestionMark": + MessageLookupByLibrary.simpleMessage("Fjern?"), + "removingFromFavorites": + MessageLookupByLibrary.simpleMessage("Fjerner fra favoritter..."), "renameFile": MessageLookupByLibrary.simpleMessage("Omdøb fil"), + "resendEmail": MessageLookupByLibrary.simpleMessage("Send email igen"), + "resetPasswordTitle": + MessageLookupByLibrary.simpleMessage("Nulstil adgangskode"), + "retry": MessageLookupByLibrary.simpleMessage("Prøv igen"), "scanThisBarcodeWithnyourAuthenticatorApp": MessageLookupByLibrary.simpleMessage( "Skan denne QR-kode med godkendelses-appen"), "searchHint1": MessageLookupByLibrary.simpleMessage("Hurtig, søgning på enheden"), + "selectAll": MessageLookupByLibrary.simpleMessage("Vælg alle"), + "selectFoldersForBackup": MessageLookupByLibrary.simpleMessage( + "Vælg mapper til sikkerhedskopiering"), "selectReason": MessageLookupByLibrary.simpleMessage("Vælg årsag"), - "selectedPhotos": m4, + "selectedFoldersWillBeEncryptedAndBackedUp": + MessageLookupByLibrary.simpleMessage( + "Valgte mapper vil blive krypteret og sikkerhedskopieret"), + "selectedPhotos": m6, "sendEmail": MessageLookupByLibrary.simpleMessage("Send email"), - "shareTextConfirmOthersVerificationID": m5, + "sendLink": MessageLookupByLibrary.simpleMessage("Send link"), + "setPasswordTitle": + MessageLookupByLibrary.simpleMessage("Angiv adgangskode"), + "shareTextConfirmOthersVerificationID": m7, + "showMemories": MessageLookupByLibrary.simpleMessage("Vis minder"), + "signUpTerms": MessageLookupByLibrary.simpleMessage( + "Jeg er enig i betingelser for brug og privatlivspolitik"), + "skip": MessageLookupByLibrary.simpleMessage("Spring over"), "somethingWentWrongPleaseTryAgain": MessageLookupByLibrary.simpleMessage( "Noget gik galt, prøv venligst igen"), + "sorryCouldNotAddToFavorites": MessageLookupByLibrary.simpleMessage( + "Beklager, kunne ikke føje til favoritter!"), + "sorryCouldNotRemoveFromFavorites": + MessageLookupByLibrary.simpleMessage( + "Beklager, kunne ikke fjernes fra favoritter!"), + "sorryWeCouldNotGenerateSecureKeysOnThisDevicennplease": + MessageLookupByLibrary.simpleMessage( + "Beklager, vi kunne ikke generere sikre krypteringsnøgler på denne enhed.\n\nForsøg venligst at oprette en konto fra en anden enhed."), + "status": MessageLookupByLibrary.simpleMessage("Status"), + "storageInGB": m1, + "strongStrength": MessageLookupByLibrary.simpleMessage("Stærkt"), "subscribe": MessageLookupByLibrary.simpleMessage("Abonner"), + "subscribeToEnableSharing": MessageLookupByLibrary.simpleMessage( + "Du skal have et aktivt betalt abonnement for at aktivere deling."), + "tapToEnterCode": + MessageLookupByLibrary.simpleMessage("Tryk for at indtaste kode"), "terminateSession": MessageLookupByLibrary.simpleMessage("Afslut session?"), + "termsOfServicesTitle": + MessageLookupByLibrary.simpleMessage("Betingelser"), + "theyAlsoGetXGb": m8, + "thisDevice": MessageLookupByLibrary.simpleMessage("Denne enhed"), "thisWillLogYouOutOfTheFollowingDevice": MessageLookupByLibrary.simpleMessage( "Dette vil logge dig ud af følgende enhed:"), "thisWillLogYouOutOfThisDevice": MessageLookupByLibrary.simpleMessage( "Dette vil logge dig ud af denne enhed!"), + "toResetVerifyEmail": MessageLookupByLibrary.simpleMessage( + "For at nulstille din adgangskode, bekræft venligst din email adresse."), + "unavailableReferralCode": MessageLookupByLibrary.simpleMessage( + "Beklager, denne kode er ikke tilgængelig."), + "unselectAll": MessageLookupByLibrary.simpleMessage("Fravælg alle"), + "updatingFolderSelection": + MessageLookupByLibrary.simpleMessage("Opdaterer mappevalg..."), "verify": MessageLookupByLibrary.simpleMessage("Bekræft"), "viewAddOnButton": MessageLookupByLibrary.simpleMessage("Vis tilføjelser"), + "waitingForWifi": + MessageLookupByLibrary.simpleMessage("Venter på Wi-fi..."), + "weHaveSendEmailTo": m2, + "weakStrength": MessageLookupByLibrary.simpleMessage("Svagt"), + "welcomeBack": + MessageLookupByLibrary.simpleMessage("Velkommen tilbage!"), + "yesRemove": MessageLookupByLibrary.simpleMessage("Ja, fjern"), + "you": MessageLookupByLibrary.simpleMessage("Dig"), "yourAccountHasBeenDeleted": MessageLookupByLibrary.simpleMessage("Din konto er blevet slettet") }; diff --git a/mobile/lib/generated/intl/messages_de.dart b/mobile/lib/generated/intl/messages_de.dart index 8dc25d7b82e..2dd499d0ff7 100644 --- a/mobile/lib/generated/intl/messages_de.dart +++ b/mobile/lib/generated/intl/messages_de.dart @@ -20,37 +20,37 @@ typedef String MessageIfAbsent(String messageStr, List args); class MessageLookup extends MessageLookupByLibrary { String get localeName => 'de'; - static String m6(count) => + static String m9(count) => "${Intl.plural(count, one: 'Teilnehmer', other: 'Teilnehmer')} hinzufügen"; - static String m7(count) => + static String m10(count) => "${Intl.plural(count, one: 'Element hinzufügen', other: 'Elemente hinzufügen')}"; - static String m8(storageAmount, endDate) => + static String m11(storageAmount, endDate) => "Dein ${storageAmount} Add-on ist gültig bis ${endDate}"; - static String m9(count) => + static String m12(count) => "${Intl.plural(count, one: 'Betrachter', other: 'Betrachter')} hinzufügen"; - static String m10(emailOrName) => "Von ${emailOrName} hinzugefügt"; + static String m13(emailOrName) => "Von ${emailOrName} hinzugefügt"; - static String m11(albumName) => "Erfolgreich zu ${albumName} hinzugefügt"; + static String m14(albumName) => "Erfolgreich zu ${albumName} hinzugefügt"; - static String m12(count) => + static String m15(count) => "${Intl.plural(count, zero: 'Keine Teilnehmer', one: '1 Teilnehmer', other: '${count} Teilnehmer')}"; - static String m13(versionValue) => "Version: ${versionValue}"; + static String m16(versionValue) => "Version: ${versionValue}"; - static String m14(freeAmount, storageUnit) => + static String m17(freeAmount, storageUnit) => "${freeAmount} ${storageUnit} frei"; - static String m15(paymentProvider) => + static String m18(paymentProvider) => "Bitte kündige dein aktuelles Abo über ${paymentProvider} zuerst"; - static String m16(user) => + static String m3(user) => "Der Nutzer \"${user}\" wird keine weiteren Fotos zum Album hinzufügen können.\n\nJedoch kann er weiterhin vorhandene Bilder, welche durch ihn hinzugefügt worden sind, wieder entfernen"; - static String m17(isFamilyMember, storageAmountInGb) => + static String m19(isFamilyMember, storageAmountInGb) => "${Intl.select(isFamilyMember, { 'true': 'Deine Familiengruppe hat bereits ${storageAmountInGb} GB erhalten', @@ -58,181 +58,181 @@ class MessageLookup extends MessageLookupByLibrary { 'other': 'Du hast bereits ${storageAmountInGb} GB erhalten!', })}"; - static String m18(albumName) => + static String m20(albumName) => "Kollaborativer Link für ${albumName} erstellt"; - static String m19(count) => + static String m21(count) => "${Intl.plural(count, zero: '0 Mitarbeiter hinzugefügt', one: '1 Mitarbeiter hinzugefügt', other: '${count} Mitarbeiter hinzugefügt')}"; - static String m20(email, numOfDays) => + static String m22(email, numOfDays) => "Du bist dabei, ${email} als vertrauenswürdigen Kontakt hinzuzufügen. Die Person wird in der Lage sein, dein Konto wiederherzustellen, wenn du für ${numOfDays} Tage abwesend bist."; - static String m21(familyAdminEmail) => + static String m23(familyAdminEmail) => "Bitte kontaktiere ${familyAdminEmail} um dein Abo zu verwalten"; - static String m22(provider) => + static String m24(provider) => "Bitte kontaktiere uns über support@ente.io, um dein ${provider} Abo zu verwalten."; - static String m23(endpoint) => "Verbunden mit ${endpoint}"; + static String m25(endpoint) => "Verbunden mit ${endpoint}"; - static String m24(count) => + static String m26(count) => "${Intl.plural(count, one: 'Lösche ${count} Element', other: 'Lösche ${count} Elemente')}"; - static String m25(currentlyDeleting, totalCount) => + static String m27(currentlyDeleting, totalCount) => "Lösche ${currentlyDeleting} / ${totalCount}"; - static String m26(albumName) => + static String m28(albumName) => "Der öffentliche Link zum Zugriff auf \"${albumName}\" wird entfernt."; - static String m27(supportEmail) => + static String m29(supportEmail) => "Bitte sende eine E-Mail an ${supportEmail} von deiner registrierten E-Mail-Adresse"; - static String m28(count, storageSaved) => + static String m30(count, storageSaved) => "Du hast ${Intl.plural(count, one: '${count} duplizierte Datei', other: '${count} dupliziere Dateien')} gelöscht und (${storageSaved}!) freigegeben"; - static String m29(count, formattedSize) => + static String m31(count, formattedSize) => "${count} Dateien, ${formattedSize} jede"; - static String m30(newEmail) => "E-Mail-Adresse geändert zu ${newEmail}"; + static String m32(newEmail) => "E-Mail-Adresse geändert zu ${newEmail}"; - static String m31(email) => + static String m33(email) => "${email} hat kein Ente-Konto.\n\nSende eine Einladung, um Fotos zu teilen."; - static String m32(text) => "Zusätzliche Fotos für ${text} gefunden"; + static String m34(text) => "Zusätzliche Fotos für ${text} gefunden"; - static String m33(count, formattedNumber) => + static String m35(count, formattedNumber) => "${Intl.plural(count, one: '1 Datei', other: '${formattedNumber} Dateien')} auf diesem Gerät wurde(n) sicher gespeichert"; - static String m34(count, formattedNumber) => + static String m36(count, formattedNumber) => "${Intl.plural(count, one: '1 Datei', other: '${formattedNumber} Dateien')} in diesem Album wurde(n) sicher gespeichert"; - static String m35(storageAmountInGB) => + static String m4(storageAmountInGB) => "${storageAmountInGB} GB jedes Mal, wenn sich jemand mit deinem Code für einen bezahlten Tarif anmeldet"; - static String m36(endDate) => "Kostenlose Demo verfügbar bis zum ${endDate}"; + static String m37(endDate) => "Kostenlose Demo verfügbar bis zum ${endDate}"; - static String m37(count) => + static String m38(count) => "Du kannst immernoch über Ente ${Intl.plural(count, one: 'darauf', other: 'auf sie')} zugreifen, solange du ein aktives Abo hast"; - static String m38(sizeInMBorGB) => "${sizeInMBorGB} freigeben"; + static String m39(sizeInMBorGB) => "${sizeInMBorGB} freigeben"; - static String m39(count, formattedSize) => + static String m40(count, formattedSize) => "${Intl.plural(count, one: 'Es kann vom Gerät gelöscht werden, um ${formattedSize} freizugeben', other: 'Sie können vom Gerät gelöscht werden, um ${formattedSize} freizugeben')}"; - static String m40(currentlyProcessing, totalCount) => + static String m41(currentlyProcessing, totalCount) => "Verarbeite ${currentlyProcessing} / ${totalCount}"; - static String m41(count) => + static String m42(count) => "${Intl.plural(count, one: '${count} Objekt', other: '${count} Objekte')}"; - static String m42(email) => + static String m43(email) => "${email} hat dich eingeladen, ein vertrauenswürdiger Kontakt zu werden"; - static String m43(expiryTime) => "Link läuft am ${expiryTime} ab"; + static String m44(expiryTime) => "Link läuft am ${expiryTime} ab"; - static String m3(count, formattedCount) => + static String m5(count, formattedCount) => "${Intl.plural(count, zero: 'keine Erinnerungsstücke', one: '${formattedCount} Erinnerung', other: '${formattedCount} Erinnerungsstücke')}"; - static String m44(count) => + static String m45(count) => "${Intl.plural(count, one: 'Element verschieben', other: 'Elemente verschieben')}"; - static String m45(albumName) => "Erfolgreich zu ${albumName} hinzugefügt"; + static String m46(albumName) => "Erfolgreich zu ${albumName} hinzugefügt"; - static String m46(personName) => "Keine Vorschläge für ${personName}"; + static String m47(personName) => "Keine Vorschläge für ${personName}"; - static String m47(name) => "Nicht ${name}?"; + static String m48(name) => "Nicht ${name}?"; - static String m48(familyAdminEmail) => + static String m49(familyAdminEmail) => "Bitte wende Dich an ${familyAdminEmail}, um den Code zu ändern."; static String m0(passwordStrengthValue) => "Passwortstärke: ${passwordStrengthValue}"; - static String m49(providerName) => + static String m50(providerName) => "Bitte kontaktiere den Support von ${providerName}, falls etwas abgebucht wurde"; - static String m50(count) => + static String m51(count) => "${Intl.plural(count, zero: '0 Fotos', one: '1 Foto', other: '${count} Fotos')}"; - static String m51(endDate) => + static String m52(endDate) => "Kostenlose Testversion gültig bis ${endDate}.\nDu kannst anschließend ein bezahltes Paket auswählen."; - static String m52(toEmail) => "Bitte sende uns eine E-Mail an ${toEmail}"; + static String m53(toEmail) => "Bitte sende uns eine E-Mail an ${toEmail}"; - static String m53(toEmail) => "Bitte sende die Protokolle an ${toEmail}"; + static String m54(toEmail) => "Bitte sende die Protokolle an ${toEmail}"; - static String m54(folderName) => "Verarbeite ${folderName}..."; + static String m55(folderName) => "Verarbeite ${folderName}..."; - static String m55(storeName) => "Bewerte uns auf ${storeName}"; + static String m56(storeName) => "Bewerte uns auf ${storeName}"; - static String m56(days, email) => + static String m57(days, email) => "Du kannst nach ${days} Tagen auf das Konto zugreifen. Eine Benachrichtigung wird an ${email} versendet."; - static String m57(email) => + static String m58(email) => "Du kannst jetzt das Konto von ${email} wiederherstellen, indem du ein neues Passwort setzt."; - static String m58(email) => + static String m59(email) => "${email} versucht, dein Konto wiederherzustellen."; - static String m59(storageInGB) => + static String m60(storageInGB) => "3. Ihr beide erhaltet ${storageInGB} GB* kostenlos"; - static String m60(userEmail) => + static String m61(userEmail) => "${userEmail} wird aus diesem geteilten Album entfernt\n\nAlle von ihnen hinzugefügte Fotos werden ebenfalls aus dem Album entfernt"; - static String m61(endDate) => "Erneuert am ${endDate}"; + static String m62(endDate) => "Erneuert am ${endDate}"; - static String m62(count) => + static String m63(count) => "${Intl.plural(count, one: '${count} Ergebnis gefunden', other: '${count} Ergebnisse gefunden')}"; - static String m63(snapshotLength, searchLength) => + static String m64(snapshotLength, searchLength) => "Abschnittslänge stimmt nicht überein: ${snapshotLength} != ${searchLength}"; - static String m4(count) => "${count} ausgewählt"; + static String m6(count) => "${count} ausgewählt"; - static String m64(count, yourCount) => + static String m65(count, yourCount) => "${count} ausgewählt (${yourCount} von Ihnen)"; - static String m65(verificationID) => + static String m66(verificationID) => "Hier ist meine Verifizierungs-ID: ${verificationID} für ente.io."; - static String m5(verificationID) => + static String m7(verificationID) => "Hey, kannst du bestätigen, dass dies deine ente.io Verifizierungs-ID ist: ${verificationID}"; - static String m66(referralCode, referralStorageInGB) => + static String m67(referralCode, referralStorageInGB) => "Ente Weiterempfehlungs-Code: ${referralCode} \n\nEinlösen unter Einstellungen → Allgemein → Weiterempfehlungen, um ${referralStorageInGB} GB kostenlos zu erhalten, sobald Sie einen kostenpflichtigen Tarif abgeschlossen haben\n\nhttps://ente.io"; - static String m67(numberOfPeople) => + static String m68(numberOfPeople) => "${Intl.plural(numberOfPeople, zero: 'Teile mit bestimmten Personen', one: 'Teilen mit 1 Person', other: 'Teilen mit ${numberOfPeople} Personen')}"; - static String m68(emailIDs) => "Geteilt mit ${emailIDs}"; + static String m69(emailIDs) => "Geteilt mit ${emailIDs}"; - static String m69(fileType) => + static String m70(fileType) => "Dieses ${fileType} wird von deinem Gerät gelöscht."; - static String m70(fileType) => + static String m71(fileType) => "Diese Datei ist sowohl in Ente als auch auf deinem Gerät."; - static String m71(fileType) => "Diese Datei wird von Ente gelöscht."; + static String m72(fileType) => "Diese Datei wird von Ente gelöscht."; static String m1(storageAmountInGB) => "${storageAmountInGB} GB"; - static String m72( + static String m73( usedAmount, usedStorageUnit, totalAmount, totalStorageUnit) => "${usedAmount} ${usedStorageUnit} von ${totalAmount} ${totalStorageUnit} verwendet"; - static String m73(id) => + static String m74(id) => "Dein ${id} ist bereits mit einem anderen Ente-Konto verknüpft.\nWenn du deine ${id} mit diesem Konto verwenden möchtest, kontaktiere bitte unseren Support"; - static String m74(endDate) => "Dein Abo endet am ${endDate}"; + static String m75(endDate) => "Dein Abo endet am ${endDate}"; - static String m75(completed, total) => + static String m76(completed, total) => "${completed}/${total} Erinnerungsstücke gesichert"; - static String m76(ignoreReason) => + static String m77(ignoreReason) => "Zum Hochladen tippen, Hochladen wird derzeit ignoriert, da ${ignoreReason}"; - static String m77(storageAmountInGB) => + static String m8(storageAmountInGB) => "Diese erhalten auch ${storageAmountInGB} GB"; static String m78(email) => "Dies ist ${email}s Verifizierungs-ID"; @@ -291,11 +291,11 @@ class MessageLookup extends MessageLookupByLibrary { "Neue E-Mail-Adresse hinzufügen"), "addCollaborator": MessageLookupByLibrary.simpleMessage("Bearbeiter hinzufügen"), - "addCollaborators": m6, + "addCollaborators": m9, "addFiles": MessageLookupByLibrary.simpleMessage("Dateien hinzufügen"), "addFromDevice": MessageLookupByLibrary.simpleMessage("Vom Gerät hinzufügen"), - "addItem": m7, + "addItem": m10, "addLocation": MessageLookupByLibrary.simpleMessage("Ort hinzufügen"), "addLocationButton": MessageLookupByLibrary.simpleMessage("Hinzufügen"), "addMore": MessageLookupByLibrary.simpleMessage("Mehr hinzufügen"), @@ -307,7 +307,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Neue Person hinzufügen"), "addOnPageSubtitle": MessageLookupByLibrary.simpleMessage("Details der Add-ons"), - "addOnValidTill": m8, + "addOnValidTill": m11, "addOns": MessageLookupByLibrary.simpleMessage("Add-ons"), "addPhotos": MessageLookupByLibrary.simpleMessage("Fotos hinzufügen"), "addSelected": @@ -320,12 +320,12 @@ class MessageLookup extends MessageLookupByLibrary { "addTrustedContact": MessageLookupByLibrary.simpleMessage( "Vertrauenswürdigen Kontakt hinzufügen"), "addViewer": MessageLookupByLibrary.simpleMessage("Album teilen"), - "addViewers": m9, + "addViewers": m12, "addYourPhotosNow": MessageLookupByLibrary.simpleMessage("Füge deine Foto jetzt hinzu"), "addedAs": MessageLookupByLibrary.simpleMessage("Hinzugefügt als"), - "addedBy": m10, - "addedSuccessfullyTo": m11, + "addedBy": m13, + "addedSuccessfullyTo": m14, "addingToFavorites": MessageLookupByLibrary.simpleMessage( "Wird zu Favoriten hinzugefügt..."), "advanced": MessageLookupByLibrary.simpleMessage("Erweitert"), @@ -336,7 +336,7 @@ class MessageLookup extends MessageLookupByLibrary { "after1Week": MessageLookupByLibrary.simpleMessage("Nach 1 Woche"), "after1Year": MessageLookupByLibrary.simpleMessage("Nach 1 Jahr"), "albumOwner": MessageLookupByLibrary.simpleMessage("Besitzer"), - "albumParticipantsCount": m12, + "albumParticipantsCount": m15, "albumTitle": MessageLookupByLibrary.simpleMessage("Albumtitel"), "albumUpdated": MessageLookupByLibrary.simpleMessage("Album aktualisiert"), @@ -386,7 +386,7 @@ class MessageLookup extends MessageLookupByLibrary { "appLock": MessageLookupByLibrary.simpleMessage("App-Sperre"), "appLockDescriptions": MessageLookupByLibrary.simpleMessage( "Wähle zwischen dem Standard-Sperrbildschirm deines Gerätes und einem eigenen Sperrbildschirm mit PIN oder Passwort."), - "appVersion": m13, + "appVersion": m16, "appleId": MessageLookupByLibrary.simpleMessage("Apple ID"), "apply": MessageLookupByLibrary.simpleMessage("Anwenden"), "applyCodeTitle": MessageLookupByLibrary.simpleMessage("Code nutzen"), @@ -470,7 +470,7 @@ class MessageLookup extends MessageLookupByLibrary { "autoPairDesc": MessageLookupByLibrary.simpleMessage( "Automatisches Verbinden funktioniert nur mit Geräten, die Chromecast unterstützen."), "available": MessageLookupByLibrary.simpleMessage("Verfügbar"), - "availableStorageSpace": m14, + "availableStorageSpace": m17, "backedUpFolders": MessageLookupByLibrary.simpleMessage("Gesicherte Ordner"), "backup": MessageLookupByLibrary.simpleMessage("Backup"), @@ -510,10 +510,10 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Wiederherstellung abbrechen"), "cancelAccountRecoveryBody": MessageLookupByLibrary.simpleMessage( "Bist du sicher, dass du die Wiederherstellung abbrechen möchtest?"), - "cancelOtherSubscription": m15, + "cancelOtherSubscription": m18, "cancelSubscription": MessageLookupByLibrary.simpleMessage("Abonnement kündigen"), - "cannotAddMorePhotosAfterBecomingViewer": m16, + "cannotAddMorePhotosAfterBecomingViewer": m3, "cannotDeleteSharedFiles": MessageLookupByLibrary.simpleMessage( "Konnte geteilte Dateien nicht löschen"), "castAlbum": MessageLookupByLibrary.simpleMessage("Album übertragen"), @@ -564,7 +564,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Freien Speicher einlösen"), "claimMore": MessageLookupByLibrary.simpleMessage("Mehr einlösen!"), "claimed": MessageLookupByLibrary.simpleMessage("Eingelöst"), - "claimedStorageSoFar": m17, + "claimedStorageSoFar": m19, "cleanUncategorized": MessageLookupByLibrary.simpleMessage("Unkategorisiert leeren"), "cleanUncategorizedDescription": MessageLookupByLibrary.simpleMessage( @@ -593,12 +593,12 @@ class MessageLookup extends MessageLookupByLibrary { "Erstelle einen Link, mit dem andere Fotos in dem geteilten Album sehen und selbst welche hinzufügen können - ohne dass sie die ein Ente-Konto oder die App benötigen. Ideal um gemeinsam Fotos von Events zu sammeln."), "collaborativeLink": MessageLookupByLibrary.simpleMessage("Gemeinschaftlicher Link"), - "collaborativeLinkCreatedFor": m18, + "collaborativeLinkCreatedFor": m20, "collaborator": MessageLookupByLibrary.simpleMessage("Bearbeiter"), "collaboratorsCanAddPhotosAndVideosToTheSharedAlbum": MessageLookupByLibrary.simpleMessage( "Bearbeiter können Fotos & Videos zu dem geteilten Album hinzufügen."), - "collaboratorsSuccessfullyAdded": m19, + "collaboratorsSuccessfullyAdded": m21, "collageLayout": MessageLookupByLibrary.simpleMessage("Layout"), "collageSaved": MessageLookupByLibrary.simpleMessage( "Collage in Galerie gespeichert"), @@ -615,7 +615,7 @@ class MessageLookup extends MessageLookupByLibrary { "Bist du sicher, dass du die Zwei-Faktor-Authentifizierung (2FA) deaktivieren willst?"), "confirmAccountDeletion": MessageLookupByLibrary.simpleMessage("Kontolöschung bestätigen"), - "confirmAddingTrustedContact": m20, + "confirmAddingTrustedContact": m22, "confirmDeletePrompt": MessageLookupByLibrary.simpleMessage( "Ja, ich möchte dieses Konto und alle enthaltenen Daten über alle Apps hinweg endgültig löschen."), "confirmPassword": @@ -628,10 +628,10 @@ class MessageLookup extends MessageLookupByLibrary { "Bestätige deinen Wiederherstellungsschlüssel"), "connectToDevice": MessageLookupByLibrary.simpleMessage("Mit Gerät verbinden"), - "contactFamilyAdmin": m21, + "contactFamilyAdmin": m23, "contactSupport": MessageLookupByLibrary.simpleMessage("Support kontaktieren"), - "contactToManageSubscription": m22, + "contactToManageSubscription": m24, "contacts": MessageLookupByLibrary.simpleMessage("Kontakte"), "contents": MessageLookupByLibrary.simpleMessage("Inhalte"), "continueLabel": MessageLookupByLibrary.simpleMessage("Weiter"), @@ -679,7 +679,7 @@ class MessageLookup extends MessageLookupByLibrary { "currentlyRunning": MessageLookupByLibrary.simpleMessage("läuft gerade"), "custom": MessageLookupByLibrary.simpleMessage("Benutzerdefiniert"), - "customEndpoint": m23, + "customEndpoint": m25, "darkTheme": MessageLookupByLibrary.simpleMessage("Dunkel"), "dayToday": MessageLookupByLibrary.simpleMessage("Heute"), "dayYesterday": MessageLookupByLibrary.simpleMessage("Gestern"), @@ -717,11 +717,11 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Vom Gerät löschen"), "deleteFromEnte": MessageLookupByLibrary.simpleMessage("Von Ente löschen"), - "deleteItemCount": m24, + "deleteItemCount": m26, "deleteLocation": MessageLookupByLibrary.simpleMessage("Standort löschen"), "deletePhotos": MessageLookupByLibrary.simpleMessage("Fotos löschen"), - "deleteProgress": m25, + "deleteProgress": m27, "deleteReason1": MessageLookupByLibrary.simpleMessage( "Es fehlt eine zentrale Funktion, die ich benötige"), "deleteReason2": MessageLookupByLibrary.simpleMessage( @@ -759,7 +759,7 @@ class MessageLookup extends MessageLookupByLibrary { "Zuschauer können weiterhin Screenshots oder mit anderen externen Programmen Kopien der Bilder machen."), "disableDownloadWarningTitle": MessageLookupByLibrary.simpleMessage("Bitte beachten Sie:"), - "disableLinkMessage": m26, + "disableLinkMessage": m28, "disableTwofactor": MessageLookupByLibrary.simpleMessage( "Zweiten Faktor (2FA) deaktivieren"), "disablingTwofactorAuthentication": @@ -802,9 +802,9 @@ class MessageLookup extends MessageLookupByLibrary { "Herunterladen fehlgeschlagen"), "downloading": MessageLookupByLibrary.simpleMessage("Wird heruntergeladen..."), - "dropSupportEmail": m27, - "duplicateFileCountWithStorageSaved": m28, - "duplicateItemsGroup": m29, + "dropSupportEmail": m29, + "duplicateFileCountWithStorageSaved": m30, + "duplicateItemsGroup": m31, "edit": MessageLookupByLibrary.simpleMessage("Bearbeiten"), "editLocation": MessageLookupByLibrary.simpleMessage("Standort bearbeiten"), @@ -820,8 +820,8 @@ class MessageLookup extends MessageLookupByLibrary { "email": MessageLookupByLibrary.simpleMessage("E-Mail"), "emailAlreadyRegistered": MessageLookupByLibrary.simpleMessage( "E-Mail ist bereits registriert."), - "emailChangedTo": m30, - "emailNoEnteAccount": m31, + "emailChangedTo": m32, + "emailNoEnteAccount": m33, "emailNotRegistered": MessageLookupByLibrary.simpleMessage("E-Mail nicht registriert."), "emailVerificationToggle": @@ -906,7 +906,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Daten exportieren"), "extraPhotosFound": MessageLookupByLibrary.simpleMessage("Zusätzliche Fotos gefunden"), - "extraPhotosFoundFor": m32, + "extraPhotosFoundFor": m34, "faceNotClusteredYet": MessageLookupByLibrary.simpleMessage( "Gesicht ist noch nicht gruppiert, bitte komm später zurück"), "faceRecognition": @@ -956,8 +956,8 @@ class MessageLookup extends MessageLookupByLibrary { "fileTypes": MessageLookupByLibrary.simpleMessage("Dateitypen"), "fileTypesAndNames": MessageLookupByLibrary.simpleMessage("Dateitypen und -namen"), - "filesBackedUpFromDevice": m33, - "filesBackedUpInAlbum": m34, + "filesBackedUpFromDevice": m35, + "filesBackedUpInAlbum": m36, "filesDeleted": MessageLookupByLibrary.simpleMessage("Dateien gelöscht"), "filesSavedToGallery": MessageLookupByLibrary.simpleMessage( @@ -975,28 +975,28 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Gesichter gefunden"), "freeStorageClaimed": MessageLookupByLibrary.simpleMessage( "Kostenlos hinzugefügter Speicherplatz"), - "freeStorageOnReferralSuccess": m35, + "freeStorageOnReferralSuccess": m4, "freeStorageUsable": MessageLookupByLibrary.simpleMessage( "Freier Speicherplatz nutzbar"), "freeTrial": MessageLookupByLibrary.simpleMessage("Kostenlose Testphase"), - "freeTrialValidTill": m36, - "freeUpAccessPostDelete": m37, - "freeUpAmount": m38, + "freeTrialValidTill": m37, + "freeUpAccessPostDelete": m38, + "freeUpAmount": m39, "freeUpDeviceSpace": MessageLookupByLibrary.simpleMessage("Gerätespeicher freiräumen"), "freeUpDeviceSpaceDesc": MessageLookupByLibrary.simpleMessage( "Spare Speicherplatz auf deinem Gerät, indem du Dateien löschst, die bereits gesichert wurden."), "freeUpSpace": MessageLookupByLibrary.simpleMessage("Speicherplatz freigeben"), - "freeUpSpaceSaving": m39, + "freeUpSpaceSaving": m40, "gallery": MessageLookupByLibrary.simpleMessage("Galerie"), "galleryMemoryLimitInfo": MessageLookupByLibrary.simpleMessage( "Bis zu 1000 Erinnerungsstücke angezeigt in der Galerie"), "general": MessageLookupByLibrary.simpleMessage("Allgemein"), "generatingEncryptionKeys": MessageLookupByLibrary.simpleMessage( "Generierung von Verschlüsselungscodes..."), - "genericProgress": m40, + "genericProgress": m41, "goToSettings": MessageLookupByLibrary.simpleMessage("Zu den Einstellungen"), "googlePlayId": MessageLookupByLibrary.simpleMessage("Google Play ID"), @@ -1082,7 +1082,7 @@ class MessageLookup extends MessageLookupByLibrary { "itLooksLikeSomethingWentWrongPleaseRetryAfterSome": MessageLookupByLibrary.simpleMessage( "Etwas ist schiefgelaufen. Bitte versuche es später noch einmal. Sollte der Fehler weiter bestehen, kontaktiere unser Supportteam."), - "itemCount": m41, + "itemCount": m42, "itemsShowTheNumberOfDaysRemainingBeforePermanentDeletion": MessageLookupByLibrary.simpleMessage( "Elemente zeigen die Anzahl der Tage bis zum dauerhaften Löschen an"), @@ -1113,7 +1113,7 @@ class MessageLookup extends MessageLookupByLibrary { "legacy": MessageLookupByLibrary.simpleMessage("Digitales Erbe"), "legacyAccounts": MessageLookupByLibrary.simpleMessage("Digital geerbte Konten"), - "legacyInvite": m42, + "legacyInvite": m43, "legacyPageDesc": MessageLookupByLibrary.simpleMessage( "Das digitale Erbe erlaubt vertrauenswürdigen Kontakten den Zugriff auf dein Konto in deiner Abwesenheit."), "legacyPageDesc2": MessageLookupByLibrary.simpleMessage( @@ -1124,10 +1124,9 @@ class MessageLookup extends MessageLookupByLibrary { "linkCopiedToClipboard": MessageLookupByLibrary.simpleMessage( "Link in Zwischenablage kopiert"), "linkDeviceLimit": MessageLookupByLibrary.simpleMessage("Geräte-Limit"), - "linkEmail": MessageLookupByLibrary.simpleMessage("Link email"), "linkEnabled": MessageLookupByLibrary.simpleMessage("Aktiviert"), "linkExpired": MessageLookupByLibrary.simpleMessage("Abgelaufen"), - "linkExpiresOn": m43, + "linkExpiresOn": m44, "linkExpiry": MessageLookupByLibrary.simpleMessage("Ablaufdatum des Links"), "linkHasExpired": @@ -1218,7 +1217,7 @@ class MessageLookup extends MessageLookupByLibrary { "maps": MessageLookupByLibrary.simpleMessage("Karten"), "mastodon": MessageLookupByLibrary.simpleMessage("Mastodon"), "matrix": MessageLookupByLibrary.simpleMessage("Matrix"), - "memoryCount": m3, + "memoryCount": m5, "merchandise": MessageLookupByLibrary.simpleMessage("Merchandise"), "mergeWithExisting": MessageLookupByLibrary.simpleMessage( "Mit vorhandenem zusammenführen"), @@ -1248,12 +1247,12 @@ class MessageLookup extends MessageLookupByLibrary { "moreDetails": MessageLookupByLibrary.simpleMessage("Weitere Details"), "mostRecent": MessageLookupByLibrary.simpleMessage("Neuste"), "mostRelevant": MessageLookupByLibrary.simpleMessage("Nach Relevanz"), - "moveItem": m44, + "moveItem": m45, "moveToAlbum": MessageLookupByLibrary.simpleMessage("Zum Album verschieben"), "moveToHiddenAlbum": MessageLookupByLibrary.simpleMessage( "Zu verstecktem Album verschieben"), - "movedSuccessfullyTo": m45, + "movedSuccessfullyTo": m46, "movedToTrash": MessageLookupByLibrary.simpleMessage( "In den Papierkorb verschoben"), "movingFilesToAlbum": MessageLookupByLibrary.simpleMessage( @@ -1282,7 +1281,7 @@ class MessageLookup extends MessageLookupByLibrary { "noDuplicates": MessageLookupByLibrary.simpleMessage("✨ Keine Duplikate"), "noEnteAccountExclamation": - MessageLookupByLibrary.simpleMessage("No Ente account!"), + MessageLookupByLibrary.simpleMessage("Kein Ente-Konto!"), "noExifData": MessageLookupByLibrary.simpleMessage("Keine Exif-Daten"), "noFacesFound": MessageLookupByLibrary.simpleMessage("Keine Gesichter gefunden"), @@ -1306,10 +1305,10 @@ class MessageLookup extends MessageLookupByLibrary { "noResults": MessageLookupByLibrary.simpleMessage("Keine Ergebnisse"), "noResultsFound": MessageLookupByLibrary.simpleMessage("Keine Ergebnisse gefunden"), - "noSuggestionsForPerson": m46, + "noSuggestionsForPerson": m47, "noSystemLockFound": MessageLookupByLibrary.simpleMessage("Keine Systemsperre gefunden"), - "notPersonLabel": m47, + "notPersonLabel": m48, "nothingSharedWithYouYet": MessageLookupByLibrary.simpleMessage("Noch nichts mit Dir geteilt"), "nothingToSeeHere": MessageLookupByLibrary.simpleMessage( @@ -1320,7 +1319,7 @@ class MessageLookup extends MessageLookupByLibrary { "onDevice": MessageLookupByLibrary.simpleMessage("Auf dem Gerät"), "onEnte": MessageLookupByLibrary.simpleMessage( "Auf ente"), - "onlyFamilyAdminCanChangeCode": m48, + "onlyFamilyAdminCanChangeCode": m49, "onlyThem": MessageLookupByLibrary.simpleMessage("Nur diese"), "oops": MessageLookupByLibrary.simpleMessage("Hoppla"), "oopsCouldNotSaveEdits": MessageLookupByLibrary.simpleMessage( @@ -1368,7 +1367,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Zahlung fehlgeschlagen"), "paymentFailedMessage": MessageLookupByLibrary.simpleMessage( "Leider ist deine Zahlung fehlgeschlagen. Wende dich an unseren Support und wir helfen dir weiter!"), - "paymentFailedTalkToProvider": m49, + "paymentFailedTalkToProvider": m50, "pendingItems": MessageLookupByLibrary.simpleMessage("Ausstehende Elemente"), "pendingSync": @@ -1392,14 +1391,14 @@ class MessageLookup extends MessageLookupByLibrary { "photosAddedByYouWillBeRemovedFromTheAlbum": MessageLookupByLibrary.simpleMessage( "Von dir hinzugefügte Fotos werden vom Album entfernt"), - "photosCount": m50, + "photosCount": m51, "pickCenterPoint": MessageLookupByLibrary.simpleMessage("Mittelpunkt auswählen"), "pinAlbum": MessageLookupByLibrary.simpleMessage("Album anheften"), "pinLock": MessageLookupByLibrary.simpleMessage("PIN-Sperre"), "playOnTv": MessageLookupByLibrary.simpleMessage( "Album auf dem Fernseher wiedergeben"), - "playStoreFreeTrialValidTill": m51, + "playStoreFreeTrialValidTill": m52, "playstoreSubscription": MessageLookupByLibrary.simpleMessage("PlayStore Abo"), "pleaseCheckYourInternetConnectionAndTryAgain": @@ -1411,14 +1410,14 @@ class MessageLookup extends MessageLookupByLibrary { "pleaseContactSupportIfTheProblemPersists": MessageLookupByLibrary.simpleMessage( "Bitte wenden Sie sich an den Support, falls das Problem weiterhin besteht"), - "pleaseEmailUsAt": m52, + "pleaseEmailUsAt": m53, "pleaseGrantPermissions": MessageLookupByLibrary.simpleMessage( "Bitte erteile die nötigen Berechtigungen"), "pleaseLoginAgain": MessageLookupByLibrary.simpleMessage("Bitte logge dich erneut ein"), "pleaseSelectQuickLinksToRemove": MessageLookupByLibrary.simpleMessage( "Bitte wähle die zu entfernenden schnellen Links"), - "pleaseSendTheLogsTo": m53, + "pleaseSendTheLogsTo": m54, "pleaseTryAgain": MessageLookupByLibrary.simpleMessage("Bitte versuche es erneut"), "pleaseVerifyTheCodeYouHaveEntered": @@ -1447,7 +1446,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Privates Teilen"), "proceed": MessageLookupByLibrary.simpleMessage("Fortfahren"), "processed": MessageLookupByLibrary.simpleMessage("Verarbeitet"), - "processingImport": m54, + "processingImport": m55, "publicLinkCreated": MessageLookupByLibrary.simpleMessage("Öffentlicher Link erstellt"), "publicLinkEnabled": @@ -1457,7 +1456,7 @@ class MessageLookup extends MessageLookupByLibrary { "raiseTicket": MessageLookupByLibrary.simpleMessage("Ticket erstellen"), "rateTheApp": MessageLookupByLibrary.simpleMessage("App bewerten"), "rateUs": MessageLookupByLibrary.simpleMessage("Bewerte uns"), - "rateUsOnStore": m55, + "rateUsOnStore": m56, "recover": MessageLookupByLibrary.simpleMessage("Wiederherstellen"), "recoverAccount": MessageLookupByLibrary.simpleMessage("Konto wiederherstellen"), @@ -1467,7 +1466,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Konto wiederherstellen"), "recoveryInitiated": MessageLookupByLibrary.simpleMessage("Wiederherstellung gestartet"), - "recoveryInitiatedDesc": m56, + "recoveryInitiatedDesc": m57, "recoveryKey": MessageLookupByLibrary.simpleMessage( "Wiederherstellungs-Schlüssel"), "recoveryKeyCopiedToClipboard": MessageLookupByLibrary.simpleMessage( @@ -1482,12 +1481,12 @@ class MessageLookup extends MessageLookupByLibrary { "Wiederherstellungs-Schlüssel überprüft"), "recoveryKeyVerifyReason": MessageLookupByLibrary.simpleMessage( "Dein Wiederherstellungsschlüssel ist die einzige Möglichkeit, auf deine Fotos zuzugreifen, solltest du dein Passwort vergessen. Du findest ihn unter Einstellungen > Konto.\n\nBitte gib deinen Wiederherstellungsschlüssel hier ein, um sicherzugehen, dass du ihn korrekt gesichert hast."), - "recoveryReady": m57, + "recoveryReady": m58, "recoverySuccessful": MessageLookupByLibrary.simpleMessage( "Wiederherstellung erfolgreich!"), "recoveryWarning": MessageLookupByLibrary.simpleMessage( "Ein vertrauenswürdiger Kontakt versucht, auf dein Konto zuzugreifen"), - "recoveryWarningBody": m58, + "recoveryWarningBody": m59, "recreatePasswordBody": MessageLookupByLibrary.simpleMessage( "Das aktuelle Gerät ist nicht leistungsfähig genug, um dein Passwort zu verifizieren, aber wir können es neu erstellen, damit es auf allen Geräten funktioniert.\n\nBitte melde dich mit deinem Wiederherstellungs-Schlüssel an und erstelle dein Passwort neu (Wenn du willst, kannst du dasselbe erneut verwenden)."), "recreatePasswordTitle": @@ -1503,7 +1502,7 @@ class MessageLookup extends MessageLookupByLibrary { "1. Gib diesen Code an deine Freunde"), "referralStep2": MessageLookupByLibrary.simpleMessage( "2. Sie schließen ein bezahltes Abo ab"), - "referralStep3": m59, + "referralStep3": m60, "referrals": MessageLookupByLibrary.simpleMessage("Weiterempfehlungen"), "referralsAreCurrentlyPaused": MessageLookupByLibrary.simpleMessage( "Einlösungen sind derzeit pausiert"), @@ -1535,7 +1534,7 @@ class MessageLookup extends MessageLookupByLibrary { "removeLink": MessageLookupByLibrary.simpleMessage("Link entfernen"), "removeParticipant": MessageLookupByLibrary.simpleMessage("Teilnehmer entfernen"), - "removeParticipantBody": m60, + "removeParticipantBody": m61, "removePersonLabel": MessageLookupByLibrary.simpleMessage("Personenetikett entfernen"), "removePublicLink": @@ -1555,7 +1554,7 @@ class MessageLookup extends MessageLookupByLibrary { "renameFile": MessageLookupByLibrary.simpleMessage("Datei umbenennen"), "renewSubscription": MessageLookupByLibrary.simpleMessage("Abonnement erneuern"), - "renewsOn": m61, + "renewsOn": m62, "reportABug": MessageLookupByLibrary.simpleMessage("Fehler melden"), "reportBug": MessageLookupByLibrary.simpleMessage("Fehler melden"), "resendEmail": @@ -1634,8 +1633,8 @@ class MessageLookup extends MessageLookupByLibrary { "Laden Sie Personen ein, damit Sie geteilte Fotos hier einsehen können"), "searchPersonsEmptySection": MessageLookupByLibrary.simpleMessage( "Personen werden hier angezeigt, sobald Verarbeitung und Synchronisierung abgeschlossen sind"), - "searchResultCount": m62, - "searchSectionsLengthMismatch": m63, + "searchResultCount": m63, + "searchSectionsLengthMismatch": m64, "security": MessageLookupByLibrary.simpleMessage("Sicherheit"), "seePublicAlbumLinksInApp": MessageLookupByLibrary.simpleMessage( "Öffentliche Album-Links in der App ansehen"), @@ -1669,8 +1668,8 @@ class MessageLookup extends MessageLookupByLibrary { "selectedItemsWillBeDeletedFromAllAlbumsAndMoved": MessageLookupByLibrary.simpleMessage( "Ausgewählte Elemente werden aus allen Alben gelöscht und in den Papierkorb verschoben."), - "selectedPhotos": m4, - "selectedPhotosWithYours": m64, + "selectedPhotos": m6, + "selectedPhotosWithYours": m65, "send": MessageLookupByLibrary.simpleMessage("Absenden"), "sendEmail": MessageLookupByLibrary.simpleMessage("E-Mail senden"), "sendInvite": MessageLookupByLibrary.simpleMessage("Einladung senden"), @@ -1700,16 +1699,16 @@ class MessageLookup extends MessageLookupByLibrary { "shareAnAlbumNow": MessageLookupByLibrary.simpleMessage("Teile jetzt ein Album"), "shareLink": MessageLookupByLibrary.simpleMessage("Link teilen"), - "shareMyVerificationID": m65, + "shareMyVerificationID": m66, "shareOnlyWithThePeopleYouWant": MessageLookupByLibrary.simpleMessage( "Teile mit ausgewählten Personen"), - "shareTextConfirmOthersVerificationID": m5, + "shareTextConfirmOthersVerificationID": m7, "shareTextRecommendUsingEnte": MessageLookupByLibrary.simpleMessage( "Hol dir Ente, damit wir ganz einfach Fotos und Videos in Originalqualität teilen können\n\nhttps://ente.io"), - "shareTextReferralCode": m66, + "shareTextReferralCode": m67, "shareWithNonenteUsers": MessageLookupByLibrary.simpleMessage( "Mit Nicht-Ente-Benutzern teilen"), - "shareWithPeopleSectionTitle": m67, + "shareWithPeopleSectionTitle": m68, "shareYourFirstAlbum": MessageLookupByLibrary.simpleMessage("Teile dein erstes Album"), "sharedAlbumSectionDescription": MessageLookupByLibrary.simpleMessage( @@ -1720,7 +1719,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Neue geteilte Fotos"), "sharedPhotoNotificationsExplanation": MessageLookupByLibrary.simpleMessage( "Erhalte Benachrichtigungen, wenn jemand ein Foto zu einem gemeinsam genutzten Album hinzufügt, dem du angehörst"), - "sharedWith": m68, + "sharedWith": m69, "sharedWithMe": MessageLookupByLibrary.simpleMessage("Mit mir geteilt"), "sharedWithYou": MessageLookupByLibrary.simpleMessage("Mit dir geteilt"), @@ -1736,11 +1735,11 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Andere Geräte abmelden"), "signUpTerms": MessageLookupByLibrary.simpleMessage( "Ich stimme den Nutzungsbedingungen und der Datenschutzerklärung zu"), - "singleFileDeleteFromDevice": m69, + "singleFileDeleteFromDevice": m70, "singleFileDeleteHighlight": MessageLookupByLibrary.simpleMessage( "Es wird aus allen Alben gelöscht."), - "singleFileInBothLocalAndRemote": m70, - "singleFileInRemoteOnly": m71, + "singleFileInBothLocalAndRemote": m71, + "singleFileInRemoteOnly": m72, "skip": MessageLookupByLibrary.simpleMessage("Überspringen"), "social": MessageLookupByLibrary.simpleMessage("Social Media"), "someItemsAreInBothEnteAndYourDevice": @@ -1792,10 +1791,10 @@ class MessageLookup extends MessageLookupByLibrary { "storageInGB": m1, "storageLimitExceeded": MessageLookupByLibrary.simpleMessage( "Speichergrenze überschritten"), - "storageUsageInfo": m72, + "storageUsageInfo": m73, "strongStrength": MessageLookupByLibrary.simpleMessage("Stark"), - "subAlreadyLinkedErrMessage": m73, - "subWillBeCancelledOn": m74, + "subAlreadyLinkedErrMessage": m74, + "subWillBeCancelledOn": m75, "subscribe": MessageLookupByLibrary.simpleMessage("Abonnieren"), "subscribeToEnableSharing": MessageLookupByLibrary.simpleMessage( "Du benötigst ein aktives, bezahltes Abonnement, um das Teilen zu aktivieren."), @@ -1812,7 +1811,7 @@ class MessageLookup extends MessageLookupByLibrary { "suggestFeatures": MessageLookupByLibrary.simpleMessage("Verbesserung vorschlagen"), "support": MessageLookupByLibrary.simpleMessage("Support"), - "syncProgress": m75, + "syncProgress": m76, "syncStopped": MessageLookupByLibrary.simpleMessage("Synchronisierung angehalten"), "syncing": MessageLookupByLibrary.simpleMessage("Synchronisiere …"), @@ -1825,7 +1824,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Zum Entsperren antippen"), "tapToUpload": MessageLookupByLibrary.simpleMessage("Zum Hochladen antippen"), - "tapToUploadIsIgnoredDue": m76, + "tapToUploadIsIgnoredDue": m77, "tempErrorContactSupportIfPersists": MessageLookupByLibrary.simpleMessage( "Etwas ist schiefgelaufen. Bitte versuche es später noch einmal. Sollte der Fehler weiter bestehen, kontaktiere unser Supportteam."), "terminate": MessageLookupByLibrary.simpleMessage("Beenden"), @@ -1849,7 +1848,7 @@ class MessageLookup extends MessageLookupByLibrary { "theseItemsWillBeDeletedFromYourDevice": MessageLookupByLibrary.simpleMessage( "Diese Elemente werden von deinem Gerät gelöscht."), - "theyAlsoGetXGb": m77, + "theyAlsoGetXGb": m8, "theyWillBeDeletedFromAllAlbums": MessageLookupByLibrary.simpleMessage( "Sie werden aus allen Alben gelöscht."), "thisActionCannotBeUndone": MessageLookupByLibrary.simpleMessage( diff --git a/mobile/lib/generated/intl/messages_el.dart b/mobile/lib/generated/intl/messages_el.dart index 4d418d51fd6..79c0433b27f 100644 --- a/mobile/lib/generated/intl/messages_el.dart +++ b/mobile/lib/generated/intl/messages_el.dart @@ -23,10 +23,6 @@ class MessageLookup extends MessageLookupByLibrary { final messages = _notInlinedMessages(_notInlinedMessages); static Map _notInlinedMessages(_) => { "enterYourEmailAddress": MessageLookupByLibrary.simpleMessage( - "Εισάγετε την διεύθυνση ηλ. ταχυδρομείου σας"), - "link": MessageLookupByLibrary.simpleMessage("Link"), - "linkEmail": MessageLookupByLibrary.simpleMessage("Link email"), - "noEnteAccountExclamation": - MessageLookupByLibrary.simpleMessage("No Ente account!") + "Εισάγετε την διεύθυνση ηλ. ταχυδρομείου σας") }; } diff --git a/mobile/lib/generated/intl/messages_en.dart b/mobile/lib/generated/intl/messages_en.dart index 5222ad12e6b..16ca4647452 100644 --- a/mobile/lib/generated/intl/messages_en.dart +++ b/mobile/lib/generated/intl/messages_en.dart @@ -20,217 +20,217 @@ typedef String MessageIfAbsent(String messageStr, List args); class MessageLookup extends MessageLookupByLibrary { String get localeName => 'en'; - static String m6(count) => + static String m9(count) => "${Intl.plural(count, zero: 'Add collaborator', one: 'Add collaborator', other: 'Add collaborators')}"; - static String m7(count) => + static String m10(count) => "${Intl.plural(count, one: 'Add item', other: 'Add items')}"; - static String m8(storageAmount, endDate) => + static String m11(storageAmount, endDate) => "Your ${storageAmount} add-on is valid till ${endDate}"; - static String m9(count) => + static String m12(count) => "${Intl.plural(count, zero: 'Add viewer', one: 'Add viewer', other: 'Add viewers')}"; - static String m10(emailOrName) => "Added by ${emailOrName}"; + static String m13(emailOrName) => "Added by ${emailOrName}"; - static String m11(albumName) => "Added successfully to ${albumName}"; + static String m14(albumName) => "Added successfully to ${albumName}"; - static String m12(count) => + static String m15(count) => "${Intl.plural(count, zero: 'No Participants', one: '1 Participant', other: '${count} Participants')}"; - static String m13(versionValue) => "Version: ${versionValue}"; + static String m16(versionValue) => "Version: ${versionValue}"; - static String m14(freeAmount, storageUnit) => + static String m17(freeAmount, storageUnit) => "${freeAmount} ${storageUnit} free"; - static String m15(paymentProvider) => + static String m18(paymentProvider) => "Please cancel your existing subscription from ${paymentProvider} first"; - static String m16(user) => + static String m3(user) => "${user} will not be able to add more photos to this album\n\nThey will still be able to remove existing photos added by them"; - static String m17(isFamilyMember, storageAmountInGb) => + static String m19(isFamilyMember, storageAmountInGb) => "${Intl.select(isFamilyMember, { 'true': 'Your family has claimed ${storageAmountInGb} GB so far', 'false': 'You have claimed ${storageAmountInGb} GB so far', 'other': 'You have claimed ${storageAmountInGb} GB so far!', })}"; - static String m18(albumName) => "Collaborative link created for ${albumName}"; + static String m20(albumName) => "Collaborative link created for ${albumName}"; - static String m19(count) => + static String m21(count) => "${Intl.plural(count, zero: 'Added 0 collaborator', one: 'Added 1 collaborator', other: 'Added ${count} collaborators')}"; - static String m20(email, numOfDays) => + static String m22(email, numOfDays) => "You are about to add ${email} as a trusted contact. They will be able to recover your account if you are absent for ${numOfDays} days."; - static String m21(familyAdminEmail) => + static String m23(familyAdminEmail) => "Please contact ${familyAdminEmail} to manage your subscription"; - static String m22(provider) => + static String m24(provider) => "Please contact us at support@ente.io to manage your ${provider} subscription."; - static String m23(endpoint) => "Connected to ${endpoint}"; + static String m25(endpoint) => "Connected to ${endpoint}"; - static String m24(count) => + static String m26(count) => "${Intl.plural(count, one: 'Delete ${count} item', other: 'Delete ${count} items')}"; - static String m25(currentlyDeleting, totalCount) => + static String m27(currentlyDeleting, totalCount) => "Deleting ${currentlyDeleting} / ${totalCount}"; - static String m26(albumName) => + static String m28(albumName) => "This will remove the public link for accessing \"${albumName}\"."; - static String m27(supportEmail) => + static String m29(supportEmail) => "Please drop an email to ${supportEmail} from your registered email address"; - static String m28(count, storageSaved) => + static String m30(count, storageSaved) => "You have cleaned up ${Intl.plural(count, one: '${count} duplicate file', other: '${count} duplicate files')}, saving (${storageSaved}!)"; - static String m29(count, formattedSize) => + static String m31(count, formattedSize) => "${count} files, ${formattedSize} each"; - static String m30(newEmail) => "Email changed to ${newEmail}"; + static String m32(newEmail) => "Email changed to ${newEmail}"; - static String m31(email) => + static String m33(email) => "${email} does not have an Ente account.\n\nSend them an invite to share photos."; - static String m32(text) => "Extra photos found for ${text}"; + static String m34(text) => "Extra photos found for ${text}"; - static String m33(count, formattedNumber) => + static String m35(count, formattedNumber) => "${Intl.plural(count, one: '1 file', other: '${formattedNumber} files')} on this device have been backed up safely"; - static String m34(count, formattedNumber) => + static String m36(count, formattedNumber) => "${Intl.plural(count, one: '1 file', other: '${formattedNumber} files')} in this album has been backed up safely"; - static String m35(storageAmountInGB) => + static String m4(storageAmountInGB) => "${storageAmountInGB} GB each time someone signs up for a paid plan and applies your code"; - static String m36(endDate) => "Free trial valid till ${endDate}"; + static String m37(endDate) => "Free trial valid till ${endDate}"; - static String m37(count) => + static String m38(count) => "You can still access ${Intl.plural(count, one: 'it', other: 'them')} on Ente as long as you have an active subscription"; - static String m38(sizeInMBorGB) => "Free up ${sizeInMBorGB}"; + static String m39(sizeInMBorGB) => "Free up ${sizeInMBorGB}"; - static String m39(count, formattedSize) => + static String m40(count, formattedSize) => "${Intl.plural(count, one: 'It can be deleted from the device to free up ${formattedSize}', other: 'They can be deleted from the device to free up ${formattedSize}')}"; - static String m40(currentlyProcessing, totalCount) => + static String m41(currentlyProcessing, totalCount) => "Processing ${currentlyProcessing} / ${totalCount}"; - static String m41(count) => + static String m42(count) => "${Intl.plural(count, one: '${count} item', other: '${count} items')}"; - static String m42(email) => + static String m43(email) => "${email} has invited you to be a trusted contact"; - static String m43(expiryTime) => "Link will expire on ${expiryTime}"; + static String m44(expiryTime) => "Link will expire on ${expiryTime}"; - static String m3(count, formattedCount) => + static String m5(count, formattedCount) => "${Intl.plural(count, zero: 'no memories', one: '${formattedCount} memory', other: '${formattedCount} memories')}"; - static String m44(count) => + static String m45(count) => "${Intl.plural(count, one: 'Move item', other: 'Move items')}"; - static String m45(albumName) => "Moved successfully to ${albumName}"; + static String m46(albumName) => "Moved successfully to ${albumName}"; - static String m46(personName) => "No suggestions for ${personName}"; + static String m47(personName) => "No suggestions for ${personName}"; - static String m47(name) => "Not ${name}?"; + static String m48(name) => "Not ${name}?"; - static String m48(familyAdminEmail) => + static String m49(familyAdminEmail) => "Please contact ${familyAdminEmail} to change your code."; static String m0(passwordStrengthValue) => "Password strength: ${passwordStrengthValue}"; - static String m49(providerName) => + static String m50(providerName) => "Please talk to ${providerName} support if you were charged"; - static String m50(count) => + static String m51(count) => "${Intl.plural(count, zero: '0 photo', one: '1 photo', other: '${count} photos')}"; - static String m51(endDate) => + static String m52(endDate) => "Free trial valid till ${endDate}.\nYou can choose a paid plan afterwards."; - static String m52(toEmail) => "Please email us at ${toEmail}"; + static String m53(toEmail) => "Please email us at ${toEmail}"; - static String m53(toEmail) => "Please send the logs to \n${toEmail}"; + static String m54(toEmail) => "Please send the logs to \n${toEmail}"; - static String m54(folderName) => "Processing ${folderName}..."; + static String m55(folderName) => "Processing ${folderName}..."; - static String m55(storeName) => "Rate us on ${storeName}"; + static String m56(storeName) => "Rate us on ${storeName}"; - static String m56(days, email) => + static String m57(days, email) => "You can access the account after ${days} days. A notification will be sent to ${email}."; - static String m57(email) => + static String m58(email) => "You can now recover ${email}\'s account by setting a new password."; - static String m58(email) => "${email} is trying to recover your account."; + static String m59(email) => "${email} is trying to recover your account."; - static String m59(storageInGB) => + static String m60(storageInGB) => "3. Both of you get ${storageInGB} GB* free"; - static String m60(userEmail) => + static String m61(userEmail) => "${userEmail} will be removed from this shared album\n\nAny photos added by them will also be removed from the album"; - static String m61(endDate) => "Subscription renews on ${endDate}"; + static String m62(endDate) => "Subscription renews on ${endDate}"; - static String m62(count) => + static String m63(count) => "${Intl.plural(count, one: '${count} result found', other: '${count} results found')}"; - static String m63(snapshotLength, searchLength) => + static String m64(snapshotLength, searchLength) => "Sections length mismatch: ${snapshotLength} != ${searchLength}"; - static String m4(count) => "${count} selected"; + static String m6(count) => "${count} selected"; - static String m64(count, yourCount) => + static String m65(count, yourCount) => "${count} selected (${yourCount} yours)"; - static String m65(verificationID) => + static String m66(verificationID) => "Here\'s my verification ID: ${verificationID} for ente.io."; - static String m5(verificationID) => + static String m7(verificationID) => "Hey, can you confirm that this is your ente.io verification ID: ${verificationID}"; - static String m66(referralCode, referralStorageInGB) => + static String m67(referralCode, referralStorageInGB) => "Ente referral code: ${referralCode} \n\nApply it in Settings → General → Referrals to get ${referralStorageInGB} GB free after you signup for a paid plan\n\nhttps://ente.io"; - static String m67(numberOfPeople) => + static String m68(numberOfPeople) => "${Intl.plural(numberOfPeople, zero: 'Share with specific people', one: 'Shared with 1 person', other: 'Shared with ${numberOfPeople} people')}"; - static String m68(emailIDs) => "Shared with ${emailIDs}"; + static String m69(emailIDs) => "Shared with ${emailIDs}"; - static String m69(fileType) => + static String m70(fileType) => "This ${fileType} will be deleted from your device."; - static String m70(fileType) => + static String m71(fileType) => "This ${fileType} is in both Ente and your device."; - static String m71(fileType) => "This ${fileType} will be deleted from Ente."; + static String m72(fileType) => "This ${fileType} will be deleted from Ente."; static String m1(storageAmountInGB) => "${storageAmountInGB} GB"; - static String m72( + static String m73( usedAmount, usedStorageUnit, totalAmount, totalStorageUnit) => "${usedAmount} ${usedStorageUnit} of ${totalAmount} ${totalStorageUnit} used"; - static String m73(id) => + static String m74(id) => "Your ${id} is already linked to another Ente account.\nIf you would like to use your ${id} with this account, please contact our support\'\'"; - static String m74(endDate) => + static String m75(endDate) => "Your subscription will be cancelled on ${endDate}"; - static String m75(completed, total) => + static String m76(completed, total) => "${completed}/${total} memories preserved"; - static String m76(ignoreReason) => + static String m77(ignoreReason) => "Tap to upload, upload is currently ignored due to ${ignoreReason}"; - static String m77(storageAmountInGB) => + static String m8(storageAmountInGB) => "They also get ${storageAmountInGB} GB"; static String m78(email) => "This is ${email}\'s Verification ID"; @@ -284,11 +284,11 @@ class MessageLookup extends MessageLookupByLibrary { "addANewEmail": MessageLookupByLibrary.simpleMessage("Add a new email"), "addCollaborator": MessageLookupByLibrary.simpleMessage("Add collaborator"), - "addCollaborators": m6, + "addCollaborators": m9, "addFiles": MessageLookupByLibrary.simpleMessage("Add Files"), "addFromDevice": MessageLookupByLibrary.simpleMessage("Add from device"), - "addItem": m7, + "addItem": m10, "addLocation": MessageLookupByLibrary.simpleMessage("Add location"), "addLocationButton": MessageLookupByLibrary.simpleMessage("Add"), "addMore": MessageLookupByLibrary.simpleMessage("Add more"), @@ -299,7 +299,7 @@ class MessageLookup extends MessageLookupByLibrary { "addNewPerson": MessageLookupByLibrary.simpleMessage("Add new person"), "addOnPageSubtitle": MessageLookupByLibrary.simpleMessage("Details of add-ons"), - "addOnValidTill": m8, + "addOnValidTill": m11, "addOns": MessageLookupByLibrary.simpleMessage("Add-ons"), "addPhotos": MessageLookupByLibrary.simpleMessage("Add photos"), "addSelected": MessageLookupByLibrary.simpleMessage("Add selected"), @@ -310,12 +310,12 @@ class MessageLookup extends MessageLookupByLibrary { "addTrustedContact": MessageLookupByLibrary.simpleMessage("Add Trusted Contact"), "addViewer": MessageLookupByLibrary.simpleMessage("Add viewer"), - "addViewers": m9, + "addViewers": m12, "addYourPhotosNow": MessageLookupByLibrary.simpleMessage("Add your photos now"), "addedAs": MessageLookupByLibrary.simpleMessage("Added as"), - "addedBy": m10, - "addedSuccessfullyTo": m11, + "addedBy": m13, + "addedSuccessfullyTo": m14, "addingToFavorites": MessageLookupByLibrary.simpleMessage("Adding to favorites..."), "advanced": MessageLookupByLibrary.simpleMessage("Advanced"), @@ -326,7 +326,7 @@ class MessageLookup extends MessageLookupByLibrary { "after1Week": MessageLookupByLibrary.simpleMessage("After 1 week"), "after1Year": MessageLookupByLibrary.simpleMessage("After 1 year"), "albumOwner": MessageLookupByLibrary.simpleMessage("Owner"), - "albumParticipantsCount": m12, + "albumParticipantsCount": m15, "albumTitle": MessageLookupByLibrary.simpleMessage("Album title"), "albumUpdated": MessageLookupByLibrary.simpleMessage("Album updated"), "albums": MessageLookupByLibrary.simpleMessage("Albums"), @@ -372,7 +372,7 @@ class MessageLookup extends MessageLookupByLibrary { "appLock": MessageLookupByLibrary.simpleMessage("App lock"), "appLockDescriptions": MessageLookupByLibrary.simpleMessage( "Choose between your device\'s default lock screen and a custom lock screen with a PIN or password."), - "appVersion": m13, + "appVersion": m16, "appleId": MessageLookupByLibrary.simpleMessage("Apple ID"), "apply": MessageLookupByLibrary.simpleMessage("Apply"), "applyCodeTitle": MessageLookupByLibrary.simpleMessage("Apply code"), @@ -454,7 +454,7 @@ class MessageLookup extends MessageLookupByLibrary { "autoPairDesc": MessageLookupByLibrary.simpleMessage( "Auto pair works only with devices that support Chromecast."), "available": MessageLookupByLibrary.simpleMessage("Available"), - "availableStorageSpace": m14, + "availableStorageSpace": m17, "backedUpFolders": MessageLookupByLibrary.simpleMessage("Backed up folders"), "backup": MessageLookupByLibrary.simpleMessage("Backup"), @@ -491,10 +491,10 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Cancel recovery"), "cancelAccountRecoveryBody": MessageLookupByLibrary.simpleMessage( "Are you sure you want to cancel recovery?"), - "cancelOtherSubscription": m15, + "cancelOtherSubscription": m18, "cancelSubscription": MessageLookupByLibrary.simpleMessage("Cancel subscription"), - "cannotAddMorePhotosAfterBecomingViewer": m16, + "cannotAddMorePhotosAfterBecomingViewer": m3, "cannotDeleteSharedFiles": MessageLookupByLibrary.simpleMessage("Cannot delete shared files"), "castAlbum": MessageLookupByLibrary.simpleMessage("Cast album"), @@ -542,7 +542,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Claim free storage"), "claimMore": MessageLookupByLibrary.simpleMessage("Claim more!"), "claimed": MessageLookupByLibrary.simpleMessage("Claimed"), - "claimedStorageSoFar": m17, + "claimedStorageSoFar": m19, "cleanUncategorized": MessageLookupByLibrary.simpleMessage("Clean Uncategorized"), "cleanUncategorizedDescription": MessageLookupByLibrary.simpleMessage( @@ -571,12 +571,12 @@ class MessageLookup extends MessageLookupByLibrary { "Create a link to allow people to add and view photos in your shared album without needing an Ente app or account. Great for collecting event photos."), "collaborativeLink": MessageLookupByLibrary.simpleMessage("Collaborative link"), - "collaborativeLinkCreatedFor": m18, + "collaborativeLinkCreatedFor": m20, "collaborator": MessageLookupByLibrary.simpleMessage("Collaborator"), "collaboratorsCanAddPhotosAndVideosToTheSharedAlbum": MessageLookupByLibrary.simpleMessage( "Collaborators can add photos and videos to the shared album."), - "collaboratorsSuccessfullyAdded": m19, + "collaboratorsSuccessfullyAdded": m21, "collageLayout": MessageLookupByLibrary.simpleMessage("Layout"), "collageSaved": MessageLookupByLibrary.simpleMessage("Collage saved to gallery"), @@ -593,7 +593,7 @@ class MessageLookup extends MessageLookupByLibrary { "Are you sure you want to disable two-factor authentication?"), "confirmAccountDeletion": MessageLookupByLibrary.simpleMessage("Confirm Account Deletion"), - "confirmAddingTrustedContact": m20, + "confirmAddingTrustedContact": m22, "confirmDeletePrompt": MessageLookupByLibrary.simpleMessage( "Yes, I want to permanently delete this account and its data across all apps."), "confirmPassword": @@ -606,10 +606,10 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Confirm your recovery key"), "connectToDevice": MessageLookupByLibrary.simpleMessage("Connect to device"), - "contactFamilyAdmin": m21, + "contactFamilyAdmin": m23, "contactSupport": MessageLookupByLibrary.simpleMessage("Contact support"), - "contactToManageSubscription": m22, + "contactToManageSubscription": m24, "contacts": MessageLookupByLibrary.simpleMessage("Contacts"), "contents": MessageLookupByLibrary.simpleMessage("Contents"), "continueLabel": MessageLookupByLibrary.simpleMessage("Continue"), @@ -655,7 +655,7 @@ class MessageLookup extends MessageLookupByLibrary { "currentlyRunning": MessageLookupByLibrary.simpleMessage("currently running"), "custom": MessageLookupByLibrary.simpleMessage("Custom"), - "customEndpoint": m23, + "customEndpoint": m25, "darkTheme": MessageLookupByLibrary.simpleMessage("Dark"), "dayToday": MessageLookupByLibrary.simpleMessage("Today"), "dayYesterday": MessageLookupByLibrary.simpleMessage("Yesterday"), @@ -692,11 +692,11 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Delete from device"), "deleteFromEnte": MessageLookupByLibrary.simpleMessage("Delete from Ente"), - "deleteItemCount": m24, + "deleteItemCount": m26, "deleteLocation": MessageLookupByLibrary.simpleMessage("Delete location"), "deletePhotos": MessageLookupByLibrary.simpleMessage("Delete photos"), - "deleteProgress": m25, + "deleteProgress": m27, "deleteReason1": MessageLookupByLibrary.simpleMessage( "It’s missing a key feature that I need"), "deleteReason2": MessageLookupByLibrary.simpleMessage( @@ -735,7 +735,7 @@ class MessageLookup extends MessageLookupByLibrary { "Viewers can still take screenshots or save a copy of your photos using external tools"), "disableDownloadWarningTitle": MessageLookupByLibrary.simpleMessage("Please note"), - "disableLinkMessage": m26, + "disableLinkMessage": m28, "disableTwofactor": MessageLookupByLibrary.simpleMessage("Disable two-factor"), "disablingTwofactorAuthentication": @@ -776,9 +776,9 @@ class MessageLookup extends MessageLookupByLibrary { "downloadFailed": MessageLookupByLibrary.simpleMessage("Download failed"), "downloading": MessageLookupByLibrary.simpleMessage("Downloading..."), - "dropSupportEmail": m27, - "duplicateFileCountWithStorageSaved": m28, - "duplicateItemsGroup": m29, + "dropSupportEmail": m29, + "duplicateFileCountWithStorageSaved": m30, + "duplicateItemsGroup": m31, "edit": MessageLookupByLibrary.simpleMessage("Edit"), "editLocation": MessageLookupByLibrary.simpleMessage("Edit location"), "editLocationTagTitle": @@ -792,8 +792,8 @@ class MessageLookup extends MessageLookupByLibrary { "email": MessageLookupByLibrary.simpleMessage("Email"), "emailAlreadyRegistered": MessageLookupByLibrary.simpleMessage("Email already registered."), - "emailChangedTo": m30, - "emailNoEnteAccount": m31, + "emailChangedTo": m32, + "emailNoEnteAccount": m33, "emailNotRegistered": MessageLookupByLibrary.simpleMessage("Email not registered."), "emailVerificationToggle": @@ -874,7 +874,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Export your data"), "extraPhotosFound": MessageLookupByLibrary.simpleMessage("Extra photos found"), - "extraPhotosFoundFor": m32, + "extraPhotosFoundFor": m34, "faceNotClusteredYet": MessageLookupByLibrary.simpleMessage( "Face not clustered yet, please come back later"), "faceRecognition": @@ -923,8 +923,8 @@ class MessageLookup extends MessageLookupByLibrary { "fileTypes": MessageLookupByLibrary.simpleMessage("File types"), "fileTypesAndNames": MessageLookupByLibrary.simpleMessage("File types and names"), - "filesBackedUpFromDevice": m33, - "filesBackedUpInAlbum": m34, + "filesBackedUpFromDevice": m35, + "filesBackedUpInAlbum": m36, "filesDeleted": MessageLookupByLibrary.simpleMessage("Files deleted"), "filesSavedToGallery": MessageLookupByLibrary.simpleMessage("Files saved to gallery"), @@ -940,26 +940,26 @@ class MessageLookup extends MessageLookupByLibrary { "foundFaces": MessageLookupByLibrary.simpleMessage("Found faces"), "freeStorageClaimed": MessageLookupByLibrary.simpleMessage("Free storage claimed"), - "freeStorageOnReferralSuccess": m35, + "freeStorageOnReferralSuccess": m4, "freeStorageUsable": MessageLookupByLibrary.simpleMessage("Free storage usable"), "freeTrial": MessageLookupByLibrary.simpleMessage("Free trial"), - "freeTrialValidTill": m36, - "freeUpAccessPostDelete": m37, - "freeUpAmount": m38, + "freeTrialValidTill": m37, + "freeUpAccessPostDelete": m38, + "freeUpAmount": m39, "freeUpDeviceSpace": MessageLookupByLibrary.simpleMessage("Free up device space"), "freeUpDeviceSpaceDesc": MessageLookupByLibrary.simpleMessage( "Save space on your device by clearing files that have been already backed up."), "freeUpSpace": MessageLookupByLibrary.simpleMessage("Free up space"), - "freeUpSpaceSaving": m39, + "freeUpSpaceSaving": m40, "gallery": MessageLookupByLibrary.simpleMessage("Gallery"), "galleryMemoryLimitInfo": MessageLookupByLibrary.simpleMessage( "Up to 1000 memories shown in gallery"), "general": MessageLookupByLibrary.simpleMessage("General"), "generatingEncryptionKeys": MessageLookupByLibrary.simpleMessage( "Generating encryption keys..."), - "genericProgress": m40, + "genericProgress": m41, "goToSettings": MessageLookupByLibrary.simpleMessage("Go to settings"), "googlePlayId": MessageLookupByLibrary.simpleMessage("Google Play ID"), "grantFullAccessPrompt": MessageLookupByLibrary.simpleMessage( @@ -1039,7 +1039,7 @@ class MessageLookup extends MessageLookupByLibrary { "itLooksLikeSomethingWentWrongPleaseRetryAfterSome": MessageLookupByLibrary.simpleMessage( "It looks like something went wrong. Please retry after some time. If the error persists, please contact our support team."), - "itemCount": m41, + "itemCount": m42, "itemsShowTheNumberOfDaysRemainingBeforePermanentDeletion": MessageLookupByLibrary.simpleMessage( "Items show the number of days remaining before permanent deletion"), @@ -1067,7 +1067,7 @@ class MessageLookup extends MessageLookupByLibrary { "legacy": MessageLookupByLibrary.simpleMessage("Legacy"), "legacyAccounts": MessageLookupByLibrary.simpleMessage("Legacy accounts"), - "legacyInvite": m42, + "legacyInvite": m43, "legacyPageDesc": MessageLookupByLibrary.simpleMessage( "Legacy allows trusted contacts to access your account in your absence."), "legacyPageDesc2": MessageLookupByLibrary.simpleMessage( @@ -1081,7 +1081,7 @@ class MessageLookup extends MessageLookupByLibrary { "linkEmail": MessageLookupByLibrary.simpleMessage("Link email"), "linkEnabled": MessageLookupByLibrary.simpleMessage("Enabled"), "linkExpired": MessageLookupByLibrary.simpleMessage("Expired"), - "linkExpiresOn": m43, + "linkExpiresOn": m44, "linkExpiry": MessageLookupByLibrary.simpleMessage("Link expiry"), "linkHasExpired": MessageLookupByLibrary.simpleMessage("Link has expired"), @@ -1169,7 +1169,7 @@ class MessageLookup extends MessageLookupByLibrary { "maps": MessageLookupByLibrary.simpleMessage("Maps"), "mastodon": MessageLookupByLibrary.simpleMessage("Mastodon"), "matrix": MessageLookupByLibrary.simpleMessage("Matrix"), - "memoryCount": m3, + "memoryCount": m5, "merchandise": MessageLookupByLibrary.simpleMessage("Merchandise"), "mergeWithExisting": MessageLookupByLibrary.simpleMessage("Merge with existing"), @@ -1198,11 +1198,11 @@ class MessageLookup extends MessageLookupByLibrary { "moreDetails": MessageLookupByLibrary.simpleMessage("More details"), "mostRecent": MessageLookupByLibrary.simpleMessage("Most recent"), "mostRelevant": MessageLookupByLibrary.simpleMessage("Most relevant"), - "moveItem": m44, + "moveItem": m45, "moveToAlbum": MessageLookupByLibrary.simpleMessage("Move to album"), "moveToHiddenAlbum": MessageLookupByLibrary.simpleMessage("Move to hidden album"), - "movedSuccessfullyTo": m45, + "movedSuccessfullyTo": m46, "movedToTrash": MessageLookupByLibrary.simpleMessage("Moved to trash"), "movingFilesToAlbum": MessageLookupByLibrary.simpleMessage("Moving files to album..."), @@ -1252,10 +1252,10 @@ class MessageLookup extends MessageLookupByLibrary { "noResults": MessageLookupByLibrary.simpleMessage("No results"), "noResultsFound": MessageLookupByLibrary.simpleMessage("No results found"), - "noSuggestionsForPerson": m46, + "noSuggestionsForPerson": m47, "noSystemLockFound": MessageLookupByLibrary.simpleMessage("No system lock found"), - "notPersonLabel": m47, + "notPersonLabel": m48, "nothingSharedWithYouYet": MessageLookupByLibrary.simpleMessage("Nothing shared with you yet"), "nothingToSeeHere": @@ -1265,7 +1265,7 @@ class MessageLookup extends MessageLookupByLibrary { "onDevice": MessageLookupByLibrary.simpleMessage("On device"), "onEnte": MessageLookupByLibrary.simpleMessage( "On ente"), - "onlyFamilyAdminCanChangeCode": m48, + "onlyFamilyAdminCanChangeCode": m49, "onlyThem": MessageLookupByLibrary.simpleMessage("Only them"), "oops": MessageLookupByLibrary.simpleMessage("Oops"), "oopsCouldNotSaveEdits": @@ -1311,7 +1311,7 @@ class MessageLookup extends MessageLookupByLibrary { "paymentFailed": MessageLookupByLibrary.simpleMessage("Payment failed"), "paymentFailedMessage": MessageLookupByLibrary.simpleMessage( "Unfortunately your payment failed. Please contact support and we\'ll help you out!"), - "paymentFailedTalkToProvider": m49, + "paymentFailedTalkToProvider": m50, "pendingItems": MessageLookupByLibrary.simpleMessage("Pending items"), "pendingSync": MessageLookupByLibrary.simpleMessage("Pending sync"), "people": MessageLookupByLibrary.simpleMessage("People"), @@ -1333,13 +1333,13 @@ class MessageLookup extends MessageLookupByLibrary { "photosAddedByYouWillBeRemovedFromTheAlbum": MessageLookupByLibrary.simpleMessage( "Photos added by you will be removed from the album"), - "photosCount": m50, + "photosCount": m51, "pickCenterPoint": MessageLookupByLibrary.simpleMessage("Pick center point"), "pinAlbum": MessageLookupByLibrary.simpleMessage("Pin album"), "pinLock": MessageLookupByLibrary.simpleMessage("PIN lock"), "playOnTv": MessageLookupByLibrary.simpleMessage("Play album on TV"), - "playStoreFreeTrialValidTill": m51, + "playStoreFreeTrialValidTill": m52, "playstoreSubscription": MessageLookupByLibrary.simpleMessage("PlayStore subscription"), "pleaseCheckYourInternetConnectionAndTryAgain": @@ -1351,14 +1351,14 @@ class MessageLookup extends MessageLookupByLibrary { "pleaseContactSupportIfTheProblemPersists": MessageLookupByLibrary.simpleMessage( "Please contact support if the problem persists"), - "pleaseEmailUsAt": m52, + "pleaseEmailUsAt": m53, "pleaseGrantPermissions": MessageLookupByLibrary.simpleMessage("Please grant permissions"), "pleaseLoginAgain": MessageLookupByLibrary.simpleMessage("Please login again"), "pleaseSelectQuickLinksToRemove": MessageLookupByLibrary.simpleMessage( "Please select quick links to remove"), - "pleaseSendTheLogsTo": m53, + "pleaseSendTheLogsTo": m54, "pleaseTryAgain": MessageLookupByLibrary.simpleMessage("Please try again"), "pleaseVerifyTheCodeYouHaveEntered": @@ -1386,7 +1386,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Private sharing"), "proceed": MessageLookupByLibrary.simpleMessage("Proceed"), "processed": MessageLookupByLibrary.simpleMessage("Processed"), - "processingImport": m54, + "processingImport": m55, "publicLinkCreated": MessageLookupByLibrary.simpleMessage("Public link created"), "publicLinkEnabled": @@ -1396,7 +1396,7 @@ class MessageLookup extends MessageLookupByLibrary { "raiseTicket": MessageLookupByLibrary.simpleMessage("Raise ticket"), "rateTheApp": MessageLookupByLibrary.simpleMessage("Rate the app"), "rateUs": MessageLookupByLibrary.simpleMessage("Rate us"), - "rateUsOnStore": m55, + "rateUsOnStore": m56, "recover": MessageLookupByLibrary.simpleMessage("Recover"), "recoverAccount": MessageLookupByLibrary.simpleMessage("Recover account"), @@ -1405,7 +1405,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Recover account"), "recoveryInitiated": MessageLookupByLibrary.simpleMessage("Recovery initiated"), - "recoveryInitiatedDesc": m56, + "recoveryInitiatedDesc": m57, "recoveryKey": MessageLookupByLibrary.simpleMessage("Recovery key"), "recoveryKeyCopiedToClipboard": MessageLookupByLibrary.simpleMessage( "Recovery key copied to clipboard"), @@ -1419,12 +1419,12 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Recovery key verified"), "recoveryKeyVerifyReason": MessageLookupByLibrary.simpleMessage( "Your recovery key is the only way to recover your photos if you forget your password. You can find your recovery key in Settings > Account.\n\nPlease enter your recovery key here to verify that you have saved it correctly."), - "recoveryReady": m57, + "recoveryReady": m58, "recoverySuccessful": MessageLookupByLibrary.simpleMessage("Recovery successful!"), "recoveryWarning": MessageLookupByLibrary.simpleMessage( "A trusted contact is trying to access your account"), - "recoveryWarningBody": m58, + "recoveryWarningBody": m59, "recreatePasswordBody": MessageLookupByLibrary.simpleMessage( "The current device is not powerful enough to verify your password, but we can regenerate in a way that works with all devices.\n\nPlease login using your recovery key and regenerate your password (you can use the same one again if you wish)."), "recreatePasswordTitle": @@ -1439,7 +1439,7 @@ class MessageLookup extends MessageLookupByLibrary { "1. Give this code to your friends"), "referralStep2": MessageLookupByLibrary.simpleMessage( "2. They sign up for a paid plan"), - "referralStep3": m59, + "referralStep3": m60, "referrals": MessageLookupByLibrary.simpleMessage("Referrals"), "referralsAreCurrentlyPaused": MessageLookupByLibrary.simpleMessage( "Referrals are currently paused"), @@ -1468,7 +1468,7 @@ class MessageLookup extends MessageLookupByLibrary { "removeLink": MessageLookupByLibrary.simpleMessage("Remove link"), "removeParticipant": MessageLookupByLibrary.simpleMessage("Remove participant"), - "removeParticipantBody": m60, + "removeParticipantBody": m61, "removePersonLabel": MessageLookupByLibrary.simpleMessage("Remove person label"), "removePublicLink": @@ -1488,7 +1488,7 @@ class MessageLookup extends MessageLookupByLibrary { "renameFile": MessageLookupByLibrary.simpleMessage("Rename file"), "renewSubscription": MessageLookupByLibrary.simpleMessage("Renew subscription"), - "renewsOn": m61, + "renewsOn": m62, "reportABug": MessageLookupByLibrary.simpleMessage("Report a bug"), "reportBug": MessageLookupByLibrary.simpleMessage("Report bug"), "resendEmail": MessageLookupByLibrary.simpleMessage("Resend email"), @@ -1563,8 +1563,8 @@ class MessageLookup extends MessageLookupByLibrary { "Invite people, and you\'ll see all photos shared by them here"), "searchPersonsEmptySection": MessageLookupByLibrary.simpleMessage( "People will be shown here once processing and syncing is complete"), - "searchResultCount": m62, - "searchSectionsLengthMismatch": m63, + "searchResultCount": m63, + "searchSectionsLengthMismatch": m64, "security": MessageLookupByLibrary.simpleMessage("Security"), "seePublicAlbumLinksInApp": MessageLookupByLibrary.simpleMessage( "See public album links in app"), @@ -1598,8 +1598,8 @@ class MessageLookup extends MessageLookupByLibrary { "selectedItemsWillBeDeletedFromAllAlbumsAndMoved": MessageLookupByLibrary.simpleMessage( "Selected items will be deleted from all albums and moved to trash."), - "selectedPhotos": m4, - "selectedPhotosWithYours": m64, + "selectedPhotos": m6, + "selectedPhotosWithYours": m65, "send": MessageLookupByLibrary.simpleMessage("Send"), "sendEmail": MessageLookupByLibrary.simpleMessage("Send email"), "sendInvite": MessageLookupByLibrary.simpleMessage("Send invite"), @@ -1628,16 +1628,16 @@ class MessageLookup extends MessageLookupByLibrary { "shareAnAlbumNow": MessageLookupByLibrary.simpleMessage("Share an album now"), "shareLink": MessageLookupByLibrary.simpleMessage("Share link"), - "shareMyVerificationID": m65, + "shareMyVerificationID": m66, "shareOnlyWithThePeopleYouWant": MessageLookupByLibrary.simpleMessage( "Share only with the people you want"), - "shareTextConfirmOthersVerificationID": m5, + "shareTextConfirmOthersVerificationID": m7, "shareTextRecommendUsingEnte": MessageLookupByLibrary.simpleMessage( "Download Ente so we can easily share original quality photos and videos\n\nhttps://ente.io"), - "shareTextReferralCode": m66, + "shareTextReferralCode": m67, "shareWithNonenteUsers": MessageLookupByLibrary.simpleMessage("Share with non-Ente users"), - "shareWithPeopleSectionTitle": m67, + "shareWithPeopleSectionTitle": m68, "shareYourFirstAlbum": MessageLookupByLibrary.simpleMessage("Share your first album"), "sharedAlbumSectionDescription": MessageLookupByLibrary.simpleMessage( @@ -1648,7 +1648,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("New shared photos"), "sharedPhotoNotificationsExplanation": MessageLookupByLibrary.simpleMessage( "Receive notifications when someone adds a photo to a shared album that you\'re a part of"), - "sharedWith": m68, + "sharedWith": m69, "sharedWithMe": MessageLookupByLibrary.simpleMessage("Shared with me"), "sharedWithYou": MessageLookupByLibrary.simpleMessage("Shared with you"), @@ -1663,11 +1663,11 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Sign out other devices"), "signUpTerms": MessageLookupByLibrary.simpleMessage( "I agree to the terms of service and privacy policy"), - "singleFileDeleteFromDevice": m69, + "singleFileDeleteFromDevice": m70, "singleFileDeleteHighlight": MessageLookupByLibrary.simpleMessage( "It will be deleted from all albums."), - "singleFileInBothLocalAndRemote": m70, - "singleFileInRemoteOnly": m71, + "singleFileInBothLocalAndRemote": m71, + "singleFileInRemoteOnly": m72, "skip": MessageLookupByLibrary.simpleMessage("Skip"), "social": MessageLookupByLibrary.simpleMessage("Social"), "someItemsAreInBothEnteAndYourDevice": @@ -1715,10 +1715,10 @@ class MessageLookup extends MessageLookupByLibrary { "storageInGB": m1, "storageLimitExceeded": MessageLookupByLibrary.simpleMessage("Storage limit exceeded"), - "storageUsageInfo": m72, + "storageUsageInfo": m73, "strongStrength": MessageLookupByLibrary.simpleMessage("Strong"), - "subAlreadyLinkedErrMessage": m73, - "subWillBeCancelledOn": m74, + "subAlreadyLinkedErrMessage": m74, + "subWillBeCancelledOn": m75, "subscribe": MessageLookupByLibrary.simpleMessage("Subscribe"), "subscribeToEnableSharing": MessageLookupByLibrary.simpleMessage( "You need an active paid subscription to enable sharing."), @@ -1735,7 +1735,7 @@ class MessageLookup extends MessageLookupByLibrary { "suggestFeatures": MessageLookupByLibrary.simpleMessage("Suggest features"), "support": MessageLookupByLibrary.simpleMessage("Support"), - "syncProgress": m75, + "syncProgress": m76, "syncStopped": MessageLookupByLibrary.simpleMessage("Sync stopped"), "syncing": MessageLookupByLibrary.simpleMessage("Syncing..."), "systemTheme": MessageLookupByLibrary.simpleMessage("System"), @@ -1744,7 +1744,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Tap to enter code"), "tapToUnlock": MessageLookupByLibrary.simpleMessage("Tap to unlock"), "tapToUpload": MessageLookupByLibrary.simpleMessage("Tap to upload"), - "tapToUploadIsIgnoredDue": m76, + "tapToUploadIsIgnoredDue": m77, "tempErrorContactSupportIfPersists": MessageLookupByLibrary.simpleMessage( "It looks like something went wrong. Please retry after some time. If the error persists, please contact our support team."), "terminate": MessageLookupByLibrary.simpleMessage("Terminate"), @@ -1767,7 +1767,7 @@ class MessageLookup extends MessageLookupByLibrary { "theseItemsWillBeDeletedFromYourDevice": MessageLookupByLibrary.simpleMessage( "These items will be deleted from your device."), - "theyAlsoGetXGb": m77, + "theyAlsoGetXGb": m8, "theyWillBeDeletedFromAllAlbums": MessageLookupByLibrary.simpleMessage( "They will be deleted from all albums."), "thisActionCannotBeUndone": MessageLookupByLibrary.simpleMessage( diff --git a/mobile/lib/generated/intl/messages_es.dart b/mobile/lib/generated/intl/messages_es.dart index bde55c68da6..5fbefd85aa8 100644 --- a/mobile/lib/generated/intl/messages_es.dart +++ b/mobile/lib/generated/intl/messages_es.dart @@ -20,37 +20,37 @@ typedef String MessageIfAbsent(String messageStr, List args); class MessageLookup extends MessageLookupByLibrary { String get localeName => 'es'; - static String m6(count) => + static String m9(count) => "${Intl.plural(count, zero: 'Añadir colaborador', one: 'Añadir colaborador', other: 'Añadir colaboradores')}"; - static String m7(count) => + static String m10(count) => "${Intl.plural(count, one: 'Agregar elemento', other: 'Agregar elementos')}"; - static String m8(storageAmount, endDate) => + static String m11(storageAmount, endDate) => "Tu ${storageAmount} adicional es válido hasta ${endDate}"; - static String m9(count) => + static String m12(count) => "${Intl.plural(count, zero: 'Añadir espectador', one: 'Añadir espectador', other: 'Añadir espectadores')}"; - static String m10(emailOrName) => "Añadido por ${emailOrName}"; + static String m13(emailOrName) => "Añadido por ${emailOrName}"; - static String m11(albumName) => "Añadido exitosamente a ${albumName}"; + static String m14(albumName) => "Añadido exitosamente a ${albumName}"; - static String m12(count) => + static String m15(count) => "${Intl.plural(count, zero: 'No hay Participantes', one: '1 Participante', other: '${count} Participantes')}"; - static String m13(versionValue) => "Versión: ${versionValue}"; + static String m16(versionValue) => "Versión: ${versionValue}"; - static String m14(freeAmount, storageUnit) => + static String m17(freeAmount, storageUnit) => "${freeAmount} ${storageUnit} gratis"; - static String m15(paymentProvider) => + static String m18(paymentProvider) => "Por favor, cancela primero tu suscripción existente de ${paymentProvider}"; - static String m16(user) => + static String m3(user) => "${user} no podrá añadir más fotos a este álbum\n\nTodavía podrán eliminar las fotos ya añadidas por ellos"; - static String m17(isFamilyMember, storageAmountInGb) => + static String m19(isFamilyMember, storageAmountInGb) => "${Intl.select(isFamilyMember, { 'true': 'Tu familia ha obtenido ${storageAmountInGb} GB hasta el momento', @@ -59,181 +59,181 @@ class MessageLookup extends MessageLookupByLibrary { '¡Tú has obtenido ${storageAmountInGb} GB hasta el momento!', })}"; - static String m18(albumName) => + static String m20(albumName) => "Enlace colaborativo creado para ${albumName}"; - static String m19(count) => + static String m21(count) => "${Intl.plural(count, zero: '0 colaboradores añadidos', one: '1 colaborador añadido', other: '${count} colaboradores añadidos')}"; - static String m20(email, numOfDays) => + static String m22(email, numOfDays) => "Estás a punto de añadir ${email} como un contacto de confianza. Esta persona podrá recuperar tu cuenta si no estás durante ${numOfDays} días."; - static String m21(familyAdminEmail) => + static String m23(familyAdminEmail) => "Por favor contacta con ${familyAdminEmail} para administrar tu suscripción"; - static String m22(provider) => + static String m24(provider) => "Por favor, contáctanos en support@ente.io para gestionar tu suscripción a ${provider}."; - static String m23(endpoint) => "Conectado a ${endpoint}"; + static String m25(endpoint) => "Conectado a ${endpoint}"; - static String m24(count) => + static String m26(count) => "${Intl.plural(count, one: 'Elimina ${count} elemento', other: 'Elimina ${count} elementos')}"; - static String m25(currentlyDeleting, totalCount) => + static String m27(currentlyDeleting, totalCount) => "Borrando ${currentlyDeleting} / ${totalCount}"; - static String m26(albumName) => + static String m28(albumName) => "Esto eliminará el enlace público para acceder a \"${albumName}\"."; - static String m27(supportEmail) => + static String m29(supportEmail) => "Por favor, envía un correo electrónico a ${supportEmail} desde tu dirección de correo electrónico que usó para registrarse"; - static String m28(count, storageSaved) => + static String m30(count, storageSaved) => "¡Has limpiado ${Intl.plural(count, one: '${count} archivo duplicado', other: '${count} archivos duplicados')}, ahorrando (${storageSaved}!)"; - static String m29(count, formattedSize) => + static String m31(count, formattedSize) => "${count} archivos, ${formattedSize} cada uno"; - static String m30(newEmail) => "Correo cambiado a ${newEmail}"; + static String m32(newEmail) => "Correo cambiado a ${newEmail}"; - static String m31(email) => + static String m33(email) => "${email} no tiene una cuente en Ente.\n\nEnvíale una invitación para compartir fotos."; - static String m32(text) => "Fotos adicionales encontradas para ${text}"; + static String m34(text) => "Fotos adicionales encontradas para ${text}"; - static String m33(count, formattedNumber) => + static String m35(count, formattedNumber) => "Se ha realizado la copia de seguridad de ${Intl.plural(count, one: '1 archivo', other: '${formattedNumber} archivos')} de este dispositivo de forma segura"; - static String m34(count, formattedNumber) => + static String m36(count, formattedNumber) => "Se ha realizado la copia de seguridad de ${Intl.plural(count, one: '1 archivo', other: '${formattedNumber} archivos')} de este álbum de forma segura"; - static String m35(storageAmountInGB) => + static String m4(storageAmountInGB) => "${storageAmountInGB} GB cada vez que alguien se registra en un plan de pago y aplica tu código"; - static String m36(endDate) => "Prueba gratuita válida hasta ${endDate}"; + static String m37(endDate) => "Prueba gratuita válida hasta ${endDate}"; - static String m37(count) => + static String m38(count) => "Aún puedes acceder ${Intl.plural(count, one: 'a él', other: 'a ellos')} en Ente mientras tengas una suscripción activa"; - static String m38(sizeInMBorGB) => "Liberar ${sizeInMBorGB}"; + static String m39(sizeInMBorGB) => "Liberar ${sizeInMBorGB}"; - static String m39(count, formattedSize) => + static String m40(count, formattedSize) => "${Intl.plural(count, one: 'Se puede eliminar del dispositivo para liberar ${formattedSize}', other: 'Se pueden eliminar del dispositivo para liberar ${formattedSize}')}"; - static String m40(currentlyProcessing, totalCount) => + static String m41(currentlyProcessing, totalCount) => "Procesando ${currentlyProcessing} / ${totalCount}"; - static String m41(count) => + static String m42(count) => "${Intl.plural(count, one: '${count} elemento', other: '${count} elementos')}"; - static String m42(email) => + static String m43(email) => "${email} te ha invitado a ser un contacto de confianza"; - static String m43(expiryTime) => "El enlace caducará en ${expiryTime}"; + static String m44(expiryTime) => "El enlace caducará en ${expiryTime}"; - static String m3(count, formattedCount) => + static String m5(count, formattedCount) => "${Intl.plural(count, zero: 'sin recuerdos', one: '${formattedCount} recuerdo', other: '${formattedCount} recuerdos')}"; - static String m44(count) => + static String m45(count) => "${Intl.plural(count, one: 'Mover elemento', other: 'Mover elementos')}"; - static String m45(albumName) => "Movido exitosamente a ${albumName}"; + static String m46(albumName) => "Movido exitosamente a ${albumName}"; - static String m46(personName) => "No hay sugerencias para ${personName}"; + static String m47(personName) => "No hay sugerencias para ${personName}"; - static String m47(name) => "¿No es ${name}?"; + static String m48(name) => "¿No es ${name}?"; - static String m48(familyAdminEmail) => + static String m49(familyAdminEmail) => "Por favor, contacta a ${familyAdminEmail} para cambiar tu código."; static String m0(passwordStrengthValue) => "Seguridad de la contraseña: ${passwordStrengthValue}"; - static String m49(providerName) => + static String m50(providerName) => "Por favor, habla con el soporte de ${providerName} si se te cobró"; - static String m50(count) => + static String m51(count) => "${Intl.plural(count, zero: '0 fotos', one: '1 foto', other: '${count} fotos')}"; - static String m51(endDate) => + static String m52(endDate) => "Prueba gratuita válida hasta ${endDate}.\nPuedes elegir un plan de pago después."; - static String m52(toEmail) => + static String m53(toEmail) => "Por favor, envíanos un correo electrónico a ${toEmail}"; - static String m53(toEmail) => "Por favor, envía los registros a ${toEmail}"; + static String m54(toEmail) => "Por favor, envía los registros a ${toEmail}"; - static String m54(folderName) => "Procesando ${folderName}..."; + static String m55(folderName) => "Procesando ${folderName}..."; - static String m55(storeName) => "Puntúanos en ${storeName}"; + static String m56(storeName) => "Puntúanos en ${storeName}"; - static String m56(days, email) => + static String m57(days, email) => "Puedes acceder a la cuenta después de ${days} días. Se enviará una notificación a ${email}."; - static String m57(email) => + static String m58(email) => "Ahora puedes recuperar la cuenta de ${email} estableciendo una nueva contraseña."; - static String m58(email) => "${email} está intentando recuperar tu cuenta."; + static String m59(email) => "${email} está intentando recuperar tu cuenta."; - static String m59(storageInGB) => + static String m60(storageInGB) => "3. Ambos obtienen ${storageInGB} GB* gratis"; - static String m60(userEmail) => + static String m61(userEmail) => "${userEmail} será eliminado de este álbum compartido\n\nCualquier foto añadida por ellos también será eliminada del álbum"; - static String m61(endDate) => "La suscripción se renueva el ${endDate}"; + static String m62(endDate) => "La suscripción se renueva el ${endDate}"; - static String m62(count) => + static String m63(count) => "${Intl.plural(count, one: '${count} resultado encontrado', other: '${count} resultados encontrados')}"; - static String m63(snapshotLength, searchLength) => + static String m64(snapshotLength, searchLength) => "La longitud de las secciones no coincide: ${snapshotLength} != ${searchLength}"; - static String m4(count) => "${count} seleccionados"; + static String m6(count) => "${count} seleccionados"; - static String m64(count, yourCount) => + static String m65(count, yourCount) => "${count} seleccionados (${yourCount} tuyos)"; - static String m65(verificationID) => + static String m66(verificationID) => "Aquí está mi ID de verificación: ${verificationID} para ente.io."; - static String m5(verificationID) => + static String m7(verificationID) => "Hola, ¿puedes confirmar que esta es tu ID de verificación ente.io: ${verificationID}?"; - static String m66(referralCode, referralStorageInGB) => + static String m67(referralCode, referralStorageInGB) => "Código de referido de Ente: ${referralCode} \n\nAñádelo en Ajustes → General → Referidos para obtener ${referralStorageInGB} GB gratis tras comprar un plan de pago.\n\nhttps://ente.io"; - static String m67(numberOfPeople) => + static String m68(numberOfPeople) => "${Intl.plural(numberOfPeople, zero: 'Compartir con personas específicas', one: 'Compartido con 1 persona', other: 'Compartido con ${numberOfPeople} personas')}"; - static String m68(emailIDs) => "Compartido con ${emailIDs}"; + static String m69(emailIDs) => "Compartido con ${emailIDs}"; - static String m69(fileType) => + static String m70(fileType) => "Este ${fileType} se eliminará de tu dispositivo."; - static String m70(fileType) => + static String m71(fileType) => "Este ${fileType} está tanto en Ente como en tu dispositivo."; - static String m71(fileType) => "Este ${fileType} será eliminado de Ente."; + static String m72(fileType) => "Este ${fileType} será eliminado de Ente."; static String m1(storageAmountInGB) => "${storageAmountInGB} GB"; - static String m72( + static String m73( usedAmount, usedStorageUnit, totalAmount, totalStorageUnit) => "${usedAmount} ${usedStorageUnit} de ${totalAmount} ${totalStorageUnit} usados"; - static String m73(id) => + static String m74(id) => "Tu ${id} ya está vinculada a otra cuenta de Ente.\nSi deseas utilizar tu ${id} con esta cuenta, ponte en contacto con nuestro servicio de asistencia\'\'"; - static String m74(endDate) => "Tu suscripción se cancelará el ${endDate}"; + static String m75(endDate) => "Tu suscripción se cancelará el ${endDate}"; - static String m75(completed, total) => + static String m76(completed, total) => "${completed}/${total} recuerdos conservados"; - static String m76(ignoreReason) => + static String m77(ignoreReason) => "Toca para subir, la subida se está ignorando debido a ${ignoreReason}"; - static String m77(storageAmountInGB) => + static String m8(storageAmountInGB) => "También obtienen ${storageAmountInGB} GB"; static String m78(email) => "Este es el ID de verificación de ${email}"; @@ -289,11 +289,11 @@ class MessageLookup extends MessageLookupByLibrary { "Agregar nuevo correo electrónico"), "addCollaborator": MessageLookupByLibrary.simpleMessage("Agregar colaborador"), - "addCollaborators": m6, + "addCollaborators": m9, "addFiles": MessageLookupByLibrary.simpleMessage("Añadir archivos"), "addFromDevice": MessageLookupByLibrary.simpleMessage( "Agregar desde el dispositivo"), - "addItem": m7, + "addItem": m10, "addLocation": MessageLookupByLibrary.simpleMessage("Agregar ubicación"), "addLocationButton": MessageLookupByLibrary.simpleMessage("Añadir"), @@ -306,7 +306,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Añadir nueva persona"), "addOnPageSubtitle": MessageLookupByLibrary.simpleMessage( "Detalles de los complementos"), - "addOnValidTill": m8, + "addOnValidTill": m11, "addOns": MessageLookupByLibrary.simpleMessage("Complementos"), "addPhotos": MessageLookupByLibrary.simpleMessage("Agregar fotos"), "addSelected": @@ -318,12 +318,12 @@ class MessageLookup extends MessageLookupByLibrary { "addTrustedContact": MessageLookupByLibrary.simpleMessage( "Añadir contacto de confianza"), "addViewer": MessageLookupByLibrary.simpleMessage("Añadir espectador"), - "addViewers": m9, + "addViewers": m12, "addYourPhotosNow": MessageLookupByLibrary.simpleMessage("Añade tus fotos ahora"), "addedAs": MessageLookupByLibrary.simpleMessage("Agregado como"), - "addedBy": m10, - "addedSuccessfullyTo": m11, + "addedBy": m13, + "addedSuccessfullyTo": m14, "addingToFavorites": MessageLookupByLibrary.simpleMessage("Añadiendo a favoritos..."), "advanced": MessageLookupByLibrary.simpleMessage("Avanzado"), @@ -336,7 +336,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Después de una semana"), "after1Year": MessageLookupByLibrary.simpleMessage("Después de un año"), "albumOwner": MessageLookupByLibrary.simpleMessage("Propietario"), - "albumParticipantsCount": m12, + "albumParticipantsCount": m15, "albumTitle": MessageLookupByLibrary.simpleMessage("Título del álbum"), "albumUpdated": MessageLookupByLibrary.simpleMessage("Álbum actualizado"), @@ -386,7 +386,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Bloqueo de aplicación"), "appLockDescriptions": MessageLookupByLibrary.simpleMessage( "Escoge entre la pantalla de bloqueo por defecto de tu dispositivo y una pantalla de bloqueo personalizada con un PIN o contraseña."), - "appVersion": m13, + "appVersion": m16, "appleId": MessageLookupByLibrary.simpleMessage("ID de Apple"), "apply": MessageLookupByLibrary.simpleMessage("Aplicar"), "applyCodeTitle": MessageLookupByLibrary.simpleMessage("Usar código"), @@ -469,7 +469,7 @@ class MessageLookup extends MessageLookupByLibrary { "autoPairDesc": MessageLookupByLibrary.simpleMessage( "El emparejamiento automático funciona sólo con dispositivos compatibles con Chromecast."), "available": MessageLookupByLibrary.simpleMessage("Disponible"), - "availableStorageSpace": m14, + "availableStorageSpace": m17, "backedUpFolders": MessageLookupByLibrary.simpleMessage( "Carpetas con copia de seguridad"), "backup": MessageLookupByLibrary.simpleMessage("Copia de seguridad"), @@ -511,10 +511,10 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Cancelar la recuperación"), "cancelAccountRecoveryBody": MessageLookupByLibrary.simpleMessage( "¿Estás seguro de que quieres cancelar la recuperación?"), - "cancelOtherSubscription": m15, + "cancelOtherSubscription": m18, "cancelSubscription": MessageLookupByLibrary.simpleMessage("Cancelar suscripción"), - "cannotAddMorePhotosAfterBecomingViewer": m16, + "cannotAddMorePhotosAfterBecomingViewer": m3, "cannotDeleteSharedFiles": MessageLookupByLibrary.simpleMessage( "No se pueden eliminar los archivos compartidos"), "castAlbum": MessageLookupByLibrary.simpleMessage("Enviar álbum"), @@ -564,7 +564,7 @@ class MessageLookup extends MessageLookupByLibrary { "Obtén almacenamiento gratuito"), "claimMore": MessageLookupByLibrary.simpleMessage("¡Obtén más!"), "claimed": MessageLookupByLibrary.simpleMessage("Obtenido"), - "claimedStorageSoFar": m17, + "claimedStorageSoFar": m19, "cleanUncategorized": MessageLookupByLibrary.simpleMessage("Limpiar sin categorizar"), "cleanUncategorizedDescription": MessageLookupByLibrary.simpleMessage( @@ -593,12 +593,12 @@ class MessageLookup extends MessageLookupByLibrary { "Crea un enlace para permitir que otros pueda añadir y ver fotos en tu álbum compartido sin necesitar la aplicación Ente o una cuenta. Genial para recolectar fotos de eventos."), "collaborativeLink": MessageLookupByLibrary.simpleMessage("Enlace colaborativo"), - "collaborativeLinkCreatedFor": m18, + "collaborativeLinkCreatedFor": m20, "collaborator": MessageLookupByLibrary.simpleMessage("Colaborador"), "collaboratorsCanAddPhotosAndVideosToTheSharedAlbum": MessageLookupByLibrary.simpleMessage( "Colaboradores pueden añadir fotos y videos al álbum compartido."), - "collaboratorsSuccessfullyAdded": m19, + "collaboratorsSuccessfullyAdded": m21, "collageLayout": MessageLookupByLibrary.simpleMessage("Disposición"), "collageSaved": MessageLookupByLibrary.simpleMessage( "Collage guardado en la galería"), @@ -616,7 +616,7 @@ class MessageLookup extends MessageLookupByLibrary { "¿Estás seguro de que deseas deshabilitar la autenticación de doble factor?"), "confirmAccountDeletion": MessageLookupByLibrary.simpleMessage("Confirmar borrado de cuenta"), - "confirmAddingTrustedContact": m20, + "confirmAddingTrustedContact": m22, "confirmDeletePrompt": MessageLookupByLibrary.simpleMessage( "Sí, quiero eliminar permanentemente esta cuenta y todos sus datos en todas las aplicaciones."), "confirmPassword": @@ -629,10 +629,10 @@ class MessageLookup extends MessageLookupByLibrary { "Confirma tu clave de recuperación"), "connectToDevice": MessageLookupByLibrary.simpleMessage("Conectar a dispositivo"), - "contactFamilyAdmin": m21, + "contactFamilyAdmin": m23, "contactSupport": MessageLookupByLibrary.simpleMessage("Contactar con soporte"), - "contactToManageSubscription": m22, + "contactToManageSubscription": m24, "contacts": MessageLookupByLibrary.simpleMessage("Contactos"), "contents": MessageLookupByLibrary.simpleMessage("Contenidos"), "continueLabel": MessageLookupByLibrary.simpleMessage("Continuar"), @@ -678,7 +678,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("El uso actual es de "), "currentlyRunning": MessageLookupByLibrary.simpleMessage("ejecutando"), "custom": MessageLookupByLibrary.simpleMessage("Personalizado"), - "customEndpoint": m23, + "customEndpoint": m25, "darkTheme": MessageLookupByLibrary.simpleMessage("Oscuro"), "dayToday": MessageLookupByLibrary.simpleMessage("Hoy"), "dayYesterday": MessageLookupByLibrary.simpleMessage("Ayer"), @@ -716,12 +716,12 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Eliminar del dispositivo"), "deleteFromEnte": MessageLookupByLibrary.simpleMessage("Eliminar de Ente"), - "deleteItemCount": m24, + "deleteItemCount": m26, "deleteLocation": MessageLookupByLibrary.simpleMessage("Borrar la ubicación"), "deletePhotos": MessageLookupByLibrary.simpleMessage("Borrar las fotos"), - "deleteProgress": m25, + "deleteProgress": m27, "deleteReason1": MessageLookupByLibrary.simpleMessage( "Falta una característica clave que necesito"), "deleteReason2": MessageLookupByLibrary.simpleMessage( @@ -762,7 +762,7 @@ class MessageLookup extends MessageLookupByLibrary { "Los espectadores todavía pueden tomar capturas de pantalla o guardar una copia de tus fotos usando herramientas externas"), "disableDownloadWarningTitle": MessageLookupByLibrary.simpleMessage("Por favor, ten en cuenta"), - "disableLinkMessage": m26, + "disableLinkMessage": m28, "disableTwofactor": MessageLookupByLibrary.simpleMessage("Deshabilitar dos factores"), "disablingTwofactorAuthentication": @@ -805,9 +805,9 @@ class MessageLookup extends MessageLookupByLibrary { "downloadFailed": MessageLookupByLibrary.simpleMessage("Descarga fallida"), "downloading": MessageLookupByLibrary.simpleMessage("Descargando..."), - "dropSupportEmail": m27, - "duplicateFileCountWithStorageSaved": m28, - "duplicateItemsGroup": m29, + "dropSupportEmail": m29, + "duplicateFileCountWithStorageSaved": m30, + "duplicateItemsGroup": m31, "edit": MessageLookupByLibrary.simpleMessage("Editar"), "editLocation": MessageLookupByLibrary.simpleMessage("Editar la ubicación"), @@ -821,8 +821,12 @@ class MessageLookup extends MessageLookupByLibrary { "Las ediciones a la ubicación sólo se verán dentro de Ente"), "eligible": MessageLookupByLibrary.simpleMessage("elegible"), "email": MessageLookupByLibrary.simpleMessage("Correo electrónico"), - "emailChangedTo": m30, - "emailNoEnteAccount": m31, + "emailAlreadyRegistered": MessageLookupByLibrary.simpleMessage( + "Correo electrónico ya registrado."), + "emailChangedTo": m32, + "emailNoEnteAccount": m33, + "emailNotRegistered": MessageLookupByLibrary.simpleMessage( + "Correo electrónico no registrado."), "emailVerificationToggle": MessageLookupByLibrary.simpleMessage( "Verificación por correo electrónico"), "emailYourLogs": MessageLookupByLibrary.simpleMessage( @@ -908,7 +912,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Exportar tus datos"), "extraPhotosFound": MessageLookupByLibrary.simpleMessage( "Fotos adicionales encontradas"), - "extraPhotosFoundFor": m32, + "extraPhotosFoundFor": m34, "faceNotClusteredYet": MessageLookupByLibrary.simpleMessage( "Cara no agrupada todavía, por favor vuelve más tarde"), "faceRecognition": @@ -959,8 +963,8 @@ class MessageLookup extends MessageLookupByLibrary { "fileTypes": MessageLookupByLibrary.simpleMessage("Tipos de archivos"), "fileTypesAndNames": MessageLookupByLibrary.simpleMessage("Tipos de archivo y nombres"), - "filesBackedUpFromDevice": m33, - "filesBackedUpInAlbum": m34, + "filesBackedUpFromDevice": m35, + "filesBackedUpInAlbum": m36, "filesDeleted": MessageLookupByLibrary.simpleMessage("Archivos eliminados"), "filesSavedToGallery": MessageLookupByLibrary.simpleMessage( @@ -977,26 +981,26 @@ class MessageLookup extends MessageLookupByLibrary { "foundFaces": MessageLookupByLibrary.simpleMessage("Caras encontradas"), "freeStorageClaimed": MessageLookupByLibrary.simpleMessage( "Almacenamiento gratuito obtenido"), - "freeStorageOnReferralSuccess": m35, + "freeStorageOnReferralSuccess": m4, "freeStorageUsable": MessageLookupByLibrary.simpleMessage( "Almacenamiento libre disponible"), "freeTrial": MessageLookupByLibrary.simpleMessage("Prueba gratuita"), - "freeTrialValidTill": m36, - "freeUpAccessPostDelete": m37, - "freeUpAmount": m38, + "freeTrialValidTill": m37, + "freeUpAccessPostDelete": m38, + "freeUpAmount": m39, "freeUpDeviceSpace": MessageLookupByLibrary.simpleMessage( "Liberar espacio del dispositivo"), "freeUpDeviceSpaceDesc": MessageLookupByLibrary.simpleMessage( "Ahorra espacio en tu dispositivo limpiando archivos que tienen copia de seguridad."), "freeUpSpace": MessageLookupByLibrary.simpleMessage("Liberar espacio"), - "freeUpSpaceSaving": m39, + "freeUpSpaceSaving": m40, "gallery": MessageLookupByLibrary.simpleMessage("Galería"), "galleryMemoryLimitInfo": MessageLookupByLibrary.simpleMessage( "Hasta 1000 memorias mostradas en la galería"), "general": MessageLookupByLibrary.simpleMessage("General"), "generatingEncryptionKeys": MessageLookupByLibrary.simpleMessage( "Generando claves de cifrado..."), - "genericProgress": m40, + "genericProgress": m41, "goToSettings": MessageLookupByLibrary.simpleMessage("Ir a Ajustes"), "googlePlayId": MessageLookupByLibrary.simpleMessage("ID de Google Play"), @@ -1080,7 +1084,7 @@ class MessageLookup extends MessageLookupByLibrary { "itLooksLikeSomethingWentWrongPleaseRetryAfterSome": MessageLookupByLibrary.simpleMessage( "Parece que algo salió mal. Por favor, vuelve a intentarlo después de algún tiempo. Si el error persiste, ponte en contacto con nuestro equipo de soporte."), - "itemCount": m41, + "itemCount": m42, "itemsShowTheNumberOfDaysRemainingBeforePermanentDeletion": MessageLookupByLibrary.simpleMessage( "Los artículos muestran el número de días restantes antes de ser borrados permanente"), @@ -1111,22 +1115,23 @@ class MessageLookup extends MessageLookupByLibrary { "legacy": MessageLookupByLibrary.simpleMessage("Legado"), "legacyAccounts": MessageLookupByLibrary.simpleMessage("Cuentas legadas"), - "legacyInvite": m42, + "legacyInvite": m43, "legacyPageDesc": MessageLookupByLibrary.simpleMessage( "Legado permite a los contactos de confianza acceder a su cuenta en su ausencia."), "legacyPageDesc2": MessageLookupByLibrary.simpleMessage( "Los contactos de confianza pueden iniciar la recuperación de la cuenta, y si no están bloqueados en un plazo de 30 días, restablecer su contraseña y acceder a su cuenta."), "light": MessageLookupByLibrary.simpleMessage("Brillo"), "lightTheme": MessageLookupByLibrary.simpleMessage("Claro"), - "link": MessageLookupByLibrary.simpleMessage("Link"), + "link": MessageLookupByLibrary.simpleMessage("Enlace"), "linkCopiedToClipboard": MessageLookupByLibrary.simpleMessage( "Enlace copiado al portapapeles"), "linkDeviceLimit": MessageLookupByLibrary.simpleMessage("Límite del dispositivo"), - "linkEmail": MessageLookupByLibrary.simpleMessage("Link email"), + "linkEmail": + MessageLookupByLibrary.simpleMessage("Vincular correo electrónico"), "linkEnabled": MessageLookupByLibrary.simpleMessage("Habilitado"), "linkExpired": MessageLookupByLibrary.simpleMessage("Vencido"), - "linkExpiresOn": m43, + "linkExpiresOn": m44, "linkExpiry": MessageLookupByLibrary.simpleMessage("Enlace vence"), "linkHasExpired": MessageLookupByLibrary.simpleMessage("El enlace ha caducado"), @@ -1223,7 +1228,7 @@ class MessageLookup extends MessageLookupByLibrary { "maps": MessageLookupByLibrary.simpleMessage("Mapas"), "mastodon": MessageLookupByLibrary.simpleMessage("Mastodon"), "matrix": MessageLookupByLibrary.simpleMessage("Matrix"), - "memoryCount": m3, + "memoryCount": m5, "merchandise": MessageLookupByLibrary.simpleMessage("Mercancías"), "mergeWithExisting": MessageLookupByLibrary.simpleMessage("Combinar con existente"), @@ -1253,11 +1258,11 @@ class MessageLookup extends MessageLookupByLibrary { "moreDetails": MessageLookupByLibrary.simpleMessage("Más detalles"), "mostRecent": MessageLookupByLibrary.simpleMessage("Más reciente"), "mostRelevant": MessageLookupByLibrary.simpleMessage("Más relevante"), - "moveItem": m44, + "moveItem": m45, "moveToAlbum": MessageLookupByLibrary.simpleMessage("Mover al álbum"), "moveToHiddenAlbum": MessageLookupByLibrary.simpleMessage("Mover al álbum oculto"), - "movedSuccessfullyTo": m45, + "movedSuccessfullyTo": m46, "movedToTrash": MessageLookupByLibrary.simpleMessage("Movido a la papelera"), "movingFilesToAlbum": MessageLookupByLibrary.simpleMessage( @@ -1286,8 +1291,8 @@ class MessageLookup extends MessageLookupByLibrary { "No tienes archivos en este dispositivo que puedan ser borrados"), "noDuplicates": MessageLookupByLibrary.simpleMessage("✨ Sin duplicados"), - "noEnteAccountExclamation": - MessageLookupByLibrary.simpleMessage("No Ente account!"), + "noEnteAccountExclamation": MessageLookupByLibrary.simpleMessage( + "¡No existe una cuenta de Ente!"), "noExifData": MessageLookupByLibrary.simpleMessage("No hay datos EXIF"), "noFacesFound": MessageLookupByLibrary.simpleMessage("No se han encontrado caras"), @@ -1310,10 +1315,10 @@ class MessageLookup extends MessageLookupByLibrary { "noResults": MessageLookupByLibrary.simpleMessage("Sin resultados"), "noResultsFound": MessageLookupByLibrary.simpleMessage( "No se han encontrado resultados"), - "noSuggestionsForPerson": m46, + "noSuggestionsForPerson": m47, "noSystemLockFound": MessageLookupByLibrary.simpleMessage( "Bloqueo de sistema no encontrado"), - "notPersonLabel": m47, + "notPersonLabel": m48, "nothingSharedWithYouYet": MessageLookupByLibrary.simpleMessage( "Aún no hay nada compartido contigo"), "nothingToSeeHere": MessageLookupByLibrary.simpleMessage( @@ -1323,7 +1328,7 @@ class MessageLookup extends MessageLookupByLibrary { "onDevice": MessageLookupByLibrary.simpleMessage("En el dispositivo"), "onEnte": MessageLookupByLibrary.simpleMessage( "En ente"), - "onlyFamilyAdminCanChangeCode": m48, + "onlyFamilyAdminCanChangeCode": m49, "onlyThem": MessageLookupByLibrary.simpleMessage("Solo ellos"), "oops": MessageLookupByLibrary.simpleMessage("Ups"), "oopsCouldNotSaveEdits": MessageLookupByLibrary.simpleMessage( @@ -1372,7 +1377,7 @@ class MessageLookup extends MessageLookupByLibrary { "paymentFailed": MessageLookupByLibrary.simpleMessage("Pago fallido"), "paymentFailedMessage": MessageLookupByLibrary.simpleMessage( "Lamentablemente tu pago falló. Por favor, ¡contacta con el soporte técnico y te ayudaremos!"), - "paymentFailedTalkToProvider": m49, + "paymentFailedTalkToProvider": m50, "pendingItems": MessageLookupByLibrary.simpleMessage("Elementos pendientes"), "pendingSync": @@ -1397,14 +1402,14 @@ class MessageLookup extends MessageLookupByLibrary { "photosAddedByYouWillBeRemovedFromTheAlbum": MessageLookupByLibrary.simpleMessage( "Las fotos añadidas por ti serán removidas del álbum"), - "photosCount": m50, + "photosCount": m51, "pickCenterPoint": MessageLookupByLibrary.simpleMessage("Elegir punto central"), "pinAlbum": MessageLookupByLibrary.simpleMessage("Fijar álbum"), "pinLock": MessageLookupByLibrary.simpleMessage("Bloqueo con Pin"), "playOnTv": MessageLookupByLibrary.simpleMessage("Reproducir álbum en TV"), - "playStoreFreeTrialValidTill": m51, + "playStoreFreeTrialValidTill": m52, "playstoreSubscription": MessageLookupByLibrary.simpleMessage("Suscripción en la PlayStore"), "pleaseCheckYourInternetConnectionAndTryAgain": @@ -1416,14 +1421,14 @@ class MessageLookup extends MessageLookupByLibrary { "pleaseContactSupportIfTheProblemPersists": MessageLookupByLibrary.simpleMessage( "Por favor, contacta a soporte técnico si el problema persiste"), - "pleaseEmailUsAt": m52, + "pleaseEmailUsAt": m53, "pleaseGrantPermissions": MessageLookupByLibrary.simpleMessage("Por favor, concede permiso"), "pleaseLoginAgain": MessageLookupByLibrary.simpleMessage( "Por favor, vuelve a iniciar sesión"), "pleaseSelectQuickLinksToRemove": MessageLookupByLibrary.simpleMessage( "Por favor, selecciona enlaces rápidos para eliminar"), - "pleaseSendTheLogsTo": m53, + "pleaseSendTheLogsTo": m54, "pleaseTryAgain": MessageLookupByLibrary.simpleMessage( "Por favor, inténtalo nuevamente"), "pleaseVerifyTheCodeYouHaveEntered": @@ -1452,7 +1457,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Compartir en privado"), "proceed": MessageLookupByLibrary.simpleMessage("Continuar"), "processed": MessageLookupByLibrary.simpleMessage("Procesado"), - "processingImport": m54, + "processingImport": m55, "publicLinkCreated": MessageLookupByLibrary.simpleMessage("Enlace público creado"), "publicLinkEnabled": @@ -1463,7 +1468,7 @@ class MessageLookup extends MessageLookupByLibrary { "rateTheApp": MessageLookupByLibrary.simpleMessage("Evalúa la aplicación"), "rateUs": MessageLookupByLibrary.simpleMessage("Califícanos"), - "rateUsOnStore": m55, + "rateUsOnStore": m56, "recover": MessageLookupByLibrary.simpleMessage("Recuperar"), "recoverAccount": MessageLookupByLibrary.simpleMessage("Recuperar cuenta"), @@ -1472,7 +1477,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Recuperar cuenta"), "recoveryInitiated": MessageLookupByLibrary.simpleMessage("Recuperación iniciada"), - "recoveryInitiatedDesc": m56, + "recoveryInitiatedDesc": m57, "recoveryKey": MessageLookupByLibrary.simpleMessage("Clave de recuperación"), "recoveryKeyCopiedToClipboard": MessageLookupByLibrary.simpleMessage( @@ -1487,12 +1492,12 @@ class MessageLookup extends MessageLookupByLibrary { "Clave de recuperación verificada"), "recoveryKeyVerifyReason": MessageLookupByLibrary.simpleMessage( "Tu clave de recuperación es la única forma de recuperar tus fotos si olvidas tu contraseña. Puedes encontrar tu clave de recuperación en Ajustes > Cuenta.\n\nPor favor, introduce tu clave de recuperación aquí para verificar que la has guardado correctamente."), - "recoveryReady": m57, + "recoveryReady": m58, "recoverySuccessful": MessageLookupByLibrary.simpleMessage("¡Recuperación exitosa!"), "recoveryWarning": MessageLookupByLibrary.simpleMessage( "Un contacto de confianza está intentando acceder a tu cuenta"), - "recoveryWarningBody": m58, + "recoveryWarningBody": m59, "recreatePasswordBody": MessageLookupByLibrary.simpleMessage( "El dispositivo actual no es lo suficientemente potente para verificar su contraseña, pero podemos regenerarla de una manera que funcione con todos los dispositivos.\n\nPor favor inicie sesión usando su clave de recuperación y regenere su contraseña (puede volver a utilizar la misma si lo desea)."), "recreatePasswordTitle": @@ -1507,7 +1512,7 @@ class MessageLookup extends MessageLookupByLibrary { "1. Dale este código a tus amigos"), "referralStep2": MessageLookupByLibrary.simpleMessage( "2. Se suscriben a un plan de pago"), - "referralStep3": m59, + "referralStep3": m60, "referrals": MessageLookupByLibrary.simpleMessage("Referidos"), "referralsAreCurrentlyPaused": MessageLookupByLibrary.simpleMessage( "Las referencias están actualmente en pausa"), @@ -1538,7 +1543,7 @@ class MessageLookup extends MessageLookupByLibrary { "removeLink": MessageLookupByLibrary.simpleMessage("Eliminar enlace"), "removeParticipant": MessageLookupByLibrary.simpleMessage("Quitar participante"), - "removeParticipantBody": m60, + "removeParticipantBody": m61, "removePersonLabel": MessageLookupByLibrary.simpleMessage( "Eliminar etiqueta de persona"), "removePublicLink": @@ -1558,7 +1563,7 @@ class MessageLookup extends MessageLookupByLibrary { "renameFile": MessageLookupByLibrary.simpleMessage("Renombrar archivo"), "renewSubscription": MessageLookupByLibrary.simpleMessage("Renovar suscripción"), - "renewsOn": m61, + "renewsOn": m62, "reportABug": MessageLookupByLibrary.simpleMessage("Reportar un error"), "reportBug": MessageLookupByLibrary.simpleMessage("Reportar error"), "resendEmail": @@ -1638,8 +1643,8 @@ class MessageLookup extends MessageLookupByLibrary { "Invita a gente y verás todas las fotos compartidas aquí"), "searchPersonsEmptySection": MessageLookupByLibrary.simpleMessage( "Las personas se mostrarán aquí cuando se complete el procesado y la sincronización"), - "searchResultCount": m62, - "searchSectionsLengthMismatch": m63, + "searchResultCount": m63, + "searchSectionsLengthMismatch": m64, "security": MessageLookupByLibrary.simpleMessage("Seguridad"), "seePublicAlbumLinksInApp": MessageLookupByLibrary.simpleMessage( "Ver enlaces del álbum público en la aplicación"), @@ -1675,8 +1680,8 @@ class MessageLookup extends MessageLookupByLibrary { "selectedItemsWillBeDeletedFromAllAlbumsAndMoved": MessageLookupByLibrary.simpleMessage( "Los archivos seleccionados serán eliminados de todos los álbumes y movidos a la papelera."), - "selectedPhotos": m4, - "selectedPhotosWithYours": m64, + "selectedPhotos": m6, + "selectedPhotosWithYours": m65, "send": MessageLookupByLibrary.simpleMessage("Enviar"), "sendEmail": MessageLookupByLibrary.simpleMessage("Enviar correo electrónico"), @@ -1710,16 +1715,16 @@ class MessageLookup extends MessageLookupByLibrary { "shareAnAlbumNow": MessageLookupByLibrary.simpleMessage("Compartir un álbum ahora"), "shareLink": MessageLookupByLibrary.simpleMessage("Compartir enlace"), - "shareMyVerificationID": m65, + "shareMyVerificationID": m66, "shareOnlyWithThePeopleYouWant": MessageLookupByLibrary.simpleMessage( "Comparte sólo con la gente que quieres"), - "shareTextConfirmOthersVerificationID": m5, + "shareTextConfirmOthersVerificationID": m7, "shareTextRecommendUsingEnte": MessageLookupByLibrary.simpleMessage( "Descarga Ente para que podamos compartir fácilmente fotos y videos en calidad original.\n\nhttps://ente.io"), - "shareTextReferralCode": m66, + "shareTextReferralCode": m67, "shareWithNonenteUsers": MessageLookupByLibrary.simpleMessage( "Compartir con usuarios fuera de Ente"), - "shareWithPeopleSectionTitle": m67, + "shareWithPeopleSectionTitle": m68, "shareYourFirstAlbum": MessageLookupByLibrary.simpleMessage("Comparte tu primer álbum"), "sharedAlbumSectionDescription": MessageLookupByLibrary.simpleMessage( @@ -1731,7 +1736,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Nuevas fotos compartidas"), "sharedPhotoNotificationsExplanation": MessageLookupByLibrary.simpleMessage( "Recibir notificaciones cuando alguien agrega una foto a un álbum compartido contigo"), - "sharedWith": m68, + "sharedWith": m69, "sharedWithMe": MessageLookupByLibrary.simpleMessage("Compartido conmigo"), "sharedWithYou": @@ -1748,11 +1753,11 @@ class MessageLookup extends MessageLookupByLibrary { "Cerrar la sesión de otros dispositivos"), "signUpTerms": MessageLookupByLibrary.simpleMessage( "Estoy de acuerdo con los términos del servicio y la política de privacidad"), - "singleFileDeleteFromDevice": m69, + "singleFileDeleteFromDevice": m70, "singleFileDeleteHighlight": MessageLookupByLibrary.simpleMessage( "Se borrará de todos los álbumes."), - "singleFileInBothLocalAndRemote": m70, - "singleFileInRemoteOnly": m71, + "singleFileInBothLocalAndRemote": m71, + "singleFileInRemoteOnly": m72, "skip": MessageLookupByLibrary.simpleMessage("Omitir"), "social": MessageLookupByLibrary.simpleMessage("Social"), "someItemsAreInBothEnteAndYourDevice": @@ -1803,10 +1808,10 @@ class MessageLookup extends MessageLookupByLibrary { "storageInGB": m1, "storageLimitExceeded": MessageLookupByLibrary.simpleMessage("Límite de datos excedido"), - "storageUsageInfo": m72, + "storageUsageInfo": m73, "strongStrength": MessageLookupByLibrary.simpleMessage("Segura"), - "subAlreadyLinkedErrMessage": m73, - "subWillBeCancelledOn": m74, + "subAlreadyLinkedErrMessage": m74, + "subWillBeCancelledOn": m75, "subscribe": MessageLookupByLibrary.simpleMessage("Suscribirse"), "subscribeToEnableSharing": MessageLookupByLibrary.simpleMessage( "Necesitas una suscripción activa de pago para habilitar el compartir."), @@ -1823,7 +1828,7 @@ class MessageLookup extends MessageLookupByLibrary { "suggestFeatures": MessageLookupByLibrary.simpleMessage("Sugerir una característica"), "support": MessageLookupByLibrary.simpleMessage("Soporte"), - "syncProgress": m75, + "syncProgress": m76, "syncStopped": MessageLookupByLibrary.simpleMessage("Sincronización detenida"), "syncing": MessageLookupByLibrary.simpleMessage("Sincronizando..."), @@ -1834,7 +1839,7 @@ class MessageLookup extends MessageLookupByLibrary { "tapToUnlock": MessageLookupByLibrary.simpleMessage("Toca para desbloquear"), "tapToUpload": MessageLookupByLibrary.simpleMessage("Toca para subir"), - "tapToUploadIsIgnoredDue": m76, + "tapToUploadIsIgnoredDue": m77, "tempErrorContactSupportIfPersists": MessageLookupByLibrary.simpleMessage( "Parece que algo salió mal. Por favor, vuelve a intentarlo después de algún tiempo. Si el error persiste, ponte en contacto con nuestro equipo de soporte."), "terminate": MessageLookupByLibrary.simpleMessage("Terminar"), @@ -1858,7 +1863,7 @@ class MessageLookup extends MessageLookupByLibrary { "theseItemsWillBeDeletedFromYourDevice": MessageLookupByLibrary.simpleMessage( "Estos elementos se eliminarán de tu dispositivo."), - "theyAlsoGetXGb": m77, + "theyAlsoGetXGb": m8, "theyWillBeDeletedFromAllAlbums": MessageLookupByLibrary.simpleMessage( "Se borrarán de todos los álbumes."), "thisActionCannotBeUndone": MessageLookupByLibrary.simpleMessage( diff --git a/mobile/lib/generated/intl/messages_et.dart b/mobile/lib/generated/intl/messages_et.dart index 0fb7edefd7e..dc3a61a6ffd 100644 --- a/mobile/lib/generated/intl/messages_et.dart +++ b/mobile/lib/generated/intl/messages_et.dart @@ -137,9 +137,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Lahkuda jagatud albumist?"), "light": MessageLookupByLibrary.simpleMessage("Hele"), "lightTheme": MessageLookupByLibrary.simpleMessage("Hele"), - "link": MessageLookupByLibrary.simpleMessage("Link"), "linkDeviceLimit": MessageLookupByLibrary.simpleMessage("Seadme limit"), - "linkEmail": MessageLookupByLibrary.simpleMessage("Link email"), "linkEnabled": MessageLookupByLibrary.simpleMessage("Sees"), "linkExpired": MessageLookupByLibrary.simpleMessage("Aegunud"), "linkExpiry": MessageLookupByLibrary.simpleMessage("Lingi aegumine"), @@ -167,8 +165,6 @@ class MessageLookup extends MessageLookupByLibrary { "newest": MessageLookupByLibrary.simpleMessage("Uusimad"), "no": MessageLookupByLibrary.simpleMessage("Ei"), "noDeviceLimit": MessageLookupByLibrary.simpleMessage("Puudub"), - "noEnteAccountExclamation": - MessageLookupByLibrary.simpleMessage("No Ente account!"), "ok": MessageLookupByLibrary.simpleMessage("OK"), "oops": MessageLookupByLibrary.simpleMessage("Oih"), "oopsSomethingWentWrong": diff --git a/mobile/lib/generated/intl/messages_fa.dart b/mobile/lib/generated/intl/messages_fa.dart index 003457bcc02..7c3bfea529d 100644 --- a/mobile/lib/generated/intl/messages_fa.dart +++ b/mobile/lib/generated/intl/messages_fa.dart @@ -20,20 +20,20 @@ typedef String MessageIfAbsent(String messageStr, List args); class MessageLookup extends MessageLookupByLibrary { String get localeName => 'fa'; - static String m13(versionValue) => "نسخه: ${versionValue}"; + static String m16(versionValue) => "نسخه: ${versionValue}"; - static String m14(freeAmount, storageUnit) => + static String m17(freeAmount, storageUnit) => "${freeAmount} ${storageUnit} رایگان"; - static String m27(supportEmail) => + static String m29(supportEmail) => "لطفا یک ایمیل از آدرس ایمیلی که ثبت نام کردید به ${supportEmail} ارسال کنید"; static String m0(passwordStrengthValue) => "قدرت رمز عبور: ${passwordStrengthValue}"; - static String m55(storeName) => "به ما در ${storeName} امتیاز دهید"; + static String m56(storeName) => "به ما در ${storeName} امتیاز دهید"; - static String m72( + static String m73( usedAmount, usedStorageUnit, totalAmount, totalStorageUnit) => "${usedAmount} ${usedStorageUnit} از ${totalAmount} ${totalStorageUnit} استفاده شده"; @@ -75,7 +75,7 @@ class MessageLookup extends MessageLookupByLibrary { "androidCancelButton": MessageLookupByLibrary.simpleMessage("لغو"), "androidIosWebDesktop": MessageLookupByLibrary.simpleMessage( "اندروید، آی‌اواس، وب، رایانه رومیزی"), - "appVersion": m13, + "appVersion": m16, "archive": MessageLookupByLibrary.simpleMessage("بایگانی"), "areYouSureYouWantToLogout": MessageLookupByLibrary.simpleMessage( "آیا برای خارج شدن مطمئن هستید؟"), @@ -86,7 +86,7 @@ class MessageLookup extends MessageLookupByLibrary { "authToViewYourActiveSessions": MessageLookupByLibrary.simpleMessage( "لطفاً برای مشاهده دستگاه‌های فعال خود احراز هویت کنید"), "available": MessageLookupByLibrary.simpleMessage("در دسترس"), - "availableStorageSpace": m14, + "availableStorageSpace": m17, "backedUpFolders": MessageLookupByLibrary.simpleMessage("پوشه‌های پشتیبان گیری شده"), "backup": MessageLookupByLibrary.simpleMessage("پشتیبان گیری"), @@ -166,7 +166,7 @@ class MessageLookup extends MessageLookupByLibrary { "discord": MessageLookupByLibrary.simpleMessage("دیسکورد"), "doThisLater": MessageLookupByLibrary.simpleMessage("بعداً انجام شود"), "downloading": MessageLookupByLibrary.simpleMessage("در حال دانلود..."), - "dropSupportEmail": m27, + "dropSupportEmail": m29, "editLocationTagTitle": MessageLookupByLibrary.simpleMessage("ویرایش مکان"), "email": MessageLookupByLibrary.simpleMessage("ایمیل"), @@ -241,8 +241,6 @@ class MessageLookup extends MessageLookupByLibrary { "kindlyHelpUsWithThisInformation": MessageLookupByLibrary.simpleMessage( "لطفا با این اطلاعات به ما کمک کنید"), "lightTheme": MessageLookupByLibrary.simpleMessage("روشن"), - "link": MessageLookupByLibrary.simpleMessage("Link"), - "linkEmail": MessageLookupByLibrary.simpleMessage("Link email"), "loadMessage2": MessageLookupByLibrary.simpleMessage( "ما تا کنون بیش از ۳۰ میلیون خاطره را حفظ کرده‌ایم"), "lockButtonLabel": MessageLookupByLibrary.simpleMessage("قفل"), @@ -264,8 +262,6 @@ class MessageLookup extends MessageLookupByLibrary { "never": MessageLookupByLibrary.simpleMessage("هرگز"), "newToEnte": MessageLookupByLibrary.simpleMessage("کاربر جدید Ente"), "no": MessageLookupByLibrary.simpleMessage("خیر"), - "noEnteAccountExclamation": - MessageLookupByLibrary.simpleMessage("No Ente account!"), "noRecoveryKey": MessageLookupByLibrary.simpleMessage("کلید بازیابی ندارید؟"), "noRecoveryKeyNoDecryption": MessageLookupByLibrary.simpleMessage( @@ -296,7 +292,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("پشتیبان گیری خصوصی"), "privateSharing": MessageLookupByLibrary.simpleMessage("اشتراک گذاری خصوصی"), - "rateUsOnStore": m55, + "rateUsOnStore": m56, "recover": MessageLookupByLibrary.simpleMessage("بازیابی"), "recoverAccount": MessageLookupByLibrary.simpleMessage("بازیابی حساب کاربری"), @@ -372,7 +368,7 @@ class MessageLookup extends MessageLookupByLibrary { "storageBreakupFamily": MessageLookupByLibrary.simpleMessage("خانوادگی"), "storageBreakupYou": MessageLookupByLibrary.simpleMessage("شما"), - "storageUsageInfo": m72, + "storageUsageInfo": m73, "strongStrength": MessageLookupByLibrary.simpleMessage("قوی"), "support": MessageLookupByLibrary.simpleMessage("پشتیبانی"), "systemTheme": MessageLookupByLibrary.simpleMessage("سیستم"), diff --git a/mobile/lib/generated/intl/messages_fr.dart b/mobile/lib/generated/intl/messages_fr.dart index fb93bb4ddb8..5e602e653af 100644 --- a/mobile/lib/generated/intl/messages_fr.dart +++ b/mobile/lib/generated/intl/messages_fr.dart @@ -20,37 +20,37 @@ typedef String MessageIfAbsent(String messageStr, List args); class MessageLookup extends MessageLookupByLibrary { String get localeName => 'fr'; - static String m6(count) => + static String m9(count) => "${Intl.plural(count, zero: 'Ajouter un collaborateur', one: 'Ajouter un collaborateur', other: 'Ajouter des collaborateurs')}"; - static String m7(count) => + static String m10(count) => "${Intl.plural(count, one: 'Ajoutez un objet', other: 'Ajoutez des objets')}"; - static String m8(storageAmount, endDate) => + static String m11(storageAmount, endDate) => "Votre extension de ${storageAmount} est valable jusqu\'au ${endDate}"; - static String m9(count) => + static String m12(count) => "${Intl.plural(count, zero: 'Ajouter un observateur', one: 'Ajouter un observateur', other: 'Ajouter des observateurs')}"; - static String m10(emailOrName) => "Ajouté par ${emailOrName}"; + static String m13(emailOrName) => "Ajouté par ${emailOrName}"; - static String m11(albumName) => "Ajouté avec succès à ${albumName}"; + static String m14(albumName) => "Ajouté avec succès à ${albumName}"; - static String m12(count) => + static String m15(count) => "${Intl.plural(count, zero: 'Aucun Participant', one: '1 Participant', other: '${count} Participants')}"; - static String m13(versionValue) => "Version : ${versionValue}"; + static String m16(versionValue) => "Version : ${versionValue}"; - static String m14(freeAmount, storageUnit) => + static String m17(freeAmount, storageUnit) => "${freeAmount} ${storageUnit} libre"; - static String m15(paymentProvider) => + static String m18(paymentProvider) => "Veuillez d\'abord annuler votre abonnement existant de ${paymentProvider}"; - static String m16(user) => + static String m3(user) => "${user} ne pourra pas ajouter plus de photos à cet album\n\nIl pourra toujours supprimer les photos existantes ajoutées par eux"; - static String m17(isFamilyMember, storageAmountInGb) => + static String m19(isFamilyMember, storageAmountInGb) => "${Intl.select(isFamilyMember, { 'true': 'Votre famille a demandé ${storageAmountInGb} GB jusqu\'à présent', @@ -60,179 +60,179 @@ class MessageLookup extends MessageLookupByLibrary { 'Vous avez réclamé ${storageAmountInGb} GB jusqu\'à présent!', })}"; - static String m18(albumName) => "Lien collaboratif créé pour ${albumName}"; + static String m20(albumName) => "Lien collaboratif créé pour ${albumName}"; - static String m19(count) => + static String m21(count) => "${Intl.plural(count, zero: '0 collaborateur ajouté', one: '1 collaborateur ajouté', other: '${count} collaborateurs ajoutés')}"; - static String m20(email, numOfDays) => + static String m22(email, numOfDays) => "Vous êtes sur le point d\'ajouter ${email} en tant que contact sûr. Il pourra récupérer votre compte si vous êtes absent pendant ${numOfDays} jours."; - static String m21(familyAdminEmail) => + static String m23(familyAdminEmail) => "Veuillez contacter ${familyAdminEmail} pour gérer votre abonnement"; - static String m22(provider) => + static String m24(provider) => "Veuillez nous contacter à support@ente.io pour gérer votre abonnement ${provider}."; - static String m23(endpoint) => "Connecté à ${endpoint}"; + static String m25(endpoint) => "Connecté à ${endpoint}"; - static String m24(count) => + static String m26(count) => "${Intl.plural(count, one: 'Supprimer le fichier', other: 'Supprimer ${count} fichiers')}"; - static String m25(currentlyDeleting, totalCount) => + static String m27(currentlyDeleting, totalCount) => "Suppression de ${currentlyDeleting} / ${totalCount}"; - static String m26(albumName) => + static String m28(albumName) => "Cela supprimera le lien public pour accéder à \"${albumName}\"."; - static String m27(supportEmail) => + static String m29(supportEmail) => "Veuillez envoyer un e-mail à ${supportEmail} depuis votre adresse enregistrée"; - static String m28(count, storageSaved) => + static String m30(count, storageSaved) => "Vous avez nettoyé ${Intl.plural(count, one: '${count} fichier dupliqué', other: '${count} fichiers dupliqués')}, en libérant (${storageSaved}!)"; - static String m29(count, formattedSize) => + static String m31(count, formattedSize) => "${count} fichiers, ${formattedSize} chacun"; - static String m30(newEmail) => "L\'e-mail a été changé en ${newEmail}"; + static String m32(newEmail) => "L\'e-mail a été changé en ${newEmail}"; - static String m31(email) => + static String m33(email) => "${email} n\'a pas de compte Ente.\n\nEnvoyez une invitation pour partager des photos."; - static String m32(text) => "Photos supplémentaires trouvées pour ${text}"; + static String m34(text) => "Photos supplémentaires trouvées pour ${text}"; - static String m33(count, formattedNumber) => + static String m35(count, formattedNumber) => "${Intl.plural(count, one: '1 fichier sur cet appareil a été sauvegardé en toute sécurité', other: '${formattedNumber} fichiers sur cet appareil ont été sauvegardés en toute sécurité')}"; - static String m34(count, formattedNumber) => + static String m36(count, formattedNumber) => "${Intl.plural(count, one: '1 fichier dans cet album a été sauvegardé en toute sécurité', other: '${formattedNumber} fichiers dans cet album ont été sauvegardés en toute sécurité')}"; - static String m35(storageAmountInGB) => + static String m4(storageAmountInGB) => "${storageAmountInGB} Go chaque fois que quelqu\'un s\'inscrit à une offre payante et applique votre code"; - static String m36(endDate) => "Essai gratuit valide jusqu’au ${endDate}"; + static String m37(endDate) => "Essai gratuit valide jusqu’au ${endDate}"; - static String m37(count) => + static String m38(count) => "Vous pouvez toujours ${Intl.plural(count, one: 'y', other: 'y')} accéder sur Ente tant que vous avez un abonnement actif"; - static String m38(sizeInMBorGB) => "Libérer ${sizeInMBorGB}"; + static String m39(sizeInMBorGB) => "Libérer ${sizeInMBorGB}"; - static String m39(count, formattedSize) => + static String m40(count, formattedSize) => "${Intl.plural(count, one: 'Il peut être supprimé de l\'appareil pour libérer ${formattedSize}', other: 'Ils peuvent être supprimés de l\'appareil pour libérer ${formattedSize}')}"; - static String m40(currentlyProcessing, totalCount) => + static String m41(currentlyProcessing, totalCount) => "Traitement en cours ${currentlyProcessing} / ${totalCount}"; - static String m41(count) => + static String m42(count) => "${Intl.plural(count, one: '${count} objet', other: '${count} objets')}"; - static String m42(email) => + static String m43(email) => "${email} vous a invité à être un contact de confiance"; - static String m43(expiryTime) => "Le lien expirera le ${expiryTime}"; + static String m44(expiryTime) => "Le lien expirera le ${expiryTime}"; - static String m3(count, formattedCount) => + static String m5(count, formattedCount) => "${Intl.plural(count, one: '${formattedCount} souvenir', other: '${formattedCount} souvenirs')}"; - static String m44(count) => + static String m45(count) => "${Intl.plural(count, one: 'Déplacez l\'objet', other: 'Déplacez des objets')}"; - static String m45(albumName) => "Déplacé avec succès vers ${albumName}"; + static String m46(albumName) => "Déplacé avec succès vers ${albumName}"; - static String m46(personName) => "Aucune suggestion pour ${personName}"; + static String m47(personName) => "Aucune suggestion pour ${personName}"; - static String m47(name) => "Pas ${name}?"; + static String m48(name) => "Pas ${name}?"; - static String m48(familyAdminEmail) => + static String m49(familyAdminEmail) => "Veuillez contacter ${familyAdminEmail} pour modifier votre code."; static String m0(passwordStrengthValue) => "Sécurité du mot de passe : ${passwordStrengthValue}"; - static String m49(providerName) => + static String m50(providerName) => "Veuillez contacter le support ${providerName} si vous avez été facturé"; - static String m50(count) => + static String m51(count) => "${Intl.plural(count, zero: '0 photo', one: '1 photo', other: '${count} photos')}"; - static String m51(endDate) => + static String m52(endDate) => "Essai gratuit valable jusqu\'à ${endDate}.\nVous pouvez choisir un plan payant par la suite."; - static String m52(toEmail) => "Merci de nous envoyer un e-mail à ${toEmail}"; + static String m53(toEmail) => "Merci de nous envoyer un e-mail à ${toEmail}"; - static String m53(toEmail) => "Envoyez les logs à ${toEmail}"; + static String m54(toEmail) => "Envoyez les logs à ${toEmail}"; - static String m54(folderName) => "Traitement de ${folderName}..."; + static String m55(folderName) => "Traitement de ${folderName}..."; - static String m55(storeName) => "Notez-nous sur ${storeName}"; + static String m56(storeName) => "Notez-nous sur ${storeName}"; - static String m56(days, email) => + static String m57(days, email) => "Vous pourrez accéder au compte d\'ici ${days} jours. Une notification sera envoyée à ${email}."; - static String m57(email) => + static String m58(email) => "Vous pouvez maintenant récupérer le compte de ${email} en définissant un nouveau mot de passe."; - static String m58(email) => "${email} tente de récupérer votre compte."; + static String m59(email) => "${email} tente de récupérer votre compte."; - static String m59(storageInGB) => + static String m60(storageInGB) => "3. Vous recevez tous les deux ${storageInGB} GB* gratuits"; - static String m60(userEmail) => + static String m61(userEmail) => "${userEmail} sera retiré de cet album partagé\n\nToutes les photos ajoutées par eux seront également retirées de l\'album"; - static String m61(endDate) => "Renouvellement le ${endDate}"; + static String m62(endDate) => "Renouvellement le ${endDate}"; - static String m62(count) => + static String m63(count) => "${Intl.plural(count, one: '${count} résultat trouvé', other: '${count} résultats trouvés')}"; - static String m63(snapshotLength, searchLength) => + static String m64(snapshotLength, searchLength) => "Incompatibilité de longueur des sections : ${snapshotLength} != ${searchLength}"; - static String m4(count) => "${count} sélectionné(s)"; + static String m6(count) => "${count} sélectionné(s)"; - static String m64(count, yourCount) => + static String m65(count, yourCount) => "${count} sélectionné(s) (${yourCount} à vous)"; - static String m65(verificationID) => + static String m66(verificationID) => "Voici mon ID de vérification : ${verificationID} pour ente.io."; - static String m5(verificationID) => + static String m7(verificationID) => "Hé, pouvez-vous confirmer qu\'il s\'agit de votre ID de vérification ente.io : ${verificationID}"; - static String m66(referralCode, referralStorageInGB) => + static String m67(referralCode, referralStorageInGB) => "Code de parrainage Ente : ${referralCode} \n\nValidez le dans Paramètres → Général → Références pour obtenir ${referralStorageInGB} Go gratuitement après votre inscription à un plan payant\n\nhttps://ente.io"; - static String m67(numberOfPeople) => + static String m68(numberOfPeople) => "${Intl.plural(numberOfPeople, zero: 'Partagez avec des personnes spécifiques', one: 'Partagé avec 1 personne', other: 'Partagé avec ${numberOfPeople} personnes')}"; - static String m68(emailIDs) => "Partagé avec ${emailIDs}"; + static String m69(emailIDs) => "Partagé avec ${emailIDs}"; - static String m69(fileType) => + static String m70(fileType) => "Elle ${fileType} sera supprimée de votre appareil."; - static String m70(fileType) => + static String m71(fileType) => "Cette ${fileType} est à la fois sur ente et sur votre appareil."; - static String m71(fileType) => "Cette ${fileType} sera supprimée de l\'Ente."; + static String m72(fileType) => "Cette ${fileType} sera supprimée de l\'Ente."; static String m1(storageAmountInGB) => "${storageAmountInGB} Go"; - static String m72( + static String m73( usedAmount, usedStorageUnit, totalAmount, totalStorageUnit) => "${usedAmount} ${usedStorageUnit} sur ${totalAmount} ${totalStorageUnit} utilisés"; - static String m73(id) => + static String m74(id) => "Votre ${id} est déjà lié à un autre compte Ente.\nSi vous souhaitez utiliser votre ${id} avec ce compte, veuillez contacter notre support"; - static String m74(endDate) => "Votre abonnement sera annulé le ${endDate}"; + static String m75(endDate) => "Votre abonnement sera annulé le ${endDate}"; - static String m75(completed, total) => + static String m76(completed, total) => "${completed}/${total} souvenirs conservés"; - static String m76(ignoreReason) => + static String m77(ignoreReason) => "Appuyer pour envoyer, l\'envoi est actuellement ignoré en raison de ${ignoreReason}"; - static String m77(storageAmountInGB) => + static String m8(storageAmountInGB) => "Ils obtiennent aussi ${storageAmountInGB} Go"; static String m78(email) => "Ceci est l\'ID de vérification de ${email}"; @@ -278,7 +278,7 @@ class MessageLookup extends MessageLookupByLibrary { "accountIsAlreadyConfigured": MessageLookupByLibrary.simpleMessage( "Le compte est déjà configuré."), "accountWelcomeBack": - MessageLookupByLibrary.simpleMessage("Bienvenue !"), + MessageLookupByLibrary.simpleMessage("Bon retour parmi nous !"), "ackPasswordLostWarning": MessageLookupByLibrary.simpleMessage( "Je comprends que si je perds mon mot de passe, je perdrai mes données puisque mes données sont chiffrées de bout en bout."), "activeSessions": @@ -289,12 +289,12 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Ajouter un nouvel email"), "addCollaborator": MessageLookupByLibrary.simpleMessage("Ajouter un collaborateur"), - "addCollaborators": m6, + "addCollaborators": m9, "addFiles": MessageLookupByLibrary.simpleMessage("Ajouter des fichiers"), "addFromDevice": MessageLookupByLibrary.simpleMessage("Ajouter depuis l\'appareil"), - "addItem": m7, + "addItem": m10, "addLocation": MessageLookupByLibrary.simpleMessage("Ajouter la localisation"), "addLocationButton": MessageLookupByLibrary.simpleMessage("Ajouter"), @@ -307,7 +307,7 @@ class MessageLookup extends MessageLookupByLibrary { "Ajouter une nouvelle personne"), "addOnPageSubtitle": MessageLookupByLibrary.simpleMessage( "Détails des modules complémentaires"), - "addOnValidTill": m8, + "addOnValidTill": m11, "addOns": MessageLookupByLibrary.simpleMessage("Modules complémentaires"), "addPhotos": MessageLookupByLibrary.simpleMessage("Ajouter des photos"), @@ -322,12 +322,12 @@ class MessageLookup extends MessageLookupByLibrary { "Ajouter un contact de confiance"), "addViewer": MessageLookupByLibrary.simpleMessage("Ajouter un observateur"), - "addViewers": m9, + "addViewers": m12, "addYourPhotosNow": MessageLookupByLibrary.simpleMessage( "Ajoutez vos photos maintenant"), "addedAs": MessageLookupByLibrary.simpleMessage("Ajouté comme"), - "addedBy": m10, - "addedSuccessfullyTo": m11, + "addedBy": m13, + "addedSuccessfullyTo": m14, "addingToFavorites": MessageLookupByLibrary.simpleMessage("Ajout aux favoris..."), "advanced": MessageLookupByLibrary.simpleMessage("Avancé"), @@ -338,7 +338,7 @@ class MessageLookup extends MessageLookupByLibrary { "after1Week": MessageLookupByLibrary.simpleMessage("Après 1 semaine"), "after1Year": MessageLookupByLibrary.simpleMessage("Après 1 an"), "albumOwner": MessageLookupByLibrary.simpleMessage("Propriétaire"), - "albumParticipantsCount": m12, + "albumParticipantsCount": m15, "albumTitle": MessageLookupByLibrary.simpleMessage("Titre de l\'album"), "albumUpdated": MessageLookupByLibrary.simpleMessage("Album mis à jour"), @@ -386,7 +386,7 @@ class MessageLookup extends MessageLookupByLibrary { "Verrouillage de l\'application"), "appLockDescriptions": MessageLookupByLibrary.simpleMessage( "Choisissez entre l\'écran de verrouillage par défaut de votre appareil et un écran de verrouillage personnalisé avec un code PIN ou un mot de passe."), - "appVersion": m13, + "appVersion": m16, "appleId": MessageLookupByLibrary.simpleMessage("Apple ID"), "apply": MessageLookupByLibrary.simpleMessage("Appliquer"), "applyCodeTitle": @@ -441,6 +441,8 @@ class MessageLookup extends MessageLookupByLibrary { "Veuillez vous authentifier pour gérer vos contacts de confiance"), "authToViewPasskey": MessageLookupByLibrary.simpleMessage( "Veuillez vous authentifier pour afficher votre clé de récupération"), + "authToViewTrashedFiles": MessageLookupByLibrary.simpleMessage( + "Veuillez vous authentifier pour voir vos fichiers mis à la corbeille"), "authToViewYourActiveSessions": MessageLookupByLibrary.simpleMessage( "Veuillez vous authentifier pour voir vos sessions actives"), "authToViewYourHiddenFiles": MessageLookupByLibrary.simpleMessage( @@ -471,7 +473,7 @@ class MessageLookup extends MessageLookupByLibrary { "autoPairDesc": MessageLookupByLibrary.simpleMessage( "L\'appairage automatique ne fonctionne qu\'avec les appareils qui prennent en charge Chromecast."), "available": MessageLookupByLibrary.simpleMessage("Disponible"), - "availableStorageSpace": m14, + "availableStorageSpace": m17, "backedUpFolders": MessageLookupByLibrary.simpleMessage("Dossiers sauvegardés"), "backup": MessageLookupByLibrary.simpleMessage("Sauvegarde"), @@ -513,10 +515,10 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Annuler la récupération"), "cancelAccountRecoveryBody": MessageLookupByLibrary.simpleMessage( "Êtes-vous sûr de vouloir annuler la récupération ?"), - "cancelOtherSubscription": m15, + "cancelOtherSubscription": m18, "cancelSubscription": MessageLookupByLibrary.simpleMessage("Annuler l\'abonnement"), - "cannotAddMorePhotosAfterBecomingViewer": m16, + "cannotAddMorePhotosAfterBecomingViewer": m3, "cannotDeleteSharedFiles": MessageLookupByLibrary.simpleMessage( "Les fichiers partagés ne peuvent pas être supprimés"), "castAlbum": MessageLookupByLibrary.simpleMessage("Caster l\'album"), @@ -567,7 +569,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Stockage gratuit obtenu"), "claimMore": MessageLookupByLibrary.simpleMessage("Réclamez plus !"), "claimed": MessageLookupByLibrary.simpleMessage("Obtenu"), - "claimedStorageSoFar": m17, + "claimedStorageSoFar": m19, "cleanUncategorized": MessageLookupByLibrary.simpleMessage( "Effacer les éléments non classés"), "cleanUncategorizedDescription": MessageLookupByLibrary.simpleMessage( @@ -598,12 +600,12 @@ class MessageLookup extends MessageLookupByLibrary { "Créez un lien pour permettre aux personnes d\'ajouter et de voir des photos dans votre album partagé sans avoir besoin d\'une application Ente ou d\'un compte. Idéal pour récupérer des photos d\'événement."), "collaborativeLink": MessageLookupByLibrary.simpleMessage("Lien collaboratif"), - "collaborativeLinkCreatedFor": m18, + "collaborativeLinkCreatedFor": m20, "collaborator": MessageLookupByLibrary.simpleMessage("Collaborateur"), "collaboratorsCanAddPhotosAndVideosToTheSharedAlbum": MessageLookupByLibrary.simpleMessage( "Les collaborateurs peuvent ajouter des photos et des vidéos à l\'album partagé."), - "collaboratorsSuccessfullyAdded": m19, + "collaboratorsSuccessfullyAdded": m21, "collageLayout": MessageLookupByLibrary.simpleMessage("Disposition"), "collageSaved": MessageLookupByLibrary.simpleMessage( "Collage sauvegardé dans la galerie"), @@ -621,7 +623,7 @@ class MessageLookup extends MessageLookupByLibrary { "Voulez-vous vraiment désactiver l\'authentification à deux facteurs ?"), "confirmAccountDeletion": MessageLookupByLibrary.simpleMessage( "Confirmer la suppression du compte"), - "confirmAddingTrustedContact": m20, + "confirmAddingTrustedContact": m22, "confirmDeletePrompt": MessageLookupByLibrary.simpleMessage( "Oui, je veux supprimer définitivement ce compte et ses données dans toutes les applications."), "confirmPassword": @@ -634,10 +636,10 @@ class MessageLookup extends MessageLookupByLibrary { "Confirmer la clé de récupération"), "connectToDevice": MessageLookupByLibrary.simpleMessage("Connexion à l\'appareil"), - "contactFamilyAdmin": m21, + "contactFamilyAdmin": m23, "contactSupport": MessageLookupByLibrary.simpleMessage("Contacter l\'assistance"), - "contactToManageSubscription": m22, + "contactToManageSubscription": m24, "contacts": MessageLookupByLibrary.simpleMessage("Contacts"), "contents": MessageLookupByLibrary.simpleMessage("Contenus"), "continueLabel": MessageLookupByLibrary.simpleMessage("Continuer"), @@ -685,7 +687,7 @@ class MessageLookup extends MessageLookupByLibrary { "currentlyRunning": MessageLookupByLibrary.simpleMessage("en cours d\'exécution"), "custom": MessageLookupByLibrary.simpleMessage("Personnaliser"), - "customEndpoint": m23, + "customEndpoint": m25, "darkTheme": MessageLookupByLibrary.simpleMessage("Sombre"), "dayToday": MessageLookupByLibrary.simpleMessage("Aujourd\'hui"), "dayYesterday": MessageLookupByLibrary.simpleMessage("Hier"), @@ -699,9 +701,9 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Déduplication de fichiers"), "delete": MessageLookupByLibrary.simpleMessage("Supprimer"), "deleteAccount": - MessageLookupByLibrary.simpleMessage("Supprimer le compte"), + MessageLookupByLibrary.simpleMessage("Supprimer mon compte"), "deleteAccountFeedbackPrompt": MessageLookupByLibrary.simpleMessage( - "Nous sommes désolés de vous voir partir. N\'hésitez pas à partager vos commentaires pour nous aider à améliorer le service."), + "Nous sommes désolés de vous voir partir. N\'hésitez pas à partager vos commentaires pour nous aider à nous améliorer."), "deleteAccountPermanentlyButton": MessageLookupByLibrary.simpleMessage( "Supprimer définitivement le compte"), "deleteAlbum": @@ -726,16 +728,16 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Supprimer de l\'appareil"), "deleteFromEnte": MessageLookupByLibrary.simpleMessage("Supprimer de Ente"), - "deleteItemCount": m24, + "deleteItemCount": m26, "deleteLocation": MessageLookupByLibrary.simpleMessage("Supprimer la localisation"), "deletePhotos": MessageLookupByLibrary.simpleMessage("Supprimer des photos"), - "deleteProgress": m25, + "deleteProgress": m27, "deleteReason1": MessageLookupByLibrary.simpleMessage( "Il manque une fonction clé dont j\'ai besoin"), "deleteReason2": MessageLookupByLibrary.simpleMessage( - "L\'application ou une fonctionnalité particulière ne se comporte pas comme je pense qu\'elle devrait"), + "L\'application ou une certaine fonctionnalité ne se comporte pas comme je pense qu\'elle devrait"), "deleteReason3": MessageLookupByLibrary.simpleMessage( "J\'ai trouvé un autre service que je préfère"), "deleteReason4": @@ -772,7 +774,7 @@ class MessageLookup extends MessageLookupByLibrary { "Les observateurs peuvent toujours prendre des captures d\'écran ou enregistrer une copie de vos photos en utilisant des outils externes"), "disableDownloadWarningTitle": MessageLookupByLibrary.simpleMessage("Veuillez remarquer"), - "disableLinkMessage": m26, + "disableLinkMessage": m28, "disableTwofactor": MessageLookupByLibrary.simpleMessage( "Désactiver la double-authentification"), "disablingTwofactorAuthentication": @@ -816,9 +818,9 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Échec du téléchargement"), "downloading": MessageLookupByLibrary.simpleMessage("Téléchargement en cours..."), - "dropSupportEmail": m27, - "duplicateFileCountWithStorageSaved": m28, - "duplicateItemsGroup": m29, + "dropSupportEmail": m29, + "duplicateFileCountWithStorageSaved": m30, + "duplicateItemsGroup": m31, "edit": MessageLookupByLibrary.simpleMessage("Éditer"), "editLocation": MessageLookupByLibrary.simpleMessage("Modifier l’emplacement"), @@ -833,8 +835,12 @@ class MessageLookup extends MessageLookupByLibrary { "Les modifications de l\'emplacement ne seront visibles que dans Ente"), "eligible": MessageLookupByLibrary.simpleMessage("éligible"), "email": MessageLookupByLibrary.simpleMessage("E-mail"), - "emailChangedTo": m30, - "emailNoEnteAccount": m31, + "emailAlreadyRegistered": + MessageLookupByLibrary.simpleMessage("E-mail déjà enregistré."), + "emailChangedTo": m32, + "emailNoEnteAccount": m33, + "emailNotRegistered": + MessageLookupByLibrary.simpleMessage("E-mail non enregistré."), "emailVerificationToggle": MessageLookupByLibrary.simpleMessage( "Vérification de l\'adresse e-mail"), "emailYourLogs": @@ -866,7 +872,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage( "Ente peut chiffrer et conserver des fichiers que si vous leur accordez l\'accès"), "entePhotosPerm": MessageLookupByLibrary.simpleMessage( - "Ente a besoin d\'une autorisation pour conserver vos photos"), + "Ente a besoin d\'une autorisation pour préserver vos photos"), "enteSubscriptionPitch": MessageLookupByLibrary.simpleMessage( "Ente conserve vos souvenirs, ils sont donc toujours disponibles pour vous, même si vous perdez votre appareil."), "enteSubscriptionShareWithFamily": MessageLookupByLibrary.simpleMessage( @@ -916,7 +922,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Exportez vos données"), "extraPhotosFound": MessageLookupByLibrary.simpleMessage( "Photos supplémentaires trouvées"), - "extraPhotosFoundFor": m32, + "extraPhotosFoundFor": m34, "faceNotClusteredYet": MessageLookupByLibrary.simpleMessage( "Ce visage n\'a pas encore été regroupé, veuillez revenir plus tard"), "faceRecognition": @@ -967,8 +973,8 @@ class MessageLookup extends MessageLookupByLibrary { "fileTypes": MessageLookupByLibrary.simpleMessage("Types de fichiers"), "fileTypesAndNames": MessageLookupByLibrary.simpleMessage("Types et noms de fichiers"), - "filesBackedUpFromDevice": m33, - "filesBackedUpInAlbum": m34, + "filesBackedUpFromDevice": m35, + "filesBackedUpInAlbum": m36, "filesDeleted": MessageLookupByLibrary.simpleMessage("Fichiers supprimés"), "filesSavedToGallery": MessageLookupByLibrary.simpleMessage( @@ -985,26 +991,27 @@ class MessageLookup extends MessageLookupByLibrary { "foundFaces": MessageLookupByLibrary.simpleMessage("Visages trouvés"), "freeStorageClaimed": MessageLookupByLibrary.simpleMessage("Stockage gratuit obtenu"), - "freeStorageOnReferralSuccess": m35, + "freeStorageOnReferralSuccess": m4, "freeStorageUsable": MessageLookupByLibrary.simpleMessage("Stockage gratuit utilisable"), "freeTrial": MessageLookupByLibrary.simpleMessage("Essai gratuit"), - "freeTrialValidTill": m36, - "freeUpAccessPostDelete": m37, - "freeUpAmount": m38, + "freeTrialValidTill": m37, + "freeUpAccessPostDelete": m38, + "freeUpAmount": m39, "freeUpDeviceSpace": MessageLookupByLibrary.simpleMessage( "Libérer de l\'espace sur l\'appareil"), "freeUpDeviceSpaceDesc": MessageLookupByLibrary.simpleMessage( "Économisez de l\'espace sur votre appareil en effaçant les fichiers qui ont déjà été sauvegardés."), "freeUpSpace": MessageLookupByLibrary.simpleMessage("Libérer de l\'espace"), - "freeUpSpaceSaving": m39, + "freeUpSpaceSaving": m40, + "gallery": MessageLookupByLibrary.simpleMessage("Galerie"), "galleryMemoryLimitInfo": MessageLookupByLibrary.simpleMessage( "Jusqu\'à 1000 souvenirs affichés dans la galerie"), "general": MessageLookupByLibrary.simpleMessage("Général"), "generatingEncryptionKeys": MessageLookupByLibrary.simpleMessage( "Génération des clés de chiffrement..."), - "genericProgress": m40, + "genericProgress": m41, "goToSettings": MessageLookupByLibrary.simpleMessage("Allez aux réglages"), "googlePlayId": @@ -1031,6 +1038,8 @@ class MessageLookup extends MessageLookupByLibrary { "Masque le contenu de l\'application dans le sélecteur d\'applications et désactive les captures d\'écran"), "hideContentDescriptionIos": MessageLookupByLibrary.simpleMessage( "Masque le contenu de l\'application dans le sélecteur d\'application"), + "hideSharedItemsFromHomeGallery": MessageLookupByLibrary.simpleMessage( + "Masquer les éléments partagés de la galerie d\'accueil"), "hiding": MessageLookupByLibrary.simpleMessage("Masquage en cours..."), "hostedAtOsmFrance": MessageLookupByLibrary.simpleMessage("Hébergé chez OSM France"), @@ -1090,7 +1099,7 @@ class MessageLookup extends MessageLookupByLibrary { "itLooksLikeSomethingWentWrongPleaseRetryAfterSome": MessageLookupByLibrary.simpleMessage( "Il semble qu\'une erreur s\'est produite. Veuillez réessayer après un certain temps. Si l\'erreur persiste, veuillez contacter notre équipe d\'assistance."), - "itemCount": m41, + "itemCount": m42, "itemsShowTheNumberOfDaysRemainingBeforePermanentDeletion": MessageLookupByLibrary.simpleMessage( "Les éléments montrent le nombre de jours restants avant la suppression définitive"), @@ -1122,22 +1131,20 @@ class MessageLookup extends MessageLookupByLibrary { "legacy": MessageLookupByLibrary.simpleMessage("Héritage"), "legacyAccounts": MessageLookupByLibrary.simpleMessage("Comptes hérités"), - "legacyInvite": m42, + "legacyInvite": m43, "legacyPageDesc": MessageLookupByLibrary.simpleMessage( "L\'héritage permet aux contacts de confiance d\'accéder à votre compte en votre absence."), "legacyPageDesc2": MessageLookupByLibrary.simpleMessage( "Les contacts de confiance peuvent initier la récupération du compte et, s\'ils ne sont pas bloqués dans les 30 jours qui suivent, peuvent réinitialiser votre mot de passe et accéder à votre compte."), "light": MessageLookupByLibrary.simpleMessage("Clair"), "lightTheme": MessageLookupByLibrary.simpleMessage("Clair"), - "link": MessageLookupByLibrary.simpleMessage("Link"), "linkCopiedToClipboard": MessageLookupByLibrary.simpleMessage( "Lien copié dans le presse-papiers"), "linkDeviceLimit": MessageLookupByLibrary.simpleMessage("Limite d\'appareil"), - "linkEmail": MessageLookupByLibrary.simpleMessage("Link email"), "linkEnabled": MessageLookupByLibrary.simpleMessage("Activé"), "linkExpired": MessageLookupByLibrary.simpleMessage("Expiré"), - "linkExpiresOn": m43, + "linkExpiresOn": m44, "linkExpiry": MessageLookupByLibrary.simpleMessage("Expiration du lien"), "linkHasExpired": @@ -1232,7 +1239,7 @@ class MessageLookup extends MessageLookupByLibrary { "maps": MessageLookupByLibrary.simpleMessage("Cartes"), "mastodon": MessageLookupByLibrary.simpleMessage("Mastodon"), "matrix": MessageLookupByLibrary.simpleMessage("Matrix"), - "memoryCount": m3, + "memoryCount": m5, "merchandise": MessageLookupByLibrary.simpleMessage("Boutique"), "mergeWithExisting": MessageLookupByLibrary.simpleMessage("Fusionner avec existant"), @@ -1263,12 +1270,12 @@ class MessageLookup extends MessageLookupByLibrary { "mostRecent": MessageLookupByLibrary.simpleMessage("Les plus récents"), "mostRelevant": MessageLookupByLibrary.simpleMessage("Les plus pertinents"), - "moveItem": m44, + "moveItem": m45, "moveToAlbum": MessageLookupByLibrary.simpleMessage("Déplacer vers l\'album"), "moveToHiddenAlbum": MessageLookupByLibrary.simpleMessage( "Déplacer vers un album masqué"), - "movedSuccessfullyTo": m45, + "movedSuccessfullyTo": m46, "movedToTrash": MessageLookupByLibrary.simpleMessage("Déplacé dans la corbeille"), "movingFilesToAlbum": MessageLookupByLibrary.simpleMessage( @@ -1295,8 +1302,6 @@ class MessageLookup extends MessageLookupByLibrary { "noDeviceThatCanBeDeleted": MessageLookupByLibrary.simpleMessage( "Vous n\'avez pas de fichiers sur cet appareil qui peuvent être supprimés"), "noDuplicates": MessageLookupByLibrary.simpleMessage("✨ Aucun doublon"), - "noEnteAccountExclamation": - MessageLookupByLibrary.simpleMessage("No Ente account!"), "noExifData": MessageLookupByLibrary.simpleMessage("Aucune donnée EXIF"), "noFacesFound": @@ -1321,10 +1326,10 @@ class MessageLookup extends MessageLookupByLibrary { "noResults": MessageLookupByLibrary.simpleMessage("Aucun résultat"), "noResultsFound": MessageLookupByLibrary.simpleMessage("Aucun résultat trouvé"), - "noSuggestionsForPerson": m46, + "noSuggestionsForPerson": m47, "noSystemLockFound": MessageLookupByLibrary.simpleMessage("Aucun verrou système trouvé"), - "notPersonLabel": m47, + "notPersonLabel": m48, "nothingSharedWithYouYet": MessageLookupByLibrary.simpleMessage( "Rien n\'a encore été partagé avec vous"), "nothingToSeeHere": MessageLookupByLibrary.simpleMessage( @@ -1334,7 +1339,7 @@ class MessageLookup extends MessageLookupByLibrary { "onDevice": MessageLookupByLibrary.simpleMessage("Sur votre appareil"), "onEnte": MessageLookupByLibrary.simpleMessage( "Sur Ente"), - "onlyFamilyAdminCanChangeCode": m48, + "onlyFamilyAdminCanChangeCode": m49, "onlyThem": MessageLookupByLibrary.simpleMessage("Seulement eux"), "oops": MessageLookupByLibrary.simpleMessage("Oups"), "oopsCouldNotSaveEdits": MessageLookupByLibrary.simpleMessage( @@ -1385,7 +1390,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Échec du paiement"), "paymentFailedMessage": MessageLookupByLibrary.simpleMessage( "Malheureusement votre paiement a échoué. Veuillez contacter le support et nous vous aiderons !"), - "paymentFailedTalkToProvider": m49, + "paymentFailedTalkToProvider": m50, "pendingItems": MessageLookupByLibrary.simpleMessage("Éléments en attente"), "pendingSync": @@ -1410,7 +1415,7 @@ class MessageLookup extends MessageLookupByLibrary { "photosAddedByYouWillBeRemovedFromTheAlbum": MessageLookupByLibrary.simpleMessage( "Les photos ajoutées par vous seront retirées de l\'album"), - "photosCount": m50, + "photosCount": m51, "pickCenterPoint": MessageLookupByLibrary.simpleMessage( "Sélectionner le point central"), "pinAlbum": MessageLookupByLibrary.simpleMessage("Épingler l\'album"), @@ -1418,7 +1423,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Verrouillage du code PIN"), "playOnTv": MessageLookupByLibrary.simpleMessage("Lire l\'album sur la TV"), - "playStoreFreeTrialValidTill": m51, + "playStoreFreeTrialValidTill": m52, "playstoreSubscription": MessageLookupByLibrary.simpleMessage("Abonnement au PlayStore"), "pleaseCheckYourInternetConnectionAndTryAgain": @@ -1430,14 +1435,14 @@ class MessageLookup extends MessageLookupByLibrary { "pleaseContactSupportIfTheProblemPersists": MessageLookupByLibrary.simpleMessage( "Merci de contacter l\'assistance si cette erreur persiste"), - "pleaseEmailUsAt": m52, + "pleaseEmailUsAt": m53, "pleaseGrantPermissions": MessageLookupByLibrary.simpleMessage( "Veuillez accorder la permission"), "pleaseLoginAgain": MessageLookupByLibrary.simpleMessage("Veuillez vous reconnecter"), "pleaseSelectQuickLinksToRemove": MessageLookupByLibrary.simpleMessage( "Veuillez sélectionner les liens rapides à supprimer"), - "pleaseSendTheLogsTo": m53, + "pleaseSendTheLogsTo": m54, "pleaseTryAgain": MessageLookupByLibrary.simpleMessage("Veuillez réessayer"), "pleaseVerifyTheCodeYouHaveEntered": @@ -1465,7 +1470,7 @@ class MessageLookup extends MessageLookupByLibrary { "privateSharing": MessageLookupByLibrary.simpleMessage("Partage privé"), "proceed": MessageLookupByLibrary.simpleMessage("Procéder"), "processed": MessageLookupByLibrary.simpleMessage("Traité"), - "processingImport": m54, + "processingImport": m55, "publicLinkCreated": MessageLookupByLibrary.simpleMessage("Lien public créé"), "publicLinkEnabled": @@ -1476,7 +1481,7 @@ class MessageLookup extends MessageLookupByLibrary { "rateTheApp": MessageLookupByLibrary.simpleMessage("Évaluer l\'application"), "rateUs": MessageLookupByLibrary.simpleMessage("Évaluez-nous"), - "rateUsOnStore": m55, + "rateUsOnStore": m56, "recover": MessageLookupByLibrary.simpleMessage("Récupérer"), "recoverAccount": MessageLookupByLibrary.simpleMessage("Récupérer un compte"), @@ -1485,7 +1490,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Récupérer un compte"), "recoveryInitiated": MessageLookupByLibrary.simpleMessage("Récupération initiée"), - "recoveryInitiatedDesc": m56, + "recoveryInitiatedDesc": m57, "recoveryKey": MessageLookupByLibrary.simpleMessage("Clé de secours"), "recoveryKeyCopiedToClipboard": MessageLookupByLibrary.simpleMessage( "Clé de secours copiée dans le presse-papiers"), @@ -1499,12 +1504,12 @@ class MessageLookup extends MessageLookupByLibrary { "Clé de récupération vérifiée"), "recoveryKeyVerifyReason": MessageLookupByLibrary.simpleMessage( "Votre clé de récupération est la seule façon de récupérer vos photos si vous oubliez votre mot de passe. Vous pouvez trouver votre clé de récupération dans Paramètres > Compte.\n\nVeuillez saisir votre clé de récupération ici pour vous assurer de l\'avoir enregistré correctement."), - "recoveryReady": m57, + "recoveryReady": m58, "recoverySuccessful": MessageLookupByLibrary.simpleMessage("Restauration réussie !"), "recoveryWarning": MessageLookupByLibrary.simpleMessage( "Un contact de confiance tente d\'accéder à votre compte"), - "recoveryWarningBody": m58, + "recoveryWarningBody": m59, "recreatePasswordBody": MessageLookupByLibrary.simpleMessage( "L\'appareil actuel n\'est pas assez puissant pour vérifier votre mot de passe, mais nous pouvons le régénérer d\'une manière qui fonctionne avec tous les appareils.\n\nVeuillez vous connecter à l\'aide de votre clé de secours et régénérer votre mot de passe (vous pouvez réutiliser le même si vous le souhaitez)."), "recreatePasswordTitle": @@ -1520,7 +1525,7 @@ class MessageLookup extends MessageLookupByLibrary { "1. Donnez ce code à vos amis"), "referralStep2": MessageLookupByLibrary.simpleMessage( "2. Ils s\'inscrivent à une offre payante"), - "referralStep3": m59, + "referralStep3": m60, "referrals": MessageLookupByLibrary.simpleMessage("Parrainages"), "referralsAreCurrentlyPaused": MessageLookupByLibrary.simpleMessage( "Les recommandations sont actuellement en pause"), @@ -1552,7 +1557,7 @@ class MessageLookup extends MessageLookupByLibrary { "removeLink": MessageLookupByLibrary.simpleMessage("Supprimer le lien"), "removeParticipant": MessageLookupByLibrary.simpleMessage("Supprimer le participant"), - "removeParticipantBody": m60, + "removeParticipantBody": m61, "removePersonLabel": MessageLookupByLibrary.simpleMessage( "Supprimer le libellé d\'une personne"), "removePublicLink": @@ -1574,7 +1579,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Renommer le fichier"), "renewSubscription": MessageLookupByLibrary.simpleMessage("Renouveler l’abonnement"), - "renewsOn": m61, + "renewsOn": m62, "reportABug": MessageLookupByLibrary.simpleMessage("Signaler un bug"), "reportBug": MessageLookupByLibrary.simpleMessage("Signaler un bug"), "resendEmail": @@ -1656,8 +1661,8 @@ class MessageLookup extends MessageLookupByLibrary { "Invitez des personnes, et vous verrez ici toutes les photos qu\'elles partagent"), "searchPersonsEmptySection": MessageLookupByLibrary.simpleMessage( "Les personnes seront affichées ici une fois le traitement terminé"), - "searchResultCount": m62, - "searchSectionsLengthMismatch": m63, + "searchResultCount": m63, + "searchSectionsLengthMismatch": m64, "security": MessageLookupByLibrary.simpleMessage("Sécurité"), "seePublicAlbumLinksInApp": MessageLookupByLibrary.simpleMessage( "Ouvrir les liens des albums publics dans l\'application"), @@ -1682,7 +1687,7 @@ class MessageLookup extends MessageLookupByLibrary { "selectMorePhotos": MessageLookupByLibrary.simpleMessage("Sélectionner plus de photos"), "selectReason": - MessageLookupByLibrary.simpleMessage("Sélectionner une raison"), + MessageLookupByLibrary.simpleMessage("Sélectionnez une raison"), "selectYourPlan": MessageLookupByLibrary.simpleMessage("Sélectionner votre offre"), "selectedFilesAreNotOnEnte": MessageLookupByLibrary.simpleMessage( @@ -1693,8 +1698,8 @@ class MessageLookup extends MessageLookupByLibrary { "selectedItemsWillBeDeletedFromAllAlbumsAndMoved": MessageLookupByLibrary.simpleMessage( "Les éléments sélectionnés seront supprimés de tous les albums et déplacés dans la corbeille."), - "selectedPhotos": m4, - "selectedPhotosWithYours": m64, + "selectedPhotos": m6, + "selectedPhotosWithYours": m65, "send": MessageLookupByLibrary.simpleMessage("Envoyer"), "sendEmail": MessageLookupByLibrary.simpleMessage("Envoyer un e-mail"), "sendInvite": @@ -1728,16 +1733,16 @@ class MessageLookup extends MessageLookupByLibrary { "shareAnAlbumNow": MessageLookupByLibrary.simpleMessage( "Partagez un album maintenant"), "shareLink": MessageLookupByLibrary.simpleMessage("Partager le lien"), - "shareMyVerificationID": m65, + "shareMyVerificationID": m66, "shareOnlyWithThePeopleYouWant": MessageLookupByLibrary.simpleMessage( "Partagez uniquement avec les personnes que vous souhaitez"), - "shareTextConfirmOthersVerificationID": m5, + "shareTextConfirmOthersVerificationID": m7, "shareTextRecommendUsingEnte": MessageLookupByLibrary.simpleMessage( "Téléchargez Ente pour pouvoir facilement partager des photos et vidéos en qualité originale\n\nhttps://ente.io"), - "shareTextReferralCode": m66, + "shareTextReferralCode": m67, "shareWithNonenteUsers": MessageLookupByLibrary.simpleMessage( "Partager avec des utilisateurs non-Ente"), - "shareWithPeopleSectionTitle": m67, + "shareWithPeopleSectionTitle": m68, "shareYourFirstAlbum": MessageLookupByLibrary.simpleMessage( "Partagez votre premier album"), "sharedAlbumSectionDescription": MessageLookupByLibrary.simpleMessage( @@ -1748,7 +1753,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Nouvelles photos partagées"), "sharedPhotoNotificationsExplanation": MessageLookupByLibrary.simpleMessage( "Recevoir des notifications quand quelqu\'un ajoute une photo à un album partagé dont vous faites partie"), - "sharedWith": m68, + "sharedWith": m69, "sharedWithMe": MessageLookupByLibrary.simpleMessage("Partagés avec moi"), "sharedWithYou": @@ -1766,11 +1771,11 @@ class MessageLookup extends MessageLookupByLibrary { "Déconnecter les autres appareils"), "signUpTerms": MessageLookupByLibrary.simpleMessage( "J\'accepte les conditions d\'utilisation et la politique de confidentialité"), - "singleFileDeleteFromDevice": m69, + "singleFileDeleteFromDevice": m70, "singleFileDeleteHighlight": MessageLookupByLibrary.simpleMessage( "Elle sera supprimée de tous les albums."), - "singleFileInBothLocalAndRemote": m70, - "singleFileInRemoteOnly": m71, + "singleFileInBothLocalAndRemote": m71, + "singleFileInRemoteOnly": m72, "skip": MessageLookupByLibrary.simpleMessage("Ignorer"), "social": MessageLookupByLibrary.simpleMessage("Réseaux sociaux"), "someItemsAreInBothEnteAndYourDevice": @@ -1821,10 +1826,10 @@ class MessageLookup extends MessageLookupByLibrary { "storageInGB": m1, "storageLimitExceeded": MessageLookupByLibrary.simpleMessage("Limite de stockage atteinte"), - "storageUsageInfo": m72, + "storageUsageInfo": m73, "strongStrength": MessageLookupByLibrary.simpleMessage("Forte"), - "subAlreadyLinkedErrMessage": m73, - "subWillBeCancelledOn": m74, + "subAlreadyLinkedErrMessage": m74, + "subWillBeCancelledOn": m75, "subscribe": MessageLookupByLibrary.simpleMessage("S\'abonner"), "subscribeToEnableSharing": MessageLookupByLibrary.simpleMessage( "Vous avez besoin d\'un abonnement payant actif pour activer le partage."), @@ -1841,7 +1846,7 @@ class MessageLookup extends MessageLookupByLibrary { "suggestFeatures": MessageLookupByLibrary.simpleMessage( "Suggérer des fonctionnalités"), "support": MessageLookupByLibrary.simpleMessage("Support"), - "syncProgress": m75, + "syncProgress": m76, "syncStopped": MessageLookupByLibrary.simpleMessage("Synchronisation arrêtée ?"), "syncing": MessageLookupByLibrary.simpleMessage( @@ -1854,7 +1859,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Appuyer pour déverrouiller"), "tapToUpload": MessageLookupByLibrary.simpleMessage("Appuyer pour envoyer"), - "tapToUploadIsIgnoredDue": m76, + "tapToUploadIsIgnoredDue": m77, "tempErrorContactSupportIfPersists": MessageLookupByLibrary.simpleMessage( "Il semble qu\'une erreur s\'est produite. Veuillez réessayer après un certain temps. Si l\'erreur persiste, veuillez contacter notre équipe d\'assistance."), "terminate": MessageLookupByLibrary.simpleMessage("Se déconnecter"), @@ -1878,7 +1883,7 @@ class MessageLookup extends MessageLookupByLibrary { "theseItemsWillBeDeletedFromYourDevice": MessageLookupByLibrary.simpleMessage( "Ces éléments seront supprimés de votre appareil."), - "theyAlsoGetXGb": m77, + "theyAlsoGetXGb": m8, "theyWillBeDeletedFromAllAlbums": MessageLookupByLibrary.simpleMessage( "Ils seront supprimés de tous les albums."), "thisActionCannotBeUndone": MessageLookupByLibrary.simpleMessage( diff --git a/mobile/lib/generated/intl/messages_gu.dart b/mobile/lib/generated/intl/messages_gu.dart index b3f4efc68c1..6c1d7e4d90a 100644 --- a/mobile/lib/generated/intl/messages_gu.dart +++ b/mobile/lib/generated/intl/messages_gu.dart @@ -21,10 +21,5 @@ class MessageLookup extends MessageLookupByLibrary { String get localeName => 'gu'; final messages = _notInlinedMessages(_notInlinedMessages); - static Map _notInlinedMessages(_) => { - "link": MessageLookupByLibrary.simpleMessage("Link"), - "linkEmail": MessageLookupByLibrary.simpleMessage("Link email"), - "noEnteAccountExclamation": - MessageLookupByLibrary.simpleMessage("No Ente account!") - }; + static Map _notInlinedMessages(_) => {}; } diff --git a/mobile/lib/generated/intl/messages_he.dart b/mobile/lib/generated/intl/messages_he.dart index 1c62accc0a8..f2956a8bd05 100644 --- a/mobile/lib/generated/intl/messages_he.dart +++ b/mobile/lib/generated/intl/messages_he.dart @@ -20,102 +20,102 @@ typedef String MessageIfAbsent(String messageStr, List args); class MessageLookup extends MessageLookupByLibrary { String get localeName => 'he'; - static String m7(count) => + static String m10(count) => "${Intl.plural(count, one: 'הוסף פריט', two: 'הוסף פריטים', many: 'הוסף פריטים', other: 'הוסף פריטים')}"; - static String m12(count) => + static String m15(count) => "${Intl.plural(count, zero: 'אין משתתפים', one: '1 משתתף', two: '2 משתתפים', other: '${count} משתתפים')}"; - static String m15(paymentProvider) => + static String m18(paymentProvider) => "אנא בטל את המנוי הקיים מ-${paymentProvider} קודם"; - static String m16(user) => + static String m3(user) => "${user} לא יוכל להוסיף עוד תמונות לאלבום זה\n\nהם עדיין יכולו להסיר תמונות קיימות שנוספו על ידיהם"; - static String m17(isFamilyMember, storageAmountInGb) => + static String m19(isFamilyMember, storageAmountInGb) => "${Intl.select(isFamilyMember, { 'true': 'קיבלת ${storageAmountInGb} GB עד כה', 'false': 'קיבלת ${storageAmountInGb} GB עד כה', 'other': 'קיבלת ${storageAmountInGb} GB עד כה!', })}"; - static String m21(familyAdminEmail) => + static String m23(familyAdminEmail) => "אנא צור קשר עם ${familyAdminEmail} על מנת לנהל את המנוי שלך"; - static String m22(provider) => + static String m24(provider) => "אנא צור איתנו קשר ב-support@ente.io על מנת לנהל את המנוי ${provider}."; - static String m24(count) => + static String m26(count) => "${Intl.plural(count, one: 'מחק ${count} פריט', two: 'מחק ${count} פריטים', other: 'מחק ${count} פריטים')}"; - static String m25(currentlyDeleting, totalCount) => + static String m27(currentlyDeleting, totalCount) => "מוחק ${currentlyDeleting} / ${totalCount}"; - static String m26(albumName) => + static String m28(albumName) => "זה יסיר את הלינק הפומבי שדרכו ניתן לגשת ל\"${albumName}\"."; - static String m27(supportEmail) => + static String m29(supportEmail) => "אנא תשלח דוא\"ל ל${supportEmail} מהכתובת דוא\"ל שנרשמת איתה"; - static String m29(count, formattedSize) => + static String m31(count, formattedSize) => "${count} קבצים, כל אחד ${formattedSize}"; - static String m31(email) => + static String m33(email) => "לא נמצא חשבון ente ל-${email}.\n\nשלח להם הזמנה על מנת לשתף תמונות."; - static String m35(storageAmountInGB) => + static String m4(storageAmountInGB) => "${storageAmountInGB} GB כל פעם שמישהו נרשם עבור תוכנית בתשלום ומחיל את הקוד שלך"; - static String m36(endDate) => "ניסיון חינם בתוקף עד ל-${endDate}"; + static String m37(endDate) => "ניסיון חינם בתוקף עד ל-${endDate}"; - static String m41(count) => + static String m42(count) => "${Intl.plural(count, one: '${count} פריט', two: '${count} פריטים', many: '${count} פריטים', other: '${count} פריטים')}"; - static String m43(expiryTime) => "תוקף הקישור יפוג ב-${expiryTime}"; + static String m44(expiryTime) => "תוקף הקישור יפוג ב-${expiryTime}"; - static String m3(count, formattedCount) => + static String m5(count, formattedCount) => "${Intl.plural(count, one: '${formattedCount} זכרון', two: '${formattedCount} זכרונות', many: '${formattedCount} זכרונות', other: '${formattedCount} זכרונות')}"; - static String m44(count) => + static String m45(count) => "${Intl.plural(count, one: 'הזז פריט', two: 'הזז פריטים', many: 'הזז פריטים', other: 'הזז פריטים')}"; static String m0(passwordStrengthValue) => "חוזק הסיסמא: ${passwordStrengthValue}"; - static String m49(providerName) => + static String m50(providerName) => "אנא דבר עם התמיכה של ${providerName} אם אתה חוייבת"; - static String m55(storeName) => "דרג אותנו ב-${storeName}"; + static String m56(storeName) => "דרג אותנו ב-${storeName}"; - static String m59(storageInGB) => "3. שניכים מקבלים ${storageInGB} GB* בחינם"; + static String m60(storageInGB) => "3. שניכים מקבלים ${storageInGB} GB* בחינם"; - static String m60(userEmail) => + static String m61(userEmail) => "${userEmail} יוסר מהאלבום המשותף הזה\n\nגם תמונות שנוספו על ידיהם יוסרו מהאלבום"; - static String m4(count) => "${count} נבחרו"; + static String m6(count) => "${count} נבחרו"; - static String m64(count, yourCount) => "${count} נבחרו (${yourCount} שלך)"; + static String m65(count, yourCount) => "${count} נבחרו (${yourCount} שלך)"; - static String m65(verificationID) => + static String m66(verificationID) => "הנה מזהה האימות שלי: ${verificationID} עבור ente.io."; - static String m5(verificationID) => + static String m7(verificationID) => "היי, תוכל לוודא שזה מזהה האימות שלך של ente.io: ${verificationID}"; - static String m67(numberOfPeople) => + static String m68(numberOfPeople) => "${Intl.plural(numberOfPeople, zero: 'שתף עם אנשים ספציפיים', one: 'שותף עם איש 1', two: 'שותף עם 2 אנשים', other: 'שותף עם ${numberOfPeople} אנשים')}"; - static String m68(emailIDs) => "הושתף ע\"י ${emailIDs}"; + static String m69(emailIDs) => "הושתף ע\"י ${emailIDs}"; - static String m69(fileType) => "${fileType} יימחק מהמכשיר שלך."; + static String m70(fileType) => "${fileType} יימחק מהמכשיר שלך."; static String m1(storageAmountInGB) => "${storageAmountInGB} GB"; - static String m74(endDate) => "המנוי שלך יבוטל ב-${endDate}"; + static String m75(endDate) => "המנוי שלך יבוטל ב-${endDate}"; - static String m75(completed, total) => "${completed}/${total} זכרונות נשמרו"; + static String m76(completed, total) => "${completed}/${total} זכרונות נשמרו"; - static String m77(storageAmountInGB) => "הם גם יקבלו ${storageAmountInGB} GB"; + static String m8(storageAmountInGB) => "הם גם יקבלו ${storageAmountInGB} GB"; static String m78(email) => "זה מזהה האימות של ${email}"; @@ -141,7 +141,7 @@ class MessageLookup extends MessageLookupByLibrary { "addANewEmail": MessageLookupByLibrary.simpleMessage("הוסף דוא\"ל חדש"), "addCollaborator": MessageLookupByLibrary.simpleMessage("הוסף משתף פעולה"), - "addItem": m7, + "addItem": m10, "addLocationButton": MessageLookupByLibrary.simpleMessage("הוסף"), "addMore": MessageLookupByLibrary.simpleMessage("הוסף עוד"), "addPhotos": MessageLookupByLibrary.simpleMessage("הוסף תמונות"), @@ -158,7 +158,7 @@ class MessageLookup extends MessageLookupByLibrary { "after1Week": MessageLookupByLibrary.simpleMessage("אחרי שבוע 1"), "after1Year": MessageLookupByLibrary.simpleMessage("אחרי שנה 1"), "albumOwner": MessageLookupByLibrary.simpleMessage("בעלים"), - "albumParticipantsCount": m12, + "albumParticipantsCount": m15, "albumTitle": MessageLookupByLibrary.simpleMessage("כותרת האלבום"), "albumUpdated": MessageLookupByLibrary.simpleMessage("האלבום עודכן"), "albums": MessageLookupByLibrary.simpleMessage("אלבומים"), @@ -244,9 +244,9 @@ class MessageLookup extends MessageLookupByLibrary { "canOnlyRemoveFilesOwnedByYou": MessageLookupByLibrary.simpleMessage( "יכול להסיר רק קבצים שבבעלותך"), "cancel": MessageLookupByLibrary.simpleMessage("בטל"), - "cancelOtherSubscription": m15, + "cancelOtherSubscription": m18, "cancelSubscription": MessageLookupByLibrary.simpleMessage("בטל מנוי"), - "cannotAddMorePhotosAfterBecomingViewer": m16, + "cannotAddMorePhotosAfterBecomingViewer": m3, "cannotDeleteSharedFiles": MessageLookupByLibrary.simpleMessage( "לא ניתן למחוק את הקבצים המשותפים"), "changeEmail": MessageLookupByLibrary.simpleMessage("שנה דוא\"ל"), @@ -262,7 +262,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("תבע מקום אחסון בחינם"), "claimMore": MessageLookupByLibrary.simpleMessage("תבע עוד!"), "claimed": MessageLookupByLibrary.simpleMessage("נתבע"), - "claimedStorageSoFar": m17, + "claimedStorageSoFar": m19, "click": MessageLookupByLibrary.simpleMessage("• לחץ"), "close": MessageLookupByLibrary.simpleMessage("סגור"), "clubByCaptureTime": @@ -302,10 +302,10 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("אמת את מפתח השחזור"), "confirmYourRecoveryKey": MessageLookupByLibrary.simpleMessage("אמת את מפתח השחזור"), - "contactFamilyAdmin": m21, + "contactFamilyAdmin": m23, "contactSupport": MessageLookupByLibrary.simpleMessage("צור קשר עם התמיכה"), - "contactToManageSubscription": m22, + "contactToManageSubscription": m24, "continueLabel": MessageLookupByLibrary.simpleMessage("המשך"), "continueOnFreeTrial": MessageLookupByLibrary.simpleMessage("המשך עם ניסיון חינמי"), @@ -363,9 +363,9 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("למחוק אלבומים ריקים?"), "deleteFromBoth": MessageLookupByLibrary.simpleMessage("מחק משניהם"), "deleteFromDevice": MessageLookupByLibrary.simpleMessage("מחק מהמכשיר"), - "deleteItemCount": m24, + "deleteItemCount": m26, "deletePhotos": MessageLookupByLibrary.simpleMessage("מחק תמונות"), - "deleteProgress": m25, + "deleteProgress": m27, "deleteReason1": MessageLookupByLibrary.simpleMessage("חסר מאפיין מרכזי שאני צריך"), "deleteReason2": MessageLookupByLibrary.simpleMessage( @@ -390,7 +390,7 @@ class MessageLookup extends MessageLookupByLibrary { "צופים יכולים עדיין לקחת צילומי מסך או לשמור עותק של התמונות שלך בעזרת כלים חיצוניים"), "disableDownloadWarningTitle": MessageLookupByLibrary.simpleMessage("שים לב"), - "disableLinkMessage": m26, + "disableLinkMessage": m28, "disableTwofactor": MessageLookupByLibrary.simpleMessage("השבת דו-גורמי"), "discord": MessageLookupByLibrary.simpleMessage("Discord"), @@ -401,12 +401,12 @@ class MessageLookup extends MessageLookupByLibrary { "download": MessageLookupByLibrary.simpleMessage("הורד"), "downloadFailed": MessageLookupByLibrary.simpleMessage("ההורדה נכשלה"), "downloading": MessageLookupByLibrary.simpleMessage("מוריד..."), - "dropSupportEmail": m27, - "duplicateItemsGroup": m29, + "dropSupportEmail": m29, + "duplicateItemsGroup": m31, "edit": MessageLookupByLibrary.simpleMessage("ערוך"), "eligible": MessageLookupByLibrary.simpleMessage("זכאי"), "email": MessageLookupByLibrary.simpleMessage("דוא\"ל"), - "emailNoEnteAccount": m31, + "emailNoEnteAccount": m33, "emailVerificationToggle": MessageLookupByLibrary.simpleMessage("אימות מייל"), "empty": MessageLookupByLibrary.simpleMessage("ריק"), @@ -475,11 +475,11 @@ class MessageLookup extends MessageLookupByLibrary { "forgotPassword": MessageLookupByLibrary.simpleMessage("שכחתי סיסמה"), "freeStorageClaimed": MessageLookupByLibrary.simpleMessage("מקום אחסון בחינם נתבע"), - "freeStorageOnReferralSuccess": m35, + "freeStorageOnReferralSuccess": m4, "freeStorageUsable": MessageLookupByLibrary.simpleMessage("מקום אחסון שמיש"), "freeTrial": MessageLookupByLibrary.simpleMessage("ניסיון חינמי"), - "freeTrialValidTill": m36, + "freeTrialValidTill": m37, "freeUpDeviceSpace": MessageLookupByLibrary.simpleMessage("פנה אחסון במכשיר"), "freeUpSpace": MessageLookupByLibrary.simpleMessage("פנה מקום"), @@ -517,7 +517,7 @@ class MessageLookup extends MessageLookupByLibrary { "invite": MessageLookupByLibrary.simpleMessage("הזמן"), "inviteYourFriends": MessageLookupByLibrary.simpleMessage("הזמן את חברייך"), - "itemCount": m41, + "itemCount": m42, "itemsWillBeRemovedFromAlbum": MessageLookupByLibrary.simpleMessage( "הפריטים שנבחרו יוסרו מהאלבום הזה"), "keepPhotos": MessageLookupByLibrary.simpleMessage("השאר תמונות"), @@ -533,15 +533,13 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("לעזוב את האלבום המשותף?"), "light": MessageLookupByLibrary.simpleMessage("אור"), "lightTheme": MessageLookupByLibrary.simpleMessage("בהיר"), - "link": MessageLookupByLibrary.simpleMessage("Link"), "linkCopiedToClipboard": MessageLookupByLibrary.simpleMessage("הקישור הועתק ללוח"), "linkDeviceLimit": MessageLookupByLibrary.simpleMessage("מגבלת כמות מכשירים"), - "linkEmail": MessageLookupByLibrary.simpleMessage("Link email"), "linkEnabled": MessageLookupByLibrary.simpleMessage("מאופשר"), "linkExpired": MessageLookupByLibrary.simpleMessage("פג תוקף"), - "linkExpiresOn": m43, + "linkExpiresOn": m44, "linkExpiry": MessageLookupByLibrary.simpleMessage("תאריך תפוגה ללינק"), "linkHasExpired": MessageLookupByLibrary.simpleMessage("הקישור פג תוקף"), @@ -567,13 +565,13 @@ class MessageLookup extends MessageLookupByLibrary { "maps": MessageLookupByLibrary.simpleMessage("מפות"), "mastodon": MessageLookupByLibrary.simpleMessage("Mastodon"), "matrix": MessageLookupByLibrary.simpleMessage("Matrix"), - "memoryCount": m3, + "memoryCount": m5, "merchandise": MessageLookupByLibrary.simpleMessage("סחורה"), "mobileWebDesktop": MessageLookupByLibrary.simpleMessage("פלאפון, דפדפן, שולחן עבודה"), "moderateStrength": MessageLookupByLibrary.simpleMessage("מתונה"), "monthly": MessageLookupByLibrary.simpleMessage("חודשי"), - "moveItem": m44, + "moveItem": m45, "moveToAlbum": MessageLookupByLibrary.simpleMessage("הזז לאלבום"), "movedToTrash": MessageLookupByLibrary.simpleMessage("הועבר לאשפה"), "movingFilesToAlbum": @@ -587,8 +585,6 @@ class MessageLookup extends MessageLookupByLibrary { "noDeviceThatCanBeDeleted": MessageLookupByLibrary.simpleMessage( "אין לך קבצים במכשיר הזה שניתן למחוק אותם"), "noDuplicates": MessageLookupByLibrary.simpleMessage("✨ אין כפילויות"), - "noEnteAccountExclamation": - MessageLookupByLibrary.simpleMessage("No Ente account!"), "noPhotosAreBeingBackedUpRightNow": MessageLookupByLibrary.simpleMessage( "אף תמונה אינה נמצאת בתהליך גיבוי כרגע"), @@ -619,7 +615,7 @@ class MessageLookup extends MessageLookupByLibrary { "אנחנו לא שומרים את הסיסמא הזו, לכן אם אתה שוכח אותה, אנחנו לא יכולים לפענח את המידע שלך"), "paymentDetails": MessageLookupByLibrary.simpleMessage("פרטי תשלום"), "paymentFailed": MessageLookupByLibrary.simpleMessage("התשלום נכשל"), - "paymentFailedTalkToProvider": m49, + "paymentFailedTalkToProvider": m50, "peopleUsingYourCode": MessageLookupByLibrary.simpleMessage("אנשים משתמשים בקוד שלך"), "permanentlyDelete": @@ -661,7 +657,7 @@ class MessageLookup extends MessageLookupByLibrary { "raiseTicket": MessageLookupByLibrary.simpleMessage("צור ticket"), "rateTheApp": MessageLookupByLibrary.simpleMessage("דרג את האפליקציה"), "rateUs": MessageLookupByLibrary.simpleMessage("דרג אותנו"), - "rateUsOnStore": m55, + "rateUsOnStore": m56, "recover": MessageLookupByLibrary.simpleMessage("שחזר"), "recoverAccount": MessageLookupByLibrary.simpleMessage("שחזר חשבון"), "recoverButton": MessageLookupByLibrary.simpleMessage("שחזר"), @@ -687,7 +683,7 @@ class MessageLookup extends MessageLookupByLibrary { "1. תמסור את הקוד הזה לחברייך"), "referralStep2": MessageLookupByLibrary.simpleMessage( "2. הם נרשמים עבור תוכנית בתשלום"), - "referralStep3": m59, + "referralStep3": m60, "referrals": MessageLookupByLibrary.simpleMessage("הפניות"), "referralsAreCurrentlyPaused": MessageLookupByLibrary.simpleMessage("הפניות כרגע מושהות"), @@ -703,7 +699,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("הסר מהאלבום?"), "removeLink": MessageLookupByLibrary.simpleMessage("הסרת קישור"), "removeParticipant": MessageLookupByLibrary.simpleMessage("הסר משתתף"), - "removeParticipantBody": m60, + "removeParticipantBody": m61, "removePublicLink": MessageLookupByLibrary.simpleMessage("הסר לינק ציבורי"), "removeShareItemsWarning": MessageLookupByLibrary.simpleMessage( @@ -754,8 +750,8 @@ class MessageLookup extends MessageLookupByLibrary { "selectedFoldersWillBeEncryptedAndBackedUp": MessageLookupByLibrary.simpleMessage( "התיקיות שנבחרו יוצפנו ויגובו"), - "selectedPhotos": m4, - "selectedPhotosWithYours": m64, + "selectedPhotos": m6, + "selectedPhotosWithYours": m65, "send": MessageLookupByLibrary.simpleMessage("שלח"), "sendEmail": MessageLookupByLibrary.simpleMessage("שלח דוא\"ל"), "sendInvite": MessageLookupByLibrary.simpleMessage("שלח הזמנה"), @@ -774,15 +770,15 @@ class MessageLookup extends MessageLookupByLibrary { "shareAnAlbumNow": MessageLookupByLibrary.simpleMessage("שתף אלבום עכשיו"), "shareLink": MessageLookupByLibrary.simpleMessage("שתף קישור"), - "shareMyVerificationID": m65, + "shareMyVerificationID": m66, "shareOnlyWithThePeopleYouWant": MessageLookupByLibrary.simpleMessage("שתף רק אם אנשים שאתה בוחר"), - "shareTextConfirmOthersVerificationID": m5, + "shareTextConfirmOthersVerificationID": m7, "shareTextRecommendUsingEnte": MessageLookupByLibrary.simpleMessage( "הורד את ente על מנת שנוכל לשתף תמונות וסרטונים באיכות המקור באופן קל\n\nhttps://ente.io"), "shareWithNonenteUsers": MessageLookupByLibrary.simpleMessage( "שתף עם משתמשים שהם לא של ente"), - "shareWithPeopleSectionTitle": m67, + "shareWithPeopleSectionTitle": m68, "shareYourFirstAlbum": MessageLookupByLibrary.simpleMessage("שתף את האלבום הראשון שלך"), "sharedAlbumSectionDescription": MessageLookupByLibrary.simpleMessage( @@ -793,13 +789,13 @@ class MessageLookup extends MessageLookupByLibrary { "sharedPhotoNotificationsExplanation": MessageLookupByLibrary.simpleMessage( "קבל התראות כשמישהו מוסיף תמונה לאלבום משותף שאתה חלק ממנו"), - "sharedWith": m68, + "sharedWith": m69, "sharedWithMe": MessageLookupByLibrary.simpleMessage("שותף איתי"), "sharing": MessageLookupByLibrary.simpleMessage("משתף..."), "showMemories": MessageLookupByLibrary.simpleMessage("הצג זכרונות"), "signUpTerms": MessageLookupByLibrary.simpleMessage( "אני מסכים לתנאי שירות ולמדיניות הפרטיות"), - "singleFileDeleteFromDevice": m69, + "singleFileDeleteFromDevice": m70, "singleFileDeleteHighlight": MessageLookupByLibrary.simpleMessage("זה יימחק מכל האלבומים."), "skip": MessageLookupByLibrary.simpleMessage("דלג"), @@ -832,14 +828,14 @@ class MessageLookup extends MessageLookupByLibrary { "storageLimitExceeded": MessageLookupByLibrary.simpleMessage("גבול מקום האחסון נחרג"), "strongStrength": MessageLookupByLibrary.simpleMessage("חזקה"), - "subWillBeCancelledOn": m74, + "subWillBeCancelledOn": m75, "subscribe": MessageLookupByLibrary.simpleMessage("הרשם"), "subscription": MessageLookupByLibrary.simpleMessage("מנוי"), "success": MessageLookupByLibrary.simpleMessage("הצלחה"), "suggestFeatures": MessageLookupByLibrary.simpleMessage("הציעו מאפיינים"), "support": MessageLookupByLibrary.simpleMessage("תמיכה"), - "syncProgress": m75, + "syncProgress": m76, "syncing": MessageLookupByLibrary.simpleMessage("מסנכרן..."), "systemTheme": MessageLookupByLibrary.simpleMessage("מערכת"), "tapToCopy": MessageLookupByLibrary.simpleMessage("הקש כדי להעתיק"), @@ -855,7 +851,7 @@ class MessageLookup extends MessageLookupByLibrary { "theDownloadCouldNotBeCompleted": MessageLookupByLibrary.simpleMessage("לא ניתן להשלים את ההורדה"), "theme": MessageLookupByLibrary.simpleMessage("ערכת נושא"), - "theyAlsoGetXGb": m77, + "theyAlsoGetXGb": m8, "thisCanBeUsedToRecoverYourAccountIfYou": MessageLookupByLibrary.simpleMessage( "זה יכול לשמש לשחזור החשבון שלך במקרה ותאבד את הגורם השני"), diff --git a/mobile/lib/generated/intl/messages_hi.dart b/mobile/lib/generated/intl/messages_hi.dart index 7a3e6163c63..ff4756d8d49 100644 --- a/mobile/lib/generated/intl/messages_hi.dart +++ b/mobile/lib/generated/intl/messages_hi.dart @@ -75,10 +75,6 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("अमान्य ईमेल ऐड्रेस"), "kindlyHelpUsWithThisInformation": MessageLookupByLibrary.simpleMessage( "कृपया हमें इस जानकारी के लिए सहायता करें"), - "link": MessageLookupByLibrary.simpleMessage("Link"), - "linkEmail": MessageLookupByLibrary.simpleMessage("Link email"), - "noEnteAccountExclamation": - MessageLookupByLibrary.simpleMessage("No Ente account!"), "noRecoveryKey": MessageLookupByLibrary.simpleMessage("रिकवरी कुंजी नहीं है?"), "noRecoveryKeyNoDecryption": MessageLookupByLibrary.simpleMessage( diff --git a/mobile/lib/generated/intl/messages_hu.dart b/mobile/lib/generated/intl/messages_hu.dart index 121ec1644a1..fbe4a79ba19 100644 --- a/mobile/lib/generated/intl/messages_hu.dart +++ b/mobile/lib/generated/intl/messages_hu.dart @@ -38,10 +38,6 @@ class MessageLookup extends MessageLookupByLibrary { "feedback": MessageLookupByLibrary.simpleMessage("Visszajelzés"), "invalidEmailAddress": MessageLookupByLibrary.simpleMessage("Érvénytelen e-mail cím"), - "link": MessageLookupByLibrary.simpleMessage("Link"), - "linkEmail": MessageLookupByLibrary.simpleMessage("Link email"), - "noEnteAccountExclamation": - MessageLookupByLibrary.simpleMessage("No Ente account!"), "verify": MessageLookupByLibrary.simpleMessage("Hitelesítés") }; } diff --git a/mobile/lib/generated/intl/messages_id.dart b/mobile/lib/generated/intl/messages_id.dart index ca4956bb5fa..6874da21597 100644 --- a/mobile/lib/generated/intl/messages_id.dart +++ b/mobile/lib/generated/intl/messages_id.dart @@ -20,33 +20,33 @@ typedef String MessageIfAbsent(String messageStr, List args); class MessageLookup extends MessageLookupByLibrary { String get localeName => 'id'; - static String m6(count) => + static String m9(count) => "${Intl.plural(count, other: 'Tambahkan kolaborator')}"; - static String m7(count) => "${Intl.plural(count, other: 'Tambahkan item')}"; + static String m10(count) => "${Intl.plural(count, other: 'Tambahkan item')}"; - static String m8(storageAmount, endDate) => + static String m11(storageAmount, endDate) => "Add-on ${storageAmount} kamu berlaku sampai ${endDate}"; - static String m10(emailOrName) => "Ditambahkan oleh ${emailOrName}"; + static String m13(emailOrName) => "Ditambahkan oleh ${emailOrName}"; - static String m11(albumName) => "Berhasil ditambahkan ke ${albumName}"; + static String m14(albumName) => "Berhasil ditambahkan ke ${albumName}"; - static String m12(count) => + static String m15(count) => "${Intl.plural(count, zero: '0 Peserta', one: '1 Peserta', other: '${count} Peserta')}"; - static String m13(versionValue) => "Versi: ${versionValue}"; + static String m16(versionValue) => "Versi: ${versionValue}"; - static String m14(freeAmount, storageUnit) => + static String m17(freeAmount, storageUnit) => "${freeAmount} ${storageUnit} tersedia"; - static String m15(paymentProvider) => + static String m18(paymentProvider) => "Harap batalkan langganan kamu di ${paymentProvider} terlebih dahulu"; - static String m16(user) => + static String m3(user) => "${user} tidak akan dapat menambahkan foto lagi ke album ini\n\nIa masih dapat menghapus foto yang ditambahkan olehnya sendiri"; - static String m17(isFamilyMember, storageAmountInGb) => + static String m19(isFamilyMember, storageAmountInGb) => "${Intl.select(isFamilyMember, { 'true': 'Keluargamu saat ini telah memperoleh ${storageAmountInGb} GB', @@ -54,138 +54,138 @@ class MessageLookup extends MessageLookupByLibrary { 'other': 'Kamu saat ini telah memperoleh ${storageAmountInGb} GB!', })}"; - static String m18(albumName) => "Link kolaborasi terbuat untuk ${albumName}"; + static String m20(albumName) => "Link kolaborasi terbuat untuk ${albumName}"; - static String m21(familyAdminEmail) => + static String m23(familyAdminEmail) => "Silakan hubungi ${familyAdminEmail} untuk mengatur langgananmu"; - static String m22(provider) => + static String m24(provider) => "Silakan hubungi kami di support@ente.io untuk mengatur langganan ${provider} kamu."; - static String m23(endpoint) => "Terhubung ke ${endpoint}"; + static String m25(endpoint) => "Terhubung ke ${endpoint}"; - static String m24(count) => + static String m26(count) => "${Intl.plural(count, one: 'Hapus ${count} item', other: 'Hapus ${count} item')}"; - static String m25(currentlyDeleting, totalCount) => + static String m27(currentlyDeleting, totalCount) => "Menghapus ${currentlyDeleting} / ${totalCount}"; - static String m26(albumName) => + static String m28(albumName) => "Ini akan menghapus link publik yang digunakan untuk mengakses \"${albumName}\"."; - static String m27(supportEmail) => + static String m29(supportEmail) => "Silakan kirimkan email ke ${supportEmail} dari alamat email terdaftar kamu"; - static String m28(count, storageSaved) => + static String m30(count, storageSaved) => "Kamu telah menghapus ${Intl.plural(count, other: '${count} file duplikat')} dan membersihkan (${storageSaved}!)"; - static String m30(newEmail) => "Email diubah menjadi ${newEmail}"; + static String m32(newEmail) => "Email diubah menjadi ${newEmail}"; - static String m31(email) => + static String m33(email) => "${email} tidak punya akun Ente.\n\nUndang dia untuk berbagi foto."; - static String m33(count, formattedNumber) => + static String m35(count, formattedNumber) => "${Intl.plural(count, other: '${formattedNumber} file')} di perangkat ini telah berhasil dicadangkan"; - static String m34(count, formattedNumber) => + static String m36(count, formattedNumber) => "${Intl.plural(count, other: '${formattedNumber} file')} dalam album ini telah berhasil dicadangkan"; - static String m35(storageAmountInGB) => + static String m4(storageAmountInGB) => "${storageAmountInGB} GB setiap kali orang mendaftar dengan paket berbayar lalu menerapkan kode milikmu"; - static String m36(endDate) => "Percobaan gratis berlaku hingga ${endDate}"; + static String m37(endDate) => "Percobaan gratis berlaku hingga ${endDate}"; - static String m37(count) => + static String m38(count) => "Kamu masih bisa mengakses ${Intl.plural(count, other: 'filenya')} di Ente selama kamu masih berlangganan"; - static String m38(sizeInMBorGB) => "Bersihkan ${sizeInMBorGB}"; + static String m39(sizeInMBorGB) => "Bersihkan ${sizeInMBorGB}"; - static String m39(count, formattedSize) => + static String m40(count, formattedSize) => "${Intl.plural(count, other: 'File tersebut bisa dihapus dari perangkat ini untuk membersihkan ${formattedSize}')}"; - static String m40(currentlyProcessing, totalCount) => + static String m41(currentlyProcessing, totalCount) => "Memproses ${currentlyProcessing} / ${totalCount}"; - static String m41(count) => "${Intl.plural(count, other: '${count} item')}"; + static String m42(count) => "${Intl.plural(count, other: '${count} item')}"; - static String m43(expiryTime) => "Link akan kedaluwarsa pada ${expiryTime}"; + static String m44(expiryTime) => "Link akan kedaluwarsa pada ${expiryTime}"; - static String m3(count, formattedCount) => + static String m5(count, formattedCount) => "${Intl.plural(count, zero: 'tiada kenangan', one: '${formattedCount} kenangan', other: '${formattedCount} kenangan')}"; - static String m44(count) => "${Intl.plural(count, other: 'Pindahkan item')}"; + static String m45(count) => "${Intl.plural(count, other: 'Pindahkan item')}"; - static String m45(albumName) => "Berhasil dipindahkan ke ${albumName}"; + static String m46(albumName) => "Berhasil dipindahkan ke ${albumName}"; - static String m48(familyAdminEmail) => + static String m49(familyAdminEmail) => "Harap hubungi ${familyAdminEmail} untuk mengubah kode kamu."; static String m0(passwordStrengthValue) => "Keamanan sandi: ${passwordStrengthValue}"; - static String m49(providerName) => + static String m50(providerName) => "Harap hubungi dukungan ${providerName} jika kamu dikenai biaya"; - static String m51(endDate) => + static String m52(endDate) => "Percobaan gratis berlaku hingga ${endDate}.\nKamu dapat memilih paket berbayar setelahnya."; - static String m52(toEmail) => "Silakan kirimi kami email di ${toEmail}"; + static String m53(toEmail) => "Silakan kirimi kami email di ${toEmail}"; - static String m53(toEmail) => "Silakan kirim log-nya ke \n${toEmail}"; + static String m54(toEmail) => "Silakan kirim log-nya ke \n${toEmail}"; - static String m55(storeName) => "Beri nilai di ${storeName}"; + static String m56(storeName) => "Beri nilai di ${storeName}"; - static String m59(storageInGB) => + static String m60(storageInGB) => "3. Kalian berdua mendapat ${storageInGB} GB* gratis"; - static String m60(userEmail) => + static String m61(userEmail) => "${userEmail} akan dikeluarkan dari album berbagi ini\n\nSemua foto yang ia tambahkan juga akan dihapus dari album ini"; - static String m61(endDate) => "Langganan akan diperpanjang pada ${endDate}"; + static String m62(endDate) => "Langganan akan diperpanjang pada ${endDate}"; - static String m62(count) => + static String m63(count) => "${Intl.plural(count, other: '${count} hasil ditemukan')}"; - static String m4(count) => "${count} terpilih"; + static String m6(count) => "${count} terpilih"; - static String m64(count, yourCount) => + static String m65(count, yourCount) => "${count} dipilih (${yourCount} milikmu)"; - static String m65(verificationID) => + static String m66(verificationID) => "Ini ID Verifikasi saya di ente.io: ${verificationID}."; - static String m5(verificationID) => + static String m7(verificationID) => "Halo, bisakah kamu pastikan bahwa ini adalah ID Verifikasi ente.io milikmu: ${verificationID}"; - static String m66(referralCode, referralStorageInGB) => + static String m67(referralCode, referralStorageInGB) => "Kode rujukan Ente: ${referralCode} \n\nTerapkan pada Pengaturan → Umum → Rujukan untuk mendapatkan ${referralStorageInGB} GB gratis setelah kamu mendaftar paket berbayar\n\nhttps://ente.io"; - static String m67(numberOfPeople) => + static String m68(numberOfPeople) => "${Intl.plural(numberOfPeople, zero: 'Bagikan dengan orang tertentu', one: 'Berbagi dengan 1 orang', other: 'Berbagi dengan ${numberOfPeople} orang')}"; - static String m68(emailIDs) => "Dibagikan dengan ${emailIDs}"; + static String m69(emailIDs) => "Dibagikan dengan ${emailIDs}"; - static String m69(fileType) => + static String m70(fileType) => "${fileType} ini akan dihapus dari perangkat ini."; - static String m70(fileType) => + static String m71(fileType) => "${fileType} ini tersimpan di Ente dan juga di perangkat ini."; - static String m71(fileType) => "${fileType} ini akan dihapus dari Ente."; + static String m72(fileType) => "${fileType} ini akan dihapus dari Ente."; static String m1(storageAmountInGB) => "${storageAmountInGB} GB"; - static String m72( + static String m73( usedAmount, usedStorageUnit, totalAmount, totalStorageUnit) => "${usedAmount} ${usedStorageUnit} dari ${totalAmount} ${totalStorageUnit} terpakai"; - static String m73(id) => + static String m74(id) => "${id} kamu telah terhubung dengan akun Ente lain.\nJika kamu ingin menggunakan ${id} kamu untuk akun ini, silahkan hubungi tim bantuan kami"; - static String m74(endDate) => + static String m75(endDate) => "Langganan kamu akan dibatalkan pada ${endDate}"; - static String m77(storageAmountInGB) => + static String m8(storageAmountInGB) => "Ia juga mendapat ${storageAmountInGB} GB"; static String m78(email) => "Ini adalah ID Verifikasi milik ${email}"; @@ -219,14 +219,14 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Tambah email baru"), "addCollaborator": MessageLookupByLibrary.simpleMessage("Tambah kolaborator"), - "addCollaborators": m6, + "addCollaborators": m9, "addFromDevice": MessageLookupByLibrary.simpleMessage("Tambahkan dari perangkat"), - "addItem": m7, + "addItem": m10, "addLocation": MessageLookupByLibrary.simpleMessage("Tambah tempat"), "addLocationButton": MessageLookupByLibrary.simpleMessage("Tambah"), "addMore": MessageLookupByLibrary.simpleMessage("Tambah lagi"), - "addOnValidTill": m8, + "addOnValidTill": m11, "addPhotos": MessageLookupByLibrary.simpleMessage("Tambah foto"), "addSelected": MessageLookupByLibrary.simpleMessage("Tambahkan yang dipilih"), @@ -236,8 +236,8 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Tambah ke album tersembunyi"), "addViewer": MessageLookupByLibrary.simpleMessage("Tambahkan pemirsa"), "addedAs": MessageLookupByLibrary.simpleMessage("Ditambahkan sebagai"), - "addedBy": m10, - "addedSuccessfullyTo": m11, + "addedBy": m13, + "addedSuccessfullyTo": m14, "addingToFavorites": MessageLookupByLibrary.simpleMessage("Menambahkan ke favorit..."), "advanced": MessageLookupByLibrary.simpleMessage("Lanjutan"), @@ -248,7 +248,7 @@ class MessageLookup extends MessageLookupByLibrary { "after1Week": MessageLookupByLibrary.simpleMessage("Setelah 1 minggu"), "after1Year": MessageLookupByLibrary.simpleMessage("Setelah 1 tahun"), "albumOwner": MessageLookupByLibrary.simpleMessage("Pemilik"), - "albumParticipantsCount": m12, + "albumParticipantsCount": m15, "albumTitle": MessageLookupByLibrary.simpleMessage("Judul album"), "albumUpdated": MessageLookupByLibrary.simpleMessage("Album diperbarui"), @@ -279,7 +279,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Android, iOS, Web, Desktop"), "androidSignInTitle": MessageLookupByLibrary.simpleMessage("Autentikasi diperlukan"), - "appVersion": m13, + "appVersion": m16, "appleId": MessageLookupByLibrary.simpleMessage("ID Apple"), "apply": MessageLookupByLibrary.simpleMessage("Terapkan"), "applyCodeTitle": MessageLookupByLibrary.simpleMessage("Terapkan kode"), @@ -345,7 +345,7 @@ class MessageLookup extends MessageLookupByLibrary { "autoPairDesc": MessageLookupByLibrary.simpleMessage( "Taut otomatis hanya tersedia di perangkat yang mendukung Chromecast."), "available": MessageLookupByLibrary.simpleMessage("Tersedia"), - "availableStorageSpace": m14, + "availableStorageSpace": m17, "backedUpFolders": MessageLookupByLibrary.simpleMessage("Folder yang dicadangkan"), "backup": MessageLookupByLibrary.simpleMessage("Pencadangan"), @@ -368,10 +368,10 @@ class MessageLookup extends MessageLookupByLibrary { "canOnlyRemoveFilesOwnedByYou": MessageLookupByLibrary.simpleMessage( "Hanya dapat menghapus berkas yang dimiliki oleh mu"), "cancel": MessageLookupByLibrary.simpleMessage("Batal"), - "cancelOtherSubscription": m15, + "cancelOtherSubscription": m18, "cancelSubscription": MessageLookupByLibrary.simpleMessage("Batalkan langganan"), - "cannotAddMorePhotosAfterBecomingViewer": m16, + "cannotAddMorePhotosAfterBecomingViewer": m3, "cannotDeleteSharedFiles": MessageLookupByLibrary.simpleMessage( "Tidak dapat menghapus file berbagi"), "castIPMismatchBody": MessageLookupByLibrary.simpleMessage( @@ -401,7 +401,7 @@ class MessageLookup extends MessageLookupByLibrary { "claimMore": MessageLookupByLibrary.simpleMessage("Peroleh lebih banyak!"), "claimed": MessageLookupByLibrary.simpleMessage("Diperoleh"), - "claimedStorageSoFar": m17, + "claimedStorageSoFar": m19, "clearIndexes": MessageLookupByLibrary.simpleMessage("Hapus indeks"), "click": MessageLookupByLibrary.simpleMessage("• Click"), "close": MessageLookupByLibrary.simpleMessage("Tutup"), @@ -417,7 +417,7 @@ class MessageLookup extends MessageLookupByLibrary { "Buat link untuk memungkinkan orang lain menambahkan dan melihat foto yang ada pada album bersama kamu tanpa memerlukan app atau akun Ente. Ideal untuk mengumpulkan foto pada suatu acara."), "collaborativeLink": MessageLookupByLibrary.simpleMessage("Link kolaborasi"), - "collaborativeLinkCreatedFor": m18, + "collaborativeLinkCreatedFor": m20, "collaborator": MessageLookupByLibrary.simpleMessage("Kolaborator"), "collaboratorsCanAddPhotosAndVideosToTheSharedAlbum": MessageLookupByLibrary.simpleMessage( @@ -443,10 +443,10 @@ class MessageLookup extends MessageLookupByLibrary { "Konfirmasi kunci pemulihan kamu"), "connectToDevice": MessageLookupByLibrary.simpleMessage("Hubungkan ke perangkat"), - "contactFamilyAdmin": m21, + "contactFamilyAdmin": m23, "contactSupport": MessageLookupByLibrary.simpleMessage("Hubungi dukungan"), - "contactToManageSubscription": m22, + "contactToManageSubscription": m24, "contacts": MessageLookupByLibrary.simpleMessage("Kontak"), "continueLabel": MessageLookupByLibrary.simpleMessage("Lanjut"), "continueOnFreeTrial": MessageLookupByLibrary.simpleMessage( @@ -487,7 +487,7 @@ class MessageLookup extends MessageLookupByLibrary { "currentUsageIs": MessageLookupByLibrary.simpleMessage("Pemakaian saat ini sebesar "), "custom": MessageLookupByLibrary.simpleMessage("Kustom"), - "customEndpoint": m23, + "customEndpoint": m25, "darkTheme": MessageLookupByLibrary.simpleMessage("Gelap"), "dayToday": MessageLookupByLibrary.simpleMessage("Hari Ini"), "dayYesterday": MessageLookupByLibrary.simpleMessage("Kemarin"), @@ -516,9 +516,9 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Hapus dari perangkat ini"), "deleteFromEnte": MessageLookupByLibrary.simpleMessage("Hapus dari Ente"), - "deleteItemCount": m24, + "deleteItemCount": m26, "deletePhotos": MessageLookupByLibrary.simpleMessage("Hapus foto"), - "deleteProgress": m25, + "deleteProgress": m27, "deleteReason1": MessageLookupByLibrary.simpleMessage( "Fitur penting yang saya perlukan tidak ada"), "deleteReason2": MessageLookupByLibrary.simpleMessage( @@ -554,7 +554,7 @@ class MessageLookup extends MessageLookupByLibrary { "Orang yang melihat masih bisa mengambil tangkapan layar atau menyalin foto kamu menggunakan alat eksternal"), "disableDownloadWarningTitle": MessageLookupByLibrary.simpleMessage("Perlu diketahui"), - "disableLinkMessage": m26, + "disableLinkMessage": m28, "disableTwofactor": MessageLookupByLibrary.simpleMessage( "Nonaktifkan autentikasi dua langkah"), "disablingTwofactorAuthentication": @@ -589,8 +589,8 @@ class MessageLookup extends MessageLookupByLibrary { "downloadFailed": MessageLookupByLibrary.simpleMessage("Gagal mengunduh"), "downloading": MessageLookupByLibrary.simpleMessage("Mengunduh..."), - "dropSupportEmail": m27, - "duplicateFileCountWithStorageSaved": m28, + "dropSupportEmail": m29, + "duplicateFileCountWithStorageSaved": m30, "edit": MessageLookupByLibrary.simpleMessage("Edit"), "editLocation": MessageLookupByLibrary.simpleMessage("Edit lokasi"), "editLocationTagTitle": @@ -602,8 +602,8 @@ class MessageLookup extends MessageLookupByLibrary { "Perubahan lokasi hanya akan terlihat di Ente"), "eligible": MessageLookupByLibrary.simpleMessage("memenuhi syarat"), "email": MessageLookupByLibrary.simpleMessage("Email"), - "emailChangedTo": m30, - "emailNoEnteAccount": m31, + "emailChangedTo": m32, + "emailNoEnteAccount": m33, "emailVerificationToggle": MessageLookupByLibrary.simpleMessage("Verifikasi email"), "empty": MessageLookupByLibrary.simpleMessage("Kosongkan"), @@ -700,8 +700,8 @@ class MessageLookup extends MessageLookupByLibrary { "fileTypes": MessageLookupByLibrary.simpleMessage("Jenis file"), "fileTypesAndNames": MessageLookupByLibrary.simpleMessage("Nama dan jenis file"), - "filesBackedUpFromDevice": m33, - "filesBackedUpInAlbum": m34, + "filesBackedUpFromDevice": m35, + "filesBackedUpInAlbum": m36, "filesDeleted": MessageLookupByLibrary.simpleMessage("File terhapus"), "filesSavedToGallery": MessageLookupByLibrary.simpleMessage("File tersimpan ke galeri"), @@ -715,23 +715,23 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Wajah yang ditemukan"), "freeStorageClaimed": MessageLookupByLibrary.simpleMessage("Kuota gratis diperoleh"), - "freeStorageOnReferralSuccess": m35, + "freeStorageOnReferralSuccess": m4, "freeStorageUsable": MessageLookupByLibrary.simpleMessage( "Kuota gratis yang dapat digunakan"), "freeTrial": MessageLookupByLibrary.simpleMessage("Percobaan gratis"), - "freeTrialValidTill": m36, - "freeUpAccessPostDelete": m37, - "freeUpAmount": m38, + "freeTrialValidTill": m37, + "freeUpAccessPostDelete": m38, + "freeUpAmount": m39, "freeUpDeviceSpace": MessageLookupByLibrary.simpleMessage( "Bersihkan penyimpanan perangkat"), "freeUpDeviceSpaceDesc": MessageLookupByLibrary.simpleMessage( "Hemat ruang penyimpanan di perangkatmu dengan membersihkan file yang sudah tercadangkan."), "freeUpSpace": MessageLookupByLibrary.simpleMessage("Bersihkan ruang"), - "freeUpSpaceSaving": m39, + "freeUpSpaceSaving": m40, "general": MessageLookupByLibrary.simpleMessage("Umum"), "generatingEncryptionKeys": MessageLookupByLibrary.simpleMessage( "Menghasilkan kunci enkripsi..."), - "genericProgress": m40, + "genericProgress": m41, "goToSettings": MessageLookupByLibrary.simpleMessage("Buka pengaturan"), "googlePlayId": MessageLookupByLibrary.simpleMessage("ID Google Play"), "grantFullAccessPrompt": MessageLookupByLibrary.simpleMessage( @@ -791,7 +791,7 @@ class MessageLookup extends MessageLookupByLibrary { "itLooksLikeSomethingWentWrongPleaseRetryAfterSome": MessageLookupByLibrary.simpleMessage( "Sepertinya terjadi kesalahan. Silakan coba lagi setelah beberapa saat. Jika kesalahan terus terjadi, silakan hubungi tim dukungan kami."), - "itemCount": m41, + "itemCount": m42, "itemsWillBeRemovedFromAlbum": MessageLookupByLibrary.simpleMessage( "Item yang dipilih akan dihapus dari album ini"), "joinDiscord": @@ -812,15 +812,13 @@ class MessageLookup extends MessageLookupByLibrary { "left": MessageLookupByLibrary.simpleMessage("Kiri"), "light": MessageLookupByLibrary.simpleMessage("Cahaya"), "lightTheme": MessageLookupByLibrary.simpleMessage("Cerah"), - "link": MessageLookupByLibrary.simpleMessage("Link"), "linkCopiedToClipboard": MessageLookupByLibrary.simpleMessage("Link tersalin ke papan klip"), "linkDeviceLimit": MessageLookupByLibrary.simpleMessage("Batas perangkat"), - "linkEmail": MessageLookupByLibrary.simpleMessage("Link email"), "linkEnabled": MessageLookupByLibrary.simpleMessage("Aktif"), "linkExpired": MessageLookupByLibrary.simpleMessage("Kedaluwarsa"), - "linkExpiresOn": m43, + "linkExpiresOn": m44, "linkExpiry": MessageLookupByLibrary.simpleMessage("Waktu kedaluwarsa link"), "linkHasExpired": @@ -881,7 +879,7 @@ class MessageLookup extends MessageLookupByLibrary { "maps": MessageLookupByLibrary.simpleMessage("Peta"), "mastodon": MessageLookupByLibrary.simpleMessage("Mastodon"), "matrix": MessageLookupByLibrary.simpleMessage("Matrix"), - "memoryCount": m3, + "memoryCount": m5, "merchandise": MessageLookupByLibrary.simpleMessage("Merchandise"), "mlConsent": MessageLookupByLibrary.simpleMessage("Aktifkan pemelajaran mesin"), @@ -900,10 +898,10 @@ class MessageLookup extends MessageLookupByLibrary { "moderateStrength": MessageLookupByLibrary.simpleMessage("Sedang"), "moments": MessageLookupByLibrary.simpleMessage("Momen"), "monthly": MessageLookupByLibrary.simpleMessage("Bulanan"), - "moveItem": m44, + "moveItem": m45, "moveToHiddenAlbum": MessageLookupByLibrary.simpleMessage( "Pindahkan ke album tersembunyi"), - "movedSuccessfullyTo": m45, + "movedSuccessfullyTo": m46, "movedToTrash": MessageLookupByLibrary.simpleMessage("Pindah ke sampah"), "movingFilesToAlbum": MessageLookupByLibrary.simpleMessage( @@ -927,8 +925,6 @@ class MessageLookup extends MessageLookupByLibrary { "Tidak ada file yang perlu dihapus dari perangkat ini"), "noDuplicates": MessageLookupByLibrary.simpleMessage("✨ Tak ada file duplikat"), - "noEnteAccountExclamation": - MessageLookupByLibrary.simpleMessage("No Ente account!"), "noExifData": MessageLookupByLibrary.simpleMessage("Tidak ada data EXIF"), "noHiddenPhotosOrVideos": MessageLookupByLibrary.simpleMessage( @@ -956,7 +952,7 @@ class MessageLookup extends MessageLookupByLibrary { "onDevice": MessageLookupByLibrary.simpleMessage("Di perangkat ini"), "onEnte": MessageLookupByLibrary.simpleMessage( "Di ente"), - "onlyFamilyAdminCanChangeCode": m48, + "onlyFamilyAdminCanChangeCode": m49, "oops": MessageLookupByLibrary.simpleMessage("Aduh"), "oopsCouldNotSaveEdits": MessageLookupByLibrary.simpleMessage( "Aduh, tidak dapat menyimpan perubahan"), @@ -992,7 +988,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Pembayaran gagal"), "paymentFailedMessage": MessageLookupByLibrary.simpleMessage( "Sayangnya, pembayaranmu gagal. Silakan hubungi tim bantuan agar dapat kami bantu!"), - "paymentFailedTalkToProvider": m49, + "paymentFailedTalkToProvider": m50, "pendingItems": MessageLookupByLibrary.simpleMessage("Item menunggu"), "pendingSync": MessageLookupByLibrary.simpleMessage("Sinkronisasi tertunda"), @@ -1015,7 +1011,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage( "Foto yang telah kamu tambahkan akan dihapus dari album ini"), "playOnTv": MessageLookupByLibrary.simpleMessage("Putar album di TV"), - "playStoreFreeTrialValidTill": m51, + "playStoreFreeTrialValidTill": m52, "playstoreSubscription": MessageLookupByLibrary.simpleMessage("Langganan PlayStore"), "pleaseCheckYourInternetConnectionAndTryAgain": @@ -1027,12 +1023,12 @@ class MessageLookup extends MessageLookupByLibrary { "pleaseContactSupportIfTheProblemPersists": MessageLookupByLibrary.simpleMessage( "Silakan hubungi tim bantuan jika masalah terus terjadi"), - "pleaseEmailUsAt": m52, + "pleaseEmailUsAt": m53, "pleaseGrantPermissions": MessageLookupByLibrary.simpleMessage("Harap berikan izin"), "pleaseLoginAgain": MessageLookupByLibrary.simpleMessage("Silakan masuk akun lagi"), - "pleaseSendTheLogsTo": m53, + "pleaseSendTheLogsTo": m54, "pleaseTryAgain": MessageLookupByLibrary.simpleMessage("Silakan coba lagi"), "pleaseVerifyTheCodeYouHaveEntered": @@ -1066,7 +1062,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Buat tiket dukungan"), "rateTheApp": MessageLookupByLibrary.simpleMessage("Nilai app ini"), "rateUs": MessageLookupByLibrary.simpleMessage("Beri kami nilai"), - "rateUsOnStore": m55, + "rateUsOnStore": m56, "recover": MessageLookupByLibrary.simpleMessage("Pulihkan"), "recoverAccount": MessageLookupByLibrary.simpleMessage("Pulihkan akun"), "recoverButton": MessageLookupByLibrary.simpleMessage("Pulihkan"), @@ -1094,7 +1090,7 @@ class MessageLookup extends MessageLookupByLibrary { "1. Berikan kode ini ke teman kamu"), "referralStep2": MessageLookupByLibrary.simpleMessage( "2. Ia perlu daftar ke paket berbayar"), - "referralStep3": m59, + "referralStep3": m60, "referrals": MessageLookupByLibrary.simpleMessage("Referensi"), "referralsAreCurrentlyPaused": MessageLookupByLibrary.simpleMessage("Rujukan sedang dijeda"), @@ -1116,7 +1112,7 @@ class MessageLookup extends MessageLookupByLibrary { "removeLink": MessageLookupByLibrary.simpleMessage("Hapus link"), "removeParticipant": MessageLookupByLibrary.simpleMessage("Hapus peserta"), - "removeParticipantBody": m60, + "removeParticipantBody": m61, "removePersonLabel": MessageLookupByLibrary.simpleMessage("Hapus label orang"), "removePublicLink": @@ -1132,7 +1128,7 @@ class MessageLookup extends MessageLookupByLibrary { "renameFile": MessageLookupByLibrary.simpleMessage("Ubah nama file"), "renewSubscription": MessageLookupByLibrary.simpleMessage("Perpanjang langganan"), - "renewsOn": m61, + "renewsOn": m62, "reportABug": MessageLookupByLibrary.simpleMessage("Laporkan bug"), "reportBug": MessageLookupByLibrary.simpleMessage("Laporkan bug"), "resendEmail": @@ -1183,7 +1179,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Album, nama dan jenis file"), "searchHint5": MessageLookupByLibrary.simpleMessage( "Segera tiba: Penelusuran wajah & ajaib ✨"), - "searchResultCount": m62, + "searchResultCount": m63, "security": MessageLookupByLibrary.simpleMessage("Keamanan"), "selectALocation": MessageLookupByLibrary.simpleMessage("Pilih lokasi"), "selectALocationFirst": MessageLookupByLibrary.simpleMessage( @@ -1208,8 +1204,8 @@ class MessageLookup extends MessageLookupByLibrary { "selectedItemsWillBeDeletedFromAllAlbumsAndMoved": MessageLookupByLibrary.simpleMessage( "Item terpilih akan dihapus dari semua album dan dipindahkan ke sampah."), - "selectedPhotos": m4, - "selectedPhotosWithYours": m64, + "selectedPhotos": m6, + "selectedPhotosWithYours": m65, "send": MessageLookupByLibrary.simpleMessage("Kirim"), "sendEmail": MessageLookupByLibrary.simpleMessage("Kirim email"), "sendInvite": MessageLookupByLibrary.simpleMessage("Kirim undangan"), @@ -1230,16 +1226,16 @@ class MessageLookup extends MessageLookupByLibrary { "shareAnAlbumNow": MessageLookupByLibrary.simpleMessage("Bagikan album sekarang"), "shareLink": MessageLookupByLibrary.simpleMessage("Bagikan link"), - "shareMyVerificationID": m65, + "shareMyVerificationID": m66, "shareOnlyWithThePeopleYouWant": MessageLookupByLibrary.simpleMessage( "Bagikan hanya dengan orang yang kamu inginkan"), - "shareTextConfirmOthersVerificationID": m5, + "shareTextConfirmOthersVerificationID": m7, "shareTextRecommendUsingEnte": MessageLookupByLibrary.simpleMessage( "Unduh Ente agar kita bisa berbagi foto dan video kualitas asli dengan mudah\n\nhttps://ente.io"), - "shareTextReferralCode": m66, + "shareTextReferralCode": m67, "shareWithNonenteUsers": MessageLookupByLibrary.simpleMessage( "Bagikan ke pengguna non-Ente"), - "shareWithPeopleSectionTitle": m67, + "shareWithPeopleSectionTitle": m68, "shareYourFirstAlbum": MessageLookupByLibrary.simpleMessage("Bagikan album pertamamu"), "sharedAlbumSectionDescription": MessageLookupByLibrary.simpleMessage( @@ -1252,7 +1248,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Foto terbagi baru"), "sharedPhotoNotificationsExplanation": MessageLookupByLibrary.simpleMessage( "Terima notifikasi apabila seseorang menambahkan foto ke album bersama yang kamu ikuti"), - "sharedWith": m68, + "sharedWith": m69, "sharedWithMe": MessageLookupByLibrary.simpleMessage("Dibagikan dengan saya"), "sharedWithYou": @@ -1267,11 +1263,11 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Keluar di perangkat lain"), "signUpTerms": MessageLookupByLibrary.simpleMessage( "Saya menyetujui ketentuan layanan dan kebijakan privasi Ente"), - "singleFileDeleteFromDevice": m69, + "singleFileDeleteFromDevice": m70, "singleFileDeleteHighlight": MessageLookupByLibrary.simpleMessage( "Ia akan dihapus dari semua album."), - "singleFileInBothLocalAndRemote": m70, - "singleFileInRemoteOnly": m71, + "singleFileInBothLocalAndRemote": m71, + "singleFileInRemoteOnly": m72, "skip": MessageLookupByLibrary.simpleMessage("Lewati"), "social": MessageLookupByLibrary.simpleMessage("Sosial"), "someItemsAreInBothEnteAndYourDevice": @@ -1316,10 +1312,10 @@ class MessageLookup extends MessageLookupByLibrary { "storageInGB": m1, "storageLimitExceeded": MessageLookupByLibrary.simpleMessage( "Batas penyimpanan terlampaui"), - "storageUsageInfo": m72, + "storageUsageInfo": m73, "strongStrength": MessageLookupByLibrary.simpleMessage("Kuat"), - "subAlreadyLinkedErrMessage": m73, - "subWillBeCancelledOn": m74, + "subAlreadyLinkedErrMessage": m74, + "subWillBeCancelledOn": m75, "subscribe": MessageLookupByLibrary.simpleMessage("Berlangganan"), "subscription": MessageLookupByLibrary.simpleMessage("Langganan"), "success": MessageLookupByLibrary.simpleMessage("Berhasil"), @@ -1359,7 +1355,7 @@ class MessageLookup extends MessageLookupByLibrary { "theseItemsWillBeDeletedFromYourDevice": MessageLookupByLibrary.simpleMessage( "Item ini akan dihapus dari perangkat ini."), - "theyAlsoGetXGb": m77, + "theyAlsoGetXGb": m8, "thisActionCannotBeUndone": MessageLookupByLibrary.simpleMessage( "Tindakan ini tidak dapat dibatalkan"), "thisAlbumAlreadyHDACollaborativeLink": diff --git a/mobile/lib/generated/intl/messages_it.dart b/mobile/lib/generated/intl/messages_it.dart index e1c3aeb182d..0ac9c78dd0b 100644 --- a/mobile/lib/generated/intl/messages_it.dart +++ b/mobile/lib/generated/intl/messages_it.dart @@ -20,37 +20,37 @@ typedef String MessageIfAbsent(String messageStr, List args); class MessageLookup extends MessageLookupByLibrary { String get localeName => 'it'; - static String m6(count) => + static String m9(count) => "${Intl.plural(count, zero: 'Aggiungi collaboratore', one: 'Aggiungi collaboratore', other: 'Aggiungi collaboratori')}"; - static String m7(count) => + static String m10(count) => "${Intl.plural(count, one: 'Aggiungi elemento', other: 'Aggiungi elementi')}"; - static String m8(storageAmount, endDate) => + static String m11(storageAmount, endDate) => "Il tuo spazio aggiuntivo di ${storageAmount} è valido fino al ${endDate}"; - static String m9(count) => + static String m12(count) => "${Intl.plural(count, zero: 'Aggiungi visualizzatore', one: 'Aggiungi visualizzatore', other: 'Aggiungi visualizzatori')}"; - static String m10(emailOrName) => "Aggiunto da ${emailOrName}"; + static String m13(emailOrName) => "Aggiunto da ${emailOrName}"; - static String m11(albumName) => "Aggiunto con successo su ${albumName}"; + static String m14(albumName) => "Aggiunto con successo su ${albumName}"; - static String m12(count) => + static String m15(count) => "${Intl.plural(count, zero: 'Nessun partecipante', one: '1 Partecipante', other: '${count} Partecipanti')}"; - static String m13(versionValue) => "Versione: ${versionValue}"; + static String m16(versionValue) => "Versione: ${versionValue}"; - static String m14(freeAmount, storageUnit) => + static String m17(freeAmount, storageUnit) => "${freeAmount} ${storageUnit} liberi"; - static String m15(paymentProvider) => + static String m18(paymentProvider) => "Annulla prima il tuo abbonamento esistente da ${paymentProvider}"; - static String m16(user) => + static String m3(user) => "${user} non sarà più in grado di aggiungere altre foto a questo album\n\nSarà ancora in grado di rimuovere le foto esistenti aggiunte da lui o lei"; - static String m17(isFamilyMember, storageAmountInGb) => + static String m19(isFamilyMember, storageAmountInGb) => "${Intl.select(isFamilyMember, { 'true': 'Il tuo piano famiglia ha già richiesto ${storageAmountInGb} GB finora', @@ -58,177 +58,177 @@ class MessageLookup extends MessageLookupByLibrary { 'other': 'Hai già richiesto ${storageAmountInGb} GB finora!', })}"; - static String m18(albumName) => "Link collaborativo creato per ${albumName}"; + static String m20(albumName) => "Link collaborativo creato per ${albumName}"; - static String m19(count) => + static String m21(count) => "${Intl.plural(count, zero: 'Aggiunti 0 collaboratori', one: 'Aggiunto 1 collaboratore', other: 'Aggiunti ${count} collaboratori')}"; - static String m20(email, numOfDays) => + static String m22(email, numOfDays) => "Stai per aggiungere ${email} come contatto fidato. Potranno recuperare il tuo account se sei assente per ${numOfDays} giorni."; - static String m21(familyAdminEmail) => + static String m23(familyAdminEmail) => "Contatta ${familyAdminEmail} per gestire il tuo abbonamento"; - static String m22(provider) => + static String m24(provider) => "Scrivi all\'indirizzo support@ente.io per gestire il tuo abbonamento ${provider}."; - static String m23(endpoint) => "Connesso a ${endpoint}"; + static String m25(endpoint) => "Connesso a ${endpoint}"; - static String m24(count) => + static String m26(count) => "${Intl.plural(count, one: 'Elimina ${count} elemento', other: 'Elimina ${count} elementi')}"; - static String m25(currentlyDeleting, totalCount) => + static String m27(currentlyDeleting, totalCount) => "Eliminazione di ${currentlyDeleting} / ${totalCount}"; - static String m26(albumName) => + static String m28(albumName) => "Questo rimuoverà il link pubblico per accedere a \"${albumName}\"."; - static String m27(supportEmail) => + static String m29(supportEmail) => "Per favore invia un\'email a ${supportEmail} dall\'indirizzo email con cui ti sei registrato"; - static String m28(count, storageSaved) => + static String m30(count, storageSaved) => "Hai ripulito ${Intl.plural(count, one: '${count} doppione', other: '${count} doppioni')}, salvando (${storageSaved}!)"; - static String m29(count, formattedSize) => + static String m31(count, formattedSize) => "${count} file, ${formattedSize} l\'uno"; - static String m30(newEmail) => "Email cambiata in ${newEmail}"; + static String m32(newEmail) => "Email cambiata in ${newEmail}"; - static String m31(email) => + static String m33(email) => "${email} non ha un account Ente.\n\nInvia un invito per condividere foto."; - static String m32(text) => "Trovate foto aggiuntive per ${text}"; + static String m34(text) => "Trovate foto aggiuntive per ${text}"; - static String m33(count, formattedNumber) => + static String m35(count, formattedNumber) => "${Intl.plural(count, one: '1 file', other: '${formattedNumber} file')} di quest\'album sono stati salvati in modo sicuro"; - static String m34(count, formattedNumber) => + static String m36(count, formattedNumber) => "${Intl.plural(count, one: '1 file', other: '${formattedNumber} file')} di quest\'album sono stati salvati in modo sicuro"; - static String m35(storageAmountInGB) => + static String m4(storageAmountInGB) => "${storageAmountInGB} GB ogni volta che qualcuno si iscrive a un piano a pagamento e applica il tuo codice"; - static String m36(endDate) => "La prova gratuita termina il ${endDate}"; + static String m37(endDate) => "La prova gratuita termina il ${endDate}"; - static String m37(count) => + static String m38(count) => "Puoi ancora accedere a ${Intl.plural(count, one: '', other: 'loro')} su ente finché hai un abbonamento attivo"; - static String m38(sizeInMBorGB) => "Libera ${sizeInMBorGB}"; + static String m39(sizeInMBorGB) => "Libera ${sizeInMBorGB}"; - static String m39(count, formattedSize) => + static String m40(count, formattedSize) => "${Intl.plural(count, one: 'Può essere cancellata per liberare ${formattedSize}', other: 'Possono essere cancellati per liberare ${formattedSize}')}"; - static String m40(currentlyProcessing, totalCount) => + static String m41(currentlyProcessing, totalCount) => "Elaborazione ${currentlyProcessing} / ${totalCount}"; - static String m41(count) => + static String m42(count) => "${Intl.plural(count, one: '${count} elemento', other: '${count} elementi')}"; - static String m42(email) => + static String m43(email) => "${email} ti ha invitato a essere un contatto fidato"; - static String m43(expiryTime) => "Il link scadrà il ${expiryTime}"; + static String m44(expiryTime) => "Il link scadrà il ${expiryTime}"; - static String m3(count, formattedCount) => + static String m5(count, formattedCount) => "${Intl.plural(count, one: '${formattedCount} ricordo', other: '${formattedCount} ricordi')}"; - static String m44(count) => + static String m45(count) => "${Intl.plural(count, one: 'Sposta elemento', other: 'Sposta elementi')}"; - static String m45(albumName) => "Spostato con successo su ${albumName}"; + static String m46(albumName) => "Spostato con successo su ${albumName}"; - static String m46(personName) => "Nessun suggerimento per ${personName}"; + static String m47(personName) => "Nessun suggerimento per ${personName}"; - static String m47(name) => "Non è ${name}?"; + static String m48(name) => "Non è ${name}?"; - static String m48(familyAdminEmail) => + static String m49(familyAdminEmail) => "Per favore contatta ${familyAdminEmail} per cambiare il tuo codice."; static String m0(passwordStrengthValue) => "Sicurezza password: ${passwordStrengthValue}"; - static String m49(providerName) => + static String m50(providerName) => "Si prega di parlare con il supporto di ${providerName} se ti è stato addebitato qualcosa"; - static String m50(count) => + static String m51(count) => "${Intl.plural(count, zero: '0 foto', one: '1 foto', other: '${count} foto')}"; - static String m51(endDate) => + static String m52(endDate) => "Prova gratuita valida fino al ${endDate}.\nIn seguito potrai scegliere un piano a pagamento."; - static String m52(toEmail) => "Per favore invia un\'email a ${toEmail}"; + static String m53(toEmail) => "Per favore invia un\'email a ${toEmail}"; - static String m53(toEmail) => "Invia i log a \n${toEmail}"; + static String m54(toEmail) => "Invia i log a \n${toEmail}"; - static String m54(folderName) => "Elaborando ${folderName}..."; + static String m55(folderName) => "Elaborando ${folderName}..."; - static String m55(storeName) => "Valutaci su ${storeName}"; + static String m56(storeName) => "Valutaci su ${storeName}"; - static String m56(days, email) => + static String m57(days, email) => "Puoi accedere all\'account dopo ${days} giorni. Una notifica verrà inviata a ${email}."; - static String m57(email) => + static String m58(email) => "Ora puoi recuperare l\'account di ${email} impostando una nuova password."; - static String m58(email) => + static String m59(email) => "${email} sta cercando di recuperare il tuo account."; - static String m59(storageInGB) => + static String m60(storageInGB) => "3. Ottenete entrambi ${storageInGB} GB* gratis"; - static String m60(userEmail) => + static String m61(userEmail) => "${userEmail} verrà rimosso da questo album condiviso\n\nQualsiasi foto aggiunta dall\'utente verrà rimossa dall\'album"; - static String m61(endDate) => "Si rinnova il ${endDate}"; + static String m62(endDate) => "Si rinnova il ${endDate}"; - static String m62(count) => + static String m63(count) => "${Intl.plural(count, one: '${count} risultato trovato', other: '${count} risultati trovati')}"; - static String m4(count) => "${count} selezionati"; + static String m6(count) => "${count} selezionati"; - static String m64(count, yourCount) => + static String m65(count, yourCount) => "${count} selezionato (${yourCount} tuoi)"; - static String m65(verificationID) => + static String m66(verificationID) => "Ecco il mio ID di verifica: ${verificationID} per ente.io."; - static String m5(verificationID) => + static String m7(verificationID) => "Hey, puoi confermare che questo è il tuo ID di verifica: ${verificationID} su ente.io"; - static String m66(referralCode, referralStorageInGB) => + static String m67(referralCode, referralStorageInGB) => "Codice invito Ente: ${referralCode} \n\nInseriscilo in Impostazioni → Generali → Inviti per ottenere ${referralStorageInGB} GB gratis dopo la sottoscrizione a un piano a pagamento\n\nhttps://ente.io"; - static String m67(numberOfPeople) => + static String m68(numberOfPeople) => "${Intl.plural(numberOfPeople, zero: 'Condividi con persone specifiche', one: 'Condividi con una persona', other: 'Condividi con ${numberOfPeople} persone')}"; - static String m68(emailIDs) => "Condiviso con ${emailIDs}"; + static String m69(emailIDs) => "Condiviso con ${emailIDs}"; - static String m69(fileType) => + static String m70(fileType) => "Questo ${fileType} verrà eliminato dal tuo dispositivo."; - static String m70(fileType) => + static String m71(fileType) => "Questo ${fileType} è sia su Ente che sul tuo dispositivo."; - static String m71(fileType) => "Questo ${fileType} verrà eliminato da Ente."; + static String m72(fileType) => "Questo ${fileType} verrà eliminato da Ente."; static String m1(storageAmountInGB) => "${storageAmountInGB} GB"; - static String m72( + static String m73( usedAmount, usedStorageUnit, totalAmount, totalStorageUnit) => "${usedAmount} ${usedStorageUnit} di ${totalAmount} ${totalStorageUnit} utilizzati"; - static String m73(id) => + static String m74(id) => "Il tuo ${id} è già collegato a un altro account Ente.\nSe desideri utilizzare il tuo ${id} con questo account, per favore contatta il nostro supporto\'\'"; - static String m74(endDate) => "L\'abbonamento verrà cancellato il ${endDate}"; + static String m75(endDate) => "L\'abbonamento verrà cancellato il ${endDate}"; - static String m75(completed, total) => + static String m76(completed, total) => "${completed}/${total} ricordi conservati"; - static String m76(ignoreReason) => + static String m77(ignoreReason) => "Tocca per caricare, il caricamento è attualmente ignorato a causa di ${ignoreReason}"; - static String m77(storageAmountInGB) => + static String m8(storageAmountInGB) => "Anche loro riceveranno ${storageAmountInGB} GB"; static String m78(email) => "Questo è l\'ID di verifica di ${email}"; @@ -282,11 +282,11 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Aggiungi una nuova email"), "addCollaborator": MessageLookupByLibrary.simpleMessage("Aggiungi collaboratore"), - "addCollaborators": m6, + "addCollaborators": m9, "addFiles": MessageLookupByLibrary.simpleMessage("Aggiungi File"), "addFromDevice": MessageLookupByLibrary.simpleMessage("Aggiungi dal dispositivo"), - "addItem": m7, + "addItem": m10, "addLocation": MessageLookupByLibrary.simpleMessage("Aggiungi luogo"), "addLocationButton": MessageLookupByLibrary.simpleMessage("Aggiungi"), "addMore": MessageLookupByLibrary.simpleMessage("Aggiungi altri"), @@ -298,7 +298,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Aggiungi nuova persona"), "addOnPageSubtitle": MessageLookupByLibrary.simpleMessage( "Dettagli dei componenti aggiuntivi"), - "addOnValidTill": m8, + "addOnValidTill": m11, "addOns": MessageLookupByLibrary.simpleMessage("Componenti aggiuntivi"), "addPhotos": MessageLookupByLibrary.simpleMessage("Aggiungi foto"), "addSelected": @@ -312,12 +312,12 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Aggiungi contatto fidato"), "addViewer": MessageLookupByLibrary.simpleMessage("Aggiungi in sola lettura"), - "addViewers": m9, + "addViewers": m12, "addYourPhotosNow": MessageLookupByLibrary.simpleMessage("Aggiungi le tue foto ora"), "addedAs": MessageLookupByLibrary.simpleMessage("Aggiunto come"), - "addedBy": m10, - "addedSuccessfullyTo": m11, + "addedBy": m13, + "addedSuccessfullyTo": m14, "addingToFavorites": MessageLookupByLibrary.simpleMessage("Aggiunto ai preferiti..."), "advanced": MessageLookupByLibrary.simpleMessage("Avanzate"), @@ -329,7 +329,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Dopo una settimana"), "after1Year": MessageLookupByLibrary.simpleMessage("Dopo un anno"), "albumOwner": MessageLookupByLibrary.simpleMessage("Proprietario"), - "albumParticipantsCount": m12, + "albumParticipantsCount": m15, "albumTitle": MessageLookupByLibrary.simpleMessage("Titolo album"), "albumUpdated": MessageLookupByLibrary.simpleMessage("Album aggiornato"), @@ -374,7 +374,7 @@ class MessageLookup extends MessageLookupByLibrary { "appLock": MessageLookupByLibrary.simpleMessage("Blocco app"), "appLockDescriptions": MessageLookupByLibrary.simpleMessage( "Scegli tra la schermata di blocco predefinita del dispositivo e una schermata di blocco personalizzata con PIN o password."), - "appVersion": m13, + "appVersion": m16, "appleId": MessageLookupByLibrary.simpleMessage("Apple ID"), "apply": MessageLookupByLibrary.simpleMessage("Applica"), "applyCodeTitle": @@ -458,7 +458,7 @@ class MessageLookup extends MessageLookupByLibrary { "autoPairDesc": MessageLookupByLibrary.simpleMessage( "L\'associazione automatica funziona solo con i dispositivi che supportano Chromecast."), "available": MessageLookupByLibrary.simpleMessage("Disponibile"), - "availableStorageSpace": m14, + "availableStorageSpace": m17, "backedUpFolders": MessageLookupByLibrary.simpleMessage("Cartelle salvate"), "backup": MessageLookupByLibrary.simpleMessage("Backup"), @@ -495,10 +495,10 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Annulla il recupero"), "cancelAccountRecoveryBody": MessageLookupByLibrary.simpleMessage( "Sei sicuro di voler annullare il recupero?"), - "cancelOtherSubscription": m15, + "cancelOtherSubscription": m18, "cancelSubscription": MessageLookupByLibrary.simpleMessage("Annulla abbonamento"), - "cannotAddMorePhotosAfterBecomingViewer": m16, + "cannotAddMorePhotosAfterBecomingViewer": m3, "cannotDeleteSharedFiles": MessageLookupByLibrary.simpleMessage( "Impossibile eliminare i file condivisi"), "castAlbum": MessageLookupByLibrary.simpleMessage("Trasmetti album"), @@ -544,7 +544,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Richiedi spazio gratuito"), "claimMore": MessageLookupByLibrary.simpleMessage("Richiedine di più!"), "claimed": MessageLookupByLibrary.simpleMessage("Riscattato"), - "claimedStorageSoFar": m17, + "claimedStorageSoFar": m19, "cleanUncategorized": MessageLookupByLibrary.simpleMessage("Pulisci Senza Categoria"), "cleanUncategorizedDescription": MessageLookupByLibrary.simpleMessage( @@ -573,12 +573,12 @@ class MessageLookup extends MessageLookupByLibrary { "Crea un link per consentire alle persone di aggiungere e visualizzare foto nel tuo album condiviso senza bisogno di un\'applicazione o di un account Ente. Ottimo per raccogliere foto di un evento."), "collaborativeLink": MessageLookupByLibrary.simpleMessage("Link collaborativo"), - "collaborativeLinkCreatedFor": m18, + "collaborativeLinkCreatedFor": m20, "collaborator": MessageLookupByLibrary.simpleMessage("Collaboratore"), "collaboratorsCanAddPhotosAndVideosToTheSharedAlbum": MessageLookupByLibrary.simpleMessage( "I collaboratori possono aggiungere foto e video all\'album condiviso."), - "collaboratorsSuccessfullyAdded": m19, + "collaboratorsSuccessfullyAdded": m21, "collageLayout": MessageLookupByLibrary.simpleMessage("Disposizione"), "collageSaved": MessageLookupByLibrary.simpleMessage( "Collage salvato nella galleria"), @@ -596,7 +596,7 @@ class MessageLookup extends MessageLookupByLibrary { "Sei sicuro di voler disattivare l\'autenticazione a due fattori?"), "confirmAccountDeletion": MessageLookupByLibrary.simpleMessage( "Conferma eliminazione account"), - "confirmAddingTrustedContact": m20, + "confirmAddingTrustedContact": m22, "confirmDeletePrompt": MessageLookupByLibrary.simpleMessage( "Sì, voglio eliminare definitivamente questo account e i dati associati a esso su tutte le applicazioni."), "confirmPassword": @@ -609,10 +609,10 @@ class MessageLookup extends MessageLookupByLibrary { "Conferma la tua chiave di recupero"), "connectToDevice": MessageLookupByLibrary.simpleMessage("Connetti al dispositivo"), - "contactFamilyAdmin": m21, + "contactFamilyAdmin": m23, "contactSupport": MessageLookupByLibrary.simpleMessage("Contatta il supporto"), - "contactToManageSubscription": m22, + "contactToManageSubscription": m24, "contacts": MessageLookupByLibrary.simpleMessage("Contatti"), "contents": MessageLookupByLibrary.simpleMessage("Contenuti"), "continueLabel": MessageLookupByLibrary.simpleMessage("Continua"), @@ -659,7 +659,7 @@ class MessageLookup extends MessageLookupByLibrary { "currentlyRunning": MessageLookupByLibrary.simpleMessage("attualmente in esecuzione"), "custom": MessageLookupByLibrary.simpleMessage("Personalizza"), - "customEndpoint": m23, + "customEndpoint": m25, "darkTheme": MessageLookupByLibrary.simpleMessage("Scuro"), "dayToday": MessageLookupByLibrary.simpleMessage("Oggi"), "dayYesterday": MessageLookupByLibrary.simpleMessage("Ieri"), @@ -697,11 +697,11 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Elimina dal dispositivo"), "deleteFromEnte": MessageLookupByLibrary.simpleMessage("Elimina da Ente"), - "deleteItemCount": m24, + "deleteItemCount": m26, "deleteLocation": MessageLookupByLibrary.simpleMessage("Elimina posizione"), "deletePhotos": MessageLookupByLibrary.simpleMessage("Elimina foto"), - "deleteProgress": m25, + "deleteProgress": m27, "deleteReason1": MessageLookupByLibrary.simpleMessage( "Manca una caratteristica chiave di cui ho bisogno"), "deleteReason2": MessageLookupByLibrary.simpleMessage( @@ -742,7 +742,7 @@ class MessageLookup extends MessageLookupByLibrary { "I visualizzatori possono scattare screenshot o salvare una copia delle foto utilizzando strumenti esterni"), "disableDownloadWarningTitle": MessageLookupByLibrary.simpleMessage("Nota bene"), - "disableLinkMessage": m26, + "disableLinkMessage": m28, "disableTwofactor": MessageLookupByLibrary.simpleMessage( "Disabilita autenticazione a due fattori"), "disablingTwofactorAuthentication": @@ -785,9 +785,9 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Scaricamento fallito"), "downloading": MessageLookupByLibrary.simpleMessage("Scaricamento in corso..."), - "dropSupportEmail": m27, - "duplicateFileCountWithStorageSaved": m28, - "duplicateItemsGroup": m29, + "dropSupportEmail": m29, + "duplicateFileCountWithStorageSaved": m30, + "duplicateItemsGroup": m31, "edit": MessageLookupByLibrary.simpleMessage("Modifica"), "editLocation": MessageLookupByLibrary.simpleMessage("Modifica luogo"), "editLocationTagTitle": @@ -799,8 +799,8 @@ class MessageLookup extends MessageLookupByLibrary { "Le modifiche alla posizione saranno visibili solo all\'interno di Ente"), "eligible": MessageLookupByLibrary.simpleMessage("idoneo"), "email": MessageLookupByLibrary.simpleMessage("Email"), - "emailChangedTo": m30, - "emailNoEnteAccount": m31, + "emailChangedTo": m32, + "emailNoEnteAccount": m33, "emailVerificationToggle": MessageLookupByLibrary.simpleMessage("Verifica Email"), "emailYourLogs": MessageLookupByLibrary.simpleMessage( @@ -880,7 +880,7 @@ class MessageLookup extends MessageLookupByLibrary { "exportYourData": MessageLookupByLibrary.simpleMessage("Esporta dati"), "extraPhotosFound": MessageLookupByLibrary.simpleMessage("Trovate foto aggiuntive"), - "extraPhotosFoundFor": m32, + "extraPhotosFoundFor": m34, "faceNotClusteredYet": MessageLookupByLibrary.simpleMessage( "Faccia non ancora raggruppata, per favore torna più tardi"), "faceRecognition": @@ -930,8 +930,8 @@ class MessageLookup extends MessageLookupByLibrary { "fileTypes": MessageLookupByLibrary.simpleMessage("Tipi di file"), "fileTypesAndNames": MessageLookupByLibrary.simpleMessage("Tipi e nomi di file"), - "filesBackedUpFromDevice": m33, - "filesBackedUpInAlbum": m34, + "filesBackedUpFromDevice": m35, + "filesBackedUpInAlbum": m36, "filesDeleted": MessageLookupByLibrary.simpleMessage("File eliminati"), "filesSavedToGallery": MessageLookupByLibrary.simpleMessage("File salvati nella galleria"), @@ -947,26 +947,26 @@ class MessageLookup extends MessageLookupByLibrary { "foundFaces": MessageLookupByLibrary.simpleMessage("Volti trovati"), "freeStorageClaimed": MessageLookupByLibrary.simpleMessage("Spazio gratuito richiesto"), - "freeStorageOnReferralSuccess": m35, + "freeStorageOnReferralSuccess": m4, "freeStorageUsable": MessageLookupByLibrary.simpleMessage("Spazio libero utilizzabile"), "freeTrial": MessageLookupByLibrary.simpleMessage("Prova gratuita"), - "freeTrialValidTill": m36, - "freeUpAccessPostDelete": m37, - "freeUpAmount": m38, + "freeTrialValidTill": m37, + "freeUpAccessPostDelete": m38, + "freeUpAmount": m39, "freeUpDeviceSpace": MessageLookupByLibrary.simpleMessage("Libera spazio"), "freeUpDeviceSpaceDesc": MessageLookupByLibrary.simpleMessage( "Risparmia spazio sul tuo dispositivo cancellando i file che sono già stati salvati online."), "freeUpSpace": MessageLookupByLibrary.simpleMessage("Libera spazio"), - "freeUpSpaceSaving": m39, + "freeUpSpaceSaving": m40, "gallery": MessageLookupByLibrary.simpleMessage("Galleria"), "galleryMemoryLimitInfo": MessageLookupByLibrary.simpleMessage( "Fino a 1000 ricordi mostrati nella galleria"), "general": MessageLookupByLibrary.simpleMessage("Generali"), "generatingEncryptionKeys": MessageLookupByLibrary.simpleMessage( "Generazione delle chiavi di crittografia..."), - "genericProgress": m40, + "genericProgress": m41, "goToSettings": MessageLookupByLibrary.simpleMessage("Vai alle impostazioni"), "googlePlayId": MessageLookupByLibrary.simpleMessage("Google Play ID"), @@ -1051,7 +1051,7 @@ class MessageLookup extends MessageLookupByLibrary { "itLooksLikeSomethingWentWrongPleaseRetryAfterSome": MessageLookupByLibrary.simpleMessage( "Sembra che qualcosa sia andato storto. Riprova tra un po\'. Se l\'errore persiste, contatta il nostro team di supporto."), - "itemCount": m41, + "itemCount": m42, "itemsShowTheNumberOfDaysRemainingBeforePermanentDeletion": MessageLookupByLibrary.simpleMessage( "Gli elementi mostrano il numero di giorni rimanenti prima della cancellazione permanente"), @@ -1077,22 +1077,20 @@ class MessageLookup extends MessageLookupByLibrary { "legacy": MessageLookupByLibrary.simpleMessage("Legacy"), "legacyAccounts": MessageLookupByLibrary.simpleMessage("Account Legacy"), - "legacyInvite": m42, + "legacyInvite": m43, "legacyPageDesc": MessageLookupByLibrary.simpleMessage( "Legacy consente ai contatti fidati di accedere al tuo account in tua assenza."), "legacyPageDesc2": MessageLookupByLibrary.simpleMessage( "I contatti fidati possono avviare il recupero dell\'account e, se non sono bloccati entro 30 giorni, reimpostare la password e accedere al tuo account."), "light": MessageLookupByLibrary.simpleMessage("Chiaro"), "lightTheme": MessageLookupByLibrary.simpleMessage("Chiaro"), - "link": MessageLookupByLibrary.simpleMessage("Link"), "linkCopiedToClipboard": MessageLookupByLibrary.simpleMessage("Link copiato negli appunti"), "linkDeviceLimit": MessageLookupByLibrary.simpleMessage("Limite dei dispositivi"), - "linkEmail": MessageLookupByLibrary.simpleMessage("Link email"), "linkEnabled": MessageLookupByLibrary.simpleMessage("Attivato"), "linkExpired": MessageLookupByLibrary.simpleMessage("Scaduto"), - "linkExpiresOn": m43, + "linkExpiresOn": m44, "linkExpiry": MessageLookupByLibrary.simpleMessage("Scadenza del link"), "linkHasExpired": MessageLookupByLibrary.simpleMessage("Il link è scaduto"), @@ -1185,7 +1183,7 @@ class MessageLookup extends MessageLookupByLibrary { "maps": MessageLookupByLibrary.simpleMessage("Mappe"), "mastodon": MessageLookupByLibrary.simpleMessage("Mastodon"), "matrix": MessageLookupByLibrary.simpleMessage("Matrix"), - "memoryCount": m3, + "memoryCount": m5, "merchandise": MessageLookupByLibrary.simpleMessage("Merchandise"), "mergeWithExisting": MessageLookupByLibrary.simpleMessage("Unisci con esistente"), @@ -1213,12 +1211,12 @@ class MessageLookup extends MessageLookupByLibrary { "moreDetails": MessageLookupByLibrary.simpleMessage("Più dettagli"), "mostRecent": MessageLookupByLibrary.simpleMessage("Più recenti"), "mostRelevant": MessageLookupByLibrary.simpleMessage("Più rilevanti"), - "moveItem": m44, + "moveItem": m45, "moveToAlbum": MessageLookupByLibrary.simpleMessage("Sposta nell\'album"), "moveToHiddenAlbum": MessageLookupByLibrary.simpleMessage("Sposta in album nascosto"), - "movedSuccessfullyTo": m45, + "movedSuccessfullyTo": m46, "movedToTrash": MessageLookupByLibrary.simpleMessage("Spostato nel cestino"), "movingFilesToAlbum": MessageLookupByLibrary.simpleMessage( @@ -1248,8 +1246,6 @@ class MessageLookup extends MessageLookupByLibrary { "Non hai file su questo dispositivo che possono essere eliminati"), "noDuplicates": MessageLookupByLibrary.simpleMessage("✨ Nessun doppione"), - "noEnteAccountExclamation": - MessageLookupByLibrary.simpleMessage("No Ente account!"), "noExifData": MessageLookupByLibrary.simpleMessage("Nessun dato EXIF"), "noFacesFound": MessageLookupByLibrary.simpleMessage("Nessun volto trovato"), @@ -1273,10 +1269,10 @@ class MessageLookup extends MessageLookupByLibrary { "noResults": MessageLookupByLibrary.simpleMessage("Nessun risultato"), "noResultsFound": MessageLookupByLibrary.simpleMessage("Nessun risultato trovato"), - "noSuggestionsForPerson": m46, + "noSuggestionsForPerson": m47, "noSystemLockFound": MessageLookupByLibrary.simpleMessage( "Nessun blocco di sistema trovato"), - "notPersonLabel": m47, + "notPersonLabel": m48, "nothingSharedWithYouYet": MessageLookupByLibrary.simpleMessage( "Ancora nulla di condiviso con te"), "nothingToSeeHere": @@ -1286,7 +1282,7 @@ class MessageLookup extends MessageLookupByLibrary { "onDevice": MessageLookupByLibrary.simpleMessage("Sul dispositivo"), "onEnte": MessageLookupByLibrary.simpleMessage( "Su ente"), - "onlyFamilyAdminCanChangeCode": m48, + "onlyFamilyAdminCanChangeCode": m49, "onlyThem": MessageLookupByLibrary.simpleMessage("Solo loro"), "oops": MessageLookupByLibrary.simpleMessage("Oops"), "oopsCouldNotSaveEdits": MessageLookupByLibrary.simpleMessage( @@ -1332,7 +1328,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Pagamento non riuscito"), "paymentFailedMessage": MessageLookupByLibrary.simpleMessage( "Purtroppo il tuo pagamento non è riuscito. Contatta l\'assistenza e ti aiuteremo!"), - "paymentFailedTalkToProvider": m49, + "paymentFailedTalkToProvider": m50, "pendingItems": MessageLookupByLibrary.simpleMessage("Elementi in sospeso"), "pendingSync": @@ -1357,14 +1353,14 @@ class MessageLookup extends MessageLookupByLibrary { "photosAddedByYouWillBeRemovedFromTheAlbum": MessageLookupByLibrary.simpleMessage( "Le foto aggiunte da te verranno rimosse dall\'album"), - "photosCount": m50, + "photosCount": m51, "pickCenterPoint": MessageLookupByLibrary.simpleMessage( "Selezionare il punto centrale"), "pinAlbum": MessageLookupByLibrary.simpleMessage("Fissa l\'album"), "pinLock": MessageLookupByLibrary.simpleMessage("Blocco con PIN"), "playOnTv": MessageLookupByLibrary.simpleMessage("Riproduci album sulla TV"), - "playStoreFreeTrialValidTill": m51, + "playStoreFreeTrialValidTill": m52, "playstoreSubscription": MessageLookupByLibrary.simpleMessage("Abbonamento su PlayStore"), "pleaseCheckYourInternetConnectionAndTryAgain": @@ -1376,14 +1372,14 @@ class MessageLookup extends MessageLookupByLibrary { "pleaseContactSupportIfTheProblemPersists": MessageLookupByLibrary.simpleMessage( "Riprova. Se il problema persiste, ti invitiamo a contattare l\'assistenza"), - "pleaseEmailUsAt": m52, + "pleaseEmailUsAt": m53, "pleaseGrantPermissions": MessageLookupByLibrary.simpleMessage("Concedi i permessi"), "pleaseLoginAgain": MessageLookupByLibrary.simpleMessage( "Effettua nuovamente l\'accesso"), "pleaseSelectQuickLinksToRemove": MessageLookupByLibrary.simpleMessage( "Si prega di selezionare i link rapidi da rimuovere"), - "pleaseSendTheLogsTo": m53, + "pleaseSendTheLogsTo": m54, "pleaseTryAgain": MessageLookupByLibrary.simpleMessage("Riprova"), "pleaseVerifyTheCodeYouHaveEntered": MessageLookupByLibrary.simpleMessage( @@ -1408,7 +1404,7 @@ class MessageLookup extends MessageLookupByLibrary { "privateSharing": MessageLookupByLibrary.simpleMessage("Condivisioni private"), "proceed": MessageLookupByLibrary.simpleMessage("Prosegui"), - "processingImport": m54, + "processingImport": m55, "publicLinkCreated": MessageLookupByLibrary.simpleMessage("Link pubblico creato"), "publicLinkEnabled": @@ -1419,7 +1415,7 @@ class MessageLookup extends MessageLookupByLibrary { "raiseTicket": MessageLookupByLibrary.simpleMessage("Invia ticket"), "rateTheApp": MessageLookupByLibrary.simpleMessage("Valuta l\'app"), "rateUs": MessageLookupByLibrary.simpleMessage("Lascia una recensione"), - "rateUsOnStore": m55, + "rateUsOnStore": m56, "recover": MessageLookupByLibrary.simpleMessage("Recupera"), "recoverAccount": MessageLookupByLibrary.simpleMessage("Recupera account"), @@ -1428,7 +1424,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Recupera l\'account"), "recoveryInitiated": MessageLookupByLibrary.simpleMessage("Recupero avviato"), - "recoveryInitiatedDesc": m56, + "recoveryInitiatedDesc": m57, "recoveryKey": MessageLookupByLibrary.simpleMessage("Chiave di recupero"), "recoveryKeyCopiedToClipboard": MessageLookupByLibrary.simpleMessage( @@ -1443,12 +1439,12 @@ class MessageLookup extends MessageLookupByLibrary { "Chiave di recupero verificata"), "recoveryKeyVerifyReason": MessageLookupByLibrary.simpleMessage( "Se hai dimenticato la password, la tua chiave di ripristino è l\'unico modo per recuperare le tue foto. La puoi trovare in Impostazioni > Account.\n\nInserisci la tua chiave di recupero per verificare di averla salvata correttamente."), - "recoveryReady": m57, + "recoveryReady": m58, "recoverySuccessful": MessageLookupByLibrary.simpleMessage("Recupero riuscito!"), "recoveryWarning": MessageLookupByLibrary.simpleMessage( "Un contatto fidato sta tentando di accedere al tuo account"), - "recoveryWarningBody": m58, + "recoveryWarningBody": m59, "recreatePasswordBody": MessageLookupByLibrary.simpleMessage( "Il dispositivo attuale non è abbastanza potente per verificare la tua password, ma la possiamo rigenerare in un modo che funzioni su tutti i dispositivi.\n\nEffettua il login utilizzando la tua chiave di recupero e rigenera la tua password (puoi utilizzare nuovamente la stessa se vuoi)."), "recreatePasswordTitle": @@ -1464,7 +1460,7 @@ class MessageLookup extends MessageLookupByLibrary { "1. Condividi questo codice con i tuoi amici"), "referralStep2": MessageLookupByLibrary.simpleMessage( "2. Si iscrivono per un piano a pagamento"), - "referralStep3": m59, + "referralStep3": m60, "referrals": MessageLookupByLibrary.simpleMessage("Invita un Amico"), "referralsAreCurrentlyPaused": MessageLookupByLibrary.simpleMessage( "I referral code sono attualmente in pausa"), @@ -1493,7 +1489,7 @@ class MessageLookup extends MessageLookupByLibrary { "removeLink": MessageLookupByLibrary.simpleMessage("Elimina link"), "removeParticipant": MessageLookupByLibrary.simpleMessage("Rimuovi partecipante"), - "removeParticipantBody": m60, + "removeParticipantBody": m61, "removePersonLabel": MessageLookupByLibrary.simpleMessage("Rimuovi etichetta persona"), "removePublicLink": @@ -1513,7 +1509,7 @@ class MessageLookup extends MessageLookupByLibrary { "renameFile": MessageLookupByLibrary.simpleMessage("Rinomina file"), "renewSubscription": MessageLookupByLibrary.simpleMessage("Rinnova abbonamento"), - "renewsOn": m61, + "renewsOn": m62, "reportABug": MessageLookupByLibrary.simpleMessage("Segnala un bug"), "reportBug": MessageLookupByLibrary.simpleMessage("Segnala un bug"), "resendEmail": MessageLookupByLibrary.simpleMessage("Rinvia email"), @@ -1590,7 +1586,7 @@ class MessageLookup extends MessageLookupByLibrary { "Invita persone e vedrai qui tutte le foto condivise da loro"), "searchPersonsEmptySection": MessageLookupByLibrary.simpleMessage( "Le persone saranno mostrate qui una volta che l\'elaborazione e la sincronizzazione saranno completate"), - "searchResultCount": m62, + "searchResultCount": m63, "security": MessageLookupByLibrary.simpleMessage("Sicurezza"), "selectALocation": MessageLookupByLibrary.simpleMessage("Seleziona un luogo"), @@ -1620,8 +1616,8 @@ class MessageLookup extends MessageLookupByLibrary { "selectedItemsWillBeDeletedFromAllAlbumsAndMoved": MessageLookupByLibrary.simpleMessage( "Gli elementi selezionati verranno eliminati da tutti gli album e spostati nel cestino."), - "selectedPhotos": m4, - "selectedPhotosWithYours": m64, + "selectedPhotos": m6, + "selectedPhotosWithYours": m65, "send": MessageLookupByLibrary.simpleMessage("Invia"), "sendEmail": MessageLookupByLibrary.simpleMessage("Invia email"), "sendInvite": MessageLookupByLibrary.simpleMessage("Invita"), @@ -1653,16 +1649,16 @@ class MessageLookup extends MessageLookupByLibrary { "shareAnAlbumNow": MessageLookupByLibrary.simpleMessage("Condividi un album"), "shareLink": MessageLookupByLibrary.simpleMessage("Condividi link"), - "shareMyVerificationID": m65, + "shareMyVerificationID": m66, "shareOnlyWithThePeopleYouWant": MessageLookupByLibrary.simpleMessage( "Condividi solo con le persone che vuoi"), - "shareTextConfirmOthersVerificationID": m5, + "shareTextConfirmOthersVerificationID": m7, "shareTextRecommendUsingEnte": MessageLookupByLibrary.simpleMessage( "Scarica Ente in modo da poter facilmente condividere foto e video in qualità originale\n\nhttps://ente.io"), - "shareTextReferralCode": m66, + "shareTextReferralCode": m67, "shareWithNonenteUsers": MessageLookupByLibrary.simpleMessage( "Condividi con utenti che non hanno un account Ente"), - "shareWithPeopleSectionTitle": m67, + "shareWithPeopleSectionTitle": m68, "shareYourFirstAlbum": MessageLookupByLibrary.simpleMessage( "Condividi il tuo primo album"), "sharedAlbumSectionDescription": MessageLookupByLibrary.simpleMessage( @@ -1673,7 +1669,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Nuove foto condivise"), "sharedPhotoNotificationsExplanation": MessageLookupByLibrary.simpleMessage( "Ricevi notifiche quando qualcuno aggiunge una foto a un album condiviso, di cui fai parte"), - "sharedWith": m68, + "sharedWith": m69, "sharedWithMe": MessageLookupByLibrary.simpleMessage("Condivisi con me"), "sharedWithYou": @@ -1690,11 +1686,11 @@ class MessageLookup extends MessageLookupByLibrary { "Esci dagli altri dispositivi"), "signUpTerms": MessageLookupByLibrary.simpleMessage( "Accetto i termini di servizio e la politica sulla privacy"), - "singleFileDeleteFromDevice": m69, + "singleFileDeleteFromDevice": m70, "singleFileDeleteHighlight": MessageLookupByLibrary.simpleMessage( "Verrà eliminato da tutti gli album."), - "singleFileInBothLocalAndRemote": m70, - "singleFileInRemoteOnly": m71, + "singleFileInBothLocalAndRemote": m71, + "singleFileInRemoteOnly": m72, "skip": MessageLookupByLibrary.simpleMessage("Salta"), "social": MessageLookupByLibrary.simpleMessage("Social"), "someItemsAreInBothEnteAndYourDevice": @@ -1746,10 +1742,10 @@ class MessageLookup extends MessageLookupByLibrary { "storageInGB": m1, "storageLimitExceeded": MessageLookupByLibrary.simpleMessage( "Limite d\'archiviazione superato"), - "storageUsageInfo": m72, + "storageUsageInfo": m73, "strongStrength": MessageLookupByLibrary.simpleMessage("Forte"), - "subAlreadyLinkedErrMessage": m73, - "subWillBeCancelledOn": m74, + "subAlreadyLinkedErrMessage": m74, + "subWillBeCancelledOn": m75, "subscribe": MessageLookupByLibrary.simpleMessage("Iscriviti"), "subscribeToEnableSharing": MessageLookupByLibrary.simpleMessage( "È necessario un abbonamento a pagamento attivo per abilitare la condivisione."), @@ -1766,7 +1762,7 @@ class MessageLookup extends MessageLookupByLibrary { "suggestFeatures": MessageLookupByLibrary.simpleMessage("Suggerisci una funzionalità"), "support": MessageLookupByLibrary.simpleMessage("Assistenza"), - "syncProgress": m75, + "syncProgress": m76, "syncStopped": MessageLookupByLibrary.simpleMessage("Sincronizzazione interrotta"), "syncing": MessageLookupByLibrary.simpleMessage( @@ -1779,7 +1775,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Tocca per sbloccare"), "tapToUpload": MessageLookupByLibrary.simpleMessage("Premi per caricare"), - "tapToUploadIsIgnoredDue": m76, + "tapToUploadIsIgnoredDue": m77, "tempErrorContactSupportIfPersists": MessageLookupByLibrary.simpleMessage( "Sembra che qualcosa sia andato storto. Riprova tra un po\'. Se l\'errore persiste, contatta il nostro team di supporto."), "terminate": MessageLookupByLibrary.simpleMessage("Terminata"), @@ -1800,7 +1796,7 @@ class MessageLookup extends MessageLookupByLibrary { "theseItemsWillBeDeletedFromYourDevice": MessageLookupByLibrary.simpleMessage( "Questi file verranno eliminati dal tuo dispositivo."), - "theyAlsoGetXGb": m77, + "theyAlsoGetXGb": m8, "theyWillBeDeletedFromAllAlbums": MessageLookupByLibrary.simpleMessage( "Verranno eliminati da tutti gli album."), "thisActionCannotBeUndone": MessageLookupByLibrary.simpleMessage( diff --git a/mobile/lib/generated/intl/messages_ja.dart b/mobile/lib/generated/intl/messages_ja.dart index 88bcd9695b4..95a428d8ddb 100644 --- a/mobile/lib/generated/intl/messages_ja.dart +++ b/mobile/lib/generated/intl/messages_ja.dart @@ -20,179 +20,179 @@ typedef String MessageIfAbsent(String messageStr, List args); class MessageLookup extends MessageLookupByLibrary { String get localeName => 'ja'; - static String m6(count) => + static String m9(count) => "${Intl.plural(count, zero: '共同編集者を追加', one: '共同編集者を追加', other: '共同編集者を追加')}"; - static String m7(count) => + static String m10(count) => "${Intl.plural(count, one: '項目を追加', other: '項目を追加')}"; - static String m8(storageAmount, endDate) => + static String m11(storageAmount, endDate) => "あなたの ${storageAmount} アドオンは ${endDate} まで有効です"; - static String m9(count) => + static String m12(count) => "${Intl.plural(count, zero: 'ビューアーを追加', one: 'ビューアーを追加', other: 'ビューアーを追加')}"; - static String m10(emailOrName) => "${emailOrName} が追加"; + static String m13(emailOrName) => "${emailOrName} が追加"; - static String m11(albumName) => "${albumName} に追加しました"; + static String m14(albumName) => "${albumName} に追加しました"; - static String m12(count) => + static String m15(count) => "${Intl.plural(count, zero: '参加者なし', one: '1 参加者', other: '${count} 参加者')}"; - static String m13(versionValue) => "バージョン: ${versionValue}"; + static String m16(versionValue) => "バージョン: ${versionValue}"; - static String m14(freeAmount, storageUnit) => + static String m17(freeAmount, storageUnit) => "${freeAmount} ${storageUnit} 無料"; - static String m15(paymentProvider) => + static String m18(paymentProvider) => "まず${paymentProvider} から既存のサブスクリプションをキャンセルしてください"; - static String m16(user) => + static String m3(user) => "${user} は写真をアルバムに追加できなくなります\n\n※${user} が追加した写真は今後も${user} が削除できます"; - static String m17(isFamilyMember, storageAmountInGb) => + static String m19(isFamilyMember, storageAmountInGb) => "${Intl.select(isFamilyMember, { 'true': '家族は ${storageAmountInGb} GB 受け取っています', 'false': 'あなたは ${storageAmountInGb} GB 受け取っています', 'other': 'あなたは ${storageAmountInGb} GB受け取っています', })}"; - static String m18(albumName) => "${albumName} のコラボレーションリンクを生成しました"; + static String m20(albumName) => "${albumName} のコラボレーションリンクを生成しました"; - static String m21(familyAdminEmail) => + static String m23(familyAdminEmail) => "サブスクリプションを管理するには、 ${familyAdminEmail} に連絡してください"; - static String m22(provider) => + static String m24(provider) => "${provider} サブスクリプションを管理するには、support@ente.io までご連絡ください。"; - static String m23(endpoint) => "${endpoint} に接続しました"; + static String m25(endpoint) => "${endpoint} に接続しました"; - static String m24(count) => + static String m26(count) => "${Intl.plural(count, one: '${count} 個の項目を削除', other: '${count} 個の項目を削除')}"; - static String m25(currentlyDeleting, totalCount) => + static String m27(currentlyDeleting, totalCount) => "${currentlyDeleting} / ${totalCount} を削除中"; - static String m26(albumName) => "\"${albumName}\" にアクセスするための公開リンクが削除されます。"; + static String m28(albumName) => "\"${albumName}\" にアクセスするための公開リンクが削除されます。"; - static String m27(supportEmail) => + static String m29(supportEmail) => "あなたの登録したメールアドレスから${supportEmail} にメールを送ってください"; - static String m28(count, storageSaved) => + static String m30(count, storageSaved) => "お掃除しました ${Intl.plural(count, one: '${count} 個の重複ファイル', other: '${count} 個の重複ファイル')}, (${storageSaved}が開放されます!)"; - static String m29(count, formattedSize) => + static String m31(count, formattedSize) => "${count} 個のファイル、それぞれ${formattedSize}"; - static String m30(newEmail) => "メールアドレスが ${newEmail} に変更されました"; + static String m32(newEmail) => "メールアドレスが ${newEmail} に変更されました"; - static String m31(email) => + static String m33(email) => "${email} はEnteアカウントを持っていません。\n\n写真を共有するために「招待」を送信してください。"; - static String m32(text) => "${text} の写真が見つかりました"; + static String m34(text) => "${text} の写真が見つかりました"; - static String m33(count, formattedNumber) => + static String m35(count, formattedNumber) => "${Intl.plural(count, other: '${formattedNumber} 個のファイル')} が安全にバックアップされました"; - static String m34(count, formattedNumber) => + static String m36(count, formattedNumber) => "${Intl.plural(count, other: '${formattedNumber} ファイル')} が安全にバックアップされました"; - static String m35(storageAmountInGB) => + static String m4(storageAmountInGB) => "誰かが有料プランにサインアップしてコードを適用する度に ${storageAmountInGB} GB"; - static String m36(endDate) => "無料トライアルは${endDate} までです"; + static String m37(endDate) => "無料トライアルは${endDate} までです"; - static String m37(count) => + static String m38(count) => "あなたが有効なサブスクリプションを持っている限りEnte上の ${Intl.plural(count, other: 'それらに')} アクセスできます"; - static String m38(sizeInMBorGB) => "${sizeInMBorGB} を解放する"; + static String m39(sizeInMBorGB) => "${sizeInMBorGB} を解放する"; - static String m39(count, formattedSize) => + static String m40(count, formattedSize) => "${Intl.plural(count, other: 'デバイスから削除して${formattedSize} 解放することができます')}"; - static String m40(currentlyProcessing, totalCount) => + static String m41(currentlyProcessing, totalCount) => "${currentlyProcessing} / ${totalCount} を処理中"; - static String m41(count) => "${Intl.plural(count, other: '${count}個のアイテム')}"; + static String m42(count) => "${Intl.plural(count, other: '${count}個のアイテム')}"; - static String m43(expiryTime) => "リンクは ${expiryTime} に期限切れになります"; + static String m44(expiryTime) => "リンクは ${expiryTime} に期限切れになります"; - static String m3(count, formattedCount) => + static String m5(count, formattedCount) => "${Intl.plural(count, zero: '思い出なし', one: '${formattedCount} 思い出', other: '${formattedCount} 思い出')}"; - static String m44(count) => + static String m45(count) => "${Intl.plural(count, one: '項目を移動', other: '項目を移動')}"; - static String m45(albumName) => "${albumName} に移動しました"; + static String m46(albumName) => "${albumName} に移動しました"; - static String m47(name) => "${name} ではありませんか?"; + static String m48(name) => "${name} ではありませんか?"; - static String m48(familyAdminEmail) => + static String m49(familyAdminEmail) => "コードを変更するには、 ${familyAdminEmail} までご連絡ください。"; static String m0(passwordStrengthValue) => "パスワードの長さ: ${passwordStrengthValue}"; - static String m49(providerName) => "請求された場合は、 ${providerName} のサポートに連絡してください"; + static String m50(providerName) => "請求された場合は、 ${providerName} のサポートに連絡してください"; - static String m51(endDate) => + static String m52(endDate) => "${endDate} まで無料トライアルが有効です。\nその後、有料プランを選択することができます。"; - static String m52(toEmail) => "${toEmail} にメールでご連絡ください"; + static String m53(toEmail) => "${toEmail} にメールでご連絡ください"; - static String m53(toEmail) => "ログを以下のアドレスに送信してください \n${toEmail}"; + static String m54(toEmail) => "ログを以下のアドレスに送信してください \n${toEmail}"; - static String m54(folderName) => "${folderName} を処理中..."; + static String m55(folderName) => "${folderName} を処理中..."; - static String m55(storeName) => "${storeName} で評価"; + static String m56(storeName) => "${storeName} で評価"; - static String m59(storageInGB) => "3. お二人とも ${storageInGB} GB*を無料で手に入ります。"; + static String m60(storageInGB) => "3. お二人とも ${storageInGB} GB*を無料で手に入ります。"; - static String m60(userEmail) => + static String m61(userEmail) => "${userEmail} はこの共有アルバムから退出します\n\n${userEmail} が追加した写真もアルバムから削除されます"; - static String m61(endDate) => "サブスクリプションは ${endDate} に更新します"; + static String m62(endDate) => "サブスクリプションは ${endDate} に更新します"; - static String m62(count) => + static String m63(count) => "${Intl.plural(count, one: '${count} 個の結果', other: '${count} 個の結果')}"; - static String m4(count) => "${count} 個を選択"; + static String m6(count) => "${count} 個を選択"; - static String m64(count, yourCount) => "${count} 個選択中(${yourCount} あなた)"; + static String m65(count, yourCount) => "${count} 個選択中(${yourCount} あなた)"; - static String m65(verificationID) => "私の確認ID: ente.ioの ${verificationID}"; + static String m66(verificationID) => "私の確認ID: ente.ioの ${verificationID}"; - static String m5(verificationID) => + static String m7(verificationID) => "これがあなたのente.io確認用IDであることを確認できますか? ${verificationID}"; - static String m66(referralCode, referralStorageInGB) => + static String m67(referralCode, referralStorageInGB) => "リフェラルコード: ${referralCode}\n\n設定→一般→リフェラルで使うことで${referralStorageInGB}が無料になります(あなたが有料プランに加入したあと)。\n\nhttps://ente.io"; - static String m67(numberOfPeople) => + static String m68(numberOfPeople) => "${Intl.plural(numberOfPeople, zero: '誰かと共有しましょう', one: '1人と共有されています', other: '${numberOfPeople} 人と共有されています')}"; - static String m68(emailIDs) => "${emailIDs} と共有中"; + static String m69(emailIDs) => "${emailIDs} と共有中"; - static String m69(fileType) => "${fileType} はEnteから削除されます。"; + static String m70(fileType) => "${fileType} はEnteから削除されます。"; - static String m70(fileType) => "この ${fileType} はEnteとお使いのデバイスの両方にあります。"; + static String m71(fileType) => "この ${fileType} はEnteとお使いのデバイスの両方にあります。"; - static String m71(fileType) => "${fileType} はEnteから削除されます。"; + static String m72(fileType) => "${fileType} はEnteから削除されます。"; static String m1(storageAmountInGB) => "${storageAmountInGB} GB"; - static String m72( + static String m73( usedAmount, usedStorageUnit, totalAmount, totalStorageUnit) => "${usedAmount} ${usedStorageUnit} / ${totalAmount} ${totalStorageUnit} 使用"; - static String m73(id) => + static String m74(id) => "あなたの ${id} はすでに別のEnteアカウントにリンクされています。\nこのアカウントであなたの ${id} を使用したい場合は、サポートにお問い合わせください。"; - static String m74(endDate) => "サブスクリプションは ${endDate} でキャンセルされます"; + static String m75(endDate) => "サブスクリプションは ${endDate} でキャンセルされます"; - static String m75(completed, total) => "${completed}/${total} のメモリが保存されました"; + static String m76(completed, total) => "${completed}/${total} のメモリが保存されました"; - static String m77(storageAmountInGB) => "紹介者も ${storageAmountInGB} GB を得ます"; + static String m8(storageAmountInGB) => "紹介者も ${storageAmountInGB} GB を得ます"; static String m78(email) => "これは ${email} の確認用ID"; @@ -223,9 +223,9 @@ class MessageLookup extends MessageLookupByLibrary { "addAName": MessageLookupByLibrary.simpleMessage("名前を追加"), "addANewEmail": MessageLookupByLibrary.simpleMessage("新しいEメールアドレスを追加"), "addCollaborator": MessageLookupByLibrary.simpleMessage("コラボレーターを追加"), - "addCollaborators": m6, + "addCollaborators": m9, "addFromDevice": MessageLookupByLibrary.simpleMessage("デバイスから追加"), - "addItem": m7, + "addItem": m10, "addLocation": MessageLookupByLibrary.simpleMessage("位置情報を追加"), "addLocationButton": MessageLookupByLibrary.simpleMessage("追加"), "addMore": MessageLookupByLibrary.simpleMessage("さらに追加"), @@ -235,7 +235,7 @@ class MessageLookup extends MessageLookupByLibrary { "addNew": MessageLookupByLibrary.simpleMessage("新規追加"), "addNewPerson": MessageLookupByLibrary.simpleMessage("新しい人物を追加"), "addOnPageSubtitle": MessageLookupByLibrary.simpleMessage("アドオンの詳細"), - "addOnValidTill": m8, + "addOnValidTill": m11, "addOns": MessageLookupByLibrary.simpleMessage("アドオン"), "addPhotos": MessageLookupByLibrary.simpleMessage("写真を追加"), "addSelected": MessageLookupByLibrary.simpleMessage("選んだものをアルバムに追加"), @@ -243,11 +243,11 @@ class MessageLookup extends MessageLookupByLibrary { "addToEnte": MessageLookupByLibrary.simpleMessage("Enteに追加"), "addToHiddenAlbum": MessageLookupByLibrary.simpleMessage("非表示アルバムに追加"), "addViewer": MessageLookupByLibrary.simpleMessage("ビューアーを追加"), - "addViewers": m9, + "addViewers": m12, "addYourPhotosNow": MessageLookupByLibrary.simpleMessage("写真を今すぐ追加する"), "addedAs": MessageLookupByLibrary.simpleMessage("追加:"), - "addedBy": m10, - "addedSuccessfullyTo": m11, + "addedBy": m13, + "addedSuccessfullyTo": m14, "addingToFavorites": MessageLookupByLibrary.simpleMessage("お気に入りに追加しています..."), "advanced": MessageLookupByLibrary.simpleMessage("詳細"), @@ -258,7 +258,7 @@ class MessageLookup extends MessageLookupByLibrary { "after1Week": MessageLookupByLibrary.simpleMessage("1週間後"), "after1Year": MessageLookupByLibrary.simpleMessage("1年後"), "albumOwner": MessageLookupByLibrary.simpleMessage("所有者"), - "albumParticipantsCount": m12, + "albumParticipantsCount": m15, "albumTitle": MessageLookupByLibrary.simpleMessage("アルバムタイトル"), "albumUpdated": MessageLookupByLibrary.simpleMessage("アルバムが更新されました"), "albums": MessageLookupByLibrary.simpleMessage("アルバム"), @@ -290,7 +290,7 @@ class MessageLookup extends MessageLookupByLibrary { "appLock": MessageLookupByLibrary.simpleMessage("アプリのロック"), "appLockDescriptions": MessageLookupByLibrary.simpleMessage( "デバイスのデフォルトのロック画面と、カスタムロック画面のどちらを利用しますか?"), - "appVersion": m13, + "appVersion": m16, "appleId": MessageLookupByLibrary.simpleMessage("Apple ID"), "apply": MessageLookupByLibrary.simpleMessage("適用"), "applyCodeTitle": MessageLookupByLibrary.simpleMessage("コードを適用"), @@ -358,7 +358,7 @@ class MessageLookup extends MessageLookupByLibrary { "autoPairDesc": MessageLookupByLibrary.simpleMessage( "自動ペアリングは Chromecast に対応しているデバイスでのみ動作します。"), "available": MessageLookupByLibrary.simpleMessage("ご利用可能"), - "availableStorageSpace": m14, + "availableStorageSpace": m17, "backedUpFolders": MessageLookupByLibrary.simpleMessage("バックアップされたフォルダ"), "backup": MessageLookupByLibrary.simpleMessage("バックアップ"), @@ -382,10 +382,10 @@ class MessageLookup extends MessageLookupByLibrary { "canOnlyRemoveFilesOwnedByYou": MessageLookupByLibrary.simpleMessage("あなたが所有しているファイルのみを削除できます"), "cancel": MessageLookupByLibrary.simpleMessage("キャンセル"), - "cancelOtherSubscription": m15, + "cancelOtherSubscription": m18, "cancelSubscription": MessageLookupByLibrary.simpleMessage("サブスクリプションをキャンセル"), - "cannotAddMorePhotosAfterBecomingViewer": m16, + "cannotAddMorePhotosAfterBecomingViewer": m3, "cannotDeleteSharedFiles": MessageLookupByLibrary.simpleMessage("共有ファイルは削除できません"), "castIPMismatchBody": @@ -413,7 +413,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("無料のストレージを受け取る"), "claimMore": MessageLookupByLibrary.simpleMessage("もっと!"), "claimed": MessageLookupByLibrary.simpleMessage("受け取り済"), - "claimedStorageSoFar": m17, + "claimedStorageSoFar": m19, "cleanUncategorized": MessageLookupByLibrary.simpleMessage("未分類のクリーンアップ"), "cleanUncategorizedDescription": MessageLookupByLibrary.simpleMessage( @@ -438,7 +438,7 @@ class MessageLookup extends MessageLookupByLibrary { "collabLinkSectionDescription": MessageLookupByLibrary.simpleMessage( "Enteアプリやアカウントを持っていない人にも、共有アルバムに写真を追加したり表示したりできるリンクを作成します。"), "collaborativeLink": MessageLookupByLibrary.simpleMessage("共同作業リンク"), - "collaborativeLinkCreatedFor": m18, + "collaborativeLinkCreatedFor": m20, "collaborator": MessageLookupByLibrary.simpleMessage("コラボレーター"), "collaboratorsCanAddPhotosAndVideosToTheSharedAlbum": MessageLookupByLibrary.simpleMessage( @@ -468,9 +468,9 @@ class MessageLookup extends MessageLookupByLibrary { "confirmYourRecoveryKey": MessageLookupByLibrary.simpleMessage("リカバリーキーを確認"), "connectToDevice": MessageLookupByLibrary.simpleMessage("デバイスに接続"), - "contactFamilyAdmin": m21, + "contactFamilyAdmin": m23, "contactSupport": MessageLookupByLibrary.simpleMessage("お問い合わせ"), - "contactToManageSubscription": m22, + "contactToManageSubscription": m24, "contacts": MessageLookupByLibrary.simpleMessage("連絡先"), "contents": MessageLookupByLibrary.simpleMessage("内容"), "continueLabel": MessageLookupByLibrary.simpleMessage("つづける"), @@ -506,7 +506,7 @@ class MessageLookup extends MessageLookupByLibrary { "crop": MessageLookupByLibrary.simpleMessage("クロップ"), "currentUsageIs": MessageLookupByLibrary.simpleMessage("現在の使用状況 "), "custom": MessageLookupByLibrary.simpleMessage("カスタム"), - "customEndpoint": m23, + "customEndpoint": m25, "darkTheme": MessageLookupByLibrary.simpleMessage("ダーク"), "dayToday": MessageLookupByLibrary.simpleMessage("今日"), "dayYesterday": MessageLookupByLibrary.simpleMessage("昨日"), @@ -535,10 +535,10 @@ class MessageLookup extends MessageLookupByLibrary { "deleteFromBoth": MessageLookupByLibrary.simpleMessage("両方から削除"), "deleteFromDevice": MessageLookupByLibrary.simpleMessage("デバイスから削除"), "deleteFromEnte": MessageLookupByLibrary.simpleMessage("Enteから削除"), - "deleteItemCount": m24, + "deleteItemCount": m26, "deleteLocation": MessageLookupByLibrary.simpleMessage("位置情報を削除"), "deletePhotos": MessageLookupByLibrary.simpleMessage("写真を削除"), - "deleteProgress": m25, + "deleteProgress": m27, "deleteReason1": MessageLookupByLibrary.simpleMessage("いちばん必要な機能がない"), "deleteReason2": MessageLookupByLibrary.simpleMessage("アプリや特定の機能が想定通りに動かない"), @@ -570,7 +570,7 @@ class MessageLookup extends MessageLookupByLibrary { "ビューアーはスクリーンショットを撮ったり、外部ツールを使用して写真のコピーを保存したりすることができます"), "disableDownloadWarningTitle": MessageLookupByLibrary.simpleMessage("ご注意ください"), - "disableLinkMessage": m26, + "disableLinkMessage": m28, "disableTwofactor": MessageLookupByLibrary.simpleMessage("2段階認証を無効にする"), "disablingTwofactorAuthentication": MessageLookupByLibrary.simpleMessage("2要素認証を無効にしています..."), @@ -605,9 +605,9 @@ class MessageLookup extends MessageLookupByLibrary { "download": MessageLookupByLibrary.simpleMessage("ダウンロード"), "downloadFailed": MessageLookupByLibrary.simpleMessage("ダウンロード失敗"), "downloading": MessageLookupByLibrary.simpleMessage("ダウンロード中…"), - "dropSupportEmail": m27, - "duplicateFileCountWithStorageSaved": m28, - "duplicateItemsGroup": m29, + "dropSupportEmail": m29, + "duplicateFileCountWithStorageSaved": m30, + "duplicateItemsGroup": m31, "edit": MessageLookupByLibrary.simpleMessage("編集"), "editLocation": MessageLookupByLibrary.simpleMessage("位置情報を編集"), "editLocationTagTitle": MessageLookupByLibrary.simpleMessage("位置情報を編集"), @@ -617,8 +617,8 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("位置情報の編集はEnteでのみ表示されます"), "eligible": MessageLookupByLibrary.simpleMessage("対象となる"), "email": MessageLookupByLibrary.simpleMessage("Eメール"), - "emailChangedTo": m30, - "emailNoEnteAccount": m31, + "emailChangedTo": m32, + "emailNoEnteAccount": m33, "emailVerificationToggle": MessageLookupByLibrary.simpleMessage("メール確認"), "emailYourLogs": MessageLookupByLibrary.simpleMessage("ログをメールで送信"), @@ -685,7 +685,7 @@ class MessageLookup extends MessageLookupByLibrary { "exportYourData": MessageLookupByLibrary.simpleMessage("データをエクスポート"), "extraPhotosFound": MessageLookupByLibrary.simpleMessage("追加の写真が見つかりました"), - "extraPhotosFoundFor": m32, + "extraPhotosFoundFor": m34, "faceRecognition": MessageLookupByLibrary.simpleMessage("顔認識"), "faces": MessageLookupByLibrary.simpleMessage("顔"), "failedToApplyCode": @@ -717,8 +717,8 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("ファイルをギャラリーに保存しました"), "fileTypes": MessageLookupByLibrary.simpleMessage("ファイルの種類"), "fileTypesAndNames": MessageLookupByLibrary.simpleMessage("ファイルの種類と名前"), - "filesBackedUpFromDevice": m33, - "filesBackedUpInAlbum": m34, + "filesBackedUpFromDevice": m35, + "filesBackedUpInAlbum": m36, "filesDeleted": MessageLookupByLibrary.simpleMessage("削除されたファイル"), "filesSavedToGallery": MessageLookupByLibrary.simpleMessage("ギャラリーに保存されたファイル"), @@ -729,25 +729,25 @@ class MessageLookup extends MessageLookupByLibrary { "forgotPassword": MessageLookupByLibrary.simpleMessage("パスワードを忘れた"), "foundFaces": MessageLookupByLibrary.simpleMessage("見つかった顔"), "freeStorageClaimed": MessageLookupByLibrary.simpleMessage("空き容量を受け取る"), - "freeStorageOnReferralSuccess": m35, + "freeStorageOnReferralSuccess": m4, "freeStorageUsable": MessageLookupByLibrary.simpleMessage("無料のストレージが利用可能です"), "freeTrial": MessageLookupByLibrary.simpleMessage("無料トライアル"), - "freeTrialValidTill": m36, - "freeUpAccessPostDelete": m37, - "freeUpAmount": m38, + "freeTrialValidTill": m37, + "freeUpAccessPostDelete": m38, + "freeUpAmount": m39, "freeUpDeviceSpace": MessageLookupByLibrary.simpleMessage("デバイスの空き領域を解放する"), "freeUpDeviceSpaceDesc": MessageLookupByLibrary.simpleMessage( "すでにバックアップされているファイルを消去して、デバイスの容量を空けます。"), "freeUpSpace": MessageLookupByLibrary.simpleMessage("スペースを解放する"), - "freeUpSpaceSaving": m39, + "freeUpSpaceSaving": m40, "galleryMemoryLimitInfo": MessageLookupByLibrary.simpleMessage("ギャラリーに表示されるメモリは最大1000個までです"), "general": MessageLookupByLibrary.simpleMessage("設定"), "generatingEncryptionKeys": MessageLookupByLibrary.simpleMessage("暗号化鍵を生成しています"), - "genericProgress": m40, + "genericProgress": m41, "goToSettings": MessageLookupByLibrary.simpleMessage("設定に移動"), "googlePlayId": MessageLookupByLibrary.simpleMessage("Google Play ID"), "grantFullAccessPrompt": MessageLookupByLibrary.simpleMessage( @@ -816,7 +816,7 @@ class MessageLookup extends MessageLookupByLibrary { "itLooksLikeSomethingWentWrongPleaseRetryAfterSome": MessageLookupByLibrary.simpleMessage( "問題が発生したようです。しばらくしてから再試行してください。エラーが解決しない場合は、サポートチームにお問い合わせください。"), - "itemCount": m41, + "itemCount": m42, "itemsShowTheNumberOfDaysRemainingBeforePermanentDeletion": MessageLookupByLibrary.simpleMessage("完全に削除されるまでの日数が項目に表示されます"), "itemsWillBeRemovedFromAlbum": @@ -836,14 +836,12 @@ class MessageLookup extends MessageLookupByLibrary { "left": MessageLookupByLibrary.simpleMessage("左"), "light": MessageLookupByLibrary.simpleMessage("ライト"), "lightTheme": MessageLookupByLibrary.simpleMessage("ライト"), - "link": MessageLookupByLibrary.simpleMessage("Link"), "linkCopiedToClipboard": MessageLookupByLibrary.simpleMessage("リンクをクリップボードにコピーしました"), "linkDeviceLimit": MessageLookupByLibrary.simpleMessage("デバイスの制限"), - "linkEmail": MessageLookupByLibrary.simpleMessage("Link email"), "linkEnabled": MessageLookupByLibrary.simpleMessage("有効"), "linkExpired": MessageLookupByLibrary.simpleMessage("期限切れ"), - "linkExpiresOn": m43, + "linkExpiresOn": m44, "linkExpiry": MessageLookupByLibrary.simpleMessage("リンクの期限切れ"), "linkHasExpired": MessageLookupByLibrary.simpleMessage("リンクは期限切れです"), "linkNeverExpires": MessageLookupByLibrary.simpleMessage("なし"), @@ -920,7 +918,7 @@ class MessageLookup extends MessageLookupByLibrary { "maps": MessageLookupByLibrary.simpleMessage("地図"), "mastodon": MessageLookupByLibrary.simpleMessage("Mastodon"), "matrix": MessageLookupByLibrary.simpleMessage("Matrix"), - "memoryCount": m3, + "memoryCount": m5, "merchandise": MessageLookupByLibrary.simpleMessage("グッズ"), "mergeWithExisting": MessageLookupByLibrary.simpleMessage("既存の人物とまとめる"), "mergedPhotos": MessageLookupByLibrary.simpleMessage("統合された写真"), @@ -944,10 +942,10 @@ class MessageLookup extends MessageLookupByLibrary { "moreDetails": MessageLookupByLibrary.simpleMessage("さらに詳細を表示"), "mostRecent": MessageLookupByLibrary.simpleMessage("新しい順"), "mostRelevant": MessageLookupByLibrary.simpleMessage("関連度順"), - "moveItem": m44, + "moveItem": m45, "moveToAlbum": MessageLookupByLibrary.simpleMessage("アルバムに移動"), "moveToHiddenAlbum": MessageLookupByLibrary.simpleMessage("隠しアルバムに移動"), - "movedSuccessfullyTo": m45, + "movedSuccessfullyTo": m46, "movedToTrash": MessageLookupByLibrary.simpleMessage("ごみ箱へ移動"), "movingFilesToAlbum": MessageLookupByLibrary.simpleMessage("アルバムにファイルを移動中"), @@ -971,8 +969,6 @@ class MessageLookup extends MessageLookupByLibrary { "noDeviceThatCanBeDeleted": MessageLookupByLibrary.simpleMessage("削除できるファイルがありません"), "noDuplicates": MessageLookupByLibrary.simpleMessage("✨ 重複なし"), - "noEnteAccountExclamation": - MessageLookupByLibrary.simpleMessage("No Ente account!"), "noExifData": MessageLookupByLibrary.simpleMessage("EXIFデータはありません"), "noHiddenPhotosOrVideos": MessageLookupByLibrary.simpleMessage("非表示の写真やビデオはありません"), @@ -993,7 +989,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("一致する結果が見つかりませんでした"), "noSystemLockFound": MessageLookupByLibrary.simpleMessage("システムロックが見つかりませんでした"), - "notPersonLabel": m47, + "notPersonLabel": m48, "nothingSharedWithYouYet": MessageLookupByLibrary.simpleMessage("あなたに共有されたものはありません"), "nothingToSeeHere": @@ -1003,7 +999,7 @@ class MessageLookup extends MessageLookupByLibrary { "onDevice": MessageLookupByLibrary.simpleMessage("デバイス上"), "onEnte": MessageLookupByLibrary.simpleMessage( "Enteで保管"), - "onlyFamilyAdminCanChangeCode": m48, + "onlyFamilyAdminCanChangeCode": m49, "oops": MessageLookupByLibrary.simpleMessage("Oops"), "oopsCouldNotSaveEdits": MessageLookupByLibrary.simpleMessage("編集を保存できませんでした"), @@ -1040,7 +1036,7 @@ class MessageLookup extends MessageLookupByLibrary { "paymentFailed": MessageLookupByLibrary.simpleMessage("支払いに失敗しました"), "paymentFailedMessage": MessageLookupByLibrary.simpleMessage( "残念ながらお支払いに失敗しました。サポートにお問い合わせください。お手伝いします!"), - "paymentFailedTalkToProvider": m49, + "paymentFailedTalkToProvider": m50, "pendingItems": MessageLookupByLibrary.simpleMessage("処理待ちの項目"), "pendingSync": MessageLookupByLibrary.simpleMessage("同期を保留中"), "people": MessageLookupByLibrary.simpleMessage("人物"), @@ -1062,7 +1058,7 @@ class MessageLookup extends MessageLookupByLibrary { "pinAlbum": MessageLookupByLibrary.simpleMessage("アルバムをピンする"), "pinLock": MessageLookupByLibrary.simpleMessage("PINロック"), "playOnTv": MessageLookupByLibrary.simpleMessage("TVでアルバムを再生"), - "playStoreFreeTrialValidTill": m51, + "playStoreFreeTrialValidTill": m52, "playstoreSubscription": MessageLookupByLibrary.simpleMessage("PlayStoreサブスクリプション"), "pleaseCheckYourInternetConnectionAndTryAgain": @@ -1072,13 +1068,13 @@ class MessageLookup extends MessageLookupByLibrary { "Support@ente.ioにお問い合わせください、お手伝いいたします。"), "pleaseContactSupportIfTheProblemPersists": MessageLookupByLibrary.simpleMessage("問題が解決しない場合はサポートにお問い合わせください"), - "pleaseEmailUsAt": m52, + "pleaseEmailUsAt": m53, "pleaseGrantPermissions": MessageLookupByLibrary.simpleMessage("権限を付与してください"), "pleaseLoginAgain": MessageLookupByLibrary.simpleMessage("もう一度試してください"), "pleaseSelectQuickLinksToRemove": MessageLookupByLibrary.simpleMessage("削除するクイックリンクを選択してください"), - "pleaseSendTheLogsTo": m53, + "pleaseSendTheLogsTo": m54, "pleaseTryAgain": MessageLookupByLibrary.simpleMessage("もう一度試してください"), "pleaseVerifyTheCodeYouHaveEntered": MessageLookupByLibrary.simpleMessage("入力したコードを確認してください"), @@ -1098,7 +1094,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("プライバシーポリシー"), "privateBackups": MessageLookupByLibrary.simpleMessage("プライベートバックアップ"), "privateSharing": MessageLookupByLibrary.simpleMessage("プライベート共有"), - "processingImport": m54, + "processingImport": m55, "publicLinkCreated": MessageLookupByLibrary.simpleMessage("公開リンクが作成されました"), "publicLinkEnabled": @@ -1108,7 +1104,7 @@ class MessageLookup extends MessageLookupByLibrary { "raiseTicket": MessageLookupByLibrary.simpleMessage("サポートを受ける"), "rateTheApp": MessageLookupByLibrary.simpleMessage("アプリを評価"), "rateUs": MessageLookupByLibrary.simpleMessage("評価して下さい"), - "rateUsOnStore": m55, + "rateUsOnStore": m56, "recover": MessageLookupByLibrary.simpleMessage("復元"), "recoverAccount": MessageLookupByLibrary.simpleMessage("アカウントを復元"), "recoverButton": MessageLookupByLibrary.simpleMessage("復元"), @@ -1140,7 +1136,7 @@ class MessageLookup extends MessageLookupByLibrary { "referralStep1": MessageLookupByLibrary.simpleMessage("1. このコードを友達に贈りましょう"), "referralStep2": MessageLookupByLibrary.simpleMessage("2. 友達が有料プランに登録"), - "referralStep3": m59, + "referralStep3": m60, "referrals": MessageLookupByLibrary.simpleMessage("リフェラル"), "referralsAreCurrentlyPaused": MessageLookupByLibrary.simpleMessage("リフェラルは現在一時停止しています"), @@ -1163,7 +1159,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("お気に入りリストから外す"), "removeLink": MessageLookupByLibrary.simpleMessage("リンクを削除"), "removeParticipant": MessageLookupByLibrary.simpleMessage("参加者を削除"), - "removeParticipantBody": m60, + "removeParticipantBody": m61, "removePersonLabel": MessageLookupByLibrary.simpleMessage("人名を削除"), "removePublicLink": MessageLookupByLibrary.simpleMessage("公開リンクを削除"), "removePublicLinks": MessageLookupByLibrary.simpleMessage("公開リンクを削除"), @@ -1178,7 +1174,7 @@ class MessageLookup extends MessageLookupByLibrary { "renameFile": MessageLookupByLibrary.simpleMessage("ファイル名を変更"), "renewSubscription": MessageLookupByLibrary.simpleMessage("サブスクリプションの更新"), - "renewsOn": m61, + "renewsOn": m62, "reportABug": MessageLookupByLibrary.simpleMessage("バグを報告"), "reportBug": MessageLookupByLibrary.simpleMessage("バグを報告"), "resendEmail": MessageLookupByLibrary.simpleMessage("メールを再送信"), @@ -1237,7 +1233,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("当時の直近で撮影された写真をグループ化"), "searchPeopleEmptySection": MessageLookupByLibrary.simpleMessage("友達を招待すると、共有される写真はここから閲覧できます"), - "searchResultCount": m62, + "searchResultCount": m63, "security": MessageLookupByLibrary.simpleMessage("セキュリティ"), "selectALocation": MessageLookupByLibrary.simpleMessage("場所を選択"), "selectALocationFirst": @@ -1259,8 +1255,8 @@ class MessageLookup extends MessageLookupByLibrary { "selectedItemsWillBeDeletedFromAllAlbumsAndMoved": MessageLookupByLibrary.simpleMessage( "選択したアイテムはすべてのアルバムから削除され、ゴミ箱に移動されます。"), - "selectedPhotos": m4, - "selectedPhotosWithYours": m64, + "selectedPhotos": m6, + "selectedPhotosWithYours": m65, "send": MessageLookupByLibrary.simpleMessage("送信"), "sendEmail": MessageLookupByLibrary.simpleMessage("メールを送信する"), "sendInvite": MessageLookupByLibrary.simpleMessage("招待を送る"), @@ -1282,16 +1278,16 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("アルバムを開いて右上のシェアボタンをタップ"), "shareAnAlbumNow": MessageLookupByLibrary.simpleMessage("アルバムを共有"), "shareLink": MessageLookupByLibrary.simpleMessage("リンクの共有"), - "shareMyVerificationID": m65, + "shareMyVerificationID": m66, "shareOnlyWithThePeopleYouWant": MessageLookupByLibrary.simpleMessage("選んだ人と共有します"), - "shareTextConfirmOthersVerificationID": m5, + "shareTextConfirmOthersVerificationID": m7, "shareTextRecommendUsingEnte": MessageLookupByLibrary.simpleMessage( "Enteをダウンロードして、写真や動画の共有を簡単に!\n\nhttps://ente.io"), - "shareTextReferralCode": m66, + "shareTextReferralCode": m67, "shareWithNonenteUsers": MessageLookupByLibrary.simpleMessage("Enteを使っていない人に共有"), - "shareWithPeopleSectionTitle": m67, + "shareWithPeopleSectionTitle": m68, "shareYourFirstAlbum": MessageLookupByLibrary.simpleMessage("アルバムの共有をしてみましょう"), "sharedAlbumSectionDescription": MessageLookupByLibrary.simpleMessage( @@ -1302,7 +1298,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("新しい共有写真"), "sharedPhotoNotificationsExplanation": MessageLookupByLibrary.simpleMessage("誰かが写真を共有アルバムに追加した時に通知を受け取る"), - "sharedWith": m68, + "sharedWith": m69, "sharedWithMe": MessageLookupByLibrary.simpleMessage("あなたと共有されたアルバム"), "sharedWithYou": MessageLookupByLibrary.simpleMessage("あなたと共有されています"), "sharing": MessageLookupByLibrary.simpleMessage("共有中..."), @@ -1316,11 +1312,11 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("他のデバイスからサインアウトする"), "signUpTerms": MessageLookupByLibrary.simpleMessage( "利用規約プライバシーポリシーに同意します"), - "singleFileDeleteFromDevice": m69, + "singleFileDeleteFromDevice": m70, "singleFileDeleteHighlight": MessageLookupByLibrary.simpleMessage("全てのアルバムから削除されます。"), - "singleFileInBothLocalAndRemote": m70, - "singleFileInRemoteOnly": m71, + "singleFileInBothLocalAndRemote": m71, + "singleFileInRemoteOnly": m72, "skip": MessageLookupByLibrary.simpleMessage("スキップ"), "social": MessageLookupByLibrary.simpleMessage("SNS"), "someItemsAreInBothEnteAndYourDevice": @@ -1361,10 +1357,10 @@ class MessageLookup extends MessageLookupByLibrary { "storageInGB": m1, "storageLimitExceeded": MessageLookupByLibrary.simpleMessage("ストレージの上限を超えました"), - "storageUsageInfo": m72, + "storageUsageInfo": m73, "strongStrength": MessageLookupByLibrary.simpleMessage("強いパスワード"), - "subAlreadyLinkedErrMessage": m73, - "subWillBeCancelledOn": m74, + "subAlreadyLinkedErrMessage": m74, + "subWillBeCancelledOn": m75, "subscribe": MessageLookupByLibrary.simpleMessage("サブスクライブ"), "subscribeToEnableSharing": MessageLookupByLibrary.simpleMessage( "共有を有効にするには、有料サブスクリプションが必要です。"), @@ -1378,7 +1374,7 @@ class MessageLookup extends MessageLookupByLibrary { "successfullyUnhid": MessageLookupByLibrary.simpleMessage("非表示を解除しました"), "suggestFeatures": MessageLookupByLibrary.simpleMessage("機能を提案"), "support": MessageLookupByLibrary.simpleMessage("サポート"), - "syncProgress": m75, + "syncProgress": m76, "syncStopped": MessageLookupByLibrary.simpleMessage("同期が停止しました"), "syncing": MessageLookupByLibrary.simpleMessage("同期中..."), "systemTheme": MessageLookupByLibrary.simpleMessage("システム"), @@ -1401,7 +1397,7 @@ class MessageLookup extends MessageLookupByLibrary { "theme": MessageLookupByLibrary.simpleMessage("テーマ"), "theseItemsWillBeDeletedFromYourDevice": MessageLookupByLibrary.simpleMessage("これらの項目はデバイスから削除されます。"), - "theyAlsoGetXGb": m77, + "theyAlsoGetXGb": m8, "theyWillBeDeletedFromAllAlbums": MessageLookupByLibrary.simpleMessage("全てのアルバムから削除されます。"), "thisActionCannotBeUndone": diff --git a/mobile/lib/generated/intl/messages_km.dart b/mobile/lib/generated/intl/messages_km.dart index 9c9d54269a9..22d42313612 100644 --- a/mobile/lib/generated/intl/messages_km.dart +++ b/mobile/lib/generated/intl/messages_km.dart @@ -21,10 +21,5 @@ class MessageLookup extends MessageLookupByLibrary { String get localeName => 'km'; final messages = _notInlinedMessages(_notInlinedMessages); - static Map _notInlinedMessages(_) => { - "link": MessageLookupByLibrary.simpleMessage("Link"), - "linkEmail": MessageLookupByLibrary.simpleMessage("Link email"), - "noEnteAccountExclamation": - MessageLookupByLibrary.simpleMessage("No Ente account!") - }; + static Map _notInlinedMessages(_) => {}; } diff --git a/mobile/lib/generated/intl/messages_ko.dart b/mobile/lib/generated/intl/messages_ko.dart index 17c398f5f6a..e378d62fd94 100644 --- a/mobile/lib/generated/intl/messages_ko.dart +++ b/mobile/lib/generated/intl/messages_ko.dart @@ -40,10 +40,6 @@ class MessageLookup extends MessageLookupByLibrary { "feedback": MessageLookupByLibrary.simpleMessage("피드백"), "invalidEmailAddress": MessageLookupByLibrary.simpleMessage("잘못된 이메일 주소"), - "link": MessageLookupByLibrary.simpleMessage("Link"), - "linkEmail": MessageLookupByLibrary.simpleMessage("Link email"), - "noEnteAccountExclamation": - MessageLookupByLibrary.simpleMessage("No Ente account!"), "verify": MessageLookupByLibrary.simpleMessage("인증"), "yourAccountHasBeenDeleted": MessageLookupByLibrary.simpleMessage("계정이 삭제되었습니다.") diff --git a/mobile/lib/generated/intl/messages_lt.dart b/mobile/lib/generated/intl/messages_lt.dart index bee6bc9e099..b2029f389b6 100644 --- a/mobile/lib/generated/intl/messages_lt.dart +++ b/mobile/lib/generated/intl/messages_lt.dart @@ -20,144 +20,171 @@ typedef String MessageIfAbsent(String messageStr, List args); class MessageLookup extends MessageLookupByLibrary { String get localeName => 'lt'; - static String m6(count) => + static String m9(count) => "${Intl.plural(count, one: 'Pridėti bendradarbį', few: 'Pridėti bendradarbius', many: 'Pridėti bendradarbio', other: 'Pridėti bendradarbių')}"; - static String m9(count) => - "${Intl.plural(count, one: 'Pridėti žiūrėtoją', few: 'Pridėti žiūrėtojus', many: 'Pridėti žiūrėtojo', other: 'Pridėti žiūrėtojų')}"; + static String m10(count) => + "${Intl.plural(count, one: 'Pridėti elementą', few: 'Pridėti elementus', many: 'Pridėti elemento', other: 'Pridėti elementų')}"; static String m12(count) => + "${Intl.plural(count, one: 'Pridėti žiūrėtoją', few: 'Pridėti žiūrėtojus', many: 'Pridėti žiūrėtojo', other: 'Pridėti žiūrėtojų')}"; + + static String m15(count) => "${Intl.plural(count, zero: 'Nėra dalyvių', one: '1 dalyvis', other: '${count} dalyviai')}"; - static String m13(versionValue) => "Versija: ${versionValue}"; + static String m16(versionValue) => "Versija: ${versionValue}"; - static String m15(paymentProvider) => + static String m18(paymentProvider) => "Pirmiausia atsisakykite esamos prenumeratos iš ${paymentProvider}"; - static String m16(user) => + static String m3(user) => "${user} negalės pridėti daugiau nuotraukų į šį albumą\n\nJie vis tiek galės pašalinti esamas pridėtas nuotraukas"; - static String m17(isFamilyMember, storageAmountInGb) => + static String m19(isFamilyMember, storageAmountInGb) => "${Intl.select(isFamilyMember, { 'true': 'Jūsų šeima gavo ${storageAmountInGb} GB iki šiol', 'false': 'Jūs gavote ${storageAmountInGb} GB iki šiol', 'other': 'Jūs gavote ${storageAmountInGb} GB iki šiol.', })}"; - static String m19(count) => + static String m21(count) => "${Intl.plural(count, zero: 'Pridėta 0 bendradarbių', one: 'Pridėtas 1 bendradarbis', other: 'Pridėta ${count} bendradarbių')}"; - static String m20(email, numOfDays) => + static String m22(email, numOfDays) => "Ketinate pridėti ${email} kaip patikimą kontaktą. Jie galės atkurti jūsų paskyrą, jei jūsų nebus ${numOfDays} dienų."; - static String m23(endpoint) => "Prijungta prie ${endpoint}"; + static String m25(endpoint) => "Prijungta prie ${endpoint}"; - static String m25(currentlyDeleting, totalCount) => + static String m26(count) => + "${Intl.plural(count, one: 'Ištrinti ${count} elementą', few: 'Ištrinti ${count} elementus', many: 'Ištrinti ${count} elemento', other: 'Ištrinti ${count} elementų')}"; + + static String m27(currentlyDeleting, totalCount) => "Ištrinama ${currentlyDeleting} / ${totalCount}"; - static String m27(supportEmail) => + static String m28(albumName) => + "Tai pašalins viešą nuorodą, skirtą pasiekti „${albumName}“."; + + static String m29(supportEmail) => "Iš savo registruoto el. pašto adreso atsiųskite el. laišką adresu ${supportEmail}"; - static String m29(count, formattedSize) => + static String m30(count, storageSaved) => + "Išvalėte ${Intl.plural(count, one: '${count} dubliuojantį failą', few: '${count} dubliuojančius failus', many: '${count} dubliuojančio failo', other: '${count} dubliuojančių failų')}, išsaugodami (${storageSaved})."; + + static String m31(count, formattedSize) => "${count} failai (-ų), kiekvienas ${formattedSize}"; - static String m31(email) => + static String m33(email) => "${email} neturi „Ente“ paskyros.\n\nSiųskite jiems kvietimą bendrinti nuotraukas."; - static String m32(text) => "Rastos papildomos nuotraukos, skirtos ${text}"; + static String m34(text) => "Rastos papildomos nuotraukos, skirtos ${text}"; - static String m35(storageAmountInGB) => + static String m4(storageAmountInGB) => "${storageAmountInGB} GB kiekvieną kartą, kai kas nors užsiregistruoja mokamam planui ir pritaiko jūsų kodą."; - static String m36(endDate) => + static String m37(endDate) => "Nemokamas bandomasis laikotarpis galioja iki ${endDate}"; - static String m38(sizeInMBorGB) => "Atlaisvinti ${sizeInMBorGB}"; + static String m39(sizeInMBorGB) => "Atlaisvinti ${sizeInMBorGB}"; - static String m40(currentlyProcessing, totalCount) => + static String m41(currentlyProcessing, totalCount) => "Apdorojama ${currentlyProcessing} / ${totalCount}"; - static String m42(email) => "${email} pakvietė jus būti patikimu kontaktu"; + static String m42(count) => + "${Intl.plural(count, one: '${count} elementas', few: '${count} elementai', many: '${count} elemento', other: '${count} elementų')}"; + + static String m43(email) => "${email} pakvietė jus būti patikimu kontaktu"; - static String m43(expiryTime) => "Nuoroda nebegalios ${expiryTime}"; + static String m44(expiryTime) => "Nuoroda nebegalios ${expiryTime}"; - static String m44(count) => + static String m5(count, formattedCount) => + "${Intl.plural(count, zero: 'nėra prisiminimų', one: '${formattedCount} prisiminimas', few: '${formattedCount} prisiminimai', many: '${formattedCount} prisiminimo', other: '${formattedCount} prisiminimų')}"; + + static String m45(count) => "${Intl.plural(count, one: 'Perkelti elementą', few: 'Perkelti elementus', many: 'Perkelti elemento', other: 'Perkelti elementų')}"; - static String m46(personName) => "Nėra pasiūlymų asmeniui ${personName}."; + static String m47(personName) => "Nėra pasiūlymų asmeniui ${personName}."; + + static String m48(name) => "Ne ${name}?"; - static String m47(name) => "Ne ${name}?"; + static String m49(familyAdminEmail) => + "Susisiekite su ${familyAdminEmail}, kad pakeistumėte savo kodą."; static String m0(passwordStrengthValue) => "Slaptažodžio stiprumas: ${passwordStrengthValue}"; - static String m49(providerName) => + static String m50(providerName) => "Kreipkitės į ${providerName} palaikymo komandą, jei jums buvo nuskaičiuota."; - static String m51(endDate) => + static String m52(endDate) => "Nemokama bandomoji versija galioja iki ${endDate}.\nVėliau galėsite pasirinkti mokamą planą."; - static String m53(toEmail) => "Siųskite žurnalus adresu\n${toEmail}"; + static String m54(toEmail) => "Siųskite žurnalus adresu\n${toEmail}"; - static String m54(folderName) => "Apdorojama ${folderName}..."; + static String m55(folderName) => "Apdorojama ${folderName}..."; - static String m55(storeName) => "Vertinti mus parduotuvėje „${storeName}“"; + static String m56(storeName) => "Vertinti mus parduotuvėje „${storeName}“"; - static String m56(days, email) => + static String m57(days, email) => "Paskyrą galėsite pasiekti po ${days} dienų. Pranešimas bus išsiųstas į ${email}."; - static String m57(email) => + static String m58(email) => "Dabar galite atkurti ${email} paskyrą nustatydami naują slaptažodį."; - static String m58(email) => "${email} bando atkurti jūsų paskyrą."; + static String m59(email) => "${email} bando atkurti jūsų paskyrą."; - static String m59(storageInGB) => + static String m60(storageInGB) => "3. Abu gaunate ${storageInGB} GB* nemokamai"; - static String m60(userEmail) => + static String m61(userEmail) => "${userEmail} bus pašalintas iš šio bendrinamo albumo.\n\nVisos jų pridėtos nuotraukos taip pat bus pašalintos iš albumo."; - static String m61(endDate) => "Prenumerata atnaujinama ${endDate}"; + static String m62(endDate) => "Prenumerata atnaujinama ${endDate}"; - static String m62(count) => + static String m63(count) => "${Intl.plural(count, one: 'Rastas ${count} rezultatas', few: 'Rasti ${count} rezultatai', many: 'Rasta ${count} rezultato', other: 'Rasta ${count} rezultatų')}"; - static String m63(snapshotLength, searchLength) => + static String m64(snapshotLength, searchLength) => "Sekcijų ilgio neatitikimas: ${snapshotLength} != ${searchLength}"; - static String m4(count) => "${count} pasirinkta"; + static String m6(count) => "${count} pasirinkta"; - static String m64(count, yourCount) => + static String m65(count, yourCount) => "${count} pasirinkta (${yourCount} jūsų)"; - static String m65(verificationID) => + static String m66(verificationID) => "Štai mano patvirtinimo ID: ${verificationID}, skirta ente.io."; - static String m5(verificationID) => + static String m7(verificationID) => "Ei, ar galite patvirtinti, kad tai yra jūsų ente.io patvirtinimo ID: ${verificationID}"; - static String m66(referralCode, referralStorageInGB) => + static String m67(referralCode, referralStorageInGB) => "„Ente“ rekomendacijos kodas: ${referralCode} \n\nTaikykite jį per Nustatymai → Bendrieji → Rekomendacijos, kad gautumėte ${referralStorageInGB} GB nemokamai po to, kai užsiregistruosite mokamam planui.\n\nhttps://ente.io"; - static String m67(numberOfPeople) => + static String m68(numberOfPeople) => "${Intl.plural(numberOfPeople, zero: 'Bendrinti su konkrečiais asmenimis', one: 'Bendrinta su 1 asmeniu', other: 'Bendrinta su ${numberOfPeople} asmenimis')}"; static String m70(fileType) => + "Šis ${fileType} bus ištrintas iš jūsų įrenginio."; + + static String m71(fileType) => "Šis ${fileType} yra ir saugykloje „Ente“ bei įrenginyje."; - static String m71(fileType) => "Šis ${fileType} bus ištrintas iš „Ente“."; + static String m72(fileType) => "Šis ${fileType} bus ištrintas iš „Ente“."; static String m1(storageAmountInGB) => "${storageAmountInGB} GB"; - static String m73(id) => + static String m74(id) => "Jūsų ${id} jau susietas su kita „Ente“ paskyra.\nJei norite naudoti savo ${id} su šia paskyra, susisiekite su mūsų palaikymo komanda."; - static String m75(completed, total) => + static String m76(completed, total) => "${completed} / ${total} išsaugomi prisiminimai"; - static String m76(ignoreReason) => + static String m77(ignoreReason) => "Palieskite, kad įkeltumėte. Įkėlimas šiuo metu ignoruojamas dėl ${ignoreReason}."; + static String m8(storageAmountInGB) => + "Jie taip pat gauna ${storageAmountInGB} GB"; + static String m78(email) => "Tai – ${email} patvirtinimo ID"; static String m79(count) => @@ -186,6 +213,8 @@ class MessageLookup extends MessageLookupByLibrary { final messages = _notInlinedMessages(_notInlinedMessages); static Map _notInlinedMessages(_) => { + "aNewVersionOfEnteIsAvailable": + MessageLookupByLibrary.simpleMessage("Yra nauja „Ente“ versija."), "about": MessageLookupByLibrary.simpleMessage("Apie"), "acceptTrustInvite": MessageLookupByLibrary.simpleMessage("Priimti kvietimą"), @@ -204,8 +233,9 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Pridėti naują el. paštą"), "addCollaborator": MessageLookupByLibrary.simpleMessage("Pridėti bendradarbį"), - "addCollaborators": m6, + "addCollaborators": m9, "addFiles": MessageLookupByLibrary.simpleMessage("Pridėti failus"), + "addItem": m10, "addLocation": MessageLookupByLibrary.simpleMessage("Pridėti vietovę"), "addLocationButton": MessageLookupByLibrary.simpleMessage("Pridėti"), "addMore": MessageLookupByLibrary.simpleMessage("Pridėti daugiau"), @@ -215,14 +245,18 @@ class MessageLookup extends MessageLookupByLibrary { "addNew": MessageLookupByLibrary.simpleMessage("Pridėti naują"), "addNewPerson": MessageLookupByLibrary.simpleMessage("Pridėti naują asmenį"), + "addOnPageSubtitle": MessageLookupByLibrary.simpleMessage( + "Išsami informacija apie priedus"), "addOns": MessageLookupByLibrary.simpleMessage("Priedai"), "addToAlbum": MessageLookupByLibrary.simpleMessage("Pridėti į albumą"), "addToEnte": MessageLookupByLibrary.simpleMessage("Pridėti į „Ente“"), "addTrustedContact": MessageLookupByLibrary.simpleMessage("Pridėti patikimą kontaktą"), "addViewer": MessageLookupByLibrary.simpleMessage("Pridėti žiūrėtoją"), - "addViewers": m9, + "addViewers": m12, "addedAs": MessageLookupByLibrary.simpleMessage("Pridėta kaip"), + "addingToFavorites": + MessageLookupByLibrary.simpleMessage("Pridedama prie mėgstamų..."), "advanced": MessageLookupByLibrary.simpleMessage("Išplėstiniai"), "advancedSettings": MessageLookupByLibrary.simpleMessage("Išplėstiniai"), @@ -232,7 +266,7 @@ class MessageLookup extends MessageLookupByLibrary { "after1Week": MessageLookupByLibrary.simpleMessage("Po 1 savaitės"), "after1Year": MessageLookupByLibrary.simpleMessage("Po 1 metų"), "albumOwner": MessageLookupByLibrary.simpleMessage("Savininkas"), - "albumParticipantsCount": m12, + "albumParticipantsCount": m15, "albumUpdated": MessageLookupByLibrary.simpleMessage("Atnaujintas albumas"), "albums": MessageLookupByLibrary.simpleMessage("Albumai"), @@ -275,7 +309,7 @@ class MessageLookup extends MessageLookupByLibrary { "appLock": MessageLookupByLibrary.simpleMessage("Programos užraktas"), "appLockDescriptions": MessageLookupByLibrary.simpleMessage( "Pasirinkite tarp numatytojo įrenginio užrakinimo ekrano ir pasirinktinio užrakinimo ekrano su PIN kodu arba slaptažodžiu."), - "appVersion": m13, + "appVersion": m16, "appleId": MessageLookupByLibrary.simpleMessage("„Apple ID“"), "apply": MessageLookupByLibrary.simpleMessage("Taikyti"), "applyCodeTitle": MessageLookupByLibrary.simpleMessage("Taikyti kodą"), @@ -345,6 +379,16 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Kurti atsarginę kopiją"), "backupFile": MessageLookupByLibrary.simpleMessage( "Kurti atsarginę failo kopiją"), + "backupOverMobileData": MessageLookupByLibrary.simpleMessage( + "Kurti atsargines kopijas per mobiliuosius duomenis"), + "backupSettings": MessageLookupByLibrary.simpleMessage( + "Atsarginės kopijos nustatymai"), + "backupStatus": + MessageLookupByLibrary.simpleMessage("Atsarginės kopijos būsena"), + "backupStatusDescription": MessageLookupByLibrary.simpleMessage( + "Čia bus rodomi elementai, kurių atsarginės kopijos buvo sukurtos."), + "backupVideos": MessageLookupByLibrary.simpleMessage( + "Kurti atsargines vaizdo įrašų kopijas"), "birthday": MessageLookupByLibrary.simpleMessage("Gimtadienis"), "blackFridaySale": MessageLookupByLibrary.simpleMessage( "Juodojo penktadienio išpardavimas"), @@ -362,10 +406,12 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Atšaukti atkūrimą"), "cancelAccountRecoveryBody": MessageLookupByLibrary.simpleMessage( "Ar tikrai norite atšaukti atkūrimą?"), - "cancelOtherSubscription": m15, + "cancelOtherSubscription": m18, "cancelSubscription": MessageLookupByLibrary.simpleMessage("Atsisakyti prenumeratos"), - "cannotAddMorePhotosAfterBecomingViewer": m16, + "cannotAddMorePhotosAfterBecomingViewer": m3, + "cannotDeleteSharedFiles": MessageLookupByLibrary.simpleMessage( + "Negalima ištrinti bendrinamų failų."), "castAlbum": MessageLookupByLibrary.simpleMessage("Perduoti albumą"), "castIPMismatchBody": MessageLookupByLibrary.simpleMessage( "Įsitikinkite, kad esate tame pačiame tinkle kaip ir televizorius."), @@ -408,9 +454,11 @@ class MessageLookup extends MessageLookupByLibrary { "checking": MessageLookupByLibrary.simpleMessage("Tikrinama..."), "checkingModels": MessageLookupByLibrary.simpleMessage("Tikrinami modeliai..."), + "claimFreeStorage": + MessageLookupByLibrary.simpleMessage("Gaukite nemokamos saugyklos"), "claimMore": MessageLookupByLibrary.simpleMessage("Gaukite daugiau!"), "claimed": MessageLookupByLibrary.simpleMessage("Gauta"), - "claimedStorageSoFar": m17, + "claimedStorageSoFar": m19, "cleanUncategorized": MessageLookupByLibrary.simpleMessage("Valyti nekategorizuotus"), "cleanUncategorizedDescription": MessageLookupByLibrary.simpleMessage( @@ -427,6 +475,8 @@ class MessageLookup extends MessageLookupByLibrary { "Atsiprašome, pasiekėte kodo pakeitimų ribą."), "codeCopiedToClipboard": MessageLookupByLibrary.simpleMessage( "Nukopijuotas kodas į iškarpinę"), + "codeUsedByYou": + MessageLookupByLibrary.simpleMessage("Jūsų naudojamas kodas"), "collabLinkSectionDescription": MessageLookupByLibrary.simpleMessage( "Sukurkite nuorodą, kad asmenys galėtų pridėti ir peržiūrėti nuotraukas bendrinamame albume, nereikalaujant „Ente“ programos ar paskyros. Puikiai tinka įvykių nuotraukoms rinkti."), "collaborativeLink": @@ -435,7 +485,7 @@ class MessageLookup extends MessageLookupByLibrary { "collaboratorsCanAddPhotosAndVideosToTheSharedAlbum": MessageLookupByLibrary.simpleMessage( "Bendradarbiai gali pridėti nuotraukų ir vaizdo įrašų į bendrintą albumą."), - "collaboratorsSuccessfullyAdded": m19, + "collaboratorsSuccessfullyAdded": m21, "collect": MessageLookupByLibrary.simpleMessage("Rinkti"), "collectEventPhotos": MessageLookupByLibrary.simpleMessage("Rinkti įvykių nuotraukas"), @@ -450,7 +500,7 @@ class MessageLookup extends MessageLookupByLibrary { "Ar tikrai norite išjungti dvigubą tapatybės nustatymą?"), "confirmAccountDeletion": MessageLookupByLibrary.simpleMessage( "Patvirtinti paskyros ištrynimą"), - "confirmAddingTrustedContact": m20, + "confirmAddingTrustedContact": m22, "confirmDeletePrompt": MessageLookupByLibrary.simpleMessage( "Taip, noriu negrįžtamai ištrinti šią paskyrą ir jos duomenis per visas programas"), "confirmPassword": @@ -475,10 +525,14 @@ class MessageLookup extends MessageLookupByLibrary { "copypasteThisCodentoYourAuthenticatorApp": MessageLookupByLibrary.simpleMessage( "Nukopijuokite ir įklijuokite šį kodą\nį autentifikatoriaus programą"), + "couldNotBackUpTryLater": MessageLookupByLibrary.simpleMessage( + "Nepavyko sukurti atsarginės duomenų kopijos.\nBandysime pakartotinai vėliau."), "couldNotFreeUpSpace": MessageLookupByLibrary.simpleMessage( "Nepavyko atlaisvinti vietos."), "create": MessageLookupByLibrary.simpleMessage("Kurti"), "createAccount": MessageLookupByLibrary.simpleMessage("Kurti paskyrą"), + "createAlbumActionHint": MessageLookupByLibrary.simpleMessage( + "Ilgai paspauskite, kad pasirinktumėte nuotraukas, ir spustelėkite +, kad sukurtumėte albumą"), "createCollaborativeLink": MessageLookupByLibrary.simpleMessage( "Kurti bendradarbiavimo nuorodą"), "createNewAccount": @@ -489,13 +543,15 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Kurti viešą nuorodą"), "creatingLink": MessageLookupByLibrary.simpleMessage("Kuriama nuoroda..."), + "criticalUpdateAvailable": + MessageLookupByLibrary.simpleMessage("Yra kritinis naujinimas"), "crop": MessageLookupByLibrary.simpleMessage("Apkirpti"), "currentUsageIs": MessageLookupByLibrary.simpleMessage("Dabartinis naudojimas – "), "currentlyRunning": MessageLookupByLibrary.simpleMessage("šiuo metu vykdoma"), "custom": MessageLookupByLibrary.simpleMessage("Pasirinktinis"), - "customEndpoint": m23, + "customEndpoint": m25, "darkTheme": MessageLookupByLibrary.simpleMessage("Tamsi"), "dayToday": MessageLookupByLibrary.simpleMessage("Šiandien"), "dayYesterday": MessageLookupByLibrary.simpleMessage("Vakar"), @@ -531,11 +587,12 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Ištrinti iš įrenginio"), "deleteFromEnte": MessageLookupByLibrary.simpleMessage("Ištrinti iš „Ente“"), + "deleteItemCount": m26, "deleteLocation": MessageLookupByLibrary.simpleMessage("Ištrinti vietovę"), "deletePhotos": MessageLookupByLibrary.simpleMessage("Ištrinti nuotraukas"), - "deleteProgress": m25, + "deleteProgress": m27, "deleteReason1": MessageLookupByLibrary.simpleMessage( "Trūksta pagrindinės funkcijos, kurios man reikia"), "deleteReason2": MessageLookupByLibrary.simpleMessage( @@ -552,6 +609,7 @@ class MessageLookup extends MessageLookupByLibrary { "Albumas bus ištrintas visiems.\n\nPrarasite prieigą prie bendrinamų nuotraukų, esančių šiame albume ir priklausančių kitiems."), "designedToOutlive": MessageLookupByLibrary.simpleMessage("Sukurta išgyventi"), + "details": MessageLookupByLibrary.simpleMessage("Išsami informacija"), "developerSettings": MessageLookupByLibrary.simpleMessage("Kūrėjo nustatymai"), "developerSettingsWarning": MessageLookupByLibrary.simpleMessage( @@ -559,13 +617,18 @@ class MessageLookup extends MessageLookupByLibrary { "deviceCodeHint": MessageLookupByLibrary.simpleMessage("Įveskite kodą"), "deviceLock": MessageLookupByLibrary.simpleMessage("Įrenginio užraktas"), + "deviceLockExplanation": MessageLookupByLibrary.simpleMessage( + "Išjunkite įrenginio ekrano užraktą, kai „Ente“ yra priekiniame fone ir kuriama atsarginės kopijos. Paprastai to nereikia, bet tai gali padėti greičiau užbaigti didelius įkėlimus ir pradinį didelių bibliotekų importą."), "deviceNotFound": MessageLookupByLibrary.simpleMessage("Įrenginys nerastas"), "didYouKnow": MessageLookupByLibrary.simpleMessage("Ar žinojote?"), + "disableAutoLock": + MessageLookupByLibrary.simpleMessage("Išjungti automatinį užraktą"), "disableDownloadWarningBody": MessageLookupByLibrary.simpleMessage( "Žiūrėtojai vis tiek gali daryti ekrano kopijas arba išsaugoti nuotraukų kopijas naudojant išorinius įrankius"), "disableDownloadWarningTitle": MessageLookupByLibrary.simpleMessage("Atkreipkite dėmesį"), + "disableLinkMessage": m28, "disableTwofactor": MessageLookupByLibrary.simpleMessage( "Išjungti dvigubą tapatybės nustatymą"), "discord": MessageLookupByLibrary.simpleMessage("„Discord“"), @@ -600,8 +663,9 @@ class MessageLookup extends MessageLookupByLibrary { "downloadFailed": MessageLookupByLibrary.simpleMessage("Atsisiuntimas nepavyko."), "downloading": MessageLookupByLibrary.simpleMessage("Atsisiunčiama..."), - "dropSupportEmail": m27, - "duplicateItemsGroup": m29, + "dropSupportEmail": m29, + "duplicateFileCountWithStorageSaved": m30, + "duplicateItemsGroup": m31, "edit": MessageLookupByLibrary.simpleMessage("Redaguoti"), "editLocation": MessageLookupByLibrary.simpleMessage("Redaguoti vietovę"), @@ -611,10 +675,11 @@ class MessageLookup extends MessageLookupByLibrary { "editsToLocationWillOnlyBeSeenWithinEnte": MessageLookupByLibrary.simpleMessage( "Vietovės pakeitimai bus matomi tik per „Ente“"), + "eligible": MessageLookupByLibrary.simpleMessage("tinkamas"), "email": MessageLookupByLibrary.simpleMessage("El. paštas"), "emailAlreadyRegistered": MessageLookupByLibrary.simpleMessage( "El. paštas jau užregistruotas."), - "emailNoEnteAccount": m31, + "emailNoEnteAccount": m33, "emailNotRegistered": MessageLookupByLibrary.simpleMessage("El. paštas neregistruotas."), "emailVerificationToggle": @@ -694,7 +759,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Eksportuoti duomenis"), "extraPhotosFound": MessageLookupByLibrary.simpleMessage( "Rastos papildomos nuotraukos"), - "extraPhotosFoundFor": m32, + "extraPhotosFoundFor": m34, "faceNotClusteredYet": MessageLookupByLibrary.simpleMessage( "Veidas dar nesugrupuotas. Grįžkite vėliau."), "faceRecognition": @@ -710,6 +775,8 @@ class MessageLookup extends MessageLookupByLibrary { "Nepavyko gauti originalo redagavimui."), "failedToFetchReferralDetails": MessageLookupByLibrary.simpleMessage( "Nepavyksta gauti rekomendacijos informacijos. Bandykite dar kartą vėliau."), + "failedToLoadAlbums": + MessageLookupByLibrary.simpleMessage("Nepavyko įkelti albumų."), "failedToPlayVideo": MessageLookupByLibrary.simpleMessage( "Nepavyko paleisti vaizdo įrašą. "), "failedToRefreshStripeSubscription": @@ -723,6 +790,8 @@ class MessageLookup extends MessageLookupByLibrary { "faqs": MessageLookupByLibrary.simpleMessage("DUK"), "feedback": MessageLookupByLibrary.simpleMessage("Atsiliepimai"), "file": MessageLookupByLibrary.simpleMessage("Failas"), + "fileInfoAddDescHint": + MessageLookupByLibrary.simpleMessage("Pridėti aprašymą..."), "fileNotUploadedYet": MessageLookupByLibrary.simpleMessage("Failas dar neįkeltas."), "fileTypes": MessageLookupByLibrary.simpleMessage("Failų tipai"), @@ -735,16 +804,22 @@ class MessageLookup extends MessageLookupByLibrary { "forgotPassword": MessageLookupByLibrary.simpleMessage("Pamiršau slaptažodį"), "foundFaces": MessageLookupByLibrary.simpleMessage("Rasti veidai"), - "freeStorageOnReferralSuccess": m35, + "freeStorageClaimed": + MessageLookupByLibrary.simpleMessage("Gauta nemokama saugykla"), + "freeStorageOnReferralSuccess": m4, + "freeStorageUsable": + MessageLookupByLibrary.simpleMessage("Naudojama nemokama saugykla"), "freeTrial": MessageLookupByLibrary.simpleMessage( "Nemokamas bandomasis laikotarpis"), - "freeTrialValidTill": m36, - "freeUpAmount": m38, + "freeTrialValidTill": m37, + "freeUpAmount": m39, "gallery": MessageLookupByLibrary.simpleMessage("Galerija"), + "galleryMemoryLimitInfo": MessageLookupByLibrary.simpleMessage( + "Galerijoje rodoma iki 1000 prisiminimų"), "general": MessageLookupByLibrary.simpleMessage("Bendrieji"), "generatingEncryptionKeys": MessageLookupByLibrary.simpleMessage( "Generuojami šifravimo raktai..."), - "genericProgress": m40, + "genericProgress": m41, "goToSettings": MessageLookupByLibrary.simpleMessage("Eiti į nustatymus"), "googlePlayId": @@ -758,6 +833,7 @@ class MessageLookup extends MessageLookupByLibrary { "Mes nesekame programų diegimų. Mums padėtų, jei pasakytumėte, kur mus radote."), "hearUsWhereTitle": MessageLookupByLibrary.simpleMessage( "Kaip išgirdote apie „Ente“? (nebūtina)"), + "help": MessageLookupByLibrary.simpleMessage("Pagalba"), "hidden": MessageLookupByLibrary.simpleMessage("Paslėpti"), "hide": MessageLookupByLibrary.simpleMessage("Slėpti"), "hideContent": MessageLookupByLibrary.simpleMessage("Slėpti turinį"), @@ -799,6 +875,8 @@ class MessageLookup extends MessageLookupByLibrary { "info": MessageLookupByLibrary.simpleMessage("Informacija"), "insecureDevice": MessageLookupByLibrary.simpleMessage("Nesaugus įrenginys"), + "installManually": + MessageLookupByLibrary.simpleMessage("Diegti rankiniu būdu"), "invalidEmailAddress": MessageLookupByLibrary.simpleMessage( "Netinkamas el. pašto adresas"), "invalidEndpoint": @@ -813,6 +891,10 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Kviesti į „Ente“"), "inviteYourFriends": MessageLookupByLibrary.simpleMessage("Kviesti savo draugus"), + "itLooksLikeSomethingWentWrongPleaseRetryAfterSome": + MessageLookupByLibrary.simpleMessage( + "Atrodo, kad kažkas nutiko ne taip. Bandykite pakartotinai po kurio laiko. Jei klaida tęsiasi, susisiekite su mūsų palaikymo komanda."), + "itemCount": m42, "itemsShowTheNumberOfDaysRemainingBeforePermanentDeletion": MessageLookupByLibrary.simpleMessage( "Elementai rodo likusių dienų skaičių iki visiško ištrynimo."), @@ -843,20 +925,20 @@ class MessageLookup extends MessageLookupByLibrary { "legacy": MessageLookupByLibrary.simpleMessage("Palikimas"), "legacyAccounts": MessageLookupByLibrary.simpleMessage("Palikimo paskyros"), - "legacyInvite": m42, + "legacyInvite": m43, "legacyPageDesc": MessageLookupByLibrary.simpleMessage( "Palikimas leidžia patikimiems kontaktams pasiekti jūsų paskyrą jums nesant."), "legacyPageDesc2": MessageLookupByLibrary.simpleMessage( "Patikimi kontaktai gali pradėti paskyros atkūrimą, o jei per 30 dienų paskyra neužblokuojama, iš naujo nustatyti slaptažodį ir pasiekti paskyrą."), "light": MessageLookupByLibrary.simpleMessage("Šviesi"), "lightTheme": MessageLookupByLibrary.simpleMessage("Šviesi"), - "link": MessageLookupByLibrary.simpleMessage("Link"), + "link": MessageLookupByLibrary.simpleMessage("Susieti"), "linkDeviceLimit": MessageLookupByLibrary.simpleMessage("Įrenginių riba"), - "linkEmail": MessageLookupByLibrary.simpleMessage("Link email"), + "linkEmail": MessageLookupByLibrary.simpleMessage("Susieti el. paštą"), "linkEnabled": MessageLookupByLibrary.simpleMessage("Įjungta"), "linkExpired": MessageLookupByLibrary.simpleMessage("Nebegalioja"), - "linkExpiresOn": m43, + "linkExpiresOn": m44, "linkExpiry": MessageLookupByLibrary.simpleMessage("Nuorodos galiojimo laikas"), "linkHasExpired": @@ -943,6 +1025,7 @@ class MessageLookup extends MessageLookupByLibrary { "maps": MessageLookupByLibrary.simpleMessage("Žemėlapiai"), "mastodon": MessageLookupByLibrary.simpleMessage("„Mastodon“"), "matrix": MessageLookupByLibrary.simpleMessage("„Matrix“"), + "memoryCount": m5, "merchandise": MessageLookupByLibrary.simpleMessage("Atributika"), "mergeWithExisting": MessageLookupByLibrary.simpleMessage("Sujungti su esamais"), @@ -958,6 +1041,8 @@ class MessageLookup extends MessageLookupByLibrary { "Spustelėkite čia dėl išsamesnės informacijos apie šią funkciją mūsų privatumo politikoje"), "mlConsentTitle": MessageLookupByLibrary.simpleMessage("Įjungti mašininį mokymąsi?"), + "mlIndexingDescription": MessageLookupByLibrary.simpleMessage( + "Atkreipkite dėmesį, kad mašininis mokymasis padidins pralaidumą ir akumuliatoriaus naudojimą, kol bus indeksuoti visi elementai. Apsvarstykite galimybę naudoti darbalaukio programą, kad indeksavimas būtų spartesnis – visi rezultatai bus sinchronizuojami automatiškai."), "mobileWebDesktop": MessageLookupByLibrary.simpleMessage( "Mobiliuosiuose, internete ir darbalaukyje"), "moderateStrength": MessageLookupByLibrary.simpleMessage("Vidutinė"), @@ -968,7 +1053,7 @@ class MessageLookup extends MessageLookupByLibrary { "Daugiau išsamios informacijos"), "mostRecent": MessageLookupByLibrary.simpleMessage("Naujausią"), "mostRelevant": MessageLookupByLibrary.simpleMessage("Aktualiausią"), - "moveItem": m44, + "moveItem": m45, "movedToTrash": MessageLookupByLibrary.simpleMessage("Perkelta į šiukšlinę"), "name": MessageLookupByLibrary.simpleMessage("Pavadinimą"), @@ -993,7 +1078,7 @@ class MessageLookup extends MessageLookupByLibrary { "noDuplicates": MessageLookupByLibrary.simpleMessage("✨ Dublikatų nėra"), "noEnteAccountExclamation": - MessageLookupByLibrary.simpleMessage("No Ente account!"), + MessageLookupByLibrary.simpleMessage("Nėra „Ente“ paskyros!"), "noExifData": MessageLookupByLibrary.simpleMessage("Nėra EXIF duomenų"), "noFacesFound": MessageLookupByLibrary.simpleMessage("Nerasta veidų."), "noImagesWithLocation": @@ -1009,10 +1094,10 @@ class MessageLookup extends MessageLookupByLibrary { "noResults": MessageLookupByLibrary.simpleMessage("Rezultatų nėra."), "noResultsFound": MessageLookupByLibrary.simpleMessage("Rezultatų nerasta."), - "noSuggestionsForPerson": m46, + "noSuggestionsForPerson": m47, "noSystemLockFound": MessageLookupByLibrary.simpleMessage("Nerastas sistemos užraktas"), - "notPersonLabel": m47, + "notPersonLabel": m48, "nothingSharedWithYouYet": MessageLookupByLibrary.simpleMessage( "Kol kas su jumis niekuo nesibendrinama."), "nothingToSeeHere": MessageLookupByLibrary.simpleMessage( @@ -1022,8 +1107,11 @@ class MessageLookup extends MessageLookupByLibrary { "onDevice": MessageLookupByLibrary.simpleMessage("Įrenginyje"), "onEnte": MessageLookupByLibrary.simpleMessage( "Saugykloje ente"), + "onlyFamilyAdminCanChangeCode": m49, "onlyThem": MessageLookupByLibrary.simpleMessage("Tik jiems"), "oops": MessageLookupByLibrary.simpleMessage("Ups"), + "oopsSomethingWentWrong": + MessageLookupByLibrary.simpleMessage("Ups, kažkas nutiko ne taip"), "openAlbumInBrowser": MessageLookupByLibrary.simpleMessage("Atverti albumą naršyklėje"), "openAlbumInBrowserTitle": MessageLookupByLibrary.simpleMessage( @@ -1061,17 +1149,21 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Mokėjimas nepavyko"), "paymentFailedMessage": MessageLookupByLibrary.simpleMessage( "Deja, jūsų mokėjimas nepavyko. Susisiekite su palaikymo komanda ir mes jums padėsime!"), - "paymentFailedTalkToProvider": m49, + "paymentFailedTalkToProvider": m50, "pendingItems": MessageLookupByLibrary.simpleMessage("Laukiami elementai"), "pendingSync": MessageLookupByLibrary.simpleMessage("Laukiama sinchronizacija"), "people": MessageLookupByLibrary.simpleMessage("Asmenys"), + "peopleUsingYourCode": MessageLookupByLibrary.simpleMessage( + "Asmenys, naudojantys jūsų kodą"), "permanentlyDelete": MessageLookupByLibrary.simpleMessage("Ištrinti negrįžtamai"), "permanentlyDeleteFromDevice": MessageLookupByLibrary.simpleMessage( "Ištrinti negrįžtamai iš įrenginio?"), "personName": MessageLookupByLibrary.simpleMessage("Asmens vardas"), + "photoGridSize": + MessageLookupByLibrary.simpleMessage("Nuotraukų tinklelio dydis"), "photoSmallCase": MessageLookupByLibrary.simpleMessage("nuotrauka"), "photos": MessageLookupByLibrary.simpleMessage("Nuotraukos"), "photosAddedByYouWillBeRemovedFromTheAlbum": @@ -1081,7 +1173,7 @@ class MessageLookup extends MessageLookupByLibrary { "pinLock": MessageLookupByLibrary.simpleMessage("PIN užrakinimas"), "playOnTv": MessageLookupByLibrary.simpleMessage( "Paleisti albumą televizoriuje"), - "playStoreFreeTrialValidTill": m51, + "playStoreFreeTrialValidTill": m52, "playstoreSubscription": MessageLookupByLibrary.simpleMessage("„PlayStore“ prenumerata"), "pleaseCheckYourInternetConnectionAndTryAgain": @@ -1093,12 +1185,15 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Prisijunkite iš naujo."), "pleaseSelectQuickLinksToRemove": MessageLookupByLibrary.simpleMessage( "Pasirinkite sparčiąsias nuorodas, kad pašalintumėte"), - "pleaseSendTheLogsTo": m53, + "pleaseSendTheLogsTo": m54, "pleaseTryAgain": MessageLookupByLibrary.simpleMessage("Bandykite dar kartą."), "pleaseVerifyTheCodeYouHaveEntered": MessageLookupByLibrary.simpleMessage("Patvirtinkite įvestą kodą."), "pleaseWait": MessageLookupByLibrary.simpleMessage("Palaukite..."), + "pleaseWaitForSometimeBeforeRetrying": + MessageLookupByLibrary.simpleMessage( + "Palaukite kurį laiką prieš bandydami pakartotinai"), "preparingLogs": MessageLookupByLibrary.simpleMessage("Ruošiami žurnalai..."), "pressAndHoldToPlayVideo": MessageLookupByLibrary.simpleMessage( @@ -1114,13 +1209,13 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Privatus bendrinimas"), "proceed": MessageLookupByLibrary.simpleMessage("Tęsti"), "processed": MessageLookupByLibrary.simpleMessage("Apdorota"), - "processingImport": m54, + "processingImport": m55, "publicLinkEnabled": MessageLookupByLibrary.simpleMessage("Įjungta viešoji nuoroda"), "raiseTicket": MessageLookupByLibrary.simpleMessage("Sukurti paraišką"), "rateTheApp": MessageLookupByLibrary.simpleMessage("Vertinti programą"), "rateUs": MessageLookupByLibrary.simpleMessage("Vertinti mus"), - "rateUsOnStore": m55, + "rateUsOnStore": m56, "recover": MessageLookupByLibrary.simpleMessage("Atkurti"), "recoverAccount": MessageLookupByLibrary.simpleMessage("Atkurti paskyrą"), @@ -1129,7 +1224,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Atkurti paskyrą"), "recoveryInitiated": MessageLookupByLibrary.simpleMessage("Pradėtas atkūrimas"), - "recoveryInitiatedDesc": m56, + "recoveryInitiatedDesc": m57, "recoveryKey": MessageLookupByLibrary.simpleMessage("Atkūrimo raktas"), "recoveryKeyCopiedToClipboard": MessageLookupByLibrary.simpleMessage( "Nukopijuotas atkūrimo raktas į iškarpinę"), @@ -1143,12 +1238,12 @@ class MessageLookup extends MessageLookupByLibrary { "Patvirtintas atkūrimo raktas"), "recoveryKeyVerifyReason": MessageLookupByLibrary.simpleMessage( "Atkūrimo raktas – vienintelis būdas atkurti nuotraukas, jei pamiršote slaptažodį. Atkūrimo raktą galite rasti Nustatymose > Paskyra.\n\nĮveskite savo atkūrimo raktą čia, kad patvirtintumėte, ar teisingai jį išsaugojote."), - "recoveryReady": m57, + "recoveryReady": m58, "recoverySuccessful": MessageLookupByLibrary.simpleMessage("Atkūrimas sėkmingas."), "recoveryWarning": MessageLookupByLibrary.simpleMessage( "Patikimas kontaktas bando pasiekti jūsų paskyrą."), - "recoveryWarningBody": m58, + "recoveryWarningBody": m59, "recreatePasswordBody": MessageLookupByLibrary.simpleMessage( "Dabartinis įrenginys nėra pakankamai galingas, kad patvirtintų jūsų slaptažodį, bet mes galime iš naujo sugeneruoti taip, kad jis veiktų su visais įrenginiais.\n\nPrisijunkite naudojant atkūrimo raktą ir sugeneruokite iš naujo slaptažodį (jei norite, galite vėl naudoti tą patį)."), "recreatePasswordTitle": @@ -1164,13 +1259,15 @@ class MessageLookup extends MessageLookupByLibrary { "1. Duokite šį kodą savo draugams"), "referralStep2": MessageLookupByLibrary.simpleMessage( "2. Jie užsiregistruoja mokamą planą"), - "referralStep3": m59, + "referralStep3": m60, "referralsAreCurrentlyPaused": MessageLookupByLibrary.simpleMessage( "Šiuo metu rekomendacijos yra pristabdytos"), "rejectRecovery": MessageLookupByLibrary.simpleMessage("Atmesti atkūrimą"), "remindToEmptyDeviceTrash": MessageLookupByLibrary.simpleMessage( "Taip pat ištuštinkite Neseniai ištrinti iš Nustatymai -> Saugykla, kad atlaisvintumėte vietos."), + "remindToEmptyEnteTrash": MessageLookupByLibrary.simpleMessage( + "Taip pat ištuštinkite šiukšlinę, kad gautumėte laisvos vietos."), "remoteImages": MessageLookupByLibrary.simpleMessage("Nuotoliniai vaizdai"), "remoteThumbnails": @@ -1191,7 +1288,7 @@ class MessageLookup extends MessageLookupByLibrary { "removeLink": MessageLookupByLibrary.simpleMessage("Šalinti nuorodą"), "removeParticipant": MessageLookupByLibrary.simpleMessage("Šalinti dalyvį"), - "removeParticipantBody": m60, + "removeParticipantBody": m61, "removePersonLabel": MessageLookupByLibrary.simpleMessage("Šalinti asmens žymą"), "removePublicLink": @@ -1204,11 +1301,13 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Šalinti?"), "removeYourselfAsTrustedContact": MessageLookupByLibrary.simpleMessage( "Šalinti save kaip patikimą kontaktą"), + "removingFromFavorites": + MessageLookupByLibrary.simpleMessage("Pašalinama iš mėgstamų..."), "rename": MessageLookupByLibrary.simpleMessage("Pervadinti"), "renameFile": MessageLookupByLibrary.simpleMessage("Pervadinti failą"), "renewSubscription": MessageLookupByLibrary.simpleMessage("Atnaujinti prenumeratą"), - "renewsOn": m61, + "renewsOn": m62, "reportABug": MessageLookupByLibrary.simpleMessage("Pranešti apie riktą"), "reportBug": @@ -1224,6 +1323,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Atkurti į albumą"), "restoringFiles": MessageLookupByLibrary.simpleMessage("Atkuriami failai..."), + "retry": MessageLookupByLibrary.simpleMessage("Kartoti"), "reviewDeduplicateItems": MessageLookupByLibrary.simpleMessage( "Peržiūrėkite ir ištrinkite elementus, kurie, jūsų manymu, yra dublikatai."), "reviewSuggestions": @@ -1260,8 +1360,8 @@ class MessageLookup extends MessageLookupByLibrary { "Pakvieskite asmenis ir čia matysite visas jų bendrinamas nuotraukas."), "searchPersonsEmptySection": MessageLookupByLibrary.simpleMessage( "Asmenys bus rodomi čia, kai bus užbaigtas apdorojimas ir sinchronizavimas."), - "searchResultCount": m62, - "searchSectionsLengthMismatch": m63, + "searchResultCount": m63, + "searchSectionsLengthMismatch": m64, "security": MessageLookupByLibrary.simpleMessage("Saugumas"), "seePublicAlbumLinksInApp": MessageLookupByLibrary.simpleMessage( "Žiūrėti viešų albumų nuorodas programoje"), @@ -1288,8 +1388,8 @@ class MessageLookup extends MessageLookupByLibrary { "selectedFoldersWillBeEncryptedAndBackedUp": MessageLookupByLibrary.simpleMessage( "Pasirinkti aplankai bus užšifruoti ir sukurtos atsarginės kopijos."), - "selectedPhotos": m4, - "selectedPhotosWithYours": m64, + "selectedPhotos": m6, + "selectedPhotosWithYours": m65, "send": MessageLookupByLibrary.simpleMessage("Siųsti"), "sendEmail": MessageLookupByLibrary.simpleMessage("Siųsti el. laišką"), "sendInvite": MessageLookupByLibrary.simpleMessage("Siųsti kvietimą"), @@ -1320,16 +1420,16 @@ class MessageLookup extends MessageLookupByLibrary { "shareAnAlbumNow": MessageLookupByLibrary.simpleMessage("Bendrinti albumą dabar"), "shareLink": MessageLookupByLibrary.simpleMessage("Bendrinti nuorodą"), - "shareMyVerificationID": m65, + "shareMyVerificationID": m66, "shareOnlyWithThePeopleYouWant": MessageLookupByLibrary.simpleMessage( "Bendrinkite tik su tais asmenimis, su kuriais norite"), - "shareTextConfirmOthersVerificationID": m5, + "shareTextConfirmOthersVerificationID": m7, "shareTextRecommendUsingEnte": MessageLookupByLibrary.simpleMessage( "Atsisiųskite „Ente“, kad galėtume lengvai bendrinti originalios kokybės nuotraukas ir vaizdo įrašus.\n\nhttps://ente.io"), - "shareTextReferralCode": m66, + "shareTextReferralCode": m67, "shareWithNonenteUsers": MessageLookupByLibrary.simpleMessage( "Bendrinkite su ne „Ente“ naudotojais."), - "shareWithPeopleSectionTitle": m67, + "shareWithPeopleSectionTitle": m68, "sharedAlbumSectionDescription": MessageLookupByLibrary.simpleMessage( "Sukurkite bendrinamus ir bendradarbiaujamus albumus su kitais „Ente“ naudotojais, įskaitant naudotojus nemokamuose planuose."), "sharedByYou": @@ -1350,10 +1450,16 @@ class MessageLookup extends MessageLookupByLibrary { "Jei manote, kad kas nors gali žinoti jūsų slaptažodį, galite priverstinai atsijungti iš visų kitų įrenginių, naudojančių jūsų paskyrą."), "signUpTerms": MessageLookupByLibrary.simpleMessage( "Sutinku su paslaugų sąlygomis ir privatumo politika"), - "singleFileInBothLocalAndRemote": m70, - "singleFileInRemoteOnly": m71, + "singleFileDeleteFromDevice": m70, + "singleFileDeleteHighlight": MessageLookupByLibrary.simpleMessage( + "Jis bus ištrintas iš visų albumų."), + "singleFileInBothLocalAndRemote": m71, + "singleFileInRemoteOnly": m72, "skip": MessageLookupByLibrary.simpleMessage("Praleisti"), "social": MessageLookupByLibrary.simpleMessage("Socialinės"), + "someOfTheFilesYouAreTryingToDeleteAre": + MessageLookupByLibrary.simpleMessage( + "Kai kurie failai, kuriuos bandote ištrinti, yra pasiekiami tik jūsų įrenginyje ir jų negalima atkurti, jei jie buvo ištrinti."), "someoneSharingAlbumsWithYouShouldSeeTheSameId": MessageLookupByLibrary.simpleMessage( "Asmuo, kuris bendrina albumus su jumis, savo įrenginyje turėtų matyti tą patį ID."), @@ -1363,6 +1469,8 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage( "Kažkas nutiko ne taip. Bandykite dar kartą."), "sorry": MessageLookupByLibrary.simpleMessage("Atsiprašome"), + "sorryCouldNotAddToFavorites": MessageLookupByLibrary.simpleMessage( + "Atsiprašome, nepavyko pridėti prie mėgstamų."), "sorryCouldNotRemoveFromFavorites": MessageLookupByLibrary.simpleMessage( "Atsiprašome, nepavyko pašalinti iš mėgstamų."), @@ -1375,6 +1483,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Naujausią pirmiausiai"), "sortOldestFirst": MessageLookupByLibrary.simpleMessage("Seniausią pirmiausiai"), + "sparkleSuccess": MessageLookupByLibrary.simpleMessage("✨ Sėkmė"), "startAccountRecoveryTitle": MessageLookupByLibrary.simpleMessage("Pradėti atkūrimą"), "startBackup": MessageLookupByLibrary.simpleMessage( @@ -1390,7 +1499,7 @@ class MessageLookup extends MessageLookupByLibrary { "storageLimitExceeded": MessageLookupByLibrary.simpleMessage("Viršyta saugyklos riba."), "strongStrength": MessageLookupByLibrary.simpleMessage("Stipri"), - "subAlreadyLinkedErrMessage": m73, + "subAlreadyLinkedErrMessage": m74, "subscribe": MessageLookupByLibrary.simpleMessage("Prenumeruoti"), "subscribeToEnableSharing": MessageLookupByLibrary.simpleMessage( "Kad įjungtumėte bendrinimą, reikia aktyvios mokamos prenumeratos."), @@ -1403,7 +1512,7 @@ class MessageLookup extends MessageLookupByLibrary { "suggestFeatures": MessageLookupByLibrary.simpleMessage("Siūlyti funkcijas"), "support": MessageLookupByLibrary.simpleMessage("Palaikymas"), - "syncProgress": m75, + "syncProgress": m76, "syncStopped": MessageLookupByLibrary.simpleMessage( "Sinchronizavimas sustabdytas"), "syncing": MessageLookupByLibrary.simpleMessage("Sinchronizuojama..."), @@ -1416,7 +1525,7 @@ class MessageLookup extends MessageLookupByLibrary { "Palieskite, kad atrakintumėte"), "tapToUpload": MessageLookupByLibrary.simpleMessage("Palieskite, kad įkeltumėte"), - "tapToUploadIsIgnoredDue": m76, + "tapToUploadIsIgnoredDue": m77, "tempErrorContactSupportIfPersists": MessageLookupByLibrary.simpleMessage( "Atrodo, kad kažkas nutiko ne taip. Bandykite dar kartą po kurio laiko. Jei klaida tęsiasi, susisiekite su mūsų palaikymo komanda."), "terminate": MessageLookupByLibrary.simpleMessage("Baigti"), @@ -1425,6 +1534,8 @@ class MessageLookup extends MessageLookupByLibrary { "terms": MessageLookupByLibrary.simpleMessage("Sąlygos"), "termsOfServicesTitle": MessageLookupByLibrary.simpleMessage("Sąlygos"), "thankYou": MessageLookupByLibrary.simpleMessage("Dėkojame"), + "theDownloadCouldNotBeCompleted": MessageLookupByLibrary.simpleMessage( + "Atsisiuntimas negalėjo būti baigtas."), "theLinkYouAreTryingToAccessHasExpired": MessageLookupByLibrary.simpleMessage( "Nuoroda, kurią bandote pasiekti, nebegalioja."), @@ -1432,6 +1543,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage( "Įvestas atkūrimo raktas yra neteisingas."), "theme": MessageLookupByLibrary.simpleMessage("Tema"), + "theyAlsoGetXGb": m8, "thisCanBeUsedToRecoverYourAccountIfYou": MessageLookupByLibrary.simpleMessage( "Tai gali būti naudojama paskyrai atkurti, jei prarandate dvigubo tapatybės nustatymą"), @@ -1491,6 +1603,9 @@ class MessageLookup extends MessageLookupByLibrary { "unlock": MessageLookupByLibrary.simpleMessage("Atrakinti"), "unpinAlbum": MessageLookupByLibrary.simpleMessage("Atsegti albumą"), "unselectAll": MessageLookupByLibrary.simpleMessage("Nesirinkti visų"), + "update": MessageLookupByLibrary.simpleMessage("Atnaujinti"), + "updateAvailable": + MessageLookupByLibrary.simpleMessage("Yra naujinimas"), "updatingFolderSelection": MessageLookupByLibrary.simpleMessage( "Atnaujinamas aplankų pasirinkimas..."), "upgrade": MessageLookupByLibrary.simpleMessage("Keisti planą"), @@ -1542,6 +1657,8 @@ class MessageLookup extends MessageLookupByLibrary { "Aplankykite web.ente.io, kad tvarkytumėte savo prenumeratą"), "waitingForVerification": MessageLookupByLibrary.simpleMessage("Laukiama patvirtinimo..."), + "waitingForWifi": + MessageLookupByLibrary.simpleMessage("Laukiama „WiFi“..."), "warning": MessageLookupByLibrary.simpleMessage("Įspėjimas"), "weAreOpenSource": MessageLookupByLibrary.simpleMessage("Esame atviro kodo!"), @@ -1589,6 +1706,6 @@ class MessageLookup extends MessageLookupByLibrary { "Jūsų patvirtinimo kodas nebegaliojantis."), "youveNoDuplicateFilesThatCanBeCleared": MessageLookupByLibrary.simpleMessage( - "Neturite dubliuotų failų, kuriuos būtų galima išvalyti") + "Neturite dubliuotų failų, kuriuos būtų galima išvalyti.") }; } diff --git a/mobile/lib/generated/intl/messages_ml.dart b/mobile/lib/generated/intl/messages_ml.dart index b71258bc9ed..6a3eec447cb 100644 --- a/mobile/lib/generated/intl/messages_ml.dart +++ b/mobile/lib/generated/intl/messages_ml.dart @@ -78,8 +78,6 @@ class MessageLookup extends MessageLookupByLibrary { "kindlyHelpUsWithThisInformation": MessageLookupByLibrary.simpleMessage("വിവരങ്ങൾ തന്നു സഹായിക്കുക"), "lightTheme": MessageLookupByLibrary.simpleMessage("തെളിഞ"), - "link": MessageLookupByLibrary.simpleMessage("Link"), - "linkEmail": MessageLookupByLibrary.simpleMessage("Link email"), "linkExpired": MessageLookupByLibrary.simpleMessage("കാലഹരണപ്പെട്ടു"), "mastodon": MessageLookupByLibrary.simpleMessage("മാസ്റ്റഡോൺ"), "matrix": MessageLookupByLibrary.simpleMessage("മേട്രിക്സ്"), @@ -88,8 +86,6 @@ class MessageLookup extends MessageLookupByLibrary { "name": MessageLookupByLibrary.simpleMessage("പേര്"), "no": MessageLookupByLibrary.simpleMessage("വേണ്ട"), "noDeviceLimit": MessageLookupByLibrary.simpleMessage("ഒന്നുമില്ല"), - "noEnteAccountExclamation": - MessageLookupByLibrary.simpleMessage("No Ente account!"), "nothingToSeeHere": MessageLookupByLibrary.simpleMessage("ഇവിടൊന്നും കാണ്മാനില്ല! 👀"), "ok": MessageLookupByLibrary.simpleMessage("ശരി"), diff --git a/mobile/lib/generated/intl/messages_nl.dart b/mobile/lib/generated/intl/messages_nl.dart index 94970a6554c..970a903fbf5 100644 --- a/mobile/lib/generated/intl/messages_nl.dart +++ b/mobile/lib/generated/intl/messages_nl.dart @@ -20,37 +20,37 @@ typedef String MessageIfAbsent(String messageStr, List args); class MessageLookup extends MessageLookupByLibrary { String get localeName => 'nl'; - static String m6(count) => + static String m9(count) => "${Intl.plural(count, zero: 'Voeg samenwerker toe', one: 'Voeg samenwerker toe', other: 'Voeg samenwerkers toe')}"; - static String m7(count) => + static String m10(count) => "${Intl.plural(count, one: 'Bestand toevoegen', other: 'Bestanden toevoegen')}"; - static String m8(storageAmount, endDate) => + static String m11(storageAmount, endDate) => "Jouw ${storageAmount} add-on is geldig tot ${endDate}"; - static String m9(count) => + static String m12(count) => "${Intl.plural(count, one: 'Voeg kijker toe', other: 'Voeg kijkers toe')}"; - static String m10(emailOrName) => "Toegevoegd door ${emailOrName}"; + static String m13(emailOrName) => "Toegevoegd door ${emailOrName}"; - static String m11(albumName) => "Succesvol toegevoegd aan ${albumName}"; + static String m14(albumName) => "Succesvol toegevoegd aan ${albumName}"; - static String m12(count) => + static String m15(count) => "${Intl.plural(count, zero: 'Geen deelnemers', one: '1 deelnemer', other: '${count} deelnemers')}"; - static String m13(versionValue) => "Versie: ${versionValue}"; + static String m16(versionValue) => "Versie: ${versionValue}"; - static String m14(freeAmount, storageUnit) => + static String m17(freeAmount, storageUnit) => "${freeAmount} ${storageUnit} vrij"; - static String m15(paymentProvider) => + static String m18(paymentProvider) => "Annuleer eerst uw bestaande abonnement bij ${paymentProvider}"; - static String m16(user) => + static String m3(user) => "${user} zal geen foto\'s meer kunnen toevoegen aan dit album\n\nDe gebruiker zal nog steeds bestaande foto\'s kunnen verwijderen die door hen zijn toegevoegd"; - static String m17(isFamilyMember, storageAmountInGb) => + static String m19(isFamilyMember, storageAmountInGb) => "${Intl.select(isFamilyMember, { 'true': 'Jouw familie heeft ${storageAmountInGb} GB geclaimd tot nu toe', @@ -58,182 +58,182 @@ class MessageLookup extends MessageLookupByLibrary { 'other': 'Je hebt ${storageAmountInGb} GB geclaimd tot nu toe!', })}"; - static String m18(albumName) => + static String m20(albumName) => "Gezamenlijke link aangemaakt voor ${albumName}"; - static String m19(count) => + static String m21(count) => "${Intl.plural(count, zero: '0 samenwerkers toegevoegd', one: '1 samenwerker toegevoegd', other: '${count} samenwerkers toegevoegd')}"; - static String m20(email, numOfDays) => + static String m22(email, numOfDays) => "Je staat op het punt ${email} toe te voegen als vertrouwde contactpersoon. Ze kunnen je account herstellen als je ${numOfDays} dagen afwezig bent."; - static String m21(familyAdminEmail) => + static String m23(familyAdminEmail) => "Neem contact op met ${familyAdminEmail} om uw abonnement te beheren"; - static String m22(provider) => + static String m24(provider) => "Neem contact met ons op via support@ente.io om uw ${provider} abonnement te beheren."; - static String m23(endpoint) => "Verbonden met ${endpoint}"; + static String m25(endpoint) => "Verbonden met ${endpoint}"; - static String m24(count) => + static String m26(count) => "${Intl.plural(count, one: 'Verwijder ${count} bestand', other: 'Verwijder ${count} bestanden')}"; - static String m25(currentlyDeleting, totalCount) => + static String m27(currentlyDeleting, totalCount) => "Verwijderen van ${currentlyDeleting} / ${totalCount}"; - static String m26(albumName) => + static String m28(albumName) => "Dit verwijdert de openbare link voor toegang tot \"${albumName}\"."; - static String m27(supportEmail) => + static String m29(supportEmail) => "Stuur een e-mail naar ${supportEmail} vanaf het door jou geregistreerde e-mailadres"; - static String m28(count, storageSaved) => + static String m30(count, storageSaved) => "Je hebt ${Intl.plural(count, one: '${count} dubbel bestand', other: '${count} dubbele bestanden')} opgeruimd, totaal (${storageSaved}!)"; - static String m29(count, formattedSize) => + static String m31(count, formattedSize) => "${count} bestanden, elk ${formattedSize}"; - static String m30(newEmail) => "E-mailadres gewijzigd naar ${newEmail}"; + static String m32(newEmail) => "E-mailadres gewijzigd naar ${newEmail}"; - static String m31(email) => + static String m33(email) => "${email} heeft geen Ente account.\n\nStuur ze een uitnodiging om foto\'s te delen."; - static String m32(text) => "Extra foto\'s gevonden voor ${text}"; + static String m34(text) => "Extra foto\'s gevonden voor ${text}"; - static String m33(count, formattedNumber) => + static String m35(count, formattedNumber) => "${Intl.plural(count, one: '1 bestand', other: '${formattedNumber} bestanden')} in dit album zijn veilig geback-upt"; - static String m34(count, formattedNumber) => + static String m36(count, formattedNumber) => "${Intl.plural(count, one: '1 bestand', other: '${formattedNumber} bestanden')} in dit album is veilig geback-upt"; - static String m35(storageAmountInGB) => + static String m4(storageAmountInGB) => "${storageAmountInGB} GB telkens als iemand zich aanmeldt voor een betaald abonnement en je code toepast"; - static String m36(endDate) => "Gratis proefversie geldig tot ${endDate}"; + static String m37(endDate) => "Gratis proefversie geldig tot ${endDate}"; - static String m37(count) => + static String m38(count) => "Je hebt nog steeds toegang tot ${Intl.plural(count, one: 'het', other: 'ze')} op Ente zolang je een actief abonnement hebt"; - static String m38(sizeInMBorGB) => "Maak ${sizeInMBorGB} vrij"; + static String m39(sizeInMBorGB) => "Maak ${sizeInMBorGB} vrij"; - static String m39(count, formattedSize) => + static String m40(count, formattedSize) => "${Intl.plural(count, one: 'Het kan verwijderd worden van het apparaat om ${formattedSize} vrij te maken', other: 'Ze kunnen verwijderd worden van het apparaat om ${formattedSize} vrij te maken')}"; - static String m40(currentlyProcessing, totalCount) => + static String m41(currentlyProcessing, totalCount) => "Verwerken van ${currentlyProcessing} / ${totalCount}"; - static String m41(count) => + static String m42(count) => "${Intl.plural(count, one: '${count} item', other: '${count} items')}"; - static String m42(email) => + static String m43(email) => "${email} heeft je uitgenodigd om een vertrouwd contact te zijn"; - static String m43(expiryTime) => "Link vervalt op ${expiryTime}"; + static String m44(expiryTime) => "Link vervalt op ${expiryTime}"; - static String m3(count, formattedCount) => + static String m5(count, formattedCount) => "${Intl.plural(count, zero: 'geen herinneringen', one: '${formattedCount} herinnering', other: '${formattedCount} herinneringen')}"; - static String m44(count) => + static String m45(count) => "${Intl.plural(count, one: 'Bestand verplaatsen', other: 'Bestanden verplaatsen')}"; - static String m45(albumName) => "Succesvol verplaatst naar ${albumName}"; + static String m46(albumName) => "Succesvol verplaatst naar ${albumName}"; - static String m46(personName) => "Geen suggesties voor ${personName}"; + static String m47(personName) => "Geen suggesties voor ${personName}"; - static String m47(name) => "Niet ${name}?"; + static String m48(name) => "Niet ${name}?"; - static String m48(familyAdminEmail) => + static String m49(familyAdminEmail) => "Neem contact op met ${familyAdminEmail} om uw code te wijzigen."; static String m0(passwordStrengthValue) => "Wachtwoord sterkte: ${passwordStrengthValue}"; - static String m49(providerName) => + static String m50(providerName) => "Praat met ${providerName} klantenservice als u in rekening bent gebracht"; - static String m50(count) => + static String m51(count) => "${Intl.plural(count, zero: '0 foto\'s', one: '1 foto', other: '${count} foto\'s')}"; - static String m51(endDate) => + static String m52(endDate) => "Gratis proefperiode geldig tot ${endDate}.\nU kunt naderhand een betaald abonnement kiezen."; - static String m52(toEmail) => "Stuur ons een e-mail op ${toEmail}"; + static String m53(toEmail) => "Stuur ons een e-mail op ${toEmail}"; - static String m53(toEmail) => + static String m54(toEmail) => "Verstuur de logboeken alstublieft naar ${toEmail}"; - static String m54(folderName) => "Verwerken van ${folderName}..."; + static String m55(folderName) => "Verwerken van ${folderName}..."; - static String m55(storeName) => "Beoordeel ons op ${storeName}"; + static String m56(storeName) => "Beoordeel ons op ${storeName}"; - static String m56(days, email) => + static String m57(days, email) => "U krijgt toegang tot het account na ${days} dagen. Een melding zal worden verzonden naar ${email}."; - static String m57(email) => + static String m58(email) => "U kunt nu het account van ${email} herstellen door een nieuw wachtwoord in te stellen."; - static String m58(email) => "${email} probeert je account te herstellen."; + static String m59(email) => "${email} probeert je account te herstellen."; - static String m59(storageInGB) => + static String m60(storageInGB) => "Jullie krijgen allebei ${storageInGB} GB* gratis"; - static String m60(userEmail) => + static String m61(userEmail) => "${userEmail} zal worden verwijderd uit dit gedeelde album\n\nAlle door hen toegevoegde foto\'s worden ook uit het album verwijderd"; - static String m61(endDate) => "Wordt verlengd op ${endDate}"; + static String m62(endDate) => "Wordt verlengd op ${endDate}"; - static String m62(count) => + static String m63(count) => "${Intl.plural(count, one: '${count} resultaat gevonden', other: '${count} resultaten gevonden')}"; - static String m63(snapshotLength, searchLength) => + static String m64(snapshotLength, searchLength) => "Lengte van secties komt niet overeen: ${snapshotLength} != ${searchLength}"; - static String m4(count) => "${count} geselecteerd"; + static String m6(count) => "${count} geselecteerd"; - static String m64(count, yourCount) => + static String m65(count, yourCount) => "${count} geselecteerd (${yourCount} van jou)"; - static String m65(verificationID) => + static String m66(verificationID) => "Hier is mijn verificatie-ID: ${verificationID} voor ente.io."; - static String m5(verificationID) => + static String m7(verificationID) => "Hey, kunt u bevestigen dat dit uw ente.io verificatie-ID is: ${verificationID}"; - static String m66(referralCode, referralStorageInGB) => + static String m67(referralCode, referralStorageInGB) => "Ente verwijzingscode: ${referralCode} \n\nPas het toe bij Instellingen → Algemeen → Verwijzingen om ${referralStorageInGB} GB gratis te krijgen nadat je je hebt aangemeld voor een betaald abonnement\n\nhttps://ente.io"; - static String m67(numberOfPeople) => + static String m68(numberOfPeople) => "${Intl.plural(numberOfPeople, zero: 'Deel met specifieke mensen', one: 'Gedeeld met 1 persoon', other: 'Gedeeld met ${numberOfPeople} mensen')}"; - static String m68(emailIDs) => "Gedeeld met ${emailIDs}"; + static String m69(emailIDs) => "Gedeeld met ${emailIDs}"; - static String m69(fileType) => + static String m70(fileType) => "Deze ${fileType} zal worden verwijderd van jouw apparaat."; - static String m70(fileType) => + static String m71(fileType) => "Deze ${fileType} staat zowel in Ente als op jouw apparaat."; - static String m71(fileType) => + static String m72(fileType) => "Deze ${fileType} zal worden verwijderd uit Ente."; static String m1(storageAmountInGB) => "${storageAmountInGB} GB"; - static String m72( + static String m73( usedAmount, usedStorageUnit, totalAmount, totalStorageUnit) => "${usedAmount} ${usedStorageUnit} van ${totalAmount} ${totalStorageUnit} gebruikt"; - static String m73(id) => + static String m74(id) => "Jouw ${id} is al aan een ander Ente account gekoppeld.\nAls je jouw ${id} wilt gebruiken met dit account, neem dan contact op met onze klantenservice"; - static String m74(endDate) => "Uw abonnement loopt af op ${endDate}"; + static String m75(endDate) => "Uw abonnement loopt af op ${endDate}"; - static String m75(completed, total) => + static String m76(completed, total) => "${completed}/${total} herinneringen bewaard"; - static String m76(ignoreReason) => + static String m77(ignoreReason) => "Tik om te uploaden, upload wordt momenteel genegeerd vanwege ${ignoreReason}"; - static String m77(storageAmountInGB) => + static String m8(storageAmountInGB) => "Zij krijgen ook ${storageAmountInGB} GB"; static String m78(email) => "Dit is de verificatie-ID van ${email}"; @@ -290,11 +290,11 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Nieuw e-mailadres toevoegen"), "addCollaborator": MessageLookupByLibrary.simpleMessage("Samenwerker toevoegen"), - "addCollaborators": m6, + "addCollaborators": m9, "addFiles": MessageLookupByLibrary.simpleMessage("Bestanden toevoegen"), "addFromDevice": MessageLookupByLibrary.simpleMessage("Toevoegen vanaf apparaat"), - "addItem": m7, + "addItem": m10, "addLocation": MessageLookupByLibrary.simpleMessage("Locatie toevoegen"), "addLocationButton": MessageLookupByLibrary.simpleMessage("Toevoegen"), @@ -307,7 +307,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Nieuw persoon toevoegen"), "addOnPageSubtitle": MessageLookupByLibrary.simpleMessage("Details van add-ons"), - "addOnValidTill": m8, + "addOnValidTill": m11, "addOns": MessageLookupByLibrary.simpleMessage("Add-ons"), "addPhotos": MessageLookupByLibrary.simpleMessage("Foto\'s toevoegen"), "addSelected": @@ -320,12 +320,12 @@ class MessageLookup extends MessageLookupByLibrary { "addTrustedContact": MessageLookupByLibrary.simpleMessage("Vertrouwd contact toevoegen"), "addViewer": MessageLookupByLibrary.simpleMessage("Voeg kijker toe"), - "addViewers": m9, + "addViewers": m12, "addYourPhotosNow": MessageLookupByLibrary.simpleMessage("Voeg nu je foto\'s toe"), "addedAs": MessageLookupByLibrary.simpleMessage("Toegevoegd als"), - "addedBy": m10, - "addedSuccessfullyTo": m11, + "addedBy": m13, + "addedSuccessfullyTo": m14, "addingToFavorites": MessageLookupByLibrary.simpleMessage("Toevoegen aan favorieten..."), "advanced": MessageLookupByLibrary.simpleMessage("Geavanceerd"), @@ -336,7 +336,7 @@ class MessageLookup extends MessageLookupByLibrary { "after1Week": MessageLookupByLibrary.simpleMessage("Na 1 week"), "after1Year": MessageLookupByLibrary.simpleMessage("Na 1 jaar"), "albumOwner": MessageLookupByLibrary.simpleMessage("Eigenaar"), - "albumParticipantsCount": m12, + "albumParticipantsCount": m15, "albumTitle": MessageLookupByLibrary.simpleMessage("Albumtitel"), "albumUpdated": MessageLookupByLibrary.simpleMessage("Album bijgewerkt"), @@ -384,7 +384,7 @@ class MessageLookup extends MessageLookupByLibrary { "appLock": MessageLookupByLibrary.simpleMessage("App-vergrendeling"), "appLockDescriptions": MessageLookupByLibrary.simpleMessage( "Kies tussen het standaard vergrendelscherm van uw apparaat en een aangepast vergrendelscherm met een pincode of wachtwoord."), - "appVersion": m13, + "appVersion": m16, "appleId": MessageLookupByLibrary.simpleMessage("Apple ID"), "apply": MessageLookupByLibrary.simpleMessage("Toepassen"), "applyCodeTitle": @@ -469,7 +469,7 @@ class MessageLookup extends MessageLookupByLibrary { "autoPairDesc": MessageLookupByLibrary.simpleMessage( "Automatisch koppelen werkt alleen met apparaten die Chromecast ondersteunen."), "available": MessageLookupByLibrary.simpleMessage("Beschikbaar"), - "availableStorageSpace": m14, + "availableStorageSpace": m17, "backedUpFolders": MessageLookupByLibrary.simpleMessage("Back-up mappen"), "backup": MessageLookupByLibrary.simpleMessage("Back-up"), @@ -507,10 +507,10 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Herstel annuleren"), "cancelAccountRecoveryBody": MessageLookupByLibrary.simpleMessage( "Weet je zeker dat je het herstel wilt annuleren?"), - "cancelOtherSubscription": m15, + "cancelOtherSubscription": m18, "cancelSubscription": MessageLookupByLibrary.simpleMessage("Abonnement opzeggen"), - "cannotAddMorePhotosAfterBecomingViewer": m16, + "cannotAddMorePhotosAfterBecomingViewer": m3, "cannotDeleteSharedFiles": MessageLookupByLibrary.simpleMessage( "Kan gedeelde bestanden niet verwijderen"), "castAlbum": MessageLookupByLibrary.simpleMessage("Album casten"), @@ -559,7 +559,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Claim gratis opslag"), "claimMore": MessageLookupByLibrary.simpleMessage("Claim meer!"), "claimed": MessageLookupByLibrary.simpleMessage("Geclaimd"), - "claimedStorageSoFar": m17, + "claimedStorageSoFar": m19, "cleanUncategorized": MessageLookupByLibrary.simpleMessage("Ongecategoriseerd opschonen"), "cleanUncategorizedDescription": MessageLookupByLibrary.simpleMessage( @@ -588,12 +588,12 @@ class MessageLookup extends MessageLookupByLibrary { "Maak een link waarmee mensen foto\'s in jouw gedeelde album kunnen toevoegen en bekijken zonder dat ze daarvoor een Ente app of account nodig hebben. Handig voor het verzamelen van foto\'s van evenementen."), "collaborativeLink": MessageLookupByLibrary.simpleMessage("Gezamenlijke link"), - "collaborativeLinkCreatedFor": m18, + "collaborativeLinkCreatedFor": m20, "collaborator": MessageLookupByLibrary.simpleMessage("Samenwerker"), "collaboratorsCanAddPhotosAndVideosToTheSharedAlbum": MessageLookupByLibrary.simpleMessage( "Samenwerkers kunnen foto\'s en video\'s toevoegen aan het gedeelde album."), - "collaboratorsSuccessfullyAdded": m19, + "collaboratorsSuccessfullyAdded": m21, "collageLayout": MessageLookupByLibrary.simpleMessage("Layout"), "collageSaved": MessageLookupByLibrary.simpleMessage( "Collage opgeslagen in gallerij"), @@ -611,7 +611,7 @@ class MessageLookup extends MessageLookupByLibrary { "Weet u zeker dat u tweestapsverificatie wilt uitschakelen?"), "confirmAccountDeletion": MessageLookupByLibrary.simpleMessage( "Account verwijderen bevestigen"), - "confirmAddingTrustedContact": m20, + "confirmAddingTrustedContact": m22, "confirmDeletePrompt": MessageLookupByLibrary.simpleMessage( "Ja, ik wil mijn account en de bijbehorende gegevens verspreid over alle apps permanent verwijderen."), "confirmPassword": @@ -624,10 +624,10 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Bevestig herstelsleutel"), "connectToDevice": MessageLookupByLibrary.simpleMessage( "Verbinding maken met apparaat"), - "contactFamilyAdmin": m21, + "contactFamilyAdmin": m23, "contactSupport": MessageLookupByLibrary.simpleMessage("Contacteer klantenservice"), - "contactToManageSubscription": m22, + "contactToManageSubscription": m24, "contacts": MessageLookupByLibrary.simpleMessage("Contacten"), "contents": MessageLookupByLibrary.simpleMessage("Inhoud"), "continueLabel": MessageLookupByLibrary.simpleMessage("Doorgaan"), @@ -674,7 +674,7 @@ class MessageLookup extends MessageLookupByLibrary { "currentlyRunning": MessageLookupByLibrary.simpleMessage("momenteel bezig"), "custom": MessageLookupByLibrary.simpleMessage("Aangepast"), - "customEndpoint": m23, + "customEndpoint": m25, "darkTheme": MessageLookupByLibrary.simpleMessage("Donker"), "dayToday": MessageLookupByLibrary.simpleMessage("Vandaag"), "dayYesterday": MessageLookupByLibrary.simpleMessage("Gisteren"), @@ -712,12 +712,12 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Verwijder van apparaat"), "deleteFromEnte": MessageLookupByLibrary.simpleMessage("Verwijder van Ente"), - "deleteItemCount": m24, + "deleteItemCount": m26, "deleteLocation": MessageLookupByLibrary.simpleMessage("Verwijder locatie"), "deletePhotos": MessageLookupByLibrary.simpleMessage("Foto\'s verwijderen"), - "deleteProgress": m25, + "deleteProgress": m27, "deleteReason1": MessageLookupByLibrary.simpleMessage( "Ik mis een belangrijke functie"), "deleteReason2": MessageLookupByLibrary.simpleMessage( @@ -758,7 +758,7 @@ class MessageLookup extends MessageLookupByLibrary { "Kijkers kunnen nog steeds screenshots maken of een kopie van je foto\'s opslaan met behulp van externe tools"), "disableDownloadWarningTitle": MessageLookupByLibrary.simpleMessage("Let op"), - "disableLinkMessage": m26, + "disableLinkMessage": m28, "disableTwofactor": MessageLookupByLibrary.simpleMessage( "Tweestapsverificatie uitschakelen"), "disablingTwofactorAuthentication": @@ -800,9 +800,9 @@ class MessageLookup extends MessageLookupByLibrary { "downloadFailed": MessageLookupByLibrary.simpleMessage("Download mislukt"), "downloading": MessageLookupByLibrary.simpleMessage("Downloaden..."), - "dropSupportEmail": m27, - "duplicateFileCountWithStorageSaved": m28, - "duplicateItemsGroup": m29, + "dropSupportEmail": m29, + "duplicateFileCountWithStorageSaved": m30, + "duplicateItemsGroup": m31, "edit": MessageLookupByLibrary.simpleMessage("Bewerken"), "editLocation": MessageLookupByLibrary.simpleMessage("Locatie bewerken"), @@ -818,8 +818,8 @@ class MessageLookup extends MessageLookupByLibrary { "email": MessageLookupByLibrary.simpleMessage("E-mail"), "emailAlreadyRegistered": MessageLookupByLibrary.simpleMessage("E-mail is al geregistreerd."), - "emailChangedTo": m30, - "emailNoEnteAccount": m31, + "emailChangedTo": m32, + "emailNoEnteAccount": m33, "emailNotRegistered": MessageLookupByLibrary.simpleMessage("E-mail niet geregistreerd."), "emailVerificationToggle": @@ -906,7 +906,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Exporteer je gegevens"), "extraPhotosFound": MessageLookupByLibrary.simpleMessage("Extra foto\'s gevonden"), - "extraPhotosFoundFor": m32, + "extraPhotosFoundFor": m34, "faceNotClusteredYet": MessageLookupByLibrary.simpleMessage( "Gezicht nog niet geclusterd, kom later terug"), "faceRecognition": @@ -958,8 +958,8 @@ class MessageLookup extends MessageLookupByLibrary { "fileTypes": MessageLookupByLibrary.simpleMessage("Bestandstype"), "fileTypesAndNames": MessageLookupByLibrary.simpleMessage("Bestandstypen en namen"), - "filesBackedUpFromDevice": m33, - "filesBackedUpInAlbum": m34, + "filesBackedUpFromDevice": m35, + "filesBackedUpInAlbum": m36, "filesDeleted": MessageLookupByLibrary.simpleMessage("Bestanden verwijderd"), "filesSavedToGallery": MessageLookupByLibrary.simpleMessage( @@ -976,26 +976,26 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Gezichten gevonden"), "freeStorageClaimed": MessageLookupByLibrary.simpleMessage("Gratis opslag geclaimd"), - "freeStorageOnReferralSuccess": m35, + "freeStorageOnReferralSuccess": m4, "freeStorageUsable": MessageLookupByLibrary.simpleMessage("Gratis opslag bruikbaar"), "freeTrial": MessageLookupByLibrary.simpleMessage("Gratis proefversie"), - "freeTrialValidTill": m36, - "freeUpAccessPostDelete": m37, - "freeUpAmount": m38, + "freeTrialValidTill": m37, + "freeUpAccessPostDelete": m38, + "freeUpAmount": m39, "freeUpDeviceSpace": MessageLookupByLibrary.simpleMessage("Apparaatruimte vrijmaken"), "freeUpDeviceSpaceDesc": MessageLookupByLibrary.simpleMessage( "Bespaar ruimte op je apparaat door bestanden die al geback-upt zijn te wissen."), "freeUpSpace": MessageLookupByLibrary.simpleMessage("Ruimte vrijmaken"), - "freeUpSpaceSaving": m39, + "freeUpSpaceSaving": m40, "gallery": MessageLookupByLibrary.simpleMessage("Galerij"), "galleryMemoryLimitInfo": MessageLookupByLibrary.simpleMessage( "Tot 1000 herinneringen getoond in de galerij"), "general": MessageLookupByLibrary.simpleMessage("Algemeen"), "generatingEncryptionKeys": MessageLookupByLibrary.simpleMessage( "Encryptiesleutels genereren..."), - "genericProgress": m40, + "genericProgress": m41, "goToSettings": MessageLookupByLibrary.simpleMessage("Ga naar instellingen"), "googlePlayId": MessageLookupByLibrary.simpleMessage("Google Play ID"), @@ -1078,7 +1078,7 @@ class MessageLookup extends MessageLookupByLibrary { "itLooksLikeSomethingWentWrongPleaseRetryAfterSome": MessageLookupByLibrary.simpleMessage( "Het lijkt erop dat er iets fout is gegaan. Probeer het later opnieuw. Als de fout zich blijft voordoen, neem dan contact op met ons supportteam."), - "itemCount": m41, + "itemCount": m42, "itemsShowTheNumberOfDaysRemainingBeforePermanentDeletion": MessageLookupByLibrary.simpleMessage( "Bestanden tonen het aantal resterende dagen voordat ze permanent worden verwijderd"), @@ -1108,22 +1108,20 @@ class MessageLookup extends MessageLookupByLibrary { "legacy": MessageLookupByLibrary.simpleMessage("Legacy"), "legacyAccounts": MessageLookupByLibrary.simpleMessage("Legacy accounts"), - "legacyInvite": m42, + "legacyInvite": m43, "legacyPageDesc": MessageLookupByLibrary.simpleMessage( "Legacy geeft vertrouwde contacten toegang tot je account bij afwezigheid."), "legacyPageDesc2": MessageLookupByLibrary.simpleMessage( "Vertrouwde contacten kunnen accountherstel starten, en indien deze niet binnen 30 dagen wordt geblokkeerd, je wachtwoord resetten en toegang krijgen tot je account."), "light": MessageLookupByLibrary.simpleMessage("Licht"), "lightTheme": MessageLookupByLibrary.simpleMessage("Licht"), - "link": MessageLookupByLibrary.simpleMessage("Link"), "linkCopiedToClipboard": MessageLookupByLibrary.simpleMessage( "Link gekopieerd naar klembord"), "linkDeviceLimit": MessageLookupByLibrary.simpleMessage("Apparaat limiet"), - "linkEmail": MessageLookupByLibrary.simpleMessage("Link email"), "linkEnabled": MessageLookupByLibrary.simpleMessage("Ingeschakeld"), "linkExpired": MessageLookupByLibrary.simpleMessage("Verlopen"), - "linkExpiresOn": m43, + "linkExpiresOn": m44, "linkExpiry": MessageLookupByLibrary.simpleMessage("Vervaldatum"), "linkHasExpired": MessageLookupByLibrary.simpleMessage("Link is vervallen"), @@ -1216,7 +1214,7 @@ class MessageLookup extends MessageLookupByLibrary { "maps": MessageLookupByLibrary.simpleMessage("Kaarten"), "mastodon": MessageLookupByLibrary.simpleMessage("Mastodon"), "matrix": MessageLookupByLibrary.simpleMessage("Matrix"), - "memoryCount": m3, + "memoryCount": m5, "merchandise": MessageLookupByLibrary.simpleMessage("Merchandise"), "mergeWithExisting": MessageLookupByLibrary.simpleMessage("Samenvoegen met bestaand"), @@ -1246,12 +1244,12 @@ class MessageLookup extends MessageLookupByLibrary { "moreDetails": MessageLookupByLibrary.simpleMessage("Meer details"), "mostRecent": MessageLookupByLibrary.simpleMessage("Meest recent"), "mostRelevant": MessageLookupByLibrary.simpleMessage("Meest relevant"), - "moveItem": m44, + "moveItem": m45, "moveToAlbum": MessageLookupByLibrary.simpleMessage("Verplaats naar album"), "moveToHiddenAlbum": MessageLookupByLibrary.simpleMessage( "Verplaatsen naar verborgen album"), - "movedSuccessfullyTo": m45, + "movedSuccessfullyTo": m46, "movedToTrash": MessageLookupByLibrary.simpleMessage("Naar prullenbak verplaatst"), "movingFilesToAlbum": MessageLookupByLibrary.simpleMessage( @@ -1279,8 +1277,6 @@ class MessageLookup extends MessageLookupByLibrary { "Je hebt geen bestanden op dit apparaat die verwijderd kunnen worden"), "noDuplicates": MessageLookupByLibrary.simpleMessage("✨ Geen duplicaten"), - "noEnteAccountExclamation": - MessageLookupByLibrary.simpleMessage("No Ente account!"), "noExifData": MessageLookupByLibrary.simpleMessage("Geen EXIF gegevens"), "noFacesFound": @@ -1305,10 +1301,10 @@ class MessageLookup extends MessageLookupByLibrary { "noResults": MessageLookupByLibrary.simpleMessage("Geen resultaten"), "noResultsFound": MessageLookupByLibrary.simpleMessage("Geen resultaten gevonden"), - "noSuggestionsForPerson": m46, + "noSuggestionsForPerson": m47, "noSystemLockFound": MessageLookupByLibrary.simpleMessage( "Geen systeemvergrendeling gevonden"), - "notPersonLabel": m47, + "notPersonLabel": m48, "nothingSharedWithYouYet": MessageLookupByLibrary.simpleMessage("Nog niets met je gedeeld"), "nothingToSeeHere": @@ -1318,7 +1314,7 @@ class MessageLookup extends MessageLookupByLibrary { "onDevice": MessageLookupByLibrary.simpleMessage("Op het apparaat"), "onEnte": MessageLookupByLibrary.simpleMessage( "Op ente"), - "onlyFamilyAdminCanChangeCode": m48, + "onlyFamilyAdminCanChangeCode": m49, "onlyThem": MessageLookupByLibrary.simpleMessage("Alleen hen"), "oops": MessageLookupByLibrary.simpleMessage("Oeps"), "oopsCouldNotSaveEdits": MessageLookupByLibrary.simpleMessage( @@ -1366,7 +1362,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Betaling mislukt"), "paymentFailedMessage": MessageLookupByLibrary.simpleMessage( "Helaas is je betaling mislukt. Neem contact op met support zodat we je kunnen helpen!"), - "paymentFailedTalkToProvider": m49, + "paymentFailedTalkToProvider": m50, "pendingItems": MessageLookupByLibrary.simpleMessage("Bestanden in behandeling"), "pendingSync": MessageLookupByLibrary.simpleMessage( @@ -1390,7 +1386,7 @@ class MessageLookup extends MessageLookupByLibrary { "photosAddedByYouWillBeRemovedFromTheAlbum": MessageLookupByLibrary.simpleMessage( "Foto\'s toegevoegd door u zullen worden verwijderd uit het album"), - "photosCount": m50, + "photosCount": m51, "pickCenterPoint": MessageLookupByLibrary.simpleMessage("Kies middelpunt"), "pinAlbum": @@ -1398,7 +1394,7 @@ class MessageLookup extends MessageLookupByLibrary { "pinLock": MessageLookupByLibrary.simpleMessage("PIN vergrendeling"), "playOnTv": MessageLookupByLibrary.simpleMessage("Album afspelen op TV"), - "playStoreFreeTrialValidTill": m51, + "playStoreFreeTrialValidTill": m52, "playstoreSubscription": MessageLookupByLibrary.simpleMessage("PlayStore abonnement"), "pleaseCheckYourInternetConnectionAndTryAgain": @@ -1410,14 +1406,14 @@ class MessageLookup extends MessageLookupByLibrary { "pleaseContactSupportIfTheProblemPersists": MessageLookupByLibrary.simpleMessage( "Neem contact op met klantenservice als het probleem aanhoudt"), - "pleaseEmailUsAt": m52, + "pleaseEmailUsAt": m53, "pleaseGrantPermissions": MessageLookupByLibrary.simpleMessage( "Geef alstublieft toestemming"), "pleaseLoginAgain": MessageLookupByLibrary.simpleMessage("Log opnieuw in"), "pleaseSelectQuickLinksToRemove": MessageLookupByLibrary.simpleMessage( "Selecteer snelle links om te verwijderen"), - "pleaseSendTheLogsTo": m53, + "pleaseSendTheLogsTo": m54, "pleaseTryAgain": MessageLookupByLibrary.simpleMessage("Probeer het nog eens"), "pleaseVerifyTheCodeYouHaveEntered": @@ -1445,7 +1441,7 @@ class MessageLookup extends MessageLookupByLibrary { "privateSharing": MessageLookupByLibrary.simpleMessage("Privé delen"), "proceed": MessageLookupByLibrary.simpleMessage("Verder"), "processed": MessageLookupByLibrary.simpleMessage("Verwerkt"), - "processingImport": m54, + "processingImport": m55, "publicLinkCreated": MessageLookupByLibrary.simpleMessage("Publieke link aangemaakt"), "publicLinkEnabled": @@ -1455,7 +1451,7 @@ class MessageLookup extends MessageLookupByLibrary { "raiseTicket": MessageLookupByLibrary.simpleMessage("Meld probleem"), "rateTheApp": MessageLookupByLibrary.simpleMessage("Beoordeel de app"), "rateUs": MessageLookupByLibrary.simpleMessage("Beoordeel ons"), - "rateUsOnStore": m55, + "rateUsOnStore": m56, "recover": MessageLookupByLibrary.simpleMessage("Herstellen"), "recoverAccount": MessageLookupByLibrary.simpleMessage("Account herstellen"), @@ -1464,7 +1460,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Account herstellen"), "recoveryInitiated": MessageLookupByLibrary.simpleMessage("Herstel gestart"), - "recoveryInitiatedDesc": m56, + "recoveryInitiatedDesc": m57, "recoveryKey": MessageLookupByLibrary.simpleMessage("Herstelsleutel"), "recoveryKeyCopiedToClipboard": MessageLookupByLibrary.simpleMessage( "Herstelsleutel gekopieerd naar klembord"), @@ -1478,12 +1474,12 @@ class MessageLookup extends MessageLookupByLibrary { "Herstel sleutel geverifieerd"), "recoveryKeyVerifyReason": MessageLookupByLibrary.simpleMessage( "Je herstelsleutel is de enige manier om je foto\'s te herstellen als je je wachtwoord bent vergeten. Je vindt je herstelsleutel in Instellingen > Account.\n\nVoer hier je herstelsleutel in om te controleren of je hem correct hebt opgeslagen."), - "recoveryReady": m57, + "recoveryReady": m58, "recoverySuccessful": MessageLookupByLibrary.simpleMessage("Herstel succesvol!"), "recoveryWarning": MessageLookupByLibrary.simpleMessage( "Een vertrouwd contact probeert toegang te krijgen tot je account"), - "recoveryWarningBody": m58, + "recoveryWarningBody": m59, "recreatePasswordBody": MessageLookupByLibrary.simpleMessage( "Het huidige apparaat is niet krachtig genoeg om je wachtwoord te verifiëren, dus moeten we de code een keer opnieuw genereren op een manier die met alle apparaten werkt.\n\nLog in met behulp van uw herstelcode en genereer opnieuw uw wachtwoord (je kunt dezelfde indien gewenst opnieuw gebruiken)."), "recreatePasswordTitle": MessageLookupByLibrary.simpleMessage( @@ -1499,7 +1495,7 @@ class MessageLookup extends MessageLookupByLibrary { "1. Geef deze code aan je vrienden"), "referralStep2": MessageLookupByLibrary.simpleMessage( "2. Ze registreren voor een betaald plan"), - "referralStep3": m59, + "referralStep3": m60, "referrals": MessageLookupByLibrary.simpleMessage("Referenties"), "referralsAreCurrentlyPaused": MessageLookupByLibrary.simpleMessage( "Verwijzingen zijn momenteel gepauzeerd"), @@ -1531,7 +1527,7 @@ class MessageLookup extends MessageLookupByLibrary { "removeLink": MessageLookupByLibrary.simpleMessage("Verwijder link"), "removeParticipant": MessageLookupByLibrary.simpleMessage("Deelnemer verwijderen"), - "removeParticipantBody": m60, + "removeParticipantBody": m61, "removePersonLabel": MessageLookupByLibrary.simpleMessage("Verwijder persoonslabel"), "removePublicLink": @@ -1553,7 +1549,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Bestandsnaam wijzigen"), "renewSubscription": MessageLookupByLibrary.simpleMessage("Abonnement verlengen"), - "renewsOn": m61, + "renewsOn": m62, "reportABug": MessageLookupByLibrary.simpleMessage("Een fout melden"), "reportBug": MessageLookupByLibrary.simpleMessage("Fout melden"), "resendEmail": @@ -1631,8 +1627,8 @@ class MessageLookup extends MessageLookupByLibrary { "Nodig mensen uit, en je ziet alle foto\'s die door hen worden gedeeld hier"), "searchPersonsEmptySection": MessageLookupByLibrary.simpleMessage( "Personen worden hier getoond zodra verwerking en synchroniseren voltooid is"), - "searchResultCount": m62, - "searchSectionsLengthMismatch": m63, + "searchResultCount": m63, + "searchSectionsLengthMismatch": m64, "security": MessageLookupByLibrary.simpleMessage("Beveiliging"), "seePublicAlbumLinksInApp": MessageLookupByLibrary.simpleMessage( "Bekijk publieke album links in de app"), @@ -1666,8 +1662,8 @@ class MessageLookup extends MessageLookupByLibrary { "selectedItemsWillBeDeletedFromAllAlbumsAndMoved": MessageLookupByLibrary.simpleMessage( "Geselecteerde bestanden worden verwijderd uit alle albums en verplaatst naar de prullenbak."), - "selectedPhotos": m4, - "selectedPhotosWithYours": m64, + "selectedPhotos": m6, + "selectedPhotosWithYours": m65, "send": MessageLookupByLibrary.simpleMessage("Verzenden"), "sendEmail": MessageLookupByLibrary.simpleMessage("E-mail versturen"), "sendInvite": @@ -1699,16 +1695,16 @@ class MessageLookup extends MessageLookupByLibrary { "shareAnAlbumNow": MessageLookupByLibrary.simpleMessage("Deel nu een album"), "shareLink": MessageLookupByLibrary.simpleMessage("Link delen"), - "shareMyVerificationID": m65, + "shareMyVerificationID": m66, "shareOnlyWithThePeopleYouWant": MessageLookupByLibrary.simpleMessage( "Deel alleen met de mensen die u wilt"), - "shareTextConfirmOthersVerificationID": m5, + "shareTextConfirmOthersVerificationID": m7, "shareTextRecommendUsingEnte": MessageLookupByLibrary.simpleMessage( "Download Ente zodat we gemakkelijk foto\'s en video\'s in originele kwaliteit kunnen delen\n\nhttps://ente.io"), - "shareTextReferralCode": m66, + "shareTextReferralCode": m67, "shareWithNonenteUsers": MessageLookupByLibrary.simpleMessage( "Delen met niet-Ente gebruikers"), - "shareWithPeopleSectionTitle": m67, + "shareWithPeopleSectionTitle": m68, "shareYourFirstAlbum": MessageLookupByLibrary.simpleMessage("Deel jouw eerste album"), "sharedAlbumSectionDescription": MessageLookupByLibrary.simpleMessage( @@ -1719,7 +1715,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Nieuwe gedeelde foto\'s"), "sharedPhotoNotificationsExplanation": MessageLookupByLibrary.simpleMessage( "Ontvang meldingen wanneer iemand een foto toevoegt aan een gedeeld album waar je deel van uitmaakt"), - "sharedWith": m68, + "sharedWith": m69, "sharedWithMe": MessageLookupByLibrary.simpleMessage("Gedeeld met mij"), "sharedWithYou": MessageLookupByLibrary.simpleMessage("Gedeeld met jou"), @@ -1735,11 +1731,11 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Log uit op andere apparaten"), "signUpTerms": MessageLookupByLibrary.simpleMessage( "Ik ga akkoord met de gebruiksvoorwaarden en privacybeleid"), - "singleFileDeleteFromDevice": m69, + "singleFileDeleteFromDevice": m70, "singleFileDeleteHighlight": MessageLookupByLibrary.simpleMessage( "Het wordt uit alle albums verwijderd."), - "singleFileInBothLocalAndRemote": m70, - "singleFileInRemoteOnly": m71, + "singleFileInBothLocalAndRemote": m71, + "singleFileInRemoteOnly": m72, "skip": MessageLookupByLibrary.simpleMessage("Overslaan"), "social": MessageLookupByLibrary.simpleMessage("Sociale media"), "someItemsAreInBothEnteAndYourDevice": MessageLookupByLibrary.simpleMessage( @@ -1787,10 +1783,10 @@ class MessageLookup extends MessageLookupByLibrary { "storageInGB": m1, "storageLimitExceeded": MessageLookupByLibrary.simpleMessage("Opslaglimiet overschreden"), - "storageUsageInfo": m72, + "storageUsageInfo": m73, "strongStrength": MessageLookupByLibrary.simpleMessage("Sterk"), - "subAlreadyLinkedErrMessage": m73, - "subWillBeCancelledOn": m74, + "subAlreadyLinkedErrMessage": m74, + "subWillBeCancelledOn": m75, "subscribe": MessageLookupByLibrary.simpleMessage("Abonneer"), "subscribeToEnableSharing": MessageLookupByLibrary.simpleMessage( "Je hebt een actief betaald abonnement nodig om delen mogelijk te maken."), @@ -1807,7 +1803,7 @@ class MessageLookup extends MessageLookupByLibrary { "suggestFeatures": MessageLookupByLibrary.simpleMessage("Features voorstellen"), "support": MessageLookupByLibrary.simpleMessage("Ondersteuning"), - "syncProgress": m75, + "syncProgress": m76, "syncStopped": MessageLookupByLibrary.simpleMessage("Synchronisatie gestopt"), "syncing": MessageLookupByLibrary.simpleMessage("Synchroniseren..."), @@ -1819,7 +1815,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Tik om te ontgrendelen"), "tapToUpload": MessageLookupByLibrary.simpleMessage("Tik om te uploaden"), - "tapToUploadIsIgnoredDue": m76, + "tapToUploadIsIgnoredDue": m77, "tempErrorContactSupportIfPersists": MessageLookupByLibrary.simpleMessage( "Het lijkt erop dat er iets fout is gegaan. Probeer het later opnieuw. Als de fout zich blijft voordoen, neem dan contact op met ons supportteam."), "terminate": MessageLookupByLibrary.simpleMessage("Beëindigen"), @@ -1843,7 +1839,7 @@ class MessageLookup extends MessageLookupByLibrary { "theseItemsWillBeDeletedFromYourDevice": MessageLookupByLibrary.simpleMessage( "Deze bestanden zullen worden verwijderd van uw apparaat."), - "theyAlsoGetXGb": m77, + "theyAlsoGetXGb": m8, "theyWillBeDeletedFromAllAlbums": MessageLookupByLibrary.simpleMessage( "Ze zullen uit alle albums worden verwijderd."), "thisActionCannotBeUndone": MessageLookupByLibrary.simpleMessage( diff --git a/mobile/lib/generated/intl/messages_no.dart b/mobile/lib/generated/intl/messages_no.dart index 3dd377378f6..1e929e80bae 100644 --- a/mobile/lib/generated/intl/messages_no.dart +++ b/mobile/lib/generated/intl/messages_no.dart @@ -20,46 +20,46 @@ typedef String MessageIfAbsent(String messageStr, List args); class MessageLookup extends MessageLookupByLibrary { String get localeName => 'no'; - static String m12(count) => + static String m15(count) => "${Intl.plural(count, zero: 'Ingen deltakere', one: '1 deltaker', other: '${count} deltakere')}"; - static String m16(user) => + static String m3(user) => "${user} vil ikke kunne legge til flere bilder til dette albumet\n\nDe vil fortsatt kunne fjerne eksisterende bilder lagt til av dem"; - static String m24(count) => + static String m26(count) => "${Intl.plural(count, one: 'Slett ${count} element', other: 'Slett ${count} elementer')}"; - static String m26(albumName) => + static String m28(albumName) => "Dette fjerner den offentlige lenken for tilgang til \"${albumName}\"."; - static String m27(supportEmail) => + static String m29(supportEmail) => "Vennligst send en e-post til ${supportEmail} fra din registrerte e-postadresse"; - static String m29(count, formattedSize) => + static String m31(count, formattedSize) => "${count} filer, ${formattedSize} hver"; - static String m41(count) => + static String m42(count) => "${Intl.plural(count, one: '${count} element', other: '${count} elementer')}"; - static String m43(expiryTime) => "Lenken utløper på ${expiryTime}"; + static String m44(expiryTime) => "Lenken utløper på ${expiryTime}"; - static String m3(count, formattedCount) => + static String m5(count, formattedCount) => "${Intl.plural(count, zero: 'ingen minner', one: '${formattedCount} minne', other: '${formattedCount} minner')}"; static String m0(passwordStrengthValue) => "Passordstyrke: ${passwordStrengthValue}"; - static String m4(count) => "${count} valgt"; + static String m6(count) => "${count} valgt"; - static String m64(count, yourCount) => "${count} valgt (${yourCount} dine)"; + static String m65(count, yourCount) => "${count} valgt (${yourCount} dine)"; - static String m65(verificationID) => + static String m66(verificationID) => "Her er min verifiserings-ID: ${verificationID} for ente.io."; - static String m5(verificationID) => + static String m7(verificationID) => "Hei, kan du bekrefte at dette er din ente.io verifiserings-ID: ${verificationID}"; - static String m67(numberOfPeople) => + static String m68(numberOfPeople) => "${Intl.plural(numberOfPeople, zero: 'Del med bestemte personer', one: 'Delt med 1 person', other: 'Delt med ${numberOfPeople} personer')}"; static String m78(email) => "Dette er ${email} sin verifiserings-ID"; @@ -91,7 +91,7 @@ class MessageLookup extends MessageLookupByLibrary { "after1Week": MessageLookupByLibrary.simpleMessage("Etter 1 uke"), "after1Year": MessageLookupByLibrary.simpleMessage("Etter 1 år"), "albumOwner": MessageLookupByLibrary.simpleMessage("Eier"), - "albumParticipantsCount": m12, + "albumParticipantsCount": m15, "albumUpdated": MessageLookupByLibrary.simpleMessage("Album oppdatert"), "albums": MessageLookupByLibrary.simpleMessage("Album"), "allowAddPhotosDescription": MessageLookupByLibrary.simpleMessage( @@ -108,7 +108,7 @@ class MessageLookup extends MessageLookupByLibrary { "authToViewYourRecoveryKey": MessageLookupByLibrary.simpleMessage( "Vennligst autentiser deg for å se gjennopprettingsnøkkelen din"), "cancel": MessageLookupByLibrary.simpleMessage("Avbryt"), - "cannotAddMorePhotosAfterBecomingViewer": m16, + "cannotAddMorePhotosAfterBecomingViewer": m3, "changeEmail": MessageLookupByLibrary.simpleMessage("Endre e-postadresse"), "changePasswordTitle": @@ -164,7 +164,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Slett fra begge"), "deleteFromDevice": MessageLookupByLibrary.simpleMessage("Slett fra enhet"), - "deleteItemCount": m24, + "deleteItemCount": m26, "deletePhotos": MessageLookupByLibrary.simpleMessage("Slett bilder"), "deleteReason1": MessageLookupByLibrary.simpleMessage( "Det mangler en hovedfunksjon jeg trenger"), @@ -180,12 +180,12 @@ class MessageLookup extends MessageLookupByLibrary { "Seere kan fremdeles ta skjermbilder eller lagre en kopi av bildene dine ved bruk av eksterne verktøy"), "disableDownloadWarningTitle": MessageLookupByLibrary.simpleMessage("Vær oppmerksom på"), - "disableLinkMessage": m26, + "disableLinkMessage": m28, "doThisLater": MessageLookupByLibrary.simpleMessage("Gjør dette senere"), "done": MessageLookupByLibrary.simpleMessage("Ferdig"), - "dropSupportEmail": m27, - "duplicateItemsGroup": m29, + "dropSupportEmail": m29, + "duplicateItemsGroup": m31, "email": MessageLookupByLibrary.simpleMessage("E-post"), "encryption": MessageLookupByLibrary.simpleMessage("Kryptering"), "encryptionKeys": @@ -245,16 +245,14 @@ class MessageLookup extends MessageLookupByLibrary { "invalidKey": MessageLookupByLibrary.simpleMessage("Ugyldig nøkkel"), "invalidRecoveryKey": MessageLookupByLibrary.simpleMessage( "Gjenopprettingsnøkkelen du har skrevet inn er ikke gyldig. Kontroller at den inneholder 24 ord og kontroller stavemåten av hvert ord.\n\nHvis du har angitt en eldre gjenopprettingskode, må du kontrollere at den er 64 tegn lang, og kontrollere hvert av dem."), - "itemCount": m41, + "itemCount": m42, "keepPhotos": MessageLookupByLibrary.simpleMessage("Behold Bilder"), "kindlyHelpUsWithThisInformation": MessageLookupByLibrary.simpleMessage( "Vær vennlig og hjelp oss med denne informasjonen"), - "link": MessageLookupByLibrary.simpleMessage("Link"), "linkDeviceLimit": MessageLookupByLibrary.simpleMessage("Enhetsgrense"), - "linkEmail": MessageLookupByLibrary.simpleMessage("Link email"), "linkEnabled": MessageLookupByLibrary.simpleMessage("Aktivert"), "linkExpired": MessageLookupByLibrary.simpleMessage("Utløpt"), - "linkExpiresOn": m43, + "linkExpiresOn": m44, "linkExpiry": MessageLookupByLibrary.simpleMessage("Lenkeutløp"), "linkHasExpired": MessageLookupByLibrary.simpleMessage("Lenken har utløpt"), @@ -270,15 +268,13 @@ class MessageLookup extends MessageLookupByLibrary { "manageLink": MessageLookupByLibrary.simpleMessage("Administrer lenke"), "manageParticipants": MessageLookupByLibrary.simpleMessage("Administrer"), - "memoryCount": m3, + "memoryCount": m5, "moderateStrength": MessageLookupByLibrary.simpleMessage("Moderat"), "movedToTrash": MessageLookupByLibrary.simpleMessage("Flyttet til papirkurven"), "never": MessageLookupByLibrary.simpleMessage("Aldri"), "newAlbum": MessageLookupByLibrary.simpleMessage("Nytt album"), "noDeviceLimit": MessageLookupByLibrary.simpleMessage("Ingen"), - "noEnteAccountExclamation": - MessageLookupByLibrary.simpleMessage("No Ente account!"), "noRecoveryKey": MessageLookupByLibrary.simpleMessage( "Ingen gjenopprettingsnøkkel?"), "noRecoveryKeyNoDecryption": MessageLookupByLibrary.simpleMessage( @@ -358,8 +354,8 @@ class MessageLookup extends MessageLookupByLibrary { "selectedFoldersWillBeEncryptedAndBackedUp": MessageLookupByLibrary.simpleMessage( "Valgte mapper vil bli kryptert og sikkerhetskopiert"), - "selectedPhotos": m4, - "selectedPhotosWithYours": m64, + "selectedPhotos": m6, + "selectedPhotosWithYours": m65, "sendEmail": MessageLookupByLibrary.simpleMessage("Send e-post"), "sendInvite": MessageLookupByLibrary.simpleMessage("Send invitasjon"), "sendLink": MessageLookupByLibrary.simpleMessage("Send lenke"), @@ -369,9 +365,9 @@ class MessageLookup extends MessageLookupByLibrary { "setupComplete": MessageLookupByLibrary.simpleMessage("Oppsett fullført"), "shareALink": MessageLookupByLibrary.simpleMessage("Del en lenke"), - "shareMyVerificationID": m65, - "shareTextConfirmOthersVerificationID": m5, - "shareWithPeopleSectionTitle": m67, + "shareMyVerificationID": m66, + "shareTextConfirmOthersVerificationID": m7, + "shareWithPeopleSectionTitle": m68, "sharedPhotoNotifications": MessageLookupByLibrary.simpleMessage("Nye delte bilder"), "sharedPhotoNotificationsExplanation": MessageLookupByLibrary.simpleMessage( diff --git a/mobile/lib/generated/intl/messages_pl.dart b/mobile/lib/generated/intl/messages_pl.dart index e0de3e5e0bc..5f57238d139 100644 --- a/mobile/lib/generated/intl/messages_pl.dart +++ b/mobile/lib/generated/intl/messages_pl.dart @@ -20,37 +20,37 @@ typedef String MessageIfAbsent(String messageStr, List args); class MessageLookup extends MessageLookupByLibrary { String get localeName => 'pl'; - static String m6(count) => + static String m9(count) => "${Intl.plural(count, one: 'Dodaj współuczestnika', few: 'Dodaj współuczestników', many: 'Dodaj współuczestników', other: 'Dodaj współuczestników')}"; - static String m7(count) => + static String m10(count) => "${Intl.plural(count, one: 'Dodaj element', few: 'Dodaj elementy', other: 'Dodaj elementów')}"; - static String m8(storageAmount, endDate) => + static String m11(storageAmount, endDate) => "Twój dodatek ${storageAmount} jest ważny do ${endDate}"; - static String m9(count) => + static String m12(count) => "${Intl.plural(count, one: 'Dodaj widza', few: 'Dodaj widzów', many: 'Dodaj widzów', other: 'Dodaj widzów')}"; - static String m10(emailOrName) => "Dodane przez ${emailOrName}"; + static String m13(emailOrName) => "Dodane przez ${emailOrName}"; - static String m11(albumName) => "Pomyślnie dodano do ${albumName}"; + static String m14(albumName) => "Pomyślnie dodano do ${albumName}"; - static String m12(count) => + static String m15(count) => "${Intl.plural(count, zero: 'Brak Uczestników', one: '1 Uczestnik', other: '${count} Uczestników')}"; - static String m13(versionValue) => "Wersja: ${versionValue}"; + static String m16(versionValue) => "Wersja: ${versionValue}"; - static String m14(freeAmount, storageUnit) => - "${freeAmount} ${storageUnit} za darmo"; + static String m17(freeAmount, storageUnit) => + "${freeAmount} ${storageUnit} wolne"; - static String m15(paymentProvider) => + static String m18(paymentProvider) => "Prosimy najpierw anulować istniejącą subskrypcję z ${paymentProvider}"; - static String m16(user) => + static String m3(user) => "${user} nie będzie mógł dodać więcej zdjęć do tego albumu\n\nJednak nadal będą mogli usunąć istniejące zdjęcia, które dodali"; - static String m17(isFamilyMember, storageAmountInGb) => + static String m19(isFamilyMember, storageAmountInGb) => "${Intl.select(isFamilyMember, { 'true': 'Twoja rodzina odebrała ${storageAmountInGb} GB do tej pory', @@ -58,181 +58,181 @@ class MessageLookup extends MessageLookupByLibrary { 'other': 'Odebrałeś ${storageAmountInGb} GB do tej pory!', })}"; - static String m18(albumName) => "Utworzono link współpracy dla ${albumName}"; + static String m20(albumName) => "Utworzono link współpracy dla ${albumName}"; - static String m19(count) => + static String m21(count) => "${Intl.plural(count, zero: 'Dodano 0 współuczestników', one: 'Dodano 1 współuczestnika', other: 'Dodano ${count} współuczestników')}"; - static String m20(email, numOfDays) => + static String m22(email, numOfDays) => "Zamierzasz dodać ${email} jako zaufany kontakt. Będą mogli odzyskać Twoje konto, jeśli jesteś nieobecny przez ${numOfDays} dni."; - static String m21(familyAdminEmail) => + static String m23(familyAdminEmail) => "Prosimy skontaktować się z ${familyAdminEmail}, by zarzadząć swoją subskrypcją"; - static String m22(provider) => + static String m24(provider) => "Skontaktuj się z nami pod adresem support@ente.io, aby zarządzać subskrypcją ${provider}."; - static String m23(endpoint) => "Połączono z ${endpoint}"; + static String m25(endpoint) => "Połączono z ${endpoint}"; - static String m24(count) => + static String m26(count) => "${Intl.plural(count, one: 'Usuń ${count} element', few: 'Usuń ${count} elementy', many: 'Usuń ${count} elementów', other: 'Usuń ${count} elementu')}"; - static String m25(currentlyDeleting, totalCount) => + static String m27(currentlyDeleting, totalCount) => "Usuwanie ${currentlyDeleting} / ${totalCount}"; - static String m26(albumName) => + static String m28(albumName) => "Spowoduje to usunięcie publicznego linku dostępu do \"${albumName}\"."; - static String m27(supportEmail) => + static String m29(supportEmail) => "Wyślij wiadomość e-mail na ${supportEmail} z zarejestrowanego adresu e-mail"; - static String m28(count, storageSaved) => + static String m30(count, storageSaved) => "Wyczyszczono ${Intl.plural(count, one: '${count} zdduplikowany plik', other: '${count} zdduplikowane pliki')}, oszczędzając (${storageSaved}!)"; - static String m29(count, formattedSize) => + static String m31(count, formattedSize) => "${count} plików, każdy po ${formattedSize}"; - static String m30(newEmail) => "Adres e-mail został zmieniony na ${newEmail}"; + static String m32(newEmail) => "Adres e-mail został zmieniony na ${newEmail}"; - static String m31(email) => + static String m33(email) => "${email} nie posiada konta Ente.\n\nWyślij im zaproszenie do udostępniania zdjęć."; - static String m32(text) => "Znaleziono dodatkowe zdjęcia dla ${text}"; + static String m34(text) => "Znaleziono dodatkowe zdjęcia dla ${text}"; - static String m33(count, formattedNumber) => + static String m35(count, formattedNumber) => "${Intl.plural(count, one: '1 plikowi', other: '${formattedNumber} plikom')} na tym urządzeniu została bezpiecznie utworzona kopia zapasowa"; - static String m34(count, formattedNumber) => + static String m36(count, formattedNumber) => "${Intl.plural(count, one: '1 plikowi', other: '${formattedNumber} plikom')} w tym albumie została bezpiecznie utworzona kopia zapasowa"; - static String m35(storageAmountInGB) => + static String m4(storageAmountInGB) => "${storageAmountInGB} GB za każdym razem, gdy ktoś zarejestruje się w płatnym planie i użyje twojego kodu"; - static String m36(endDate) => "Okres próbny ważny do ${endDate}"; + static String m37(endDate) => "Okres próbny ważny do ${endDate}"; - static String m37(count) => + static String m38(count) => "Nadal możesz mieć dostęp ${Intl.plural(count, one: 'do tego', other: 'do tych')} na Ente tak długo, jak masz aktywną subskrypcję"; - static String m38(sizeInMBorGB) => "Zwolnij ${sizeInMBorGB}"; + static String m39(sizeInMBorGB) => "Zwolnij ${sizeInMBorGB}"; - static String m39(count, formattedSize) => + static String m40(count, formattedSize) => "${Intl.plural(count, one: 'Można to usunąć z urządzenia, aby zwolnić ${formattedSize}', other: 'Można je usunąć z urządzenia, aby zwolnić ${formattedSize}')}"; - static String m40(currentlyProcessing, totalCount) => + static String m41(currentlyProcessing, totalCount) => "Przetwarzanie ${currentlyProcessing} / ${totalCount}"; - static String m41(count) => + static String m42(count) => "${Intl.plural(count, one: '${count} element', few: '${count} elementy', many: '${count} elementów', other: '${count} elementu')}"; - static String m42(email) => + static String m43(email) => "${email} zaprosił Cię do zostania zaufanym kontaktem"; - static String m43(expiryTime) => "Link wygaśnie ${expiryTime}"; + static String m44(expiryTime) => "Link wygaśnie ${expiryTime}"; - static String m3(count, formattedCount) => + static String m5(count, formattedCount) => "${Intl.plural(count, zero: 'brak wspomnień', one: '${formattedCount} wspomnienie', few: '${formattedCount} wspomnienia', other: '${formattedCount} wspomnień')}"; - static String m44(count) => + static String m45(count) => "${Intl.plural(count, one: 'Przenieś element', few: 'Przenieś elementy', other: 'Przenieś elementów')}"; - static String m45(albumName) => "Pomyślnie przeniesiono do ${albumName}"; + static String m46(albumName) => "Pomyślnie przeniesiono do ${albumName}"; - static String m46(personName) => "Brak sugestii dla ${personName}"; + static String m47(personName) => "Brak sugestii dla ${personName}"; - static String m47(name) => "Nie ${name}?"; + static String m48(name) => "Nie ${name}?"; - static String m48(familyAdminEmail) => + static String m49(familyAdminEmail) => "Skontaktuj się z ${familyAdminEmail}, aby zmienić swój kod."; static String m0(passwordStrengthValue) => "Siła hasła: ${passwordStrengthValue}"; - static String m49(providerName) => + static String m50(providerName) => "Porozmawiaj ze wsparciem ${providerName} jeśli zostałeś obciążony"; - static String m50(count) => + static String m51(count) => "${Intl.plural(count, zero: '0 zdjęć', one: '1 zdjęcie', few: '${count} zdjęcia', other: '${count} zdjęć')}"; - static String m51(endDate) => + static String m52(endDate) => "Bezpłatny okres próbny ważny do ${endDate}.\nNastępnie możesz wybrać płatny plan."; - static String m52(toEmail) => + static String m53(toEmail) => "Prosimy o kontakt mailowy pod adresem ${toEmail}"; - static String m53(toEmail) => "Prosimy wysłać logi do ${toEmail}"; + static String m54(toEmail) => "Prosimy wysłać logi do ${toEmail}"; - static String m54(folderName) => "Przetwarzanie ${folderName}..."; + static String m55(folderName) => "Przetwarzanie ${folderName}..."; - static String m55(storeName) => "Oceń nas na ${storeName}"; + static String m56(storeName) => "Oceń nas na ${storeName}"; - static String m56(days, email) => + static String m57(days, email) => "Możesz uzyskać dostęp do konta po dniu ${days} dni. Powiadomienie zostanie wysłane na ${email}."; - static String m57(email) => + static String m58(email) => "Możesz teraz odzyskać konto ${email} poprzez ustawienie nowego hasła."; - static String m58(email) => "${email} próbuje odzyskać Twoje konto."; + static String m59(email) => "${email} próbuje odzyskać Twoje konto."; - static String m59(storageInGB) => + static String m60(storageInGB) => "3. Oboje otrzymujecie ${storageInGB} GB* za darmo"; - static String m60(userEmail) => + static String m61(userEmail) => "${userEmail} zostanie usunięty z tego udostępnionego albumu\n\nWszelkie dodane przez nich zdjęcia zostaną usunięte z albumu"; - static String m61(endDate) => "Subskrypcja odnowi się ${endDate}"; + static String m62(endDate) => "Subskrypcja odnowi się ${endDate}"; - static String m62(count) => + static String m63(count) => "${Intl.plural(count, one: 'Znaleziono ${count} wynik', few: 'Znaleziono ${count} wyniki', other: 'Znaleziono ${count} wyników')}"; - static String m63(snapshotLength, searchLength) => + static String m64(snapshotLength, searchLength) => "Niezgodność długości sekcji: ${snapshotLength} != ${searchLength}"; - static String m4(count) => "Wybrano ${count}"; + static String m6(count) => "Wybrano ${count}"; - static String m64(count, yourCount) => + static String m65(count, yourCount) => "Wybrano ${count} (twoich ${yourCount})"; - static String m65(verificationID) => + static String m66(verificationID) => "Oto mój identyfikator weryfikacyjny: ${verificationID} dla ente.io."; - static String m5(verificationID) => + static String m7(verificationID) => "Hej, czy możesz potwierdzić, że to jest Twój identyfikator weryfikacyjny ente.io: ${verificationID}"; - static String m66(referralCode, referralStorageInGB) => + static String m67(referralCode, referralStorageInGB) => "Kod polecający: ${referralCode} \n\nZastosuj go w: Ustawienia → Ogólne → Polecanie, aby otrzymać ${referralStorageInGB} GB za darmo po zarejestrowaniu się w płatnym planie\n\nhttps://ente.io"; - static String m67(numberOfPeople) => + static String m68(numberOfPeople) => "${Intl.plural(numberOfPeople, zero: 'Udostępnione określonym osobom', one: 'Udostępnione 1 osobie', other: 'Udostępnione ${numberOfPeople} osobom')}"; - static String m68(emailIDs) => "Udostępnione z ${emailIDs}"; + static String m69(emailIDs) => "Udostępnione z ${emailIDs}"; - static String m69(fileType) => + static String m70(fileType) => "Ten ${fileType} zostanie usunięty z Twojego urządzenia."; - static String m70(fileType) => + static String m71(fileType) => "Ten ${fileType} jest zarówno w Ente, jak i na twoim urządzeniu."; - static String m71(fileType) => "Ten ${fileType} zostanie usunięty z Ente."; + static String m72(fileType) => "Ten ${fileType} zostanie usunięty z Ente."; static String m1(storageAmountInGB) => "${storageAmountInGB} GB"; - static String m72( + static String m73( usedAmount, usedStorageUnit, totalAmount, totalStorageUnit) => "Użyto ${usedAmount} ${usedStorageUnit} z ${totalAmount} ${totalStorageUnit}"; - static String m73(id) => + static String m74(id) => "Twoje ${id} jest już połączony z innym kontem Ente.\nJeśli chcesz użyć swojego ${id} za pomocą tego konta, skontaktuj się z naszym wsparciem technicznym"; - static String m74(endDate) => + static String m75(endDate) => "Twoja subskrypcja zostanie anulowana dnia ${endDate}"; - static String m75(completed, total) => + static String m76(completed, total) => "Zachowano ${completed}/${total} wspomnień"; - static String m76(ignoreReason) => + static String m77(ignoreReason) => "Naciśnij, aby przesłać, przesyłanie jest obecnie ignorowane z powodu ${ignoreReason}"; - static String m77(storageAmountInGB) => + static String m8(storageAmountInGB) => "Oni również otrzymują ${storageAmountInGB} GB"; static String m78(email) => "To jest identyfikator weryfikacyjny ${email}"; @@ -288,11 +288,11 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Dodaj nowy adres e-mail"), "addCollaborator": MessageLookupByLibrary.simpleMessage("Dodaj współuczestnika"), - "addCollaborators": m6, + "addCollaborators": m9, "addFiles": MessageLookupByLibrary.simpleMessage("Dodaj Pliki"), "addFromDevice": MessageLookupByLibrary.simpleMessage("Dodaj z urządzenia"), - "addItem": m7, + "addItem": m10, "addLocation": MessageLookupByLibrary.simpleMessage("Dodaj lokalizację"), "addLocationButton": MessageLookupByLibrary.simpleMessage("Dodaj"), @@ -305,7 +305,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Dodaj nową osobę"), "addOnPageSubtitle": MessageLookupByLibrary.simpleMessage("Szczegóły dodatków"), - "addOnValidTill": m8, + "addOnValidTill": m11, "addOns": MessageLookupByLibrary.simpleMessage("Dodatki"), "addPhotos": MessageLookupByLibrary.simpleMessage("Dodaj zdjęcia"), "addSelected": MessageLookupByLibrary.simpleMessage("Dodaj zaznaczone"), @@ -316,12 +316,12 @@ class MessageLookup extends MessageLookupByLibrary { "addTrustedContact": MessageLookupByLibrary.simpleMessage("Dodaj Zaufany Kontakt"), "addViewer": MessageLookupByLibrary.simpleMessage("Dodaj widza"), - "addViewers": m9, + "addViewers": m12, "addYourPhotosNow": MessageLookupByLibrary.simpleMessage("Dodaj swoje zdjęcia teraz"), "addedAs": MessageLookupByLibrary.simpleMessage("Dodano jako"), - "addedBy": m10, - "addedSuccessfullyTo": m11, + "addedBy": m13, + "addedSuccessfullyTo": m14, "addingToFavorites": MessageLookupByLibrary.simpleMessage("Dodawanie do ulubionych..."), "advanced": MessageLookupByLibrary.simpleMessage("Zaawansowane"), @@ -333,7 +333,7 @@ class MessageLookup extends MessageLookupByLibrary { "after1Week": MessageLookupByLibrary.simpleMessage("Po 1 tygodniu"), "after1Year": MessageLookupByLibrary.simpleMessage("Po 1 roku"), "albumOwner": MessageLookupByLibrary.simpleMessage("Właściciel"), - "albumParticipantsCount": m12, + "albumParticipantsCount": m15, "albumTitle": MessageLookupByLibrary.simpleMessage("Tytuł albumu"), "albumUpdated": MessageLookupByLibrary.simpleMessage("Album został zaktualizowany"), @@ -384,7 +384,7 @@ class MessageLookup extends MessageLookupByLibrary { "Blokada dostępu do aplikacji"), "appLockDescriptions": MessageLookupByLibrary.simpleMessage( "Wybierz między domyślnym ekranem blokady urządzenia a niestandardowym ekranem blokady z kodem PIN lub hasłem."), - "appVersion": m13, + "appVersion": m16, "appleId": MessageLookupByLibrary.simpleMessage("Apple ID"), "apply": MessageLookupByLibrary.simpleMessage("Zastosuj"), "applyCodeTitle": MessageLookupByLibrary.simpleMessage("Użyj kodu"), @@ -466,7 +466,7 @@ class MessageLookup extends MessageLookupByLibrary { "autoPairDesc": MessageLookupByLibrary.simpleMessage( "Automatyczne parowanie działa tylko z urządzeniami obsługującymi Chromecast."), "available": MessageLookupByLibrary.simpleMessage("Dostępne"), - "availableStorageSpace": m14, + "availableStorageSpace": m17, "backedUpFolders": MessageLookupByLibrary.simpleMessage("Foldery kopii zapasowej"), "backup": MessageLookupByLibrary.simpleMessage("Kopia zapasowa"), @@ -504,10 +504,10 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Anuluj odzyskiwanie"), "cancelAccountRecoveryBody": MessageLookupByLibrary.simpleMessage( "Czy na pewno chcesz anulować odzyskiwanie?"), - "cancelOtherSubscription": m15, + "cancelOtherSubscription": m18, "cancelSubscription": MessageLookupByLibrary.simpleMessage("Anuluj subskrypcję"), - "cannotAddMorePhotosAfterBecomingViewer": m16, + "cannotAddMorePhotosAfterBecomingViewer": m3, "cannotDeleteSharedFiles": MessageLookupByLibrary.simpleMessage( "Nie można usunąć udostępnionych plików"), "castAlbum": MessageLookupByLibrary.simpleMessage("Odtwórz album"), @@ -556,7 +556,7 @@ class MessageLookup extends MessageLookupByLibrary { "Odbierz bezpłatną przestrzeń dyskową"), "claimMore": MessageLookupByLibrary.simpleMessage("Zdobądź więcej!"), "claimed": MessageLookupByLibrary.simpleMessage("Odebrano"), - "claimedStorageSoFar": m17, + "claimedStorageSoFar": m19, "cleanUncategorized": MessageLookupByLibrary.simpleMessage("Wyczyść Nieskategoryzowane"), "cleanUncategorizedDescription": MessageLookupByLibrary.simpleMessage( @@ -586,12 +586,12 @@ class MessageLookup extends MessageLookupByLibrary { "Utwórz link, aby umożliwić innym dodawanie i przeglądanie zdjęć w udostępnionym albumie bez konieczności korzystania z aplikacji lub konta Ente. Świetne rozwiązanie do gromadzenia zdjęć ze wspólnych wydarzeń."), "collaborativeLink": MessageLookupByLibrary.simpleMessage("Link do współpracy"), - "collaborativeLinkCreatedFor": m18, + "collaborativeLinkCreatedFor": m20, "collaborator": MessageLookupByLibrary.simpleMessage("Współuczestnik"), "collaboratorsCanAddPhotosAndVideosToTheSharedAlbum": MessageLookupByLibrary.simpleMessage( "Współuczestnicy mogą dodawać zdjęcia i wideo do udostępnionego albumu."), - "collaboratorsSuccessfullyAdded": m19, + "collaboratorsSuccessfullyAdded": m21, "collageLayout": MessageLookupByLibrary.simpleMessage("Układ"), "collageSaved": MessageLookupByLibrary.simpleMessage("Kolaż zapisano w galerii"), @@ -608,7 +608,7 @@ class MessageLookup extends MessageLookupByLibrary { "Czy na pewno chcesz wyłączyć uwierzytelnianie dwustopniowe?"), "confirmAccountDeletion": MessageLookupByLibrary.simpleMessage("Potwierdź usunięcie konta"), - "confirmAddingTrustedContact": m20, + "confirmAddingTrustedContact": m22, "confirmDeletePrompt": MessageLookupByLibrary.simpleMessage( "Tak, chcę trwale usunąć to konto i jego dane ze wszystkich aplikacji."), "confirmPassword": @@ -621,10 +621,10 @@ class MessageLookup extends MessageLookupByLibrary { "Potwierdź klucz odzyskiwania"), "connectToDevice": MessageLookupByLibrary.simpleMessage("Połącz z urządzeniem"), - "contactFamilyAdmin": m21, + "contactFamilyAdmin": m23, "contactSupport": MessageLookupByLibrary.simpleMessage( "Skontaktuj się z pomocą techniczną"), - "contactToManageSubscription": m22, + "contactToManageSubscription": m24, "contacts": MessageLookupByLibrary.simpleMessage("Kontakty"), "contents": MessageLookupByLibrary.simpleMessage("Zawartość"), "continueLabel": MessageLookupByLibrary.simpleMessage("Kontynuuj"), @@ -670,7 +670,7 @@ class MessageLookup extends MessageLookupByLibrary { "currentlyRunning": MessageLookupByLibrary.simpleMessage("aktualnie uruchomiony"), "custom": MessageLookupByLibrary.simpleMessage("Niestandardowy"), - "customEndpoint": m23, + "customEndpoint": m25, "darkTheme": MessageLookupByLibrary.simpleMessage("Ciemny"), "dayToday": MessageLookupByLibrary.simpleMessage("Dzisiaj"), "dayYesterday": MessageLookupByLibrary.simpleMessage("Wczoraj"), @@ -705,11 +705,11 @@ class MessageLookup extends MessageLookupByLibrary { "deleteFromDevice": MessageLookupByLibrary.simpleMessage("Usuń z urządzenia"), "deleteFromEnte": MessageLookupByLibrary.simpleMessage("Usuń z Ente"), - "deleteItemCount": m24, + "deleteItemCount": m26, "deleteLocation": MessageLookupByLibrary.simpleMessage("Usuń lokalizację"), "deletePhotos": MessageLookupByLibrary.simpleMessage("Usuń zdjęcia"), - "deleteProgress": m25, + "deleteProgress": m27, "deleteReason1": MessageLookupByLibrary.simpleMessage( "Brakuje kluczowej funkcji, której potrzebuję"), "deleteReason2": MessageLookupByLibrary.simpleMessage( @@ -749,7 +749,7 @@ class MessageLookup extends MessageLookupByLibrary { "Widzowie mogą nadal robić zrzuty ekranu lub zapisywać kopie zdjęć za pomocą programów trzecich"), "disableDownloadWarningTitle": MessageLookupByLibrary.simpleMessage("Uwaga"), - "disableLinkMessage": m26, + "disableLinkMessage": m28, "disableTwofactor": MessageLookupByLibrary.simpleMessage( "Wyłącz uwierzytelnianie dwustopniowe"), "disablingTwofactorAuthentication": @@ -792,9 +792,9 @@ class MessageLookup extends MessageLookupByLibrary { "downloadFailed": MessageLookupByLibrary.simpleMessage("Pobieranie nie powiodło się"), "downloading": MessageLookupByLibrary.simpleMessage("Pobieranie..."), - "dropSupportEmail": m27, - "duplicateFileCountWithStorageSaved": m28, - "duplicateItemsGroup": m29, + "dropSupportEmail": m29, + "duplicateFileCountWithStorageSaved": m30, + "duplicateItemsGroup": m31, "edit": MessageLookupByLibrary.simpleMessage("Edytuj"), "editLocation": MessageLookupByLibrary.simpleMessage("Edytuj lokalizację"), @@ -807,8 +807,8 @@ class MessageLookup extends MessageLookupByLibrary { "Edycje lokalizacji będą widoczne tylko w Ente"), "eligible": MessageLookupByLibrary.simpleMessage("kwalifikujący się"), "email": MessageLookupByLibrary.simpleMessage("Adres e-mail"), - "emailChangedTo": m30, - "emailNoEnteAccount": m31, + "emailChangedTo": m32, + "emailNoEnteAccount": m33, "emailVerificationToggle": MessageLookupByLibrary.simpleMessage("Weryfikacja e-mail"), "emailYourLogs": @@ -889,7 +889,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Eksportuj swoje dane"), "extraPhotosFound": MessageLookupByLibrary.simpleMessage( "Znaleziono dodatkowe zdjęcia"), - "extraPhotosFoundFor": m32, + "extraPhotosFoundFor": m34, "faceNotClusteredYet": MessageLookupByLibrary.simpleMessage( "Twarz jeszcze nie zgrupowana, prosimy wrócić później"), "faceRecognition": @@ -941,8 +941,8 @@ class MessageLookup extends MessageLookupByLibrary { "fileTypes": MessageLookupByLibrary.simpleMessage("Rodzaje plików"), "fileTypesAndNames": MessageLookupByLibrary.simpleMessage("Typy plików i nazwy"), - "filesBackedUpFromDevice": m33, - "filesBackedUpInAlbum": m34, + "filesBackedUpFromDevice": m35, + "filesBackedUpInAlbum": m36, "filesDeleted": MessageLookupByLibrary.simpleMessage("Pliki usunięto"), "filesSavedToGallery": MessageLookupByLibrary.simpleMessage("Pliki zapisane do galerii"), @@ -958,26 +958,26 @@ class MessageLookup extends MessageLookupByLibrary { "foundFaces": MessageLookupByLibrary.simpleMessage("Znaleziono twarze"), "freeStorageClaimed": MessageLookupByLibrary.simpleMessage( "Bezpłatna pamięć, którą odebrano"), - "freeStorageOnReferralSuccess": m35, + "freeStorageOnReferralSuccess": m4, "freeStorageUsable": MessageLookupByLibrary.simpleMessage("Darmowa pamięć użyteczna"), "freeTrial": MessageLookupByLibrary.simpleMessage("Darmowy okres próbny"), - "freeTrialValidTill": m36, - "freeUpAccessPostDelete": m37, - "freeUpAmount": m38, + "freeTrialValidTill": m37, + "freeUpAccessPostDelete": m38, + "freeUpAmount": m39, "freeUpDeviceSpace": MessageLookupByLibrary.simpleMessage( "Zwolnij miejsce na urządzeniu"), "freeUpDeviceSpaceDesc": MessageLookupByLibrary.simpleMessage( "Oszczędzaj miejsce na urządzeniu poprzez wyczyszczenie plików, które zostały już przesłane."), "freeUpSpace": MessageLookupByLibrary.simpleMessage("Zwolnij miejsce"), - "freeUpSpaceSaving": m39, + "freeUpSpaceSaving": m40, "galleryMemoryLimitInfo": MessageLookupByLibrary.simpleMessage( "W galerii wyświetlane jest do 1000 pamięci"), "general": MessageLookupByLibrary.simpleMessage("Ogólne"), "generatingEncryptionKeys": MessageLookupByLibrary.simpleMessage( "Generowanie kluczy szyfrujących..."), - "genericProgress": m40, + "genericProgress": m41, "goToSettings": MessageLookupByLibrary.simpleMessage("Przejdź do ustawień"), "googlePlayId": @@ -1060,7 +1060,7 @@ class MessageLookup extends MessageLookupByLibrary { "itLooksLikeSomethingWentWrongPleaseRetryAfterSome": MessageLookupByLibrary.simpleMessage( "Wygląda na to, że coś poszło nie tak. Spróbuj ponownie po pewnym czasie. Jeśli błąd będzie się powtarzał, skontaktuj się z naszym zespołem pomocy technicznej."), - "itemCount": m41, + "itemCount": m42, "itemsShowTheNumberOfDaysRemainingBeforePermanentDeletion": MessageLookupByLibrary.simpleMessage( "Elementy pokazują liczbę dni pozostałych przed trwałym usunięciem"), @@ -1084,22 +1084,20 @@ class MessageLookup extends MessageLookupByLibrary { "legacy": MessageLookupByLibrary.simpleMessage("Dziedzictwo"), "legacyAccounts": MessageLookupByLibrary.simpleMessage("Odziedziczone konta"), - "legacyInvite": m42, + "legacyInvite": m43, "legacyPageDesc": MessageLookupByLibrary.simpleMessage( "Dziedzictwo pozwala zaufanym kontaktom na dostęp do Twojego konta w razie Twojej nieobecności."), "legacyPageDesc2": MessageLookupByLibrary.simpleMessage( "Zaufane kontakty mogą rozpocząć odzyskiwanie konta, a jeśli nie zostaną zablokowane w ciągu 30 dni, zresetować Twoje hasło i uzyskać dostęp do Twojego konta."), "light": MessageLookupByLibrary.simpleMessage("Jasny"), "lightTheme": MessageLookupByLibrary.simpleMessage("Jasny"), - "link": MessageLookupByLibrary.simpleMessage("Link"), "linkCopiedToClipboard": MessageLookupByLibrary.simpleMessage("Link skopiowany do schowka"), "linkDeviceLimit": MessageLookupByLibrary.simpleMessage("Limit urządzeń"), - "linkEmail": MessageLookupByLibrary.simpleMessage("Link email"), "linkEnabled": MessageLookupByLibrary.simpleMessage("Aktywny"), "linkExpired": MessageLookupByLibrary.simpleMessage("Wygasł"), - "linkExpiresOn": m43, + "linkExpiresOn": m44, "linkExpiry": MessageLookupByLibrary.simpleMessage("Wygaśnięcie linku"), "linkHasExpired": MessageLookupByLibrary.simpleMessage("Link wygasł"), "linkNeverExpires": MessageLookupByLibrary.simpleMessage("Nigdy"), @@ -1194,7 +1192,7 @@ class MessageLookup extends MessageLookupByLibrary { "maps": MessageLookupByLibrary.simpleMessage("Mapy"), "mastodon": MessageLookupByLibrary.simpleMessage("Mastodon"), "matrix": MessageLookupByLibrary.simpleMessage("Matrix"), - "memoryCount": m3, + "memoryCount": m5, "merchandise": MessageLookupByLibrary.simpleMessage("Sklep"), "mergeWithExisting": MessageLookupByLibrary.simpleMessage("Scal z istniejącym"), @@ -1225,12 +1223,12 @@ class MessageLookup extends MessageLookupByLibrary { "mostRecent": MessageLookupByLibrary.simpleMessage("Od najnowszych"), "mostRelevant": MessageLookupByLibrary.simpleMessage("Najbardziej trafne"), - "moveItem": m44, + "moveItem": m45, "moveToAlbum": MessageLookupByLibrary.simpleMessage("Przenieś do albumu"), "moveToHiddenAlbum": MessageLookupByLibrary.simpleMessage("Przenieś do ukrytego albumu"), - "movedSuccessfullyTo": m45, + "movedSuccessfullyTo": m46, "movedToTrash": MessageLookupByLibrary.simpleMessage("Przeniesiono do kosza"), "movingFilesToAlbum": MessageLookupByLibrary.simpleMessage( @@ -1258,8 +1256,6 @@ class MessageLookup extends MessageLookupByLibrary { "Nie masz żadnych plików na tym urządzeniu, które można usunąć"), "noDuplicates": MessageLookupByLibrary.simpleMessage("✨ Brak duplikatów"), - "noEnteAccountExclamation": - MessageLookupByLibrary.simpleMessage("No Ente account!"), "noExifData": MessageLookupByLibrary.simpleMessage("Brak danych EXIF"), "noFacesFound": MessageLookupByLibrary.simpleMessage("Nie znaleziono twarzy"), @@ -1283,10 +1279,10 @@ class MessageLookup extends MessageLookupByLibrary { "noResults": MessageLookupByLibrary.simpleMessage("Brak wyników"), "noResultsFound": MessageLookupByLibrary.simpleMessage("Nie znaleziono wyników"), - "noSuggestionsForPerson": m46, + "noSuggestionsForPerson": m47, "noSystemLockFound": MessageLookupByLibrary.simpleMessage( "Nie znaleziono blokady systemowej"), - "notPersonLabel": m47, + "notPersonLabel": m48, "nothingSharedWithYouYet": MessageLookupByLibrary.simpleMessage( "Nic Ci jeszcze nie udostępniono"), "nothingToSeeHere": MessageLookupByLibrary.simpleMessage( @@ -1296,7 +1292,7 @@ class MessageLookup extends MessageLookupByLibrary { "onDevice": MessageLookupByLibrary.simpleMessage("Na urządzeniu"), "onEnte": MessageLookupByLibrary.simpleMessage("W ente"), - "onlyFamilyAdminCanChangeCode": m48, + "onlyFamilyAdminCanChangeCode": m49, "onlyThem": MessageLookupByLibrary.simpleMessage("Tylko te"), "oops": MessageLookupByLibrary.simpleMessage("Ups"), "oopsCouldNotSaveEdits": MessageLookupByLibrary.simpleMessage( @@ -1344,7 +1340,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Płatność się nie powiodła"), "paymentFailedMessage": MessageLookupByLibrary.simpleMessage( "Niestety Twoja płatność nie powiodła się. Skontaktuj się z pomocą techniczną, a my Ci pomożemy!"), - "paymentFailedTalkToProvider": m49, + "paymentFailedTalkToProvider": m50, "pendingItems": MessageLookupByLibrary.simpleMessage("Oczekujące elementy"), "pendingSync": @@ -1368,14 +1364,14 @@ class MessageLookup extends MessageLookupByLibrary { "photosAddedByYouWillBeRemovedFromTheAlbum": MessageLookupByLibrary.simpleMessage( "Zdjęcia dodane przez Ciebie zostaną usunięte z albumu"), - "photosCount": m50, + "photosCount": m51, "pickCenterPoint": MessageLookupByLibrary.simpleMessage("Wybierz punkt środkowy"), "pinAlbum": MessageLookupByLibrary.simpleMessage("Przypnij album"), "pinLock": MessageLookupByLibrary.simpleMessage("Blokada PIN"), "playOnTv": MessageLookupByLibrary.simpleMessage( "Odtwórz album na telewizorze"), - "playStoreFreeTrialValidTill": m51, + "playStoreFreeTrialValidTill": m52, "playstoreSubscription": MessageLookupByLibrary.simpleMessage("Subskrypcja PlayStore"), "pleaseCheckYourInternetConnectionAndTryAgain": @@ -1387,14 +1383,14 @@ class MessageLookup extends MessageLookupByLibrary { "pleaseContactSupportIfTheProblemPersists": MessageLookupByLibrary.simpleMessage( "Skontaktuj się z pomocą techniczną, jeśli problem będzie się powtarzał"), - "pleaseEmailUsAt": m52, + "pleaseEmailUsAt": m53, "pleaseGrantPermissions": MessageLookupByLibrary.simpleMessage( "Prosimy przyznać uprawnienia"), "pleaseLoginAgain": MessageLookupByLibrary.simpleMessage("Zaloguj się ponownie"), "pleaseSelectQuickLinksToRemove": MessageLookupByLibrary.simpleMessage( "Prosimy wybrać szybkie linki do usunięcia"), - "pleaseSendTheLogsTo": m53, + "pleaseSendTheLogsTo": m54, "pleaseTryAgain": MessageLookupByLibrary.simpleMessage("Spróbuj ponownie"), "pleaseVerifyTheCodeYouHaveEntered": @@ -1421,7 +1417,7 @@ class MessageLookup extends MessageLookupByLibrary { "privateSharing": MessageLookupByLibrary.simpleMessage("Udostępnianie prywatne"), "proceed": MessageLookupByLibrary.simpleMessage("Kontynuuj"), - "processingImport": m54, + "processingImport": m55, "publicLinkCreated": MessageLookupByLibrary.simpleMessage("Utworzono publiczny link"), "publicLinkEnabled": @@ -1431,7 +1427,7 @@ class MessageLookup extends MessageLookupByLibrary { "raiseTicket": MessageLookupByLibrary.simpleMessage("Zgłoś"), "rateTheApp": MessageLookupByLibrary.simpleMessage("Oceń aplikację"), "rateUs": MessageLookupByLibrary.simpleMessage("Oceń nas"), - "rateUsOnStore": m55, + "rateUsOnStore": m56, "recover": MessageLookupByLibrary.simpleMessage("Odzyskaj"), "recoverAccount": MessageLookupByLibrary.simpleMessage("Odzyskaj konto"), @@ -1440,7 +1436,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Odzyskaj konto"), "recoveryInitiated": MessageLookupByLibrary.simpleMessage("Odzyskiwanie rozpoczęte"), - "recoveryInitiatedDesc": m56, + "recoveryInitiatedDesc": m57, "recoveryKey": MessageLookupByLibrary.simpleMessage("Klucz odzyskiwania"), "recoveryKeyCopiedToClipboard": MessageLookupByLibrary.simpleMessage( @@ -1455,12 +1451,12 @@ class MessageLookup extends MessageLookupByLibrary { "Klucz odzyskiwania zweryfikowany"), "recoveryKeyVerifyReason": MessageLookupByLibrary.simpleMessage( "Twój klucz odzyskiwania jest jedynym sposobem na odzyskanie zdjęć, jeśli zapomnisz hasła. Klucz odzyskiwania można znaleźć w Ustawieniach > Konto.\n\nWprowadź tutaj swój klucz odzyskiwania, aby sprawdzić, czy został zapisany poprawnie."), - "recoveryReady": m57, + "recoveryReady": m58, "recoverySuccessful": MessageLookupByLibrary.simpleMessage("Odzyskano pomyślnie!"), "recoveryWarning": MessageLookupByLibrary.simpleMessage( "Zaufany kontakt próbuje uzyskać dostęp do Twojego konta"), - "recoveryWarningBody": m58, + "recoveryWarningBody": m59, "recreatePasswordBody": MessageLookupByLibrary.simpleMessage( "Obecne urządzenie nie jest wystarczająco wydajne, aby zweryfikować hasło, ale możemy je wygenerować w sposób działający na wszystkich urządzeniach.\n\nZaloguj się przy użyciu klucza odzyskiwania i wygeneruj nowe hasło (jeśli chcesz, możesz ponownie użyć tego samego)."), "recreatePasswordTitle": @@ -1476,7 +1472,7 @@ class MessageLookup extends MessageLookupByLibrary { "1. Przekaż ten kod swoim znajomym"), "referralStep2": MessageLookupByLibrary.simpleMessage("2. Wykupują płatny plan"), - "referralStep3": m59, + "referralStep3": m60, "referrals": MessageLookupByLibrary.simpleMessage("Polecenia"), "referralsAreCurrentlyPaused": MessageLookupByLibrary.simpleMessage( "Wysyłanie poleceń jest obecnie wstrzymane"), @@ -1506,7 +1502,7 @@ class MessageLookup extends MessageLookupByLibrary { "removeLink": MessageLookupByLibrary.simpleMessage("Usuń link"), "removeParticipant": MessageLookupByLibrary.simpleMessage("Usuń użytkownika"), - "removeParticipantBody": m60, + "removeParticipantBody": m61, "removePersonLabel": MessageLookupByLibrary.simpleMessage("Usuń etykietę osoby"), "removePublicLink": @@ -1527,7 +1523,7 @@ class MessageLookup extends MessageLookupByLibrary { "renameFile": MessageLookupByLibrary.simpleMessage("Zmień nazwę pliku"), "renewSubscription": MessageLookupByLibrary.simpleMessage("Odnów subskrypcję"), - "renewsOn": m61, + "renewsOn": m62, "reportABug": MessageLookupByLibrary.simpleMessage("Zgłoś błąd"), "reportBug": MessageLookupByLibrary.simpleMessage("Zgłoś błąd"), "resendEmail": @@ -1605,8 +1601,8 @@ class MessageLookup extends MessageLookupByLibrary { "Zaproś ludzi, a zobaczysz tutaj wszystkie udostępnione przez nich zdjęcia"), "searchPersonsEmptySection": MessageLookupByLibrary.simpleMessage( "Osoby będą wyświetlane tutaj po zakończeniu przetwarzania i synchronizacji"), - "searchResultCount": m62, - "searchSectionsLengthMismatch": m63, + "searchResultCount": m63, + "searchSectionsLengthMismatch": m64, "security": MessageLookupByLibrary.simpleMessage("Bezpieczeństwo"), "seePublicAlbumLinksInApp": MessageLookupByLibrary.simpleMessage( "Zobacz publiczne linki do albumów w aplikacji"), @@ -1639,8 +1635,8 @@ class MessageLookup extends MessageLookupByLibrary { "selectedItemsWillBeDeletedFromAllAlbumsAndMoved": MessageLookupByLibrary.simpleMessage( "Wybrane elementy zostaną usunięte ze wszystkich albumów i przeniesione do kosza."), - "selectedPhotos": m4, - "selectedPhotosWithYours": m64, + "selectedPhotos": m6, + "selectedPhotosWithYours": m65, "send": MessageLookupByLibrary.simpleMessage("Wyślij"), "sendEmail": MessageLookupByLibrary.simpleMessage("Wyślij e-mail"), "sendInvite": @@ -1669,16 +1665,16 @@ class MessageLookup extends MessageLookupByLibrary { "shareAnAlbumNow": MessageLookupByLibrary.simpleMessage("Udostępnij teraz album"), "shareLink": MessageLookupByLibrary.simpleMessage("Udostępnij link"), - "shareMyVerificationID": m65, + "shareMyVerificationID": m66, "shareOnlyWithThePeopleYouWant": MessageLookupByLibrary.simpleMessage( "Udostępnij tylko ludziom, którym chcesz"), - "shareTextConfirmOthersVerificationID": m5, + "shareTextConfirmOthersVerificationID": m7, "shareTextRecommendUsingEnte": MessageLookupByLibrary.simpleMessage( "Pobierz Ente, abyśmy mogli łatwo udostępniać zdjęcia i wideo w oryginalnej jakości\n\nhttps://ente.io"), - "shareTextReferralCode": m66, + "shareTextReferralCode": m67, "shareWithNonenteUsers": MessageLookupByLibrary.simpleMessage( "Udostępnij użytkownikom bez konta Ente"), - "shareWithPeopleSectionTitle": m67, + "shareWithPeopleSectionTitle": m68, "shareYourFirstAlbum": MessageLookupByLibrary.simpleMessage( "Udostępnij swój pierwszy album"), "sharedAlbumSectionDescription": MessageLookupByLibrary.simpleMessage( @@ -1691,7 +1687,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Nowe udostępnione zdjęcia"), "sharedPhotoNotificationsExplanation": MessageLookupByLibrary.simpleMessage( "Otrzymuj powiadomienia, gdy ktoś doda zdjęcie do udostępnionego albumu, którego jesteś częścią"), - "sharedWith": m68, + "sharedWith": m69, "sharedWithMe": MessageLookupByLibrary.simpleMessage("Udostępnione ze mną"), "sharedWithYou": @@ -1708,11 +1704,11 @@ class MessageLookup extends MessageLookupByLibrary { "Wyloguj z pozostałych urządzeń"), "signUpTerms": MessageLookupByLibrary.simpleMessage( "Akceptuję warunki korzystania z usługi i politykę prywatności"), - "singleFileDeleteFromDevice": m69, + "singleFileDeleteFromDevice": m70, "singleFileDeleteHighlight": MessageLookupByLibrary.simpleMessage( "To zostanie usunięte ze wszystkich albumów."), - "singleFileInBothLocalAndRemote": m70, - "singleFileInRemoteOnly": m71, + "singleFileInBothLocalAndRemote": m71, + "singleFileInRemoteOnly": m72, "skip": MessageLookupByLibrary.simpleMessage("Pomiń"), "social": MessageLookupByLibrary.simpleMessage("Społeczność"), "someItemsAreInBothEnteAndYourDevice": @@ -1763,10 +1759,10 @@ class MessageLookup extends MessageLookupByLibrary { "storageInGB": m1, "storageLimitExceeded": MessageLookupByLibrary.simpleMessage("Przekroczono limit pamięci"), - "storageUsageInfo": m72, + "storageUsageInfo": m73, "strongStrength": MessageLookupByLibrary.simpleMessage("Silne"), - "subAlreadyLinkedErrMessage": m73, - "subWillBeCancelledOn": m74, + "subAlreadyLinkedErrMessage": m74, + "subWillBeCancelledOn": m75, "subscribe": MessageLookupByLibrary.simpleMessage("Subskrybuj"), "subscribeToEnableSharing": MessageLookupByLibrary.simpleMessage( "Potrzebujesz aktywnej płatnej subskrypcji, aby włączyć udostępnianie."), @@ -1783,7 +1779,7 @@ class MessageLookup extends MessageLookupByLibrary { "suggestFeatures": MessageLookupByLibrary.simpleMessage("Zaproponuj funkcje"), "support": MessageLookupByLibrary.simpleMessage("Wsparcie techniczne"), - "syncProgress": m75, + "syncProgress": m76, "syncStopped": MessageLookupByLibrary.simpleMessage("Synchronizacja zatrzymana"), "syncing": MessageLookupByLibrary.simpleMessage("Synchronizowanie..."), @@ -1796,7 +1792,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Naciśnij, aby odblokować"), "tapToUpload": MessageLookupByLibrary.simpleMessage("Naciśnij, aby przesłać"), - "tapToUploadIsIgnoredDue": m76, + "tapToUploadIsIgnoredDue": m77, "tempErrorContactSupportIfPersists": MessageLookupByLibrary.simpleMessage( "Wygląda na to, że coś poszło nie tak. Spróbuj ponownie po pewnym czasie. Jeśli błąd będzie się powtarzał, skontaktuj się z naszym zespołem pomocy technicznej."), "terminate": MessageLookupByLibrary.simpleMessage("Zakończ"), @@ -1820,7 +1816,7 @@ class MessageLookup extends MessageLookupByLibrary { "theseItemsWillBeDeletedFromYourDevice": MessageLookupByLibrary.simpleMessage( "Te elementy zostaną usunięte z Twojego urządzenia."), - "theyAlsoGetXGb": m77, + "theyAlsoGetXGb": m8, "theyWillBeDeletedFromAllAlbums": MessageLookupByLibrary.simpleMessage( "Zostaną one usunięte ze wszystkich albumów."), "thisActionCannotBeUndone": MessageLookupByLibrary.simpleMessage( diff --git a/mobile/lib/generated/intl/messages_pt.dart b/mobile/lib/generated/intl/messages_pt.dart index 9e80591dc0c..290e106377d 100644 --- a/mobile/lib/generated/intl/messages_pt.dart +++ b/mobile/lib/generated/intl/messages_pt.dart @@ -20,216 +20,216 @@ typedef String MessageIfAbsent(String messageStr, List args); class MessageLookup extends MessageLookupByLibrary { String get localeName => 'pt'; - static String m6(count) => + static String m9(count) => "${Intl.plural(count, one: 'Adicionar colaborador', other: 'Adicionar colaboradores')}"; - static String m7(count) => + static String m10(count) => "${Intl.plural(count, one: 'Adicionar item', other: 'Adicionar itens')}"; - static String m8(storageAmount, endDate) => + static String m11(storageAmount, endDate) => "Seu complemento ${storageAmount} é válido até ${endDate}"; - static String m9(count) => + static String m12(count) => "${Intl.plural(count, one: 'Adicionar visualizador', other: 'Adicionar visualizadores')}"; - static String m10(emailOrName) => "Adicionado por ${emailOrName}"; + static String m13(emailOrName) => "Adicionado por ${emailOrName}"; - static String m11(albumName) => "Adicionado com sucesso a ${albumName}"; + static String m14(albumName) => "Adicionado com sucesso a ${albumName}"; - static String m12(count) => + static String m15(count) => "${Intl.plural(count, zero: 'Nenhum participante', one: '1 participante', other: '${count} participantes')}"; - static String m13(versionValue) => "Versão: ${versionValue}"; + static String m16(versionValue) => "Versão: ${versionValue}"; - static String m14(freeAmount, storageUnit) => + static String m17(freeAmount, storageUnit) => "${freeAmount} ${storageUnit} livre"; - static String m15(paymentProvider) => + static String m18(paymentProvider) => "Primeiramente cancele sua assinatura existente do ${paymentProvider}"; - static String m16(user) => + static String m3(user) => "${user} Não poderá adicionar mais fotos a este álbum\n\nEles ainda conseguirão remover fotos existentes adicionadas por eles"; - static String m17(isFamilyMember, storageAmountInGb) => + static String m19(isFamilyMember, storageAmountInGb) => "${Intl.select(isFamilyMember, { 'true': 'Sua família reinvidicou ${storageAmountInGb} GB até então', 'false': 'Você reinvindicou ${storageAmountInGb} GB até então', 'other': 'Você reinvindicou ${storageAmountInGb} GB até então!', })}"; - static String m18(albumName) => "Link colaborativo criado para ${albumName}"; + static String m20(albumName) => "Link colaborativo criado para ${albumName}"; - static String m19(count) => + static String m21(count) => "${Intl.plural(count, zero: 'Adicionado 0 colaboradores', one: 'Adicionado 1 colaborador', other: 'Adicionado ${count} colaboradores')}"; - static String m20(email, numOfDays) => + static String m22(email, numOfDays) => "Você está prestes a adicionar ${email} como contato confiável. Eles poderão recuperar sua conta se você estiver ausente por ${numOfDays} dias."; - static String m21(familyAdminEmail) => + static String m23(familyAdminEmail) => "Entre em contato com ${familyAdminEmail} para gerenciar sua assinatura"; - static String m22(provider) => + static String m24(provider) => "Entre em contato conosco em support@ente.io para gerenciar sua assinatura ${provider}."; - static String m23(endpoint) => "Conectado à ${endpoint}"; + static String m25(endpoint) => "Conectado à ${endpoint}"; - static String m24(count) => + static String m26(count) => "${Intl.plural(count, one: 'Excluir ${count} item', other: 'Excluir ${count} itens')}"; - static String m25(currentlyDeleting, totalCount) => + static String m27(currentlyDeleting, totalCount) => "Excluindo ${currentlyDeleting} / ${totalCount}"; - static String m26(albumName) => + static String m28(albumName) => "Isso removerá o link público para acessar \"${albumName}\"."; - static String m27(supportEmail) => + static String m29(supportEmail) => "Envie um e-mail para ${supportEmail} a partir do seu endereço de e-mail registrado"; - static String m28(count, storageSaved) => + static String m30(count, storageSaved) => "Você limpou ${Intl.plural(count, one: '${count} arquivo duplicado', other: '${count} arquivos duplicados')}, salvando (${storageSaved}!)"; - static String m29(count, formattedSize) => + static String m31(count, formattedSize) => "${count} arquivos, ${formattedSize} cada"; - static String m30(newEmail) => "E-mail alterado para ${newEmail}"; + static String m32(newEmail) => "E-mail alterado para ${newEmail}"; - static String m31(email) => + static String m33(email) => "${email} não tem uma conta Ente.\n\nEnvie-os um convite para compartilhar fotos."; - static String m32(text) => "Fotos adicionais encontradas para ${text}"; + static String m34(text) => "Fotos adicionais encontradas para ${text}"; - static String m33(count, formattedNumber) => + static String m35(count, formattedNumber) => "${Intl.plural(count, one: '1 arquivo', other: '${formattedNumber} arquivos')} deste dispositivo foi copiado com segurança"; - static String m34(count, formattedNumber) => + static String m36(count, formattedNumber) => "${Intl.plural(count, one: '1 arquivo', other: '${formattedNumber} arquivos')} deste álbum foi copiado com segurança"; - static String m35(storageAmountInGB) => + static String m4(storageAmountInGB) => "${storageAmountInGB} GB cada vez que alguém se inscrever a um plano pago e aplicar seu código"; - static String m36(endDate) => "A avaliação grátis acaba em ${endDate}"; + static String m37(endDate) => "A avaliação grátis acaba em ${endDate}"; - static String m37(count) => + static String m38(count) => "Você ainda pode acessá-${Intl.plural(count, one: 'lo', other: 'los')} no Ente, contanto que você tenha uma assinatura ativa"; - static String m38(sizeInMBorGB) => "Liberar ${sizeInMBorGB}"; + static String m39(sizeInMBorGB) => "Liberar ${sizeInMBorGB}"; - static String m39(count, formattedSize) => + static String m40(count, formattedSize) => "${Intl.plural(count, one: 'Ele pode ser excluído do dispositivo para liberar ${formattedSize}', other: 'Eles podem ser excluídos do dispositivo para liberar ${formattedSize}')}"; - static String m40(currentlyProcessing, totalCount) => + static String m41(currentlyProcessing, totalCount) => "Processando ${currentlyProcessing} / ${totalCount}"; - static String m41(count) => + static String m42(count) => "${Intl.plural(count, one: '${count} item', other: '${count} itens')}"; - static String m42(email) => + static String m43(email) => "${email} convidou você para ser um contato confiável"; - static String m43(expiryTime) => "O link expirará em ${expiryTime}"; + static String m44(expiryTime) => "O link expirará em ${expiryTime}"; - static String m3(count, formattedCount) => + static String m5(count, formattedCount) => "${Intl.plural(count, zero: 'sem memórias', one: '${formattedCount} memória', other: '${formattedCount} memórias')}"; - static String m44(count) => + static String m45(count) => "${Intl.plural(count, one: 'Mover item', other: 'Mover itens')}"; - static String m45(albumName) => "Movido com sucesso para ${albumName}"; + static String m46(albumName) => "Movido com sucesso para ${albumName}"; - static String m46(personName) => "Sem sugestões para ${personName}"; + static String m47(personName) => "Sem sugestões para ${personName}"; - static String m47(name) => "Não é ${name}?"; + static String m48(name) => "Não é ${name}?"; - static String m48(familyAdminEmail) => + static String m49(familyAdminEmail) => "Entre em contato com ${familyAdminEmail} para alterar o seu código."; static String m0(passwordStrengthValue) => "Força da senha: ${passwordStrengthValue}"; - static String m49(providerName) => + static String m50(providerName) => "Fale com o suporte ${providerName} se você foi cobrado"; - static String m50(count) => + static String m51(count) => "${Intl.plural(count, zero: '0 fotos', one: '1 foto', other: '${count} fotos')}"; - static String m51(endDate) => + static String m52(endDate) => "Avaliação grátis válida até ${endDate}.\nVocê pode alterar para um plano pago depois."; - static String m52(toEmail) => "Envie-nos um e-mail para ${toEmail}"; + static String m53(toEmail) => "Envie-nos um e-mail para ${toEmail}"; - static String m53(toEmail) => "Envie os registros para \n${toEmail}"; + static String m54(toEmail) => "Envie os registros para \n${toEmail}"; - static String m54(folderName) => "Processando ${folderName}..."; + static String m55(folderName) => "Processando ${folderName}..."; - static String m55(storeName) => "Avalie-nos no ${storeName}"; + static String m56(storeName) => "Avalie-nos no ${storeName}"; - static String m56(days, email) => + static String m57(days, email) => "Você poderá acessar a conta após ${days} dias. Uma notificação será enviada para ${email}."; - static String m57(email) => + static String m58(email) => "Você pode recuperar a conta com e-mail ${email} por definir uma nova senha."; - static String m58(email) => "${email} está tentando recuperar sua conta."; + static String m59(email) => "${email} está tentando recuperar sua conta."; - static String m59(storageInGB) => + static String m60(storageInGB) => "3. Ambos os dois ganham ${storageInGB} GB* grátis"; - static String m60(userEmail) => + static String m61(userEmail) => "${userEmail} será removido deste álbum compartilhado\n\nQuaisquer fotos adicionadas por eles também serão removidas do álbum"; - static String m61(endDate) => "Renovação de assinatura em ${endDate}"; + static String m62(endDate) => "Renovação de assinatura em ${endDate}"; - static String m62(count) => + static String m63(count) => "${Intl.plural(count, one: '${count} resultado encontrado', other: '${count} resultados encontrados')}"; - static String m63(snapshotLength, searchLength) => + static String m64(snapshotLength, searchLength) => "Incompatibilidade de comprimento de seções: ${snapshotLength} != ${searchLength}"; - static String m4(count) => "${count} selecionado(s)"; + static String m6(count) => "${count} selecionado(s)"; - static String m64(count, yourCount) => + static String m65(count, yourCount) => "${count} selecionado(s) (${yourCount} seus)"; - static String m65(verificationID) => + static String m66(verificationID) => "Aqui está meu ID de verificação para o ente.io: ${verificationID}"; - static String m5(verificationID) => + static String m7(verificationID) => "Ei, você pode confirmar se este ID de verificação do ente.io é seu?: ${verificationID}"; - static String m66(referralCode, referralStorageInGB) => + static String m67(referralCode, referralStorageInGB) => "Código de referência do Ente: ${referralCode} \n\nAplique-o em Configurações → Geral → Referências para obter ${referralStorageInGB} GB grátis após a sua inscrição num plano pago\n\nhttps://ente.io"; - static String m67(numberOfPeople) => + static String m68(numberOfPeople) => "${Intl.plural(numberOfPeople, zero: 'Compartilhe com pessoas específicas', one: 'Compartilhado com 1 pessoa', other: 'Compartilhado com ${numberOfPeople} pessoas')}"; - static String m68(emailIDs) => "Compartilhado com ${emailIDs}"; + static String m69(emailIDs) => "Compartilhado com ${emailIDs}"; - static String m69(fileType) => + static String m70(fileType) => "Este ${fileType} será excluído do dispositivo."; - static String m70(fileType) => + static String m71(fileType) => "Este ${fileType} está no Ente e em seu dispositivo."; - static String m71(fileType) => "Este ${fileType} será excluído do Ente."; + static String m72(fileType) => "Este ${fileType} será excluído do Ente."; static String m1(storageAmountInGB) => "${storageAmountInGB} GB"; - static String m72( + static String m73( usedAmount, usedStorageUnit, totalAmount, totalStorageUnit) => "${usedAmount} ${usedStorageUnit} de ${totalAmount} ${totalStorageUnit} usado"; - static String m73(id) => + static String m74(id) => "Seu ${id} já está vinculado a outra conta Ente. Se você gostaria de usar seu ${id} com esta conta, entre em contato conosco\""; - static String m74(endDate) => "Sua assinatura será cancelada em ${endDate}"; + static String m75(endDate) => "Sua assinatura será cancelada em ${endDate}"; - static String m75(completed, total) => + static String m76(completed, total) => "${completed}/${total} memórias preservadas"; - static String m76(ignoreReason) => + static String m77(ignoreReason) => "Toque para enviar, atualmente o envio é ignorado devido a ${ignoreReason}"; - static String m77(storageAmountInGB) => + static String m8(storageAmountInGB) => "Eles também recebem ${storageAmountInGB} GB"; static String m78(email) => "Este é o ID de verificação de ${email}"; @@ -285,11 +285,11 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Adicionar um novo e-mail"), "addCollaborator": MessageLookupByLibrary.simpleMessage("Adicionar colaborador"), - "addCollaborators": m6, + "addCollaborators": m9, "addFiles": MessageLookupByLibrary.simpleMessage("Adicionar arquivos"), "addFromDevice": MessageLookupByLibrary.simpleMessage("Adicionar do dispositivo"), - "addItem": m7, + "addItem": m10, "addLocation": MessageLookupByLibrary.simpleMessage("Adicionar localização"), "addLocationButton": MessageLookupByLibrary.simpleMessage("Adicionar"), @@ -302,7 +302,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Adicionar nova pessoa"), "addOnPageSubtitle": MessageLookupByLibrary.simpleMessage("Detalhes dos complementos"), - "addOnValidTill": m8, + "addOnValidTill": m11, "addOns": MessageLookupByLibrary.simpleMessage("Complementos"), "addPhotos": MessageLookupByLibrary.simpleMessage("Adicionar fotos"), "addSelected": @@ -316,12 +316,12 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Adicionar contato confiável"), "addViewer": MessageLookupByLibrary.simpleMessage("Adicionar visualizador"), - "addViewers": m9, + "addViewers": m12, "addYourPhotosNow": MessageLookupByLibrary.simpleMessage("Adicione suas fotos agora"), "addedAs": MessageLookupByLibrary.simpleMessage("Adicionado como"), - "addedBy": m10, - "addedSuccessfullyTo": m11, + "addedBy": m13, + "addedSuccessfullyTo": m14, "addingToFavorites": MessageLookupByLibrary.simpleMessage( "Adicionando aos favoritos..."), "advanced": MessageLookupByLibrary.simpleMessage("Avançado"), @@ -332,7 +332,7 @@ class MessageLookup extends MessageLookupByLibrary { "after1Week": MessageLookupByLibrary.simpleMessage("Após 1 semana"), "after1Year": MessageLookupByLibrary.simpleMessage("Após 1 ano"), "albumOwner": MessageLookupByLibrary.simpleMessage("Proprietário"), - "albumParticipantsCount": m12, + "albumParticipantsCount": m15, "albumTitle": MessageLookupByLibrary.simpleMessage("Título do álbum"), "albumUpdated": MessageLookupByLibrary.simpleMessage("Álbum atualizado"), @@ -380,7 +380,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Bloqueio do aplicativo"), "appLockDescriptions": MessageLookupByLibrary.simpleMessage( "Escolha entre a tela de bloqueio padrão do seu dispositivo e uma tela de bloqueio personalizada com PIN ou senha."), - "appVersion": m13, + "appVersion": m16, "appleId": MessageLookupByLibrary.simpleMessage("ID da Apple"), "apply": MessageLookupByLibrary.simpleMessage("Aplicar"), "applyCodeTitle": @@ -463,7 +463,7 @@ class MessageLookup extends MessageLookupByLibrary { "autoPairDesc": MessageLookupByLibrary.simpleMessage( "O pareamento automático só funciona com dispositivos que suportam o Chromecast."), "available": MessageLookupByLibrary.simpleMessage("Disponível"), - "availableStorageSpace": m14, + "availableStorageSpace": m17, "backedUpFolders": MessageLookupByLibrary.simpleMessage( "Pastas copiadas com segurança"), "backup": MessageLookupByLibrary.simpleMessage("Cópia de segurança"), @@ -505,10 +505,10 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Cancelar recuperação"), "cancelAccountRecoveryBody": MessageLookupByLibrary.simpleMessage( "Deseja mesmo cancelar a recuperação de conta?"), - "cancelOtherSubscription": m15, + "cancelOtherSubscription": m18, "cancelSubscription": MessageLookupByLibrary.simpleMessage("Cancelar assinatura"), - "cannotAddMorePhotosAfterBecomingViewer": m16, + "cannotAddMorePhotosAfterBecomingViewer": m3, "cannotDeleteSharedFiles": MessageLookupByLibrary.simpleMessage( "Não é possível excluir arquivos compartilhados"), "castAlbum": MessageLookupByLibrary.simpleMessage("Transferir álbum"), @@ -555,7 +555,7 @@ class MessageLookup extends MessageLookupByLibrary { "Reivindicar armazenamento grátis"), "claimMore": MessageLookupByLibrary.simpleMessage("Reivindique mais!"), "claimed": MessageLookupByLibrary.simpleMessage("Reivindicado"), - "claimedStorageSoFar": m17, + "claimedStorageSoFar": m19, "cleanUncategorized": MessageLookupByLibrary.simpleMessage("Limpar não categorizado"), "cleanUncategorizedDescription": MessageLookupByLibrary.simpleMessage( @@ -584,12 +584,12 @@ class MessageLookup extends MessageLookupByLibrary { "Crie um link para permitir que as pessoas adicionem e vejam fotos no seu álbum compartilhado sem a necessidade do aplicativo ou uma conta Ente. Ótimo para colecionar fotos de eventos."), "collaborativeLink": MessageLookupByLibrary.simpleMessage("Link colaborativo"), - "collaborativeLinkCreatedFor": m18, + "collaborativeLinkCreatedFor": m20, "collaborator": MessageLookupByLibrary.simpleMessage("Colaborador"), "collaboratorsCanAddPhotosAndVideosToTheSharedAlbum": MessageLookupByLibrary.simpleMessage( "Os colaboradores podem adicionar fotos e vídeos ao álbum compartilhado."), - "collaboratorsSuccessfullyAdded": m19, + "collaboratorsSuccessfullyAdded": m21, "collageLayout": MessageLookupByLibrary.simpleMessage("Layout"), "collageSaved": MessageLookupByLibrary.simpleMessage("Colagem salva na galeria"), @@ -606,7 +606,7 @@ class MessageLookup extends MessageLookupByLibrary { "Você tem certeza que queira desativar a autenticação de dois fatores?"), "confirmAccountDeletion": MessageLookupByLibrary.simpleMessage("Confirmar exclusão da conta"), - "confirmAddingTrustedContact": m20, + "confirmAddingTrustedContact": m22, "confirmDeletePrompt": MessageLookupByLibrary.simpleMessage( "Sim, eu quero permanentemente excluir esta conta e os dados em todos os aplicativos."), "confirmPassword": @@ -619,10 +619,10 @@ class MessageLookup extends MessageLookupByLibrary { "Confirme sua chave de recuperação"), "connectToDevice": MessageLookupByLibrary.simpleMessage("Conectar ao dispositivo"), - "contactFamilyAdmin": m21, + "contactFamilyAdmin": m23, "contactSupport": MessageLookupByLibrary.simpleMessage("Contatar suporte"), - "contactToManageSubscription": m22, + "contactToManageSubscription": m24, "contacts": MessageLookupByLibrary.simpleMessage("Contatos"), "contents": MessageLookupByLibrary.simpleMessage("Conteúdos"), "continueLabel": MessageLookupByLibrary.simpleMessage("Continuar"), @@ -667,7 +667,7 @@ class MessageLookup extends MessageLookupByLibrary { "currentlyRunning": MessageLookupByLibrary.simpleMessage("Atualmente executando"), "custom": MessageLookupByLibrary.simpleMessage("Personalizado"), - "customEndpoint": m23, + "customEndpoint": m25, "darkTheme": MessageLookupByLibrary.simpleMessage("Escuro"), "dayToday": MessageLookupByLibrary.simpleMessage("Hoje"), "dayYesterday": MessageLookupByLibrary.simpleMessage("Ontem"), @@ -705,11 +705,11 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Excluir do dispositivo"), "deleteFromEnte": MessageLookupByLibrary.simpleMessage("Excluir do Ente"), - "deleteItemCount": m24, + "deleteItemCount": m26, "deleteLocation": MessageLookupByLibrary.simpleMessage("Excluir localização"), "deletePhotos": MessageLookupByLibrary.simpleMessage("Excluir fotos"), - "deleteProgress": m25, + "deleteProgress": m27, "deleteReason1": MessageLookupByLibrary.simpleMessage( "Está faltando um recurso-chave que eu preciso"), "deleteReason2": MessageLookupByLibrary.simpleMessage( @@ -750,7 +750,7 @@ class MessageLookup extends MessageLookupByLibrary { "Os visualizadores podem fazer capturas de tela ou salvar uma cópia de suas fotos usando ferramentas externas"), "disableDownloadWarningTitle": MessageLookupByLibrary.simpleMessage("Por favor, saiba que"), - "disableLinkMessage": m26, + "disableLinkMessage": m28, "disableTwofactor": MessageLookupByLibrary.simpleMessage( "Desativar autenticação de dois fatores"), "disablingTwofactorAuthentication": @@ -793,9 +793,9 @@ class MessageLookup extends MessageLookupByLibrary { "downloadFailed": MessageLookupByLibrary.simpleMessage("Falhou ao baixar"), "downloading": MessageLookupByLibrary.simpleMessage("Baixando..."), - "dropSupportEmail": m27, - "duplicateFileCountWithStorageSaved": m28, - "duplicateItemsGroup": m29, + "dropSupportEmail": m29, + "duplicateFileCountWithStorageSaved": m30, + "duplicateItemsGroup": m31, "edit": MessageLookupByLibrary.simpleMessage("Editar"), "editLocation": MessageLookupByLibrary.simpleMessage("Editar localização"), @@ -810,8 +810,8 @@ class MessageLookup extends MessageLookupByLibrary { "email": MessageLookupByLibrary.simpleMessage("E-mail"), "emailAlreadyRegistered": MessageLookupByLibrary.simpleMessage("E-mail já registrado."), - "emailChangedTo": m30, - "emailNoEnteAccount": m31, + "emailChangedTo": m32, + "emailNoEnteAccount": m33, "emailNotRegistered": MessageLookupByLibrary.simpleMessage("E-mail não registrado."), "emailVerificationToggle": @@ -896,7 +896,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Exportar dados"), "extraPhotosFound": MessageLookupByLibrary.simpleMessage( "Fotos adicionais encontradas"), - "extraPhotosFoundFor": m32, + "extraPhotosFoundFor": m34, "faceNotClusteredYet": MessageLookupByLibrary.simpleMessage( "Rosto não agrupado ainda, volte aqui mais tarde"), "faceRecognition": @@ -947,8 +947,8 @@ class MessageLookup extends MessageLookupByLibrary { "fileTypes": MessageLookupByLibrary.simpleMessage("Tipos de arquivo"), "fileTypesAndNames": MessageLookupByLibrary.simpleMessage("Tipos de arquivo e nomes"), - "filesBackedUpFromDevice": m33, - "filesBackedUpInAlbum": m34, + "filesBackedUpFromDevice": m35, + "filesBackedUpInAlbum": m36, "filesDeleted": MessageLookupByLibrary.simpleMessage("Arquivos excluídos"), "filesSavedToGallery": @@ -966,26 +966,26 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Rostos encontrados"), "freeStorageClaimed": MessageLookupByLibrary.simpleMessage( "Armazenamento grátis reivindicado"), - "freeStorageOnReferralSuccess": m35, + "freeStorageOnReferralSuccess": m4, "freeStorageUsable": MessageLookupByLibrary.simpleMessage("Armazenamento disponível"), "freeTrial": MessageLookupByLibrary.simpleMessage("Avaliação grátis"), - "freeTrialValidTill": m36, - "freeUpAccessPostDelete": m37, - "freeUpAmount": m38, + "freeTrialValidTill": m37, + "freeUpAccessPostDelete": m38, + "freeUpAmount": m39, "freeUpDeviceSpace": MessageLookupByLibrary.simpleMessage( "Liberar espaço no dispositivo"), "freeUpDeviceSpaceDesc": MessageLookupByLibrary.simpleMessage( "Economize espaço em seu dispositivo por limpar arquivos já salvos com segurança."), "freeUpSpace": MessageLookupByLibrary.simpleMessage("Liberar espaço"), - "freeUpSpaceSaving": m39, + "freeUpSpaceSaving": m40, "gallery": MessageLookupByLibrary.simpleMessage("Galeria"), "galleryMemoryLimitInfo": MessageLookupByLibrary.simpleMessage( "Até 1.000 memórias exibidas na galeria"), "general": MessageLookupByLibrary.simpleMessage("Geral"), "generatingEncryptionKeys": MessageLookupByLibrary.simpleMessage( "Gerando chaves de criptografia..."), - "genericProgress": m40, + "genericProgress": m41, "goToSettings": MessageLookupByLibrary.simpleMessage("Ir às opções"), "googlePlayId": MessageLookupByLibrary.simpleMessage("ID do Google Play"), @@ -1068,7 +1068,7 @@ class MessageLookup extends MessageLookupByLibrary { "itLooksLikeSomethingWentWrongPleaseRetryAfterSome": MessageLookupByLibrary.simpleMessage( "Parece que algo deu errado. Tente novamente mais tarde. Caso o erro persistir, por favor, entre em contato com nossa equipe."), - "itemCount": m41, + "itemCount": m42, "itemsShowTheNumberOfDaysRemainingBeforePermanentDeletion": MessageLookupByLibrary.simpleMessage( "Os itens exibem o número de dias restantes antes da exclusão permanente"), @@ -1098,22 +1098,22 @@ class MessageLookup extends MessageLookupByLibrary { "left": MessageLookupByLibrary.simpleMessage("Esquerda"), "legacy": MessageLookupByLibrary.simpleMessage("Legado"), "legacyAccounts": MessageLookupByLibrary.simpleMessage("Contas legado"), - "legacyInvite": m42, + "legacyInvite": m43, "legacyPageDesc": MessageLookupByLibrary.simpleMessage( "O legado permite que contatos confiáveis acessem sua conta em sua ausência."), "legacyPageDesc2": MessageLookupByLibrary.simpleMessage( "Contatos confiáveis podem iniciar recuperação de conta, e se não for cancelado dentro de 30 dias, redefina sua senha e acesse sua conta."), "light": MessageLookupByLibrary.simpleMessage("Brilho"), "lightTheme": MessageLookupByLibrary.simpleMessage("Claro"), - "link": MessageLookupByLibrary.simpleMessage("Link"), + "link": MessageLookupByLibrary.simpleMessage("Vincular"), "linkCopiedToClipboard": MessageLookupByLibrary.simpleMessage( "Link copiado para a área de transferência"), "linkDeviceLimit": MessageLookupByLibrary.simpleMessage("Limite do dispositivo"), - "linkEmail": MessageLookupByLibrary.simpleMessage("Link email"), + "linkEmail": MessageLookupByLibrary.simpleMessage("Vincular e-mail"), "linkEnabled": MessageLookupByLibrary.simpleMessage("Ativado"), "linkExpired": MessageLookupByLibrary.simpleMessage("Expirado"), - "linkExpiresOn": m43, + "linkExpiresOn": m44, "linkExpiry": MessageLookupByLibrary.simpleMessage("Expiração do link"), "linkHasExpired": MessageLookupByLibrary.simpleMessage("O link expirou"), @@ -1207,7 +1207,7 @@ class MessageLookup extends MessageLookupByLibrary { "maps": MessageLookupByLibrary.simpleMessage("Mapas"), "mastodon": MessageLookupByLibrary.simpleMessage("Mastodon"), "matrix": MessageLookupByLibrary.simpleMessage("Matrix"), - "memoryCount": m3, + "memoryCount": m5, "merchandise": MessageLookupByLibrary.simpleMessage("Produtos"), "mergeWithExisting": MessageLookupByLibrary.simpleMessage("Juntar com o existente"), @@ -1236,12 +1236,12 @@ class MessageLookup extends MessageLookupByLibrary { "moreDetails": MessageLookupByLibrary.simpleMessage("Mais detalhes"), "mostRecent": MessageLookupByLibrary.simpleMessage("Mais recente"), "mostRelevant": MessageLookupByLibrary.simpleMessage("Mais relevante"), - "moveItem": m44, + "moveItem": m45, "moveToAlbum": MessageLookupByLibrary.simpleMessage("Mover para o álbum"), "moveToHiddenAlbum": MessageLookupByLibrary.simpleMessage("Mover ao álbum oculto"), - "movedSuccessfullyTo": m45, + "movedSuccessfullyTo": m46, "movedToTrash": MessageLookupByLibrary.simpleMessage("Movido para a lixeira"), "movingFilesToAlbum": MessageLookupByLibrary.simpleMessage( @@ -1270,7 +1270,7 @@ class MessageLookup extends MessageLookupByLibrary { "noDuplicates": MessageLookupByLibrary.simpleMessage("✨ Sem duplicatas"), "noEnteAccountExclamation": - MessageLookupByLibrary.simpleMessage("No Ente account!"), + MessageLookupByLibrary.simpleMessage("Nenhuma conta Ente!"), "noExifData": MessageLookupByLibrary.simpleMessage("Sem dados EXIF"), "noFacesFound": MessageLookupByLibrary.simpleMessage("Nenhum rosto encontrado"), @@ -1294,10 +1294,10 @@ class MessageLookup extends MessageLookupByLibrary { "noResults": MessageLookupByLibrary.simpleMessage("Nenhum resultado"), "noResultsFound": MessageLookupByLibrary.simpleMessage("Nenhum resultado encontrado"), - "noSuggestionsForPerson": m46, + "noSuggestionsForPerson": m47, "noSystemLockFound": MessageLookupByLibrary.simpleMessage( "Nenhum bloqueio do sistema encontrado"), - "notPersonLabel": m47, + "notPersonLabel": m48, "nothingSharedWithYouYet": MessageLookupByLibrary.simpleMessage( "Nada compartilhado com você ainda"), "nothingToSeeHere": @@ -1307,7 +1307,7 @@ class MessageLookup extends MessageLookupByLibrary { "onDevice": MessageLookupByLibrary.simpleMessage("No dispositivo"), "onEnte": MessageLookupByLibrary.simpleMessage( "No ente"), - "onlyFamilyAdminCanChangeCode": m48, + "onlyFamilyAdminCanChangeCode": m49, "onlyThem": MessageLookupByLibrary.simpleMessage("Apenas eles"), "oops": MessageLookupByLibrary.simpleMessage("Ops"), "oopsCouldNotSaveEdits": MessageLookupByLibrary.simpleMessage( @@ -1356,7 +1356,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("O pagamento falhou"), "paymentFailedMessage": MessageLookupByLibrary.simpleMessage( "Infelizmente o pagamento falhou. Entre em contato com o suporte e nós ajudaremos você!"), - "paymentFailedTalkToProvider": m49, + "paymentFailedTalkToProvider": m50, "pendingItems": MessageLookupByLibrary.simpleMessage("Itens pendentes"), "pendingSync": MessageLookupByLibrary.simpleMessage("Sincronização pendente"), @@ -1379,14 +1379,14 @@ class MessageLookup extends MessageLookupByLibrary { "photosAddedByYouWillBeRemovedFromTheAlbum": MessageLookupByLibrary.simpleMessage( "Suas fotos adicionadas serão removidas do álbum"), - "photosCount": m50, + "photosCount": m51, "pickCenterPoint": MessageLookupByLibrary.simpleMessage("Escolha o ponto central"), "pinAlbum": MessageLookupByLibrary.simpleMessage("Fixar álbum"), "pinLock": MessageLookupByLibrary.simpleMessage("Bloqueio por PIN"), "playOnTv": MessageLookupByLibrary.simpleMessage("Reproduzir álbum na TV"), - "playStoreFreeTrialValidTill": m51, + "playStoreFreeTrialValidTill": m52, "playstoreSubscription": MessageLookupByLibrary.simpleMessage("Assinatura da PlayStore"), "pleaseCheckYourInternetConnectionAndTryAgain": @@ -1398,14 +1398,14 @@ class MessageLookup extends MessageLookupByLibrary { "pleaseContactSupportIfTheProblemPersists": MessageLookupByLibrary.simpleMessage( "Por favor, contate o suporte se o problema persistir"), - "pleaseEmailUsAt": m52, + "pleaseEmailUsAt": m53, "pleaseGrantPermissions": MessageLookupByLibrary.simpleMessage( "Por favor, conceda as permissões"), "pleaseLoginAgain": MessageLookupByLibrary.simpleMessage("Registre-se novamente"), "pleaseSelectQuickLinksToRemove": MessageLookupByLibrary.simpleMessage( "Selecione links rápidos para remover"), - "pleaseSendTheLogsTo": m53, + "pleaseSendTheLogsTo": m54, "pleaseTryAgain": MessageLookupByLibrary.simpleMessage("Tente novamente"), "pleaseVerifyTheCodeYouHaveEntered": @@ -1432,7 +1432,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Compartilhamento privado"), "proceed": MessageLookupByLibrary.simpleMessage("Continuar"), "processed": MessageLookupByLibrary.simpleMessage("Processado"), - "processingImport": m54, + "processingImport": m55, "publicLinkCreated": MessageLookupByLibrary.simpleMessage("Link público criado"), "publicLinkEnabled": @@ -1443,7 +1443,7 @@ class MessageLookup extends MessageLookupByLibrary { "rateTheApp": MessageLookupByLibrary.simpleMessage("Avalie o aplicativo"), "rateUs": MessageLookupByLibrary.simpleMessage("Avaliar"), - "rateUsOnStore": m55, + "rateUsOnStore": m56, "recover": MessageLookupByLibrary.simpleMessage("Recuperar"), "recoverAccount": MessageLookupByLibrary.simpleMessage("Recuperar conta"), @@ -1452,7 +1452,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Recuperar conta"), "recoveryInitiated": MessageLookupByLibrary.simpleMessage("A recuperação iniciou"), - "recoveryInitiatedDesc": m56, + "recoveryInitiatedDesc": m57, "recoveryKey": MessageLookupByLibrary.simpleMessage("Chave de recuperação"), "recoveryKeyCopiedToClipboard": MessageLookupByLibrary.simpleMessage( @@ -1467,12 +1467,12 @@ class MessageLookup extends MessageLookupByLibrary { "Chave de recuperação verificada"), "recoveryKeyVerifyReason": MessageLookupByLibrary.simpleMessage( "Sua chave de recuperação é a única maneira de recuperar suas fotos se você esqueceu sua senha. Você pode encontrar sua chave de recuperação em Opções > Conta.\n\nInsira sua chave de recuperação aqui para verificar se você a salvou corretamente."), - "recoveryReady": m57, + "recoveryReady": m58, "recoverySuccessful": MessageLookupByLibrary.simpleMessage("Recuperação com sucesso!"), "recoveryWarning": MessageLookupByLibrary.simpleMessage( "Um contato confiável está tentando acessar sua conta"), - "recoveryWarningBody": m58, + "recoveryWarningBody": m59, "recreatePasswordBody": MessageLookupByLibrary.simpleMessage( "O dispositivo atual não é poderoso o suficiente para verificar sua senha, no entanto, nós podemos regenerar numa maneira que funciona em todos os dispositivos.\n\nEntre usando a chave de recuperação e regenere sua senha (você pode usar a mesma novamente se desejar)."), "recreatePasswordTitle": @@ -1487,7 +1487,7 @@ class MessageLookup extends MessageLookupByLibrary { "1. Envie este código aos seus amigos"), "referralStep2": MessageLookupByLibrary.simpleMessage( "2. Eles então se inscrevem num plano pago"), - "referralStep3": m59, + "referralStep3": m60, "referrals": MessageLookupByLibrary.simpleMessage("Referências"), "referralsAreCurrentlyPaused": MessageLookupByLibrary.simpleMessage( "As referências estão atualmente pausadas"), @@ -1516,7 +1516,7 @@ class MessageLookup extends MessageLookupByLibrary { "removeLink": MessageLookupByLibrary.simpleMessage("Remover link"), "removeParticipant": MessageLookupByLibrary.simpleMessage("Remover participante"), - "removeParticipantBody": m60, + "removeParticipantBody": m61, "removePersonLabel": MessageLookupByLibrary.simpleMessage("Remover etiqueta da pessoa"), "removePublicLink": @@ -1536,7 +1536,7 @@ class MessageLookup extends MessageLookupByLibrary { "renameFile": MessageLookupByLibrary.simpleMessage("Renomear arquivo"), "renewSubscription": MessageLookupByLibrary.simpleMessage("Renovar assinatura"), - "renewsOn": m61, + "renewsOn": m62, "reportABug": MessageLookupByLibrary.simpleMessage("Informar um erro"), "reportBug": MessageLookupByLibrary.simpleMessage("Informar erro"), "resendEmail": MessageLookupByLibrary.simpleMessage("Reenviar e-mail"), @@ -1615,8 +1615,8 @@ class MessageLookup extends MessageLookupByLibrary { "Convide pessoas e você verá todas as fotos compartilhadas por elas aqui"), "searchPersonsEmptySection": MessageLookupByLibrary.simpleMessage( "As pessoas serão exibidas aqui quando o processamento e sincronização for concluído"), - "searchResultCount": m62, - "searchSectionsLengthMismatch": m63, + "searchResultCount": m63, + "searchSectionsLengthMismatch": m64, "security": MessageLookupByLibrary.simpleMessage("Segurança"), "seePublicAlbumLinksInApp": MessageLookupByLibrary.simpleMessage( "Ver links de álbum compartilhado no aplicativo"), @@ -1650,8 +1650,8 @@ class MessageLookup extends MessageLookupByLibrary { "selectedItemsWillBeDeletedFromAllAlbumsAndMoved": MessageLookupByLibrary.simpleMessage( "Os itens selecionados serão excluídos de todos os álbuns e movidos para a lixeira."), - "selectedPhotos": m4, - "selectedPhotosWithYours": m64, + "selectedPhotos": m6, + "selectedPhotosWithYours": m65, "send": MessageLookupByLibrary.simpleMessage("Enviar"), "sendEmail": MessageLookupByLibrary.simpleMessage("Enviar e-mail"), "sendInvite": MessageLookupByLibrary.simpleMessage("Enviar convite"), @@ -1681,16 +1681,16 @@ class MessageLookup extends MessageLookupByLibrary { "shareAnAlbumNow": MessageLookupByLibrary.simpleMessage("Compartilhar um álbum agora"), "shareLink": MessageLookupByLibrary.simpleMessage("Compartilhar link"), - "shareMyVerificationID": m65, + "shareMyVerificationID": m66, "shareOnlyWithThePeopleYouWant": MessageLookupByLibrary.simpleMessage( "Compartilhar apenas com as pessoas que você quiser"), - "shareTextConfirmOthersVerificationID": m5, + "shareTextConfirmOthersVerificationID": m7, "shareTextRecommendUsingEnte": MessageLookupByLibrary.simpleMessage( "Baixe o Ente para que nós possamos compartilhar com facilidade fotos e vídeos de qualidade original\n\nhttps://ente.io"), - "shareTextReferralCode": m66, + "shareTextReferralCode": m67, "shareWithNonenteUsers": MessageLookupByLibrary.simpleMessage( "Compartilhar com usuários não ente"), - "shareWithPeopleSectionTitle": m67, + "shareWithPeopleSectionTitle": m68, "shareYourFirstAlbum": MessageLookupByLibrary.simpleMessage( "Compartilhar seu primeiro álbum"), "sharedAlbumSectionDescription": MessageLookupByLibrary.simpleMessage( @@ -1703,7 +1703,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Novas fotos compartilhadas"), "sharedPhotoNotificationsExplanation": MessageLookupByLibrary.simpleMessage( "Receber notificações quando alguém adicionar uma foto a um álbum compartilhado que você faz parte"), - "sharedWith": m68, + "sharedWith": m69, "sharedWithMe": MessageLookupByLibrary.simpleMessage("Compartilhado comigo"), "sharedWithYou": @@ -1720,11 +1720,11 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Sair em outros dispositivos"), "signUpTerms": MessageLookupByLibrary.simpleMessage( "Eu concordo com os termos de serviço e a política de privacidade"), - "singleFileDeleteFromDevice": m69, + "singleFileDeleteFromDevice": m70, "singleFileDeleteHighlight": MessageLookupByLibrary.simpleMessage( "Ele será excluído de todos os álbuns."), - "singleFileInBothLocalAndRemote": m70, - "singleFileInRemoteOnly": m71, + "singleFileInBothLocalAndRemote": m71, + "singleFileInRemoteOnly": m72, "skip": MessageLookupByLibrary.simpleMessage("Pular"), "social": MessageLookupByLibrary.simpleMessage("Redes sociais"), "someItemsAreInBothEnteAndYourDevice": @@ -1775,10 +1775,10 @@ class MessageLookup extends MessageLookupByLibrary { "storageInGB": m1, "storageLimitExceeded": MessageLookupByLibrary.simpleMessage( "Limite de armazenamento excedido"), - "storageUsageInfo": m72, + "storageUsageInfo": m73, "strongStrength": MessageLookupByLibrary.simpleMessage("Forte"), - "subAlreadyLinkedErrMessage": m73, - "subWillBeCancelledOn": m74, + "subAlreadyLinkedErrMessage": m74, + "subWillBeCancelledOn": m75, "subscribe": MessageLookupByLibrary.simpleMessage("Inscrever-se"), "subscribeToEnableSharing": MessageLookupByLibrary.simpleMessage( "Você precisa de uma inscrição paga ativa para ativar o compartilhamento."), @@ -1795,7 +1795,7 @@ class MessageLookup extends MessageLookupByLibrary { "suggestFeatures": MessageLookupByLibrary.simpleMessage("Sugerir recurso"), "support": MessageLookupByLibrary.simpleMessage("Suporte"), - "syncProgress": m75, + "syncProgress": m76, "syncStopped": MessageLookupByLibrary.simpleMessage("Sincronização interrompida"), "syncing": MessageLookupByLibrary.simpleMessage("Sincronizando..."), @@ -1807,7 +1807,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Toque para desbloquear"), "tapToUpload": MessageLookupByLibrary.simpleMessage("Toque para enviar"), - "tapToUploadIsIgnoredDue": m76, + "tapToUploadIsIgnoredDue": m77, "tempErrorContactSupportIfPersists": MessageLookupByLibrary.simpleMessage( "Parece que algo deu errado. Tente novamente mais tarde. Caso o erro persistir, por favor, entre em contato com nossa equipe."), "terminate": MessageLookupByLibrary.simpleMessage("Encerrar"), @@ -1829,7 +1829,7 @@ class MessageLookup extends MessageLookupByLibrary { "theseItemsWillBeDeletedFromYourDevice": MessageLookupByLibrary.simpleMessage( "Estes itens serão excluídos do seu dispositivo."), - "theyAlsoGetXGb": m77, + "theyAlsoGetXGb": m8, "theyWillBeDeletedFromAllAlbums": MessageLookupByLibrary.simpleMessage( "Eles serão excluídos de todos os álbuns."), "thisActionCannotBeUndone": MessageLookupByLibrary.simpleMessage( diff --git a/mobile/lib/generated/intl/messages_ro.dart b/mobile/lib/generated/intl/messages_ro.dart index 8d59234c116..e02fb1f1744 100644 --- a/mobile/lib/generated/intl/messages_ro.dart +++ b/mobile/lib/generated/intl/messages_ro.dart @@ -20,37 +20,37 @@ typedef String MessageIfAbsent(String messageStr, List args); class MessageLookup extends MessageLookupByLibrary { String get localeName => 'ro'; - static String m6(count) => + static String m9(count) => "${Intl.plural(count, one: 'Adăugați un colaborator', few: 'Adăugați colaboratori', other: 'Adăugați colaboratori')}"; - static String m7(count) => + static String m10(count) => "${Intl.plural(count, one: 'Adăugați articolul', few: 'Adăugați articolele', other: 'Adăugați articolele')}"; - static String m8(storageAmount, endDate) => + static String m11(storageAmount, endDate) => "Suplimentul de ${storageAmount} este valabil până pe ${endDate}"; - static String m9(count) => + static String m12(count) => "${Intl.plural(count, one: 'Adăugați observator', few: 'Adăugați observatori', other: 'Adăugați observatori')}"; - static String m10(emailOrName) => "Adăugat de ${emailOrName}"; + static String m13(emailOrName) => "Adăugat de ${emailOrName}"; - static String m11(albumName) => "S-au adăugat cu succes la ${albumName}"; + static String m14(albumName) => "S-au adăugat cu succes la ${albumName}"; - static String m12(count) => + static String m15(count) => "${Intl.plural(count, zero: 'Fără participanți', one: '1 participant', other: '${count} de participanți')}"; - static String m13(versionValue) => "Versiune: ${versionValue}"; + static String m16(versionValue) => "Versiune: ${versionValue}"; - static String m14(freeAmount, storageUnit) => + static String m17(freeAmount, storageUnit) => "${freeAmount} ${storageUnit} liber"; - static String m15(paymentProvider) => + static String m18(paymentProvider) => "Vă rugăm să vă anulați mai întâi abonamentul existent de la ${paymentProvider}"; - static String m16(user) => + static String m3(user) => "${user} nu va putea să mai adauge fotografii la acest album\n\nVa putea să elimine fotografii existente adăugate de el/ea"; - static String m17(isFamilyMember, storageAmountInGb) => + static String m19(isFamilyMember, storageAmountInGb) => "${Intl.select(isFamilyMember, { 'true': 'Familia dvs. a revendicat ${storageAmountInGb} GB până acum', @@ -58,183 +58,183 @@ class MessageLookup extends MessageLookupByLibrary { 'other': 'Ați revendicat ${storageAmountInGb} de GB până acum!', })}"; - static String m18(albumName) => "Link colaborativ creat pentru ${albumName}"; + static String m20(albumName) => "Link colaborativ creat pentru ${albumName}"; - static String m19(count) => + static String m21(count) => "${Intl.plural(count, zero: 'S-au adăugat 0 colaboratori', one: 'S-a adăugat 1 colaborator', few: 'S-au adăugat ${count} colaboratori', other: 'S-au adăugat ${count} de colaboratori')}"; - static String m20(email, numOfDays) => + static String m22(email, numOfDays) => "Sunteți pe cale să adăugați ${email} ca persoană de contact de încredere. Acesta va putea să vă recupereze contul dacă lipsiți timp de ${numOfDays} de zile."; - static String m21(familyAdminEmail) => + static String m23(familyAdminEmail) => "Vă rugăm să contactați ${familyAdminEmail} pentru a gestiona abonamentul"; - static String m22(provider) => + static String m24(provider) => "Vă rugăm să ne contactați la support@ente.io pentru a vă gestiona abonamentul ${provider}."; - static String m23(endpoint) => "Conectat la ${endpoint}"; + static String m25(endpoint) => "Conectat la ${endpoint}"; - static String m24(count) => + static String m26(count) => "${Intl.plural(count, one: 'Ștergeți ${count} articol', other: 'Ștergeți ${count} de articole')}"; - static String m25(currentlyDeleting, totalCount) => + static String m27(currentlyDeleting, totalCount) => "Se șterg ${currentlyDeleting} / ${totalCount}"; - static String m26(albumName) => + static String m28(albumName) => "Urmează să eliminați linkul public pentru accesarea „${albumName}”."; - static String m27(supportEmail) => + static String m29(supportEmail) => "Vă rugăm să trimiteți un e-mail la ${supportEmail} de pe adresa de e-mail înregistrată"; - static String m28(count, storageSaved) => + static String m30(count, storageSaved) => "Ați curățat ${Intl.plural(count, one: '${count} dublură', few: '${count} dubluri', other: '${count} de dubluri')}, economisind (${storageSaved}!)"; - static String m29(count, formattedSize) => + static String m31(count, formattedSize) => "${count} fișiere, ${formattedSize} fiecare"; - static String m30(newEmail) => "E-mail modificat în ${newEmail}"; + static String m32(newEmail) => "E-mail modificat în ${newEmail}"; - static String m31(email) => + static String m33(email) => "${email} nu are un cont Ente.\n\nTrimiteți-le o invitație pentru a distribui fotografii."; - static String m32(text) => "S-au găsit fotografii extra pentru ${text}"; + static String m34(text) => "S-au găsit fotografii extra pentru ${text}"; - static String m33(count, formattedNumber) => + static String m35(count, formattedNumber) => "${Intl.plural(count, one: 'Un fișier de pe acest dispozitiv a fost deja salvat în siguranță', few: '${formattedNumber} fișiere de pe acest dispozitiv au fost deja salvate în siguranță', other: '${formattedNumber} de fișiere de pe acest dispozitiv fost deja salvate în siguranță')}"; - static String m34(count, formattedNumber) => + static String m36(count, formattedNumber) => "${Intl.plural(count, one: 'Un fișier din acest album a fost deja salvat în siguranță', few: '${formattedNumber} fișiere din acest album au fost deja salvate în siguranță', other: '${formattedNumber} de fișiere din acest album au fost deja salvate în siguranță')}"; - static String m35(storageAmountInGB) => + static String m4(storageAmountInGB) => "${storageAmountInGB} GB de fiecare dată când cineva se înscrie pentru un plan plătit și aplică codul dvs."; - static String m36(endDate) => + static String m37(endDate) => "Perioadă de încercare valabilă până pe ${endDate}"; - static String m37(count) => + static String m38(count) => "Încă ${Intl.plural(count, one: 'îl puteți', few: 'le puteți', other: 'le puteți')} accesa pe Ente cât timp aveți un abonament activ"; - static String m38(sizeInMBorGB) => "Eliberați ${sizeInMBorGB}"; + static String m39(sizeInMBorGB) => "Eliberați ${sizeInMBorGB}"; - static String m39(count, formattedSize) => + static String m40(count, formattedSize) => "${Intl.plural(count, one: 'Poate fi șters de pe dispozitiv pentru a elibera ${formattedSize}', few: 'Pot fi șterse de pe dispozitiv pentru a elibera ${formattedSize}', other: 'Pot fi șterse de pe dispozitiv pentru a elibera ${formattedSize}')}"; - static String m40(currentlyProcessing, totalCount) => + static String m41(currentlyProcessing, totalCount) => "Se procesează ${currentlyProcessing} / ${totalCount}"; - static String m41(count) => + static String m42(count) => "${Intl.plural(count, one: '${count} articol', few: '${count} articole', other: '${count} de articole')}"; - static String m42(email) => + static String m43(email) => "${email} v-a invitat să fiți un contact de încredere"; - static String m43(expiryTime) => "Linkul va expira pe ${expiryTime}"; + static String m44(expiryTime) => "Linkul va expira pe ${expiryTime}"; - static String m3(count, formattedCount) => + static String m5(count, formattedCount) => "${Intl.plural(count, one: '${formattedCount} amintire', few: '${formattedCount} amintiri', other: '${formattedCount} de amintiri')}"; - static String m44(count) => + static String m45(count) => "${Intl.plural(count, one: 'Mutați articolul', few: 'Mutați articole', other: 'Mutați articolele')}"; - static String m45(albumName) => "S-au mutat cu succes în ${albumName}"; + static String m46(albumName) => "S-au mutat cu succes în ${albumName}"; - static String m46(personName) => "Nicio sugestie pentru ${personName}"; + static String m47(personName) => "Nicio sugestie pentru ${personName}"; - static String m47(name) => "Nu este ${name}?"; + static String m48(name) => "Nu este ${name}?"; - static String m48(familyAdminEmail) => + static String m49(familyAdminEmail) => "Vă rugăm să contactați ${familyAdminEmail} pentru a vă schimba codul."; static String m0(passwordStrengthValue) => "Complexitatea parolei: ${passwordStrengthValue}"; - static String m49(providerName) => + static String m50(providerName) => "Vă rugăm să vorbiți cu asistența ${providerName} dacă ați fost taxat"; - static String m50(count) => + static String m51(count) => "${Intl.plural(count, zero: '0 fotografii', one: '1 fotografie', few: '${count} fotografii', other: '${count} de fotografii')}"; - static String m51(endDate) => + static String m52(endDate) => "Perioada de încercare gratuită valabilă până pe ${endDate}.\nUlterior, puteți opta pentru un plan plătit."; - static String m52(toEmail) => + static String m53(toEmail) => "Vă rugăm să ne trimiteți un e-mail la ${toEmail}"; - static String m53(toEmail) => + static String m54(toEmail) => "Vă rugăm să trimiteți jurnalele la \n${toEmail}"; - static String m54(folderName) => "Se procesează ${folderName}..."; + static String m55(folderName) => "Se procesează ${folderName}..."; - static String m55(storeName) => "Evaluați-ne pe ${storeName}"; + static String m56(storeName) => "Evaluați-ne pe ${storeName}"; - static String m56(days, email) => + static String m57(days, email) => "Puteți accesa contul după ${days} zile. O notificare va fi trimisă la ${email}."; - static String m57(email) => + static String m58(email) => "Acum puteți recupera contul ${email} setând o nouă parolă."; - static String m58(email) => "${email} încearcă să vă recupereze contul."; + static String m59(email) => "${email} încearcă să vă recupereze contul."; - static String m59(storageInGB) => + static String m60(storageInGB) => "3. Amândoi primiți ${storageInGB} GB* gratuit"; - static String m60(userEmail) => + static String m61(userEmail) => "${userEmail} va fi eliminat din acest album distribuit\n\nOrice fotografii adăugate de acesta vor fi, de asemenea, eliminate din album"; - static String m61(endDate) => "Abonamentul se reînnoiește pe ${endDate}"; + static String m62(endDate) => "Abonamentul se reînnoiește pe ${endDate}"; - static String m62(count) => + static String m63(count) => "${Intl.plural(count, one: '${count} rezultat găsit', few: '${count} rezultate găsite', other: '${count} de rezultate găsite')}"; - static String m63(snapshotLength, searchLength) => + static String m64(snapshotLength, searchLength) => "Lungimea secțiunilor nu se potrivesc: ${snapshotLength} != ${searchLength}"; - static String m4(count) => "${count} selectate"; + static String m6(count) => "${count} selectate"; - static String m64(count, yourCount) => + static String m65(count, yourCount) => "${count} selectate (${yourCount} ale dvs.)"; - static String m65(verificationID) => + static String m66(verificationID) => "Acesta este ID-ul meu de verificare: ${verificationID} pentru ente.io."; - static String m5(verificationID) => + static String m7(verificationID) => "Poți confirma că acesta este ID-ul tău de verificare ente.io: ${verificationID}"; - static String m66(referralCode, referralStorageInGB) => + static String m67(referralCode, referralStorageInGB) => "Codul de recomandare Ente: ${referralCode}\n\nAplică-l în Setări → General → Recomandări pentru a obține ${referralStorageInGB} GB gratuit după ce te înscrii pentru un plan plătit\n\nhttps://ente.io"; - static String m67(numberOfPeople) => + static String m68(numberOfPeople) => "${Intl.plural(numberOfPeople, zero: 'Distribuiți cu anumite persoane', one: 'Distribuit cu o persoană', other: 'Distribuit cu ${numberOfPeople} de persoane')}"; - static String m68(emailIDs) => "Distribuit cu ${emailIDs}"; + static String m69(emailIDs) => "Distribuit cu ${emailIDs}"; - static String m69(fileType) => + static String m70(fileType) => "Fișierul de tip ${fileType} va fi șters din dispozitivul dvs."; - static String m70(fileType) => + static String m71(fileType) => "Fișierul de tip ${fileType} este atât în Ente, cât și în dispozitivul dvs."; - static String m71(fileType) => + static String m72(fileType) => "Fișierul de tip ${fileType} va fi șters din Ente."; static String m1(storageAmountInGB) => "${storageAmountInGB} GB"; - static String m72( + static String m73( usedAmount, usedStorageUnit, totalAmount, totalStorageUnit) => "${usedAmount} ${usedStorageUnit} din ${totalAmount} ${totalStorageUnit} utilizat"; - static String m73(id) => + static String m74(id) => "${id} este deja legat la un alt cont Ente.\nDacă doriți să folosiți ${id} cu acest cont, vă rugăm să contactați asistența noastră"; - static String m74(endDate) => "Abonamentul dvs. va fi anulat pe ${endDate}"; + static String m75(endDate) => "Abonamentul dvs. va fi anulat pe ${endDate}"; - static String m75(completed, total) => + static String m76(completed, total) => "${completed}/${total} amintiri salvate"; - static String m76(ignoreReason) => + static String m77(ignoreReason) => "Atingeți pentru a încărca, încărcarea este ignorată în prezent datorită ${ignoreReason}"; - static String m77(storageAmountInGB) => + static String m8(storageAmountInGB) => "De asemenea, va primii ${storageAmountInGB} GB"; static String m78(email) => "Acesta este ID-ul de verificare al ${email}"; @@ -289,11 +289,11 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Adăugați un e-mail nou"), "addCollaborator": MessageLookupByLibrary.simpleMessage("Adăugare colaborator"), - "addCollaborators": m6, + "addCollaborators": m9, "addFiles": MessageLookupByLibrary.simpleMessage("Adăugați fișiere"), "addFromDevice": MessageLookupByLibrary.simpleMessage("Adăugați de pe dispozitiv"), - "addItem": m7, + "addItem": m10, "addLocation": MessageLookupByLibrary.simpleMessage("Adăugare locație"), "addLocationButton": MessageLookupByLibrary.simpleMessage("Adăugare"), "addMore": MessageLookupByLibrary.simpleMessage("Adăugați mai mulți"), @@ -305,7 +305,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Adăugare persoană nouă"), "addOnPageSubtitle": MessageLookupByLibrary.simpleMessage("Detaliile suplimentelor"), - "addOnValidTill": m8, + "addOnValidTill": m11, "addOns": MessageLookupByLibrary.simpleMessage("Suplimente"), "addPhotos": MessageLookupByLibrary.simpleMessage("Adăugați fotografii"), @@ -319,12 +319,12 @@ class MessageLookup extends MessageLookupByLibrary { "Adăugare contact de încredere"), "addViewer": MessageLookupByLibrary.simpleMessage("Adăugare observator"), - "addViewers": m9, + "addViewers": m12, "addYourPhotosNow": MessageLookupByLibrary.simpleMessage( "Adăugați-vă fotografiile acum"), "addedAs": MessageLookupByLibrary.simpleMessage("Adăugat ca"), - "addedBy": m10, - "addedSuccessfullyTo": m11, + "addedBy": m13, + "addedSuccessfullyTo": m14, "addingToFavorites": MessageLookupByLibrary.simpleMessage("Se adaugă la favorite..."), "advanced": MessageLookupByLibrary.simpleMessage("Avansat"), @@ -335,7 +335,7 @@ class MessageLookup extends MessageLookupByLibrary { "after1Week": MessageLookupByLibrary.simpleMessage("După o săptămâna"), "after1Year": MessageLookupByLibrary.simpleMessage("După un an"), "albumOwner": MessageLookupByLibrary.simpleMessage("Proprietar"), - "albumParticipantsCount": m12, + "albumParticipantsCount": m15, "albumTitle": MessageLookupByLibrary.simpleMessage("Titlu album"), "albumUpdated": MessageLookupByLibrary.simpleMessage("Album actualizat"), @@ -384,7 +384,7 @@ class MessageLookup extends MessageLookupByLibrary { "appLock": MessageLookupByLibrary.simpleMessage("Blocare aplicație"), "appLockDescriptions": MessageLookupByLibrary.simpleMessage( "Alegeți între ecranul de blocare implicit al dispozitivului dvs. și un ecran de blocare personalizat cu PIN sau parolă."), - "appVersion": m13, + "appVersion": m16, "appleId": MessageLookupByLibrary.simpleMessage("Apple ID"), "apply": MessageLookupByLibrary.simpleMessage("Aplicare"), "applyCodeTitle": @@ -467,7 +467,7 @@ class MessageLookup extends MessageLookupByLibrary { "autoPairDesc": MessageLookupByLibrary.simpleMessage( "Asocierea automată funcționează numai cu dispozitive care acceptă Chromecast."), "available": MessageLookupByLibrary.simpleMessage("Disponibil"), - "availableStorageSpace": m14, + "availableStorageSpace": m17, "backedUpFolders": MessageLookupByLibrary.simpleMessage("Foldere salvate"), "backup": MessageLookupByLibrary.simpleMessage("Copie de rezervă"), @@ -508,10 +508,10 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Anulare recuperare"), "cancelAccountRecoveryBody": MessageLookupByLibrary.simpleMessage( "Sunteți sigur că doriți să anulați recuperarea?"), - "cancelOtherSubscription": m15, + "cancelOtherSubscription": m18, "cancelSubscription": MessageLookupByLibrary.simpleMessage("Anulare abonament"), - "cannotAddMorePhotosAfterBecomingViewer": m16, + "cannotAddMorePhotosAfterBecomingViewer": m3, "cannotDeleteSharedFiles": MessageLookupByLibrary.simpleMessage( "Nu se pot șterge fișierele distribuite"), "castAlbum": MessageLookupByLibrary.simpleMessage("Difuzați albumul"), @@ -563,7 +563,7 @@ class MessageLookup extends MessageLookupByLibrary { "claimMore": MessageLookupByLibrary.simpleMessage("Revendicați mai multe!"), "claimed": MessageLookupByLibrary.simpleMessage("Revendicat"), - "claimedStorageSoFar": m17, + "claimedStorageSoFar": m19, "cleanUncategorized": MessageLookupByLibrary.simpleMessage("Curățare Necategorisite"), "cleanUncategorizedDescription": MessageLookupByLibrary.simpleMessage( @@ -594,12 +594,12 @@ class MessageLookup extends MessageLookupByLibrary { "Creați un link pentru a permite oamenilor să adauge și să vizualizeze fotografii în albumul dvs. distribuit, fără a avea nevoie de o aplicație sau un cont Ente. Excelent pentru colectarea fotografiilor de la evenimente."), "collaborativeLink": MessageLookupByLibrary.simpleMessage("Link colaborativ"), - "collaborativeLinkCreatedFor": m18, + "collaborativeLinkCreatedFor": m20, "collaborator": MessageLookupByLibrary.simpleMessage("Colaborator"), "collaboratorsCanAddPhotosAndVideosToTheSharedAlbum": MessageLookupByLibrary.simpleMessage( "Colaboratorii pot adăuga fotografii și videoclipuri la albumul distribuit."), - "collaboratorsSuccessfullyAdded": m19, + "collaboratorsSuccessfullyAdded": m21, "collageLayout": MessageLookupByLibrary.simpleMessage("Aspect"), "collageSaved": MessageLookupByLibrary.simpleMessage("Colaj salvat în galerie"), @@ -617,7 +617,7 @@ class MessageLookup extends MessageLookupByLibrary { "Sigur doriți dezactivarea autentificării cu doi factori?"), "confirmAccountDeletion": MessageLookupByLibrary.simpleMessage( "Confirmați ștergerea contului"), - "confirmAddingTrustedContact": m20, + "confirmAddingTrustedContact": m22, "confirmDeletePrompt": MessageLookupByLibrary.simpleMessage( "Da, doresc să șterg definitiv acest cont și toate datele sale din toate aplicațiile."), "confirmPassword": @@ -630,10 +630,10 @@ class MessageLookup extends MessageLookupByLibrary { "Confirmați cheia de recuperare"), "connectToDevice": MessageLookupByLibrary.simpleMessage("Conectați-vă la dispozitiv"), - "contactFamilyAdmin": m21, + "contactFamilyAdmin": m23, "contactSupport": MessageLookupByLibrary.simpleMessage( "Contactați serviciul de asistență"), - "contactToManageSubscription": m22, + "contactToManageSubscription": m24, "contacts": MessageLookupByLibrary.simpleMessage("Contacte"), "contents": MessageLookupByLibrary.simpleMessage("Conținuturi"), "continueLabel": MessageLookupByLibrary.simpleMessage("Continuare"), @@ -679,7 +679,7 @@ class MessageLookup extends MessageLookupByLibrary { "currentlyRunning": MessageLookupByLibrary.simpleMessage("rulează în prezent"), "custom": MessageLookupByLibrary.simpleMessage("Particularizat"), - "customEndpoint": m23, + "customEndpoint": m25, "darkTheme": MessageLookupByLibrary.simpleMessage("Întunecată"), "dayToday": MessageLookupByLibrary.simpleMessage("Astăzi"), "dayYesterday": MessageLookupByLibrary.simpleMessage("Ieri"), @@ -716,12 +716,12 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Ștergeți de pe dispozitiv"), "deleteFromEnte": MessageLookupByLibrary.simpleMessage("Ștergeți din Ente"), - "deleteItemCount": m24, + "deleteItemCount": m26, "deleteLocation": MessageLookupByLibrary.simpleMessage("Ștergeți locația"), "deletePhotos": MessageLookupByLibrary.simpleMessage("Ștergeți fotografiile"), - "deleteProgress": m25, + "deleteProgress": m27, "deleteReason1": MessageLookupByLibrary.simpleMessage( "Lipsește o funcție cheie de care am nevoie"), "deleteReason2": MessageLookupByLibrary.simpleMessage( @@ -762,7 +762,7 @@ class MessageLookup extends MessageLookupByLibrary { "Observatorii pot să facă capturi de ecran sau să salveze o copie a fotografiilor dvs. folosind instrumente externe"), "disableDownloadWarningTitle": MessageLookupByLibrary.simpleMessage("Rețineți"), - "disableLinkMessage": m26, + "disableLinkMessage": m28, "disableTwofactor": MessageLookupByLibrary.simpleMessage( "Dezactivați al doilea factor"), "disablingTwofactorAuthentication": @@ -803,9 +803,9 @@ class MessageLookup extends MessageLookupByLibrary { "downloadFailed": MessageLookupByLibrary.simpleMessage("Descărcarea nu a reușit"), "downloading": MessageLookupByLibrary.simpleMessage("Se descarcă..."), - "dropSupportEmail": m27, - "duplicateFileCountWithStorageSaved": m28, - "duplicateItemsGroup": m29, + "dropSupportEmail": m29, + "duplicateFileCountWithStorageSaved": m30, + "duplicateItemsGroup": m31, "edit": MessageLookupByLibrary.simpleMessage("Editare"), "editLocation": MessageLookupByLibrary.simpleMessage("Editare locaţie"), "editLocationTagTitle": @@ -819,8 +819,8 @@ class MessageLookup extends MessageLookupByLibrary { "email": MessageLookupByLibrary.simpleMessage("E-mail"), "emailAlreadyRegistered": MessageLookupByLibrary.simpleMessage("E-mail deja înregistrat."), - "emailChangedTo": m30, - "emailNoEnteAccount": m31, + "emailChangedTo": m32, + "emailNoEnteAccount": m33, "emailNotRegistered": MessageLookupByLibrary.simpleMessage( "E-mailul nu este înregistrat."), "emailVerificationToggle": MessageLookupByLibrary.simpleMessage( @@ -907,7 +907,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Export de date"), "extraPhotosFound": MessageLookupByLibrary.simpleMessage("S-au găsit fotografii extra"), - "extraPhotosFoundFor": m32, + "extraPhotosFoundFor": m34, "faceNotClusteredYet": MessageLookupByLibrary.simpleMessage( "Fața nu este încă grupată, vă rugăm să reveniți mai târziu"), "faceRecognition": @@ -958,8 +958,8 @@ class MessageLookup extends MessageLookupByLibrary { "fileTypes": MessageLookupByLibrary.simpleMessage("Tipuri de fișiere"), "fileTypesAndNames": MessageLookupByLibrary.simpleMessage( "Tipuri de fișiere și denumiri"), - "filesBackedUpFromDevice": m33, - "filesBackedUpInAlbum": m34, + "filesBackedUpFromDevice": m35, + "filesBackedUpInAlbum": m36, "filesDeleted": MessageLookupByLibrary.simpleMessage("Fișiere șterse"), "filesSavedToGallery": MessageLookupByLibrary.simpleMessage("Fișiere salvate în galerie"), @@ -974,27 +974,27 @@ class MessageLookup extends MessageLookupByLibrary { "foundFaces": MessageLookupByLibrary.simpleMessage("S-au găsit fețe"), "freeStorageClaimed": MessageLookupByLibrary.simpleMessage("Spațiu gratuit revendicat"), - "freeStorageOnReferralSuccess": m35, + "freeStorageOnReferralSuccess": m4, "freeStorageUsable": MessageLookupByLibrary.simpleMessage("Spațiu gratuit utilizabil"), "freeTrial": MessageLookupByLibrary.simpleMessage( "Perioadă de încercare gratuită"), - "freeTrialValidTill": m36, - "freeUpAccessPostDelete": m37, - "freeUpAmount": m38, + "freeTrialValidTill": m37, + "freeUpAccessPostDelete": m38, + "freeUpAmount": m39, "freeUpDeviceSpace": MessageLookupByLibrary.simpleMessage( "Eliberați spațiu pe dispozitiv"), "freeUpDeviceSpaceDesc": MessageLookupByLibrary.simpleMessage( "Economisiți spațiu pe dispozitivul dvs. prin ștergerea fișierelor cărora li s-a făcut copie de rezervă."), "freeUpSpace": MessageLookupByLibrary.simpleMessage("Eliberați spațiu"), - "freeUpSpaceSaving": m39, + "freeUpSpaceSaving": m40, "gallery": MessageLookupByLibrary.simpleMessage("Galerie"), "galleryMemoryLimitInfo": MessageLookupByLibrary.simpleMessage( "Până la 1000 de amintiri afișate în galerie"), "general": MessageLookupByLibrary.simpleMessage("General"), "generatingEncryptionKeys": MessageLookupByLibrary.simpleMessage( "Se generează cheile de criptare..."), - "genericProgress": m40, + "genericProgress": m41, "goToSettings": MessageLookupByLibrary.simpleMessage("Mergeți la setări"), "googlePlayId": MessageLookupByLibrary.simpleMessage("ID Google Play"), @@ -1078,7 +1078,7 @@ class MessageLookup extends MessageLookupByLibrary { "itLooksLikeSomethingWentWrongPleaseRetryAfterSome": MessageLookupByLibrary.simpleMessage( "Se pare că ceva nu a mers bine. Vă rugăm să încercați din nou după ceva timp. Dacă eroarea persistă, vă rugăm să contactați echipa noastră de asistență."), - "itemCount": m41, + "itemCount": m42, "itemsShowTheNumberOfDaysRemainingBeforePermanentDeletion": MessageLookupByLibrary.simpleMessage( "Articolele afișează numărul de zile rămase până la ștergerea definitivă"), @@ -1110,22 +1110,20 @@ class MessageLookup extends MessageLookupByLibrary { "legacy": MessageLookupByLibrary.simpleMessage("Moștenire"), "legacyAccounts": MessageLookupByLibrary.simpleMessage("Conturi de moștenire"), - "legacyInvite": m42, + "legacyInvite": m43, "legacyPageDesc": MessageLookupByLibrary.simpleMessage( "Moștenirea permite contactelor de încredere să vă acceseze contul în absența dvs."), "legacyPageDesc2": MessageLookupByLibrary.simpleMessage( "Persoanele de contact de încredere pot iniția recuperarea contului și, dacă nu este blocată în termen de 30 de zile, vă pot reseta parola și accesa contul."), "light": MessageLookupByLibrary.simpleMessage("Lumină"), "lightTheme": MessageLookupByLibrary.simpleMessage("Luminoasă"), - "link": MessageLookupByLibrary.simpleMessage("Link"), "linkCopiedToClipboard": MessageLookupByLibrary.simpleMessage( "Linkul a fost copiat în clipboard"), "linkDeviceLimit": MessageLookupByLibrary.simpleMessage("Limită de dispozitive"), - "linkEmail": MessageLookupByLibrary.simpleMessage("Link email"), "linkEnabled": MessageLookupByLibrary.simpleMessage("Activat"), "linkExpired": MessageLookupByLibrary.simpleMessage("Expirat"), - "linkExpiresOn": m43, + "linkExpiresOn": m44, "linkExpiry": MessageLookupByLibrary.simpleMessage("Expirarea linkului"), "linkHasExpired": @@ -1221,7 +1219,7 @@ class MessageLookup extends MessageLookupByLibrary { "maps": MessageLookupByLibrary.simpleMessage("Hărţi"), "mastodon": MessageLookupByLibrary.simpleMessage("Mastodon"), "matrix": MessageLookupByLibrary.simpleMessage("Matrix"), - "memoryCount": m3, + "memoryCount": m5, "merchandise": MessageLookupByLibrary.simpleMessage("Produse"), "mergeWithExisting": MessageLookupByLibrary.simpleMessage("Îmbinare cu unul existent"), @@ -1253,11 +1251,11 @@ class MessageLookup extends MessageLookupByLibrary { "mostRecent": MessageLookupByLibrary.simpleMessage("Cele mai recente"), "mostRelevant": MessageLookupByLibrary.simpleMessage("Cele mai relevante"), - "moveItem": m44, + "moveItem": m45, "moveToAlbum": MessageLookupByLibrary.simpleMessage("Mutare în album"), "moveToHiddenAlbum": MessageLookupByLibrary.simpleMessage("Mutați în albumul ascuns"), - "movedSuccessfullyTo": m45, + "movedSuccessfullyTo": m46, "movedToTrash": MessageLookupByLibrary.simpleMessage("S-a mutat în coșul de gunoi"), "movingFilesToAlbum": MessageLookupByLibrary.simpleMessage( @@ -1285,8 +1283,6 @@ class MessageLookup extends MessageLookupByLibrary { "noDeviceThatCanBeDeleted": MessageLookupByLibrary.simpleMessage( "Nu aveți fișiere pe acest dispozitiv care pot fi șterse"), "noDuplicates": MessageLookupByLibrary.simpleMessage("✨ Fără dubluri"), - "noEnteAccountExclamation": - MessageLookupByLibrary.simpleMessage("No Ente account!"), "noExifData": MessageLookupByLibrary.simpleMessage("Nu există date EXIF"), "noFacesFound": @@ -1311,10 +1307,10 @@ class MessageLookup extends MessageLookupByLibrary { "noResults": MessageLookupByLibrary.simpleMessage("Niciun rezultat"), "noResultsFound": MessageLookupByLibrary.simpleMessage("Nu s-au găsit rezultate"), - "noSuggestionsForPerson": m46, + "noSuggestionsForPerson": m47, "noSystemLockFound": MessageLookupByLibrary.simpleMessage( "Nu s-a găsit nicio blocare de sistem"), - "notPersonLabel": m47, + "notPersonLabel": m48, "nothingSharedWithYouYet": MessageLookupByLibrary.simpleMessage( "Nimic distribuit cu dvs. încă"), "nothingToSeeHere": @@ -1324,7 +1320,7 @@ class MessageLookup extends MessageLookupByLibrary { "onDevice": MessageLookupByLibrary.simpleMessage("Pe dispozitiv"), "onEnte": MessageLookupByLibrary.simpleMessage( "Pe ente"), - "onlyFamilyAdminCanChangeCode": m48, + "onlyFamilyAdminCanChangeCode": m49, "onlyThem": MessageLookupByLibrary.simpleMessage("Numai el/ea"), "oops": MessageLookupByLibrary.simpleMessage("Ups"), "oopsCouldNotSaveEdits": MessageLookupByLibrary.simpleMessage( @@ -1374,7 +1370,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Plata nu a reușit"), "paymentFailedMessage": MessageLookupByLibrary.simpleMessage( "Din păcate, plata dvs. nu a reușit. Vă rugăm să contactați asistență și vom fi bucuroși să vă ajutăm!"), - "paymentFailedTalkToProvider": m49, + "paymentFailedTalkToProvider": m50, "pendingItems": MessageLookupByLibrary.simpleMessage("Elemente în așteptare"), "pendingSync": @@ -1398,13 +1394,13 @@ class MessageLookup extends MessageLookupByLibrary { "photosAddedByYouWillBeRemovedFromTheAlbum": MessageLookupByLibrary.simpleMessage( "Fotografiile adăugate de dvs. vor fi eliminate din album"), - "photosCount": m50, + "photosCount": m51, "pickCenterPoint": MessageLookupByLibrary.simpleMessage("Alegeți punctul central"), "pinAlbum": MessageLookupByLibrary.simpleMessage("Fixați albumul"), "pinLock": MessageLookupByLibrary.simpleMessage("Blocare PIN"), "playOnTv": MessageLookupByLibrary.simpleMessage("Redare album pe TV"), - "playStoreFreeTrialValidTill": m51, + "playStoreFreeTrialValidTill": m52, "playstoreSubscription": MessageLookupByLibrary.simpleMessage("Abonament PlayStore"), "pleaseCheckYourInternetConnectionAndTryAgain": @@ -1416,14 +1412,14 @@ class MessageLookup extends MessageLookupByLibrary { "pleaseContactSupportIfTheProblemPersists": MessageLookupByLibrary.simpleMessage( "Vă rugăm să contactați asistența dacă problema persistă"), - "pleaseEmailUsAt": m52, + "pleaseEmailUsAt": m53, "pleaseGrantPermissions": MessageLookupByLibrary.simpleMessage( "Vă rugăm să acordați permisiuni"), "pleaseLoginAgain": MessageLookupByLibrary.simpleMessage( "Vă rugăm, autentificați-vă din nou"), "pleaseSelectQuickLinksToRemove": MessageLookupByLibrary.simpleMessage( "Vă rugăm să selectați linkurile rapide de eliminat"), - "pleaseSendTheLogsTo": m53, + "pleaseSendTheLogsTo": m54, "pleaseTryAgain": MessageLookupByLibrary.simpleMessage( "Vă rugăm să încercați din nou"), "pleaseVerifyTheCodeYouHaveEntered": @@ -1453,7 +1449,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Distribuire privată"), "proceed": MessageLookupByLibrary.simpleMessage("Continuați"), "processed": MessageLookupByLibrary.simpleMessage("Procesate"), - "processingImport": m54, + "processingImport": m55, "publicLinkCreated": MessageLookupByLibrary.simpleMessage("Link public creat"), "publicLinkEnabled": @@ -1465,7 +1461,7 @@ class MessageLookup extends MessageLookupByLibrary { "rateTheApp": MessageLookupByLibrary.simpleMessage("Evaluați aplicația"), "rateUs": MessageLookupByLibrary.simpleMessage("Evaluați-ne"), - "rateUsOnStore": m55, + "rateUsOnStore": m56, "recover": MessageLookupByLibrary.simpleMessage("Recuperare"), "recoverAccount": MessageLookupByLibrary.simpleMessage("Recuperare cont"), @@ -1474,7 +1470,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Recuperare cont"), "recoveryInitiated": MessageLookupByLibrary.simpleMessage("Recuperare inițiată"), - "recoveryInitiatedDesc": m56, + "recoveryInitiatedDesc": m57, "recoveryKey": MessageLookupByLibrary.simpleMessage("Cheie de recuperare"), "recoveryKeyCopiedToClipboard": MessageLookupByLibrary.simpleMessage( @@ -1489,12 +1485,12 @@ class MessageLookup extends MessageLookupByLibrary { "Cheie de recuperare verificată"), "recoveryKeyVerifyReason": MessageLookupByLibrary.simpleMessage( "Cheia dvs. de recuperare este singura modalitate de a vă recupera fotografiile dacă uitați parola. Puteți găsi cheia dvs. de recuperare în Setări > Cont.\n\nVă rugăm să introduceți aici cheia de recuperare pentru a verifica dacă ați salvat-o corect."), - "recoveryReady": m57, + "recoveryReady": m58, "recoverySuccessful": MessageLookupByLibrary.simpleMessage("Recuperare reușită!"), "recoveryWarning": MessageLookupByLibrary.simpleMessage( "Un contact de încredere încearcă să vă acceseze contul"), - "recoveryWarningBody": m58, + "recoveryWarningBody": m59, "recreatePasswordBody": MessageLookupByLibrary.simpleMessage( "Dispozitivul actual nu este suficient de puternic pentru a vă verifica parola, dar o putem regenera într-un mod care să funcționeze cu toate dispozitivele.\n\nVă rugăm să vă conectați utilizând cheia de recuperare și să vă regenerați parola (dacă doriți, o puteți utiliza din nou pe aceeași)."), "recreatePasswordTitle": @@ -1510,7 +1506,7 @@ class MessageLookup extends MessageLookupByLibrary { "1. Dați acest cod prietenilor"), "referralStep2": MessageLookupByLibrary.simpleMessage( "2. Aceștia se înscriu la un plan cu plată"), - "referralStep3": m59, + "referralStep3": m60, "referrals": MessageLookupByLibrary.simpleMessage("Recomandări"), "referralsAreCurrentlyPaused": MessageLookupByLibrary.simpleMessage( "Recomandările sunt momentan întrerupte"), @@ -1542,7 +1538,7 @@ class MessageLookup extends MessageLookupByLibrary { "removeLink": MessageLookupByLibrary.simpleMessage("Eliminați linkul"), "removeParticipant": MessageLookupByLibrary.simpleMessage("Eliminați participantul"), - "removeParticipantBody": m60, + "removeParticipantBody": m61, "removePersonLabel": MessageLookupByLibrary.simpleMessage( "Eliminați eticheta persoanei"), "removePublicLink": @@ -1563,7 +1559,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Redenumiți fișierul"), "renewSubscription": MessageLookupByLibrary.simpleMessage("Reînnoire abonament"), - "renewsOn": m61, + "renewsOn": m62, "reportABug": MessageLookupByLibrary.simpleMessage("Raportați o eroare"), "reportBug": MessageLookupByLibrary.simpleMessage("Raportare eroare"), @@ -1644,8 +1640,8 @@ class MessageLookup extends MessageLookupByLibrary { "Invitați persoane și veți vedea aici toate fotografiile distribuite de acestea"), "searchPersonsEmptySection": MessageLookupByLibrary.simpleMessage( "Persoanele vor fi afișate aici odată ce procesarea și sincronizarea este completă"), - "searchResultCount": m62, - "searchSectionsLengthMismatch": m63, + "searchResultCount": m63, + "searchSectionsLengthMismatch": m64, "security": MessageLookupByLibrary.simpleMessage("Securitate"), "seePublicAlbumLinksInApp": MessageLookupByLibrary.simpleMessage( "Vedeți linkurile albumelor publice în aplicație"), @@ -1680,8 +1676,8 @@ class MessageLookup extends MessageLookupByLibrary { "selectedItemsWillBeDeletedFromAllAlbumsAndMoved": MessageLookupByLibrary.simpleMessage( "Articolele selectate vor fi șterse din toate albumele și mutate în coșul de gunoi."), - "selectedPhotos": m4, - "selectedPhotosWithYours": m64, + "selectedPhotos": m6, + "selectedPhotosWithYours": m65, "send": MessageLookupByLibrary.simpleMessage("Trimitere"), "sendEmail": MessageLookupByLibrary.simpleMessage("Trimiteți e-mail"), "sendInvite": @@ -1714,16 +1710,16 @@ class MessageLookup extends MessageLookupByLibrary { "shareAnAlbumNow": MessageLookupByLibrary.simpleMessage("Distribuiți un album acum"), "shareLink": MessageLookupByLibrary.simpleMessage("Distribuiți linkul"), - "shareMyVerificationID": m65, + "shareMyVerificationID": m66, "shareOnlyWithThePeopleYouWant": MessageLookupByLibrary.simpleMessage( "Distribuiți numai cu persoanele pe care le doriți"), - "shareTextConfirmOthersVerificationID": m5, + "shareTextConfirmOthersVerificationID": m7, "shareTextRecommendUsingEnte": MessageLookupByLibrary.simpleMessage( "Descarcă Ente pentru a putea distribui cu ușurință fotografii și videoclipuri în calitate originală\n\nhttps://ente.io"), - "shareTextReferralCode": m66, + "shareTextReferralCode": m67, "shareWithNonenteUsers": MessageLookupByLibrary.simpleMessage( "Distribuiți cu utilizatori din afara Ente"), - "shareWithPeopleSectionTitle": m67, + "shareWithPeopleSectionTitle": m68, "shareYourFirstAlbum": MessageLookupByLibrary.simpleMessage("Distribuiți primul album"), "sharedAlbumSectionDescription": MessageLookupByLibrary.simpleMessage( @@ -1736,7 +1732,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Fotografii partajate noi"), "sharedPhotoNotificationsExplanation": MessageLookupByLibrary.simpleMessage( "Primiți notificări atunci când cineva adaugă o fotografie la un album distribuit din care faceți parte"), - "sharedWith": m68, + "sharedWith": m69, "sharedWithMe": MessageLookupByLibrary.simpleMessage("Distribuit mie"), "sharedWithYou": MessageLookupByLibrary.simpleMessage("Distribuite cu dvs."), @@ -1752,11 +1748,11 @@ class MessageLookup extends MessageLookupByLibrary { "Deconectați alte dispozitive"), "signUpTerms": MessageLookupByLibrary.simpleMessage( "Sunt de acord cu termenii de prestare ai serviciului și politica de confidențialitate"), - "singleFileDeleteFromDevice": m69, + "singleFileDeleteFromDevice": m70, "singleFileDeleteHighlight": MessageLookupByLibrary.simpleMessage( "Acesta va fi șters din toate albumele."), - "singleFileInBothLocalAndRemote": m70, - "singleFileInRemoteOnly": m71, + "singleFileInBothLocalAndRemote": m71, + "singleFileInRemoteOnly": m72, "skip": MessageLookupByLibrary.simpleMessage("Omiteți"), "social": MessageLookupByLibrary.simpleMessage("Rețele socializare"), "someItemsAreInBothEnteAndYourDevice": @@ -1807,10 +1803,10 @@ class MessageLookup extends MessageLookupByLibrary { "storageInGB": m1, "storageLimitExceeded": MessageLookupByLibrary.simpleMessage("Limita de spațiu depășită"), - "storageUsageInfo": m72, + "storageUsageInfo": m73, "strongStrength": MessageLookupByLibrary.simpleMessage("Puternică"), - "subAlreadyLinkedErrMessage": m73, - "subWillBeCancelledOn": m74, + "subAlreadyLinkedErrMessage": m74, + "subWillBeCancelledOn": m75, "subscribe": MessageLookupByLibrary.simpleMessage("Abonare"), "subscribeToEnableSharing": MessageLookupByLibrary.simpleMessage( "Aveți nevoie de un abonament plătit activ pentru a activa distribuirea."), @@ -1827,7 +1823,7 @@ class MessageLookup extends MessageLookupByLibrary { "suggestFeatures": MessageLookupByLibrary.simpleMessage("Sugerați funcționalități"), "support": MessageLookupByLibrary.simpleMessage("Asistență"), - "syncProgress": m75, + "syncProgress": m76, "syncStopped": MessageLookupByLibrary.simpleMessage("Sincronizare oprită"), "syncing": MessageLookupByLibrary.simpleMessage("Sincronizare..."), @@ -1840,7 +1836,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Atingeți pentru a debloca"), "tapToUpload": MessageLookupByLibrary.simpleMessage("Atingeți pentru a încărca"), - "tapToUploadIsIgnoredDue": m76, + "tapToUploadIsIgnoredDue": m77, "tempErrorContactSupportIfPersists": MessageLookupByLibrary.simpleMessage( "Se pare că ceva nu a mers bine. Vă rugăm să încercați din nou după ceva timp. Dacă eroarea persistă, vă rugăm să contactați echipa noastră de asistență."), "terminate": MessageLookupByLibrary.simpleMessage("Terminare"), @@ -1863,7 +1859,7 @@ class MessageLookup extends MessageLookupByLibrary { "theseItemsWillBeDeletedFromYourDevice": MessageLookupByLibrary.simpleMessage( "Aceste articole vor fi șterse din dispozitivul dvs."), - "theyAlsoGetXGb": m77, + "theyAlsoGetXGb": m8, "theyWillBeDeletedFromAllAlbums": MessageLookupByLibrary.simpleMessage( "Acestea vor fi șterse din toate albumele."), "thisActionCannotBeUndone": MessageLookupByLibrary.simpleMessage( diff --git a/mobile/lib/generated/intl/messages_ru.dart b/mobile/lib/generated/intl/messages_ru.dart index 2c6326ce32a..e29631b3d5b 100644 --- a/mobile/lib/generated/intl/messages_ru.dart +++ b/mobile/lib/generated/intl/messages_ru.dart @@ -20,193 +20,193 @@ typedef String MessageIfAbsent(String messageStr, List args); class MessageLookup extends MessageLookupByLibrary { String get localeName => 'ru'; - static String m6(count) => + static String m9(count) => "${Intl.plural(count, one: 'Добавьте соавтора', few: 'Добавьте соавторов', many: 'Добавьте соавторов', other: 'Добавьте соавторов')}"; - static String m7(count) => + static String m10(count) => "${Intl.plural(count, one: 'Добавить элемент', other: 'Добавить элементы')}"; - static String m8(storageAmount, endDate) => + static String m11(storageAmount, endDate) => "Ваше дополнение ${storageAmount} действительно по ${endDate}"; - static String m9(count) => + static String m12(count) => "${Intl.plural(count, one: 'Добавьте зрителя', few: 'Добавьте зрителей', many: 'Добавьте зрителей', other: 'Добавьте зрителей')}"; - static String m10(emailOrName) => "Добавлено ${emailOrName}"; + static String m13(emailOrName) => "Добавлено ${emailOrName}"; - static String m11(albumName) => "Успешно добавлено в ${albumName}"; + static String m14(albumName) => "Успешно добавлено в ${albumName}"; - static String m12(count) => + static String m15(count) => "${Intl.plural(count, zero: 'Нет Участников', one: '1 Участник', other: '${count} Участника')}"; - static String m13(versionValue) => "Версия: ${versionValue}"; + static String m16(versionValue) => "Версия: ${versionValue}"; - static String m14(freeAmount, storageUnit) => + static String m17(freeAmount, storageUnit) => "${freeAmount} ${storageUnit} свободно"; - static String m15(paymentProvider) => + static String m18(paymentProvider) => "Пожалуйста, сначала отмените вашу существующую подписку от ${paymentProvider}"; - static String m16(user) => + static String m3(user) => "${user} больше не сможет добавлять фотографии в этот альбом\n\nОни все еще смогут удалять существующие фотографии, добавленные ими"; - static String m17(isFamilyMember, storageAmountInGb) => + static String m19(isFamilyMember, storageAmountInGb) => "${Intl.select(isFamilyMember, { 'true': 'Ваша семья получила ${storageAmountInGb} ГБ', 'false': 'Вы уже получили ${storageAmountInGb} ГБ', 'other': 'Вы уже получили ${storageAmountInGb} ГБ!', })}"; - static String m18(albumName) => "Совместная ссылка создана для ${albumName}"; + static String m20(albumName) => "Совместная ссылка создана для ${albumName}"; - static String m19(count) => + static String m21(count) => "${Intl.plural(count, zero: 'Добавлено 0 соавторов', one: 'Добавлен 1 соавтор', other: 'Добавлено ${count} соавторов')}"; - static String m21(familyAdminEmail) => + static String m23(familyAdminEmail) => "Пожалуйста, свяжитесь с ${familyAdminEmail} для управления подпиской"; - static String m22(provider) => + static String m24(provider) => "Пожалуйста, свяжитесь с нами по адресу support@ente.io для управления подпиской ${provider}."; - static String m23(endpoint) => "Подключено к ${endpoint}"; + static String m25(endpoint) => "Подключено к ${endpoint}"; - static String m24(count) => + static String m26(count) => "${Intl.plural(count, one: 'Удалена ${count} штука', other: 'Удалено ${count} штук')}"; - static String m25(currentlyDeleting, totalCount) => + static String m27(currentlyDeleting, totalCount) => "Удаление ${currentlyDeleting} / ${totalCount}"; - static String m26(albumName) => + static String m28(albumName) => "Это удалит публичную ссылку для доступа к \"${albumName}\"."; - static String m27(supportEmail) => + static String m29(supportEmail) => "Пожалуйста, отправьте электронное письмо на адрес ${supportEmail} с вашего зарегистрированного адреса электронной почты"; - static String m28(count, storageSaved) => + static String m30(count, storageSaved) => "Вы привели себя в порядок ${Intl.plural(count, one: '${count} duplicate file', other: '${count} duplicate files')}, экономия (${storageSaved}!)\n"; - static String m29(count, formattedSize) => + static String m31(count, formattedSize) => "${count} файлов, ${formattedSize}"; - static String m30(newEmail) => + static String m32(newEmail) => "Адрес электронной почты изменен на ${newEmail}"; - static String m31(email) => + static String m33(email) => "У ${email} нет учетной записи Ente.\n\nОтправьте им приглашение для обмена фотографиями."; - static String m32(text) => "Дополнительные фотографии найдены для ${text}"; + static String m34(text) => "Дополнительные фотографии найдены для ${text}"; - static String m33(count, formattedNumber) => + static String m35(count, formattedNumber) => "${Intl.plural(count, one: 'для 1 файла было создан бекап', other: 'для ${formattedNumber} файлов были созданы бекапы')}"; - static String m34(count, formattedNumber) => + static String m36(count, formattedNumber) => "${Intl.plural(count, one: 'для 1 файла было создан бекап', other: 'для ${formattedNumber} файлов были созданы бекапы')}"; - static String m35(storageAmountInGB) => + static String m4(storageAmountInGB) => "${storageAmountInGB} Гигабайт каждый раз когда кто-то подписывается на платный план и применяет ваш код"; - static String m36(endDate) => + static String m37(endDate) => "Бесплатная пробная версия действительна до ${endDate}"; - static String m37(count) => + static String m38(count) => "Вы все еще можете получить доступ к ${Intl.plural(count, one: 'ниму', other: 'ним')} на Ente, пока у вас есть активная подписка"; - static String m38(sizeInMBorGB) => "Освободите ${sizeInMBorGB}"; + static String m39(sizeInMBorGB) => "Освободите ${sizeInMBorGB}"; - static String m39(count, formattedSize) => + static String m40(count, formattedSize) => "${Intl.plural(count, one: 'Это можно удалить с устройства, чтобы освободить ${formattedSize}', other: 'Их можно удалить с устройства, чтобы освободить ${formattedSize}')}"; - static String m40(currentlyProcessing, totalCount) => + static String m41(currentlyProcessing, totalCount) => "Обработка ${currentlyProcessing} / ${totalCount}"; - static String m41(count) => + static String m42(count) => "${Intl.plural(count, one: '${count} штука', other: '${count} штук')}"; - static String m43(expiryTime) => "Ссылка истечёт через ${expiryTime}"; + static String m44(expiryTime) => "Ссылка истечёт через ${expiryTime}"; - static String m3(count, formattedCount) => + static String m5(count, formattedCount) => "${Intl.plural(count, zero: 'нет воспоминаний', one: '${formattedCount} воспоминание', other: '${formattedCount} воспоминаний')}"; - static String m44(count) => + static String m45(count) => "${Intl.plural(count, one: 'Переместить элемент', other: 'Переместить элементы')}"; - static String m45(albumName) => "Успешно перемещено в ${albumName}"; + static String m46(albumName) => "Успешно перемещено в ${albumName}"; - static String m46(personName) => "Нет предложений для ${personName}"; + static String m47(personName) => "Нет предложений для ${personName}"; - static String m47(name) => "Не ${name}?"; + static String m48(name) => "Не ${name}?"; static String m0(passwordStrengthValue) => "Мощность пароля: ${passwordStrengthValue}"; - static String m49(providerName) => + static String m50(providerName) => "Если с вас сняли оплату, обратитесь в службу поддержки ${providerName}"; - static String m50(count) => + static String m51(count) => "${Intl.plural(count, zero: '0 photo', one: '1 photo', other: '${count} photos')}"; - static String m51(endDate) => + static String m52(endDate) => "Бесплатный пробный период до ${endDate}.\nПосле, вы сможете выбрать платный план."; - static String m52(toEmail) => "Пожалуйста, напишите нам на ${toEmail}"; + static String m53(toEmail) => "Пожалуйста, напишите нам на ${toEmail}"; - static String m53(toEmail) => "Пожалуйста, отправьте логи на \n${toEmail}"; + static String m54(toEmail) => "Пожалуйста, отправьте логи на \n${toEmail}"; - static String m54(folderName) => "Обработка ${folderName}..."; + static String m55(folderName) => "Обработка ${folderName}..."; - static String m55(storeName) => "Оцените нас в ${storeName}"; + static String m56(storeName) => "Оцените нас в ${storeName}"; - static String m59(storageInGB) => + static String m60(storageInGB) => "3. Вы оба получаете ${storageInGB} Гигабайт* бесплатно"; - static String m60(userEmail) => + static String m61(userEmail) => "${userEmail} будет удален из этого общего альбома\n\nВсе добавленные им фотографии также будут удалены из альбома"; - static String m61(endDate) => "Обновление подписки на ${endDate}"; + static String m62(endDate) => "Обновление подписки на ${endDate}"; - static String m62(count) => + static String m63(count) => "${Intl.plural(count, one: '${count} результат найден', other: '${count} результатов найдено')}"; - static String m4(count) => "${count} выбрано"; + static String m6(count) => "${count} выбрано"; - static String m64(count, yourCount) => "${count} выбрано (${yourCount} ваши)"; + static String m65(count, yourCount) => "${count} выбрано (${yourCount} ваши)"; - static String m65(verificationID) => + static String m66(verificationID) => "Вот мой проверочный ID: ${verificationID} для ente.io."; - static String m5(verificationID) => + static String m7(verificationID) => "Эй, вы можете подтвердить, что это ваш идентификатор подтверждения ente.io: ${verificationID}"; - static String m66(referralCode, referralStorageInGB) => + static String m67(referralCode, referralStorageInGB) => "Реферальный код Ente: ${referralCode} \n\nПримените его в разделе «Настройки» → «Основные» → «Рефералы», чтобы получить ${referralStorageInGB} Гигабайт бесплатно после того как вы подпишетесь на платный план"; - static String m67(numberOfPeople) => + static String m68(numberOfPeople) => "${Intl.plural(numberOfPeople, zero: 'Поделится с конкретными людьми', one: 'Поделено с 1 человеком', other: 'Поделено с ${numberOfPeople} людьми')}"; - static String m68(emailIDs) => "Поделиться с ${emailIDs}"; + static String m69(emailIDs) => "Поделиться с ${emailIDs}"; - static String m69(fileType) => + static String m70(fileType) => "Это ${fileType} будет удалено с вашего устройства."; - static String m70(fileType) => + static String m71(fileType) => "Этот ${fileType} есть и в Ente, и на вашем устройстве."; - static String m71(fileType) => "Этот ${fileType} будет удалён из Ente."; + static String m72(fileType) => "Этот ${fileType} будет удалён из Ente."; static String m1(storageAmountInGB) => "${storageAmountInGB} Гигабайт"; - static String m72( + static String m73( usedAmount, usedStorageUnit, totalAmount, totalStorageUnit) => "${usedAmount} ${usedStorageUnit} из ${totalAmount} ${totalStorageUnit} использовано"; - static String m73(id) => + static String m74(id) => "Ваш ${id} уже связан с другой учетной записью Ente.\nЕсли вы хотите использовать ${id} с этой учетной записью, пожалуйста, свяжитесь с нашей службой поддержки"; - static String m74(endDate) => "Ваша подписка будет отменена ${endDate}"; + static String m75(endDate) => "Ваша подписка будет отменена ${endDate}"; - static String m75(completed, total) => "${completed}/${total} сохранено"; + static String m76(completed, total) => "${completed}/${total} сохранено"; - static String m77(storageAmountInGB) => + static String m8(storageAmountInGB) => "Они тоже получат ${storageAmountInGB} Гигабайт"; static String m78(email) => @@ -254,11 +254,11 @@ class MessageLookup extends MessageLookupByLibrary { "Добавить новый адрес эл. почты"), "addCollaborator": MessageLookupByLibrary.simpleMessage("Добавить соавтора"), - "addCollaborators": m6, + "addCollaborators": m9, "addFiles": MessageLookupByLibrary.simpleMessage("Добавить файлы"), "addFromDevice": MessageLookupByLibrary.simpleMessage("Добавить с устройства"), - "addItem": m7, + "addItem": m10, "addLocation": MessageLookupByLibrary.simpleMessage("Добавить место"), "addLocationButton": MessageLookupByLibrary.simpleMessage("Добавить"), "addMore": MessageLookupByLibrary.simpleMessage("Добавить еще"), @@ -270,7 +270,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Добавить новую персону"), "addOnPageSubtitle": MessageLookupByLibrary.simpleMessage("Подробнее о расширениях"), - "addOnValidTill": m8, + "addOnValidTill": m11, "addOns": MessageLookupByLibrary.simpleMessage("Расширения"), "addPhotos": MessageLookupByLibrary.simpleMessage("Добавить фотографии"), @@ -284,12 +284,12 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Добавить доверенный контакт"), "addViewer": MessageLookupByLibrary.simpleMessage("Добавить наблюдателя"), - "addViewers": m9, + "addViewers": m12, "addYourPhotosNow": MessageLookupByLibrary.simpleMessage("Добавьте ваши фотографии"), "addedAs": MessageLookupByLibrary.simpleMessage("Добавлено как"), - "addedBy": m10, - "addedSuccessfullyTo": m11, + "addedBy": m13, + "addedSuccessfullyTo": m14, "addingToFavorites": MessageLookupByLibrary.simpleMessage("Добавление в избранное..."), "advanced": MessageLookupByLibrary.simpleMessage("Дополнительно"), @@ -301,7 +301,7 @@ class MessageLookup extends MessageLookupByLibrary { "after1Week": MessageLookupByLibrary.simpleMessage("Через неделю"), "after1Year": MessageLookupByLibrary.simpleMessage("Через 1 год"), "albumOwner": MessageLookupByLibrary.simpleMessage("Владелец"), - "albumParticipantsCount": m12, + "albumParticipantsCount": m15, "albumTitle": MessageLookupByLibrary.simpleMessage("Название альбома"), "albumUpdated": MessageLookupByLibrary.simpleMessage("Альбом обновлен"), "albums": MessageLookupByLibrary.simpleMessage("Альбомы"), @@ -346,7 +346,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Блокировка приложения"), "appLockDescriptions": MessageLookupByLibrary.simpleMessage( "Выберите между экраном блокировки вашего устройства и пользовательским экраном блокировки с PIN-кодом или паролем."), - "appVersion": m13, + "appVersion": m16, "appleId": MessageLookupByLibrary.simpleMessage("Apple ID"), "apply": MessageLookupByLibrary.simpleMessage("Применить"), "applyCodeTitle": MessageLookupByLibrary.simpleMessage("Применить код"), @@ -425,7 +425,7 @@ class MessageLookup extends MessageLookupByLibrary { "autoPairDesc": MessageLookupByLibrary.simpleMessage( "Автоматическое подключение работает только с устройствами, поддерживающими Chromecast."), "available": MessageLookupByLibrary.simpleMessage("Доступно"), - "availableStorageSpace": m14, + "availableStorageSpace": m17, "backedUpFolders": MessageLookupByLibrary.simpleMessage("Резервное копирование папок"), "backup": MessageLookupByLibrary.simpleMessage("Резервное копирование"), @@ -456,10 +456,10 @@ class MessageLookup extends MessageLookupByLibrary { "canOnlyRemoveFilesOwnedByYou": MessageLookupByLibrary.simpleMessage( "Можно удалять только файлы, принадлежащие вам"), "cancel": MessageLookupByLibrary.simpleMessage("Отменить"), - "cancelOtherSubscription": m15, + "cancelOtherSubscription": m18, "cancelSubscription": MessageLookupByLibrary.simpleMessage("Отменить подписку"), - "cannotAddMorePhotosAfterBecomingViewer": m16, + "cannotAddMorePhotosAfterBecomingViewer": m3, "cannotDeleteSharedFiles": MessageLookupByLibrary.simpleMessage( "Невозможно удалить общие файлы"), "castAlbum": MessageLookupByLibrary.simpleMessage("Трансляция альбома"), @@ -510,7 +510,7 @@ class MessageLookup extends MessageLookupByLibrary { "Получить бесплатное хранилище"), "claimMore": MessageLookupByLibrary.simpleMessage("Получите больше!"), "claimed": MessageLookupByLibrary.simpleMessage("Получено"), - "claimedStorageSoFar": m17, + "claimedStorageSoFar": m19, "cleanUncategorized": MessageLookupByLibrary.simpleMessage("Очистить \"Без Категории\""), "cleanUncategorizedDescription": MessageLookupByLibrary.simpleMessage( @@ -538,12 +538,12 @@ class MessageLookup extends MessageLookupByLibrary { "Создайте ссылку, чтобы позволить людям добавлять и просматривать фотографии в вашем общем альбоме без приложения или учетной записи Ente. Отлично подходит для сбора фотографий событий."), "collaborativeLink": MessageLookupByLibrary.simpleMessage("Совместная ссылка"), - "collaborativeLinkCreatedFor": m18, + "collaborativeLinkCreatedFor": m20, "collaborator": MessageLookupByLibrary.simpleMessage("Соавтор"), "collaboratorsCanAddPhotosAndVideosToTheSharedAlbum": MessageLookupByLibrary.simpleMessage( "Соавторы могут добавлять фотографии и видео в общий альбом."), - "collaboratorsSuccessfullyAdded": m19, + "collaboratorsSuccessfullyAdded": m21, "collageLayout": MessageLookupByLibrary.simpleMessage("Разметка"), "collageSaved": MessageLookupByLibrary.simpleMessage("Коллаж сохранен в галерее"), @@ -573,10 +573,10 @@ class MessageLookup extends MessageLookupByLibrary { "Подтвердите ваш ключ восстановления"), "connectToDevice": MessageLookupByLibrary.simpleMessage("Подключиться к устройству"), - "contactFamilyAdmin": m21, + "contactFamilyAdmin": m23, "contactSupport": MessageLookupByLibrary.simpleMessage("Связаться с поддержкой"), - "contactToManageSubscription": m22, + "contactToManageSubscription": m24, "contacts": MessageLookupByLibrary.simpleMessage("Контакты"), "contents": MessageLookupByLibrary.simpleMessage("Содержимое"), "continueLabel": MessageLookupByLibrary.simpleMessage("Далее"), @@ -623,7 +623,7 @@ class MessageLookup extends MessageLookupByLibrary { "currentlyRunning": MessageLookupByLibrary.simpleMessage("сейчас запущено"), "custom": MessageLookupByLibrary.simpleMessage("Свой"), - "customEndpoint": m23, + "customEndpoint": m25, "darkTheme": MessageLookupByLibrary.simpleMessage("Темная тема"), "dayToday": MessageLookupByLibrary.simpleMessage("Сегодня"), "dayYesterday": MessageLookupByLibrary.simpleMessage("Вчера"), @@ -661,11 +661,11 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Удалить с устройства"), "deleteFromEnte": MessageLookupByLibrary.simpleMessage("Удалить из Ente"), - "deleteItemCount": m24, + "deleteItemCount": m26, "deleteLocation": MessageLookupByLibrary.simpleMessage("Удалить местоположение"), "deletePhotos": MessageLookupByLibrary.simpleMessage("Удалить фото"), - "deleteProgress": m25, + "deleteProgress": m27, "deleteReason1": MessageLookupByLibrary.simpleMessage( "У вас отсутствует важная функция, которая мне нужна"), "deleteReason2": MessageLookupByLibrary.simpleMessage( @@ -704,7 +704,7 @@ class MessageLookup extends MessageLookupByLibrary { "Наблюдатели все еще могут делать скриншоты или копировать ваши фотографии с помощью других инструментов"), "disableDownloadWarningTitle": MessageLookupByLibrary.simpleMessage("Обратите внимание"), - "disableLinkMessage": m26, + "disableLinkMessage": m28, "disableTwofactor": MessageLookupByLibrary.simpleMessage( "Отключить двухфакторную аутентификацию"), "disablingTwofactorAuthentication": @@ -737,9 +737,9 @@ class MessageLookup extends MessageLookupByLibrary { "downloadFailed": MessageLookupByLibrary.simpleMessage("Загрузка не удалась"), "downloading": MessageLookupByLibrary.simpleMessage("Скачивание..."), - "dropSupportEmail": m27, - "duplicateFileCountWithStorageSaved": m28, - "duplicateItemsGroup": m29, + "dropSupportEmail": m29, + "duplicateFileCountWithStorageSaved": m30, + "duplicateItemsGroup": m31, "edit": MessageLookupByLibrary.simpleMessage("Редактировать"), "editLocation": MessageLookupByLibrary.simpleMessage("Изменить местоположение"), @@ -754,8 +754,8 @@ class MessageLookup extends MessageLookupByLibrary { "Редактирования в местоположении будут видны только внутри Ente"), "eligible": MessageLookupByLibrary.simpleMessage("подходящий"), "email": MessageLookupByLibrary.simpleMessage("Электронная почта"), - "emailChangedTo": m30, - "emailNoEnteAccount": m31, + "emailChangedTo": m32, + "emailNoEnteAccount": m33, "emailVerificationToggle": MessageLookupByLibrary.simpleMessage("Вход с кодом на почту"), "emailYourLogs": MessageLookupByLibrary.simpleMessage( @@ -835,7 +835,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Экспорт данных"), "extraPhotosFound": MessageLookupByLibrary.simpleMessage( "Найдены дополнительные фотографии"), - "extraPhotosFoundFor": m32, + "extraPhotosFoundFor": m34, "faceNotClusteredYet": MessageLookupByLibrary.simpleMessage( "Лицо еще не кластеризовано, пожалуйста, вернитесь позже"), "faceRecognition": @@ -885,8 +885,8 @@ class MessageLookup extends MessageLookupByLibrary { "fileTypes": MessageLookupByLibrary.simpleMessage("Типы файлов"), "fileTypesAndNames": MessageLookupByLibrary.simpleMessage("Типы файлов и имена"), - "filesBackedUpFromDevice": m33, - "filesBackedUpInAlbum": m34, + "filesBackedUpFromDevice": m35, + "filesBackedUpInAlbum": m36, "filesDeleted": MessageLookupByLibrary.simpleMessage("Файлы удалены"), "filesSavedToGallery": MessageLookupByLibrary.simpleMessage("Файлы сохранены в галерею"), @@ -899,26 +899,26 @@ class MessageLookup extends MessageLookupByLibrary { "foundFaces": MessageLookupByLibrary.simpleMessage("Найденные лица"), "freeStorageClaimed": MessageLookupByLibrary.simpleMessage( "Бесплатного хранилища получено"), - "freeStorageOnReferralSuccess": m35, + "freeStorageOnReferralSuccess": m4, "freeStorageUsable": MessageLookupByLibrary.simpleMessage( "Бесплатного хранилища можно использовать"), "freeTrial": MessageLookupByLibrary.simpleMessage("Бесплатный пробный период"), - "freeTrialValidTill": m36, - "freeUpAccessPostDelete": m37, - "freeUpAmount": m38, + "freeTrialValidTill": m37, + "freeUpAccessPostDelete": m38, + "freeUpAmount": m39, "freeUpDeviceSpace": MessageLookupByLibrary.simpleMessage( "Освободите место на устройстве"), "freeUpDeviceSpaceDesc": MessageLookupByLibrary.simpleMessage( "Сохраните место на вашем устройстве, очистив уже сохраненные файлы."), "freeUpSpace": MessageLookupByLibrary.simpleMessage("Освободить место"), - "freeUpSpaceSaving": m39, + "freeUpSpaceSaving": m40, "galleryMemoryLimitInfo": MessageLookupByLibrary.simpleMessage( "До 1000 воспоминаний, отображаемых в галерее"), "general": MessageLookupByLibrary.simpleMessage("Общее"), "generatingEncryptionKeys": MessageLookupByLibrary.simpleMessage( "Генерируем ключи шифрования..."), - "genericProgress": m40, + "genericProgress": m41, "goToSettings": MessageLookupByLibrary.simpleMessage("Перейти в настройки"), "googlePlayId": MessageLookupByLibrary.simpleMessage("Google Play ID"), @@ -1001,7 +1001,7 @@ class MessageLookup extends MessageLookupByLibrary { "itLooksLikeSomethingWentWrongPleaseRetryAfterSome": MessageLookupByLibrary.simpleMessage( "Похоже, что-то пошло не так. Пожалуйста, повторите попытку через некоторое время. Если ошибка повторится, обратитесь в нашу службу поддержки."), - "itemCount": m41, + "itemCount": m42, "itemsShowTheNumberOfDaysRemainingBeforePermanentDeletion": MessageLookupByLibrary.simpleMessage( "Элементы показывают количество дней, оставшихся до окончательного удаления"), @@ -1026,15 +1026,13 @@ class MessageLookup extends MessageLookupByLibrary { "Доверенные контакты могут инициировать восстановление учетной записи, если они не будут заблокированы в течение 30 дней, сбросить пароль и получить доступ к вашей учетной записи."), "light": MessageLookupByLibrary.simpleMessage("Светлая тема"), "lightTheme": MessageLookupByLibrary.simpleMessage("Светлая тема"), - "link": MessageLookupByLibrary.simpleMessage("Link"), "linkCopiedToClipboard": MessageLookupByLibrary.simpleMessage( "Ссылка скопирована в буфер обмена"), "linkDeviceLimit": MessageLookupByLibrary.simpleMessage("Лимит устройств"), - "linkEmail": MessageLookupByLibrary.simpleMessage("Link email"), "linkEnabled": MessageLookupByLibrary.simpleMessage("Разрешён"), "linkExpired": MessageLookupByLibrary.simpleMessage("Истекшая"), - "linkExpiresOn": m43, + "linkExpiresOn": m44, "linkExpiry": MessageLookupByLibrary.simpleMessage("Срок действия ссылки истек"), "linkHasExpired": @@ -1125,7 +1123,7 @@ class MessageLookup extends MessageLookupByLibrary { "maps": MessageLookupByLibrary.simpleMessage("Карты"), "mastodon": MessageLookupByLibrary.simpleMessage("Mastodon"), "matrix": MessageLookupByLibrary.simpleMessage("Matrix"), - "memoryCount": m3, + "memoryCount": m5, "merchandise": MessageLookupByLibrary.simpleMessage("Товары"), "mergeWithExisting": MessageLookupByLibrary.simpleMessage("Объединить с существующим"), @@ -1156,12 +1154,12 @@ class MessageLookup extends MessageLookupByLibrary { "mostRecent": MessageLookupByLibrary.simpleMessage("Недавние"), "mostRelevant": MessageLookupByLibrary.simpleMessage("Сначала актуальные"), - "moveItem": m44, + "moveItem": m45, "moveToAlbum": MessageLookupByLibrary.simpleMessage("Переместить в альбом"), "moveToHiddenAlbum": MessageLookupByLibrary.simpleMessage( "Переместить в скрытый альбом"), - "movedSuccessfullyTo": m45, + "movedSuccessfullyTo": m46, "movedToTrash": MessageLookupByLibrary.simpleMessage("Перемещено в корзину"), "movingFilesToAlbum": MessageLookupByLibrary.simpleMessage( @@ -1191,8 +1189,6 @@ class MessageLookup extends MessageLookupByLibrary { "У вас нет файлов на этом устройстве, которые могут быть удалены"), "noDuplicates": MessageLookupByLibrary.simpleMessage("✨ Дубликатов нет"), - "noEnteAccountExclamation": - MessageLookupByLibrary.simpleMessage("No Ente account!"), "noExifData": MessageLookupByLibrary.simpleMessage("Нет данных EXIF"), "noFacesFound": MessageLookupByLibrary.simpleMessage("Лица не найдены"), "noHiddenPhotosOrVideos": @@ -1215,10 +1211,10 @@ class MessageLookup extends MessageLookupByLibrary { "noResults": MessageLookupByLibrary.simpleMessage("Ничего не найденo"), "noResultsFound": MessageLookupByLibrary.simpleMessage("Ничего не найдено"), - "noSuggestionsForPerson": m46, + "noSuggestionsForPerson": m47, "noSystemLockFound": MessageLookupByLibrary.simpleMessage( "Системная блокировка не найдена"), - "notPersonLabel": m47, + "notPersonLabel": m48, "nothingSharedWithYouYet": MessageLookupByLibrary.simpleMessage( "Пока никто не поделился с вами"), "nothingToSeeHere": @@ -1276,7 +1272,7 @@ class MessageLookup extends MessageLookupByLibrary { "paymentFailed": MessageLookupByLibrary.simpleMessage("Сбой платежа"), "paymentFailedMessage": MessageLookupByLibrary.simpleMessage( "К сожалению, ваш платеж не был выполнен. Пожалуйста, свяжитесь со службой поддержки, и мы вам поможем!"), - "paymentFailedTalkToProvider": m49, + "paymentFailedTalkToProvider": m50, "pendingItems": MessageLookupByLibrary.simpleMessage("Отложенные элементы"), "pendingSync": @@ -1300,14 +1296,14 @@ class MessageLookup extends MessageLookupByLibrary { "photosAddedByYouWillBeRemovedFromTheAlbum": MessageLookupByLibrary.simpleMessage( "Добавленные вами фотографии будут удалены из альбома"), - "photosCount": m50, + "photosCount": m51, "pickCenterPoint": MessageLookupByLibrary.simpleMessage("Указать центральную точку"), "pinAlbum": MessageLookupByLibrary.simpleMessage("Закрепить альбом"), "pinLock": MessageLookupByLibrary.simpleMessage("Блокировка PIN-кодом"), "playOnTv": MessageLookupByLibrary.simpleMessage("Воспроизвести альбом на ТВ"), - "playStoreFreeTrialValidTill": m51, + "playStoreFreeTrialValidTill": m52, "playstoreSubscription": MessageLookupByLibrary.simpleMessage("Подписка на PlayStore"), "pleaseCheckYourInternetConnectionAndTryAgain": @@ -1319,14 +1315,14 @@ class MessageLookup extends MessageLookupByLibrary { "pleaseContactSupportIfTheProblemPersists": MessageLookupByLibrary.simpleMessage( "Если проблема не устранена, обратитесь в службу поддержки"), - "pleaseEmailUsAt": m52, + "pleaseEmailUsAt": m53, "pleaseGrantPermissions": MessageLookupByLibrary.simpleMessage("Предоставьте разрешение"), "pleaseLoginAgain": MessageLookupByLibrary.simpleMessage("Пожалуйста, войдите снова"), "pleaseSelectQuickLinksToRemove": MessageLookupByLibrary.simpleMessage( "Пожалуйста, выберите быстрые ссылки для удаления"), - "pleaseSendTheLogsTo": m53, + "pleaseSendTheLogsTo": m54, "pleaseTryAgain": MessageLookupByLibrary.simpleMessage( "Пожалуйста, попробуйте ещё раз"), "pleaseVerifyTheCodeYouHaveEntered": @@ -1353,7 +1349,7 @@ class MessageLookup extends MessageLookupByLibrary { "privateBackups": MessageLookupByLibrary.simpleMessage("Приватные резервные копии"), "privateSharing": MessageLookupByLibrary.simpleMessage("Личный доступ"), - "processingImport": m54, + "processingImport": m55, "publicLinkCreated": MessageLookupByLibrary.simpleMessage("Публичная ссылка создана"), "publicLinkEnabled": @@ -1364,7 +1360,7 @@ class MessageLookup extends MessageLookupByLibrary { "rateTheApp": MessageLookupByLibrary.simpleMessage("Оценить приложение"), "rateUs": MessageLookupByLibrary.simpleMessage("Оцените нас"), - "rateUsOnStore": m55, + "rateUsOnStore": m56, "recover": MessageLookupByLibrary.simpleMessage("Восстановить"), "recoverAccount": MessageLookupByLibrary.simpleMessage("Восстановить аккаунт"), @@ -1402,7 +1398,7 @@ class MessageLookup extends MessageLookupByLibrary { "1. Дайте этот код своим друзьям"), "referralStep2": MessageLookupByLibrary.simpleMessage( "2. Они подписываются на платный план"), - "referralStep3": m59, + "referralStep3": m60, "referrals": MessageLookupByLibrary.simpleMessage("Рефералы"), "referralsAreCurrentlyPaused": MessageLookupByLibrary.simpleMessage( "Рефералы в настоящее время приостановлены"), @@ -1433,7 +1429,7 @@ class MessageLookup extends MessageLookupByLibrary { "removeLink": MessageLookupByLibrary.simpleMessage("Удалить ссылку"), "removeParticipant": MessageLookupByLibrary.simpleMessage("Исключить участника"), - "removeParticipantBody": m60, + "removeParticipantBody": m61, "removePersonLabel": MessageLookupByLibrary.simpleMessage("Удалить метку человека"), "removePublicLink": @@ -1455,7 +1451,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Переименовать файл"), "renewSubscription": MessageLookupByLibrary.simpleMessage("Продлить подписку"), - "renewsOn": m61, + "renewsOn": m62, "reportABug": MessageLookupByLibrary.simpleMessage("Сообщить об ошибке"), "reportBug": MessageLookupByLibrary.simpleMessage("Сообщить об ошибке"), @@ -1531,7 +1527,7 @@ class MessageLookup extends MessageLookupByLibrary { "Групповые фотографии, сделанные в некотором радиусе от фотографии"), "searchPeopleEmptySection": MessageLookupByLibrary.simpleMessage( "Пригласите людей, и вы увидите все фотографии, которыми они поделились здесь"), - "searchResultCount": m62, + "searchResultCount": m63, "security": MessageLookupByLibrary.simpleMessage("Безопасность"), "seePublicAlbumLinksInApp": MessageLookupByLibrary.simpleMessage( "Смотреть ссылки публичного альбома в приложении"), @@ -1564,8 +1560,8 @@ class MessageLookup extends MessageLookupByLibrary { "selectedItemsWillBeDeletedFromAllAlbumsAndMoved": MessageLookupByLibrary.simpleMessage( "Выбранные элементы будут удалены из всех альбомов и перемещены в корзину."), - "selectedPhotos": m4, - "selectedPhotosWithYours": m64, + "selectedPhotos": m6, + "selectedPhotosWithYours": m65, "send": MessageLookupByLibrary.simpleMessage("Отправить"), "sendEmail": MessageLookupByLibrary.simpleMessage( "Отправить электронное письмо"), @@ -1600,16 +1596,16 @@ class MessageLookup extends MessageLookupByLibrary { "shareAnAlbumNow": MessageLookupByLibrary.simpleMessage("Поделиться альбомом сейчас"), "shareLink": MessageLookupByLibrary.simpleMessage("Поделиться ссылкой"), - "shareMyVerificationID": m65, + "shareMyVerificationID": m66, "shareOnlyWithThePeopleYouWant": MessageLookupByLibrary.simpleMessage( "Поделитесь только с теми людьми, с которыми вы хотите"), - "shareTextConfirmOthersVerificationID": m5, + "shareTextConfirmOthersVerificationID": m7, "shareTextRecommendUsingEnte": MessageLookupByLibrary.simpleMessage( "Скачай Ente, чтобы мы могли легко поделиться фотографиями и видео без сжатия\n\nhttps://ente.io"), - "shareTextReferralCode": m66, + "shareTextReferralCode": m67, "shareWithNonenteUsers": MessageLookupByLibrary.simpleMessage( "Поделится с пользователями без Ente"), - "shareWithPeopleSectionTitle": m67, + "shareWithPeopleSectionTitle": m68, "shareYourFirstAlbum": MessageLookupByLibrary.simpleMessage("Поделиться первым альбомом"), "sharedAlbumSectionDescription": MessageLookupByLibrary.simpleMessage( @@ -1620,7 +1616,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Новые общие фотографии"), "sharedPhotoNotificationsExplanation": MessageLookupByLibrary.simpleMessage( "Получать уведомления, когда кто-то добавляет фото в общий альбом, в котором вы состоите"), - "sharedWith": m68, + "sharedWith": m69, "sharedWithMe": MessageLookupByLibrary.simpleMessage("Поделиться со мной"), "sharedWithYou": @@ -1637,11 +1633,11 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Выйти из других устройств"), "signUpTerms": MessageLookupByLibrary.simpleMessage( "Я согласен с условиями предоставления услуг и политикой конфиденциальности"), - "singleFileDeleteFromDevice": m69, + "singleFileDeleteFromDevice": m70, "singleFileDeleteHighlight": MessageLookupByLibrary.simpleMessage( "Он будет удален из всех альбомов."), - "singleFileInBothLocalAndRemote": m70, - "singleFileInRemoteOnly": m71, + "singleFileInBothLocalAndRemote": m71, + "singleFileInRemoteOnly": m72, "skip": MessageLookupByLibrary.simpleMessage("Пропустить"), "social": MessageLookupByLibrary.simpleMessage("Соцсети"), "someItemsAreInBothEnteAndYourDevice": MessageLookupByLibrary.simpleMessage( @@ -1689,10 +1685,10 @@ class MessageLookup extends MessageLookupByLibrary { "storageInGB": m1, "storageLimitExceeded": MessageLookupByLibrary.simpleMessage("Превышен предел хранения"), - "storageUsageInfo": m72, + "storageUsageInfo": m73, "strongStrength": MessageLookupByLibrary.simpleMessage("Сильный"), - "subAlreadyLinkedErrMessage": m73, - "subWillBeCancelledOn": m74, + "subAlreadyLinkedErrMessage": m74, + "subWillBeCancelledOn": m75, "subscribe": MessageLookupByLibrary.simpleMessage("Подписаться"), "subscription": MessageLookupByLibrary.simpleMessage("Подписка"), "success": MessageLookupByLibrary.simpleMessage("Успешно"), @@ -1707,7 +1703,7 @@ class MessageLookup extends MessageLookupByLibrary { "suggestFeatures": MessageLookupByLibrary.simpleMessage("Предложить идею"), "support": MessageLookupByLibrary.simpleMessage("Поддержка"), - "syncProgress": m75, + "syncProgress": m76, "syncStopped": MessageLookupByLibrary.simpleMessage("Синхронизация остановлена"), "syncing": MessageLookupByLibrary.simpleMessage("Синхронизация..."), @@ -1741,7 +1737,7 @@ class MessageLookup extends MessageLookupByLibrary { "theseItemsWillBeDeletedFromYourDevice": MessageLookupByLibrary.simpleMessage( "Эти элементы будут удалено с вашего устройства."), - "theyAlsoGetXGb": m77, + "theyAlsoGetXGb": m8, "theyWillBeDeletedFromAllAlbums": MessageLookupByLibrary.simpleMessage( "Они будут удален из всех альбомов."), "thisActionCannotBeUndone": MessageLookupByLibrary.simpleMessage( diff --git a/mobile/lib/generated/intl/messages_sl.dart b/mobile/lib/generated/intl/messages_sl.dart index 199ddd31bd2..d41d848b0fd 100644 --- a/mobile/lib/generated/intl/messages_sl.dart +++ b/mobile/lib/generated/intl/messages_sl.dart @@ -21,10 +21,5 @@ class MessageLookup extends MessageLookupByLibrary { String get localeName => 'sl'; final messages = _notInlinedMessages(_notInlinedMessages); - static Map _notInlinedMessages(_) => { - "link": MessageLookupByLibrary.simpleMessage("Link"), - "linkEmail": MessageLookupByLibrary.simpleMessage("Link email"), - "noEnteAccountExclamation": - MessageLookupByLibrary.simpleMessage("No Ente account!") - }; + static Map _notInlinedMessages(_) => {}; } diff --git a/mobile/lib/generated/intl/messages_sv.dart b/mobile/lib/generated/intl/messages_sv.dart index 35921400fe4..059aa39edec 100644 --- a/mobile/lib/generated/intl/messages_sv.dart +++ b/mobile/lib/generated/intl/messages_sv.dart @@ -20,57 +20,57 @@ typedef String MessageIfAbsent(String messageStr, List args); class MessageLookup extends MessageLookupByLibrary { String get localeName => 'sv'; - static String m7(count) => + static String m10(count) => "${Intl.plural(count, one: 'Lägg till objekt', other: 'Lägg till objekt')}"; - static String m12(count) => + static String m15(count) => "${Intl.plural(count, zero: 'Inga deltagare', one: '1 deltagare', other: '${count} deltagare')}"; - static String m13(versionValue) => "Version: ${versionValue}"; + static String m16(versionValue) => "Version: ${versionValue}"; - static String m14(freeAmount, storageUnit) => + static String m17(freeAmount, storageUnit) => "${freeAmount} ${storageUnit} gratis"; - static String m16(user) => + static String m3(user) => "${user} kommer inte att kunna lägga till fler foton till detta album\n\nDe kommer fortfarande att kunna ta bort befintliga foton som lagts till av dem"; - static String m24(count) => + static String m26(count) => "${Intl.plural(count, one: 'Radera ${count} objekt', other: 'Radera ${count} objekt')}"; - static String m27(supportEmail) => + static String m29(supportEmail) => "Vänligen skicka ett e-postmeddelande till ${supportEmail} från din registrerade e-postadress"; - static String m31(email) => + static String m33(email) => "${email} har inte ett Ente-konto.\n\nSkicka dem en inbjudan för att dela bilder."; - static String m41(count) => + static String m42(count) => "${Intl.plural(count, one: '${count} objekt', other: '${count} objekt')}"; - static String m43(expiryTime) => "Länken upphör att gälla ${expiryTime}"; + static String m44(expiryTime) => "Länken upphör att gälla ${expiryTime}"; - static String m44(count) => + static String m45(count) => "${Intl.plural(count, one: 'Flytta objekt', other: 'Flytta objekt')}"; - static String m47(name) => "Inte ${name}?"; + static String m48(name) => "Inte ${name}?"; - static String m48(familyAdminEmail) => + static String m49(familyAdminEmail) => "Kontakta ${familyAdminEmail} för att ändra din kod."; static String m0(passwordStrengthValue) => "Lösenordsstyrka: ${passwordStrengthValue}"; - static String m55(storeName) => "Betygsätt oss på ${storeName}"; + static String m56(storeName) => "Betygsätt oss på ${storeName}"; - static String m62(count) => + static String m63(count) => "${Intl.plural(count, one: '${count} resultat hittades', other: '${count} resultat hittades')}"; - static String m65(verificationID) => + static String m66(verificationID) => "Här är mitt verifierings-ID: ${verificationID} för ente.io."; - static String m5(verificationID) => + static String m7(verificationID) => "Hallå, kan du bekräfta att detta är ditt ente.io verifierings-ID: ${verificationID}"; - static String m67(numberOfPeople) => + static String m68(numberOfPeople) => "${Intl.plural(numberOfPeople, zero: 'Dela med specifika personer', one: 'Delad med en person', other: 'Delad med ${numberOfPeople} personer')}"; static String m1(storageAmountInGB) => "${storageAmountInGB} GB"; @@ -106,7 +106,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Lägg till samarbetspartner"), "addFromDevice": MessageLookupByLibrary.simpleMessage("Lägg till från enhet"), - "addItem": m7, + "addItem": m10, "addLocationButton": MessageLookupByLibrary.simpleMessage("Lägg till"), "addMore": MessageLookupByLibrary.simpleMessage("Lägg till fler"), "addName": MessageLookupByLibrary.simpleMessage("Lägg till namn"), @@ -119,7 +119,7 @@ class MessageLookup extends MessageLookupByLibrary { "after1Week": MessageLookupByLibrary.simpleMessage("Om en vecka"), "after1Year": MessageLookupByLibrary.simpleMessage("Om ett år"), "albumOwner": MessageLookupByLibrary.simpleMessage("Ägare"), - "albumParticipantsCount": m12, + "albumParticipantsCount": m15, "albumUpdated": MessageLookupByLibrary.simpleMessage("Album uppdaterat"), "albums": MessageLookupByLibrary.simpleMessage("Album"), @@ -130,7 +130,7 @@ class MessageLookup extends MessageLookupByLibrary { "allowDownloads": MessageLookupByLibrary.simpleMessage("Tillåt nedladdningar"), "androidCancelButton": MessageLookupByLibrary.simpleMessage("Avbryt"), - "appVersion": m13, + "appVersion": m16, "apply": MessageLookupByLibrary.simpleMessage("Verkställ"), "applyCodeTitle": MessageLookupByLibrary.simpleMessage("Använd kod"), "areYouSureYouWantToLogout": MessageLookupByLibrary.simpleMessage( @@ -140,10 +140,10 @@ class MessageLookup extends MessageLookupByLibrary { "authenticationFailedPleaseTryAgain": MessageLookupByLibrary.simpleMessage( "Autentisering misslyckades, försök igen"), - "availableStorageSpace": m14, + "availableStorageSpace": m17, "blog": MessageLookupByLibrary.simpleMessage("Blogg"), "cancel": MessageLookupByLibrary.simpleMessage("Avbryt"), - "cannotAddMorePhotosAfterBecomingViewer": m16, + "cannotAddMorePhotosAfterBecomingViewer": m3, "change": MessageLookupByLibrary.simpleMessage("Ändra"), "changeEmail": MessageLookupByLibrary.simpleMessage("Ändra e-postadress"), @@ -214,7 +214,7 @@ class MessageLookup extends MessageLookupByLibrary { "Vänligen skicka ett e-postmeddelande till account-deletion@ente.io från din registrerade e-postadress."), "deleteFromDevice": MessageLookupByLibrary.simpleMessage("Radera från enhet"), - "deleteItemCount": m24, + "deleteItemCount": m26, "deletePhotos": MessageLookupByLibrary.simpleMessage("Radera foton"), "deleteReason1": MessageLookupByLibrary.simpleMessage( "Det saknas en viktig funktion som jag behöver"), @@ -235,10 +235,10 @@ class MessageLookup extends MessageLookupByLibrary { "discover_receipts": MessageLookupByLibrary.simpleMessage("Kvitton"), "doThisLater": MessageLookupByLibrary.simpleMessage("Gör detta senare"), "done": MessageLookupByLibrary.simpleMessage("Klar"), - "dropSupportEmail": m27, + "dropSupportEmail": m29, "edit": MessageLookupByLibrary.simpleMessage("Redigera"), "email": MessageLookupByLibrary.simpleMessage("E-post"), - "emailNoEnteAccount": m31, + "emailNoEnteAccount": m33, "encryption": MessageLookupByLibrary.simpleMessage("Kryptering"), "encryptionKeys": MessageLookupByLibrary.simpleMessage("Krypteringsnycklar"), @@ -313,19 +313,17 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Bjud in dina vänner"), "inviteYourFriendsToEnte": MessageLookupByLibrary.simpleMessage( "Bjud in dina vänner till Ente"), - "itemCount": m41, + "itemCount": m42, "kiloMeterUnit": MessageLookupByLibrary.simpleMessage("km"), "kindlyHelpUsWithThisInformation": MessageLookupByLibrary.simpleMessage( "Vänligen hjälp oss med denna information"), "language": MessageLookupByLibrary.simpleMessage("Språk"), "leave": MessageLookupByLibrary.simpleMessage("Lämna"), "lightTheme": MessageLookupByLibrary.simpleMessage("Ljust"), - "link": MessageLookupByLibrary.simpleMessage("Link"), "linkDeviceLimit": MessageLookupByLibrary.simpleMessage("Enhetsgräns"), - "linkEmail": MessageLookupByLibrary.simpleMessage("Link email"), "linkEnabled": MessageLookupByLibrary.simpleMessage("Aktiverat"), "linkExpired": MessageLookupByLibrary.simpleMessage("Upphört"), - "linkExpiresOn": m43, + "linkExpiresOn": m44, "linkExpiry": MessageLookupByLibrary.simpleMessage("Länken upphör"), "linkHasExpired": MessageLookupByLibrary.simpleMessage("Länk har upphört att gälla"), @@ -352,7 +350,7 @@ class MessageLookup extends MessageLookupByLibrary { "mlConsentTitle": MessageLookupByLibrary.simpleMessage("Aktivera maskininlärning?"), "moderateStrength": MessageLookupByLibrary.simpleMessage("Måttligt"), - "moveItem": m44, + "moveItem": m45, "moveToAlbum": MessageLookupByLibrary.simpleMessage("Flytta till album"), "movingFilesToAlbum": @@ -364,8 +362,6 @@ class MessageLookup extends MessageLookupByLibrary { "next": MessageLookupByLibrary.simpleMessage("Nästa"), "no": MessageLookupByLibrary.simpleMessage("Nej"), "noDeviceLimit": MessageLookupByLibrary.simpleMessage("Ingen"), - "noEnteAccountExclamation": - MessageLookupByLibrary.simpleMessage("No Ente account!"), "noExifData": MessageLookupByLibrary.simpleMessage("Ingen EXIF-data"), "noInternetConnection": MessageLookupByLibrary.simpleMessage("Ingen internetanslutning"), @@ -376,9 +372,9 @@ class MessageLookup extends MessageLookupByLibrary { "noResults": MessageLookupByLibrary.simpleMessage("Inga resultat"), "noResultsFound": MessageLookupByLibrary.simpleMessage("Inga resultat hittades"), - "notPersonLabel": m47, + "notPersonLabel": m48, "ok": MessageLookupByLibrary.simpleMessage("OK"), - "onlyFamilyAdminCanChangeCode": m48, + "onlyFamilyAdminCanChangeCode": m49, "oops": MessageLookupByLibrary.simpleMessage("Hoppsan"), "orPickAnExistingOne": MessageLookupByLibrary.simpleMessage("Eller välj en befintlig"), @@ -402,7 +398,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Integritetspolicy"), "publicLinkEnabled": MessageLookupByLibrary.simpleMessage("Offentlig länk aktiverad"), - "rateUsOnStore": m55, + "rateUsOnStore": m56, "recover": MessageLookupByLibrary.simpleMessage("Återställ"), "recoverAccount": MessageLookupByLibrary.simpleMessage("Återställ konto"), @@ -456,7 +452,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Albumnamn"), "searchFileTypesAndNamesEmptySection": MessageLookupByLibrary.simpleMessage("Filtyper och namn"), - "searchResultCount": m62, + "searchResultCount": m63, "selectAlbum": MessageLookupByLibrary.simpleMessage("Välj album"), "selectLanguage": MessageLookupByLibrary.simpleMessage("Välj språk"), "selectReason": MessageLookupByLibrary.simpleMessage("Välj anledning"), @@ -473,13 +469,13 @@ class MessageLookup extends MessageLookupByLibrary { "share": MessageLookupByLibrary.simpleMessage("Dela"), "shareALink": MessageLookupByLibrary.simpleMessage("Dela en länk"), "shareLink": MessageLookupByLibrary.simpleMessage("Dela länk"), - "shareMyVerificationID": m65, - "shareTextConfirmOthersVerificationID": m5, + "shareMyVerificationID": m66, + "shareTextConfirmOthersVerificationID": m7, "shareTextRecommendUsingEnte": MessageLookupByLibrary.simpleMessage( "Ladda ner Ente så att vi enkelt kan dela bilder och videor med originell kvalitet\n\nhttps://ente.io"), "shareWithNonenteUsers": MessageLookupByLibrary.simpleMessage( "Dela med icke-Ente användare"), - "shareWithPeopleSectionTitle": m67, + "shareWithPeopleSectionTitle": m68, "shareYourFirstAlbum": MessageLookupByLibrary.simpleMessage("Dela ditt första album"), "sharedAlbumSectionDescription": MessageLookupByLibrary.simpleMessage( diff --git a/mobile/lib/generated/intl/messages_ta.dart b/mobile/lib/generated/intl/messages_ta.dart index 0e62efdd6b6..30c00c6d720 100644 --- a/mobile/lib/generated/intl/messages_ta.dart +++ b/mobile/lib/generated/intl/messages_ta.dart @@ -48,10 +48,6 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("தவறான மின்னஞ்சல் முகவரி"), "kindlyHelpUsWithThisInformation": MessageLookupByLibrary.simpleMessage( "இந்த தகவலுடன் தயவுசெய்து எங்களுக்கு உதவுங்கள்"), - "link": MessageLookupByLibrary.simpleMessage("Link"), - "linkEmail": MessageLookupByLibrary.simpleMessage("Link email"), - "noEnteAccountExclamation": - MessageLookupByLibrary.simpleMessage("No Ente account!"), "verify": MessageLookupByLibrary.simpleMessage("சரிபார்க்கவும்") }; } diff --git a/mobile/lib/generated/intl/messages_te.dart b/mobile/lib/generated/intl/messages_te.dart index 6f521306011..5e415c9da0c 100644 --- a/mobile/lib/generated/intl/messages_te.dart +++ b/mobile/lib/generated/intl/messages_te.dart @@ -21,10 +21,5 @@ class MessageLookup extends MessageLookupByLibrary { String get localeName => 'te'; final messages = _notInlinedMessages(_notInlinedMessages); - static Map _notInlinedMessages(_) => { - "link": MessageLookupByLibrary.simpleMessage("Link"), - "linkEmail": MessageLookupByLibrary.simpleMessage("Link email"), - "noEnteAccountExclamation": - MessageLookupByLibrary.simpleMessage("No Ente account!") - }; + static Map _notInlinedMessages(_) => {}; } diff --git a/mobile/lib/generated/intl/messages_th.dart b/mobile/lib/generated/intl/messages_th.dart index d7235ef0cef..87c1b29c3a9 100644 --- a/mobile/lib/generated/intl/messages_th.dart +++ b/mobile/lib/generated/intl/messages_th.dart @@ -20,30 +20,30 @@ typedef String MessageIfAbsent(String messageStr, List args); class MessageLookup extends MessageLookupByLibrary { String get localeName => 'th'; - static String m7(count) => "${Intl.plural(count, other: 'เพิ่มรายการ')}"; + static String m10(count) => "${Intl.plural(count, other: 'เพิ่มรายการ')}"; - static String m13(versionValue) => "รุ่น: ${versionValue}"; + static String m16(versionValue) => "รุ่น: ${versionValue}"; - static String m24(count) => + static String m26(count) => "${Intl.plural(count, one: 'ลบ ${count} รายการ', other: 'ลบ ${count} รายการ')}"; - static String m25(currentlyDeleting, totalCount) => + static String m27(currentlyDeleting, totalCount) => "กำลังลบ ${currentlyDeleting} / ${totalCount}"; - static String m27(supportEmail) => + static String m29(supportEmail) => "กรุณาส่งอีเมลไปที่ ${supportEmail} จากที่อยู่อีเมลที่คุณลงทะเบียนไว้"; - static String m40(currentlyProcessing, totalCount) => + static String m41(currentlyProcessing, totalCount) => "กำลังประมวลผล ${currentlyProcessing} / ${totalCount}"; - static String m41(count) => "${Intl.plural(count, other: '${count} รายการ')}"; + static String m42(count) => "${Intl.plural(count, other: '${count} รายการ')}"; - static String m44(count) => "${Intl.plural(count, other: 'ย้ายรายการ')}"; + static String m45(count) => "${Intl.plural(count, other: 'ย้ายรายการ')}"; static String m0(passwordStrengthValue) => "ความแข็งแรงของรหัสผ่าน: ${passwordStrengthValue}"; - static String m72( + static String m73( usedAmount, usedStorageUnit, totalAmount, totalStorageUnit) => "ใช้ไป ${usedAmount} ${usedStorageUnit} จาก ${totalAmount} ${totalStorageUnit}"; @@ -60,7 +60,7 @@ class MessageLookup extends MessageLookupByLibrary { "addANewEmail": MessageLookupByLibrary.simpleMessage("เพิ่มอีเมลใหม่"), "addCollaborator": MessageLookupByLibrary.simpleMessage("เพิ่มผู้ทำงานร่วมกัน"), - "addItem": m7, + "addItem": m10, "addMore": MessageLookupByLibrary.simpleMessage("เพิ่มอีก"), "addToAlbum": MessageLookupByLibrary.simpleMessage("เพิ่มไปยังอัลบั้ม"), "addViewer": MessageLookupByLibrary.simpleMessage("เพิ่มผู้ชม"), @@ -77,7 +77,7 @@ class MessageLookup extends MessageLookupByLibrary { "androidBiometricSuccess": MessageLookupByLibrary.simpleMessage("สำเร็จ"), "androidCancelButton": MessageLookupByLibrary.simpleMessage("ยกเลิก"), - "appVersion": m13, + "appVersion": m16, "apply": MessageLookupByLibrary.simpleMessage("นำไปใช้"), "askDeleteReason": MessageLookupByLibrary.simpleMessage( "เหตุผลหลักที่คุณลบบัญชีคืออะไร?"), @@ -130,8 +130,8 @@ class MessageLookup extends MessageLookupByLibrary { "deleteEmptyAlbumsWithQuestionMark": MessageLookupByLibrary.simpleMessage( "ลบอัลบั้มที่ว่างเปล่าหรือไม่?"), - "deleteItemCount": m24, - "deleteProgress": m25, + "deleteItemCount": m26, + "deleteProgress": m27, "deleteReason1": MessageLookupByLibrary.simpleMessage( "ขาดคุณสมบัติสำคัญที่ฉันต้องการ"), "deleteReason2": MessageLookupByLibrary.simpleMessage( @@ -143,7 +143,7 @@ class MessageLookup extends MessageLookupByLibrary { "deleteRequestSLAText": MessageLookupByLibrary.simpleMessage( "คำขอของคุณจะได้รับการดำเนินการภายใน 72 ชั่วโมง"), "doThisLater": MessageLookupByLibrary.simpleMessage("ทำในภายหลัง"), - "dropSupportEmail": m27, + "dropSupportEmail": m29, "edit": MessageLookupByLibrary.simpleMessage("แก้ไข"), "editLocationTagTitle": MessageLookupByLibrary.simpleMessage("แก้ไขตำแหน่ง"), @@ -172,7 +172,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("เพิ่มคำอธิบาย..."), "forgotPassword": MessageLookupByLibrary.simpleMessage("ลืมรหัสผ่าน"), "freeTrial": MessageLookupByLibrary.simpleMessage("ทดลองใช้ฟรี"), - "genericProgress": m40, + "genericProgress": m41, "goToSettings": MessageLookupByLibrary.simpleMessage("ไปที่การตั้งค่า"), "hide": MessageLookupByLibrary.simpleMessage("ซ่อน"), "hostedAtOsmFrance": @@ -195,15 +195,13 @@ class MessageLookup extends MessageLookupByLibrary { "invalidKey": MessageLookupByLibrary.simpleMessage("รหัสไม่ถูกต้อง"), "invalidRecoveryKey": MessageLookupByLibrary.simpleMessage( "คีย์การกู้คืนที่คุณป้อนไม่ถูกต้อง โปรดตรวจสอบให้แน่ใจว่ามี 24 คำ และตรวจสอบการสะกดของแต่ละคำ\n\nหากคุณป้อนรหัสกู้คืนที่เก่ากว่า ตรวจสอบให้แน่ใจว่ามีความยาว 64 ตัวอักษร และตรวจสอบแต่ละตัวอักษร"), - "itemCount": m41, + "itemCount": m42, "kindlyHelpUsWithThisInformation": MessageLookupByLibrary.simpleMessage("กรุณาช่วยเราด้วยข้อมูลนี้"), "lastUpdated": MessageLookupByLibrary.simpleMessage("อัปเดตล่าสุด"), "lightTheme": MessageLookupByLibrary.simpleMessage("สว่าง"), - "link": MessageLookupByLibrary.simpleMessage("Link"), "linkCopiedToClipboard": MessageLookupByLibrary.simpleMessage( "คัดลอกลิงก์ไปยังคลิปบอร์ดแล้ว"), - "linkEmail": MessageLookupByLibrary.simpleMessage("Link email"), "linkHasExpired": MessageLookupByLibrary.simpleMessage("ลิงก์หมดอายุแล้ว"), "loadMessage9": MessageLookupByLibrary.simpleMessage( @@ -215,12 +213,10 @@ class MessageLookup extends MessageLookupByLibrary { "map": MessageLookupByLibrary.simpleMessage("แผนที่"), "maps": MessageLookupByLibrary.simpleMessage("แผนที่"), "moderateStrength": MessageLookupByLibrary.simpleMessage("ปานกลาง"), - "moveItem": m44, + "moveItem": m45, "moveToAlbum": MessageLookupByLibrary.simpleMessage("ย้ายไปยังอัลบั้ม"), "name": MessageLookupByLibrary.simpleMessage("ชื่อ"), "newest": MessageLookupByLibrary.simpleMessage("ใหม่สุด"), - "noEnteAccountExclamation": - MessageLookupByLibrary.simpleMessage("No Ente account!"), "noRecoveryKey": MessageLookupByLibrary.simpleMessage("ไม่มีคีย์การกู้คืน?"), "noRecoveryKeyNoDecryption": MessageLookupByLibrary.simpleMessage( @@ -310,7 +306,7 @@ class MessageLookup extends MessageLookupByLibrary { "storageBreakupFamily": MessageLookupByLibrary.simpleMessage("ครอบครัว"), "storageBreakupYou": MessageLookupByLibrary.simpleMessage("คุณ"), - "storageUsageInfo": m72, + "storageUsageInfo": m73, "strongStrength": MessageLookupByLibrary.simpleMessage("แข็งแรง"), "syncStopped": MessageLookupByLibrary.simpleMessage("หยุดการซิงค์แล้ว"), "syncing": MessageLookupByLibrary.simpleMessage("กำลังซิงค์..."), diff --git a/mobile/lib/generated/intl/messages_ti.dart b/mobile/lib/generated/intl/messages_ti.dart index 8e6f8e23935..775cc78213d 100644 --- a/mobile/lib/generated/intl/messages_ti.dart +++ b/mobile/lib/generated/intl/messages_ti.dart @@ -21,10 +21,5 @@ class MessageLookup extends MessageLookupByLibrary { String get localeName => 'ti'; final messages = _notInlinedMessages(_notInlinedMessages); - static Map _notInlinedMessages(_) => { - "link": MessageLookupByLibrary.simpleMessage("Link"), - "linkEmail": MessageLookupByLibrary.simpleMessage("Link email"), - "noEnteAccountExclamation": - MessageLookupByLibrary.simpleMessage("No Ente account!") - }; + static Map _notInlinedMessages(_) => {}; } diff --git a/mobile/lib/generated/intl/messages_tr.dart b/mobile/lib/generated/intl/messages_tr.dart index dcf56d5a164..ea25c9e89f0 100644 --- a/mobile/lib/generated/intl/messages_tr.dart +++ b/mobile/lib/generated/intl/messages_tr.dart @@ -20,160 +20,160 @@ typedef String MessageIfAbsent(String messageStr, List args); class MessageLookup extends MessageLookupByLibrary { String get localeName => 'tr'; - static String m6(count) => + static String m9(count) => "${Intl.plural(count, zero: 'Ortak çalışan ekle', one: 'Ortak çalışan ekle', other: 'Ortak çalışan ekle')}"; - static String m7(count) => + static String m10(count) => "${Intl.plural(count, one: 'Öğeyi taşı', other: 'Öğeleri taşı')}"; - static String m8(storageAmount, endDate) => + static String m11(storageAmount, endDate) => "${storageAmount} eklentiniz ${endDate} tarihine kadar geçerlidir"; - static String m9(count) => + static String m12(count) => "${Intl.plural(count, zero: 'Görüntüleyen ekle', one: 'Görüntüleyen ekle', other: 'Görüntüleyen ekle')}"; - static String m10(emailOrName) => "${emailOrName} tarafından eklendi"; + static String m13(emailOrName) => "${emailOrName} tarafından eklendi"; - static String m11(albumName) => "${albumName} albümüne başarıyla eklendi"; + static String m14(albumName) => "${albumName} albümüne başarıyla eklendi"; - static String m12(count) => + static String m15(count) => "${Intl.plural(count, zero: 'Katılımcı Yok', one: '1 Katılımcı', other: '${count} Katılımcı')}"; - static String m13(versionValue) => "Sürüm: ${versionValue}"; + static String m16(versionValue) => "Sürüm: ${versionValue}"; - static String m15(paymentProvider) => + static String m18(paymentProvider) => "Lütfen önce mevcut aboneliğinizi ${paymentProvider} adresinden iptal edin"; - static String m16(user) => + static String m3(user) => "${user}, bu albüme daha fazla fotoğraf ekleyemeyecek.\n\nAncak, kendi eklediği mevcut fotoğrafları kaldırmaya devam edebilecektir"; - static String m17(isFamilyMember, storageAmountInGb) => + static String m19(isFamilyMember, storageAmountInGb) => "${Intl.select(isFamilyMember, { 'true': 'Şu ana kadar aileniz ${storageAmountInGb} GB aldı', 'false': 'Şu ana kadar ${storageAmountInGb} GB aldınız', 'other': 'Şu ana kadar ${storageAmountInGb} GB aldınız!', })}"; - static String m18(albumName) => + static String m20(albumName) => "${albumName} için ortak çalışma bağlantısı oluşturuldu"; - static String m21(familyAdminEmail) => + static String m23(familyAdminEmail) => "Aboneliğinizi yönetmek için lütfen ${familyAdminEmail} ile iletişime geçin"; - static String m22(provider) => + static String m24(provider) => "Lütfen ${provider} aboneliğinizi yönetmek için support@ente.io adresinden bizimle iletişime geçin."; - static String m23(endpoint) => "${endpoint}\'e bağlanıldı"; + static String m25(endpoint) => "${endpoint}\'e bağlanıldı"; - static String m24(count) => + static String m26(count) => "${Intl.plural(count, one: 'Delete ${count} item', other: 'Delete ${count} items')}"; - static String m25(currentlyDeleting, totalCount) => + static String m27(currentlyDeleting, totalCount) => "Siliniyor ${currentlyDeleting} / ${totalCount}"; - static String m26(albumName) => + static String m28(albumName) => "Bu, \"${albumName}\"e erişim için olan genel bağlantıyı kaldıracaktır."; - static String m27(supportEmail) => + static String m29(supportEmail) => "Lütfen kayıtlı e-posta adresinizden ${supportEmail} adresine bir e-posta gönderin"; - static String m28(count, storageSaved) => + static String m30(count, storageSaved) => "You have cleaned up ${Intl.plural(count, one: '${count} duplicate file', other: '${count} duplicate files')}, saving (${storageSaved}!)"; - static String m29(count, formattedSize) => + static String m31(count, formattedSize) => "${count} dosyalar, ${formattedSize} her biri"; - static String m30(newEmail) => "E-posta ${newEmail} olarak değiştirildi"; + static String m32(newEmail) => "E-posta ${newEmail} olarak değiştirildi"; - static String m31(email) => + static String m33(email) => "${email}, Ente hesabı bulunmamaktadır.\n\nOnlarla fotoğraf paylaşımı için bir davet gönder."; - static String m33(count, formattedNumber) => + static String m35(count, formattedNumber) => "Bu cihazdaki ${Intl.plural(count, one: '1 file', other: '${formattedNumber} dosya')} güvenli bir şekilde yedeklendi"; - static String m34(count, formattedNumber) => + static String m36(count, formattedNumber) => "Bu albümdeki ${Intl.plural(count, one: '1 file', other: '${formattedNumber} dosya')} güvenli bir şekilde yedeklendi"; - static String m35(storageAmountInGB) => + static String m4(storageAmountInGB) => "Birisinin davet kodunuzu uygulayıp ücretli hesap açtığı her seferede ${storageAmountInGB} GB"; - static String m36(endDate) => "Ücretsiz deneme ${endDate} sona erir"; + static String m37(endDate) => "Ücretsiz deneme ${endDate} sona erir"; - static String m38(sizeInMBorGB) => "${sizeInMBorGB} yer açın"; + static String m39(sizeInMBorGB) => "${sizeInMBorGB} yer açın"; - static String m39(count, formattedSize) => + static String m40(count, formattedSize) => "${Intl.plural(count, one: 'Yer açmak için cihazdan silinebilir ${formattedSize}', other: 'Yer açmak için cihazdan silinebilir ${formattedSize}')}"; - static String m40(currentlyProcessing, totalCount) => + static String m41(currentlyProcessing, totalCount) => "Siliniyor ${currentlyProcessing} / ${totalCount}"; - static String m41(count) => + static String m42(count) => "${Intl.plural(count, one: '${count} öğe', other: '${count} öğeler')}"; - static String m43(expiryTime) => + static String m44(expiryTime) => "Bu bağlantı ${expiryTime} dan sonra geçersiz olacaktır"; - static String m3(count, formattedCount) => + static String m5(count, formattedCount) => "${Intl.plural(count, zero: 'anı yok', one: '${formattedCount} anı', other: '${formattedCount} anılar')}"; - static String m44(count) => + static String m45(count) => "${Intl.plural(count, one: 'Öğeyi taşı', other: 'Öğeleri taşı')}"; - static String m45(albumName) => "${albumName} adlı albüme başarıyla taşındı"; + static String m46(albumName) => "${albumName} adlı albüme başarıyla taşındı"; static String m0(passwordStrengthValue) => "Şifrenin güçlülük seviyesi: ${passwordStrengthValue}"; - static String m49(providerName) => + static String m50(providerName) => "Sizden ücret alındıysa lütfen ${providerName} destek ekibiyle görüşün"; - static String m52(toEmail) => "Lütfen bize ${toEmail} adresinden ulaşın"; + static String m53(toEmail) => "Lütfen bize ${toEmail} adresinden ulaşın"; - static String m53(toEmail) => + static String m54(toEmail) => "Lütfen günlükleri şu adrese gönderin\n${toEmail}"; - static String m55(storeName) => "Bizi ${storeName} üzerinden değerlendirin"; + static String m56(storeName) => "Bizi ${storeName} üzerinden değerlendirin"; - static String m59(storageInGB) => "3. Hepimiz ${storageInGB} GB* bedava alın"; + static String m60(storageInGB) => "3. Hepimiz ${storageInGB} GB* bedava alın"; - static String m60(userEmail) => + static String m61(userEmail) => "${userEmail} bu paylaşılan albümden kaldırılacaktır\n\nOnlar tarafından eklenen tüm fotoğraflar da albümden kaldırılacaktır"; - static String m61(endDate) => "Abonelik ${endDate} tarihinde yenilenir"; + static String m62(endDate) => "Abonelik ${endDate} tarihinde yenilenir"; - static String m62(count) => + static String m63(count) => "${Intl.plural(count, one: '${count} yıl önce', other: '${count} yıl önce')}"; - static String m4(count) => "${count} seçildi"; + static String m6(count) => "${count} seçildi"; - static String m64(count, yourCount) => + static String m65(count, yourCount) => "Seçilenler: ${count} (${yourCount} sizin seçiminiz)"; - static String m65(verificationID) => + static String m66(verificationID) => "İşte ente.io için doğrulama kimliğim: ${verificationID}."; - static String m5(verificationID) => + static String m7(verificationID) => "Merhaba, bu ente.io doğrulama kimliğinizin doğruluğunu onaylayabilir misiniz: ${verificationID}"; - static String m67(numberOfPeople) => + static String m68(numberOfPeople) => "${Intl.plural(numberOfPeople, zero: 'Belirli kişilerle paylaş', one: '1 kişiyle paylaşıldı', other: '${numberOfPeople} kişiyle paylaşıldı')}"; - static String m68(emailIDs) => "${emailIDs} ile paylaşıldı"; + static String m69(emailIDs) => "${emailIDs} ile paylaşıldı"; - static String m69(fileType) => "Bu ${fileType}, cihazınızdan silinecek."; + static String m70(fileType) => "Bu ${fileType}, cihazınızdan silinecek."; static String m1(storageAmountInGB) => "${storageAmountInGB} GB"; - static String m72( + static String m73( usedAmount, usedStorageUnit, totalAmount, totalStorageUnit) => "${usedAmount} ${usedStorageUnit} / ${totalAmount} ${totalStorageUnit} kullanıldı"; - static String m74(endDate) => + static String m75(endDate) => "Aboneliğiniz ${endDate} tarihinde iptal edilecektir"; - static String m75(completed, total) => "${completed}/${total} anı korundu"; + static String m76(completed, total) => "${completed}/${total} anı korundu"; - static String m77(storageAmountInGB) => + static String m8(storageAmountInGB) => "Aynı zamanda ${storageAmountInGB} GB alıyorlar"; static String m78(email) => "Bu, ${email}\'in Doğrulama Kimliği"; @@ -205,16 +205,16 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Yeni e-posta ekle"), "addCollaborator": MessageLookupByLibrary.simpleMessage("Düzenleyici ekle"), - "addCollaborators": m6, + "addCollaborators": m9, "addFromDevice": MessageLookupByLibrary.simpleMessage("Cihazdan ekle"), - "addItem": m7, + "addItem": m10, "addLocation": MessageLookupByLibrary.simpleMessage("Konum Ekle"), "addLocationButton": MessageLookupByLibrary.simpleMessage("Ekle"), "addMore": MessageLookupByLibrary.simpleMessage("Daha fazla ekle"), "addNew": MessageLookupByLibrary.simpleMessage("Yeni ekle"), "addOnPageSubtitle": MessageLookupByLibrary.simpleMessage("Eklentilerin ayrıntıları"), - "addOnValidTill": m8, + "addOnValidTill": m11, "addOns": MessageLookupByLibrary.simpleMessage("Eklentiler"), "addPhotos": MessageLookupByLibrary.simpleMessage("Fotoğraf ekle"), "addSelected": MessageLookupByLibrary.simpleMessage("Seçileni ekle"), @@ -222,12 +222,12 @@ class MessageLookup extends MessageLookupByLibrary { "addToHiddenAlbum": MessageLookupByLibrary.simpleMessage("Gizli albüme ekle"), "addViewer": MessageLookupByLibrary.simpleMessage("Görüntüleyici ekle"), - "addViewers": m9, + "addViewers": m12, "addYourPhotosNow": MessageLookupByLibrary.simpleMessage( "Fotoğraflarınızı şimdi ekleyin"), "addedAs": MessageLookupByLibrary.simpleMessage("Eklendi"), - "addedBy": m10, - "addedSuccessfullyTo": m11, + "addedBy": m13, + "addedSuccessfullyTo": m14, "addingToFavorites": MessageLookupByLibrary.simpleMessage("Favorilere ekleniyor..."), "advanced": MessageLookupByLibrary.simpleMessage("Gelişmiş"), @@ -238,7 +238,7 @@ class MessageLookup extends MessageLookupByLibrary { "after1Week": MessageLookupByLibrary.simpleMessage("1 hafta sonra"), "after1Year": MessageLookupByLibrary.simpleMessage("1 yıl sonra"), "albumOwner": MessageLookupByLibrary.simpleMessage("Sahip"), - "albumParticipantsCount": m12, + "albumParticipantsCount": m15, "albumTitle": MessageLookupByLibrary.simpleMessage("Albüm Başlığı"), "albumUpdated": MessageLookupByLibrary.simpleMessage("Albüm güncellendi"), @@ -275,7 +275,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Android, iOS, Web, Masaüstü"), "androidSignInTitle": MessageLookupByLibrary.simpleMessage("Kimlik doğrulaması gerekli"), - "appVersion": m13, + "appVersion": m16, "appleId": MessageLookupByLibrary.simpleMessage("Apple kimliği"), "apply": MessageLookupByLibrary.simpleMessage("Uygula"), "applyCodeTitle": MessageLookupByLibrary.simpleMessage("Kodu girin"), @@ -362,10 +362,10 @@ class MessageLookup extends MessageLookupByLibrary { "canOnlyRemoveFilesOwnedByYou": MessageLookupByLibrary.simpleMessage( "Yalnızca size ait dosyaları kaldırabilir"), "cancel": MessageLookupByLibrary.simpleMessage("İptal Et"), - "cancelOtherSubscription": m15, + "cancelOtherSubscription": m18, "cancelSubscription": MessageLookupByLibrary.simpleMessage("Abonelik iptali"), - "cannotAddMorePhotosAfterBecomingViewer": m16, + "cannotAddMorePhotosAfterBecomingViewer": m3, "cannotDeleteSharedFiles": MessageLookupByLibrary.simpleMessage("Dosyalar silinemiyor"), "castInstruction": MessageLookupByLibrary.simpleMessage( @@ -390,7 +390,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Bedava alan talep edin"), "claimMore": MessageLookupByLibrary.simpleMessage("Arttır!"), "claimed": MessageLookupByLibrary.simpleMessage("Alındı"), - "claimedStorageSoFar": m17, + "claimedStorageSoFar": m19, "cleanUncategorized": MessageLookupByLibrary.simpleMessage("Temiz Genel"), "cleanUncategorizedDescription": MessageLookupByLibrary.simpleMessage( @@ -414,7 +414,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Sizin kullandığınız kod"), "collaborativeLink": MessageLookupByLibrary.simpleMessage("Organizasyon bağlantısı"), - "collaborativeLinkCreatedFor": m18, + "collaborativeLinkCreatedFor": m20, "collaborator": MessageLookupByLibrary.simpleMessage("Düzenleyici"), "collaboratorsCanAddPhotosAndVideosToTheSharedAlbum": MessageLookupByLibrary.simpleMessage( @@ -442,10 +442,10 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Kurtarma anahtarını doğrula"), "confirmYourRecoveryKey": MessageLookupByLibrary.simpleMessage( "Kurtarma anahtarını doğrulayın"), - "contactFamilyAdmin": m21, + "contactFamilyAdmin": m23, "contactSupport": MessageLookupByLibrary.simpleMessage("Destek ile iletişim"), - "contactToManageSubscription": m22, + "contactToManageSubscription": m24, "contacts": MessageLookupByLibrary.simpleMessage("Kişiler"), "contents": MessageLookupByLibrary.simpleMessage("İçerikler"), "continueLabel": MessageLookupByLibrary.simpleMessage("Devam edin"), @@ -486,7 +486,7 @@ class MessageLookup extends MessageLookupByLibrary { "currentUsageIs": MessageLookupByLibrary.simpleMessage("Güncel kullanımınız "), "custom": MessageLookupByLibrary.simpleMessage("Kişisel"), - "customEndpoint": m23, + "customEndpoint": m25, "darkTheme": MessageLookupByLibrary.simpleMessage("Karanlık"), "dayToday": MessageLookupByLibrary.simpleMessage("Bugün"), "dayYesterday": MessageLookupByLibrary.simpleMessage("Dün"), @@ -518,11 +518,11 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Her ikisinden de sil"), "deleteFromDevice": MessageLookupByLibrary.simpleMessage("Cihazınızdan silin"), - "deleteItemCount": m24, + "deleteItemCount": m26, "deleteLocation": MessageLookupByLibrary.simpleMessage("Konumu sil"), "deletePhotos": MessageLookupByLibrary.simpleMessage("Fotoğrafları sil"), - "deleteProgress": m25, + "deleteProgress": m27, "deleteReason1": MessageLookupByLibrary.simpleMessage( "İhtiyacım olan önemli bir özellik eksik"), "deleteReason2": MessageLookupByLibrary.simpleMessage( @@ -556,7 +556,7 @@ class MessageLookup extends MessageLookupByLibrary { "Görüntüleyiciler, hala harici araçlar kullanarak ekran görüntüsü alabilir veya fotoğraflarınızın bir kopyasını kaydedebilir. Lütfen bunu göz önünde bulundurunuz"), "disableDownloadWarningTitle": MessageLookupByLibrary.simpleMessage("Lütfen dikkate alın"), - "disableLinkMessage": m26, + "disableLinkMessage": m28, "disableTwofactor": MessageLookupByLibrary.simpleMessage( "İki Aşamalı Doğrulamayı Devre Dışı Bırak"), "disablingTwofactorAuthentication": @@ -577,9 +577,9 @@ class MessageLookup extends MessageLookupByLibrary { "downloadFailed": MessageLookupByLibrary.simpleMessage("İndirme başarısız"), "downloading": MessageLookupByLibrary.simpleMessage("İndiriliyor..."), - "dropSupportEmail": m27, - "duplicateFileCountWithStorageSaved": m28, - "duplicateItemsGroup": m29, + "dropSupportEmail": m29, + "duplicateFileCountWithStorageSaved": m30, + "duplicateItemsGroup": m31, "edit": MessageLookupByLibrary.simpleMessage("Düzenle"), "editLocation": MessageLookupByLibrary.simpleMessage("Konumu düzenle"), "editLocationTagTitle": @@ -591,8 +591,8 @@ class MessageLookup extends MessageLookupByLibrary { "Konumda yapılan düzenlemeler yalnızca Ente\'de görülecektir"), "eligible": MessageLookupByLibrary.simpleMessage("uygun"), "email": MessageLookupByLibrary.simpleMessage("E-Posta"), - "emailChangedTo": m30, - "emailNoEnteAccount": m31, + "emailChangedTo": m32, + "emailNoEnteAccount": m33, "emailVerificationToggle": MessageLookupByLibrary.simpleMessage("E-posta doğrulama"), "emailYourLogs": MessageLookupByLibrary.simpleMessage( @@ -688,8 +688,8 @@ class MessageLookup extends MessageLookupByLibrary { "fileTypes": MessageLookupByLibrary.simpleMessage("Dosya türü"), "fileTypesAndNames": MessageLookupByLibrary.simpleMessage("Dosya türleri ve adları"), - "filesBackedUpFromDevice": m33, - "filesBackedUpInAlbum": m34, + "filesBackedUpFromDevice": m35, + "filesBackedUpInAlbum": m36, "filesDeleted": MessageLookupByLibrary.simpleMessage("Dosyalar silinmiş"), "flip": MessageLookupByLibrary.simpleMessage("Çevir"), @@ -699,22 +699,22 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Şifremi unuttum"), "freeStorageClaimed": MessageLookupByLibrary.simpleMessage("Alınan bedava alan"), - "freeStorageOnReferralSuccess": m35, + "freeStorageOnReferralSuccess": m4, "freeStorageUsable": MessageLookupByLibrary.simpleMessage("Kullanılabilir bedava alan"), "freeTrial": MessageLookupByLibrary.simpleMessage("Ücretsiz deneme"), - "freeTrialValidTill": m36, - "freeUpAmount": m38, + "freeTrialValidTill": m37, + "freeUpAmount": m39, "freeUpDeviceSpace": MessageLookupByLibrary.simpleMessage("Cihaz alanını boşaltın"), "freeUpSpace": MessageLookupByLibrary.simpleMessage("Boş alan"), - "freeUpSpaceSaving": m39, + "freeUpSpaceSaving": m40, "galleryMemoryLimitInfo": MessageLookupByLibrary.simpleMessage( "Galeride 1000\'e kadar anı gösterilir"), "general": MessageLookupByLibrary.simpleMessage("Genel"), "generatingEncryptionKeys": MessageLookupByLibrary.simpleMessage( "Şifreleme anahtarı oluşturuluyor..."), - "genericProgress": m40, + "genericProgress": m41, "goToSettings": MessageLookupByLibrary.simpleMessage("Ayarlara git"), "googlePlayId": MessageLookupByLibrary.simpleMessage("Google play kimliği"), @@ -775,7 +775,7 @@ class MessageLookup extends MessageLookupByLibrary { "itLooksLikeSomethingWentWrongPleaseRetryAfterSome": MessageLookupByLibrary.simpleMessage( "Bir şeyler ters gitmiş gibi görünüyor. Lütfen bir süre sonra tekrar deneyin. Hata devam ederse, lütfen destek ekibimizle iletişime geçin."), - "itemCount": m41, + "itemCount": m42, "itemsShowTheNumberOfDaysRemainingBeforePermanentDeletion": MessageLookupByLibrary.simpleMessage( "Öğeler, kalıcı olarak silinmeden önce kalan gün sayısını gösterir"), @@ -799,14 +799,12 @@ class MessageLookup extends MessageLookupByLibrary { "Paylaşılan albüm silinsin mi?"), "light": MessageLookupByLibrary.simpleMessage("Aydınlık"), "lightTheme": MessageLookupByLibrary.simpleMessage("Aydınlık"), - "link": MessageLookupByLibrary.simpleMessage("Link"), "linkCopiedToClipboard": MessageLookupByLibrary.simpleMessage("Link panoya kopyalandı"), "linkDeviceLimit": MessageLookupByLibrary.simpleMessage("Cihaz limiti"), - "linkEmail": MessageLookupByLibrary.simpleMessage("Link email"), "linkEnabled": MessageLookupByLibrary.simpleMessage("Geçerli"), "linkExpired": MessageLookupByLibrary.simpleMessage("Süresi dolmuş"), - "linkExpiresOn": m43, + "linkExpiresOn": m44, "linkExpiry": MessageLookupByLibrary.simpleMessage("Linkin geçerliliği"), "linkHasExpired": @@ -876,7 +874,7 @@ class MessageLookup extends MessageLookupByLibrary { "maps": MessageLookupByLibrary.simpleMessage("Haritalar"), "mastodon": MessageLookupByLibrary.simpleMessage("Mastodon"), "matrix": MessageLookupByLibrary.simpleMessage("Matrix"), - "memoryCount": m3, + "memoryCount": m5, "merchandise": MessageLookupByLibrary.simpleMessage("Ürünler"), "mobileWebDesktop": MessageLookupByLibrary.simpleMessage("Mobil, Web, Masaüstü"), @@ -886,11 +884,11 @@ class MessageLookup extends MessageLookupByLibrary { "Sorgunuzu değiştirin veya aramayı deneyin"), "moments": MessageLookupByLibrary.simpleMessage("Anlar"), "monthly": MessageLookupByLibrary.simpleMessage("Aylık"), - "moveItem": m44, + "moveItem": m45, "moveToAlbum": MessageLookupByLibrary.simpleMessage("Albüme taşı"), "moveToHiddenAlbum": MessageLookupByLibrary.simpleMessage("Gizli albüme ekle"), - "movedSuccessfullyTo": m45, + "movedSuccessfullyTo": m46, "movedToTrash": MessageLookupByLibrary.simpleMessage("Cöp kutusuna taşı"), "movingFilesToAlbum": MessageLookupByLibrary.simpleMessage( @@ -911,8 +909,6 @@ class MessageLookup extends MessageLookupByLibrary { "Bu cihazda silinebilecek hiçbir dosyanız yok"), "noDuplicates": MessageLookupByLibrary.simpleMessage("Yinelenenleri kaldır"), - "noEnteAccountExclamation": - MessageLookupByLibrary.simpleMessage("No Ente account!"), "noExifData": MessageLookupByLibrary.simpleMessage("EXIF verisi yok"), "noHiddenPhotosOrVideos": MessageLookupByLibrary.simpleMessage( "Gizli fotoğraf veya video yok"), @@ -971,7 +967,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Ödeme başarısız oldu"), "paymentFailedMessage": MessageLookupByLibrary.simpleMessage( "Maalesef ödemeniz başarısız oldu. Lütfen destekle iletişime geçin, size yardımcı olacağız!"), - "paymentFailedTalkToProvider": m49, + "paymentFailedTalkToProvider": m50, "pendingItems": MessageLookupByLibrary.simpleMessage("Bekleyen Öğeler"), "pendingSync": MessageLookupByLibrary.simpleMessage("Senkronizasyon bekleniyor"), @@ -1007,12 +1003,12 @@ class MessageLookup extends MessageLookupByLibrary { "pleaseContactSupportIfTheProblemPersists": MessageLookupByLibrary.simpleMessage( "Bu hata devam ederse lütfen desteğe başvurun"), - "pleaseEmailUsAt": m52, + "pleaseEmailUsAt": m53, "pleaseGrantPermissions": MessageLookupByLibrary.simpleMessage("Lütfen izin ver"), "pleaseLoginAgain": MessageLookupByLibrary.simpleMessage("Lütfen tekrar giriş yapın"), - "pleaseSendTheLogsTo": m53, + "pleaseSendTheLogsTo": m54, "pleaseTryAgain": MessageLookupByLibrary.simpleMessage("Lütfen tekrar deneyiniz"), "pleaseVerifyTheCodeYouHaveEntered": @@ -1049,7 +1045,7 @@ class MessageLookup extends MessageLookupByLibrary { "rateTheApp": MessageLookupByLibrary.simpleMessage("Uygulamaya puan verin"), "rateUs": MessageLookupByLibrary.simpleMessage("Bizi değerlendirin"), - "rateUsOnStore": m55, + "rateUsOnStore": m56, "recover": MessageLookupByLibrary.simpleMessage("Kurtarma"), "recoverAccount": MessageLookupByLibrary.simpleMessage("Hesabı kurtar"), "recoverButton": MessageLookupByLibrary.simpleMessage("Kurtar"), @@ -1078,7 +1074,7 @@ class MessageLookup extends MessageLookupByLibrary { "1. Bu kodu arkadaşlarınıza verin"), "referralStep2": MessageLookupByLibrary.simpleMessage( "2. Ücretli bir plan için kaydolsunlar"), - "referralStep3": m59, + "referralStep3": m60, "referrals": MessageLookupByLibrary.simpleMessage("Referanslar"), "referralsAreCurrentlyPaused": MessageLookupByLibrary.simpleMessage( "Davetler şu anda durmuş durumda"), @@ -1101,7 +1097,7 @@ class MessageLookup extends MessageLookupByLibrary { "removeLink": MessageLookupByLibrary.simpleMessage("Linki kaldır"), "removeParticipant": MessageLookupByLibrary.simpleMessage("Katılımcıyı kaldır"), - "removeParticipantBody": m60, + "removeParticipantBody": m61, "removePublicLink": MessageLookupByLibrary.simpleMessage("Herkese açık link oluştur"), "removeShareItemsWarning": MessageLookupByLibrary.simpleMessage( @@ -1117,7 +1113,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Dosyayı yeniden adlandır"), "renewSubscription": MessageLookupByLibrary.simpleMessage("Abonelik yenileme"), - "renewsOn": m61, + "renewsOn": m62, "reportABug": MessageLookupByLibrary.simpleMessage("Hatayı bildir"), "reportBug": MessageLookupByLibrary.simpleMessage("Hata bildir"), "resendEmail": @@ -1176,7 +1172,7 @@ class MessageLookup extends MessageLookupByLibrary { "Bir fotoğrafın belli bir yarıçapında çekilen fotoğrafları gruplandırın"), "searchPeopleEmptySection": MessageLookupByLibrary.simpleMessage( "İnsanları davet ettiğinizde onların paylaştığı tüm fotoğrafları burada göreceksiniz"), - "searchResultCount": m62, + "searchResultCount": m63, "security": MessageLookupByLibrary.simpleMessage("Güvenlik"), "selectALocation": MessageLookupByLibrary.simpleMessage("Bir konum seçin"), @@ -1201,8 +1197,8 @@ class MessageLookup extends MessageLookupByLibrary { "selectedItemsWillBeDeletedFromAllAlbumsAndMoved": MessageLookupByLibrary.simpleMessage( "Seçilen öğeler tüm albümlerden silinecek ve çöp kutusuna taşınacak."), - "selectedPhotos": m4, - "selectedPhotosWithYours": m64, + "selectedPhotos": m6, + "selectedPhotosWithYours": m65, "send": MessageLookupByLibrary.simpleMessage("Gönder"), "sendEmail": MessageLookupByLibrary.simpleMessage("E-posta gönder"), "sendInvite": MessageLookupByLibrary.simpleMessage("Davet kodu gönder"), @@ -1227,13 +1223,13 @@ class MessageLookup extends MessageLookupByLibrary { "shareAnAlbumNow": MessageLookupByLibrary.simpleMessage("Şimdi bir albüm paylaşın"), "shareLink": MessageLookupByLibrary.simpleMessage("Linki paylaş"), - "shareMyVerificationID": m65, + "shareMyVerificationID": m66, "shareOnlyWithThePeopleYouWant": MessageLookupByLibrary.simpleMessage( "Yalnızca istediğiniz kişilerle paylaşın"), - "shareTextConfirmOthersVerificationID": m5, + "shareTextConfirmOthersVerificationID": m7, "shareWithNonenteUsers": MessageLookupByLibrary.simpleMessage( "Ente kullanıcısı olmayanlar için paylaş"), - "shareWithPeopleSectionTitle": m67, + "shareWithPeopleSectionTitle": m68, "shareYourFirstAlbum": MessageLookupByLibrary.simpleMessage("İlk albümünüzü paylaşın"), "sharedByMe": @@ -1243,7 +1239,7 @@ class MessageLookup extends MessageLookupByLibrary { "Paylaşılan fotoğrafları ekle"), "sharedPhotoNotificationsExplanation": MessageLookupByLibrary.simpleMessage( "Birisi sizin de parçası olduğunuz paylaşılan bir albüme fotoğraf eklediğinde bildirim alın"), - "sharedWith": m68, + "sharedWith": m69, "sharedWithMe": MessageLookupByLibrary.simpleMessage("Benimle paylaşılan"), "sharedWithYou": @@ -1258,7 +1254,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Diğer cihazlardan çıkış yap"), "signUpTerms": MessageLookupByLibrary.simpleMessage( "Hizmet Şartları\'nı ve Gizlilik Politikası\'nı kabul ediyorum"), - "singleFileDeleteFromDevice": m69, + "singleFileDeleteFromDevice": m70, "singleFileDeleteHighlight": MessageLookupByLibrary.simpleMessage("Tüm albümlerden silinecek."), "skip": MessageLookupByLibrary.simpleMessage("Geç"), @@ -1300,9 +1296,9 @@ class MessageLookup extends MessageLookupByLibrary { "storageInGB": m1, "storageLimitExceeded": MessageLookupByLibrary.simpleMessage("Depolama sınırı aşıldı"), - "storageUsageInfo": m72, + "storageUsageInfo": m73, "strongStrength": MessageLookupByLibrary.simpleMessage("Güçlü"), - "subWillBeCancelledOn": m74, + "subWillBeCancelledOn": m75, "subscribe": MessageLookupByLibrary.simpleMessage("Abone ol"), "subscription": MessageLookupByLibrary.simpleMessage("Abonelik"), "success": MessageLookupByLibrary.simpleMessage("Başarılı"), @@ -1317,7 +1313,7 @@ class MessageLookup extends MessageLookupByLibrary { "suggestFeatures": MessageLookupByLibrary.simpleMessage("Özellik önerin"), "support": MessageLookupByLibrary.simpleMessage("Destek"), - "syncProgress": m75, + "syncProgress": m76, "syncStopped": MessageLookupByLibrary.simpleMessage("Senkronizasyon durduruldu"), "syncing": MessageLookupByLibrary.simpleMessage("Eşitleniyor..."), @@ -1345,7 +1341,7 @@ class MessageLookup extends MessageLookupByLibrary { "theseItemsWillBeDeletedFromYourDevice": MessageLookupByLibrary.simpleMessage( "Bu öğeler cihazınızdan silinecektir."), - "theyAlsoGetXGb": m77, + "theyAlsoGetXGb": m8, "theyWillBeDeletedFromAllAlbums": MessageLookupByLibrary.simpleMessage("Tüm albümlerden silinecek."), "thisActionCannotBeUndone": diff --git a/mobile/lib/generated/intl/messages_uk.dart b/mobile/lib/generated/intl/messages_uk.dart index 54a2c5efb6a..81b07201bd5 100644 --- a/mobile/lib/generated/intl/messages_uk.dart +++ b/mobile/lib/generated/intl/messages_uk.dart @@ -20,215 +20,215 @@ typedef String MessageIfAbsent(String messageStr, List args); class MessageLookup extends MessageLookupByLibrary { String get localeName => 'uk'; - static String m6(count) => + static String m9(count) => "${Intl.plural(count, one: 'Додано співавтора', other: 'Додано співавторів')}"; - static String m7(count) => + static String m10(count) => "${Intl.plural(count, one: 'Додавання елемента', other: 'Додавання елементів')}"; - static String m8(storageAmount, endDate) => + static String m11(storageAmount, endDate) => "Ваше доповнення ${storageAmount} діє до ${endDate}"; - static String m9(count) => + static String m12(count) => "${Intl.plural(count, one: 'Додано глядача', other: 'Додано глядачів')}"; - static String m10(emailOrName) => "Додано ${emailOrName}"; + static String m13(emailOrName) => "Додано ${emailOrName}"; - static String m11(albumName) => "Успішно додано до «${albumName}»"; + static String m14(albumName) => "Успішно додано до «${albumName}»"; - static String m12(count) => + static String m15(count) => "${Intl.plural(count, zero: 'Немає учасників', one: '1 учасник', other: '${count} учасників')}"; - static String m13(versionValue) => "Версія: ${versionValue}"; + static String m16(versionValue) => "Версія: ${versionValue}"; - static String m14(freeAmount, storageUnit) => + static String m17(freeAmount, storageUnit) => "${freeAmount} ${storageUnit} вільно"; - static String m15(paymentProvider) => + static String m18(paymentProvider) => "Спочатку скасуйте вашу передплату від ${paymentProvider}"; - static String m16(user) => + static String m3(user) => "${user} не зможе додавати більше фотографій до цього альбому\n\nВони все ще зможуть видаляти додані ними фотографії"; - static String m17(isFamilyMember, storageAmountInGb) => + static String m19(isFamilyMember, storageAmountInGb) => "${Intl.select(isFamilyMember, { 'true': 'Ваша сім\'я отримала ${storageAmountInGb} ГБ', 'false': 'Ви отримали ${storageAmountInGb} ГБ', 'other': 'Ви отримали ${storageAmountInGb} ГБ!', })}"; - static String m18(albumName) => + static String m20(albumName) => "Створено спільне посилання для «${albumName}»"; - static String m19(count) => + static String m21(count) => "${Intl.plural(count, zero: 'Додано 0 співавторів', one: 'Додано 1 співавтор', few: 'Додано ${count} співаторів', many: 'Додано ${count} співаторів', other: 'Додано ${count} співавторів')}"; - static String m20(email, numOfDays) => + static String m22(email, numOfDays) => "Ви збираєтеся додати ${email} як довірений контакт. Вони зможуть відновити ваш обліковий запис, якщо ви будете відсутні протягом ${numOfDays} днів."; - static String m21(familyAdminEmail) => + static String m23(familyAdminEmail) => "Зв\'яжіться з ${familyAdminEmail} для керування вашою передплатою"; - static String m22(provider) => + static String m24(provider) => "Зв\'яжіться з нами за адресою support@ente.io для управління вашою передплатою ${provider}."; - static String m23(endpoint) => "Під\'єднано до ${endpoint}"; + static String m25(endpoint) => "Під\'єднано до ${endpoint}"; - static String m24(count) => + static String m26(count) => "${Intl.plural(count, one: 'Видалено ${count} елемент', few: 'Видалено ${count} елементи', many: 'Видалено ${count} елементів', other: 'Видалено ${count} елементів')}"; - static String m25(currentlyDeleting, totalCount) => + static String m27(currentlyDeleting, totalCount) => "Видалення ${currentlyDeleting} / ${totalCount}"; - static String m26(albumName) => + static String m28(albumName) => "Це видалить публічне посилання для доступу до «${albumName}»."; - static String m27(supportEmail) => + static String m29(supportEmail) => "Надішліть листа на ${supportEmail} з вашої зареєстрованої поштової адреси"; - static String m28(count, storageSaved) => + static String m30(count, storageSaved) => "Ви очистили ${Intl.plural(count, one: '${count} дублікат файлу', other: '${count} дублікатів файлів')}, збережено (${storageSaved}!)"; - static String m29(count, formattedSize) => + static String m31(count, formattedSize) => "${count} файлів, кожен по ${formattedSize}"; - static String m30(newEmail) => "Поштову адресу змінено на ${newEmail}"; + static String m32(newEmail) => "Поштову адресу змінено на ${newEmail}"; - static String m31(email) => + static String m33(email) => "У ${email} немає облікового запису Ente.\n\nНадішліть їм запрошення для обміну фотографіями."; - static String m32(text) => "Знайдено додаткові фотографії для ${text}"; + static String m34(text) => "Знайдено додаткові фотографії для ${text}"; - static String m33(count, formattedNumber) => + static String m35(count, formattedNumber) => "${Intl.plural(count, one: 'Для 1 файлу', other: 'Для ${formattedNumber} файлів')} на цьому пристрої було створено резервну копію"; - static String m34(count, formattedNumber) => + static String m36(count, formattedNumber) => "${Intl.plural(count, one: 'Для 1 файлу', few: 'Для ${formattedNumber} файлів', many: 'Для ${formattedNumber} файлів', other: 'Для ${formattedNumber} файлів')} у цьому альбомі було створено резервну копію"; - static String m35(storageAmountInGB) => + static String m4(storageAmountInGB) => "${storageAmountInGB} ГБ щоразу, коли хтось оформлює передплату і застосовує ваш код"; - static String m36(endDate) => "Безплатна пробна версія діє до ${endDate}"; + static String m37(endDate) => "Безплатна пробна версія діє до ${endDate}"; - static String m37(count) => + static String m38(count) => "Ви все ще можете отримати доступ до ${Intl.plural(count, one: 'нього', other: 'них')} в Ente, доки у вас активна передплата"; - static String m38(sizeInMBorGB) => "Звільніть ${sizeInMBorGB}"; + static String m39(sizeInMBorGB) => "Звільніть ${sizeInMBorGB}"; - static String m39(count, formattedSize) => + static String m40(count, formattedSize) => "${Intl.plural(count, one: 'Його можна видалити з пристрою, щоб звільнити ${formattedSize}', other: 'Їх можна видалити з пристрою, щоб звільнити ${formattedSize}')}"; - static String m40(currentlyProcessing, totalCount) => + static String m41(currentlyProcessing, totalCount) => "Обробка ${currentlyProcessing} / ${totalCount}"; - static String m41(count) => + static String m42(count) => "${Intl.plural(count, one: '${count} елемент', few: '${count} елементи', many: '${count} елементів', other: '${count} елементів')}"; - static String m42(email) => "${email} запросив вас стати довіреною особою"; + static String m43(email) => "${email} запросив вас стати довіреною особою"; - static String m43(expiryTime) => "Посилання закінчується через ${expiryTime}"; + static String m44(expiryTime) => "Посилання закінчується через ${expiryTime}"; - static String m3(count, formattedCount) => + static String m5(count, formattedCount) => "${Intl.plural(count, zero: 'немає спогадів', one: '${formattedCount} спогад', other: '${formattedCount} спогадів')}"; - static String m44(count) => + static String m45(count) => "${Intl.plural(count, one: 'Переміщення елемента', other: 'Переміщення елементів')}"; - static String m45(albumName) => "Успішно перенесено до «${albumName}»"; + static String m46(albumName) => "Успішно перенесено до «${albumName}»"; - static String m46(personName) => "Немає пропозицій для ${personName}"; + static String m47(personName) => "Немає пропозицій для ${personName}"; - static String m47(name) => "Не ${name}?"; + static String m48(name) => "Не ${name}?"; - static String m48(familyAdminEmail) => + static String m49(familyAdminEmail) => "Зв\'яжіться з ${familyAdminEmail}, щоб змінити код."; static String m0(passwordStrengthValue) => "Надійність пароля: ${passwordStrengthValue}"; - static String m49(providerName) => + static String m50(providerName) => "Зверніться до ${providerName}, якщо було знято платіж"; - static String m50(count) => + static String m51(count) => "${Intl.plural(count, zero: '0 фото', one: '1 фото', few: '${count} фото', many: '${count} фото', other: '${count} фото')}"; - static String m51(endDate) => + static String m52(endDate) => "Безплатна пробна версія діє до ${endDate}.\nПісля цього ви можете обрати платний план."; - static String m52(toEmail) => "Напишіть нам на ${toEmail}"; + static String m53(toEmail) => "Напишіть нам на ${toEmail}"; - static String m53(toEmail) => "Надішліть журнали на \n${toEmail}"; + static String m54(toEmail) => "Надішліть журнали на \n${toEmail}"; - static String m54(folderName) => "Оброблюємо «${folderName}»..."; + static String m55(folderName) => "Оброблюємо «${folderName}»..."; - static String m55(storeName) => "Оцініть нас в ${storeName}"; + static String m56(storeName) => "Оцініть нас в ${storeName}"; - static String m56(days, email) => + static String m57(days, email) => "Ви зможете отримати доступ до облікового запису через ${days} днів. Повідомлення буде надіслано на ${email}."; - static String m57(email) => + static String m58(email) => "Тепер ви можете відновити обліковий запис ${email}, встановивши новий пароль."; - static String m58(email) => + static String m59(email) => "${email} намагається відновити ваш обліковий запис."; - static String m59(storageInGB) => + static String m60(storageInGB) => "3. Ви обоє отримуєте ${storageInGB} ГБ* безплатно"; - static String m60(userEmail) => + static String m61(userEmail) => "${userEmail} буде видалено з цього спільного альбому\n\nБудь-які додані вами фото, будуть також видалені з альбому"; - static String m61(endDate) => "Передплата поновиться ${endDate}"; + static String m62(endDate) => "Передплата поновиться ${endDate}"; - static String m62(count) => + static String m63(count) => "${Intl.plural(count, one: 'Знайдено ${count} результат', few: 'Знайдено ${count} результати', many: 'Знайдено ${count} результатів', other: 'Знайдено ${count} результати')}"; - static String m63(snapshotLength, searchLength) => + static String m64(snapshotLength, searchLength) => "Невідповідність довжини розділів: ${snapshotLength} != ${searchLength}"; - static String m4(count) => "${count} вибрано"; + static String m6(count) => "${count} вибрано"; - static String m64(count, yourCount) => "${count} вибрано (${yourCount} ваші)"; + static String m65(count, yourCount) => "${count} вибрано (${yourCount} ваші)"; - static String m65(verificationID) => + static String m66(verificationID) => "Ось мій ідентифікатор підтвердження: ${verificationID} для ente.io."; - static String m5(verificationID) => + static String m7(verificationID) => "Гей, ви можете підтвердити, що це ваш ідентифікатор підтвердження: ${verificationID}"; - static String m66(referralCode, referralStorageInGB) => + static String m67(referralCode, referralStorageInGB) => "Реферальний код Ente: ${referralCode} \n\nЗастосуйте його в «Налаштування» → «Загальні» → «Реферали», щоб отримати ${referralStorageInGB} ГБ безплатно після переходу на платний тариф\n\nhttps://ente.io"; - static String m67(numberOfPeople) => + static String m68(numberOfPeople) => "${Intl.plural(numberOfPeople, zero: 'Поділитися з конкретними людьми', one: 'Поділитися з 1 особою', other: 'Поділитися з ${numberOfPeople} людьми')}"; - static String m68(emailIDs) => "Поділилися з ${emailIDs}"; + static String m69(emailIDs) => "Поділилися з ${emailIDs}"; - static String m69(fileType) => "Цей ${fileType} буде видалено з пристрою."; + static String m70(fileType) => "Цей ${fileType} буде видалено з пристрою."; - static String m70(fileType) => + static String m71(fileType) => "Цей ${fileType} знаходиться і в Ente, і на вашому пристрої."; - static String m71(fileType) => "Цей ${fileType} буде видалено з Ente."; + static String m72(fileType) => "Цей ${fileType} буде видалено з Ente."; static String m1(storageAmountInGB) => "${storageAmountInGB} ГБ"; - static String m72( + static String m73( usedAmount, usedStorageUnit, totalAmount, totalStorageUnit) => "${usedAmount} ${usedStorageUnit} з ${totalAmount} ${totalStorageUnit} використано"; - static String m73(id) => + static String m74(id) => "Ваш ${id} вже пов\'язаний з іншим обліковим записом Ente.\nЯкщо ви хочете використовувати свій ${id} з цим обліковим записом, зверніться до нашої служби підтримки"; - static String m74(endDate) => "Вашу передплату буде скасовано ${endDate}"; + static String m75(endDate) => "Вашу передплату буде скасовано ${endDate}"; - static String m75(completed, total) => + static String m76(completed, total) => "${completed} / ${total} спогадів збережено"; - static String m76(ignoreReason) => + static String m77(ignoreReason) => "Натисніть, щоб завантажити; завантаження наразі ігнорується через: ${ignoreReason}"; - static String m77(storageAmountInGB) => + static String m8(storageAmountInGB) => "Вони також отримують ${storageAmountInGB} ГБ"; static String m78(email) => "Це ідентифікатор підтвердження пошти ${email}"; @@ -283,11 +283,11 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Додати нову пошту"), "addCollaborator": MessageLookupByLibrary.simpleMessage("Додати співавтора"), - "addCollaborators": m6, + "addCollaborators": m9, "addFiles": MessageLookupByLibrary.simpleMessage("Додати файли"), "addFromDevice": MessageLookupByLibrary.simpleMessage("Додати з пристрою"), - "addItem": m7, + "addItem": m10, "addLocation": MessageLookupByLibrary.simpleMessage("Додати розташування"), "addLocationButton": MessageLookupByLibrary.simpleMessage("Додати"), @@ -300,7 +300,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Додати нову особу"), "addOnPageSubtitle": MessageLookupByLibrary.simpleMessage("Подробиці доповнень"), - "addOnValidTill": m8, + "addOnValidTill": m11, "addOns": MessageLookupByLibrary.simpleMessage("Доповнення"), "addPhotos": MessageLookupByLibrary.simpleMessage("Додати фотографії"), "addSelected": MessageLookupByLibrary.simpleMessage("Додати вибране"), @@ -311,12 +311,12 @@ class MessageLookup extends MessageLookupByLibrary { "addTrustedContact": MessageLookupByLibrary.simpleMessage("Додати довірений контакт"), "addViewer": MessageLookupByLibrary.simpleMessage("Додати глядача"), - "addViewers": m9, + "addViewers": m12, "addYourPhotosNow": MessageLookupByLibrary.simpleMessage("Додайте свої фотографії"), "addedAs": MessageLookupByLibrary.simpleMessage("Додано як"), - "addedBy": m10, - "addedSuccessfullyTo": m11, + "addedBy": m13, + "addedSuccessfullyTo": m14, "addingToFavorites": MessageLookupByLibrary.simpleMessage("Додавання до обраного..."), "advanced": MessageLookupByLibrary.simpleMessage("Додатково"), @@ -327,7 +327,7 @@ class MessageLookup extends MessageLookupByLibrary { "after1Week": MessageLookupByLibrary.simpleMessage("Через 1 тиждень"), "after1Year": MessageLookupByLibrary.simpleMessage("Через 1 рік"), "albumOwner": MessageLookupByLibrary.simpleMessage("Власник"), - "albumParticipantsCount": m12, + "albumParticipantsCount": m15, "albumTitle": MessageLookupByLibrary.simpleMessage("Назва альбому"), "albumUpdated": MessageLookupByLibrary.simpleMessage("Альбом оновлено"), "albums": MessageLookupByLibrary.simpleMessage("Альбоми"), @@ -377,7 +377,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Блокування застосунку"), "appLockDescriptions": MessageLookupByLibrary.simpleMessage( "Виберіть між типовим екраном блокування вашого пристрою та власним екраном блокування з PIN-кодом або паролем."), - "appVersion": m13, + "appVersion": m16, "appleId": MessageLookupByLibrary.simpleMessage("Apple ID"), "apply": MessageLookupByLibrary.simpleMessage("Застосувати"), "applyCodeTitle": @@ -460,7 +460,7 @@ class MessageLookup extends MessageLookupByLibrary { "autoPairDesc": MessageLookupByLibrary.simpleMessage( "Автоматичне створення пари працює лише з пристроями, що підтримують Chromecast."), "available": MessageLookupByLibrary.simpleMessage("Доступно"), - "availableStorageSpace": m14, + "availableStorageSpace": m17, "backedUpFolders": MessageLookupByLibrary.simpleMessage("Резервне копіювання тек"), "backup": MessageLookupByLibrary.simpleMessage("Резервне копіювання"), @@ -497,10 +497,10 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Скасувати відновлення"), "cancelAccountRecoveryBody": MessageLookupByLibrary.simpleMessage( "Ви впевнені, що хочете скасувати відновлення?"), - "cancelOtherSubscription": m15, + "cancelOtherSubscription": m18, "cancelSubscription": MessageLookupByLibrary.simpleMessage("Скасувати передплату"), - "cannotAddMorePhotosAfterBecomingViewer": m16, + "cannotAddMorePhotosAfterBecomingViewer": m3, "cannotDeleteSharedFiles": MessageLookupByLibrary.simpleMessage( "Не можна видалити спільні файли"), "castAlbum": MessageLookupByLibrary.simpleMessage("Транслювати альбом"), @@ -549,7 +549,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Отримайте безплатне сховище"), "claimMore": MessageLookupByLibrary.simpleMessage("Отримайте більше!"), "claimed": MessageLookupByLibrary.simpleMessage("Отримано"), - "claimedStorageSoFar": m17, + "claimedStorageSoFar": m19, "cleanUncategorized": MessageLookupByLibrary.simpleMessage("Очистити «Без категорії»"), "cleanUncategorizedDescription": MessageLookupByLibrary.simpleMessage( @@ -579,12 +579,12 @@ class MessageLookup extends MessageLookupByLibrary { "Створіть посилання, щоб дозволити людям додавати й переглядати фотографії у вашому спільному альбомі без використання застосунку Ente або облікового запису. Чудово підходить для збору фотографій з подій."), "collaborativeLink": MessageLookupByLibrary.simpleMessage("Спільне посилання"), - "collaborativeLinkCreatedFor": m18, + "collaborativeLinkCreatedFor": m20, "collaborator": MessageLookupByLibrary.simpleMessage("Співавтор"), "collaboratorsCanAddPhotosAndVideosToTheSharedAlbum": MessageLookupByLibrary.simpleMessage( "Співавтори можуть додавати фотографії та відео до спільного альбому."), - "collaboratorsSuccessfullyAdded": m19, + "collaboratorsSuccessfullyAdded": m21, "collageLayout": MessageLookupByLibrary.simpleMessage("Макет"), "collageSaved": MessageLookupByLibrary.simpleMessage("Колаж збережено до галереї"), @@ -602,7 +602,7 @@ class MessageLookup extends MessageLookupByLibrary { "Ви впевнені, що хочете вимкнути двоетапну перевірку?"), "confirmAccountDeletion": MessageLookupByLibrary.simpleMessage( "Підтвердьте видалення облікового запису"), - "confirmAddingTrustedContact": m20, + "confirmAddingTrustedContact": m22, "confirmDeletePrompt": MessageLookupByLibrary.simpleMessage( "Так, я хочу безповоротно видалити цей обліковий запис та його дані з усіх застосунків."), "confirmPassword": @@ -615,10 +615,10 @@ class MessageLookup extends MessageLookupByLibrary { "Підтвердіть ваш ключ відновлення"), "connectToDevice": MessageLookupByLibrary.simpleMessage("Під\'єднатися до пристрою"), - "contactFamilyAdmin": m21, + "contactFamilyAdmin": m23, "contactSupport": MessageLookupByLibrary.simpleMessage( "Звернутися до служби підтримки"), - "contactToManageSubscription": m22, + "contactToManageSubscription": m24, "contacts": MessageLookupByLibrary.simpleMessage("Контакти"), "contents": MessageLookupByLibrary.simpleMessage("Вміст"), "continueLabel": MessageLookupByLibrary.simpleMessage("Продовжити"), @@ -665,7 +665,7 @@ class MessageLookup extends MessageLookupByLibrary { "currentlyRunning": MessageLookupByLibrary.simpleMessage("зараз працює"), "custom": MessageLookupByLibrary.simpleMessage("Власне"), - "customEndpoint": m23, + "customEndpoint": m25, "darkTheme": MessageLookupByLibrary.simpleMessage("Темна"), "dayToday": MessageLookupByLibrary.simpleMessage("Сьогодні"), "dayYesterday": MessageLookupByLibrary.simpleMessage("Вчора"), @@ -703,11 +703,11 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Видалити з пристрою"), "deleteFromEnte": MessageLookupByLibrary.simpleMessage("Видалити з Ente"), - "deleteItemCount": m24, + "deleteItemCount": m26, "deleteLocation": MessageLookupByLibrary.simpleMessage("Видалити розташування"), "deletePhotos": MessageLookupByLibrary.simpleMessage("Видалити фото"), - "deleteProgress": m25, + "deleteProgress": m27, "deleteReason1": MessageLookupByLibrary.simpleMessage( "Мені бракує ключової функції"), "deleteReason2": MessageLookupByLibrary.simpleMessage( @@ -746,7 +746,7 @@ class MessageLookup extends MessageLookupByLibrary { "Переглядачі все ще можуть робити знімки екрана або зберігати копію ваших фотографій за допомогою зовнішніх інструментів"), "disableDownloadWarningTitle": MessageLookupByLibrary.simpleMessage("Зверніть увагу"), - "disableLinkMessage": m26, + "disableLinkMessage": m28, "disableTwofactor": MessageLookupByLibrary.simpleMessage( "Вимкнути двоетапну перевірку"), "disablingTwofactorAuthentication": @@ -789,9 +789,9 @@ class MessageLookup extends MessageLookupByLibrary { "downloadFailed": MessageLookupByLibrary.simpleMessage("Не вдалося завантажити"), "downloading": MessageLookupByLibrary.simpleMessage("Завантаження..."), - "dropSupportEmail": m27, - "duplicateFileCountWithStorageSaved": m28, - "duplicateItemsGroup": m29, + "dropSupportEmail": m29, + "duplicateFileCountWithStorageSaved": m30, + "duplicateItemsGroup": m31, "edit": MessageLookupByLibrary.simpleMessage("Редагувати"), "editLocation": MessageLookupByLibrary.simpleMessage("Змінити розташування"), @@ -805,8 +805,8 @@ class MessageLookup extends MessageLookupByLibrary { "eligible": MessageLookupByLibrary.simpleMessage("придатний"), "email": MessageLookupByLibrary.simpleMessage("Адреса електронної пошти"), - "emailChangedTo": m30, - "emailNoEnteAccount": m31, + "emailChangedTo": m32, + "emailNoEnteAccount": m33, "emailVerificationToggle": MessageLookupByLibrary.simpleMessage("Підтвердження через пошту"), "emailYourLogs": MessageLookupByLibrary.simpleMessage( @@ -888,7 +888,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Експортувати дані"), "extraPhotosFound": MessageLookupByLibrary.simpleMessage( "Знайдено додаткові фотографії"), - "extraPhotosFoundFor": m32, + "extraPhotosFoundFor": m34, "faceNotClusteredYet": MessageLookupByLibrary.simpleMessage( "Обличчя ще не згруповані, поверніться пізніше"), "faceRecognition": @@ -938,8 +938,8 @@ class MessageLookup extends MessageLookupByLibrary { "fileTypes": MessageLookupByLibrary.simpleMessage("Типи файлів"), "fileTypesAndNames": MessageLookupByLibrary.simpleMessage("Типи та назви файлів"), - "filesBackedUpFromDevice": m33, - "filesBackedUpInAlbum": m34, + "filesBackedUpFromDevice": m35, + "filesBackedUpInAlbum": m36, "filesDeleted": MessageLookupByLibrary.simpleMessage("Файли видалено"), "filesSavedToGallery": MessageLookupByLibrary.simpleMessage("Файли збережено до галереї"), @@ -955,26 +955,26 @@ class MessageLookup extends MessageLookupByLibrary { "foundFaces": MessageLookupByLibrary.simpleMessage("Знайдені обличчя"), "freeStorageClaimed": MessageLookupByLibrary.simpleMessage("Безплатне сховище отримано"), - "freeStorageOnReferralSuccess": m35, + "freeStorageOnReferralSuccess": m4, "freeStorageUsable": MessageLookupByLibrary.simpleMessage( "Безплатне сховище можна використовувати"), "freeTrial": MessageLookupByLibrary.simpleMessage("Безплатний пробний період"), - "freeTrialValidTill": m36, - "freeUpAccessPostDelete": m37, - "freeUpAmount": m38, + "freeTrialValidTill": m37, + "freeUpAccessPostDelete": m38, + "freeUpAmount": m39, "freeUpDeviceSpace": MessageLookupByLibrary.simpleMessage("Звільніть місце на пристрої"), "freeUpDeviceSpaceDesc": MessageLookupByLibrary.simpleMessage( "Збережіть місце на вашому пристрої, очистивши файли, які вже збережено."), "freeUpSpace": MessageLookupByLibrary.simpleMessage("Звільнити місце"), - "freeUpSpaceSaving": m39, + "freeUpSpaceSaving": m40, "galleryMemoryLimitInfo": MessageLookupByLibrary.simpleMessage( "До 1000 спогадів, показаних у галереї"), "general": MessageLookupByLibrary.simpleMessage("Загальні"), "generatingEncryptionKeys": MessageLookupByLibrary.simpleMessage( "Створення ключів шифрування..."), - "genericProgress": m40, + "genericProgress": m41, "goToSettings": MessageLookupByLibrary.simpleMessage("Перейти до налаштувань"), "googlePlayId": MessageLookupByLibrary.simpleMessage("Google Play ID"), @@ -1055,7 +1055,7 @@ class MessageLookup extends MessageLookupByLibrary { "itLooksLikeSomethingWentWrongPleaseRetryAfterSome": MessageLookupByLibrary.simpleMessage( "Схоже, що щось пішло не так. Спробуйте ще раз через деякий час. Якщо помилка не зникне, зв\'яжіться з нашою командою підтримки."), - "itemCount": m41, + "itemCount": m42, "itemsShowTheNumberOfDaysRemainingBeforePermanentDeletion": MessageLookupByLibrary.simpleMessage( "Елементи показують кількість днів, що залишилися до остаточного видалення"), @@ -1079,22 +1079,20 @@ class MessageLookup extends MessageLookupByLibrary { "legacy": MessageLookupByLibrary.simpleMessage("Спадок"), "legacyAccounts": MessageLookupByLibrary.simpleMessage("Облікові записи «Спадку»"), - "legacyInvite": m42, + "legacyInvite": m43, "legacyPageDesc": MessageLookupByLibrary.simpleMessage( "«Спадок» дозволяє довіреним контактам отримати доступ до вашого облікового запису під час вашої відсутності."), "legacyPageDesc2": MessageLookupByLibrary.simpleMessage( "Довірені контакти можуть ініціювати відновлення облікового запису, і якщо його не буде заблоковано протягом 30 днів, скинути пароль і отримати доступ до нього."), "light": MessageLookupByLibrary.simpleMessage("Яскравість"), "lightTheme": MessageLookupByLibrary.simpleMessage("Світла"), - "link": MessageLookupByLibrary.simpleMessage("Link"), "linkCopiedToClipboard": MessageLookupByLibrary.simpleMessage( "Посилання скопійовано в буфер обміну"), "linkDeviceLimit": MessageLookupByLibrary.simpleMessage("Досягнуто ліміту пристроїв"), - "linkEmail": MessageLookupByLibrary.simpleMessage("Link email"), "linkEnabled": MessageLookupByLibrary.simpleMessage("Увімкнено"), "linkExpired": MessageLookupByLibrary.simpleMessage("Закінчився"), - "linkExpiresOn": m43, + "linkExpiresOn": m44, "linkExpiry": MessageLookupByLibrary.simpleMessage( "Термін дії посилання закінчився"), "linkHasExpired": @@ -1191,7 +1189,7 @@ class MessageLookup extends MessageLookupByLibrary { "maps": MessageLookupByLibrary.simpleMessage("Мапи"), "mastodon": MessageLookupByLibrary.simpleMessage("Mastodon"), "matrix": MessageLookupByLibrary.simpleMessage("Matrix"), - "memoryCount": m3, + "memoryCount": m5, "merchandise": MessageLookupByLibrary.simpleMessage("Товари"), "mergeWithExisting": MessageLookupByLibrary.simpleMessage("Об\'єднати з наявним"), @@ -1221,12 +1219,12 @@ class MessageLookup extends MessageLookupByLibrary { "moreDetails": MessageLookupByLibrary.simpleMessage("Детальніше"), "mostRecent": MessageLookupByLibrary.simpleMessage("Останні"), "mostRelevant": MessageLookupByLibrary.simpleMessage("Найактуальніші"), - "moveItem": m44, + "moveItem": m45, "moveToAlbum": MessageLookupByLibrary.simpleMessage("Перемістити до альбому"), "moveToHiddenAlbum": MessageLookupByLibrary.simpleMessage( "Перемістити до прихованого альбому"), - "movedSuccessfullyTo": m45, + "movedSuccessfullyTo": m46, "movedToTrash": MessageLookupByLibrary.simpleMessage("Переміщено у смітник"), "movingFilesToAlbum": MessageLookupByLibrary.simpleMessage( @@ -1255,8 +1253,6 @@ class MessageLookup extends MessageLookupByLibrary { "У вас не маєте файлів на цьому пристрої, які можна видалити"), "noDuplicates": MessageLookupByLibrary.simpleMessage("✨ Немає дублікатів"), - "noEnteAccountExclamation": - MessageLookupByLibrary.simpleMessage("No Ente account!"), "noExifData": MessageLookupByLibrary.simpleMessage("Немає даних EXIF"), "noFacesFound": MessageLookupByLibrary.simpleMessage("Обличчя не знайдено"), @@ -1280,10 +1276,10 @@ class MessageLookup extends MessageLookupByLibrary { "noResults": MessageLookupByLibrary.simpleMessage("Немає результатів"), "noResultsFound": MessageLookupByLibrary.simpleMessage("Нічого не знайдено"), - "noSuggestionsForPerson": m46, + "noSuggestionsForPerson": m47, "noSystemLockFound": MessageLookupByLibrary.simpleMessage( "Не знайдено системного блокування"), - "notPersonLabel": m47, + "notPersonLabel": m48, "nothingSharedWithYouYet": MessageLookupByLibrary.simpleMessage( "Поки що з вами ніхто не поділився"), "nothingToSeeHere": MessageLookupByLibrary.simpleMessage( @@ -1293,7 +1289,7 @@ class MessageLookup extends MessageLookupByLibrary { "onDevice": MessageLookupByLibrary.simpleMessage("На пристрої"), "onEnte": MessageLookupByLibrary.simpleMessage("В Ente"), - "onlyFamilyAdminCanChangeCode": m48, + "onlyFamilyAdminCanChangeCode": m49, "onlyThem": MessageLookupByLibrary.simpleMessage("Тільки вони"), "oops": MessageLookupByLibrary.simpleMessage("От халепа"), "oopsCouldNotSaveEdits": MessageLookupByLibrary.simpleMessage( @@ -1344,7 +1340,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Не вдалося оплатити"), "paymentFailedMessage": MessageLookupByLibrary.simpleMessage( "На жаль, ваш платіж не вдався. Зв\'яжіться зі службою підтримки і ми вам допоможемо!"), - "paymentFailedTalkToProvider": m49, + "paymentFailedTalkToProvider": m50, "pendingItems": MessageLookupByLibrary.simpleMessage("Елементи на розгляді"), "pendingSync": @@ -1368,14 +1364,14 @@ class MessageLookup extends MessageLookupByLibrary { "photosAddedByYouWillBeRemovedFromTheAlbum": MessageLookupByLibrary.simpleMessage( "Додані вами фотографії будуть видалені з альбому"), - "photosCount": m50, + "photosCount": m51, "pickCenterPoint": MessageLookupByLibrary.simpleMessage("Вкажіть центральну точку"), "pinAlbum": MessageLookupByLibrary.simpleMessage("Закріпити альбом"), "pinLock": MessageLookupByLibrary.simpleMessage("Блокування PIN-кодом"), "playOnTv": MessageLookupByLibrary.simpleMessage("Відтворити альбом на ТБ"), - "playStoreFreeTrialValidTill": m51, + "playStoreFreeTrialValidTill": m52, "playstoreSubscription": MessageLookupByLibrary.simpleMessage("Передплата Play Store"), "pleaseCheckYourInternetConnectionAndTryAgain": @@ -1387,14 +1383,14 @@ class MessageLookup extends MessageLookupByLibrary { "pleaseContactSupportIfTheProblemPersists": MessageLookupByLibrary.simpleMessage( "Зверніться до служби підтримки, якщо проблема не зникне"), - "pleaseEmailUsAt": m52, + "pleaseEmailUsAt": m53, "pleaseGrantPermissions": MessageLookupByLibrary.simpleMessage("Надайте дозволи"), "pleaseLoginAgain": MessageLookupByLibrary.simpleMessage("Увійдіть знову"), "pleaseSelectQuickLinksToRemove": MessageLookupByLibrary.simpleMessage( "Виберіть посилання для видалення"), - "pleaseSendTheLogsTo": m53, + "pleaseSendTheLogsTo": m54, "pleaseTryAgain": MessageLookupByLibrary.simpleMessage("Спробуйте ще раз"), "pleaseVerifyTheCodeYouHaveEntered": @@ -1421,7 +1417,7 @@ class MessageLookup extends MessageLookupByLibrary { "privateSharing": MessageLookupByLibrary.simpleMessage("Приватне поширення"), "proceed": MessageLookupByLibrary.simpleMessage("Продовжити"), - "processingImport": m54, + "processingImport": m55, "publicLinkCreated": MessageLookupByLibrary.simpleMessage("Публічне посилання створено"), "publicLinkEnabled": MessageLookupByLibrary.simpleMessage( @@ -1432,7 +1428,7 @@ class MessageLookup extends MessageLookupByLibrary { "rateTheApp": MessageLookupByLibrary.simpleMessage("Оцініть застосунок"), "rateUs": MessageLookupByLibrary.simpleMessage("Оцініть нас"), - "rateUsOnStore": m55, + "rateUsOnStore": m56, "recover": MessageLookupByLibrary.simpleMessage("Відновити"), "recoverAccount": MessageLookupByLibrary.simpleMessage("Відновити обліковий запис"), @@ -1441,7 +1437,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Відновити обліковий запис"), "recoveryInitiated": MessageLookupByLibrary.simpleMessage("Почато відновлення"), - "recoveryInitiatedDesc": m56, + "recoveryInitiatedDesc": m57, "recoveryKey": MessageLookupByLibrary.simpleMessage("Ключ відновлення"), "recoveryKeyCopiedToClipboard": MessageLookupByLibrary.simpleMessage( "Ключ відновлення скопійовано в буфер обміну"), @@ -1455,12 +1451,12 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Ключ відновлення перевірено"), "recoveryKeyVerifyReason": MessageLookupByLibrary.simpleMessage( "Ключ відновлення — це єдиний спосіб відновити фотографії, якщо ви забули пароль. Ви можете знайти свій ключ в розділі «Налаштування» > «Обліковий запис».\n\nВведіть ключ відновлення тут, щоб перевірити, чи правильно ви його зберегли."), - "recoveryReady": m57, + "recoveryReady": m58, "recoverySuccessful": MessageLookupByLibrary.simpleMessage("Відновлення успішне!"), "recoveryWarning": MessageLookupByLibrary.simpleMessage( "Довірений контакт намагається отримати доступ до вашого облікового запису"), - "recoveryWarningBody": m58, + "recoveryWarningBody": m59, "recreatePasswordBody": MessageLookupByLibrary.simpleMessage( "Ваш пристрій недостатньо потужний для перевірки пароля, але ми можемо відновити його таким чином, щоб він працював на всіх пристроях.\n\nУвійдіть за допомогою ключа відновлення та відновіть свій пароль (за бажанням ви можете використати той самий ключ знову)."), "recreatePasswordTitle": @@ -1476,7 +1472,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("1. Дайте цей код друзям"), "referralStep2": MessageLookupByLibrary.simpleMessage( "2. Вони оформлюють передплату"), - "referralStep3": m59, + "referralStep3": m60, "referrals": MessageLookupByLibrary.simpleMessage("Реферали"), "referralsAreCurrentlyPaused": MessageLookupByLibrary.simpleMessage("Реферали зараз призупинені"), @@ -1508,7 +1504,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Вилучити посилання"), "removeParticipant": MessageLookupByLibrary.simpleMessage("Видалити учасника"), - "removeParticipantBody": m60, + "removeParticipantBody": m61, "removePersonLabel": MessageLookupByLibrary.simpleMessage("Видалити мітку особи"), "removePublicLink": @@ -1530,7 +1526,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Перейменувати файл"), "renewSubscription": MessageLookupByLibrary.simpleMessage("Поновити передплату"), - "renewsOn": m61, + "renewsOn": m62, "reportABug": MessageLookupByLibrary.simpleMessage("Повідомити про помилку"), "reportBug": @@ -1610,8 +1606,8 @@ class MessageLookup extends MessageLookupByLibrary { "Запросіть людей, і ви побачите всі фотографії, якими вони поділилися, тут"), "searchPersonsEmptySection": MessageLookupByLibrary.simpleMessage( "Люди будуть показані тут після завершення оброблення та синхронізації"), - "searchResultCount": m62, - "searchSectionsLengthMismatch": m63, + "searchResultCount": m63, + "searchSectionsLengthMismatch": m64, "security": MessageLookupByLibrary.simpleMessage("Безпека"), "seePublicAlbumLinksInApp": MessageLookupByLibrary.simpleMessage( "Посилання на публічні альбоми в застосунку"), @@ -1643,8 +1639,8 @@ class MessageLookup extends MessageLookupByLibrary { "selectedItemsWillBeDeletedFromAllAlbumsAndMoved": MessageLookupByLibrary.simpleMessage( "Вибрані елементи будуть видалені з усіх альбомів і переміщені в смітник."), - "selectedPhotos": m4, - "selectedPhotosWithYours": m64, + "selectedPhotos": m6, + "selectedPhotosWithYours": m65, "send": MessageLookupByLibrary.simpleMessage("Надіслати"), "sendEmail": MessageLookupByLibrary.simpleMessage( "Надіслати електронного листа"), @@ -1681,16 +1677,16 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Поділитися альбомом зараз"), "shareLink": MessageLookupByLibrary.simpleMessage("Поділитися посиланням"), - "shareMyVerificationID": m65, + "shareMyVerificationID": m66, "shareOnlyWithThePeopleYouWant": MessageLookupByLibrary.simpleMessage( "Поділіться тільки з тими людьми, якими ви хочете"), - "shareTextConfirmOthersVerificationID": m5, + "shareTextConfirmOthersVerificationID": m7, "shareTextRecommendUsingEnte": MessageLookupByLibrary.simpleMessage( "Завантажте Ente для того, щоб легко поділитися фотографіями оригінальної якості та відео\n\nhttps://ente.io"), - "shareTextReferralCode": m66, + "shareTextReferralCode": m67, "shareWithNonenteUsers": MessageLookupByLibrary.simpleMessage( "Поділитися з користувачами без Ente"), - "shareWithPeopleSectionTitle": m67, + "shareWithPeopleSectionTitle": m68, "shareYourFirstAlbum": MessageLookupByLibrary.simpleMessage( "Поділитися вашим першим альбомом"), "sharedAlbumSectionDescription": MessageLookupByLibrary.simpleMessage( @@ -1701,7 +1697,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Нові спільні фотографії"), "sharedPhotoNotificationsExplanation": MessageLookupByLibrary.simpleMessage( "Отримувати сповіщення, коли хтось додасть фото до спільного альбому, в якому ви перебуваєте"), - "sharedWith": m68, + "sharedWith": m69, "sharedWithMe": MessageLookupByLibrary.simpleMessage("Поділитися зі мною"), "sharedWithYou": @@ -1718,11 +1714,11 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Вийти на інших пристроях"), "signUpTerms": MessageLookupByLibrary.simpleMessage( "Я приймаю умови використання і політику приватності"), - "singleFileDeleteFromDevice": m69, + "singleFileDeleteFromDevice": m70, "singleFileDeleteHighlight": MessageLookupByLibrary.simpleMessage( "Воно буде видалено з усіх альбомів."), - "singleFileInBothLocalAndRemote": m70, - "singleFileInRemoteOnly": m71, + "singleFileInBothLocalAndRemote": m71, + "singleFileInRemoteOnly": m72, "skip": MessageLookupByLibrary.simpleMessage("Пропустити"), "social": MessageLookupByLibrary.simpleMessage("Соцмережі"), "someItemsAreInBothEnteAndYourDevice": @@ -1773,10 +1769,10 @@ class MessageLookup extends MessageLookupByLibrary { "storageInGB": m1, "storageLimitExceeded": MessageLookupByLibrary.simpleMessage("Перевищено ліміт сховища"), - "storageUsageInfo": m72, + "storageUsageInfo": m73, "strongStrength": MessageLookupByLibrary.simpleMessage("Надійний"), - "subAlreadyLinkedErrMessage": m73, - "subWillBeCancelledOn": m74, + "subAlreadyLinkedErrMessage": m74, + "subWillBeCancelledOn": m75, "subscribe": MessageLookupByLibrary.simpleMessage("Передплачувати"), "subscribeToEnableSharing": MessageLookupByLibrary.simpleMessage( "Вам потрібна активна передплата, щоб увімкнути спільне поширення."), @@ -1793,7 +1789,7 @@ class MessageLookup extends MessageLookupByLibrary { "suggestFeatures": MessageLookupByLibrary.simpleMessage("Запропонувати нові функції"), "support": MessageLookupByLibrary.simpleMessage("Підтримка"), - "syncProgress": m75, + "syncProgress": m76, "syncStopped": MessageLookupByLibrary.simpleMessage("Синхронізацію зупинено"), "syncing": MessageLookupByLibrary.simpleMessage("Синхронізуємо..."), @@ -1806,7 +1802,7 @@ class MessageLookup extends MessageLookupByLibrary { "Торкніться, щоби розблокувати"), "tapToUpload": MessageLookupByLibrary.simpleMessage("Натисніть, щоб завантажити"), - "tapToUploadIsIgnoredDue": m76, + "tapToUploadIsIgnoredDue": m77, "tempErrorContactSupportIfPersists": MessageLookupByLibrary.simpleMessage( "Схоже, що щось пішло не так. Спробуйте ще раз через деякий час. Якщо помилка не зникне, зв\'яжіться з нашою командою підтримки."), "terminate": MessageLookupByLibrary.simpleMessage("Припинити"), @@ -1829,7 +1825,7 @@ class MessageLookup extends MessageLookupByLibrary { "theseItemsWillBeDeletedFromYourDevice": MessageLookupByLibrary.simpleMessage( "Ці елементи будуть видалені з пристрою."), - "theyAlsoGetXGb": m77, + "theyAlsoGetXGb": m8, "theyWillBeDeletedFromAllAlbums": MessageLookupByLibrary.simpleMessage( "Вони будуть видалені з усіх альбомів."), "thisActionCannotBeUndone": MessageLookupByLibrary.simpleMessage( diff --git a/mobile/lib/generated/intl/messages_vi.dart b/mobile/lib/generated/intl/messages_vi.dart index 6d775043abc..b16efcb6b1d 100644 --- a/mobile/lib/generated/intl/messages_vi.dart +++ b/mobile/lib/generated/intl/messages_vi.dart @@ -20,37 +20,37 @@ typedef String MessageIfAbsent(String messageStr, List args); class MessageLookup extends MessageLookupByLibrary { String get localeName => 'vi'; - static String m6(count) => + static String m9(count) => "${Intl.plural(count, zero: 'Thêm cộng tác viên', one: 'Thêm cộng tác viên', other: 'Thêm cộng tác viên')}"; - static String m7(count) => + static String m10(count) => "${Intl.plural(count, one: 'Thêm mục', other: 'Thêm các mục')}"; - static String m8(storageAmount, endDate) => + static String m11(storageAmount, endDate) => "Gói bổ sung ${storageAmount} của bạn có hiệu lực đến ${endDate}"; - static String m9(count) => + static String m12(count) => "${Intl.plural(count, zero: 'Thêm người xem', one: 'Thêm người xem', other: 'Thêm người xem')}"; - static String m10(emailOrName) => "Được thêm bởi ${emailOrName}"; + static String m13(emailOrName) => "Được thêm bởi ${emailOrName}"; - static String m11(albumName) => "Đã thêm thành công vào ${albumName}"; + static String m14(albumName) => "Đã thêm thành công vào ${albumName}"; - static String m12(count) => + static String m15(count) => "${Intl.plural(count, zero: 'Không có người tham gia', one: '1 người tham gia', other: '${count} Người tham gia')}"; - static String m13(versionValue) => "Phiên bản: ${versionValue}"; + static String m16(versionValue) => "Phiên bản: ${versionValue}"; - static String m14(freeAmount, storageUnit) => + static String m17(freeAmount, storageUnit) => "${freeAmount} ${storageUnit} còn trống"; - static String m15(paymentProvider) => + static String m18(paymentProvider) => "Vui lòng hủy đăng ký hiện tại của bạn từ ${paymentProvider} trước"; - static String m16(user) => + static String m3(user) => "${user} sẽ không thể thêm ảnh mới vào album này\n\nHọ vẫn có thể xóa các ảnh đã thêm trước đó"; - static String m17(isFamilyMember, storageAmountInGb) => + static String m19(isFamilyMember, storageAmountInGb) => "${Intl.select(isFamilyMember, { 'true': 'Gia đình bạn đã yêu cầu ${storageAmountInGb} GB cho đến nay', @@ -58,182 +58,182 @@ class MessageLookup extends MessageLookupByLibrary { 'other': 'Bạn đã yêu cầu ${storageAmountInGb} GB cho đến nay!', })}"; - static String m18(albumName) => + static String m20(albumName) => "Liên kết hợp tác đã được tạo cho ${albumName}"; - static String m19(count) => + static String m21(count) => "${Intl.plural(count, zero: 'Đã thêm 0 cộng tác viên', one: 'Đã thêm 1 cộng tác viên', other: 'Đã thêm ${count} cộng tác viên')}"; - static String m20(email, numOfDays) => + static String m22(email, numOfDays) => "Bạn sắp thêm ${email} làm liên hệ tin cậy. Họ sẽ có thể khôi phục tài khoản của bạn nếu bạn không hoạt động trong ${numOfDays} ngày."; - static String m21(familyAdminEmail) => + static String m23(familyAdminEmail) => "Vui lòng liên hệ với ${familyAdminEmail} để quản lý đăng ký của bạn"; - static String m22(provider) => + static String m24(provider) => "Vui lòng liên hệ với chúng tôi tại support@ente.io để quản lý đăng ký ${provider} của bạn."; - static String m23(endpoint) => "Đã kết nối với ${endpoint}"; + static String m25(endpoint) => "Đã kết nối với ${endpoint}"; - static String m24(count) => + static String m26(count) => "${Intl.plural(count, one: 'Xóa ${count} mục', other: 'Xóa ${count} mục')}"; - static String m25(currentlyDeleting, totalCount) => + static String m27(currentlyDeleting, totalCount) => "Đang xóa ${currentlyDeleting} / ${totalCount}"; - static String m26(albumName) => + static String m28(albumName) => "Điều này sẽ xóa liên kết công khai để truy cập \"${albumName}\"."; - static String m27(supportEmail) => + static String m29(supportEmail) => "Vui lòng gửi email đến ${supportEmail} từ địa chỉ email đã đăng ký của bạn"; - static String m28(count, storageSaved) => + static String m30(count, storageSaved) => "Bạn đã dọn dẹp ${Intl.plural(count, one: '${count} tệp trùng lặp', other: '${count} tệp trùng lặp')}, tiết kiệm (${storageSaved}!)"; - static String m29(count, formattedSize) => + static String m31(count, formattedSize) => "${count} tệp, ${formattedSize} mỗi tệp"; - static String m30(newEmail) => "Email đã được thay đổi thành ${newEmail}"; + static String m32(newEmail) => "Email đã được thay đổi thành ${newEmail}"; - static String m31(email) => + static String m33(email) => "${email} không có tài khoản Ente.\n\nGửi cho họ một lời mời để chia sẻ ảnh."; - static String m32(text) => "Extra photos found for ${text}"; + static String m34(text) => "Extra photos found for ${text}"; - static String m33(count, formattedNumber) => + static String m35(count, formattedNumber) => "${Intl.plural(count, one: '1 tệp', other: '${formattedNumber} tệp')} trên thiết bị này đã được sao lưu an toàn"; - static String m34(count, formattedNumber) => + static String m36(count, formattedNumber) => "${Intl.plural(count, one: '1 tệp', other: '${formattedNumber} tệp')} trong album này đã được sao lưu an toàn"; - static String m35(storageAmountInGB) => + static String m4(storageAmountInGB) => "${storageAmountInGB} GB mỗi khi ai đó đăng ký gói trả phí và áp dụng mã của bạn"; - static String m36(endDate) => "Dùng thử miễn phí có hiệu lực đến ${endDate}"; + static String m37(endDate) => "Dùng thử miễn phí có hiệu lực đến ${endDate}"; - static String m37(count) => + static String m38(count) => "Bạn vẫn có thể truy cập ${Intl.plural(count, one: 'nó', other: 'chúng')} trên Ente miễn là bạn có một đăng ký hoạt động"; - static String m38(sizeInMBorGB) => "Giải phóng ${sizeInMBorGB}"; + static String m39(sizeInMBorGB) => "Giải phóng ${sizeInMBorGB}"; - static String m39(count, formattedSize) => + static String m40(count, formattedSize) => "${Intl.plural(count, one: 'Nó có thể được xóa khỏi thiết bị để giải phóng ${formattedSize}', other: 'Chúng có thể được xóa khỏi thiết bị để giải phóng ${formattedSize}')}"; - static String m40(currentlyProcessing, totalCount) => + static String m41(currentlyProcessing, totalCount) => "Đang xử lý ${currentlyProcessing} / ${totalCount}"; - static String m41(count) => + static String m42(count) => "${Intl.plural(count, one: '${count} mục', other: '${count} mục')}"; - static String m42(email) => + static String m43(email) => "${email} đã mời bạn trở thành một liên hệ tin cậy"; - static String m43(expiryTime) => "Liên kết sẽ hết hạn vào ${expiryTime}"; + static String m44(expiryTime) => "Liên kết sẽ hết hạn vào ${expiryTime}"; - static String m3(count, formattedCount) => + static String m5(count, formattedCount) => "${Intl.plural(count, zero: 'không có kỷ niệm', one: '${formattedCount} kỷ niệm', other: '${formattedCount} kỷ niệm')}"; - static String m44(count) => + static String m45(count) => "${Intl.plural(count, one: 'Di chuyển mục', other: 'Di chuyển các mục')}"; - static String m45(albumName) => "Đã di chuyển thành công đến ${albumName}"; + static String m46(albumName) => "Đã di chuyển thành công đến ${albumName}"; - static String m46(personName) => "Không có gợi ý cho ${personName}"; + static String m47(personName) => "Không có gợi ý cho ${personName}"; - static String m47(name) => "Không phải ${name}?"; + static String m48(name) => "Không phải ${name}?"; - static String m48(familyAdminEmail) => + static String m49(familyAdminEmail) => "Vui lòng liên hệ ${familyAdminEmail} để thay đổi mã của bạn."; static String m0(passwordStrengthValue) => "Độ mạnh mật khẩu: ${passwordStrengthValue}"; - static String m49(providerName) => + static String m50(providerName) => "Vui lòng nói chuyện với bộ phận hỗ trợ ${providerName} nếu bạn đã bị tính phí"; - static String m50(count) => + static String m51(count) => "${Intl.plural(count, zero: 'không có hình ảnh', one: '1 hình ảnh', other: '${count} hình ảnh')}"; - static String m51(endDate) => + static String m52(endDate) => "Dùng thử miễn phí có hiệu lực đến ${endDate}.\nBạn có thể chọn gói trả phí sau đó."; - static String m52(toEmail) => + static String m53(toEmail) => "Vui lòng gửi email cho chúng tôi tại ${toEmail}"; - static String m53(toEmail) => "Vui lòng gửi nhật ký đến \n${toEmail}"; + static String m54(toEmail) => "Vui lòng gửi nhật ký đến \n${toEmail}"; - static String m54(folderName) => "Đang xử lý ${folderName}..."; + static String m55(folderName) => "Đang xử lý ${folderName}..."; - static String m55(storeName) => "Đánh giá chúng tôi trên ${storeName}"; + static String m56(storeName) => "Đánh giá chúng tôi trên ${storeName}"; - static String m56(days, email) => + static String m57(days, email) => "Bạn có thể truy cập tài khoản sau ${days} ngày. Một thông báo sẽ được gửi đến ${email}."; - static String m57(email) => + static String m58(email) => "Bạn có thể khôi phục tài khoản của ${email} bằng cách đặt lại mật khẩu mới."; - static String m58(email) => + static String m59(email) => "${email} đang cố gắng khôi phục tài khoản của bạn."; - static String m59(storageInGB) => + static String m60(storageInGB) => "3. Cả hai bạn đều nhận ${storageInGB} GB* miễn phí"; - static String m60(userEmail) => + static String m61(userEmail) => "${userEmail} sẽ bị xóa khỏi album chia sẻ này\n\nBất kỳ ảnh nào được thêm bởi họ cũng sẽ bị xóa khỏi album"; - static String m61(endDate) => "Đăng ký sẽ được gia hạn vào ${endDate}"; + static String m62(endDate) => "Đăng ký sẽ được gia hạn vào ${endDate}"; - static String m62(count) => + static String m63(count) => "${Intl.plural(count, one: '${count} kết quả được tìm thấy', other: '${count} kết quả được tìm thấy')}"; - static String m63(snapshotLength, searchLength) => + static String m64(snapshotLength, searchLength) => "Độ dài các phần không khớp: ${snapshotLength} != ${searchLength}"; - static String m4(count) => "${count} đã chọn"; + static String m6(count) => "${count} đã chọn"; - static String m64(count, yourCount) => + static String m65(count, yourCount) => "${count} đã chọn (${yourCount} của bạn)"; - static String m65(verificationID) => + static String m66(verificationID) => "Đây là ID xác minh của tôi: ${verificationID} cho ente.io."; - static String m5(verificationID) => + static String m7(verificationID) => "Chào, bạn có thể xác nhận rằng đây là ID xác minh ente.io của bạn: ${verificationID}"; - static String m66(referralCode, referralStorageInGB) => + static String m67(referralCode, referralStorageInGB) => "Mã giới thiệu Ente: ${referralCode} \n\nÁp dụng nó trong Cài đặt → Chung → Giới thiệu để nhận ${referralStorageInGB} GB miễn phí sau khi bạn đăng ký gói trả phí\n\nhttps://ente.io"; - static String m67(numberOfPeople) => + static String m68(numberOfPeople) => "${Intl.plural(numberOfPeople, zero: 'Chia sẻ với những người cụ thể', one: 'Chia sẻ với 1 người', other: 'Chia sẻ với ${numberOfPeople} người')}"; - static String m68(emailIDs) => "Chia sẻ với ${emailIDs}"; + static String m69(emailIDs) => "Chia sẻ với ${emailIDs}"; - static String m69(fileType) => + static String m70(fileType) => "Tệp ${fileType} này sẽ bị xóa khỏi thiết bị của bạn."; - static String m70(fileType) => + static String m71(fileType) => "Tệp ${fileType} này có trong cả Ente và thiết bị của bạn."; - static String m71(fileType) => "Tệp ${fileType} này sẽ bị xóa khỏi Ente."; + static String m72(fileType) => "Tệp ${fileType} này sẽ bị xóa khỏi Ente."; static String m1(storageAmountInGB) => "${storageAmountInGB} GB"; - static String m72( + static String m73( usedAmount, usedStorageUnit, totalAmount, totalStorageUnit) => "${usedAmount} ${usedStorageUnit} trong tổng số ${totalAmount} ${totalStorageUnit} đã sử dụng"; - static String m73(id) => + static String m74(id) => "ID ${id} của bạn đã được liên kết với một tài khoản Ente khác.\nNếu bạn muốn sử dụng ID ${id} này với tài khoản này, vui lòng liên hệ với bộ phận hỗ trợ của chúng tôi."; - static String m74(endDate) => "Đăng ký của bạn sẽ bị hủy vào ${endDate}"; + static String m75(endDate) => "Đăng ký của bạn sẽ bị hủy vào ${endDate}"; - static String m75(completed, total) => + static String m76(completed, total) => "${completed}/${total} kỷ niệm đã được lưu giữ"; - static String m76(ignoreReason) => + static String m77(ignoreReason) => "Nhấn để tải lên, tải lên hiện tại bị bỏ qua do ${ignoreReason}"; - static String m77(storageAmountInGB) => + static String m8(storageAmountInGB) => "Họ cũng nhận được ${storageAmountInGB} GB"; static String m78(email) => "Đây là ID xác minh của ${email}"; @@ -289,11 +289,11 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Thêm một email mới"), "addCollaborator": MessageLookupByLibrary.simpleMessage("Thêm cộng tác viên"), - "addCollaborators": m6, + "addCollaborators": m9, "addFiles": MessageLookupByLibrary.simpleMessage("Thêm tệp"), "addFromDevice": MessageLookupByLibrary.simpleMessage("Thêm từ thiết bị"), - "addItem": m7, + "addItem": m10, "addLocation": MessageLookupByLibrary.simpleMessage("Thêm vị trí"), "addLocationButton": MessageLookupByLibrary.simpleMessage("Thêm"), "addMore": MessageLookupByLibrary.simpleMessage("Thêm nữa"), @@ -304,7 +304,7 @@ class MessageLookup extends MessageLookupByLibrary { "addNewPerson": MessageLookupByLibrary.simpleMessage("Thêm người mới"), "addOnPageSubtitle": MessageLookupByLibrary.simpleMessage( "Chi tiết về tiện ích mở rộng"), - "addOnValidTill": m8, + "addOnValidTill": m11, "addOns": MessageLookupByLibrary.simpleMessage("Tiện ích mở rộng"), "addPhotos": MessageLookupByLibrary.simpleMessage("Thêm ảnh"), "addSelected": MessageLookupByLibrary.simpleMessage("Thêm đã chọn"), @@ -315,12 +315,12 @@ class MessageLookup extends MessageLookupByLibrary { "addTrustedContact": MessageLookupByLibrary.simpleMessage("Thêm liên hệ tin cậy"), "addViewer": MessageLookupByLibrary.simpleMessage("Thêm người xem"), - "addViewers": m9, + "addViewers": m12, "addYourPhotosNow": MessageLookupByLibrary.simpleMessage( "Thêm ảnh của bạn ngay bây giờ"), "addedAs": MessageLookupByLibrary.simpleMessage("Đã thêm như"), - "addedBy": m10, - "addedSuccessfullyTo": m11, + "addedBy": m13, + "addedSuccessfullyTo": m14, "addingToFavorites": MessageLookupByLibrary.simpleMessage( "Đang thêm vào mục yêu thích..."), "advanced": MessageLookupByLibrary.simpleMessage("Nâng cao"), @@ -331,7 +331,7 @@ class MessageLookup extends MessageLookupByLibrary { "after1Week": MessageLookupByLibrary.simpleMessage("Sau 1 tuần"), "after1Year": MessageLookupByLibrary.simpleMessage("Sau 1 năm"), "albumOwner": MessageLookupByLibrary.simpleMessage("Chủ sở hữu"), - "albumParticipantsCount": m12, + "albumParticipantsCount": m15, "albumTitle": MessageLookupByLibrary.simpleMessage("Tiêu đề album"), "albumUpdated": MessageLookupByLibrary.simpleMessage("Album đã được cập nhật"), @@ -380,7 +380,7 @@ class MessageLookup extends MessageLookupByLibrary { "appLock": MessageLookupByLibrary.simpleMessage("Khóa ứng dụng"), "appLockDescriptions": MessageLookupByLibrary.simpleMessage( "Chọn giữa màn hình khóa mặc định của thiết bị và màn hình khóa tùy chỉnh với PIN hoặc mật khẩu."), - "appVersion": m13, + "appVersion": m16, "appleId": MessageLookupByLibrary.simpleMessage("ID Apple"), "apply": MessageLookupByLibrary.simpleMessage("Áp dụng"), "applyCodeTitle": MessageLookupByLibrary.simpleMessage("Áp dụng mã"), @@ -462,7 +462,7 @@ class MessageLookup extends MessageLookupByLibrary { "autoPairDesc": MessageLookupByLibrary.simpleMessage( "Ghép nối tự động chỉ hoạt động với các thiết bị hỗ trợ Chromecast."), "available": MessageLookupByLibrary.simpleMessage("Có sẵn"), - "availableStorageSpace": m14, + "availableStorageSpace": m17, "backedUpFolders": MessageLookupByLibrary.simpleMessage("Thư mục đã sao lưu"), "backup": MessageLookupByLibrary.simpleMessage("Sao lưu"), @@ -502,10 +502,10 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Hủy khôi phục"), "cancelAccountRecoveryBody": MessageLookupByLibrary.simpleMessage( "Bạn có chắc chắn muốn hủy khôi phục không?"), - "cancelOtherSubscription": m15, + "cancelOtherSubscription": m18, "cancelSubscription": MessageLookupByLibrary.simpleMessage("Hủy đăng ký"), - "cannotAddMorePhotosAfterBecomingViewer": m16, + "cannotAddMorePhotosAfterBecomingViewer": m3, "cannotDeleteSharedFiles": MessageLookupByLibrary.simpleMessage( "Không thể xóa các tệp đã chia sẻ"), "castAlbum": MessageLookupByLibrary.simpleMessage("Phát album"), @@ -553,7 +553,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Yêu cầu lưu trữ miễn phí"), "claimMore": MessageLookupByLibrary.simpleMessage("Yêu cầu thêm!"), "claimed": MessageLookupByLibrary.simpleMessage("Đã yêu cầu"), - "claimedStorageSoFar": m17, + "claimedStorageSoFar": m19, "cleanUncategorized": MessageLookupByLibrary.simpleMessage("Dọn dẹp chưa phân loại"), "cleanUncategorizedDescription": MessageLookupByLibrary.simpleMessage( @@ -582,12 +582,12 @@ class MessageLookup extends MessageLookupByLibrary { "Tạo một liên kết để cho phép mọi người thêm và xem ảnh trong album chia sẻ của bạn mà không cần ứng dụng hoặc tài khoản Ente. Tuyệt vời để thu thập ảnh sự kiện."), "collaborativeLink": MessageLookupByLibrary.simpleMessage("Liên kết hợp tác"), - "collaborativeLinkCreatedFor": m18, + "collaborativeLinkCreatedFor": m20, "collaborator": MessageLookupByLibrary.simpleMessage("Cộng tác viên"), "collaboratorsCanAddPhotosAndVideosToTheSharedAlbum": MessageLookupByLibrary.simpleMessage( "Cộng tác viên có thể thêm ảnh và video vào album chia sẻ."), - "collaboratorsSuccessfullyAdded": m19, + "collaboratorsSuccessfullyAdded": m21, "collageLayout": MessageLookupByLibrary.simpleMessage("Bố cục"), "collageSaved": MessageLookupByLibrary.simpleMessage( "Ảnh ghép đã được lưu vào thư viện"), @@ -604,7 +604,7 @@ class MessageLookup extends MessageLookupByLibrary { "Bạn có chắc chắn muốn vô hiệu hóa xác thực hai yếu tố không?"), "confirmAccountDeletion": MessageLookupByLibrary.simpleMessage("Xác nhận xóa tài khoản"), - "confirmAddingTrustedContact": m20, + "confirmAddingTrustedContact": m22, "confirmDeletePrompt": MessageLookupByLibrary.simpleMessage( "Có, tôi muốn xóa vĩnh viễn tài khoản này và dữ liệu của nó trên tất cả các ứng dụng."), "confirmPassword": @@ -617,10 +617,10 @@ class MessageLookup extends MessageLookupByLibrary { "Xác nhận khóa khôi phục của bạn"), "connectToDevice": MessageLookupByLibrary.simpleMessage("Kết nối với thiết bị"), - "contactFamilyAdmin": m21, + "contactFamilyAdmin": m23, "contactSupport": MessageLookupByLibrary.simpleMessage("Liên hệ hỗ trợ"), - "contactToManageSubscription": m22, + "contactToManageSubscription": m24, "contacts": MessageLookupByLibrary.simpleMessage("Danh bạ"), "contents": MessageLookupByLibrary.simpleMessage("Nội dung"), "continueLabel": MessageLookupByLibrary.simpleMessage("Tiếp tục"), @@ -664,7 +664,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Sử dụng hiện tại là "), "currentlyRunning": MessageLookupByLibrary.simpleMessage("đang chạy"), "custom": MessageLookupByLibrary.simpleMessage("Tùy chỉnh"), - "customEndpoint": m23, + "customEndpoint": m25, "darkTheme": MessageLookupByLibrary.simpleMessage("Tối"), "dayToday": MessageLookupByLibrary.simpleMessage("Hôm nay"), "dayYesterday": MessageLookupByLibrary.simpleMessage("Hôm qua"), @@ -700,10 +700,10 @@ class MessageLookup extends MessageLookupByLibrary { "deleteFromDevice": MessageLookupByLibrary.simpleMessage("Xóa khỏi thiết bị"), "deleteFromEnte": MessageLookupByLibrary.simpleMessage("Xóa khỏi Ente"), - "deleteItemCount": m24, + "deleteItemCount": m26, "deleteLocation": MessageLookupByLibrary.simpleMessage("Xóa vị trí"), "deletePhotos": MessageLookupByLibrary.simpleMessage("Xóa ảnh"), - "deleteProgress": m25, + "deleteProgress": m27, "deleteReason1": MessageLookupByLibrary.simpleMessage( "Nó thiếu một tính năng quan trọng mà tôi cần"), "deleteReason2": MessageLookupByLibrary.simpleMessage( @@ -741,7 +741,7 @@ class MessageLookup extends MessageLookupByLibrary { "Người xem vẫn có thể chụp màn hình hoặc lưu bản sao ảnh của bạn bằng các công cụ bên ngoài"), "disableDownloadWarningTitle": MessageLookupByLibrary.simpleMessage("Xin lưu ý"), - "disableLinkMessage": m26, + "disableLinkMessage": m28, "disableTwofactor": MessageLookupByLibrary.simpleMessage( "Vô hiệu hóa xác thực hai yếu tố"), "disablingTwofactorAuthentication": @@ -783,9 +783,9 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Tải xuống thất bại"), "downloading": MessageLookupByLibrary.simpleMessage("Đang tải xuống..."), - "dropSupportEmail": m27, - "duplicateFileCountWithStorageSaved": m28, - "duplicateItemsGroup": m29, + "dropSupportEmail": m29, + "duplicateFileCountWithStorageSaved": m30, + "duplicateItemsGroup": m31, "edit": MessageLookupByLibrary.simpleMessage("Chỉnh sửa"), "editLocation": MessageLookupByLibrary.simpleMessage("Chỉnh sửa vị trí"), @@ -799,8 +799,12 @@ class MessageLookup extends MessageLookupByLibrary { "Các chỉnh sửa cho vị trí sẽ chỉ được thấy trong Ente"), "eligible": MessageLookupByLibrary.simpleMessage("đủ điều kiện"), "email": MessageLookupByLibrary.simpleMessage("Email"), - "emailChangedTo": m30, - "emailNoEnteAccount": m31, + "emailAlreadyRegistered": + MessageLookupByLibrary.simpleMessage("Email đã được đăng kí."), + "emailChangedTo": m32, + "emailNoEnteAccount": m33, + "emailNotRegistered": + MessageLookupByLibrary.simpleMessage("Email chưa được đăng kí."), "emailVerificationToggle": MessageLookupByLibrary.simpleMessage("Xác minh email"), "emailYourLogs": @@ -879,7 +883,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Xuất dữ liệu của bạn"), "extraPhotosFound": MessageLookupByLibrary.simpleMessage("Tìm thấy ảnh bổ sung"), - "extraPhotosFoundFor": m32, + "extraPhotosFoundFor": m34, "faceNotClusteredYet": MessageLookupByLibrary.simpleMessage( "Khuôn mặt chưa được phân cụm, vui lòng quay lại sau"), "faceRecognition": @@ -928,8 +932,8 @@ class MessageLookup extends MessageLookupByLibrary { "fileTypes": MessageLookupByLibrary.simpleMessage("Loại tệp"), "fileTypesAndNames": MessageLookupByLibrary.simpleMessage("Loại tệp và tên"), - "filesBackedUpFromDevice": m33, - "filesBackedUpInAlbum": m34, + "filesBackedUpFromDevice": m35, + "filesBackedUpInAlbum": m36, "filesDeleted": MessageLookupByLibrary.simpleMessage("Tệp đã bị xóa"), "filesSavedToGallery": MessageLookupByLibrary.simpleMessage( "Các tệp đã được lưu vào thư viện"), @@ -945,27 +949,27 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Đã tìm thấy khuôn mặt"), "freeStorageClaimed": MessageLookupByLibrary.simpleMessage("Lưu trữ miễn phí đã yêu cầu"), - "freeStorageOnReferralSuccess": m35, + "freeStorageOnReferralSuccess": m4, "freeStorageUsable": MessageLookupByLibrary.simpleMessage( "Lưu trữ miễn phí có thể sử dụng"), "freeTrial": MessageLookupByLibrary.simpleMessage("Dùng thử miễn phí"), - "freeTrialValidTill": m36, - "freeUpAccessPostDelete": m37, - "freeUpAmount": m38, + "freeTrialValidTill": m37, + "freeUpAccessPostDelete": m38, + "freeUpAmount": m39, "freeUpDeviceSpace": MessageLookupByLibrary.simpleMessage( "Giải phóng không gian thiết bị"), "freeUpDeviceSpaceDesc": MessageLookupByLibrary.simpleMessage( "Tiết kiệm không gian trên thiết bị của bạn bằng cách xóa các tệp đã được sao lưu."), "freeUpSpace": MessageLookupByLibrary.simpleMessage("Giải phóng không gian"), - "freeUpSpaceSaving": m39, + "freeUpSpaceSaving": m40, "gallery": MessageLookupByLibrary.simpleMessage("Thư viện"), "galleryMemoryLimitInfo": MessageLookupByLibrary.simpleMessage( "Tối đa 1000 kỷ niệm được hiển thị trong thư viện"), "general": MessageLookupByLibrary.simpleMessage("Chung"), "generatingEncryptionKeys": MessageLookupByLibrary.simpleMessage("Đang tạo khóa mã hóa..."), - "genericProgress": m40, + "genericProgress": m41, "goToSettings": MessageLookupByLibrary.simpleMessage("Đi đến cài đặt"), "googlePlayId": MessageLookupByLibrary.simpleMessage("ID Google Play"), "grantFullAccessPrompt": MessageLookupByLibrary.simpleMessage( @@ -1046,7 +1050,7 @@ class MessageLookup extends MessageLookupByLibrary { "itLooksLikeSomethingWentWrongPleaseRetryAfterSome": MessageLookupByLibrary.simpleMessage( "Có vẻ như đã xảy ra sự cố. Vui lòng thử lại sau một thời gian. Nếu lỗi vẫn tiếp diễn, vui lòng liên hệ với đội ngũ hỗ trợ của chúng tôi."), - "itemCount": m41, + "itemCount": m42, "itemsShowTheNumberOfDaysRemainingBeforePermanentDeletion": MessageLookupByLibrary.simpleMessage( "Các mục cho biết số ngày còn lại trước khi xóa vĩnh viễn"), @@ -1076,22 +1080,20 @@ class MessageLookup extends MessageLookupByLibrary { "legacy": MessageLookupByLibrary.simpleMessage("Thừa kế"), "legacyAccounts": MessageLookupByLibrary.simpleMessage("Tài khoản thừa kế"), - "legacyInvite": m42, + "legacyInvite": m43, "legacyPageDesc": MessageLookupByLibrary.simpleMessage( "Thừa kế cho phép các liên hệ tin cậy truy cập tài khoản của bạn khi bạn không hoạt động."), "legacyPageDesc2": MessageLookupByLibrary.simpleMessage( "Các liên hệ tin cậy có thể khởi động quá trình khôi phục tài khoản, và nếu không bị chặn trong vòng 30 ngày, có thể đặt lại mật khẩu và truy cập tài khoản của bạn."), "light": MessageLookupByLibrary.simpleMessage("Ánh sáng"), "lightTheme": MessageLookupByLibrary.simpleMessage("Sáng"), - "link": MessageLookupByLibrary.simpleMessage("Link"), "linkCopiedToClipboard": MessageLookupByLibrary.simpleMessage( "Liên kết đã được sao chép vào clipboard"), "linkDeviceLimit": MessageLookupByLibrary.simpleMessage("Giới hạn thiết bị"), - "linkEmail": MessageLookupByLibrary.simpleMessage("Link email"), "linkEnabled": MessageLookupByLibrary.simpleMessage("Đã bật"), "linkExpired": MessageLookupByLibrary.simpleMessage("Hết hạn"), - "linkExpiresOn": m43, + "linkExpiresOn": m44, "linkExpiry": MessageLookupByLibrary.simpleMessage("Hết hạn liên kết"), "linkHasExpired": MessageLookupByLibrary.simpleMessage("Liên kết đã hết hạn"), @@ -1183,7 +1185,7 @@ class MessageLookup extends MessageLookupByLibrary { "maps": MessageLookupByLibrary.simpleMessage("Bản đồ"), "mastodon": MessageLookupByLibrary.simpleMessage("Mastodon"), "matrix": MessageLookupByLibrary.simpleMessage("Matrix"), - "memoryCount": m3, + "memoryCount": m5, "merchandise": MessageLookupByLibrary.simpleMessage("Merchandise"), "mergeWithExisting": MessageLookupByLibrary.simpleMessage("Hợp nhất với người đã có"), @@ -1211,11 +1213,11 @@ class MessageLookup extends MessageLookupByLibrary { "moreDetails": MessageLookupByLibrary.simpleMessage("Thêm chi tiết"), "mostRecent": MessageLookupByLibrary.simpleMessage("Mới nhất"), "mostRelevant": MessageLookupByLibrary.simpleMessage("Liên quan nhất"), - "moveItem": m44, + "moveItem": m45, "moveToAlbum": MessageLookupByLibrary.simpleMessage("Chuyển đến album"), "moveToHiddenAlbum": MessageLookupByLibrary.simpleMessage("Di chuyển đến album ẩn"), - "movedSuccessfullyTo": m45, + "movedSuccessfullyTo": m46, "movedToTrash": MessageLookupByLibrary.simpleMessage("Đã chuyển vào thùng rác"), "movingFilesToAlbum": MessageLookupByLibrary.simpleMessage( @@ -1244,8 +1246,6 @@ class MessageLookup extends MessageLookupByLibrary { "Bạn không có tệp nào trên thiết bị này có thể bị xóa"), "noDuplicates": MessageLookupByLibrary.simpleMessage("✨ Không có trùng lặp"), - "noEnteAccountExclamation": - MessageLookupByLibrary.simpleMessage("No Ente account!"), "noExifData": MessageLookupByLibrary.simpleMessage("Không có dữ liệu EXIF"), "noFacesFound": @@ -1270,10 +1270,10 @@ class MessageLookup extends MessageLookupByLibrary { "noResults": MessageLookupByLibrary.simpleMessage("Không có kết quả"), "noResultsFound": MessageLookupByLibrary.simpleMessage("Không tìm thấy kết quả"), - "noSuggestionsForPerson": m46, + "noSuggestionsForPerson": m47, "noSystemLockFound": MessageLookupByLibrary.simpleMessage( "Không tìm thấy khóa hệ thống"), - "notPersonLabel": m47, + "notPersonLabel": m48, "nothingSharedWithYouYet": MessageLookupByLibrary.simpleMessage( "Chưa có gì được chia sẻ với bạn"), "nothingToSeeHere": MessageLookupByLibrary.simpleMessage( @@ -1283,7 +1283,7 @@ class MessageLookup extends MessageLookupByLibrary { "onDevice": MessageLookupByLibrary.simpleMessage("Trên thiết bị"), "onEnte": MessageLookupByLibrary.simpleMessage( "Trên ente"), - "onlyFamilyAdminCanChangeCode": m48, + "onlyFamilyAdminCanChangeCode": m49, "onlyThem": MessageLookupByLibrary.simpleMessage("Chỉ họ"), "oops": MessageLookupByLibrary.simpleMessage("Ôi"), "oopsCouldNotSaveEdits": @@ -1331,7 +1331,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Thanh toán thất bại"), "paymentFailedMessage": MessageLookupByLibrary.simpleMessage( "Rất tiếc, thanh toán của bạn đã thất bại. Vui lòng liên hệ với bộ phận hỗ trợ và chúng tôi sẽ giúp bạn!"), - "paymentFailedTalkToProvider": m49, + "paymentFailedTalkToProvider": m50, "pendingItems": MessageLookupByLibrary.simpleMessage("Các mục đang chờ"), "pendingSync": @@ -1354,13 +1354,13 @@ class MessageLookup extends MessageLookupByLibrary { "photosAddedByYouWillBeRemovedFromTheAlbum": MessageLookupByLibrary.simpleMessage( "Ảnh bạn đã thêm sẽ bị xóa khỏi album"), - "photosCount": m50, + "photosCount": m51, "pickCenterPoint": MessageLookupByLibrary.simpleMessage("Chọn điểm trung tâm"), "pinAlbum": MessageLookupByLibrary.simpleMessage("Ghim album"), "pinLock": MessageLookupByLibrary.simpleMessage("Khóa PIN"), "playOnTv": MessageLookupByLibrary.simpleMessage("Phát album trên TV"), - "playStoreFreeTrialValidTill": m51, + "playStoreFreeTrialValidTill": m52, "playstoreSubscription": MessageLookupByLibrary.simpleMessage("Đăng ký PlayStore"), "pleaseCheckYourInternetConnectionAndTryAgain": @@ -1372,14 +1372,14 @@ class MessageLookup extends MessageLookupByLibrary { "pleaseContactSupportIfTheProblemPersists": MessageLookupByLibrary.simpleMessage( "Vui lòng liên hệ với bộ phận hỗ trợ nếu vấn đề vẫn tiếp diễn"), - "pleaseEmailUsAt": m52, + "pleaseEmailUsAt": m53, "pleaseGrantPermissions": MessageLookupByLibrary.simpleMessage("Vui lòng cấp quyền"), "pleaseLoginAgain": MessageLookupByLibrary.simpleMessage("Vui lòng đăng nhập lại"), "pleaseSelectQuickLinksToRemove": MessageLookupByLibrary.simpleMessage( "Vui lòng chọn liên kết nhanh để xóa"), - "pleaseSendTheLogsTo": m53, + "pleaseSendTheLogsTo": m54, "pleaseTryAgain": MessageLookupByLibrary.simpleMessage("Vui lòng thử lại"), "pleaseVerifyTheCodeYouHaveEntered": @@ -1407,7 +1407,8 @@ class MessageLookup extends MessageLookupByLibrary { "privateSharing": MessageLookupByLibrary.simpleMessage("Chia sẻ riêng tư"), "proceed": MessageLookupByLibrary.simpleMessage("Tiếp tục"), - "processingImport": m54, + "processed": MessageLookupByLibrary.simpleMessage("Đã xử lý"), + "processingImport": m55, "publicLinkCreated": MessageLookupByLibrary.simpleMessage( "Liên kết công khai đã được tạo"), "publicLinkEnabled": MessageLookupByLibrary.simpleMessage( @@ -1417,7 +1418,7 @@ class MessageLookup extends MessageLookupByLibrary { "raiseTicket": MessageLookupByLibrary.simpleMessage("Tạo vé"), "rateTheApp": MessageLookupByLibrary.simpleMessage("Đánh giá ứng dụng"), "rateUs": MessageLookupByLibrary.simpleMessage("Đánh giá chúng tôi"), - "rateUsOnStore": m55, + "rateUsOnStore": m56, "recover": MessageLookupByLibrary.simpleMessage("Khôi phục"), "recoverAccount": MessageLookupByLibrary.simpleMessage("Khôi phục tài khoản"), @@ -1426,7 +1427,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Khôi phục tài khoản"), "recoveryInitiated": MessageLookupByLibrary.simpleMessage( "Quá trình khôi phục đã được khởi động"), - "recoveryInitiatedDesc": m56, + "recoveryInitiatedDesc": m57, "recoveryKey": MessageLookupByLibrary.simpleMessage("Khóa khôi phục"), "recoveryKeyCopiedToClipboard": MessageLookupByLibrary.simpleMessage( "Khóa khôi phục đã được sao chép vào clipboard"), @@ -1440,12 +1441,12 @@ class MessageLookup extends MessageLookupByLibrary { "Khóa khôi phục đã được xác minh"), "recoveryKeyVerifyReason": MessageLookupByLibrary.simpleMessage( "Khóa khôi phục của bạn là cách duy nhất để khôi phục ảnh của bạn nếu bạn quên mật khẩu. Bạn có thể tìm thấy khóa khôi phục của mình trong Cài đặt > Tài khoản.\n\nVui lòng nhập khóa khôi phục của bạn ở đây để xác minh rằng bạn đã lưu nó đúng cách."), - "recoveryReady": m57, + "recoveryReady": m58, "recoverySuccessful": MessageLookupByLibrary.simpleMessage("Khôi phục thành công!"), "recoveryWarning": MessageLookupByLibrary.simpleMessage( "Một liên hệ tin cậy đang cố gắng truy cập tài khoản của bạn"), - "recoveryWarningBody": m58, + "recoveryWarningBody": m59, "recreatePasswordBody": MessageLookupByLibrary.simpleMessage( "Thiết bị hiện tại không đủ mạnh để xác minh mật khẩu của bạn, nhưng chúng tôi có thể tạo lại theo cách hoạt động với tất cả các thiết bị.\n\nVui lòng đăng nhập bằng khóa khôi phục của bạn và tạo lại mật khẩu (bạn có thể sử dụng lại mật khẩu cũ nếu muốn)."), "recreatePasswordTitle": @@ -1460,7 +1461,7 @@ class MessageLookup extends MessageLookupByLibrary { "1. Đưa mã này cho bạn bè của bạn"), "referralStep2": MessageLookupByLibrary.simpleMessage("2. Họ đăng ký gói trả phí"), - "referralStep3": m59, + "referralStep3": m60, "referrals": MessageLookupByLibrary.simpleMessage("Giới thiệu"), "referralsAreCurrentlyPaused": MessageLookupByLibrary.simpleMessage( "Giới thiệu hiện đang tạm dừng"), @@ -1489,7 +1490,7 @@ class MessageLookup extends MessageLookupByLibrary { "removeLink": MessageLookupByLibrary.simpleMessage("Xóa liên kết"), "removeParticipant": MessageLookupByLibrary.simpleMessage("Xóa người tham gia"), - "removeParticipantBody": m60, + "removeParticipantBody": m61, "removePersonLabel": MessageLookupByLibrary.simpleMessage("Xóa nhãn người"), "removePublicLink": @@ -1508,7 +1509,7 @@ class MessageLookup extends MessageLookupByLibrary { "renameFile": MessageLookupByLibrary.simpleMessage("Đổi tên tệp"), "renewSubscription": MessageLookupByLibrary.simpleMessage("Gia hạn đăng ký"), - "renewsOn": m61, + "renewsOn": m62, "reportABug": MessageLookupByLibrary.simpleMessage("Báo cáo lỗi"), "reportBug": MessageLookupByLibrary.simpleMessage("Báo cáo lỗi"), "resendEmail": MessageLookupByLibrary.simpleMessage("Gửi lại email"), @@ -1584,8 +1585,8 @@ class MessageLookup extends MessageLookupByLibrary { "Mời mọi người, và bạn sẽ thấy tất cả ảnh được chia sẻ bởi họ ở đây"), "searchPersonsEmptySection": MessageLookupByLibrary.simpleMessage( "Người sẽ được hiển thị ở đây sau khi hoàn tất xử lý và đồng bộ"), - "searchResultCount": m62, - "searchSectionsLengthMismatch": m63, + "searchResultCount": m63, + "searchSectionsLengthMismatch": m64, "security": MessageLookupByLibrary.simpleMessage("Bảo mật"), "seePublicAlbumLinksInApp": MessageLookupByLibrary.simpleMessage( "Xem liên kết album công khai trong ứng dụng"), @@ -1618,8 +1619,8 @@ class MessageLookup extends MessageLookupByLibrary { "selectedItemsWillBeDeletedFromAllAlbumsAndMoved": MessageLookupByLibrary.simpleMessage( "Các mục đã chọn sẽ bị xóa khỏi tất cả các album và chuyển vào thùng rác."), - "selectedPhotos": m4, - "selectedPhotosWithYours": m64, + "selectedPhotos": m6, + "selectedPhotosWithYours": m65, "send": MessageLookupByLibrary.simpleMessage("Gửi"), "sendEmail": MessageLookupByLibrary.simpleMessage("Gửi email"), "sendInvite": MessageLookupByLibrary.simpleMessage("Gửi lời mời"), @@ -1650,16 +1651,16 @@ class MessageLookup extends MessageLookupByLibrary { "shareAnAlbumNow": MessageLookupByLibrary.simpleMessage( "Chia sẻ một album ngay bây giờ"), "shareLink": MessageLookupByLibrary.simpleMessage("Chia sẻ liên kết"), - "shareMyVerificationID": m65, + "shareMyVerificationID": m66, "shareOnlyWithThePeopleYouWant": MessageLookupByLibrary.simpleMessage( "Chia sẻ chỉ với những người bạn muốn"), - "shareTextConfirmOthersVerificationID": m5, + "shareTextConfirmOthersVerificationID": m7, "shareTextRecommendUsingEnte": MessageLookupByLibrary.simpleMessage( "Tải Ente để chúng ta có thể dễ dàng chia sẻ ảnh và video chất lượng gốc\n\nhttps://ente.io"), - "shareTextReferralCode": m66, + "shareTextReferralCode": m67, "shareWithNonenteUsers": MessageLookupByLibrary.simpleMessage( "Chia sẻ với người dùng không phải Ente"), - "shareWithPeopleSectionTitle": m67, + "shareWithPeopleSectionTitle": m68, "shareYourFirstAlbum": MessageLookupByLibrary.simpleMessage( "Chia sẻ album đầu tiên của bạn"), "sharedAlbumSectionDescription": MessageLookupByLibrary.simpleMessage( @@ -1671,7 +1672,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Ảnh chia sẻ mới"), "sharedPhotoNotificationsExplanation": MessageLookupByLibrary.simpleMessage( "Nhận thông báo khi ai đó thêm ảnh vào album chia sẻ mà bạn tham gia"), - "sharedWith": m68, + "sharedWith": m69, "sharedWithMe": MessageLookupByLibrary.simpleMessage("Chia sẻ với tôi"), "sharedWithYou": MessageLookupByLibrary.simpleMessage("Được chia sẻ với bạn"), @@ -1687,11 +1688,11 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Đăng xuất các thiết bị khác"), "signUpTerms": MessageLookupByLibrary.simpleMessage( "Tôi đồng ý với các điều khoản dịch vụchính sách bảo mật"), - "singleFileDeleteFromDevice": m69, + "singleFileDeleteFromDevice": m70, "singleFileDeleteHighlight": MessageLookupByLibrary.simpleMessage( "Nó sẽ bị xóa khỏi tất cả các album."), - "singleFileInBothLocalAndRemote": m70, - "singleFileInRemoteOnly": m71, + "singleFileInBothLocalAndRemote": m71, + "singleFileInRemoteOnly": m72, "skip": MessageLookupByLibrary.simpleMessage("Bỏ qua"), "social": MessageLookupByLibrary.simpleMessage("Xã hội"), "someItemsAreInBothEnteAndYourDevice": @@ -1741,10 +1742,10 @@ class MessageLookup extends MessageLookupByLibrary { "storageInGB": m1, "storageLimitExceeded": MessageLookupByLibrary.simpleMessage("Vượt quá giới hạn lưu trữ"), - "storageUsageInfo": m72, + "storageUsageInfo": m73, "strongStrength": MessageLookupByLibrary.simpleMessage("Mạnh"), - "subAlreadyLinkedErrMessage": m73, - "subWillBeCancelledOn": m74, + "subAlreadyLinkedErrMessage": m74, + "subWillBeCancelledOn": m75, "subscribe": MessageLookupByLibrary.simpleMessage("Đăng ký"), "subscribeToEnableSharing": MessageLookupByLibrary.simpleMessage( "Bạn cần một đăng ký trả phí hoạt động để kích hoạt chia sẻ."), @@ -1761,7 +1762,7 @@ class MessageLookup extends MessageLookupByLibrary { "suggestFeatures": MessageLookupByLibrary.simpleMessage("Gợi ý tính năng"), "support": MessageLookupByLibrary.simpleMessage("Hỗ trợ"), - "syncProgress": m75, + "syncProgress": m76, "syncStopped": MessageLookupByLibrary.simpleMessage("Đồng bộ hóa đã dừng"), "syncing": MessageLookupByLibrary.simpleMessage("Đang đồng bộ hóa..."), @@ -1771,7 +1772,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Chạm để nhập mã"), "tapToUnlock": MessageLookupByLibrary.simpleMessage("Nhấn để mở khóa"), "tapToUpload": MessageLookupByLibrary.simpleMessage("Nhấn để tải lên"), - "tapToUploadIsIgnoredDue": m76, + "tapToUploadIsIgnoredDue": m77, "tempErrorContactSupportIfPersists": MessageLookupByLibrary.simpleMessage( "Có vẻ như đã xảy ra sự cố. Vui lòng thử lại sau một thời gian. Nếu lỗi vẫn tiếp diễn, vui lòng liên hệ với đội ngũ hỗ trợ."), "terminate": MessageLookupByLibrary.simpleMessage("Kết thúc"), @@ -1795,7 +1796,7 @@ class MessageLookup extends MessageLookupByLibrary { "theseItemsWillBeDeletedFromYourDevice": MessageLookupByLibrary.simpleMessage( "Các mục này sẽ bị xóa khỏi thiết bị của bạn."), - "theyAlsoGetXGb": m77, + "theyAlsoGetXGb": m8, "theyWillBeDeletedFromAllAlbums": MessageLookupByLibrary.simpleMessage( "Chúng sẽ bị xóa khỏi tất cả các album."), "thisActionCannotBeUndone": MessageLookupByLibrary.simpleMessage( diff --git a/mobile/lib/generated/intl/messages_zh.dart b/mobile/lib/generated/intl/messages_zh.dart index 6f448786d89..865653d0d81 100644 --- a/mobile/lib/generated/intl/messages_zh.dart +++ b/mobile/lib/generated/intl/messages_zh.dart @@ -20,194 +20,197 @@ typedef String MessageIfAbsent(String messageStr, List args); class MessageLookup extends MessageLookupByLibrary { String get localeName => 'zh'; - static String m6(count) => + static String m9(count) => "${Intl.plural(count, zero: '添加协作者', one: '添加协作者', other: '添加协作者')}"; - static String m7(count) => + static String m10(count) => "${Intl.plural(count, one: '添加一个项目', other: '添加一些项目')}"; - static String m8(storageAmount, endDate) => + static String m11(storageAmount, endDate) => "您的 ${storageAmount} 插件有效期至 ${endDate}"; - static String m9(count) => + static String m12(count) => "${Intl.plural(count, zero: '添加查看者', one: '添加查看者', other: '添加查看者')}"; - static String m10(emailOrName) => "由 ${emailOrName} 添加"; + static String m13(emailOrName) => "由 ${emailOrName} 添加"; - static String m11(albumName) => "成功添加到 ${albumName}"; + static String m14(albumName) => "成功添加到 ${albumName}"; - static String m12(count) => + static String m15(count) => "${Intl.plural(count, zero: '无参与者', one: '1个参与者', other: '${count} 个参与者')}"; - static String m13(versionValue) => "版本: ${versionValue}"; + static String m16(versionValue) => "版本: ${versionValue}"; - static String m14(freeAmount, storageUnit) => + static String m17(freeAmount, storageUnit) => "${freeAmount} ${storageUnit} 空闲"; - static String m15(paymentProvider) => "请先取消您现有的订阅 ${paymentProvider}"; + static String m18(paymentProvider) => "请先取消您现有的订阅 ${paymentProvider}"; - static String m16(user) => "${user} 将无法添加更多照片到此相册\n\n他们仍然能够删除他们添加的现有照片"; + static String m3(user) => "${user} 将无法添加更多照片到此相册\n\n他们仍然能够删除他们添加的现有照片"; - static String m17(isFamilyMember, storageAmountInGb) => + static String m19(isFamilyMember, storageAmountInGb) => "${Intl.select(isFamilyMember, { 'true': '到目前为止,您的家庭已经领取了 ${storageAmountInGb} GB', 'false': '到目前为止,您已经领取了 ${storageAmountInGb} GB', 'other': '到目前为止,您已经领取了${storageAmountInGb} GB', })}"; - static String m18(albumName) => "为 ${albumName} 创建了协作链接"; + static String m20(albumName) => "为 ${albumName} 创建了协作链接"; - static String m19(count) => + static String m21(count) => "${Intl.plural(count, zero: '已添加 0 位协作者', one: '已添加 1 位协作者', other: '已添加 ${count} 位协作者')}"; - static String m20(email, numOfDays) => + static String m22(email, numOfDays) => "您即将添加 ${email} 作为可信联系人。如果您离开了 ${numOfDays} 天,他们将能够恢复您的帐户。"; - static String m21(familyAdminEmail) => + static String m23(familyAdminEmail) => "请联系 ${familyAdminEmail} 来管理您的订阅"; - static String m22(provider) => + static String m24(provider) => "请通过support@ente.io 用英语联系我们来管理您的 ${provider} 订阅。"; - static String m23(endpoint) => "已连接至 ${endpoint}"; + static String m25(endpoint) => "已连接至 ${endpoint}"; - static String m24(count) => + static String m26(count) => "${Intl.plural(count, one: '删除 ${count} 个项目', other: '删除 ${count} 个项目')}"; - static String m25(currentlyDeleting, totalCount) => + static String m27(currentlyDeleting, totalCount) => "正在删除 ${currentlyDeleting} /共 ${totalCount}"; - static String m26(albumName) => "这将删除用于访问\"${albumName}\"的公开链接。"; + static String m28(albumName) => "这将删除用于访问\"${albumName}\"的公开链接。"; - static String m27(supportEmail) => "请从您注册的邮箱发送一封邮件到 ${supportEmail}"; + static String m29(supportEmail) => "请从您注册的邮箱发送一封邮件到 ${supportEmail}"; - static String m28(count, storageSaved) => + static String m30(count, storageSaved) => "您已经清理了 ${Intl.plural(count, other: '${count} 个重复文件')}, 释放了 (${storageSaved}!)"; - static String m29(count, formattedSize) => + static String m31(count, formattedSize) => "${count} 个文件,每个文件 ${formattedSize}"; - static String m30(newEmail) => "电子邮件已更改为 ${newEmail}"; + static String m32(newEmail) => "电子邮件已更改为 ${newEmail}"; - static String m31(email) => "${email} 没有 Ente 帐户。\n\n向他们发出共享照片的邀请。"; + static String m33(email) => "${email} 没有 Ente 帐户。\n\n向他们发出共享照片的邀请。"; - static String m32(text) => "为 ${text} 找到额外照片"; + static String m34(text) => "为 ${text} 找到额外照片"; - static String m33(count, formattedNumber) => + static String m35(count, formattedNumber) => "此设备上的 ${Intl.plural(count, one: '1 个文件', other: '${formattedNumber} 个文件')} 已安全备份"; - static String m34(count, formattedNumber) => + static String m36(count, formattedNumber) => "此相册中的 ${Intl.plural(count, one: '1 个文件', other: '${formattedNumber} 个文件')} 已安全备份"; - static String m35(storageAmountInGB) => + static String m4(storageAmountInGB) => "每当有人使用您的代码注册付费计划时您将获得${storageAmountInGB} GB"; - static String m36(endDate) => "免费试用有效期至 ${endDate}"; + static String m37(endDate) => "免费试用有效期至 ${endDate}"; - static String m37(count) => + static String m38(count) => "只要您有有效的订阅,您仍然可以在 Ente 上访问 ${Intl.plural(count, one: '它', other: '它们')}"; - static String m38(sizeInMBorGB) => "释放 ${sizeInMBorGB}"; + static String m39(sizeInMBorGB) => "释放 ${sizeInMBorGB}"; - static String m39(count, formattedSize) => + static String m40(count, formattedSize) => "${Intl.plural(count, one: '它可以从设备中删除以释放 ${formattedSize}', other: '它们可以从设备中删除以释放 ${formattedSize}')}"; - static String m40(currentlyProcessing, totalCount) => + static String m41(currentlyProcessing, totalCount) => "正在处理 ${currentlyProcessing} / ${totalCount}"; - static String m41(count) => + static String m42(count) => "${Intl.plural(count, one: '${count} 个项目', other: '${count} 个项目')}"; - static String m42(email) => "${email} 已邀请您成为可信联系人"; + static String m43(email) => "${email} 已邀请您成为可信联系人"; - static String m43(expiryTime) => "链接将在 ${expiryTime} 过期"; + static String m44(expiryTime) => "链接将在 ${expiryTime} 过期"; - static String m3(count, formattedCount) => + static String m5(count, formattedCount) => "${Intl.plural(count, zero: '没有回忆', one: '${formattedCount} 个回忆', other: '${formattedCount} 个回忆')}"; - static String m44(count) => + static String m45(count) => "${Intl.plural(count, one: '移动一个项目', other: '移动一些项目')}"; - static String m45(albumName) => "成功移动到 ${albumName}"; + static String m46(albumName) => "成功移动到 ${albumName}"; - static String m46(personName) => "没有针对 ${personName} 的建议"; + static String m47(personName) => "没有针对 ${personName} 的建议"; - static String m47(name) => "不是 ${name}?"; + static String m48(name) => "不是 ${name}?"; - static String m48(familyAdminEmail) => "请联系${familyAdminEmail} 以更改您的代码。"; + static String m49(familyAdminEmail) => "请联系${familyAdminEmail} 以更改您的代码。"; static String m0(passwordStrengthValue) => "密码强度: ${passwordStrengthValue}"; - static String m49(providerName) => "如果您被收取费用,请用英语与 ${providerName} 的客服聊天"; + static String m50(providerName) => "如果您被收取费用,请用英语与 ${providerName} 的客服聊天"; - static String m50(count) => + static String m51(count) => "${Intl.plural(count, zero: '0 张照片', one: '1 张照片', other: '${count} 张照片')}"; - static String m51(endDate) => "免费试用有效期至 ${endDate}。\n在此之后您可以选择付费计划。"; + static String m52(endDate) => "免费试用有效期至 ${endDate}。\n在此之后您可以选择付费计划。"; - static String m52(toEmail) => "请给我们发送电子邮件至 ${toEmail}"; + static String m53(toEmail) => "请给我们发送电子邮件至 ${toEmail}"; - static String m53(toEmail) => "请将日志发送至 \n${toEmail}"; + static String m54(toEmail) => "请将日志发送至 \n${toEmail}"; - static String m54(folderName) => "正在处理 ${folderName}..."; + static String m55(folderName) => "正在处理 ${folderName}..."; - static String m55(storeName) => "在 ${storeName} 上给我们评分"; + static String m56(storeName) => "在 ${storeName} 上给我们评分"; - static String m56(days, email) => "您可以在 ${days} 天后访问该账户。通知将发送至 ${email}。"; + static String m57(days, email) => "您可以在 ${days} 天后访问该账户。通知将发送至 ${email}。"; - static String m57(email) => "您现在可以通过设置新密码来恢复 ${email} 的账户。"; + static String m58(email) => "您现在可以通过设置新密码来恢复 ${email} 的账户。"; - static String m58(email) => "${email} 正在尝试恢复您的账户。"; + static String m59(email) => "${email} 正在尝试恢复您的账户。"; - static String m59(storageInGB) => "3. 你和朋友都将免费获得 ${storageInGB} GB*"; + static String m60(storageInGB) => "3. 你和朋友都将免费获得 ${storageInGB} GB*"; - static String m60(userEmail) => + static String m61(userEmail) => "${userEmail} 将从这个共享相册中删除\n\nTA们添加的任何照片也将从相册中删除"; - static String m61(endDate) => "在 ${endDate} 前续费"; + static String m62(endDate) => "在 ${endDate} 前续费"; - static String m62(count) => + static String m63(count) => "${Intl.plural(count, other: '已找到 ${count} 个结果')}"; - static String m4(count) => "已选择 ${count} 个"; + static String m64(snapshotLength, searchLength) => + "部分长度不匹配:${snapshotLength} != ${searchLength}"; + + static String m6(count) => "已选择 ${count} 个"; - static String m64(count, yourCount) => "选择了 ${count} 个 (您的 ${yourCount} 个)"; + static String m65(count, yourCount) => "选择了 ${count} 个 (您的 ${yourCount} 个)"; - static String m65(verificationID) => "这是我的ente.io 的验证 ID: ${verificationID}。"; + static String m66(verificationID) => "这是我的ente.io 的验证 ID: ${verificationID}。"; - static String m5(verificationID) => + static String m7(verificationID) => "嘿,你能确认这是你的 ente.io 验证 ID吗:${verificationID}"; - static String m66(referralCode, referralStorageInGB) => + static String m67(referralCode, referralStorageInGB) => "Ente 推荐代码:${referralCode}\n\n在 \"设置\"→\"通用\"→\"推荐 \"中应用它,即可在注册付费计划后免费获得 ${referralStorageInGB} GB 存储空间\n\nhttps://ente.io"; - static String m67(numberOfPeople) => + static String m68(numberOfPeople) => "${Intl.plural(numberOfPeople, zero: '与特定人员共享', one: '与 1 人共享', other: '与 ${numberOfPeople} 人共享')}"; - static String m68(emailIDs) => "与 ${emailIDs} 共享"; + static String m69(emailIDs) => "与 ${emailIDs} 共享"; - static String m69(fileType) => "此 ${fileType} 将从您的设备中删除。"; + static String m70(fileType) => "此 ${fileType} 将从您的设备中删除。"; - static String m70(fileType) => "${fileType} 已同时存在于 Ente 和您的设备中。"; + static String m71(fileType) => "${fileType} 已同时存在于 Ente 和您的设备中。"; - static String m71(fileType) => "${fileType} 将从 Ente 中删除。"; + static String m72(fileType) => "${fileType} 将从 Ente 中删除。"; static String m1(storageAmountInGB) => "${storageAmountInGB} GB"; - static String m72( + static String m73( usedAmount, usedStorageUnit, totalAmount, totalStorageUnit) => "已使用 ${usedAmount} ${usedStorageUnit} / ${totalAmount} ${totalStorageUnit}"; - static String m73(id) => + static String m74(id) => "您的 ${id} 已链接到另一个 Ente 账户。\n如果您想在此账户中使用您的 ${id} ,请联系我们的支持人员"; - static String m74(endDate) => "您的订阅将于 ${endDate} 取消"; + static String m75(endDate) => "您的订阅将于 ${endDate} 取消"; - static String m75(completed, total) => "已保存的回忆 ${completed}/共 ${total}"; + static String m76(completed, total) => "已保存的回忆 ${completed}/共 ${total}"; - static String m76(ignoreReason) => "点按上传,由于${ignoreReason},目前上传已被忽略"; + static String m77(ignoreReason) => "点按上传,由于${ignoreReason},目前上传已被忽略"; - static String m77(storageAmountInGB) => "他们也会获得 ${storageAmountInGB} GB"; + static String m8(storageAmountInGB) => "他们也会获得 ${storageAmountInGB} GB"; static String m78(email) => "这是 ${email} 的验证ID"; @@ -253,10 +256,10 @@ class MessageLookup extends MessageLookupByLibrary { "addAName": MessageLookupByLibrary.simpleMessage("添加一个名称"), "addANewEmail": MessageLookupByLibrary.simpleMessage("添加新的电子邮件"), "addCollaborator": MessageLookupByLibrary.simpleMessage("添加协作者"), - "addCollaborators": m6, + "addCollaborators": m9, "addFiles": MessageLookupByLibrary.simpleMessage("添加文件"), "addFromDevice": MessageLookupByLibrary.simpleMessage("从设备添加"), - "addItem": m7, + "addItem": m10, "addLocation": MessageLookupByLibrary.simpleMessage("添加地点"), "addLocationButton": MessageLookupByLibrary.simpleMessage("添加"), "addMore": MessageLookupByLibrary.simpleMessage("添加更多"), @@ -265,7 +268,7 @@ class MessageLookup extends MessageLookupByLibrary { "addNew": MessageLookupByLibrary.simpleMessage("新建"), "addNewPerson": MessageLookupByLibrary.simpleMessage("添加新人物"), "addOnPageSubtitle": MessageLookupByLibrary.simpleMessage("附加组件详情"), - "addOnValidTill": m8, + "addOnValidTill": m11, "addOns": MessageLookupByLibrary.simpleMessage("附加组件"), "addPhotos": MessageLookupByLibrary.simpleMessage("添加照片"), "addSelected": MessageLookupByLibrary.simpleMessage("添加所选项"), @@ -274,11 +277,11 @@ class MessageLookup extends MessageLookupByLibrary { "addToHiddenAlbum": MessageLookupByLibrary.simpleMessage("添加到隐藏相册"), "addTrustedContact": MessageLookupByLibrary.simpleMessage("添加可信联系人"), "addViewer": MessageLookupByLibrary.simpleMessage("添加查看者"), - "addViewers": m9, + "addViewers": m12, "addYourPhotosNow": MessageLookupByLibrary.simpleMessage("立即添加您的照片"), "addedAs": MessageLookupByLibrary.simpleMessage("已添加为"), - "addedBy": m10, - "addedSuccessfullyTo": m11, + "addedBy": m13, + "addedSuccessfullyTo": m14, "addingToFavorites": MessageLookupByLibrary.simpleMessage("正在添加到收藏..."), "advanced": MessageLookupByLibrary.simpleMessage("高级设置"), "advancedSettings": MessageLookupByLibrary.simpleMessage("高级设置"), @@ -288,7 +291,7 @@ class MessageLookup extends MessageLookupByLibrary { "after1Week": MessageLookupByLibrary.simpleMessage("1 周后"), "after1Year": MessageLookupByLibrary.simpleMessage("1 年后"), "albumOwner": MessageLookupByLibrary.simpleMessage("所有者"), - "albumParticipantsCount": m12, + "albumParticipantsCount": m15, "albumTitle": MessageLookupByLibrary.simpleMessage("相册标题"), "albumUpdated": MessageLookupByLibrary.simpleMessage("相册已更新"), "albums": MessageLookupByLibrary.simpleMessage("相册"), @@ -328,7 +331,7 @@ class MessageLookup extends MessageLookupByLibrary { "appLock": MessageLookupByLibrary.simpleMessage("应用锁"), "appLockDescriptions": MessageLookupByLibrary.simpleMessage( "在设备的默认锁定屏幕和带有 PIN 或密码的自定义锁定屏幕之间进行选择。"), - "appVersion": m13, + "appVersion": m16, "appleId": MessageLookupByLibrary.simpleMessage("Apple ID"), "apply": MessageLookupByLibrary.simpleMessage("应用"), "applyCodeTitle": MessageLookupByLibrary.simpleMessage("应用代码"), @@ -374,6 +377,8 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("请验证身份以管理您的可信联系人"), "authToViewPasskey": MessageLookupByLibrary.simpleMessage("请验证身份以查看您的通行密钥"), + "authToViewTrashedFiles": + MessageLookupByLibrary.simpleMessage("请验证身份以查看您已删除的文件"), "authToViewYourActiveSessions": MessageLookupByLibrary.simpleMessage("请验证以查看您的活动会话"), "authToViewYourHiddenFiles": @@ -400,7 +405,7 @@ class MessageLookup extends MessageLookupByLibrary { "autoPairDesc": MessageLookupByLibrary.simpleMessage("自动配对仅适用于支持 Chromecast 的设备。"), "available": MessageLookupByLibrary.simpleMessage("可用"), - "availableStorageSpace": m14, + "availableStorageSpace": m17, "backedUpFolders": MessageLookupByLibrary.simpleMessage("已备份的文件夹"), "backup": MessageLookupByLibrary.simpleMessage("备份"), "backupFailed": MessageLookupByLibrary.simpleMessage("备份失败"), @@ -417,6 +422,9 @@ class MessageLookup extends MessageLookupByLibrary { "blog": MessageLookupByLibrary.simpleMessage("博客"), "cachedData": MessageLookupByLibrary.simpleMessage("缓存数据"), "calculating": MessageLookupByLibrary.simpleMessage("正在计算..."), + "canNotOpenBody": + MessageLookupByLibrary.simpleMessage("抱歉,该相册无法在应用中打开。"), + "canNotOpenTitle": MessageLookupByLibrary.simpleMessage("无法打开此相册"), "canNotUploadToAlbumsOwnedByOthers": MessageLookupByLibrary.simpleMessage("无法上传到他人拥有的相册中"), "canOnlyCreateLinkForFilesOwnedByYou": @@ -427,9 +435,9 @@ class MessageLookup extends MessageLookupByLibrary { "cancelAccountRecovery": MessageLookupByLibrary.simpleMessage("取消恢复"), "cancelAccountRecoveryBody": MessageLookupByLibrary.simpleMessage("您真的要取消恢复吗?"), - "cancelOtherSubscription": m15, + "cancelOtherSubscription": m18, "cancelSubscription": MessageLookupByLibrary.simpleMessage("取消订阅"), - "cannotAddMorePhotosAfterBecomingViewer": m16, + "cannotAddMorePhotosAfterBecomingViewer": m3, "cannotDeleteSharedFiles": MessageLookupByLibrary.simpleMessage("无法删除共享文件"), "castAlbum": MessageLookupByLibrary.simpleMessage("投放相册"), @@ -469,7 +477,7 @@ class MessageLookup extends MessageLookupByLibrary { "claimFreeStorage": MessageLookupByLibrary.simpleMessage("领取免费存储"), "claimMore": MessageLookupByLibrary.simpleMessage("领取更多!"), "claimed": MessageLookupByLibrary.simpleMessage("已领取"), - "claimedStorageSoFar": m17, + "claimedStorageSoFar": m19, "cleanUncategorized": MessageLookupByLibrary.simpleMessage("清除未分类的"), "cleanUncategorizedDescription": MessageLookupByLibrary.simpleMessage("从“未分类”中删除其他相册中存在的所有文件"), @@ -491,11 +499,11 @@ class MessageLookup extends MessageLookupByLibrary { "collabLinkSectionDescription": MessageLookupByLibrary.simpleMessage( "创建一个链接来让他人无需 Ente 应用程序或账户即可在您的共享相册中添加和查看照片。非常适合收集活动照片。"), "collaborativeLink": MessageLookupByLibrary.simpleMessage("协作链接"), - "collaborativeLinkCreatedFor": m18, + "collaborativeLinkCreatedFor": m20, "collaborator": MessageLookupByLibrary.simpleMessage("协作者"), "collaboratorsCanAddPhotosAndVideosToTheSharedAlbum": MessageLookupByLibrary.simpleMessage("协作者可以将照片和视频添加到共享相册中。"), - "collaboratorsSuccessfullyAdded": m19, + "collaboratorsSuccessfullyAdded": m21, "collageLayout": MessageLookupByLibrary.simpleMessage("布局"), "collageSaved": MessageLookupByLibrary.simpleMessage("拼贴已保存到相册"), "collect": MessageLookupByLibrary.simpleMessage("收集"), @@ -510,7 +518,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("您确定要禁用双重认证吗?"), "confirmAccountDeletion": MessageLookupByLibrary.simpleMessage("确认删除账户"), - "confirmAddingTrustedContact": m20, + "confirmAddingTrustedContact": m22, "confirmDeletePrompt": MessageLookupByLibrary.simpleMessage("是的,我想永久删除此账户及其所有关联的应用程序的数据。"), "confirmPassword": MessageLookupByLibrary.simpleMessage("请确认密码"), @@ -519,9 +527,9 @@ class MessageLookup extends MessageLookupByLibrary { "confirmYourRecoveryKey": MessageLookupByLibrary.simpleMessage("确认您的恢复密钥"), "connectToDevice": MessageLookupByLibrary.simpleMessage("连接到设备"), - "contactFamilyAdmin": m21, + "contactFamilyAdmin": m23, "contactSupport": MessageLookupByLibrary.simpleMessage("联系支持"), - "contactToManageSubscription": m22, + "contactToManageSubscription": m24, "contacts": MessageLookupByLibrary.simpleMessage("联系人"), "contents": MessageLookupByLibrary.simpleMessage("内容"), "continueLabel": MessageLookupByLibrary.simpleMessage("继续"), @@ -555,7 +563,7 @@ class MessageLookup extends MessageLookupByLibrary { "currentUsageIs": MessageLookupByLibrary.simpleMessage("当前用量 "), "currentlyRunning": MessageLookupByLibrary.simpleMessage("目前正在运行"), "custom": MessageLookupByLibrary.simpleMessage("自定义"), - "customEndpoint": m23, + "customEndpoint": m25, "darkTheme": MessageLookupByLibrary.simpleMessage("深色"), "dayToday": MessageLookupByLibrary.simpleMessage("今天"), "dayYesterday": MessageLookupByLibrary.simpleMessage("昨天"), @@ -585,15 +593,15 @@ class MessageLookup extends MessageLookupByLibrary { "deleteFromBoth": MessageLookupByLibrary.simpleMessage("同时从两者中删除"), "deleteFromDevice": MessageLookupByLibrary.simpleMessage("从设备中删除"), "deleteFromEnte": MessageLookupByLibrary.simpleMessage("从 Ente 中删除"), - "deleteItemCount": m24, + "deleteItemCount": m26, "deleteLocation": MessageLookupByLibrary.simpleMessage("删除位置"), "deletePhotos": MessageLookupByLibrary.simpleMessage("删除照片"), - "deleteProgress": m25, + "deleteProgress": m27, "deleteReason1": MessageLookupByLibrary.simpleMessage("找不到我想要的功能"), "deleteReason2": MessageLookupByLibrary.simpleMessage("应用或某个功能没有按我的预期运行"), "deleteReason3": - MessageLookupByLibrary.simpleMessage("我找到了另一个我喜欢更好的服务"), + MessageLookupByLibrary.simpleMessage("我找到了另一个我喜欢的更好的服务"), "deleteReason4": MessageLookupByLibrary.simpleMessage("我的原因未被列出"), "deleteRequestSLAText": MessageLookupByLibrary.simpleMessage("您的请求将在 72 小时内处理。"), @@ -619,7 +627,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("查看者仍然可以使用外部工具截图或保存您的照片副本"), "disableDownloadWarningTitle": MessageLookupByLibrary.simpleMessage("请注意"), - "disableLinkMessage": m26, + "disableLinkMessage": m28, "disableTwofactor": MessageLookupByLibrary.simpleMessage("禁用双重认证"), "disablingTwofactorAuthentication": MessageLookupByLibrary.simpleMessage("正在禁用双重认证..."), @@ -652,9 +660,9 @@ class MessageLookup extends MessageLookupByLibrary { "download": MessageLookupByLibrary.simpleMessage("下载"), "downloadFailed": MessageLookupByLibrary.simpleMessage("下載失敗"), "downloading": MessageLookupByLibrary.simpleMessage("正在下载..."), - "dropSupportEmail": m27, - "duplicateFileCountWithStorageSaved": m28, - "duplicateItemsGroup": m29, + "dropSupportEmail": m29, + "duplicateFileCountWithStorageSaved": m30, + "duplicateItemsGroup": m31, "edit": MessageLookupByLibrary.simpleMessage("编辑"), "editLocation": MessageLookupByLibrary.simpleMessage("编辑位置"), "editLocationTagTitle": MessageLookupByLibrary.simpleMessage("编辑位置"), @@ -664,8 +672,12 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("对位置的编辑只能在 Ente 内看到"), "eligible": MessageLookupByLibrary.simpleMessage("符合资格"), "email": MessageLookupByLibrary.simpleMessage("电子邮件地址"), - "emailChangedTo": m30, - "emailNoEnteAccount": m31, + "emailAlreadyRegistered": + MessageLookupByLibrary.simpleMessage("此电子邮件地址已被注册。"), + "emailChangedTo": m32, + "emailNoEnteAccount": m33, + "emailNotRegistered": + MessageLookupByLibrary.simpleMessage("此电子邮件地址未被注册。"), "emailVerificationToggle": MessageLookupByLibrary.simpleMessage("电子邮件验证"), "emailYourLogs": MessageLookupByLibrary.simpleMessage("通过电子邮件发送您的日志"), @@ -730,7 +742,7 @@ class MessageLookup extends MessageLookupByLibrary { "exportLogs": MessageLookupByLibrary.simpleMessage("导出日志"), "exportYourData": MessageLookupByLibrary.simpleMessage("导出您的数据"), "extraPhotosFound": MessageLookupByLibrary.simpleMessage("发现额外照片"), - "extraPhotosFoundFor": m32, + "extraPhotosFoundFor": m34, "faceNotClusteredYet": MessageLookupByLibrary.simpleMessage("人脸尚未聚类,请稍后再来"), "faceRecognition": MessageLookupByLibrary.simpleMessage("人脸识别"), @@ -767,8 +779,8 @@ class MessageLookup extends MessageLookupByLibrary { "fileSavedToGallery": MessageLookupByLibrary.simpleMessage("文件已保存到相册"), "fileTypes": MessageLookupByLibrary.simpleMessage("文件类型"), "fileTypesAndNames": MessageLookupByLibrary.simpleMessage("文件类型和名称"), - "filesBackedUpFromDevice": m33, - "filesBackedUpInAlbum": m34, + "filesBackedUpFromDevice": m35, + "filesBackedUpInAlbum": m36, "filesDeleted": MessageLookupByLibrary.simpleMessage("文件已删除"), "filesSavedToGallery": MessageLookupByLibrary.simpleMessage("多个文件已保存到相册"), @@ -779,23 +791,24 @@ class MessageLookup extends MessageLookupByLibrary { "forgotPassword": MessageLookupByLibrary.simpleMessage("忘记密码"), "foundFaces": MessageLookupByLibrary.simpleMessage("已找到的人脸"), "freeStorageClaimed": MessageLookupByLibrary.simpleMessage("已领取的免费存储"), - "freeStorageOnReferralSuccess": m35, + "freeStorageOnReferralSuccess": m4, "freeStorageUsable": MessageLookupByLibrary.simpleMessage("可用的免费存储"), "freeTrial": MessageLookupByLibrary.simpleMessage("免费试用"), - "freeTrialValidTill": m36, - "freeUpAccessPostDelete": m37, - "freeUpAmount": m38, + "freeTrialValidTill": m37, + "freeUpAccessPostDelete": m38, + "freeUpAmount": m39, "freeUpDeviceSpace": MessageLookupByLibrary.simpleMessage("释放设备空间"), "freeUpDeviceSpaceDesc": MessageLookupByLibrary.simpleMessage("通过清除已备份的文件来节省设备空间。"), "freeUpSpace": MessageLookupByLibrary.simpleMessage("释放空间"), - "freeUpSpaceSaving": m39, + "freeUpSpaceSaving": m40, + "gallery": MessageLookupByLibrary.simpleMessage("图库"), "galleryMemoryLimitInfo": MessageLookupByLibrary.simpleMessage("在图库中显示最多1000个回忆"), "general": MessageLookupByLibrary.simpleMessage("通用"), "generatingEncryptionKeys": MessageLookupByLibrary.simpleMessage("正在生成加密密钥..."), - "genericProgress": m40, + "genericProgress": m41, "goToSettings": MessageLookupByLibrary.simpleMessage("前往设置"), "googlePlayId": MessageLookupByLibrary.simpleMessage("Google Play ID"), "grantFullAccessPrompt": @@ -817,6 +830,8 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("在应用切换器中隐藏应用内容并禁用屏幕截图"), "hideContentDescriptionIos": MessageLookupByLibrary.simpleMessage("在应用切换器中隐藏应用内容"), + "hideSharedItemsFromHomeGallery": + MessageLookupByLibrary.simpleMessage("隐藏主页图库中的共享项目"), "hiding": MessageLookupByLibrary.simpleMessage("正在隐藏..."), "hostedAtOsmFrance": MessageLookupByLibrary.simpleMessage("法国 OSM 主办"), "howItWorks": MessageLookupByLibrary.simpleMessage("工作原理"), @@ -864,11 +879,16 @@ class MessageLookup extends MessageLookupByLibrary { "itLooksLikeSomethingWentWrongPleaseRetryAfterSome": MessageLookupByLibrary.simpleMessage( "看起来出了点问题。 请稍后重试。 如果错误仍然存在,请联系我们的支持团队。"), - "itemCount": m41, + "itemCount": m42, "itemsShowTheNumberOfDaysRemainingBeforePermanentDeletion": MessageLookupByLibrary.simpleMessage("项目显示永久删除前剩余的天数"), "itemsWillBeRemovedFromAlbum": MessageLookupByLibrary.simpleMessage("所选项目将从此相册中移除"), + "join": MessageLookupByLibrary.simpleMessage("加入"), + "joinAlbum": MessageLookupByLibrary.simpleMessage("加入相册"), + "joinAlbumSubtext": MessageLookupByLibrary.simpleMessage("来查看和添加您的照片"), + "joinAlbumSubtextViewer": + MessageLookupByLibrary.simpleMessage("来将其添加到共享相册"), "joinDiscord": MessageLookupByLibrary.simpleMessage("加入 Discord"), "keepPhotos": MessageLookupByLibrary.simpleMessage("保留照片"), "kiloMeterUnit": MessageLookupByLibrary.simpleMessage("公里"), @@ -883,21 +903,19 @@ class MessageLookup extends MessageLookupByLibrary { "left": MessageLookupByLibrary.simpleMessage("向左"), "legacy": MessageLookupByLibrary.simpleMessage("遗产"), "legacyAccounts": MessageLookupByLibrary.simpleMessage("遗产账户"), - "legacyInvite": m42, + "legacyInvite": m43, "legacyPageDesc": MessageLookupByLibrary.simpleMessage("遗产允许信任的联系人在您不在时访问您的账户。"), "legacyPageDesc2": MessageLookupByLibrary.simpleMessage( "可信联系人可以启动账户恢复,如果 30 天内没有被阻止,则可以重置密码并访问您的账户。"), "light": MessageLookupByLibrary.simpleMessage("亮度"), "lightTheme": MessageLookupByLibrary.simpleMessage("浅色"), - "link": MessageLookupByLibrary.simpleMessage("Link"), "linkCopiedToClipboard": MessageLookupByLibrary.simpleMessage("链接已复制到剪贴板"), "linkDeviceLimit": MessageLookupByLibrary.simpleMessage("设备限制"), - "linkEmail": MessageLookupByLibrary.simpleMessage("Link email"), "linkEnabled": MessageLookupByLibrary.simpleMessage("已启用"), "linkExpired": MessageLookupByLibrary.simpleMessage("已过期"), - "linkExpiresOn": m43, + "linkExpiresOn": m44, "linkExpiry": MessageLookupByLibrary.simpleMessage("链接过期"), "linkHasExpired": MessageLookupByLibrary.simpleMessage("链接已过期"), "linkNeverExpires": MessageLookupByLibrary.simpleMessage("永不"), @@ -959,6 +977,7 @@ class MessageLookup extends MessageLookupByLibrary { "magicSearchHint": MessageLookupByLibrary.simpleMessage( "魔法搜索允许按内容搜索照片,例如“lower\'”、“red car”、“identity documents”"), "manage": MessageLookupByLibrary.simpleMessage("管理"), + "manageDeviceStorage": MessageLookupByLibrary.simpleMessage("管理设备缓存"), "manageDeviceStorageDesc": MessageLookupByLibrary.simpleMessage("检查并清除本地缓存存储。"), "manageFamily": MessageLookupByLibrary.simpleMessage("管理家庭计划"), @@ -971,7 +990,7 @@ class MessageLookup extends MessageLookupByLibrary { "maps": MessageLookupByLibrary.simpleMessage("地图"), "mastodon": MessageLookupByLibrary.simpleMessage("Mastodon"), "matrix": MessageLookupByLibrary.simpleMessage("Matrix"), - "memoryCount": m3, + "memoryCount": m5, "merchandise": MessageLookupByLibrary.simpleMessage("商品"), "mergeWithExisting": MessageLookupByLibrary.simpleMessage("与现有的合并"), "mergedPhotos": MessageLookupByLibrary.simpleMessage("已合并照片"), @@ -996,10 +1015,10 @@ class MessageLookup extends MessageLookupByLibrary { "moreDetails": MessageLookupByLibrary.simpleMessage("更多详情"), "mostRecent": MessageLookupByLibrary.simpleMessage("最近"), "mostRelevant": MessageLookupByLibrary.simpleMessage("最相关"), - "moveItem": m44, + "moveItem": m45, "moveToAlbum": MessageLookupByLibrary.simpleMessage("移动到相册"), "moveToHiddenAlbum": MessageLookupByLibrary.simpleMessage("移至隐藏相册"), - "movedSuccessfullyTo": m45, + "movedSuccessfullyTo": m46, "movedToTrash": MessageLookupByLibrary.simpleMessage("已移至回收站"), "movingFilesToAlbum": MessageLookupByLibrary.simpleMessage("正在将文件移动到相册..."), @@ -1024,8 +1043,6 @@ class MessageLookup extends MessageLookupByLibrary { "noDeviceThatCanBeDeleted": MessageLookupByLibrary.simpleMessage("您在此设备上没有可被删除的文件"), "noDuplicates": MessageLookupByLibrary.simpleMessage("✨ 没有重复内容"), - "noEnteAccountExclamation": - MessageLookupByLibrary.simpleMessage("No Ente account!"), "noExifData": MessageLookupByLibrary.simpleMessage("无 EXIF 数据"), "noFacesFound": MessageLookupByLibrary.simpleMessage("未找到任何面部"), "noHiddenPhotosOrVideos": @@ -1042,9 +1059,9 @@ class MessageLookup extends MessageLookupByLibrary { "由于我们端到端加密协议的性质,如果没有您的密码或恢复密钥,您的数据将无法解密"), "noResults": MessageLookupByLibrary.simpleMessage("无结果"), "noResultsFound": MessageLookupByLibrary.simpleMessage("未找到任何结果"), - "noSuggestionsForPerson": m46, + "noSuggestionsForPerson": m47, "noSystemLockFound": MessageLookupByLibrary.simpleMessage("未找到系统锁"), - "notPersonLabel": m47, + "notPersonLabel": m48, "nothingSharedWithYouYet": MessageLookupByLibrary.simpleMessage("尚未与您共享任何内容"), "nothingToSeeHere": MessageLookupByLibrary.simpleMessage("这里空空如也! 👀"), @@ -1053,7 +1070,7 @@ class MessageLookup extends MessageLookupByLibrary { "onDevice": MessageLookupByLibrary.simpleMessage("在设备上"), "onEnte": MessageLookupByLibrary.simpleMessage( "在 ente 上"), - "onlyFamilyAdminCanChangeCode": m48, + "onlyFamilyAdminCanChangeCode": m49, "onlyThem": MessageLookupByLibrary.simpleMessage("仅限他们"), "oops": MessageLookupByLibrary.simpleMessage("哎呀"), "oopsCouldNotSaveEdits": @@ -1095,7 +1112,7 @@ class MessageLookup extends MessageLookupByLibrary { "paymentFailed": MessageLookupByLibrary.simpleMessage("支付失败"), "paymentFailedMessage": MessageLookupByLibrary.simpleMessage( "不幸的是,您的付款失败。请联系支持人员,我们将为您提供帮助!"), - "paymentFailedTalkToProvider": m49, + "paymentFailedTalkToProvider": m50, "pendingItems": MessageLookupByLibrary.simpleMessage("待处理项目"), "pendingSync": MessageLookupByLibrary.simpleMessage("正在等待同步"), "people": MessageLookupByLibrary.simpleMessage("人物"), @@ -1112,12 +1129,12 @@ class MessageLookup extends MessageLookupByLibrary { "photos": MessageLookupByLibrary.simpleMessage("照片"), "photosAddedByYouWillBeRemovedFromTheAlbum": MessageLookupByLibrary.simpleMessage("您添加的照片将从相册中移除"), - "photosCount": m50, + "photosCount": m51, "pickCenterPoint": MessageLookupByLibrary.simpleMessage("选择中心点"), "pinAlbum": MessageLookupByLibrary.simpleMessage("置顶相册"), "pinLock": MessageLookupByLibrary.simpleMessage("PIN 锁定"), "playOnTv": MessageLookupByLibrary.simpleMessage("在电视上播放相册"), - "playStoreFreeTrialValidTill": m51, + "playStoreFreeTrialValidTill": m52, "playstoreSubscription": MessageLookupByLibrary.simpleMessage("PlayStore 订阅"), "pleaseCheckYourInternetConnectionAndTryAgain": @@ -1127,12 +1144,12 @@ class MessageLookup extends MessageLookupByLibrary { "请用英语联系 support@ente.io ,我们将乐意提供帮助!"), "pleaseContactSupportIfTheProblemPersists": MessageLookupByLibrary.simpleMessage("如果问题仍然存在,请联系支持"), - "pleaseEmailUsAt": m52, + "pleaseEmailUsAt": m53, "pleaseGrantPermissions": MessageLookupByLibrary.simpleMessage("请授予权限"), "pleaseLoginAgain": MessageLookupByLibrary.simpleMessage("请重新登录"), "pleaseSelectQuickLinksToRemove": MessageLookupByLibrary.simpleMessage("请选择要删除的快速链接"), - "pleaseSendTheLogsTo": m53, + "pleaseSendTheLogsTo": m54, "pleaseTryAgain": MessageLookupByLibrary.simpleMessage("请重试"), "pleaseVerifyTheCodeYouHaveEntered": MessageLookupByLibrary.simpleMessage("请验证您输入的代码"), @@ -1152,7 +1169,8 @@ class MessageLookup extends MessageLookupByLibrary { "privateBackups": MessageLookupByLibrary.simpleMessage("私人备份"), "privateSharing": MessageLookupByLibrary.simpleMessage("私人分享"), "proceed": MessageLookupByLibrary.simpleMessage("继续"), - "processingImport": m54, + "processed": MessageLookupByLibrary.simpleMessage("已处理"), + "processingImport": m55, "publicLinkCreated": MessageLookupByLibrary.simpleMessage("公共链接已创建"), "publicLinkEnabled": MessageLookupByLibrary.simpleMessage("公开链接已启用"), "quickLinks": MessageLookupByLibrary.simpleMessage("快速链接"), @@ -1160,13 +1178,13 @@ class MessageLookup extends MessageLookupByLibrary { "raiseTicket": MessageLookupByLibrary.simpleMessage("提升工单"), "rateTheApp": MessageLookupByLibrary.simpleMessage("为此应用评分"), "rateUs": MessageLookupByLibrary.simpleMessage("给我们评分"), - "rateUsOnStore": m55, + "rateUsOnStore": m56, "recover": MessageLookupByLibrary.simpleMessage("恢复"), "recoverAccount": MessageLookupByLibrary.simpleMessage("恢复账户"), "recoverButton": MessageLookupByLibrary.simpleMessage("恢复"), "recoveryAccount": MessageLookupByLibrary.simpleMessage("恢复账户"), "recoveryInitiated": MessageLookupByLibrary.simpleMessage("已启动恢复"), - "recoveryInitiatedDesc": m56, + "recoveryInitiatedDesc": m57, "recoveryKey": MessageLookupByLibrary.simpleMessage("恢复密钥"), "recoveryKeyCopiedToClipboard": MessageLookupByLibrary.simpleMessage("恢复密钥已复制到剪贴板"), @@ -1179,11 +1197,11 @@ class MessageLookup extends MessageLookupByLibrary { "recoveryKeyVerified": MessageLookupByLibrary.simpleMessage("恢复密钥已验证"), "recoveryKeyVerifyReason": MessageLookupByLibrary.simpleMessage( "如果您忘记了密码,恢复密钥是恢复照片的唯一方法。您可以在“设置”>“账户”中找到恢复密钥。\n\n请在此处输入恢复密钥,以验证您是否已正确保存。"), - "recoveryReady": m57, + "recoveryReady": m58, "recoverySuccessful": MessageLookupByLibrary.simpleMessage("恢复成功!"), "recoveryWarning": MessageLookupByLibrary.simpleMessage("一位可信联系人正在尝试访问您的账户"), - "recoveryWarningBody": m58, + "recoveryWarningBody": m59, "recreatePasswordBody": MessageLookupByLibrary.simpleMessage( "当前设备的功能不足以验证您的密码,但我们可以以适用于所有设备的方式重新生成。\n\n请使用您的恢复密钥登录并重新生成您的密码(如果您希望,可以再次使用相同的密码)。"), "recreatePasswordTitle": MessageLookupByLibrary.simpleMessage("重新创建密码"), @@ -1194,7 +1212,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("把我们推荐给你的朋友然后获得延长一倍的订阅计划"), "referralStep1": MessageLookupByLibrary.simpleMessage("1. 将此代码提供给您的朋友"), "referralStep2": MessageLookupByLibrary.simpleMessage("2. 他们注册一个付费计划"), - "referralStep3": m59, + "referralStep3": m60, "referrals": MessageLookupByLibrary.simpleMessage("推荐"), "referralsAreCurrentlyPaused": MessageLookupByLibrary.simpleMessage("推荐已暂停"), @@ -1217,7 +1235,7 @@ class MessageLookup extends MessageLookupByLibrary { "removeInvite": MessageLookupByLibrary.simpleMessage("移除邀请"), "removeLink": MessageLookupByLibrary.simpleMessage("移除链接"), "removeParticipant": MessageLookupByLibrary.simpleMessage("移除参与者"), - "removeParticipantBody": m60, + "removeParticipantBody": m61, "removePersonLabel": MessageLookupByLibrary.simpleMessage("移除人物标签"), "removePublicLink": MessageLookupByLibrary.simpleMessage("删除公开链接"), "removePublicLinks": MessageLookupByLibrary.simpleMessage("删除公开链接"), @@ -1232,7 +1250,7 @@ class MessageLookup extends MessageLookupByLibrary { "renameAlbum": MessageLookupByLibrary.simpleMessage("重命名相册"), "renameFile": MessageLookupByLibrary.simpleMessage("重命名文件"), "renewSubscription": MessageLookupByLibrary.simpleMessage("续费订阅"), - "renewsOn": m61, + "renewsOn": m62, "reportABug": MessageLookupByLibrary.simpleMessage("报告错误"), "reportBug": MessageLookupByLibrary.simpleMessage("报告错误"), "resendEmail": MessageLookupByLibrary.simpleMessage("重新发送电子邮件"), @@ -1292,7 +1310,8 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("邀请他人,您将在此看到他们分享的所有照片"), "searchPersonsEmptySection": MessageLookupByLibrary.simpleMessage("处理和同步完成后,人物将显示在此处"), - "searchResultCount": m62, + "searchResultCount": m63, + "searchSectionsLengthMismatch": m64, "security": MessageLookupByLibrary.simpleMessage("安全"), "seePublicAlbumLinksInApp": MessageLookupByLibrary.simpleMessage("在应用程序中查看公开相册链接"), @@ -1317,8 +1336,8 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("所选文件夹将被加密并备份"), "selectedItemsWillBeDeletedFromAllAlbumsAndMoved": MessageLookupByLibrary.simpleMessage("所选项目将从所有相册中删除并移动到回收站。"), - "selectedPhotos": m4, - "selectedPhotosWithYours": m64, + "selectedPhotos": m6, + "selectedPhotosWithYours": m65, "send": MessageLookupByLibrary.simpleMessage("发送"), "sendEmail": MessageLookupByLibrary.simpleMessage("发送电子邮件"), "sendInvite": MessageLookupByLibrary.simpleMessage("发送邀请"), @@ -1341,16 +1360,16 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("打开相册并点击右上角的分享按钮进行分享"), "shareAnAlbumNow": MessageLookupByLibrary.simpleMessage("立即分享相册"), "shareLink": MessageLookupByLibrary.simpleMessage("分享链接"), - "shareMyVerificationID": m65, + "shareMyVerificationID": m66, "shareOnlyWithThePeopleYouWant": MessageLookupByLibrary.simpleMessage("仅与您想要的人分享"), - "shareTextConfirmOthersVerificationID": m5, + "shareTextConfirmOthersVerificationID": m7, "shareTextRecommendUsingEnte": MessageLookupByLibrary.simpleMessage("下载 Ente,让我们轻松共享高质量的原始照片和视频"), - "shareTextReferralCode": m66, + "shareTextReferralCode": m67, "shareWithNonenteUsers": MessageLookupByLibrary.simpleMessage("与非 Ente 用户共享"), - "shareWithPeopleSectionTitle": m67, + "shareWithPeopleSectionTitle": m68, "shareYourFirstAlbum": MessageLookupByLibrary.simpleMessage("分享您的第一个相册"), "sharedAlbumSectionDescription": MessageLookupByLibrary.simpleMessage( @@ -1361,7 +1380,7 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("新共享的照片"), "sharedPhotoNotificationsExplanation": MessageLookupByLibrary.simpleMessage("当有人将照片添加到您所属的共享相册时收到通知"), - "sharedWith": m68, + "sharedWith": m69, "sharedWithMe": MessageLookupByLibrary.simpleMessage("与我共享"), "sharedWithYou": MessageLookupByLibrary.simpleMessage("已与您共享"), "sharing": MessageLookupByLibrary.simpleMessage("正在分享..."), @@ -1374,11 +1393,11 @@ class MessageLookup extends MessageLookupByLibrary { "signOutOtherDevices": MessageLookupByLibrary.simpleMessage("登出其他设备"), "signUpTerms": MessageLookupByLibrary.simpleMessage( "我同意 服务条款隐私政策"), - "singleFileDeleteFromDevice": m69, + "singleFileDeleteFromDevice": m70, "singleFileDeleteHighlight": MessageLookupByLibrary.simpleMessage("它将从所有相册中删除。"), - "singleFileInBothLocalAndRemote": m70, - "singleFileInRemoteOnly": m71, + "singleFileInBothLocalAndRemote": m71, + "singleFileInRemoteOnly": m72, "skip": MessageLookupByLibrary.simpleMessage("跳过"), "social": MessageLookupByLibrary.simpleMessage("社交"), "someItemsAreInBothEnteAndYourDevice": @@ -1416,10 +1435,10 @@ class MessageLookup extends MessageLookupByLibrary { "storageBreakupYou": MessageLookupByLibrary.simpleMessage("您"), "storageInGB": m1, "storageLimitExceeded": MessageLookupByLibrary.simpleMessage("已超出存储限制"), - "storageUsageInfo": m72, + "storageUsageInfo": m73, "strongStrength": MessageLookupByLibrary.simpleMessage("强"), - "subAlreadyLinkedErrMessage": m73, - "subWillBeCancelledOn": m74, + "subAlreadyLinkedErrMessage": m74, + "subWillBeCancelledOn": m75, "subscribe": MessageLookupByLibrary.simpleMessage("订阅"), "subscribeToEnableSharing": MessageLookupByLibrary.simpleMessage("您需要有效的付费订阅才能启用共享。"), @@ -1432,7 +1451,7 @@ class MessageLookup extends MessageLookupByLibrary { "successfullyUnhid": MessageLookupByLibrary.simpleMessage("已成功取消隐藏"), "suggestFeatures": MessageLookupByLibrary.simpleMessage("建议新功能"), "support": MessageLookupByLibrary.simpleMessage("支持"), - "syncProgress": m75, + "syncProgress": m76, "syncStopped": MessageLookupByLibrary.simpleMessage("同步已停止"), "syncing": MessageLookupByLibrary.simpleMessage("正在同步···"), "systemTheme": MessageLookupByLibrary.simpleMessage("适应系统"), @@ -1440,7 +1459,7 @@ class MessageLookup extends MessageLookupByLibrary { "tapToEnterCode": MessageLookupByLibrary.simpleMessage("点击以输入代码"), "tapToUnlock": MessageLookupByLibrary.simpleMessage("点击解锁"), "tapToUpload": MessageLookupByLibrary.simpleMessage("点按上传"), - "tapToUploadIsIgnoredDue": m76, + "tapToUploadIsIgnoredDue": m77, "tempErrorContactSupportIfPersists": MessageLookupByLibrary.simpleMessage( "看起来出了点问题。 请稍后重试。 如果错误仍然存在,请联系我们的支持团队。"), @@ -1460,7 +1479,7 @@ class MessageLookup extends MessageLookupByLibrary { "theme": MessageLookupByLibrary.simpleMessage("主题"), "theseItemsWillBeDeletedFromYourDevice": MessageLookupByLibrary.simpleMessage("这些项目将从您的设备中删除。"), - "theyAlsoGetXGb": m77, + "theyAlsoGetXGb": m8, "theyWillBeDeletedFromAllAlbums": MessageLookupByLibrary.simpleMessage("他们将从所有相册中删除。"), "thisActionCannotBeUndone": From 6176ec6cb97d480c64f6b2cf3abe761da20a2bbf Mon Sep 17 00:00:00 2001 From: ashilkn Date: Tue, 28 Jan 2025 13:36:36 +0530 Subject: [PATCH 55/90] [mob][photos] Revert back to using figma_squircle v0.5.3 from pub.dev since we've reverted to flutter v3.24.x --- mobile/pubspec.yaml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/mobile/pubspec.yaml b/mobile/pubspec.yaml index e36266e7fef..a008b10a52d 100644 --- a/mobile/pubspec.yaml +++ b/mobile/pubspec.yaml @@ -64,9 +64,7 @@ dependencies: fade_indexed_stack: ^0.2.2 fast_base58: ^0.2.1 ffmpeg_kit_flutter_full_gpl: ^6.0.3 - figma_squircle: - git: - url: https://github.com/Ax0elz/figma_squircle.git + figma_squircle: 0.5.3 file_saver: # Use forked version till this PR is merged: https://github.com/incrediblezayed/file_saver/pull/87 git: https://github.com/jesims/file_saver.git From 6468fe963749017c3b78cad52c502b51e3d17c6f Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Tue, 28 Jan 2025 16:56:17 +0530 Subject: [PATCH 56/90] feat: add video streaming setting --- .../lib/events/video_streaming_changed.dart | 5 +++ mobile/lib/main.dart | 2 +- mobile/lib/services/preview_video_store.dart | 35 +++++++++++++++++-- .../services/user_remote_flag_service.dart | 1 + .../ui/settings/advanced_settings_screen.dart | 23 ++++++++++++ 5 files changed, 62 insertions(+), 4 deletions(-) create mode 100644 mobile/lib/events/video_streaming_changed.dart diff --git a/mobile/lib/events/video_streaming_changed.dart b/mobile/lib/events/video_streaming_changed.dart new file mode 100644 index 00000000000..23d90b08b3f --- /dev/null +++ b/mobile/lib/events/video_streaming_changed.dart @@ -0,0 +1,5 @@ +import "package:photos/events/event.dart"; + +// todo: consider removing this once we opt for riverpod or similar state management +// solution +class VideoStreamingChanged extends Event {} diff --git a/mobile/lib/main.dart b/mobile/lib/main.dart index e4b2c37142a..70deb70cd74 100644 --- a/mobile/lib/main.dart +++ b/mobile/lib/main.dart @@ -286,7 +286,7 @@ Future _init(bool isBackground, {String via = ''}) async { }); } _logger.info("PushService/HomeWidget done $tlog"); - PreviewVideoStore.instance.init(); + PreviewVideoStore.instance.init(preferences); unawaited(SemanticSearchService.instance.init()); unawaited(MLService.instance.init()); await PersonService.init( diff --git a/mobile/lib/services/preview_video_store.dart b/mobile/lib/services/preview_video_store.dart index 6b5e1dd81ef..f9071bee494 100644 --- a/mobile/lib/services/preview_video_store.dart +++ b/mobile/lib/services/preview_video_store.dart @@ -13,16 +13,18 @@ import "package:logging/logging.dart"; import "package:path_provider/path_provider.dart"; import "package:photos/core/cache/video_cache_manager.dart"; import "package:photos/core/configuration.dart"; +import "package:photos/core/event_bus.dart"; import "package:photos/core/network/network.dart"; +import "package:photos/events/video_streaming_changed.dart"; import "package:photos/models/base/id.dart"; import "package:photos/models/file/file.dart"; import "package:photos/models/file/file_type.dart"; -import "package:photos/service_locator.dart"; import "package:photos/services/filedata/filedata_service.dart"; import "package:photos/utils/file_key.dart"; import "package:photos/utils/file_util.dart"; import "package:photos/utils/gzip.dart"; import "package:photos/utils/toast_util.dart"; +import "package:shared_preferences/shared_preferences.dart"; class PreviewVideoStore { PreviewVideoStore._privateConstructor(); @@ -38,10 +40,37 @@ class PreviewVideoStore { bool isUploading = false; final _dio = NetworkClient.instance.enteDio; - void init() {} + + void init(SharedPreferences prefs) { + _prefs = prefs; + } + + late final SharedPreferences _prefs; + static const String _videoStreamingEnabled = "videoStreamingEnabled"; + static const String _videoStreamingCutoff = "videoStreamingCutoff"; + + bool get isVideoStreamingEnabled { + return _prefs.getBool(_videoStreamingEnabled) ?? true; + } + + Future setIsVideoStreamingEnabled(bool value) async { + final oneMonthBack = DateTime.now().subtract(const Duration(days: 30)); + await _prefs.setBool(_videoStreamingEnabled, value); + await _prefs.setInt( + _videoStreamingCutoff, + oneMonthBack.millisecondsSinceEpoch, + ); + Bus.instance.fire(VideoStreamingChanged()); + } + + Future get videoStreamingCutoff async { + final milliseconds = _prefs.getInt(_videoStreamingCutoff); + if (milliseconds == null) return null; + return DateTime.fromMillisecondsSinceEpoch(milliseconds); + } Future chunkAndUploadVideo(BuildContext? ctx, EnteFile enteFile) async { - if (!enteFile.isUploaded || !flagService.internalUser) return; + if (!enteFile.isUploaded || !isVideoStreamingEnabled) return; final file = await getFile(enteFile, isOrigin: true); if (file == null) return; try { diff --git a/mobile/lib/services/user_remote_flag_service.dart b/mobile/lib/services/user_remote_flag_service.dart index 7a49b38d53b..42bc45a60d7 100644 --- a/mobile/lib/services/user_remote_flag_service.dart +++ b/mobile/lib/services/user_remote_flag_service.dart @@ -19,6 +19,7 @@ class UserRemoteFlagService { static const String recoveryVerificationFlag = "recoveryKeyVerified"; static const String mapEnabled = "mapEnabled"; static const String mlEnabled = "faceSearchEnabled"; + static const String videoStreamingEnabled = "videoStreamingEnabled"; static const String needRecoveryKeyVerification = "needRecoveryKeyVerification"; diff --git a/mobile/lib/ui/settings/advanced_settings_screen.dart b/mobile/lib/ui/settings/advanced_settings_screen.dart index 7df16fd8bfc..7969980cbfb 100644 --- a/mobile/lib/ui/settings/advanced_settings_screen.dart +++ b/mobile/lib/ui/settings/advanced_settings_screen.dart @@ -2,6 +2,7 @@ import 'package:flutter/material.dart'; import "package:photos/core/error-reporting/super_logging.dart"; import "package:photos/generated/l10n.dart"; import "package:photos/service_locator.dart"; +import "package:photos/services/preview_video_store.dart"; import "package:photos/services/user_remote_flag_service.dart"; import 'package:photos/theme/ente_theme.dart'; import 'package:photos/ui/components/buttons/icon_button_widget.dart'; @@ -116,6 +117,28 @@ class AdvancedSettingsScreen extends StatelessWidget { }, ), ), + if (flagService.internalUser) ...[ + const SizedBox(height: 24), + MenuItemWidget( + captionedTextWidget: CaptionedTextWidget( + title: S.of(context).videoStreaming, + ), + menuItemColor: colorScheme.fillFaint, + singleBorderRadius: 8, + alignCaptionedTextToLeft: true, + trailingWidget: ToggleSwitchWidget( + value: () => PreviewVideoStore + .instance.isVideoStreamingEnabled, + onChanged: () async { + final isEnabled = PreviewVideoStore + .instance.isVideoStreamingEnabled; + + await PreviewVideoStore.instance + .setIsVideoStreamingEnabled(!isEnabled); + }, + ), + ), + ], const SizedBox( height: 24, ), From 2345265e190af7a4119d6130527338d46024a6d2 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Tue, 28 Jan 2025 16:56:36 +0530 Subject: [PATCH 57/90] chore: update locals & project --- mobile/ios/Runner.xcodeproj/project.pbxproj | 4 ++-- mobile/lib/generated/intl/messages_en.dart | 2 ++ mobile/lib/generated/l10n.dart | 10 ++++++++++ mobile/lib/l10n/intl_de.arb | 2 +- mobile/lib/l10n/intl_en.arb | 3 ++- mobile/lib/l10n/intl_pt.arb | 4 ++-- mobile/lib/l10n/intl_ro.arb | 6 +++--- mobile/lib/l10n/intl_uk.arb | 6 +++--- 8 files changed, 25 insertions(+), 12 deletions(-) diff --git a/mobile/ios/Runner.xcodeproj/project.pbxproj b/mobile/ios/Runner.xcodeproj/project.pbxproj index 5e735686596..65b1ae54d55 100644 --- a/mobile/ios/Runner.xcodeproj/project.pbxproj +++ b/mobile/ios/Runner.xcodeproj/project.pbxproj @@ -16,7 +16,7 @@ 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; - DA6BE5E826B3BC8600656280 /* (null) in Resources */ = {isa = PBXBuildFile; }; + DA6BE5E826B3BC8600656280 /* BuildFile in Resources */ = {isa = PBXBuildFile; }; /* End PBXBuildFile section */ /* Begin PBXCopyFilesBuildPhase section */ @@ -230,7 +230,7 @@ 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */, 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */, 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */, - DA6BE5E826B3BC8600656280 /* (null) in Resources */, + DA6BE5E826B3BC8600656280 /* BuildFile in Resources */, 277218A0270F596900FFE3CC /* GoogleService-Info.plist in Resources */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/mobile/lib/generated/intl/messages_en.dart b/mobile/lib/generated/intl/messages_en.dart index 16ca4647452..fad39495afc 100644 --- a/mobile/lib/generated/intl/messages_en.dart +++ b/mobile/lib/generated/intl/messages_en.dart @@ -1891,6 +1891,8 @@ class MessageLookup extends MessageLookupByLibrary { MessageLookupByLibrary.simpleMessage("Verifying recovery key..."), "videoInfo": MessageLookupByLibrary.simpleMessage("Video Info"), "videoSmallCase": MessageLookupByLibrary.simpleMessage("video"), + "videoStreaming": + MessageLookupByLibrary.simpleMessage("Video Streaming"), "videos": MessageLookupByLibrary.simpleMessage("Videos"), "viewActiveSessions": MessageLookupByLibrary.simpleMessage("View active sessions"), diff --git a/mobile/lib/generated/l10n.dart b/mobile/lib/generated/l10n.dart index c0c18d40ab4..2949dfe06ec 100644 --- a/mobile/lib/generated/l10n.dart +++ b/mobile/lib/generated/l10n.dart @@ -10958,6 +10958,16 @@ class S { args: [], ); } + + /// `Video Streaming` + String get videoStreaming { + return Intl.message( + 'Video Streaming', + name: 'videoStreaming', + desc: '', + args: [], + ); + } } class AppLocalizationDelegate extends LocalizationsDelegate { diff --git a/mobile/lib/l10n/intl_de.arb b/mobile/lib/l10n/intl_de.arb index 3261fb895fa..f06459841c5 100644 --- a/mobile/lib/l10n/intl_de.arb +++ b/mobile/lib/l10n/intl_de.arb @@ -1477,7 +1477,7 @@ }, "currentlyRunning": "läuft gerade", "ignored": "ignoriert", - "photosCount": "{count, plural, one {1 Foto} =0 {0 Fotos} =1 {1 Foto} other {{count} Fotos}}", + "photosCount": "{count, plural, =0 {0 Fotos} =1 {1 Foto} other {{count} Fotos}}", "@photosCount": { "placeholders": { "count": { diff --git a/mobile/lib/l10n/intl_en.arb b/mobile/lib/l10n/intl_en.arb index 81f80a2c8f9..b51726be393 100644 --- a/mobile/lib/l10n/intl_en.arb +++ b/mobile/lib/l10n/intl_en.arb @@ -1592,5 +1592,6 @@ "join": "Join", "linkEmail": "Link email", "link": "Link", - "noEnteAccountExclamation": "No Ente account!" + "noEnteAccountExclamation": "No Ente account!", + "videoStreaming": "Video Streaming" } \ No newline at end of file diff --git a/mobile/lib/l10n/intl_pt.arb b/mobile/lib/l10n/intl_pt.arb index 21592763b2f..a0f56ea3e02 100644 --- a/mobile/lib/l10n/intl_pt.arb +++ b/mobile/lib/l10n/intl_pt.arb @@ -1259,8 +1259,8 @@ "description": "Subtitle to indicate that the user can find people quickly by name" }, "findPeopleByName": "Busque pessoas facilmente pelo nome", - "addViewers": "{count, plural, one {Adicionar visualizador} one {Adicionar visualizador} other {Adicionar visualizadores}}", - "addCollaborators": "{count, plural, one {Adicionar colaborador} one {Adicionar colaborador} other {Adicionar colaboradores}}", + "addViewers": "{count, plural, one {Adicionar visualizador} other {Adicionar visualizadores}}", + "addCollaborators": "{count, plural, one {Adicionar colaborador} other {Adicionar colaboradores}}", "longPressAnEmailToVerifyEndToEndEncryption": "Pressione um e-mail para verificar a criptografia ponta a ponta.", "developerSettingsWarning": "Deseja modificar as Opções de Desenvolvedor?", "developerSettings": "Opções de desenvolvedor", diff --git a/mobile/lib/l10n/intl_ro.arb b/mobile/lib/l10n/intl_ro.arb index aea8bb673ea..e3350798938 100644 --- a/mobile/lib/l10n/intl_ro.arb +++ b/mobile/lib/l10n/intl_ro.arb @@ -1392,7 +1392,7 @@ "enableMachineLearningBanner": "Activați învățarea automată pentru a folosi căutarea magică și recunoașterea facială", "searchDiscoverEmptySection": "Imaginile vor fi afișate aici odată ce procesarea și sincronizarea este completă", "searchPersonsEmptySection": "Persoanele vor fi afișate aici odată ce procesarea și sincronizarea este completă", - "viewersSuccessfullyAdded": "{count, plural, one {} few {S-au adăugat {count} observatori}=0 {S-au adăugat 0 observatori} =1 {S-a adăugat 1 observator} other {S-au adăugat {count} de observatori}}", + "viewersSuccessfullyAdded": "{count, plural, few {S-au adăugat {count} observatori}=0 {S-au adăugat 0 observatori} =1 {S-a adăugat 1 observator} other {S-au adăugat {count} de observatori}}", "@viewersSuccessfullyAdded": { "placeholders": { "count": { @@ -1402,7 +1402,7 @@ }, "description": "Number of viewers that were successfully added to an album." }, - "collaboratorsSuccessfullyAdded": "{count, plural, one {} few {S-au adăugat {count} colaboratori}=0 {S-au adăugat 0 colaboratori} =1 {S-a adăugat 1 colaborator} other {S-au adăugat {count} de colaboratori}}", + "collaboratorsSuccessfullyAdded": "{count, plural, few {S-au adăugat {count} colaboratori}=0 {S-au adăugat 0 colaboratori} =1 {S-a adăugat 1 colaborator} other {S-au adăugat {count} de colaboratori}}", "@collaboratorsSuccessfullyAdded": { "placeholders": { "count": { @@ -1477,7 +1477,7 @@ }, "currentlyRunning": "rulează în prezent", "ignored": "ignorat", - "photosCount": "{count, plural, one {} few {{count} fotografii}=0 {0 fotografii} =1 {1 fotografie} other {{count} de fotografii}}", + "photosCount": "{count, plural, few {{count} fotografii}=0 {0 fotografii} =1 {1 fotografie} other {{count} de fotografii}}", "@photosCount": { "placeholders": { "count": { diff --git a/mobile/lib/l10n/intl_uk.arb b/mobile/lib/l10n/intl_uk.arb index f98966a567c..29a8fb276b1 100644 --- a/mobile/lib/l10n/intl_uk.arb +++ b/mobile/lib/l10n/intl_uk.arb @@ -1386,7 +1386,7 @@ "enableMachineLearningBanner": "Увімкніть машинне навчання для магічного пошуку та розпізнавання облич", "searchDiscoverEmptySection": "Зображення будуть показані тут після завершення оброблення та синхронізації", "searchPersonsEmptySection": "Люди будуть показані тут після завершення оброблення та синхронізації", - "viewersSuccessfullyAdded": "{count, plural, one {} few {Додано {count} користувача} many {Додано {count} користувачів}=0 {Додано 0 користувачів} =1 {Додано 1 користувач} other {Додано {count} користувачів}}", + "viewersSuccessfullyAdded": "{count, plural, few {Додано {count} користувача} many {Додано {count} користувачів}=0 {Додано 0 користувачів} =1 {Додано 1 користувач} other {Додано {count} користувачів}}", "@viewersSuccessfullyAdded": { "placeholders": { "count": { @@ -1396,7 +1396,7 @@ }, "description": "Number of viewers that were successfully added to an album." }, - "collaboratorsSuccessfullyAdded": "{count, plural, one {} few {Додано {count} співаторів} many {Додано {count} співаторів}=0 {Додано 0 співавторів} =1 {Додано 1 співавтор} other {Додано {count} співавторів}}", + "collaboratorsSuccessfullyAdded": "{count, plural, few {Додано {count} співаторів} many {Додано {count} співаторів}=0 {Додано 0 співавторів} =1 {Додано 1 співавтор} other {Додано {count} співавторів}}", "@collaboratorsSuccessfullyAdded": { "placeholders": { "count": { @@ -1471,7 +1471,7 @@ }, "currentlyRunning": "зараз працює", "ignored": "ігнорується", - "photosCount": "{count, plural, one {} few {{count} фото} many {{count} фото}=0 {0 фото} =1 {1 фото} other {{count} фото}}", + "photosCount": "{count, plural, few {{count} фото} many {{count} фото}=0 {0 фото} =1 {1 фото} other {{count} фото}}", "@photosCount": { "placeholders": { "count": { From 0a3e1087ef17455a25c4026bccaf1582be946c39 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Tue, 28 Jan 2025 16:59:01 +0530 Subject: [PATCH 58/90] fix: only upload preview if video streaming enabled --- mobile/lib/utils/file_uploader.dart | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/mobile/lib/utils/file_uploader.dart b/mobile/lib/utils/file_uploader.dart index 3230c55acf6..4cc5bb05741 100644 --- a/mobile/lib/utils/file_uploader.dart +++ b/mobile/lib/utils/file_uploader.dart @@ -475,7 +475,7 @@ class FileUploader { void _uploadPreview(EnteFile file) { final collection = CollectionsService.instance.getCollectionByID(file.collectionID!); - if (collection?.displayName == "Camera") { + if (Platform.isIOS || collection?.displayName == "Camera") { unawaited( _previewVideoStore.chunkAndUploadVideo(null, file), ); @@ -749,7 +749,9 @@ class FileUploader { throw SyncStopRequestedError(); } - _uploadPreview(file); + if (PreviewVideoStore.instance.isVideoStreamingEnabled) { + _uploadPreview(file); + } EnteFile remoteFile; if (isUpdatedFile) { remoteFile = await _updateFile( From 7e1038a0f6b62118b6cca36132e6d404a408ce5f Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Tue, 28 Jan 2025 17:23:33 +0530 Subject: [PATCH 59/90] fix: add conditions for compression --- mobile/lib/services/preview_video_store.dart | 76 ++++++++++++++------ 1 file changed, 54 insertions(+), 22 deletions(-) diff --git a/mobile/lib/services/preview_video_store.dart b/mobile/lib/services/preview_video_store.dart index f9071bee494..bf874617b30 100644 --- a/mobile/lib/services/preview_video_store.dart +++ b/mobile/lib/services/preview_video_store.dart @@ -4,6 +4,7 @@ import "dart:io"; import "package:dio/dio.dart"; import "package:encrypt/encrypt.dart" as enc; import "package:ffmpeg_kit_flutter_full_gpl/ffmpeg_kit.dart"; +import "package:ffmpeg_kit_flutter_full_gpl/ffmpeg_session.dart"; import "package:ffmpeg_kit_flutter_full_gpl/return_code.dart"; import "package:flutter/foundation.dart"; // import "package:flutter/wid.dart"; @@ -17,9 +18,11 @@ import "package:photos/core/event_bus.dart"; import "package:photos/core/network/network.dart"; import "package:photos/events/video_streaming_changed.dart"; import "package:photos/models/base/id.dart"; +import "package:photos/models/ffmpeg/ffprobe_props.dart"; import "package:photos/models/file/file.dart"; import "package:photos/models/file/file_type.dart"; import "package:photos/services/filedata/filedata_service.dart"; +import "package:photos/utils/exif_util.dart"; import "package:photos/utils/file_key.dart"; import "package:photos/utils/file_util.dart"; import "package:photos/utils/gzip.dart"; @@ -50,7 +53,7 @@ class PreviewVideoStore { static const String _videoStreamingCutoff = "videoStreamingCutoff"; bool get isVideoStreamingEnabled { - return _prefs.getBool(_videoStreamingEnabled) ?? true; + return _prefs.getBool(_videoStreamingEnabled) ?? false; } Future setIsVideoStreamingEnabled(bool value) async { @@ -73,6 +76,7 @@ class PreviewVideoStore { if (!enteFile.isUploaded || !isVideoStreamingEnabled) return; final file = await getFile(enteFile, isOrigin: true); if (file == null) return; + try { // check if playlist already exist await getPlaylist(enteFile); @@ -90,10 +94,27 @@ class PreviewVideoStore { rethrow; } } + + final fileSize = file.lengthSync(); + FFProbeProps? props; + + if (fileSize <= 10 * 1024 * 1024) { + props = await getVideoPropsAsync(file); + final codec = props?.propData?["codec"].toString().toLowerCase(); + if (codec == "h264") { + return; + } + } if (isUploading) { files.add(enteFile); return; } + + props ??= await getVideoPropsAsync(file); + + final codec = props?.propData?["codec"]?.toString().toLowerCase(); + final bitrate = int.tryParse(props?.bitrate ?? ""); + final String tempDir = Configuration.instance.getTempDirectory(); final String prefix = "${tempDir}_${enteFile.uploadedFileID}_${newID("pv")}"; @@ -111,7 +132,38 @@ class PreviewVideoStore { 'Generating HLS Playlist ${enteFile.displayName} at $prefix/output.m3u8}', ); - final session = await FFmpegKit.execute( + FFmpegSession? session; + if (bitrate != null && bitrate <= 4000 * 1000 && codec == "h264") { + // create playlist without compression, as is + session = await FFmpegKit.execute( + '-i "${file.path}" ' + '-metadata:s:v:0 rotate=0 ' // Adjust metadata if needed + '-c:v copy ' // Copy the original video codec + '-c:a copy ' // Copy the original audio codec + '-f hls -hls_time 10 -hls_flags single_file ' + '-hls_list_size 0 -hls_key_info_file ${keyinfo.path} ' + '$prefix/output.m3u8', + ); + } else if (bitrate != null && + codec != null && + bitrate <= 2000 * 1000 && + codec != "h264") { + // compress video with crf=21, h264 no change in resolution or frame rate, + // just change color scheme + session = await FFmpegKit.execute( + '-i "${file.path}" ' + '-metadata:s:v:0 rotate=0 ' // Keep rotation metadata + '-vf "format=yuv420p10le,zscale=transfer=linear,tonemap=tonemap=hable:desat=0:peak=10,zscale=transfer=bt709:matrix=bt709:primaries=bt709,format=yuv420p" ' // Adjust color scheme + '-color_primaries bt709 -color_trc bt709 -colorspace bt709 ' // Set color profile to BT.709 + '-c:v libx264 -crf 21 -preset medium ' // Compress with CRF=21 using H.264 + '-c:a copy ' // Keep original audio + '-f hls -hls_time 10 -hls_flags single_file ' + '-hls_list_size 0 -hls_key_info_file ${keyinfo.path} ' + '$prefix/output.m3u8', + ); + } + + session ??= await FFmpegKit.execute( '-i "${file.path}" ' '-metadata:s:v:0 rotate=0 ' '-vf "scale=-2:720,fps=30,format=yuv420p10le,zscale=transfer=linear,tonemap=tonemap=hable:desat=0:peak=10,zscale=transfer=bt709:matrix=bt709:primaries=bt709,format=yuv420p" ' @@ -123,26 +175,6 @@ class PreviewVideoStore { '$prefix/output.m3u8', ); - // final session = await FFmpegKit.execute('-i "${file.path}" ' - // // Video encoding settings - // '-c:v libx264 ' // Use H.264 codec - // '-preset medium ' // Encoding speed preset - // '-crf 23 ' // Quality setting (lower = better quality, 23 is a good balance) - // '-profile:v main ' // H.264 profile for better compatibility - // '-level:v 4.0 ' // H.264 level for device compatibility - // '-vf scale=-2:720 ' // Scale to 720p while maintaining aspect ratio - // // Audio encoding settings - // '-c:a aac ' // Use AAC audio codec - // '-b:a 128k ' // Audio bitrate - // // HLS specific settings - // '-f hls ' - // '-hls_time 10 ' - // '-hls_flags single_file ' - // '-hls_list_size 0 ' - // '-hls_key_info_file ${keyinfo.path} ' - // // Output - // '$prefix/output.m3u8'); - final returnCode = await session.getReturnCode(); if (ReturnCode.isSuccess(returnCode)) { From c4f5265ff30e27dd3e0911be08c6e0490e54dc80 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Tue, 28 Jan 2025 17:25:57 +0530 Subject: [PATCH 60/90] fix: only play preview for non-local video & when streaming is enabled --- mobile/lib/ui/viewer/file/file_widget.dart | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mobile/lib/ui/viewer/file/file_widget.dart b/mobile/lib/ui/viewer/file/file_widget.dart index 8aa9158c3bd..156e322c3c9 100644 --- a/mobile/lib/ui/viewer/file/file_widget.dart +++ b/mobile/lib/ui/viewer/file/file_widget.dart @@ -2,8 +2,8 @@ import 'package:flutter/material.dart'; import 'package:logging/logging.dart'; import 'package:photos/models/file/file.dart'; import 'package:photos/models/file/file_type.dart'; -import "package:photos/service_locator.dart"; import "package:photos/services/filedata/filedata_service.dart"; +import "package:photos/services/preview_video_store.dart"; import "package:photos/ui/viewer/file/preview_video_widget.dart"; import "package:photos/ui/viewer/file/video_widget.dart"; import "package:photos/ui/viewer/file/zoomable_live_image_new.dart"; @@ -44,7 +44,8 @@ class FileWidget extends StatelessWidget { ); } else if (file.fileType == FileType.video) { if (file.isUploaded && - flagService.internalUser && + file.localID == null && + PreviewVideoStore.instance.isVideoStreamingEnabled && (FileDataService.instance.previewIds ?.containsKey(file.uploadedFileID!) ?? false)) { From f4d7bbae34a614f51ad3c8466ada699405134d25 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Tue, 28 Jan 2025 17:26:56 +0530 Subject: [PATCH 61/90] fix: enable video streaming for internal user --- mobile/lib/services/preview_video_store.dart | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mobile/lib/services/preview_video_store.dart b/mobile/lib/services/preview_video_store.dart index bf874617b30..5dcb8b05e17 100644 --- a/mobile/lib/services/preview_video_store.dart +++ b/mobile/lib/services/preview_video_store.dart @@ -21,6 +21,7 @@ import "package:photos/models/base/id.dart"; import "package:photos/models/ffmpeg/ffprobe_props.dart"; import "package:photos/models/file/file.dart"; import "package:photos/models/file/file_type.dart"; +import "package:photos/service_locator.dart"; import "package:photos/services/filedata/filedata_service.dart"; import "package:photos/utils/exif_util.dart"; import "package:photos/utils/file_key.dart"; @@ -53,7 +54,7 @@ class PreviewVideoStore { static const String _videoStreamingCutoff = "videoStreamingCutoff"; bool get isVideoStreamingEnabled { - return _prefs.getBool(_videoStreamingEnabled) ?? false; + return _prefs.getBool(_videoStreamingEnabled) ?? flagService.internalUser; } Future setIsVideoStreamingEnabled(bool value) async { From d6c58bc9cac93bc70afe3ffb723e8dc4061f7a81 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Wed, 29 Jan 2025 15:54:18 +0530 Subject: [PATCH 62/90] fix: add state for preview updates --- mobile/lib/events/preview_updated_event.dart | 10 +++ mobile/lib/models/preview/preview_item.dart | 61 +++++++++++++ .../models/preview/preview_item_status.dart | 8 ++ mobile/lib/services/preview_video_store.dart | 89 ++++++++++++++++--- 4 files changed, 154 insertions(+), 14 deletions(-) create mode 100644 mobile/lib/events/preview_updated_event.dart create mode 100644 mobile/lib/models/preview/preview_item.dart create mode 100644 mobile/lib/models/preview/preview_item_status.dart diff --git a/mobile/lib/events/preview_updated_event.dart b/mobile/lib/events/preview_updated_event.dart new file mode 100644 index 00000000000..8e9cb65aaaa --- /dev/null +++ b/mobile/lib/events/preview_updated_event.dart @@ -0,0 +1,10 @@ +import "dart:collection"; + +import "package:photos/events/event.dart"; +import "package:photos/models/preview/preview_item.dart"; + +class PreviewUpdatedEvent extends Event { + final LinkedHashMap items; + + PreviewUpdatedEvent(this.items); +} diff --git a/mobile/lib/models/preview/preview_item.dart b/mobile/lib/models/preview/preview_item.dart new file mode 100644 index 00000000000..5d9c2ca17ab --- /dev/null +++ b/mobile/lib/models/preview/preview_item.dart @@ -0,0 +1,61 @@ +import "dart:async"; + +import "package:photos/models/file/file.dart"; +import "package:photos/models/preview/preview_item_status.dart"; + +class PreviewItem { + final PreviewItemStatus status; + final EnteFile file; + final int collectionID; + final int retryCount; + final Object? error; + + PreviewItem({ + required this.status, + required this.file, + required this.collectionID, + this.retryCount = 0, + this.error, + }); + + PreviewItem copyWith({ + PreviewItemStatus? status, + EnteFile? file, + int? collectionID, + Completer? completer, + int? retryCount, + Object? error, + }) { + return PreviewItem( + status: status ?? this.status, + file: file ?? this.file, + collectionID: collectionID ?? this.collectionID, + retryCount: retryCount ?? this.retryCount, + error: error ?? this.error, + ); + } + + @override + String toString() { + return 'PreviewItem(status: $status, file: $file, retryCount: $retryCount, collectionID: $collectionID, error: $error)'; + } + + @override + bool operator ==(covariant PreviewItem other) { + if (identical(this, other)) return true; + + return other.status == status && + other.file == file && + other.retryCount == retryCount && + other.collectionID == collectionID && + other.error == error; + } + + @override + int get hashCode { + return status.hashCode ^ + retryCount.hashCode ^ + file.hashCode ^ + collectionID.hashCode; + } +} diff --git a/mobile/lib/models/preview/preview_item_status.dart b/mobile/lib/models/preview/preview_item_status.dart new file mode 100644 index 00000000000..5f99bc53560 --- /dev/null +++ b/mobile/lib/models/preview/preview_item_status.dart @@ -0,0 +1,8 @@ +enum PreviewItemStatus { + inQueue, + compressing, + uploading, + retry, + uploaded, + failed, +} diff --git a/mobile/lib/services/preview_video_store.dart b/mobile/lib/services/preview_video_store.dart index 5dcb8b05e17..7c04318d130 100644 --- a/mobile/lib/services/preview_video_store.dart +++ b/mobile/lib/services/preview_video_store.dart @@ -1,4 +1,5 @@ import "dart:async"; +import "dart:collection"; import "dart:io"; import "package:dio/dio.dart"; @@ -16,11 +17,14 @@ import "package:photos/core/cache/video_cache_manager.dart"; import "package:photos/core/configuration.dart"; import "package:photos/core/event_bus.dart"; import "package:photos/core/network/network.dart"; +import "package:photos/events/preview_updated_event.dart"; import "package:photos/events/video_streaming_changed.dart"; import "package:photos/models/base/id.dart"; import "package:photos/models/ffmpeg/ffprobe_props.dart"; import "package:photos/models/file/file.dart"; import "package:photos/models/file/file_type.dart"; +import "package:photos/models/preview/preview_item.dart"; +import "package:photos/models/preview/preview_item_status.dart"; import "package:photos/service_locator.dart"; import "package:photos/services/filedata/filedata_service.dart"; import "package:photos/utils/exif_util.dart"; @@ -31,6 +35,8 @@ import "package:photos/utils/toast_util.dart"; import "package:shared_preferences/shared_preferences.dart"; class PreviewVideoStore { + final LinkedHashMap _items = LinkedHashMap(); + PreviewVideoStore._privateConstructor(); static final PreviewVideoStore instance = @@ -40,7 +46,7 @@ class PreviewVideoStore { final cacheManager = DefaultCacheManager(); final videoCacheManager = VideoCacheManager.instance; - final files = {}; + LinkedHashSet files = LinkedHashSet(); bool isUploading = false; final _dio = NetworkClient.instance.enteDio; @@ -107,9 +113,21 @@ class PreviewVideoStore { } } if (isUploading) { + _items[enteFile.uploadedFileID!] = PreviewItem( + status: PreviewItemStatus.inQueue, + file: enteFile, + collectionID: enteFile.collectionID ?? 0, + ); + Bus.instance.fire(PreviewUpdatedEvent(_items)); files.add(enteFile); return; } + _items[enteFile.uploadedFileID!] = PreviewItem( + status: PreviewItemStatus.compressing, + file: enteFile, + collectionID: enteFile.collectionID ?? 0, + ); + Bus.instance.fire(PreviewUpdatedEvent(_items)); props ??= await getVideoPropsAsync(file); @@ -178,30 +196,72 @@ class PreviewVideoStore { final returnCode = await session.getReturnCode(); + String? error; + if (ReturnCode.isSuccess(returnCode)) { - _logger.info('Playlist Generated ${enteFile.displayName}'); - final playlistFile = File("$prefix/output.m3u8"); - final previewFile = File("$prefix/output.ts"); - final result = await _uploadPreviewVideo(enteFile, previewFile); - final String objectID = result.$1; - final objectSize = result.$2; - await _reportVideoPreview( - enteFile, - playlistFile, - objectID: objectID, - objectSize: objectSize, - ); - _logger.info("Video preview uploaded for $enteFile"); + try { + _items[enteFile.uploadedFileID!] = PreviewItem( + status: PreviewItemStatus.uploading, + file: enteFile, + collectionID: enteFile.collectionID ?? 0, + ); + Bus.instance.fire(PreviewUpdatedEvent(_items)); + + _logger.info('Playlist Generated ${enteFile.displayName}'); + final playlistFile = File("$prefix/output.m3u8"); + final previewFile = File("$prefix/output.ts"); + final result = await _uploadPreviewVideo(enteFile, previewFile); + final String objectID = result.$1; + final objectSize = result.$2; + await _reportVideoPreview( + enteFile, + playlistFile, + objectID: objectID, + objectSize: objectSize, + ); + _logger.info("Video preview uploaded for $enteFile"); + } catch (_) { + error = "Failed to upload video preview"; + } } else if (ReturnCode.isCancel(returnCode)) { _logger.warning("FFmpeg command cancelled"); + error = "FFmpeg command cancelled"; } else { _logger.severe("FFmpeg command failed with return code $returnCode"); if (kDebugMode) { final output = await session.getOutput(); _logger.severe(output); } + error = "Failed to generate video preview"; } + if (error == null) { + _items[enteFile.uploadedFileID!] = PreviewItem( + status: PreviewItemStatus.uploaded, + file: enteFile, + retryCount: _items[enteFile.uploadedFileID!]!.retryCount, + collectionID: enteFile.collectionID ?? 0, + ); + } else { + if (_items[enteFile.uploadedFileID!]!.retryCount < 3) { + _items[enteFile.uploadedFileID!] = PreviewItem( + status: PreviewItemStatus.retry, + file: enteFile, + retryCount: _items[enteFile.uploadedFileID!]!.retryCount + 1, + collectionID: enteFile.collectionID ?? 0, + ); + files.add(enteFile); + } else { + _items[enteFile.uploadedFileID!] = PreviewItem( + status: PreviewItemStatus.failed, + file: enteFile, + retryCount: _items[enteFile.uploadedFileID!]!.retryCount, + collectionID: enteFile.collectionID ?? 0, + ); + } + } + Bus.instance.fire(PreviewUpdatedEvent(_items)); + isUploading = false; if (files.isNotEmpty) { final file = files.first; @@ -239,6 +299,7 @@ class PreviewVideoStore { ); } catch (e, s) { _logger.severe("Failed to report video preview", e, s); + rethrow; } } From 094e08c387927b70fed7a9f526f28450e1b1c6b0 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Thu, 30 Jan 2025 21:52:20 +0530 Subject: [PATCH 63/90] fix: show preview status --- mobile/lib/services/preview_video_store.dart | 1 + mobile/lib/ui/home/status_bar_widget.dart | 33 +++++++++--- .../ui/settings/backup/backup_item_card.dart | 50 ++++++++++++++++--- .../settings/backup/backup_status_screen.dart | 3 ++ mobile/lib/ui/tabs/home_widget.dart | 4 +- 5 files changed, 75 insertions(+), 16 deletions(-) diff --git a/mobile/lib/services/preview_video_store.dart b/mobile/lib/services/preview_video_store.dart index 7c04318d130..5306f29976a 100644 --- a/mobile/lib/services/preview_video_store.dart +++ b/mobile/lib/services/preview_video_store.dart @@ -36,6 +36,7 @@ import "package:shared_preferences/shared_preferences.dart"; class PreviewVideoStore { final LinkedHashMap _items = LinkedHashMap(); + LinkedHashMap get previews => _items; PreviewVideoStore._privateConstructor(); diff --git a/mobile/lib/ui/home/status_bar_widget.dart b/mobile/lib/ui/home/status_bar_widget.dart index 258030f356e..067389e2ee2 100644 --- a/mobile/lib/ui/home/status_bar_widget.dart +++ b/mobile/lib/ui/home/status_bar_widget.dart @@ -6,9 +6,11 @@ import "package:logging/logging.dart"; import 'package:photos/core/event_bus.dart'; import 'package:photos/ente_theme_data.dart'; import 'package:photos/events/notification_event.dart'; +import "package:photos/events/preview_updated_event.dart"; import 'package:photos/events/sync_status_update_event.dart'; import "package:photos/generated/l10n.dart"; import "package:photos/service_locator.dart"; +import "package:photos/services/preview_video_store.dart"; import 'package:photos/services/sync_service.dart'; import "package:photos/services/user_remote_flag_service.dart"; import "package:photos/theme/ente_theme.dart"; @@ -32,9 +34,12 @@ class StatusBarWidget extends StatefulWidget { class _StatusBarWidgetState extends State { static final _logger = Logger("StatusBarWidget"); + var previewResult = PreviewVideoStore.instance.previews; late StreamSubscription _subscription; late StreamSubscription _notificationSubscription; + late StreamSubscription _previewSubscription; + bool _showStatus = false; bool _showErrorBanner = false; bool _showMlBanner = !userRemoteFlagService @@ -81,6 +86,11 @@ class _StatusBarWidgetState extends State { setState(() {}); } }); + + _previewSubscription = + Bus.instance.on().listen((event) { + previewResult = event.items; + }); super.initState(); } @@ -88,6 +98,8 @@ class _StatusBarWidgetState extends State { void dispose() { _subscription.cancel(); _notificationSubscription.cancel(); + _previewSubscription.cancel(); + super.dispose(); } @@ -96,10 +108,19 @@ class _StatusBarWidgetState extends State { return Column( children: [ HomeHeaderWidget( - centerWidget: _showStatus - ? _showErrorBanner - ? const Text("ente", style: brandStyleMedium) - : GestureDetector( + centerWidget: _showStatus && !_showErrorBanner + ? GestureDetector( + onTap: () { + routeToPage( + context, + const BackupStatusScreen(), + forceCustomPageRoute: true, + ).ignore(); + }, + child: const SyncStatusWidget(), + ) + : previewResult.isNotEmpty + ? GestureDetector( onTap: () { routeToPage( context, @@ -107,9 +128,9 @@ class _StatusBarWidgetState extends State { forceCustomPageRoute: true, ).ignore(); }, - child: const SyncStatusWidget(), + child: const Text("Processing Videos"), // TODO: i18n ) - : const Text("ente", style: brandStyleMedium), + : const Text("ente", style: brandStyleMedium), ), _showErrorBanner ? Divider( diff --git a/mobile/lib/ui/settings/backup/backup_item_card.dart b/mobile/lib/ui/settings/backup/backup_item_card.dart index 8b07ab8b68a..a445c2b7a28 100644 --- a/mobile/lib/ui/settings/backup/backup_item_card.dart +++ b/mobile/lib/ui/settings/backup/backup_item_card.dart @@ -3,6 +3,8 @@ import "dart:async"; import 'package:flutter/material.dart'; import "package:photos/models/backup/backup_item.dart"; import "package:photos/models/backup/backup_item_status.dart"; +import "package:photos/models/preview/preview_item.dart"; +import "package:photos/models/preview/preview_item_status.dart"; import 'package:photos/theme/ente_theme.dart'; import "package:photos/ui/viewer/file/thumbnail_widget.dart"; import "package:photos/utils/dialog_util.dart"; @@ -12,9 +14,11 @@ class BackupItemCard extends StatefulWidget { const BackupItemCard({ super.key, required this.item, + required this.preview, }); final BackupItem item; + final PreviewItem? preview; @override State createState() => _BackupItemCardState(); @@ -151,14 +155,44 @@ class _BackupItemCardState extends State { color: colorScheme.primary700, ), ), - BackupItemStatus.uploaded => const SizedBox( - width: 24, - height: 24, - child: Icon( - Icons.check, - color: Color(0xFF00B33C), - ), - ), + BackupItemStatus.uploaded => widget.preview != null && + widget.preview!.status != PreviewItemStatus.uploaded + ? switch (widget.preview!.status) { + PreviewItemStatus.compressing => const SizedBox( + width: 24, + height: 24, + child: Text("CQ"), + ), + PreviewItemStatus.uploading => const SizedBox( + width: 16, + height: 16, + child: Text("UQ"), + ), + PreviewItemStatus.failed => const SizedBox( + width: 24, + height: 24, + child: Text("FQ"), + ), + PreviewItemStatus.inQueue => const SizedBox( + width: 24, + height: 24, + child: Text("IQ"), + ), + PreviewItemStatus.retry => const SizedBox( + width: 24, + height: 24, + child: Text("RQ"), + ), + _ => const SizedBox() + } + : const SizedBox( + width: 24, + height: 24, + child: Icon( + Icons.check, + color: Color(0xFF00B33C), + ), + ), BackupItemStatus.inQueue => SizedBox( width: 24, height: 24, diff --git a/mobile/lib/ui/settings/backup/backup_status_screen.dart b/mobile/lib/ui/settings/backup/backup_status_screen.dart index d37f3f79bbd..e7727503038 100644 --- a/mobile/lib/ui/settings/backup/backup_status_screen.dart +++ b/mobile/lib/ui/settings/backup/backup_status_screen.dart @@ -10,6 +10,7 @@ import "package:photos/generated/l10n.dart"; import "package:photos/models/backup/backup_item.dart"; import "package:photos/models/backup/backup_item_status.dart"; import "package:photos/models/file/extensions/file_props.dart"; +import "package:photos/services/preview_video_store.dart"; import "package:photos/services/search_service.dart"; import "package:photos/ui/components/title_bar_widget.dart"; import "package:photos/ui/settings/backup/backup_item_card.dart"; @@ -25,6 +26,7 @@ class BackupStatusScreen extends StatefulWidget { class _BackupStatusScreenState extends State { LinkedHashMap items = FileUploader.instance.allBackups; List? result; + var previewResult = PreviewVideoStore.instance.previews; @override void initState() { @@ -145,6 +147,7 @@ class _BackupStatusScreenState extends State { return BackupItemCard( item: allItems[index], key: ValueKey(allItems[index].file.uploadedFileID), + preview: previewResult[allItems[index].file.uploadedFileID], ); }, itemCount: allItems.length, diff --git a/mobile/lib/ui/tabs/home_widget.dart b/mobile/lib/ui/tabs/home_widget.dart index e5054a57131..9660b95c98d 100644 --- a/mobile/lib/ui/tabs/home_widget.dart +++ b/mobile/lib/ui/tabs/home_widget.dart @@ -73,8 +73,8 @@ import 'package:uni_links/uni_links.dart'; class HomeWidget extends StatefulWidget { const HomeWidget({ - Key? key, - }) : super(key: key); + super.key, + }); @override State createState() => _HomeWidgetState(); From d625816eb3e899f99ba4fc30dcf3af40ef60033f Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Thu, 30 Jan 2025 22:12:29 +0530 Subject: [PATCH 64/90] fix: update code for backup status --- .../settings/backup/backup_status_screen.dart | 24 +++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/mobile/lib/ui/settings/backup/backup_status_screen.dart b/mobile/lib/ui/settings/backup/backup_status_screen.dart index e7727503038..ae44bea128c 100644 --- a/mobile/lib/ui/settings/backup/backup_status_screen.dart +++ b/mobile/lib/ui/settings/backup/backup_status_screen.dart @@ -1,4 +1,5 @@ // ignore_for_file: public_member_api_docs, sort_constructors_first +import "dart:async"; import "dart:collection"; import "package:collection/collection.dart"; @@ -6,6 +7,7 @@ import 'package:flutter/material.dart'; import "package:photos/core/event_bus.dart"; import "package:photos/events/backup_updated_event.dart"; import "package:photos/events/file_uploaded_event.dart"; +import "package:photos/events/preview_updated_event.dart"; import "package:photos/generated/l10n.dart"; import "package:photos/models/backup/backup_item.dart"; import "package:photos/models/backup/backup_item_status.dart"; @@ -27,6 +29,9 @@ class _BackupStatusScreenState extends State { LinkedHashMap items = FileUploader.instance.allBackups; List? result; var previewResult = PreviewVideoStore.instance.previews; + StreamSubscription? _fileUploadedSubscription; + StreamSubscription? _backupUpdatedSubscription; + StreamSubscription? _previewUpdatedSubscription; @override void initState() { @@ -55,7 +60,8 @@ class _BackupStatusScreenState extends State { (a, b) => (b.file.uploadedFileID!).compareTo(a.file.uploadedFileID!), ) .toList(); - Bus.instance.on().listen((event) { + _fileUploadedSubscription = + Bus.instance.on().listen((event) { result!.insert( 0, BackupItem( @@ -71,10 +77,16 @@ class _BackupStatusScreenState extends State { } void checkBackupUpdatedEvent() { - Bus.instance.on().listen((event) { + _backupUpdatedSubscription = + Bus.instance.on().listen((event) { items = event.items; safeSetState(); }); + _previewUpdatedSubscription = + Bus.instance.on().listen((event) { + previewResult = event.items; + safeSetState(); + }); } void safeSetState() { @@ -83,6 +95,14 @@ class _BackupStatusScreenState extends State { } } + @override + void dispose() { + _fileUploadedSubscription?.cancel(); + _backupUpdatedSubscription?.cancel(); + _previewUpdatedSubscription?.cancel(); + super.dispose(); + } + @override Widget build(BuildContext context) { final List items = this.items.values.toList().sorted( From 18ca1545783f5c86b34a9bd01898c58d0ae802f7 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Fri, 31 Jan 2025 02:59:59 +0530 Subject: [PATCH 65/90] fix: preview video state & similar controls --- .../models/preview/preview_item_status.dart | 8 +- .../ui/viewer/file/preview_status_widget.dart | 162 +++++++ .../ui/viewer/file/preview_video_widget.dart | 2 +- mobile/lib/ui/viewer/file/video_control.dart | 416 +++++++++++++----- .../file/video_widget_media_kit_new.dart | 10 + .../ui/viewer/file/video_widget_native.dart | 10 + mobile/lib/utils/file_uploader.dart | 6 +- 7 files changed, 490 insertions(+), 124 deletions(-) create mode 100644 mobile/lib/ui/viewer/file/preview_status_widget.dart diff --git a/mobile/lib/models/preview/preview_item_status.dart b/mobile/lib/models/preview/preview_item_status.dart index 5f99bc53560..507dd213ee4 100644 --- a/mobile/lib/models/preview/preview_item_status.dart +++ b/mobile/lib/models/preview/preview_item_status.dart @@ -1,8 +1,12 @@ enum PreviewItemStatus { + // queued inQueue, + retry, + // in progress compressing, uploading, - retry, - uploaded, + // error failed, + // done + uploaded, } diff --git a/mobile/lib/ui/viewer/file/preview_status_widget.dart b/mobile/lib/ui/viewer/file/preview_status_widget.dart new file mode 100644 index 00000000000..e292154d656 --- /dev/null +++ b/mobile/lib/ui/viewer/file/preview_status_widget.dart @@ -0,0 +1,162 @@ +import "dart:async"; + +import "package:flutter/material.dart"; +import "package:photos/core/event_bus.dart"; +import "package:photos/events/preview_updated_event.dart"; +import "package:photos/models/file/file.dart"; +import "package:photos/models/preview/preview_item.dart"; +import "package:photos/models/preview/preview_item_status.dart"; +import "package:photos/services/filedata/filedata_service.dart"; +import "package:photos/services/preview_video_store.dart"; +import "package:photos/theme/colors.dart"; + +class PreviewStatusWidget extends StatefulWidget { + const PreviewStatusWidget({ + super.key, + required bool showControls, + required this.file, + this.isPreviewPlayer = false, + }) : _showControls = showControls; + + final bool _showControls; + final EnteFile file; + final bool isPreviewPlayer; + + @override + State createState() => _PreviewStatusWidgetState(); +} + +class _PreviewStatusWidgetState extends State { + StreamSubscription? previewSubscription; + late PreviewItem? preview = + PreviewVideoStore.instance.previews[widget.file.uploadedFileID]; + late bool isVideoStreamingEnabled; + + @override + void initState() { + super.initState(); + + isVideoStreamingEnabled = + PreviewVideoStore.instance.isVideoStreamingEnabled; + if (!isVideoStreamingEnabled) { + return; + } + previewSubscription = + Bus.instance.on().listen((event) { + final newPreview = event.items[widget.file.uploadedFileID]; + if (newPreview != preview) { + setState(() { + preview = event.items[widget.file.uploadedFileID]; + }); + } + }); + } + + @override + void dispose() { + previewSubscription?.cancel(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + if (!isVideoStreamingEnabled) { + return const SizedBox(); + } + final bool isPreviewAvailable = FileDataService.instance.previewIds + ?.containsKey(widget.file.uploadedFileID!) ?? + false; + + if (isPreviewAvailable && widget.file.localID != null) { + return const SizedBox(); + } + final isInProgress = preview?.status == PreviewItemStatus.compressing || + preview?.status == PreviewItemStatus.uploading; + final isInQueue = preview?.status == PreviewItemStatus.inQueue || + preview?.status == PreviewItemStatus.retry; + final isFailed = preview?.status == PreviewItemStatus.failed; + + return Align( + alignment: Alignment.centerRight, + child: AnimatedOpacity( + duration: const Duration( + milliseconds: 200, + ), + curve: Curves.easeInQuad, + opacity: widget._showControls ? 1 : 0, + child: Padding( + padding: const EdgeInsets.only( + right: 10, + bottom: 4, + ), + child: Container( + padding: const EdgeInsets.symmetric( + horizontal: 8, + vertical: 4, + ), + decoration: BoxDecoration( + color: isPreviewAvailable ? Colors.green : null, + borderRadius: const BorderRadius.all( + Radius.circular(200), + ), + border: isPreviewAvailable + ? null + : Border.all( + color: strokeFaintDark, + width: 1, + ), + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.end, + mainAxisSize: MainAxisSize.min, + children: [ + !isInProgress + ? Icon( + !isPreviewAvailable + ? isInQueue + ? Icons.history_outlined + : !isFailed + ? Icons.block_outlined + : Icons.error_outline + : Icons.play_arrow, + size: 16, + ) + : const SizedBox( + width: 12, + height: 12, + child: CircularProgressIndicator( + valueColor: AlwaysStoppedAnimation( + Colors.white, + ), + backgroundColor: Colors.transparent, + strokeWidth: 2, + ), + ), + SizedBox( + width: !isInProgress || isPreviewAvailable ? 2 : 6, + ), + Text( + !isPreviewAvailable + ? isInProgress + ? "Processing" + : isInQueue + ? "Queued" + : !isFailed + ? "Ineligible" + : "Failed" + : widget.isPreviewPlayer + ? "Play original" + : "Play stream", + style: const TextStyle( + fontSize: 12, + fontWeight: FontWeight.w600, + ), + ), + ], + ), + ), + ), + ), + ); + } +} diff --git a/mobile/lib/ui/viewer/file/preview_video_widget.dart b/mobile/lib/ui/viewer/file/preview_video_widget.dart index f1dfe8e7f2d..fa8d4875269 100644 --- a/mobile/lib/ui/viewer/file/preview_video_widget.dart +++ b/mobile/lib/ui/viewer/file/preview_video_widget.dart @@ -247,7 +247,7 @@ class _PreviewVideoWidgetState extends State { looping: true, allowMuting: true, allowFullScreen: false, - customControls: const VideoControls(), + customControls: VideoControls(file: widget.file), ); return Container( color: Colors.black, diff --git a/mobile/lib/ui/viewer/file/video_control.dart b/mobile/lib/ui/viewer/file/video_control.dart index 3ce9b66e847..51c68d08cb0 100644 --- a/mobile/lib/ui/viewer/file/video_control.dart +++ b/mobile/lib/ui/viewer/file/video_control.dart @@ -1,14 +1,21 @@ import 'dart:async'; import 'package:chewie/chewie.dart'; -import 'package:chewie/src/material/material_progress_bar.dart'; import 'package:flutter/material.dart'; -import 'package:photos/ente_theme_data.dart'; -import 'package:photos/utils/date_time_util.dart'; +import "package:photos/models/file/file.dart"; +import "package:photos/theme/colors.dart"; +import "package:photos/theme/ente_theme.dart"; +import "package:photos/ui/common/loading_widget.dart"; +import "package:photos/ui/viewer/file/preview_status_widget.dart"; +import "package:photos/utils/debouncer.dart"; import 'package:video_player/video_player.dart'; class VideoControls extends StatefulWidget { - const VideoControls({Key? key}) : super(key: key); + const VideoControls({ + super.key, + required this.file, + }); + final EnteFile file; @override State createState() { @@ -58,20 +65,39 @@ class _VideoControlsState extends State { absorbing: _hideStuff, child: Stack( children: [ - Column( - children: [ - _latestValue != null && - !_latestValue!.isPlaying && - _latestValue!.isBuffering - ? const Center( - child: CircularProgressIndicator(), - ) - : _buildHitArea(), - ], - ), + if (_latestValue != null && + !_latestValue!.isPlaying && + _latestValue!.isBuffering) + const Align( + alignment: Alignment.center, + child: Center( + child: EnteLoadingWidget( + size: 32, + color: fillBaseDark, + padding: 0, + ), + ), + ) + else + Positioned.fill(child: _buildHitArea()), Align( alignment: Alignment.bottomCenter, - child: _buildBottomBar(context), + child: SafeArea( + top: false, + left: false, + right: false, + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + PreviewStatusWidget( + showControls: !_hideStuff, + file: widget.file, + isPreviewPlayer: true, + ), + _buildBottomBar(context), + ], + ), + ), ), ], ), @@ -110,100 +136,53 @@ class _VideoControlsState extends State { Widget _buildBottomBar( BuildContext context, ) { - final iconColor = Theme.of(context).textTheme.labelLarge!.color; - return Container( padding: const EdgeInsets.only(bottom: 60), + height: 100, child: AnimatedOpacity( opacity: _hideStuff ? 0.0 : 1.0, duration: const Duration(milliseconds: 300), - child: Container( - height: barHeight, - color: Colors.transparent, - child: Row( - children: [ - _buildCurrentPosition(iconColor), - chewieController!.isLive ? const SizedBox() : _buildProgressBar(), - _buildTotalDuration(iconColor), - ], - ), + child: _SeekBarAndDuration( + controller: controller, + latestValue: _latestValue, + updateDragging: (bool value) { + setState(() { + _dragging = value; + }); + }, ), ), ); } - Expanded _buildHitArea() { - return Expanded( - child: GestureDetector( - onTap: () { - if (_latestValue != null) { - if (_displayTapped) { - setState(() { - _hideStuff = true; - }); - } else { - _cancelAndRestartTimer(); - } - } else { - _playPause(); - + Widget _buildHitArea() { + return GestureDetector( + onTap: () { + if (_latestValue != null) { + if (_displayTapped) { setState(() { - _hideStuff = true; + _hideStuff = !_hideStuff; }); + } else { + _cancelAndRestartTimer(); } - }, - child: Container( - color: Colors.transparent, - child: Center( - child: AnimatedOpacity( - opacity: - _latestValue != null && !_hideStuff && !_dragging ? 1.0 : 0.0, - duration: const Duration(milliseconds: 300), - child: GestureDetector( - onTap: _playPause, - child: Padding( - padding: const EdgeInsets.all(12.0), - child: Icon( - _latestValue!.isPlaying ? Icons.pause : Icons.play_arrow, - color: Colors.white, // same for both themes - size: 64.0, - ), - ), - ), - ), - ), - ), - ), - ); - } - - Widget _buildCurrentPosition(Color? iconColor) { - final position = - _latestValue != null ? _latestValue!.position : Duration.zero; - - return Container( - margin: const EdgeInsets.only(left: 20.0, right: 16.0), - child: Text( - formatDuration(position), - style: const TextStyle( - fontSize: 12.0, - color: Colors.white, - ), - ), - ); - } - - Widget _buildTotalDuration(Color? iconColor) { - final duration = - _latestValue != null ? _latestValue!.duration : Duration.zero; + } else { + _playPause(); - return Padding( - padding: const EdgeInsets.only(right: 20.0), - child: Text( - formatDuration(duration), - style: const TextStyle( - fontSize: 12.0, - color: Colors.white, + setState(() { + _hideStuff = true; + }); + } + }, + behavior: HitTestBehavior.opaque, + child: AnimatedOpacity( + opacity: _latestValue != null && !_hideStuff && !_dragging ? 1.0 : 0.0, + duration: const Duration(milliseconds: 300), + child: Center( + child: _PlayPauseButton( + _playPause, + _latestValue!.isPlaying, + ), ), ), ); @@ -275,34 +254,235 @@ class _VideoControlsState extends State { _latestValue = controller.value; }); } +} - Widget _buildProgressBar() { - return Expanded( - child: Padding( - padding: const EdgeInsets.only(right: 16.0), - child: MaterialVideoProgressBar( - controller, - onDragStart: () { - setState(() { - _dragging = true; - }); +class _SeekBarAndDuration extends StatelessWidget { + final VideoPlayerController? controller; + final VideoPlayerValue? latestValue; + final Function(bool) updateDragging; - _hideTimer?.cancel(); - }, - onDragEnd: () { + const _SeekBarAndDuration({ + required this.controller, + required this.latestValue, + required this.updateDragging, + }); + + @override + Widget build(BuildContext context) { + return Padding( + padding: const EdgeInsets.symmetric( + horizontal: 8, + ), + child: Container( + padding: const EdgeInsets.fromLTRB( + 16, + 4, + 16, + 4, + ), + decoration: BoxDecoration( + color: Colors.black.withOpacity(0.3), + borderRadius: const BorderRadius.all( + Radius.circular(8), + ), + border: Border.all( + color: strokeFaintDark, + width: 1, + ), + ), + child: Row( + children: [ + if (latestValue?.position == null) + Text( + "0:00", + style: getEnteTextTheme( + context, + ).mini.copyWith( + color: textBaseDark, + ), + ) + else + Text( + _secondsToDuration(latestValue!.position.inSeconds), + style: getEnteTextTheme( + context, + ).mini.copyWith( + color: textBaseDark, + ), + ), + Expanded( + child: _SeekBar(controller!, updateDragging), + ), + Text( + _secondsToDuration( + latestValue?.duration.inSeconds ?? 0, + ), + style: getEnteTextTheme( + context, + ).mini.copyWith( + color: textBaseDark, + ), + ), + ], + ), + ), + ); + } + + /// Returns the duration in the format "h:mm:ss" or "m:ss". + String _secondsToDuration(int totalSeconds) { + final hours = totalSeconds ~/ 3600; + final minutes = (totalSeconds % 3600) ~/ 60; + final seconds = totalSeconds % 60; + + if (hours > 0) { + return '${hours.toString().padLeft(1, '0')}:${minutes.toString().padLeft(2, '0')}:${seconds.toString().padLeft(2, '0')}'; + } else { + return '${minutes.toString().padLeft(1, '0')}:${seconds.toString().padLeft(2, '0')}'; + } + } +} + +class _SeekBar extends StatefulWidget { + final VideoPlayerController controller; + final Function(bool) updateDragging; + const _SeekBar( + this.controller, + this.updateDragging, + ); + + @override + State<_SeekBar> createState() => _SeekBarState(); +} + +class _SeekBarState extends State<_SeekBar> { + double _sliderValue = 0.0; + final _debouncer = Debouncer( + const Duration(milliseconds: 300), + executionInterval: const Duration(milliseconds: 300), + ); + bool _controllerWasPlaying = false; + + @override + void initState() { + super.initState(); + widget.controller.addListener(updateSlider); + } + + void updateSlider() { + if (widget.controller.value.isInitialized) { + setState(() { + _sliderValue = widget.controller.value.position.inSeconds.toDouble(); + }); + } + } + + @override + void dispose() { + _debouncer.cancelDebounceTimer(); + widget.controller.removeListener(updateSlider); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + final colorScheme = getEnteColorScheme(context); + return SliderTheme( + data: SliderTheme.of(context).copyWith( + trackHeight: 1.0, + thumbShape: const RoundSliderThumbShape(enabledThumbRadius: 8.0), + overlayShape: const RoundSliderOverlayShape(overlayRadius: 14.0), + activeTrackColor: colorScheme.primary300, + inactiveTrackColor: fillMutedDark, + thumbColor: backgroundElevatedLight, + overlayColor: fillMutedDark, + ), + child: Slider( + min: 0.0, + max: widget.controller.value.duration.inSeconds.toDouble(), + value: _sliderValue, + onChangeStart: (value) async { + widget.updateDragging(true); + _controllerWasPlaying = widget.controller.value.isPlaying; + if (_controllerWasPlaying) { + await widget.controller.pause(); + } + }, + onChanged: (value) { + if (mounted) { setState(() { - _dragging = false; + _sliderValue = value; }); + } + + _debouncer.run(() async { + await widget.controller.seekTo(Duration(seconds: value.toInt())); + }); + }, + divisions: 4500, + onChangeEnd: (value) async { + await widget.controller.seekTo(Duration(seconds: value.toInt())); + + if (_controllerWasPlaying) { + await widget.controller.play(); + } + widget.updateDragging(false); + }, + allowedInteraction: SliderInteraction.tapAndSlide, + ), + ); + } +} - _startHideTimer(); +class _PlayPauseButton extends StatefulWidget { + final void Function() playPause; + final bool isPlaying; + const _PlayPauseButton( + this.playPause, + this.isPlaying, + ); + + @override + State<_PlayPauseButton> createState() => _PlayPauseButtonState(); +} + +class _PlayPauseButtonState extends State<_PlayPauseButton> { + @override + Widget build(BuildContext context) { + return Container( + width: 54, + height: 54, + decoration: BoxDecoration( + color: Colors.black.withOpacity(0.3), + shape: BoxShape.circle, + border: Border.all( + color: strokeFaintDark, + width: 1, + ), + ), + child: GestureDetector( + behavior: HitTestBehavior.opaque, + onTap: widget.playPause, + child: AnimatedSwitcher( + duration: const Duration(milliseconds: 250), + transitionBuilder: (Widget child, Animation animation) { + return ScaleTransition(scale: animation, child: child); }, - colors: chewieController!.materialProgressColors ?? - ChewieProgressColors( - playedColor: Theme.of(context).colorScheme.greenAlternative, - handleColor: Colors.white, - bufferedColor: Colors.white, - backgroundColor: Theme.of(context).disabledColor, - ), + switchInCurve: Curves.easeInOutQuart, + switchOutCurve: Curves.easeInOutQuart, + child: widget.isPlaying + ? const Icon( + Icons.pause, + size: 32, + key: ValueKey("pause"), + color: Colors.white, + ) + : const Icon( + Icons.play_arrow, + size: 36, + key: ValueKey("play"), + color: Colors.white, + ), ), ), ); diff --git a/mobile/lib/ui/viewer/file/video_widget_media_kit_new.dart b/mobile/lib/ui/viewer/file/video_widget_media_kit_new.dart index cf71cd66a91..5bddea1753a 100644 --- a/mobile/lib/ui/viewer/file/video_widget_media_kit_new.dart +++ b/mobile/lib/ui/viewer/file/video_widget_media_kit_new.dart @@ -16,6 +16,7 @@ import "package:photos/services/files_service.dart"; import "package:photos/theme/colors.dart"; import "package:photos/theme/ente_theme.dart"; import "package:photos/ui/actions/file/file_actions.dart"; +import "package:photos/ui/viewer/file/preview_status_widget.dart"; import "package:photos/utils/debouncer.dart"; import "package:photos/utils/dialog_util.dart"; import "package:photos/utils/file_util.dart"; @@ -361,6 +362,15 @@ class __VideoWidgetState extends State<_VideoWidget> { ), ) : const SizedBox.shrink(), + ValueListenableBuilder( + valueListenable: showControlsNotifier, + builder: (context, value, _) { + return PreviewStatusWidget( + showControls: value, + file: widget.file, + ); + }, + ), _SeekBarAndDuration( controller: widget.controller, isSeekingNotifier: _isSeekingNotifier, diff --git a/mobile/lib/ui/viewer/file/video_widget_native.dart b/mobile/lib/ui/viewer/file/video_widget_native.dart index a788bb33981..e41c99e01d9 100644 --- a/mobile/lib/ui/viewer/file/video_widget_native.dart +++ b/mobile/lib/ui/viewer/file/video_widget_native.dart @@ -22,6 +22,7 @@ import "package:photos/ui/actions/file/file_actions.dart"; import "package:photos/ui/common/loading_widget.dart"; import "package:photos/ui/viewer/file/native_video_player_controls/play_pause_button.dart"; import "package:photos/ui/viewer/file/native_video_player_controls/seek_bar.dart"; +import "package:photos/ui/viewer/file/preview_status_widget.dart"; import "package:photos/ui/viewer/file/thumbnail_widget.dart"; import "package:photos/utils/debouncer.dart"; import "package:photos/utils/dialog_util.dart"; @@ -276,6 +277,15 @@ class _VideoWidgetNativeState extends State child: Column( crossAxisAlignment: CrossAxisAlignment.center, children: [ + ValueListenableBuilder( + valueListenable: _showControls, + builder: (context, value, _) { + return PreviewStatusWidget( + showControls: value, + file: widget.file, + ); + }, + ), _VideoDescriptionAndSwitchToMediaKitButton( file: widget.file, showControls: _showControls, diff --git a/mobile/lib/utils/file_uploader.dart b/mobile/lib/utils/file_uploader.dart index 4cc5bb05741..82e5a74b877 100644 --- a/mobile/lib/utils/file_uploader.dart +++ b/mobile/lib/utils/file_uploader.dart @@ -749,9 +749,6 @@ class FileUploader { throw SyncStopRequestedError(); } - if (PreviewVideoStore.instance.isVideoStreamingEnabled) { - _uploadPreview(file); - } EnteFile remoteFile; if (isUpdatedFile) { remoteFile = await _updateFile( @@ -821,6 +818,9 @@ class FileUploader { } await FilesDB.instance.update(remoteFile); } + if (PreviewVideoStore.instance.isVideoStreamingEnabled) { + _uploadPreview(file); + } await UploadLocksDB.instance.deleteMultipartTrack(lockKey); if (!_isBackground) { From f7896d5a8260a10703eddc2af8053b4f2e9f4c8a Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Fri, 31 Jan 2025 03:16:33 +0530 Subject: [PATCH 66/90] fix: only show size for internal user --- .../ui/viewer/file/preview_video_widget.dart | 24 ++++++++++--------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/mobile/lib/ui/viewer/file/preview_video_widget.dart b/mobile/lib/ui/viewer/file/preview_video_widget.dart index fa8d4875269..9ad9c35b9b9 100644 --- a/mobile/lib/ui/viewer/file/preview_video_widget.dart +++ b/mobile/lib/ui/viewer/file/preview_video_widget.dart @@ -89,17 +89,19 @@ class _PreviewVideoWidgetState extends State { }); if (!mounted) return; if (file != null) { - final d = - FileDataService.instance.previewIds![widget.file.uploadedFileID!]; - if (d != null && widget.file.fileSize != null) { - // show toast with human readable size - final size = formatBytes(widget.file.fileSize!); - showToast( - context, - "Preview OG Size ($size), previewSize: ${formatBytes(d.objectSize)}", - ); - } else { - showShortToast(context, "Playing preview"); + if (flagService.internalUser) { + final d = + FileDataService.instance.previewIds![widget.file.uploadedFileID!]; + if (d != null && widget.file.fileSize != null) { + // show toast with human readable size + final size = formatBytes(widget.file.fileSize!); + showToast( + context, + "Preview OG Size ($size), previewSize: ${formatBytes(d.objectSize)}", + ); + } else { + showShortToast(context, "Playing preview"); + } } previewFile = file; _setVideoPlayerController(); From 548955a803113763fb1ecbe7e27ce4f99bac5309 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Fri, 31 Jan 2025 03:45:55 +0530 Subject: [PATCH 67/90] fix: add to queue based on cutoff date --- mobile/lib/db/files_db.dart | 14 +++++++++ mobile/lib/main.dart | 1 + mobile/lib/models/metadata/file_magic.dart | 14 +++++++++ mobile/lib/services/preview_video_store.dart | 31 ++++++++++++++++++++ 4 files changed, 60 insertions(+) diff --git a/mobile/lib/db/files_db.dart b/mobile/lib/db/files_db.dart index 58b231bcef0..7edb10696a3 100644 --- a/mobile/lib/db/files_db.dart +++ b/mobile/lib/db/files_db.dart @@ -1730,6 +1730,20 @@ class FilesDB { ); } + Future> getAllFilesAfterDate({ + required FileType fileType, + required DateTime beginDate, + }) async { + final db = await instance.sqliteAsyncDB; + final results = await db.getAll( + ''' + SELECT * FROM $filesTable WHERE $columnFileType = ? AND $columnCreationTime > ? + ''', + [getInt(fileType), beginDate.millisecondsSinceEpoch], + ); + return convertToFiles(results); + } + Future> getAllFilesFromDB( Set collectionsToIgnore, { bool dedupeByUploadId = true, diff --git a/mobile/lib/main.dart b/mobile/lib/main.dart index 70deb70cd74..9efc312fc5b 100644 --- a/mobile/lib/main.dart +++ b/mobile/lib/main.dart @@ -287,6 +287,7 @@ Future _init(bool isBackground, {String via = ''}) async { } _logger.info("PushService/HomeWidget done $tlog"); PreviewVideoStore.instance.init(preferences); + PreviewVideoStore.instance.putFilesForPreviewCreation().ignore(); unawaited(SemanticSearchService.instance.init()); unawaited(MLService.instance.init()); await PersonService.init( diff --git a/mobile/lib/models/metadata/file_magic.dart b/mobile/lib/models/metadata/file_magic.dart index 7599b7c82f3..acbeb4b4ed3 100644 --- a/mobile/lib/models/metadata/file_magic.dart +++ b/mobile/lib/models/metadata/file_magic.dart @@ -14,6 +14,9 @@ const latKey = "lat"; const longKey = "long"; const motionVideoIndexKey = "mvi"; const noThumbKey = "noThumb"; +const previewWidthKey = "previewWidth"; +const previewHeightKey = "previewHeight"; +const previewSizeKey = "previewSize"; class MagicMetadata { // 0 -> visible @@ -62,6 +65,11 @@ class PubMagicMetadata { // 1 -> panorama int? mediaType; + // preview related metadata for videos + int? previewWidth; + int? previewHeight; + int? previewSize; + PubMagicMetadata({ this.editedTime, this.editedName, @@ -74,6 +82,9 @@ class PubMagicMetadata { this.mvi, this.noThumb, this.mediaType, + this.previewWidth, + this.previewHeight, + this.previewSize, }); factory PubMagicMetadata.fromEncodedJson(String encodedJson) => @@ -96,6 +107,9 @@ class PubMagicMetadata { mvi: map[motionVideoIndexKey], noThumb: map[noThumbKey], mediaType: map[mediaTypeKey], + previewWidth: map[previewWidthKey], + previewHeight: map[previewHeightKey], + previewSize: map[previewSizeKey], ); } diff --git a/mobile/lib/services/preview_video_store.dart b/mobile/lib/services/preview_video_store.dart index 5306f29976a..3e2247bdd4a 100644 --- a/mobile/lib/services/preview_video_store.dart +++ b/mobile/lib/services/preview_video_store.dart @@ -17,6 +17,7 @@ import "package:photos/core/cache/video_cache_manager.dart"; import "package:photos/core/configuration.dart"; import "package:photos/core/event_bus.dart"; import "package:photos/core/network/network.dart"; +import 'package:photos/db/files_db.dart'; import "package:photos/events/preview_updated_event.dart"; import "package:photos/events/video_streaming_changed.dart"; import "package:photos/models/base/id.dart"; @@ -72,6 +73,14 @@ class PreviewVideoStore { oneMonthBack.millisecondsSinceEpoch, ); Bus.instance.fire(VideoStreamingChanged()); + + if (isVideoStreamingEnabled) { + await putFilesForPreviewCreation(); + } else { + _items.clear(); + Bus.instance.fire(PreviewUpdatedEvent(_items)); + files.clear(); + } } Future get videoStreamingCutoff async { @@ -445,4 +454,26 @@ class PreviewVideoStore { rethrow; } } + + // get all files after cutoff date and add it to queue for preview creation + // only run when video streaming is enabled + Future putFilesForPreviewCreation() async { + if (!isVideoStreamingEnabled) return; + + final cutoff = await videoStreamingCutoff; + if (cutoff == null) return; + final files = await FilesDB.instance.getAllFilesAfterDate( + fileType: FileType.video, + beginDate: cutoff, + ); + final previewIds = FileDataService.instance.previewIds; + final allFiles = files.where((file) { + return previewIds?[file.uploadedFileID!] == null; + }).toList(); + final file = allFiles.first; + allFiles.remove(file); + + this.files.addAll(allFiles); + await chunkAndUploadVideo(null, file); + } } From 226830acaa6d224d5bcf881ea5ffd1361e6d1709 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Fri, 31 Jan 2025 03:48:37 +0530 Subject: [PATCH 68/90] chore: bump version --- mobile/pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mobile/pubspec.yaml b/mobile/pubspec.yaml index 246cb760c7f..d73f91bc637 100644 --- a/mobile/pubspec.yaml +++ b/mobile/pubspec.yaml @@ -12,7 +12,7 @@ description: ente photos application # Read more about iOS versioning at # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html -version: 0.9.88+988 +version: 0.9.89+989 publish_to: none environment: From e7a53f87ca77d05f77130e519307ce463f81726d Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Fri, 31 Jan 2025 14:37:37 +0530 Subject: [PATCH 69/90] fix: disable it by default --- mobile/lib/services/preview_video_store.dart | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/mobile/lib/services/preview_video_store.dart b/mobile/lib/services/preview_video_store.dart index 3e2247bdd4a..a9a95f28b11 100644 --- a/mobile/lib/services/preview_video_store.dart +++ b/mobile/lib/services/preview_video_store.dart @@ -26,7 +26,6 @@ import "package:photos/models/file/file.dart"; import "package:photos/models/file/file_type.dart"; import "package:photos/models/preview/preview_item.dart"; import "package:photos/models/preview/preview_item_status.dart"; -import "package:photos/service_locator.dart"; import "package:photos/services/filedata/filedata_service.dart"; import "package:photos/utils/exif_util.dart"; import "package:photos/utils/file_key.dart"; @@ -62,7 +61,7 @@ class PreviewVideoStore { static const String _videoStreamingCutoff = "videoStreamingCutoff"; bool get isVideoStreamingEnabled { - return _prefs.getBool(_videoStreamingEnabled) ?? flagService.internalUser; + return _prefs.getBool(_videoStreamingEnabled) ?? false; } Future setIsVideoStreamingEnabled(bool value) async { From 662cb8135ee6aded03a0293e676244052dd91532 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Fri, 31 Jan 2025 14:44:08 +0530 Subject: [PATCH 70/90] fix: cutoff logic for video player --- mobile/lib/services/preview_video_store.dart | 2 +- .../ui/viewer/file/preview_status_widget.dart | 50 ++++++++++++------- 2 files changed, 32 insertions(+), 20 deletions(-) diff --git a/mobile/lib/services/preview_video_store.dart b/mobile/lib/services/preview_video_store.dart index a9a95f28b11..12b29bb7a19 100644 --- a/mobile/lib/services/preview_video_store.dart +++ b/mobile/lib/services/preview_video_store.dart @@ -82,7 +82,7 @@ class PreviewVideoStore { } } - Future get videoStreamingCutoff async { + DateTime? get videoStreamingCutoff { final milliseconds = _prefs.getInt(_videoStreamingCutoff); if (milliseconds == null) return null; return DateTime.fromMillisecondsSinceEpoch(milliseconds); diff --git a/mobile/lib/ui/viewer/file/preview_status_widget.dart b/mobile/lib/ui/viewer/file/preview_status_widget.dart index e292154d656..00cd9f7f8e8 100644 --- a/mobile/lib/ui/viewer/file/preview_status_widget.dart +++ b/mobile/lib/ui/viewer/file/preview_status_widget.dart @@ -67,7 +67,7 @@ class _PreviewStatusWidgetState extends State { ?.containsKey(widget.file.uploadedFileID!) ?? false; - if (isPreviewAvailable && widget.file.localID != null) { + if (widget.file.localID != null && preview == null) { return const SizedBox(); } final isInProgress = preview?.status == PreviewItemStatus.compressing || @@ -76,6 +76,18 @@ class _PreviewStatusWidgetState extends State { preview?.status == PreviewItemStatus.retry; final isFailed = preview?.status == PreviewItemStatus.failed; + final isBeforeCutoffDate = widget.file.updationTime != null && + PreviewVideoStore.instance.videoStreamingCutoff != null + ? DateTime.fromMillisecondsSinceEpoch(widget.file.updationTime!) + .isBefore( + PreviewVideoStore.instance.videoStreamingCutoff!, + ) + : false; + + if (preview == null && isBeforeCutoffDate && !isPreviewAvailable) { + return const SizedBox(); + } + return Align( alignment: Alignment.centerRight, child: AnimatedOpacity( @@ -112,13 +124,13 @@ class _PreviewStatusWidgetState extends State { children: [ !isInProgress ? Icon( - !isPreviewAvailable - ? isInQueue - ? Icons.history_outlined - : !isFailed - ? Icons.block_outlined - : Icons.error_outline - : Icons.play_arrow, + isInQueue + ? Icons.history_outlined + : isBeforeCutoffDate + ? Icons.block_outlined + : isFailed + ? Icons.error_outline + : Icons.play_arrow, size: 16, ) : const SizedBox( @@ -136,17 +148,17 @@ class _PreviewStatusWidgetState extends State { width: !isInProgress || isPreviewAvailable ? 2 : 6, ), Text( - !isPreviewAvailable - ? isInProgress - ? "Processing" - : isInQueue - ? "Queued" - : !isFailed - ? "Ineligible" - : "Failed" - : widget.isPreviewPlayer - ? "Play original" - : "Play stream", + isInProgress + ? "Processing" + : isInQueue + ? "Queued" + : isBeforeCutoffDate + ? "Ineligible" + : isFailed + ? "Failed" + : widget.isPreviewPlayer + ? "Play original" + : "Play stream", style: const TextStyle( fontSize: 12, fontWeight: FontWeight.w600, From bc7400c0a2a8414d7dde971071c0fdc6c59b7ab6 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Sat, 1 Feb 2025 02:59:37 +0530 Subject: [PATCH 71/90] fix: icons in backup status, make the buttons work, correct bitrate and codec in checking, correctly upload on start --- .../assets/2.0x/processing-video-failed.png | Bin 0 -> 1231 bytes .../assets/2.0x/processing-video-success.png | Bin 0 -> 922 bytes mobile/assets/2.0x/processing-video.png | Bin 0 -> 1413 bytes .../assets/2.0x/video-processing-queued.png | Bin 0 -> 1447 bytes .../assets/3.0x/processing-video-failed.png | Bin 0 -> 1867 bytes .../assets/3.0x/processing-video-success.png | Bin 0 -> 1303 bytes mobile/assets/3.0x/processing-video.png | Bin 0 -> 2050 bytes .../assets/3.0x/video-processing-queued.png | Bin 0 -> 2097 bytes mobile/assets/processing-video-failed.png | Bin 0 -> 645 bytes mobile/assets/processing-video-success.png | Bin 0 -> 527 bytes mobile/assets/processing-video.png | Bin 0 -> 750 bytes mobile/assets/video-processing-queued.png | Bin 0 -> 744 bytes mobile/lib/models/ffmpeg/ffprobe_props.dart | 2 + .../models/preview/preview_item_status.dart | 6 +- .../services/filedata/filedata_service.dart | 2 +- mobile/lib/services/preview_video_store.dart | 56 +++++-- mobile/lib/ui/home/status_bar_widget.dart | 22 ++- .../ui/settings/backup/backup_item_card.dart | 37 +++-- .../settings/backup/backup_status_screen.dart | 24 ++- mobile/lib/ui/viewer/file/file_widget.dart | 17 --- .../ui/viewer/file/preview_status_widget.dart | 141 ++++++++++-------- .../ui/viewer/file/preview_video_widget.dart | 9 +- mobile/lib/ui/viewer/file/video_control.dart | 3 + mobile/lib/ui/viewer/file/video_widget.dart | 34 +++++ .../file/video_widget_media_kit_new.dart | 7 + .../ui/viewer/file/video_widget_native.dart | 3 + mobile/lib/utils/file_uploader.dart | 4 +- 27 files changed, 242 insertions(+), 125 deletions(-) create mode 100755 mobile/assets/2.0x/processing-video-failed.png create mode 100755 mobile/assets/2.0x/processing-video-success.png create mode 100755 mobile/assets/2.0x/processing-video.png create mode 100755 mobile/assets/2.0x/video-processing-queued.png create mode 100755 mobile/assets/3.0x/processing-video-failed.png create mode 100755 mobile/assets/3.0x/processing-video-success.png create mode 100755 mobile/assets/3.0x/processing-video.png create mode 100755 mobile/assets/3.0x/video-processing-queued.png create mode 100755 mobile/assets/processing-video-failed.png create mode 100755 mobile/assets/processing-video-success.png create mode 100755 mobile/assets/processing-video.png create mode 100755 mobile/assets/video-processing-queued.png diff --git a/mobile/assets/2.0x/processing-video-failed.png b/mobile/assets/2.0x/processing-video-failed.png new file mode 100755 index 0000000000000000000000000000000000000000..b6d3888aeffb637490f1916e626b68183c4dcd83 GIT binary patch literal 1231 zcmV;=1Tg!FP)K~#7F?O9EB z+eQoqhH_hXQ*~iGyU-_ydV)%;Sl!ew!4vZ0=p+DmyWuq zy0P2D0s>GZHB!VODKW{0-+O-M&kzI50GJODK!pkwDpc422ql4k_3O0#(2=WWBDBE> zJ}}gyStiI30AfHyuRZXF*uD#(1Z->oUp{Fva+iUdMZQDC3nY9ch74f?tZjfO?u+8* zMHOFxzF~8^yd(U_-Z2w*81NVG;LTau$7>m&!il+;xX4`EM4ny9#h+qaz+@)zD}&r% z=7y~N_aedn@H;$>6@B~LPQ&x?CVuBVAAg&sOAU%Df4$o!66F`>$Kg~I*g9~!L-OwN z@<|89?Gi)6h2WPW`x|^dKHV~2oq%BeE**t-AXJ{AXMH_U#lLWDu?ug1-#hUY3Ys&~1n9CeoW#)0e5J}! zenI|{5jI=~7{~$H&aR!)%TzuTDY8^%7|aEc8N{0BC7?R-z52XY*2-V+9uh%AuQh1( zuw$6r=S8LgQ>5eh{$a3gz%JwQa;GB+;oNp&hT?D<5c(!i5=<mh>7QwvX^ANZq;eYT`k?PXB*-lSas_ zDFZ27_FW?+A*k}5X#CHvip;qKbhS5t3`jr*VM*A!3uNV5gfK`qV#Z=28_h&Mqcd)5 z8Ok*w2ZSd4EB{U+hPtm6mk|yX6SG;x#-rMQ+h;C!P%NJ(o>j>~Q3LXVmx3~)9DP^= z65!oLF5v4d+FraSW*o^h{rLl$)PA_TfD#Z@eZDnUCi5+902+Q~2!~}BG>VW2GWD!S z{jD55qvGd)RAwO|lL?_D%vdZ97OOs!N!=9%3|PqBepyB&%3Fb}RbSp6&TW9Czq62C z&Jh;+)2qF;nPuqn+AOe?*Exz*eT7_Tt3B>57!ft3 z+At7?SD?Jp8#pH@eeIBmdF%{f$_>Z~2q!3=GEmU(vwUMtXIP$0|L3;Ss^r zQv@D3%z#;`s&HT-9`0y3mtAH$bu1&+8GKm)J8d_#}lfDahEb2Y@?fO(5N zJ_1{h7mftq$OgvHUEEpSX44t&FTQ*8x(>l6XvEO8yO{xUuFvo+glbqq%-hh5)XHpt`{m&D3Fq6dOR(h8|cwVfx>>Mf|> zz?t4+B?2?)|JtU98TIO^jqTT|WH=liEAx+T3WZ=pJrQVGD64iB=bj81s2Z~dkgD_@ zxMaxRdK=Hi;7%hM+a9Vn5JDNqX*Eh#6v2Lg3nbU~$Qn?Ck5DFLNO#ds3?Vsf!zSz8 znxazxRp1inwOYoxswosem23kYU|QH$?(*KCGQh9SHznpHgI-1k91ADMsSGI8;H6-e zJTqhCnJ$d2RdcO0l4=IKHOxJ${RV{rVhN&xK$b~~yiSSJ>>eTh>^E^mr$@BnE0l$l z>7;b~U<+dzrK>Q2`If_y*BTOvGU2?^Mf(leAeO4qZy-}CM#}RMxGvL_>=e~JuIWxm z#avQvGy!NAphZNgMs*&Dxpoh#VE{ir?}Qc&eBPo;hQBQ-Rqhn%_r&wo1T-2vhi&}$ ztzuB=v9q{VUD9V_nc8h*p$Yy6ztVZ1&>KMePbLo8fcSyxr8!04d@a;T>M_MCu{@?l z#a^@8s0_#us%44G=BJ`gW@gD31aG}{u1Yh^*rG}+{Lo^2E8!5{eotXq!I4VMlXmvYQB$@&H#GIaR;%qmwZ wsvHFAvHQ#_H%d#KCXb2Y_4Jwb#EJLLKlA<+eYuK7CjbBd07*qoM6N<$f`l2OzyJUM literal 0 HcmV?d00001 diff --git a/mobile/assets/2.0x/processing-video.png b/mobile/assets/2.0x/processing-video.png new file mode 100755 index 0000000000000000000000000000000000000000..5c5a92496c18f0080086b7f4dd7ab2bd4e06abae GIT binary patch literal 1413 zcmV;01$z34P)YAX-FG^o9A)@q2=w zIcn-3IGDWx54dZ9N&E~{(k3Ybq)6;%{98#n#@~NKX5ZC>PKWpSJrHK55JktXCg#Qf zliIoD2@)J!pzWvD=5hPv1Jek1$-6>eYjsZHHQFaAgsh>g?oqOB#RnmuWHNiuE z)LD1`Zep{9nE~45(duo(em&K#-6P5_feYvY8F*ncH83n3Bk}hw;;p6QjGLV?YGZ)H zIky##o`LC*%;vDZFM?xVZ{ZB4`4bf090hiv8rD-TFdd$NNPJMd{BFb(q6`mtF$QuP zH&2x2BxiuQXFj^ZDeV1s4z75E>%1w~az{`s_%(Vfa^JFH(#cI9ouUeN!3I1kA41c| z6Xr-r3SoF*efX!tx4;j!l#VU~>>yp%_ffQM+>p81OAt*?hah-`jGS7mOWx^&@XIbT zk%~jQCM5b~+Q_sCNu4~EE%5}h?G?Iag;~@Xm3xap?W8@V$pEwcq`oI9>A*~;9V6^O zb7-!K2?~@PN&9h=fhZf-*Cy!`vqea5HU@vh07*jm-hat3;NUs!AbdJMo72eWI~n{Ai*lx%&IC!@N$9-A99 zz$>XPt~^tN3Y1TM4R@t`=+h2?fk48*_s2urZw=0Xs3P6sqX!l->@eO-pXsAMr%9ld z$AP@J#0TpESb*y>2iJ2@bupkwG;69sW>e8eJ*G7{1L10p530Ka^q?R&P;Ml`)WzU< zXLz3C=csf5QCKs}P3X(kf)jxrK^NY8`8BA)TrADM**Qbv$y^dJA&T_%1|9w^dR#Wf z1XF9K(_;Qjew$pM3hi>U3EmH~0Y&e<*)e#a?S;4+gW|b%W)>Z5;zbPh#4n6lFZH9S z$dZ(nO$M5#kr=bYU_}X-I%b%`)-YwgteG}IW)1bg-~ZF$Nb7rD&Qp!=<+~Pj6riDgPkv!I40Q z9kbh=OYhz%fiz4_WY&F4>fiJHz3mca4TzWyCm`vLl@g;ijLRz~*8QGz*TQq=&`5S; zfWXvEiJYn)py0Gv`~A;sm$JTyjW79n`AcJPYr&m?3d~QFYfW6Hl_@c4iNEAafxY!f z!2|vbRA3qz1BL4yUzgRZe)=o`U0@2RsY zew8w_vPv4J5B(wt)soBK|Ic5D{K5Z=Ihi2_gF)^2`8mR6{r&yDhTocb^{}w85aZow zcXv0I8DeS%E-o(Wb8~ZFKyZV91;gXz<>kNH?e>Gr2#Zn?mzS3$_|Om@IxR{r!1zAq zb;0}yx8Jt6x38oEN^9WccL||j;2!VmDIu8i z`uf@~YhtAsFjDJJEP~DP{21nO8)_cs=jR9bIm$nupP%n;ZEf`=5J3zW=e*8K{q60o zx3aR*uWHk$r>7AK#^pxtRc~i!ryH_HAp>TU@1pFts=9r9AW97q0b%`PnA$*eL;IMlwe-go8LRyrmapd%sb43c|Df30Xk!PeXk8Nle<)f$W6rG}Ghsq-oDIEE(I(8yCQ=0vPtdj*nq6j*!0g>qv>oQh zWEddFI$2Rl;sJ?YTwKiLh!Wslg-js3r@m(^Uos3pDy`(YNcvY66# z8o(^iAYzKXPX2wS8pWXXq_V{Cjd(zHVocz(SJwcOIJ>rYsRk$ots)j? z;(#%=mhBxihmiY;&X3z~5{4$$Y!nT$X)0v^;Z57($XB2-$++IZZ^lH^{J=;nlo4pu z8w3~~p{ak6)P872QU(ps$_|*V9&csf zqcKhRO`#b`IW%WjE2cffm{R55_6~s~cFogfBZ}5E4?wLCSU9;|6%UwH%KCxsVmOA3 z#J{IzAWkk)1`x(ZDv33Giy+744UiPDS$g&+RGYn|cpeBl{M3f)Q zuFjkhfbkkdRWHxQCTRH215o40v<1gN?cuC>h`qhN5eQ&Xilsba&gB}uLHZD5O6m+I z5?M~2heer}1enYkT6q#f&M6|^QuR*k;X2e89;RIzLSod~x+PDr>3ahK4fE$(7b+d< z33F6Tvt`+aYl1|3RkC+zbHUk}%Xg0<+1BRfW*IY?3TJ0${Uj3l+L_K`j*Tqs&`|xA zuR}I#F!Hd;Thxm!-Q2BeP9b2t2hmZP=GX7qUJuU9!5=tmowv{qn{Qo6dtdiq4LYH{ z*ixUEAgM02F_8_)2%g_Siou_l*!{K;PISsNl1qQ&GwQx}od?WWA?CRn1peeRT(6n~ ziT5KP4(pwwHCPf;OG%hE{?rRiZh1`oq1!ll%XIY`1;g25S(6!J zY6djul#h>(b#p30?2rHe002ovPDHLkV1jw~ BuND9R literal 0 HcmV?d00001 diff --git a/mobile/assets/3.0x/processing-video-failed.png b/mobile/assets/3.0x/processing-video-failed.png new file mode 100755 index 0000000000000000000000000000000000000000..98b20a830a7eb45ac0bdac6c4d1d01121f1e1716 GIT binary patch literal 1867 zcmV-R2ekN!P)aNGd2B zWnqQC>6iCLl7mJgX?kYVBvtcOQKGs>-K}q4zkYuWkRwNq96562$dMyQ4s#$pA?Tx9 zhSE*N2XGOo48(tfK2V+m;K5Dl3fH|3JQ1uCB!u{-n>9rJBTrrB7B}WsJw&|HTAw)J zv~cAQ4=lk7LGD%y(k=m2VFp0J7OKJyzWwcL z+Ou^2ssg@WHYIf?1O>Wf{_CzL+y*-kiP{^t_2_J2|Iu1J_4oXnxOy#ff<$UG>O=n5 zo%XCqfUn^frNAS?4vA8hcBRWm=xPnFqu_^_66k4Cn{y!v>96M^H1m%0?)pQFF`)n% zg3gz=SdmVgSV+-G2Tpgs756O$%6-0DRR9}Aur}r~S1}QEw%EYs_TJ=qeQ#+ErCdhUjQx|I5m zNJUVf0Her3=#Yl>xs`SUW(=8w5Y}bR(O%jIB}Qp-Bqm67LI1QG1~1e{sukY1kHHcO z%k5*CGm0b)kV=XY6U5}m9(Tj-h!wX_`8q zL2M>Wj#$8vuENmVW!aKo8Ab#-?DuG(15u(9zF_IuG5LP~^l?WP!II%Dw_gwkyqGO- z-1jALcF#&3EW&D5Lu?m_IG&w%?V)wte_CuPgmK}DCO>b@=E@`>wh1yufdlyPgvc~#9|Io5lmH3T>*rlg*9_|{$*_V& zSS5&c%4hZv+=h^W85&7p9SnRZ`DACc<^W#A_Q(2(0LRb| z^Y4n)@D|}9{$F5#*aWe1jf_K22Z2^pXI=1m;I{<2sWeHPmP$uZ zgu#an9NtO6q-97VK;|CpK`%{ODiuLm!@)=+AL$O=U)Yo+I$PLqDBAGUytUHkz?54| zwS0}EacN#CTiqYCs`8qIp3cE$G&!(0m$H^RwGJx2zy2_(%1fUuUXCd;NQEGM#E$Qz z>b5KjxH3`FvXF5ku?E3R2ZHK1$;Q?i5$z)j-EVe1Z@=;hLZ@dL+GUsUX1@?S!(u zv_^`3q~~3U4YjD}gZ(On78aYRuvo8^+`2(4hs-c z5p+EhiDKilcgKSz`2T(#DvaLNgQ`+`m32-9Vqd6}_z<-?cmG-9IW}(~KKYf*htf?2 zMJa=Jzjg3|Fu46wklTiqqX9W`XPw002ovPDHLk FV1jY5U^oB( literal 0 HcmV?d00001 diff --git a/mobile/assets/3.0x/processing-video-success.png b/mobile/assets/3.0x/processing-video-success.png new file mode 100755 index 0000000000000000000000000000000000000000..e3984d2bb1b49971d8f0c2cb74d3f1924777d01b GIT binary patch literal 1303 zcmV+y1?c*TP)W8lN-PZ)_zTStHfif7H2s@-~<~^0Gwc#6F^SDW?iW~uBuF)V@?om5a$`m zlWt8&?Gn#uB+ZN@N?(<+!3N7e-90_sEde7VBO@atLq#Aox9J{|dm>p9wsqT?gou5fgh!4rN2@-NKSD0e*dA(UHzZqt2=FV_eq%yWdeK^$MYbiD|! zSkB*(IDeokaTqC2P!yl>>GcU5;l_eKy?#%t(og6UQhdN-b%vI-6G$!DpXt#Q{bY?K zId0=}%?09kGa+++p1<@B4&ZTo*i@uu0u4o+Cs?G%c-ADzY!;-G{B|(nFnp{k6x61^ zKpc?!8*@xd|2_6v)N?UjK83u-kdg8Xi{C%kzT94*p~W3N8(P_Bwn5w8#U{o13lN9d zL!MiEft>}Zy;Y+i*JBQC_HK3-B!sKD!^`X?nfL*s?ToVB({c&!hI5-2Ra=lN>oFy4 z%lQR;eFrxGuvA)6wFO1xfwyN1{Vx0H?t-d?v$7BtmP#u!TaYSW{0SH2$+uRSEWc-5 zTu?gkBSKJdTxJW3ixjS~P4kb*$`&gw&mISfPh1K%U=}FUe{mO!)knNp9e5Aqs!py& z?_#Qy@fTcibl0x5;xmvN+)Qsl+?weVJ_EVovzlBiMc;UePkD0SRH(8?w;R1c5niFM zI1l8J_Ot2*+6GVB>f+UFBYuKpuE`0ts_wT$cp;H+mRU94bd_iua9<*{}lY1(Gu8pi(Q!W}L8?%uq+92iMx~KF4McXxr)ZK30#IN5?v5mOLmBIx=taVSB zEJ*uHoxyP?rtZqt`6NlEdqOV|4@@RGdVwmvP^lwlVSJQ3w8o%c=2g;_p=&q*tFrF} z{1o*wQ?)aJ2_b(WS4+_at^#ls75g`HqWCzufh*WeY~TRAoO7FrZz+7k#6xdnE+dDXwp z@KWG`bIYlG`*KH~u;Rnn!0J##6xMOoULfuy2$0KP$;m8VvYd19b~CEy4n9@0_148r+lLRN+lkdL*-$!i=0Y6C{VACt=L`Q& zM#1>hTrFv47^|L{YkygQB^^XO>g0c44#B}BGiQi_REP`<$5XFk(H%j zu672v3PX37rcgrhWY=Cfi?sXF6dTpE+TNFKs17boF)}hTGBPq;{sAp_zD<&$R-pg@ N002ovPDHLkV1m)=XQ==H literal 0 HcmV?d00001 diff --git a/mobile/assets/3.0x/processing-video.png b/mobile/assets/3.0x/processing-video.png new file mode 100755 index 0000000000000000000000000000000000000000..c250b5ff1f998d30591614990d9d2abe7f212b26 GIT binary patch literal 2050 zcmV+d2>thoP)AsDS2C+UFh(SY)NSh}AiGx|z% z+Rf&)MqDpJzokRET%^>aP2xNicZT9MaK4AJ87*m#o}Hi48qhsKASKVAi=TGH>mfD6 zobu$sI;1I~t}q>?;@^EiPD=4mY6zl$6G3{CABmq*@ydv^w?e{>sROhxK?N~t@onLP zo_>7v{p#%Tkx zrFSwuAg;~EF_w-5c~7X{KcJtp8MT0RBxpK%DgK?1+u-8EzZI`jVNWii?8(`WuLOaw z$@MJGg*5$nNRfym2wSw0njOceOuP<+ie%I#-apLMpi&!) z4^p)4$fyfqZ0m5THsgD=-CUBI*&sJLLcH0FYx7%nrLEZ#5;Ye7)xNPN&IS~L9)-e9 z&Z+cQ*5TA)_qyzF$u0j1bK#L6Qv||P%uNo|X+k#vuur|^Q0{(_&ZR#=FvuH=PgZi2 zN*&WphWv6bcce=ZuvUK++gQB5)#N1kC+Qk6ek2`DPxui8KS%dmf!jb10LfYP(ePQ` z3t!3u^#p-^73udmu&FY!oqXL_qtZYN%HsD|(yP@Fk`;vX_^1}=@1#`X zTSvwZxg3alQ{b8KbD98#zQT^#Y|y55olyvE?tyij79Sxq`1Io|nQ$v7y+WS-GH5(V zfnSshlal2B(AiJM+HC}tB}m0Y{tt|;hk>YP=VM6}N<(2tgLbt3Vux1O%a=y(x=fIo zTn|kB7m2{LEhve4BzKz-`((4BRp>2sG6y=rJ!60|Nx!k_LSPY9E0m-_l_nHJj(X++bpU(WXF5U^V%7FQ6z@|ArX!?5!-#E) z(2OUb`YN$Q&Rr#>Do^^Ic0Kr34fRK!yok;c`ao5B!=y(g)(#0@Af#B8pslbIlv}&9 z{L-ieU;q(Zc1cpxGPs#oORI+32~vH3nK4PI6k(pONNP$>Rn4ygu3$B&0$GWIq^4<9 zJ2Elnqei9Y#G+1)wYi%YY<29I@=8@FsxRW37wp|C4)>srpp?`$yo&gfH)^3skf)yS zXrukbUg@prR&f&q*t;Q4#kRjou~6xYRHkYf`=RtZMCAxP;g_{>49b20rq(^EC#YzE zG#$B#AgL4QtaaG?g3v=PR;dwnRQYlZTP_OS!7E4yIw|%i~)? zl8V|_)%1<;`HgxNE8uD*XT33P|Iy|)-aeG67|R?`z~L5uf{KS!_x#)(n4eV5^uc_P%y||3ZC^V~!xk(yI zZx#MivnI(#Ow7g_84cm72mrpag^1jCufjEK+s6)0` zY;{&pNn0jUtg**5>s$Qh($Cpm_o3cZznaos6gSts@`k=BBYKyxxbD-ZqhwLt59|-{nm+wk~aRYEBD}-`QEw??_DoJHr((( guyltz+@Vwa2kvfvB5=|$TmS$707*qoM6N<$f&vcOGynhq literal 0 HcmV?d00001 diff --git a/mobile/assets/3.0x/video-processing-queued.png b/mobile/assets/3.0x/video-processing-queued.png new file mode 100755 index 0000000000000000000000000000000000000000..193e22459001dab216dc2e4959fe15fb600719be GIT binary patch literal 2097 zcmV-12+sG3P)=?vw~4pKv)6J3J5E}uHyLxSwX@IfG>(im7NukSpl9EU{-);1>^anc!hJ| zifXmG)!l9>PO5yWT(Uc@R_o~Y?fX(h)>vbW9Un@qc2~+3?&}}{rn>6<;$1Fl`B^!ltM`33{5BZ@86$F59nNi zDq=W!=?EZU4gzjezhA$8O>#z7w-WuHc1=`g5>!3aA3uH!WBT)^ahT&qKjNIl=H}*t zN25!DwgSh+_V)JFI^CtW3XC-Yc{jg*|NivRqerE5fKDU`lX{HF9ZS2yU4WDmO#XCd zXJ?+HPhP!x^#q4!ZP&u*DHQv2$wU@G+@hglCir^by#RECKGB(U2#|Duu^$JP@^g@M zC>dCqATB8^f%o`YI0x>D7}q>1h3)Bbm?KF`>7W2P6z?&V<+<1`s%!Q!rxE6K) z&T7S`BqBi0DeaY27@q2*enlyU+i4@-xJR=DCWNwiqOaJF98X4ro8&xZieetCCjR!d|Z>x6>S7C)J_t z!eiG>=95@1P9cU~(&V4VXNwG%cr#>-BW#9%@b@mSvx$nw~A`+sM)k$jBjl_D=e zF6jvk=0l9nmI5yEWj%ImIPY!AZIdFelE(VH<7iHH{HO@ke(HoAg1Zn6))*yggT&fx z)U&?+PJ(pj8k%h?J#$Gw$f3t{GvOo%C)~1{%2Wqb#kP?C!A!}!loKdLG;&D{J}*Gn*w?qAr1i;vs&#@=#PaeE z;uyna9`uddeMAvl5;U|M!0?Hr4Ej4R69kFJ;kNu%{-xyMne>1LL6~$Sca;(qr1VI{ z(t=L=n^MWA&WInk+EhJfp-?*~8O+`J^jL!+JpJqD?=}VIg2y~)K(iWuK%3^_!-r2m z)UMQnUeRETI;B5Jp>NeqG4PTA2u zfBt-6&KIhr5xcGtR234KZ7Gwa<0&11L@`;&-9{4hQ%WWmtHmaBU=v&;2#hw^2SKGo zf?m0F42D!7QM(C56%q+6QCY!H5JC%u-5X+8N+h&eqZd>``H&(v!zLjxn`^g0NQzn? z=@6J)R*EHrN|B2eG33HUP@|8m(TZS1(V@sz1`V6g2tBts)g%bJP-%BaTsBGDatfF@ z(1>7bupK(;Ux|cW_DAgO?3Cv3E$fd9OhT*+Mia!~I3!NGL=}Zh*Z`s*l9t!lsOhEJ z-Dq&U)*)qAU|EZF1QJ6l7vv;`Opr~TNjz*NUD^o(moHYDzfQhZ7UKY5wLlAT>wKfVz^Dkx264NTyor zyS}0eS3IZ@%L%1MY`C%^E->7|sxy4OiEB{#=Il=N;dZ5CxHRg_Zh(iL8b*i;?o(2@ zl<+y0%&nX0An5_lv=4N^2TS)X@N}+80w6^UgLan5XhUkmlhAqtmJu)7Qb^7{nZYcp zX@I3SlmuW+Cwbu+C|#+XHZZV;dt_*X$C0L>op2K5s>*819l1aSs1;wO^oOO=;C5gw zIqky>x^hRUQp9n3Bxxyfd^tZ~f3Mk_nt}AeAZe*Estdd!Ea4l=q@F#?$vd~!;ssY8 zTQbrsEtROT$SPj&Rjag_2chzpp=L)-WWRaCi88o(`=uPcvqK~Xr`qUwvHf;alELqjoRr<+~|lIXRI5!#?b9sB-9bacyS8D9pH z)M(`kd0YvH8u*VwPzRZ4tNFP|I!U9Dte!p1eX%ZyAfk<=oZ7)I;HZU+Qp9aY4j{L= z4^{0Tw$zcFGq_V}P`_3StyT6*BUyqfM7~fr?pvBdHP<<1%fHT-45&zRH}EQH5(Oe( z+`W5uDfh&Om|}ED`UxJ;NHUN`Pz8N4B$UuAwI=Wc%6ujnh$!*97%%mj&?R>)Ez(rG zFv!Bw=Z$=1CdJIAFjG64TW8Dv za}yGDZ599Aq<4Z$C|N_0MWU`NVWD&njlIKFy}Wm>1i3&{K}-J%>rW+%DOUXtmeyEf bjb8B+ji|#x3u;bF00000NkvXXu0mjfJ(1ws literal 0 HcmV?d00001 diff --git a/mobile/assets/processing-video-failed.png b/mobile/assets/processing-video-failed.png new file mode 100755 index 0000000000000000000000000000000000000000..4eaf5c1c451dc1c6bfc53cca41162ba96ca18867 GIT binary patch literal 645 zcmV;00($+4P)5|2rIB{?7v3C(n{T}gmv(;ci7R(qt z+~;YQk_#q2LZ&65XL~s!!n!ZLG<7r1XuYA@v;FUdv~BKdcXP1iM$3;_*5&Yy#`n6 zAl=7$>spst^3GS)c|?S{CU?M)QF0ypYMebxbbEsTMY0TjCW}CxZ@CO+_N~rYhkr+? z5{7k+>p5U}$*fv@ZvYV|G~G9mn@+@w;LdKi|2>m~WYM)GUS!Bcrl$3uMW^iupY+Qk ztHV}*Gs(ojWapy%XlUlh+M4AsT~MsX@s`L}MeFp3IUk__J}<-r9UH5B^%Zuqr&sc- zMtgRk-K=?O+g!@;73RRt869v%njS>%yI6A~_);`o3vbYXn{0(+)qE_D@3chcI^-;= zI|7wNKBz21i`>XtX-^!0@)0G%QM3Or->q$Q92?h(kdoi8P=b0t9CPeAB1YubaB)MY fX`LU=3o7v!>d_ri^Yp)500000NkvXXu0mjfwGARl literal 0 HcmV?d00001 diff --git a/mobile/assets/processing-video-success.png b/mobile/assets/processing-video-success.png new file mode 100755 index 0000000000000000000000000000000000000000..aa9dc83f215b2e8a637677bbc0f7aeea66ce4159 GIT binary patch literal 527 zcmV+q0`UEbP)Iy=Xp_H?-1hi&QVt~uZQ!#>Jl^s9Qu7pev zVul5}X+$!``8_%JbDc9dD-L8-@r?Z1llWidun&CKfgSR^xJJ8D?>a$5!X;G0aM(#WX7TeN!ZtD?H-jd& zF5BT7O!~tTAk>_8ZR{g{{NgnNMy#Mdegh?LlFGW>MX`qTP#l_UTiTJAk5^oua%L_L zLyzX-Zueo<2dA|Zzx>vnugcOl83pnXOE~M4gY~q>GZQR7nUU2e>6qha@eRrrmsrtJ Rjrd5EN2%8CSI3hMpkq4d}Yy$@kva zv4=5&L`pu15uSPT{@*u5FATL);@kT}(kdYG4oK^|xus${o`0o1P~CbmYX(>clu(em z5@U_!zt(;#bBA?FUec$}zZbN31lO$*DcuuKwZ5cPbxfUTSt8dZ4^EiKLi+M^xZA)@ z>l_!l_&0&#uvGCTX3Y?*4+Fhjf&=_?dg1Bd$XQ1Lc@4Oj3Bn{A!jsUtcoq0mS+|k4 zx_oQ3pp*I3F`)E6;#AF=KcFL$Ey}&WMb7K!j>d*ptoWQb1(q_@C!xM&h#je|?~vjc z20rqZmmbuy2DmURQGVqpmnaYopRr5^saG;7${Pc<|3;`*i7X`^jS62Aq~_8w#L=xCP&nh2vHdM^Bp^vtsfoGuz z<|jjf1p|f&BY1OawHyzTRvq!u#Zt~TC)$(rJvK~{u7~jQ7L>pOeai^ZG#xtASzMoW zW$F+i^ANYTmvpEU+`ESC2J{@5`(bg*rR(d~1w1{aE&T4lG{YI9@)2!+^VppOo>mf0 z3h_4FOVPdySCx5uCgjGlhDjZ4f0Kp2J?5ey-Qh;aa_-ACXHTY~_~>Z{GBDFJ8EWCH gti%57e!X4^53!I2K~e#K-T(jq07*qoM6N<$f@f?`5dZ)H literal 0 HcmV?d00001 diff --git a/mobile/assets/video-processing-queued.png b/mobile/assets/video-processing-queued.png new file mode 100755 index 0000000000000000000000000000000000000000..8ee51b1bf8f58be808303f5804ad09d2e64dbc95 GIT binary patch literal 744 zcmVP)f z+CUT)O94kY15E^jBY+T?2!JZq6A%Fq0h$xrK{FAU42&Z%j=*vT@|D%^X@1L1k2Giw zQ#HRzYW1T3{`%UoK3Foh4y;zI^5t@=W-^(3OdVPFJDpC`N+J2AjrDq6h2k-lbB@sm zh%eu^fd9l0;28mMXQlOExm?aL3~A~4e10yKN^Y~+49s)$`Mie&hp6A(z z!=VPR9L{sO+^*GXZDKI~QU^Tx0Ug^b00`smo62ETZNJ}p__Wp9>2%_{kIzxJ+l_z< zg@TK-br`_BgaBE-fapjmPEF+)zUj&}akwXELXmtu>gPiM#H}WlZ4D(e^}(cLc#Z+` z7(z9HM=nbC>lFYjuVC0AJicMQqvoh67e6-;<2#(!Yd*}6j>!JN<3<2HgrCfEEL$-` zBWNLjnwocxag4g|b%1wEKA-nfof8ZGV5sODu+T?tUj3jb1p8HO*`$d;o|i^LyxD;> zl-U>6xl9~N?zbfsfe=0k2h|K^K5}zsC5TG$mLn8Ktu8=%oEtI9DIT_Mh{G}`5j)2b*n_dM#?s*)W@pv4-avR=`%>CF4hx{(FIGv a4Dt^Ix?({myh3sS0000? previewIds = {}; + Map? previewIds; void init(SharedPreferences prefs) { _prefs = prefs; diff --git a/mobile/lib/services/preview_video_store.dart b/mobile/lib/services/preview_video_store.dart index 12b29bb7a19..2bf386b724a 100644 --- a/mobile/lib/services/preview_video_store.dart +++ b/mobile/lib/services/preview_video_store.dart @@ -2,6 +2,7 @@ import "dart:async"; import "dart:collection"; import "dart:io"; +import "package:collection/collection.dart"; import "package:dio/dio.dart"; import "package:encrypt/encrypt.dart" as enc; import "package:ffmpeg_kit_flutter_full_gpl/ffmpeg_kit.dart"; @@ -116,8 +117,12 @@ class PreviewVideoStore { if (fileSize <= 10 * 1024 * 1024) { props = await getVideoPropsAsync(file); - final codec = props?.propData?["codec"].toString().toLowerCase(); - if (codec == "h264") { + final videoData = List.from(props?.propData?["streams"] ?? []) + .firstWhereOrNull((e) => e["type"] == "video"); + + final codec = videoData["codec_name"]?.toString().toLowerCase(); + final codecIsH264 = codec?.contains("h264") ?? false; + if (codecIsH264) { return; } } @@ -140,8 +145,13 @@ class PreviewVideoStore { props ??= await getVideoPropsAsync(file); - final codec = props?.propData?["codec"]?.toString().toLowerCase(); - final bitrate = int.tryParse(props?.bitrate ?? ""); + final videoData = List.from(props?.propData?["streams"] ?? []) + .firstWhereOrNull((e) => e["type"] == "video"); + + final codec = videoData["codec_name"]?.toString().toLowerCase(); + final bitrate = props?.duration?.inSeconds != null + ? (fileSize * 8) / props!.duration!.inSeconds + : null; final String tempDir = Configuration.instance.getTempDirectory(); final String prefix = @@ -161,7 +171,8 @@ class PreviewVideoStore { ); FFmpegSession? session; - if (bitrate != null && bitrate <= 4000 * 1000 && codec == "h264") { + final codecIsH264 = codec?.contains("h264") ?? false; + if (bitrate != null && bitrate <= 4000 * 1000 && codecIsH264) { // create playlist without compression, as is session = await FFmpegKit.execute( '-i "${file.path}" ' @@ -175,7 +186,7 @@ class PreviewVideoStore { } else if (bitrate != null && codec != null && bitrate <= 2000 * 1000 && - codec != "h264") { + !codecIsH264) { // compress video with crf=21, h264 no change in resolution or frame rate, // just change color scheme session = await FFmpegKit.execute( @@ -357,7 +368,7 @@ class PreviewVideoStore { _logger.info("Getting playlist for $file"); try { final objectKey = - FileDataService.instance.previewIds![file.uploadedFileID!]?.objectId; + FileDataService.instance.previewIds?[file.uploadedFileID!]?.objectId; final FileInfo? playlistCache = (objectKey == null) ? null : await cacheManager.getFileFromCache(_getCacheKey(objectKey)); @@ -459,20 +470,41 @@ class PreviewVideoStore { Future putFilesForPreviewCreation() async { if (!isVideoStreamingEnabled) return; - final cutoff = await videoStreamingCutoff; + final cutoff = videoStreamingCutoff; if (cutoff == null) return; + final files = await FilesDB.instance.getAllFilesAfterDate( fileType: FileType.video, beginDate: cutoff, ); - final previewIds = FileDataService.instance.previewIds; - final allFiles = files.where((file) { - return previewIds?[file.uploadedFileID!] == null; - }).toList(); + await Future.delayed(const Duration(seconds: 5)); + var previewIds = FileDataService.instance.previewIds; + if (previewIds == null) { + await Future.delayed(const Duration(seconds: 15)); + previewIds = FileDataService.instance.previewIds; + } + + final allFiles = files + .where( + (file) => + file.uploadedFileID != null && + previewIds?[file.uploadedFileID] == null && + file.fileType == FileType.video, + ) + .toList(); final file = allFiles.first; allFiles.remove(file); this.files.addAll(allFiles); await chunkAndUploadVideo(null, file); + + // set all video status to be in queue + for (final file in allFiles) { + _items[file.uploadedFileID!] = PreviewItem( + status: PreviewItemStatus.inQueue, + file: file, + collectionID: file.collectionID ?? 0, + ); + } } } diff --git a/mobile/lib/ui/home/status_bar_widget.dart b/mobile/lib/ui/home/status_bar_widget.dart index 067389e2ee2..68302b999da 100644 --- a/mobile/lib/ui/home/status_bar_widget.dart +++ b/mobile/lib/ui/home/status_bar_widget.dart @@ -9,6 +9,7 @@ import 'package:photos/events/notification_event.dart'; import "package:photos/events/preview_updated_event.dart"; import 'package:photos/events/sync_status_update_event.dart'; import "package:photos/generated/l10n.dart"; +import "package:photos/models/preview/preview_item_status.dart"; import "package:photos/service_locator.dart"; import "package:photos/services/preview_video_store.dart"; import 'package:photos/services/sync_service.dart'; @@ -34,7 +35,7 @@ class StatusBarWidget extends StatefulWidget { class _StatusBarWidgetState extends State { static final _logger = Logger("StatusBarWidget"); - var previewResult = PreviewVideoStore.instance.previews; + int previewCount = 0; late StreamSubscription _subscription; late StreamSubscription _notificationSubscription; @@ -87,9 +88,24 @@ class _StatusBarWidgetState extends State { } }); + // visit LinkedHashMap and calculat previewCount + previewCount = PreviewVideoStore.instance.previews.values + .where( + (element) => + element.status == PreviewItemStatus.compressing || + element.status == PreviewItemStatus.uploading, + ) + .length; + _previewSubscription = Bus.instance.on().listen((event) { - previewResult = event.items; + previewCount = event.items.values + .where( + (element) => + element.status == PreviewItemStatus.compressing || + element.status == PreviewItemStatus.uploading, + ) + .length; }); super.initState(); } @@ -119,7 +135,7 @@ class _StatusBarWidgetState extends State { }, child: const SyncStatusWidget(), ) - : previewResult.isNotEmpty + : previewCount > 0 ? GestureDetector( onTap: () { routeToPage( diff --git a/mobile/lib/ui/settings/backup/backup_item_card.dart b/mobile/lib/ui/settings/backup/backup_item_card.dart index a445c2b7a28..571ecf4e30c 100644 --- a/mobile/lib/ui/settings/backup/backup_item_card.dart +++ b/mobile/lib/ui/settings/backup/backup_item_card.dart @@ -155,35 +155,40 @@ class _BackupItemCardState extends State { color: colorScheme.primary700, ), ), - BackupItemStatus.uploaded => widget.preview != null && - widget.preview!.status != PreviewItemStatus.uploaded + BackupItemStatus.uploaded => widget.preview != null ? switch (widget.preview!.status) { - PreviewItemStatus.compressing => const SizedBox( + PreviewItemStatus.uploading || + PreviewItemStatus.compressing => + SizedBox( width: 24, height: 24, - child: Text("CQ"), + child: Image.asset( + "assets/processing-video.png", + ), ), - PreviewItemStatus.uploading => const SizedBox( - width: 16, - height: 16, - child: Text("UQ"), - ), - PreviewItemStatus.failed => const SizedBox( + PreviewItemStatus.failed => SizedBox( width: 24, height: 24, - child: Text("FQ"), + child: Image.asset( + "assets/processing-video-failed.png", + ), ), - PreviewItemStatus.inQueue => const SizedBox( + PreviewItemStatus.retry || + PreviewItemStatus.inQueue => + SizedBox( width: 24, height: 24, - child: Text("IQ"), + child: Image.asset( + "assets/video-processing-queued.png", + ), ), - PreviewItemStatus.retry => const SizedBox( + PreviewItemStatus.uploaded => SizedBox( width: 24, height: 24, - child: Text("RQ"), + child: Image.asset( + "assets/processing-video-success.png", + ), ), - _ => const SizedBox() } : const SizedBox( width: 24, diff --git a/mobile/lib/ui/settings/backup/backup_status_screen.dart b/mobile/lib/ui/settings/backup/backup_status_screen.dart index ae44bea128c..bdd32795c09 100644 --- a/mobile/lib/ui/settings/backup/backup_status_screen.dart +++ b/mobile/lib/ui/settings/backup/backup_status_screen.dart @@ -110,8 +110,28 @@ class _BackupStatusScreenState extends State { ); final allItems = [ - ...items.where((element) => element.status != BackupItemStatus.uploaded), - if (result != null) ...result!, + ...items.where( + (element) => element.status != BackupItemStatus.uploaded, + ), + if (result != null) + ...result! + .where( + (element) => + element.file.uploadedFileID != null && + previewResult[element.file.uploadedFileID] != null, + ) + .sorted( + (a, b) => + previewResult[a.file.uploadedFileID]!.status.index.compareTo( + previewResult[b.file.uploadedFileID]!.status.index, + ), + ), + if (result != null) + ...result!.where( + (element) => + element.file.uploadedFileID == null || + previewResult[element.file.uploadedFileID] == null, + ), ]; return Scaffold( diff --git a/mobile/lib/ui/viewer/file/file_widget.dart b/mobile/lib/ui/viewer/file/file_widget.dart index 156e322c3c9..4926b76b36b 100644 --- a/mobile/lib/ui/viewer/file/file_widget.dart +++ b/mobile/lib/ui/viewer/file/file_widget.dart @@ -2,9 +2,6 @@ import 'package:flutter/material.dart'; import 'package:logging/logging.dart'; import 'package:photos/models/file/file.dart'; import 'package:photos/models/file/file_type.dart'; -import "package:photos/services/filedata/filedata_service.dart"; -import "package:photos/services/preview_video_store.dart"; -import "package:photos/ui/viewer/file/preview_video_widget.dart"; import "package:photos/ui/viewer/file/video_widget.dart"; import "package:photos/ui/viewer/file/zoomable_live_image_new.dart"; @@ -43,20 +40,6 @@ class FileWidget extends StatelessWidget { key: key ?? ValueKey(fileKey), ); } else if (file.fileType == FileType.video) { - if (file.isUploaded && - file.localID == null && - PreviewVideoStore.instance.isVideoStreamingEnabled && - (FileDataService.instance.previewIds - ?.containsKey(file.uploadedFileID!) ?? - false)) { - return PreviewVideoWidget( - file, - tagPrefix: tagPrefix, - playbackCallback: playbackCallback, - key: key ?? ValueKey(fileKey), - ); - } - // use old video widget on iOS simulator as the new one crashes while // playing certain videos on iOS simulator // if (kDebugMode && Platform.isIOS) { diff --git a/mobile/lib/ui/viewer/file/preview_status_widget.dart b/mobile/lib/ui/viewer/file/preview_status_widget.dart index 00cd9f7f8e8..c81b5fa1995 100644 --- a/mobile/lib/ui/viewer/file/preview_status_widget.dart +++ b/mobile/lib/ui/viewer/file/preview_status_widget.dart @@ -15,12 +15,14 @@ class PreviewStatusWidget extends StatefulWidget { super.key, required bool showControls, required this.file, + required this.onStreamChange, this.isPreviewPlayer = false, }) : _showControls = showControls; final bool _showControls; final EnteFile file; final bool isPreviewPlayer; + final void Function()? onStreamChange; @override State createState() => _PreviewStatusWidgetState(); @@ -63,13 +65,14 @@ class _PreviewStatusWidgetState extends State { if (!isVideoStreamingEnabled) { return const SizedBox(); } - final bool isPreviewAvailable = FileDataService.instance.previewIds - ?.containsKey(widget.file.uploadedFileID!) ?? - false; + final bool isPreviewAvailable = widget.file.uploadedFileID != null && + (FileDataService.instance.previewIds + ?.containsKey(widget.file.uploadedFileID) ?? + false); - if (widget.file.localID != null && preview == null) { - return const SizedBox(); - } + // if (widget.file.localID != null && preview == null) { + // return const SizedBox(); + // } final isInProgress = preview?.status == PreviewItemStatus.compressing || preview?.status == PreviewItemStatus.uploading; final isInQueue = preview?.status == PreviewItemStatus.inQueue || @@ -101,70 +104,76 @@ class _PreviewStatusWidgetState extends State { right: 10, bottom: 4, ), - child: Container( - padding: const EdgeInsets.symmetric( - horizontal: 8, - vertical: 4, - ), - decoration: BoxDecoration( - color: isPreviewAvailable ? Colors.green : null, - borderRadius: const BorderRadius.all( - Radius.circular(200), + child: GestureDetector( + onTap: + preview == null || preview!.status == PreviewItemStatus.uploaded + ? widget.onStreamChange + : null, + child: Container( + padding: const EdgeInsets.symmetric( + horizontal: 8, + vertical: 4, ), - border: isPreviewAvailable - ? null - : Border.all( - color: strokeFaintDark, - width: 1, - ), - ), - child: Row( - mainAxisAlignment: MainAxisAlignment.end, - mainAxisSize: MainAxisSize.min, - children: [ - !isInProgress - ? Icon( - isInQueue - ? Icons.history_outlined - : isBeforeCutoffDate - ? Icons.block_outlined - : isFailed - ? Icons.error_outline - : Icons.play_arrow, - size: 16, - ) - : const SizedBox( - width: 12, - height: 12, - child: CircularProgressIndicator( - valueColor: AlwaysStoppedAnimation( - Colors.white, + decoration: BoxDecoration( + color: isPreviewAvailable ? Colors.green : null, + borderRadius: const BorderRadius.all( + Radius.circular(200), + ), + border: isPreviewAvailable + ? null + : Border.all( + color: strokeFaintDark, + width: 1, + ), + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.end, + mainAxisSize: MainAxisSize.min, + children: [ + !isInProgress + ? Icon( + isInQueue + ? Icons.history_outlined + : isBeforeCutoffDate + ? Icons.block_outlined + : isFailed + ? Icons.error_outline + : Icons.play_arrow, + size: 16, + ) + : const SizedBox( + width: 12, + height: 12, + child: CircularProgressIndicator( + valueColor: AlwaysStoppedAnimation( + Colors.white, + ), + backgroundColor: Colors.transparent, + strokeWidth: 2, ), - backgroundColor: Colors.transparent, - strokeWidth: 2, ), - ), - SizedBox( - width: !isInProgress || isPreviewAvailable ? 2 : 6, - ), - Text( - isInProgress - ? "Processing" - : isInQueue - ? "Queued" - : isBeforeCutoffDate - ? "Ineligible" - : isFailed - ? "Failed" - : widget.isPreviewPlayer - ? "Play original" - : "Play stream", - style: const TextStyle( - fontSize: 12, - fontWeight: FontWeight.w600, + SizedBox( + width: !isInProgress || isPreviewAvailable ? 2 : 6, ), - ), - ], + Text( + isInProgress + ? "Processing" + : isInQueue + ? "Queued" + : isBeforeCutoffDate + ? "Ineligible" + : isFailed + ? "Failed" + : widget.isPreviewPlayer + ? "Play original" + : "Play stream", + style: const TextStyle( + fontSize: 12, + fontWeight: FontWeight.w600, + ), + ), + ], + ), ), ), ), diff --git a/mobile/lib/ui/viewer/file/preview_video_widget.dart b/mobile/lib/ui/viewer/file/preview_video_widget.dart index 9ad9c35b9b9..b275e3d844a 100644 --- a/mobile/lib/ui/viewer/file/preview_video_widget.dart +++ b/mobile/lib/ui/viewer/file/preview_video_widget.dart @@ -30,12 +30,14 @@ class PreviewVideoWidget extends StatefulWidget { final bool? autoPlay; final String? tagPrefix; final Function(bool)? playbackCallback; + final void Function()? onStreamChange; const PreviewVideoWidget( this.file, { this.autoPlay = false, this.tagPrefix, this.playbackCallback, + this.onStreamChange, super.key, }); @@ -91,7 +93,7 @@ class _PreviewVideoWidgetState extends State { if (file != null) { if (flagService.internalUser) { final d = - FileDataService.instance.previewIds![widget.file.uploadedFileID!]; + FileDataService.instance.previewIds?[widget.file.uploadedFileID!]; if (d != null && widget.file.fileSize != null) { // show toast with human readable size final size = formatBytes(widget.file.fileSize!); @@ -249,7 +251,10 @@ class _PreviewVideoWidgetState extends State { looping: true, allowMuting: true, allowFullScreen: false, - customControls: VideoControls(file: widget.file), + customControls: VideoControls( + file: widget.file, + onStreamChange: widget.onStreamChange, + ), ); return Container( color: Colors.black, diff --git a/mobile/lib/ui/viewer/file/video_control.dart b/mobile/lib/ui/viewer/file/video_control.dart index 51c68d08cb0..e89e583dd94 100644 --- a/mobile/lib/ui/viewer/file/video_control.dart +++ b/mobile/lib/ui/viewer/file/video_control.dart @@ -14,8 +14,10 @@ class VideoControls extends StatefulWidget { const VideoControls({ super.key, required this.file, + required this.onStreamChange, }); final EnteFile file; + final void Function()? onStreamChange; @override State createState() { @@ -93,6 +95,7 @@ class _VideoControlsState extends State { showControls: !_hideStuff, file: widget.file, isPreviewPlayer: true, + onStreamChange: widget.onStreamChange, ), _buildBottomBar(context), ], diff --git a/mobile/lib/ui/viewer/file/video_widget.dart b/mobile/lib/ui/viewer/file/video_widget.dart index c582cc1e7a4..1fa11303797 100644 --- a/mobile/lib/ui/viewer/file/video_widget.dart +++ b/mobile/lib/ui/viewer/file/video_widget.dart @@ -5,6 +5,9 @@ import "package:logging/logging.dart"; import "package:photos/core/event_bus.dart"; import "package:photos/events/use_media_kit_for_video.dart"; import "package:photos/models/file/file.dart"; +import "package:photos/services/filedata/filedata_service.dart"; +import "package:photos/services/preview_video_store.dart"; +import "package:photos/ui/viewer/file/preview_video_widget.dart"; import "package:photos/ui/viewer/file/video_widget_media_kit_new.dart"; import "package:photos/ui/viewer/file/video_widget_native.dart"; @@ -28,6 +31,7 @@ class _VideoWidgetState extends State { bool useNativeVideoPlayer = true; late final StreamSubscription useMediaKitForVideoSubscription; + bool selectPreviewForPlay = true; @override void initState() { @@ -49,17 +53,47 @@ class _VideoWidgetState extends State { @override Widget build(BuildContext context) { + final isPreviewVideoPlayable = + PreviewVideoStore.instance.isVideoStreamingEnabled && + widget.file.isUploaded && + // widget.file.localID == null && + (FileDataService.instance.previewIds + ?.containsKey(widget.file.uploadedFileID!) ?? + false); + if (isPreviewVideoPlayable && selectPreviewForPlay) { + return PreviewVideoWidget( + widget.file, + tagPrefix: widget.tagPrefix, + playbackCallback: widget.playbackCallback, + onStreamChange: () { + setState(() { + selectPreviewForPlay = false; + }); + }, + ); + } + if (useNativeVideoPlayer) { return VideoWidgetNative( widget.file, tagPrefix: widget.tagPrefix, playbackCallback: widget.playbackCallback, + onStreamChange: () { + setState(() { + selectPreviewForPlay = true; + }); + }, ); } else { return VideoWidgetMediaKitNew( widget.file, tagPrefix: widget.tagPrefix, playbackCallback: widget.playbackCallback, + onStreamChange: () { + setState(() { + selectPreviewForPlay = true; + }); + }, ); } } diff --git a/mobile/lib/ui/viewer/file/video_widget_media_kit_new.dart b/mobile/lib/ui/viewer/file/video_widget_media_kit_new.dart index 5bddea1753a..7d1ba08cfa9 100644 --- a/mobile/lib/ui/viewer/file/video_widget_media_kit_new.dart +++ b/mobile/lib/ui/viewer/file/video_widget_media_kit_new.dart @@ -27,11 +27,14 @@ class VideoWidgetMediaKitNew extends StatefulWidget { final String? tagPrefix; final Function(bool)? playbackCallback; final bool isFromMemories; + final void Function()? onStreamChange; + const VideoWidgetMediaKitNew( this.file, { this.tagPrefix, this.playbackCallback, this.isFromMemories = false, + this.onStreamChange, super.key, }); @@ -232,11 +235,14 @@ class _VideoWidget extends StatefulWidget { final VideoController controller; final Function(bool)? playbackCallback; final bool isFromMemories; + final void Function()? onStreamChange; + const _VideoWidget( this.file, this.controller, this.playbackCallback, { required this.isFromMemories, + this.onStreamChange, }); @override @@ -368,6 +374,7 @@ class __VideoWidgetState extends State<_VideoWidget> { return PreviewStatusWidget( showControls: value, file: widget.file, + onStreamChange: widget.onStreamChange, ); }, ), diff --git a/mobile/lib/ui/viewer/file/video_widget_native.dart b/mobile/lib/ui/viewer/file/video_widget_native.dart index e41c99e01d9..810bca4dd6a 100644 --- a/mobile/lib/ui/viewer/file/video_widget_native.dart +++ b/mobile/lib/ui/viewer/file/video_widget_native.dart @@ -36,11 +36,13 @@ class VideoWidgetNative extends StatefulWidget { final String? tagPrefix; final Function(bool)? playbackCallback; final bool isFromMemories; + final void Function()? onStreamChange; const VideoWidgetNative( this.file, { this.tagPrefix, this.playbackCallback, this.isFromMemories = false, + required this.onStreamChange, super.key, }); @@ -283,6 +285,7 @@ class _VideoWidgetNativeState extends State return PreviewStatusWidget( showControls: value, file: widget.file, + onStreamChange: widget.onStreamChange, ); }, ), diff --git a/mobile/lib/utils/file_uploader.dart b/mobile/lib/utils/file_uploader.dart index 1bf215eefb8..05bf94a9472 100644 --- a/mobile/lib/utils/file_uploader.dart +++ b/mobile/lib/utils/file_uploader.dart @@ -475,9 +475,7 @@ class FileUploader { } void _uploadPreview(EnteFile file) { - final collection = - CollectionsService.instance.getCollectionByID(file.collectionID!); - if (Platform.isIOS || collection?.displayName == "Camera") { + if (file.fileType == FileType.video) { unawaited( _previewVideoStore.chunkAndUploadVideo(null, file), ); From 47914126e50996e24b2cb9872521002ce79890ee Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Sat, 1 Feb 2025 03:35:01 +0530 Subject: [PATCH 72/90] fix: add mechanism to show the stream details --- mobile/lib/models/ffmpeg/ffprobe_props.dart | 4 +- mobile/lib/ui/viewer/file/file_app_bar.dart | 3 +- .../ui/viewer/file/file_details_widget.dart | 13 +++ .../ui/viewer/file/preview_status_widget.dart | 6 +- .../file_properties_item_widget.dart | 9 ++- .../preview_properties_item_widget.dart | 81 +++++++++++++++++++ 6 files changed, 106 insertions(+), 10 deletions(-) create mode 100644 mobile/lib/ui/viewer/file_details/preview_properties_item_widget.dart diff --git a/mobile/lib/models/ffmpeg/ffprobe_props.dart b/mobile/lib/models/ffmpeg/ffprobe_props.dart index 71336268966..e2d01381022 100644 --- a/mobile/lib/models/ffmpeg/ffprobe_props.dart +++ b/mobile/lib/models/ffmpeg/ffprobe_props.dart @@ -105,7 +105,7 @@ class FFProbeProps { switch (stringKey) { case FFProbeKeys.bitrate: case FFProbeKeys.bps: - result.bitrate = _formatMetric(json[key], 'b/s'); + result.bitrate = formatBitrate(json[key], 'b/s'); parsedData[stringKey] = result.bitrate; break; case FFProbeKeys.byteCount: @@ -369,7 +369,7 @@ class FFProbeProps { return null; } - static String? _formatMetric(dynamic size, String unit, {int round = 2}) { + static String? formatBitrate(dynamic size, String unit, {int round = 2}) { if (size == null) return null; if (size is String) { final parsed = int.tryParse(size); diff --git a/mobile/lib/ui/viewer/file/file_app_bar.dart b/mobile/lib/ui/viewer/file/file_app_bar.dart index 96a5a25f7d5..70461edcfd3 100644 --- a/mobile/lib/ui/viewer/file/file_app_bar.dart +++ b/mobile/lib/ui/viewer/file/file_app_bar.dart @@ -300,7 +300,8 @@ class FileAppBarState extends State { ); } } - if (flagService.internalUser) { + if (flagService.internalUser && + PreviewVideoStore.instance.isVideoStreamingEnabled) { items.add( PopupMenuItem( value: 99, diff --git a/mobile/lib/ui/viewer/file/file_details_widget.dart b/mobile/lib/ui/viewer/file/file_details_widget.dart index e378233e471..96f4455163c 100644 --- a/mobile/lib/ui/viewer/file/file_details_widget.dart +++ b/mobile/lib/ui/viewer/file/file_details_widget.dart @@ -32,6 +32,7 @@ import 'package:photos/ui/viewer/file_details/exif_item_widgets.dart'; import "package:photos/ui/viewer/file_details/faces_item_widget.dart"; import "package:photos/ui/viewer/file_details/file_properties_item_widget.dart"; import "package:photos/ui/viewer/file_details/location_tags_widget.dart"; +import "package:photos/ui/viewer/file_details/preview_properties_item_widget.dart"; import "package:photos/ui/viewer/file_details/video_exif_item.dart"; import "package:photos/utils/exif_util.dart"; import "package:photos/utils/file_util.dart"; @@ -177,6 +178,18 @@ class _FileDetailsWidgetState extends State { ), ), const FileDetailsDivider(), + if (widget.file.pubMagicMetadata?.previewSize != null) ...[ + ValueListenableBuilder( + valueListenable: _exifNotifier, + builder: (context, _, __) => PreviewPropertiesItemWidget( + file, + _isImage, + _exifData, + _currentUserID, + ), + ), + const FileDetailsDivider(), + ], ]); fileDetailsTiles.add( ValueListenableBuilder( diff --git a/mobile/lib/ui/viewer/file/preview_status_widget.dart b/mobile/lib/ui/viewer/file/preview_status_widget.dart index c81b5fa1995..1ad79e15c0b 100644 --- a/mobile/lib/ui/viewer/file/preview_status_widget.dart +++ b/mobile/lib/ui/viewer/file/preview_status_widget.dart @@ -70,9 +70,9 @@ class _PreviewStatusWidgetState extends State { ?.containsKey(widget.file.uploadedFileID) ?? false); - // if (widget.file.localID != null && preview == null) { - // return const SizedBox(); - // } + if (widget.file.localID != null && preview == null) { + return const SizedBox(); + } final isInProgress = preview?.status == PreviewItemStatus.compressing || preview?.status == PreviewItemStatus.uploading; final isInQueue = preview?.status == PreviewItemStatus.inQueue || diff --git a/mobile/lib/ui/viewer/file_details/file_properties_item_widget.dart b/mobile/lib/ui/viewer/file_details/file_properties_item_widget.dart index a92b99374d2..0640f92eebe 100644 --- a/mobile/lib/ui/viewer/file_details/file_properties_item_widget.dart +++ b/mobile/lib/ui/viewer/file_details/file_properties_item_widget.dart @@ -48,6 +48,7 @@ class _FilePropertiesItemWidgetState extends State { } Future> _subTitleSection() async { + final textStyle = getEnteTextTheme(context).miniMuted; final StringBuffer dimString = StringBuffer(); if (widget.exifData["resolution"] != null && widget.exifData["megaPixels"] != null) { @@ -66,7 +67,7 @@ class _FilePropertiesItemWidgetState extends State { subSectionWidgets.add( Text( dimString.toString(), - style: getEnteTextTheme(context).miniMuted, + style: textStyle, ), ); } @@ -80,7 +81,7 @@ class _FilePropertiesItemWidgetState extends State { subSectionWidgets.add( Text( formatBytes(fileSize), - style: getEnteTextTheme(context).miniMuted, + style: textStyle, ), ); @@ -90,7 +91,7 @@ class _FilePropertiesItemWidgetState extends State { subSectionWidgets.add( Text( secondsToHHMMSS(widget.file.duration!), - style: getEnteTextTheme(context).miniMuted, + style: textStyle, ), ); } else { @@ -98,7 +99,7 @@ class _FilePropertiesItemWidgetState extends State { subSectionWidgets.add( Text( asset?.videoDuration.toString().split(".")[0] ?? "", - style: getEnteTextTheme(context).miniMuted, + style: textStyle, ), ); } diff --git a/mobile/lib/ui/viewer/file_details/preview_properties_item_widget.dart b/mobile/lib/ui/viewer/file_details/preview_properties_item_widget.dart new file mode 100644 index 00000000000..8e93eaa88e6 --- /dev/null +++ b/mobile/lib/ui/viewer/file_details/preview_properties_item_widget.dart @@ -0,0 +1,81 @@ +import "package:flutter/material.dart"; +import "package:photos/models/ffmpeg/ffprobe_props.dart"; +import 'package:photos/models/file/file.dart'; +import "package:photos/models/file/file_type.dart"; +import "package:photos/theme/ente_theme.dart"; +import "package:photos/ui/components/info_item_widget.dart"; +import "package:photos/utils/data_util.dart"; + +class PreviewPropertiesItemWidget extends StatefulWidget { + final EnteFile file; + final bool isImage; + final Map exifData; + final int currentUserID; + const PreviewPropertiesItemWidget( + this.file, + this.isImage, + this.exifData, + this.currentUserID, { + super.key, + }); + @override + State createState() => + _PreviewPropertiesItemWidgetState(); +} + +class _PreviewPropertiesItemWidgetState + extends State { + @override + Widget build(BuildContext context) { + return InfoItemWidget( + key: const ValueKey("Stream properties"), + leadingIcon: Icons.play_circle_outline, + title: "Stream Details", + subtitleSection: _subTitleSection(), + ); + } + + Future> _subTitleSection() async { + final textStyle = getEnteTextTheme(context).miniMuted; + final subSectionWidgets = []; + + if (widget.file.pubMagicMetadata?.previewWidth != null && + widget.file.pubMagicMetadata?.previewHeight != null) { + subSectionWidgets.add( + Text( + "${widget.file.pubMagicMetadata?.previewWidth}x${widget.file.pubMagicMetadata?.previewHeight}", + style: textStyle, + ), + ); + } + + if (widget.file.pubMagicMetadata?.previewSize != null) { + subSectionWidgets.add( + Text( + formatBytes(widget.file.pubMagicMetadata!.previewSize!), + style: textStyle, + ), + ); + } + + if ((widget.file.fileType == FileType.video) && + (widget.file.localID != null || widget.file.duration != 0) && + widget.file.pubMagicMetadata!.previewSize != null) { + // show bitrate, i.e. size * 8 / duration formatted + final result = FFProbeProps.formatBitrate( + widget.file.pubMagicMetadata!.previewSize! * 8 / widget.file.duration!, + "b/s", + ); + if (result != null) { + subSectionWidgets.add( + Text( + result, + style: textStyle, + ), + ); + } + } + + return Future.value(subSectionWidgets); + } +} From 0f7445b2191c475ef0f3092603935da710f6bdf4 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Sat, 1 Feb 2025 03:35:26 +0530 Subject: [PATCH 73/90] chore: add TODO --- .../ui/viewer/file_details/preview_properties_item_widget.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mobile/lib/ui/viewer/file_details/preview_properties_item_widget.dart b/mobile/lib/ui/viewer/file_details/preview_properties_item_widget.dart index 8e93eaa88e6..e2e27a3b718 100644 --- a/mobile/lib/ui/viewer/file_details/preview_properties_item_widget.dart +++ b/mobile/lib/ui/viewer/file_details/preview_properties_item_widget.dart @@ -30,7 +30,7 @@ class _PreviewPropertiesItemWidgetState return InfoItemWidget( key: const ValueKey("Stream properties"), leadingIcon: Icons.play_circle_outline, - title: "Stream Details", + title: "Stream Details", // TODO: i18n subtitleSection: _subTitleSection(), ); } From bf1613d91d0cd7b688e74fb0bffbc2fddf1dcab8 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Sat, 1 Feb 2025 04:21:17 +0530 Subject: [PATCH 74/90] fix: store in pub magic metadata --- mobile/lib/services/preview_video_store.dart | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/mobile/lib/services/preview_video_store.dart b/mobile/lib/services/preview_video_store.dart index 2bf386b724a..ad3dae527de 100644 --- a/mobile/lib/services/preview_video_store.dart +++ b/mobile/lib/services/preview_video_store.dart @@ -25,8 +25,10 @@ import "package:photos/models/base/id.dart"; import "package:photos/models/ffmpeg/ffprobe_props.dart"; import "package:photos/models/file/file.dart"; import "package:photos/models/file/file_type.dart"; +import "package:photos/models/metadata/file_magic.dart"; import "package:photos/models/preview/preview_item.dart"; import "package:photos/models/preview/preview_item_status.dart"; +import "package:photos/services/file_magic_service.dart"; import "package:photos/services/filedata/filedata_service.dart"; import "package:photos/utils/exif_util.dart"; import "package:photos/utils/file_key.dart"; @@ -239,6 +241,17 @@ class PreviewVideoStore { objectID: objectID, objectSize: objectSize, ); + + FFProbeProps? props2; + props2 = await getVideoPropsAsync(playlistFile); + FileMagicService.instance.updatePublicMagicMetadata( + [enteFile], + { + previewHeightKey: props2?.height, + previewWidthKey: props2?.width, + previewSizeKey: objectSize, + }, + ).ignore(); _logger.info("Video preview uploaded for $enteFile"); } catch (_) { error = "Failed to upload video preview"; From 330a3b4deaec4067634f4088be7128ea80ff36f5 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Sat, 1 Feb 2025 04:21:55 +0530 Subject: [PATCH 75/90] chore: bump version --- mobile/pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mobile/pubspec.yaml b/mobile/pubspec.yaml index d73f91bc637..33902e37b15 100644 --- a/mobile/pubspec.yaml +++ b/mobile/pubspec.yaml @@ -12,7 +12,7 @@ description: ente photos application # Read more about iOS versioning at # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html -version: 0.9.89+989 +version: 0.9.90+990 publish_to: none environment: From a72ae560c9bacd3074904422d1ac697cc65ada7d Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Mon, 3 Feb 2025 03:37:29 +0530 Subject: [PATCH 76/90] fix: processing and display logic --- mobile/lib/db/files_db.dart | 2 +- mobile/lib/services/preview_video_store.dart | 364 +++++++++--------- mobile/lib/ui/home/status_bar_widget.dart | 12 +- .../ui/viewer/file/preview_status_widget.dart | 4 +- 4 files changed, 191 insertions(+), 191 deletions(-) diff --git a/mobile/lib/db/files_db.dart b/mobile/lib/db/files_db.dart index 7edb10696a3..b4b370155ce 100644 --- a/mobile/lib/db/files_db.dart +++ b/mobile/lib/db/files_db.dart @@ -1737,7 +1737,7 @@ class FilesDB { final db = await instance.sqliteAsyncDB; final results = await db.getAll( ''' - SELECT * FROM $filesTable WHERE $columnFileType = ? AND $columnCreationTime > ? + SELECT * FROM $filesTable WHERE $columnFileType = ? AND $columnCreationTime > ? AND $columnUploadedFileID != -1 ''', [getInt(fileType), beginDate.millisecondsSinceEpoch], ); diff --git a/mobile/lib/services/preview_video_store.dart b/mobile/lib/services/preview_video_store.dart index ad3dae527de..106131ead07 100644 --- a/mobile/lib/services/preview_video_store.dart +++ b/mobile/lib/services/preview_video_store.dart @@ -97,209 +97,211 @@ class PreviewVideoStore { if (file == null) return; try { - // check if playlist already exist - await getPlaylist(enteFile); - final resultUrl = await getPreviewUrl(enteFile); - if (ctx != null && ctx.mounted) { - showShortToast(ctx, 'Video preview already exists'); - } - debugPrint("previewUrl $resultUrl"); - return; - } catch (e, s) { - if (e is DioError && e.response?.statusCode == 404) { - _logger.info("No preview found for $enteFile"); - } else { - _logger.warning("Failed to get playlist for $enteFile", e, s); - rethrow; + try { + // check if playlist already exist + await getPlaylist(enteFile); + final resultUrl = await getPreviewUrl(enteFile); + if (ctx != null && ctx.mounted) { + showShortToast(ctx, 'Video preview already exists'); + } + debugPrint("previewUrl $resultUrl"); + return; + } catch (e, s) { + if (e is DioError && e.response?.statusCode == 404) { + _logger.info("No preview found for $enteFile"); + } else { + _logger.warning("Failed to get playlist for $enteFile", e, s); + rethrow; + } } - } - final fileSize = file.lengthSync(); - FFProbeProps? props; + final fileSize = file.lengthSync(); + FFProbeProps? props; - if (fileSize <= 10 * 1024 * 1024) { - props = await getVideoPropsAsync(file); - final videoData = List.from(props?.propData?["streams"] ?? []) - .firstWhereOrNull((e) => e["type"] == "video"); + if (fileSize <= 10 * 1024 * 1024) { + props = await getVideoPropsAsync(file); + final videoData = List.from(props?.propData?["streams"] ?? []) + .firstWhereOrNull((e) => e["type"] == "video"); - final codec = videoData["codec_name"]?.toString().toLowerCase(); - final codecIsH264 = codec?.contains("h264") ?? false; - if (codecIsH264) { + final codec = videoData["codec_name"]?.toString().toLowerCase(); + final codecIsH264 = codec?.contains("h264") ?? false; + if (codecIsH264) { + return; + } + } + if (isUploading) { + _items[enteFile.uploadedFileID!] = PreviewItem( + status: PreviewItemStatus.inQueue, + file: enteFile, + collectionID: enteFile.collectionID ?? 0, + ); + Bus.instance.fire(PreviewUpdatedEvent(_items)); + files.add(enteFile); return; } - } - if (isUploading) { _items[enteFile.uploadedFileID!] = PreviewItem( - status: PreviewItemStatus.inQueue, + status: PreviewItemStatus.compressing, file: enteFile, collectionID: enteFile.collectionID ?? 0, ); Bus.instance.fire(PreviewUpdatedEvent(_items)); - files.add(enteFile); - return; - } - _items[enteFile.uploadedFileID!] = PreviewItem( - status: PreviewItemStatus.compressing, - file: enteFile, - collectionID: enteFile.collectionID ?? 0, - ); - Bus.instance.fire(PreviewUpdatedEvent(_items)); - - props ??= await getVideoPropsAsync(file); - - final videoData = List.from(props?.propData?["streams"] ?? []) - .firstWhereOrNull((e) => e["type"] == "video"); - final codec = videoData["codec_name"]?.toString().toLowerCase(); - final bitrate = props?.duration?.inSeconds != null - ? (fileSize * 8) / props!.duration!.inSeconds - : null; + props ??= await getVideoPropsAsync(file); - final String tempDir = Configuration.instance.getTempDirectory(); - final String prefix = - "${tempDir}_${enteFile.uploadedFileID}_${newID("pv")}"; - Directory(prefix).createSync(); - _logger.info('Compressing video ${enteFile.displayName}'); - final key = enc.Key.fromLength(16); + final videoData = List.from(props?.propData?["streams"] ?? []) + .firstWhereOrNull((e) => e["type"] == "video"); - final keyfile = File('$prefix/keyfile.key'); - keyfile.writeAsBytesSync(key.bytes); + final codec = videoData["codec_name"]?.toString().toLowerCase(); + final bitrate = props?.duration?.inSeconds != null + ? (fileSize * 8) / props!.duration!.inSeconds + : null; + + final String tempDir = Configuration.instance.getTempDirectory(); + final String prefix = + "${tempDir}_${enteFile.uploadedFileID}_${newID("pv")}"; + Directory(prefix).createSync(); + _logger.info('Compressing video ${enteFile.displayName}'); + final key = enc.Key.fromLength(16); + + final keyfile = File('$prefix/keyfile.key'); + keyfile.writeAsBytesSync(key.bytes); + + final keyinfo = File('$prefix/mykey.keyinfo'); + keyinfo.writeAsStringSync("data:text/plain;base64,${key.base64}\n" + "${keyfile.path}\n"); + _logger.info( + 'Generating HLS Playlist ${enteFile.displayName} at $prefix/output.m3u8}', + ); - final keyinfo = File('$prefix/mykey.keyinfo'); - keyinfo.writeAsStringSync("data:text/plain;base64,${key.base64}\n" - "${keyfile.path}\n"); - _logger.info( - 'Generating HLS Playlist ${enteFile.displayName} at $prefix/output.m3u8}', - ); + FFmpegSession? session; + final codecIsH264 = codec?.contains("h264") ?? false; + if (bitrate != null && bitrate <= 4000 * 1000 && codecIsH264) { + // create playlist without compression, as is + session = await FFmpegKit.execute( + '-i "${file.path}" ' + '-metadata:s:v:0 rotate=0 ' // Adjust metadata if needed + '-c:v copy ' // Copy the original video codec + '-c:a copy ' // Copy the original audio codec + '-f hls -hls_time 10 -hls_flags single_file ' + '-hls_list_size 0 -hls_key_info_file ${keyinfo.path} ' + '$prefix/output.m3u8', + ); + } else if (bitrate != null && + codec != null && + bitrate <= 2000 * 1000 && + !codecIsH264) { + // compress video with crf=21, h264 no change in resolution or frame rate, + // just change color scheme + session = await FFmpegKit.execute( + '-i "${file.path}" ' + '-metadata:s:v:0 rotate=0 ' // Keep rotation metadata + '-vf "format=yuv420p10le,zscale=transfer=linear,tonemap=tonemap=hable:desat=0:peak=10,zscale=transfer=bt709:matrix=bt709:primaries=bt709,format=yuv420p" ' // Adjust color scheme + '-color_primaries bt709 -color_trc bt709 -colorspace bt709 ' // Set color profile to BT.709 + '-c:v libx264 -crf 21 -preset medium ' // Compress with CRF=21 using H.264 + '-c:a copy ' // Keep original audio + '-f hls -hls_time 10 -hls_flags single_file ' + '-hls_list_size 0 -hls_key_info_file ${keyinfo.path} ' + '$prefix/output.m3u8', + ); + } - FFmpegSession? session; - final codecIsH264 = codec?.contains("h264") ?? false; - if (bitrate != null && bitrate <= 4000 * 1000 && codecIsH264) { - // create playlist without compression, as is - session = await FFmpegKit.execute( + session ??= await FFmpegKit.execute( '-i "${file.path}" ' - '-metadata:s:v:0 rotate=0 ' // Adjust metadata if needed - '-c:v copy ' // Copy the original video codec - '-c:a copy ' // Copy the original audio codec - '-f hls -hls_time 10 -hls_flags single_file ' + '-metadata:s:v:0 rotate=0 ' + '-vf "scale=-2:720,fps=30,format=yuv420p10le,zscale=transfer=linear,tonemap=tonemap=hable:desat=0:peak=10,zscale=transfer=bt709:matrix=bt709:primaries=bt709,format=yuv420p" ' + '-color_primaries bt709 -color_trc bt709 -colorspace bt709 ' + '-x264-params "colorprim=bt709:transfer=bt709:colormatrix=bt709" ' + '-c:v libx264 -b:v 2000k -preset medium ' + '-c:a aac -b:a 128k -f hls -hls_time 10 -hls_flags single_file ' '-hls_list_size 0 -hls_key_info_file ${keyinfo.path} ' '$prefix/output.m3u8', ); - } else if (bitrate != null && - codec != null && - bitrate <= 2000 * 1000 && - !codecIsH264) { - // compress video with crf=21, h264 no change in resolution or frame rate, - // just change color scheme - session = await FFmpegKit.execute( - '-i "${file.path}" ' - '-metadata:s:v:0 rotate=0 ' // Keep rotation metadata - '-vf "format=yuv420p10le,zscale=transfer=linear,tonemap=tonemap=hable:desat=0:peak=10,zscale=transfer=bt709:matrix=bt709:primaries=bt709,format=yuv420p" ' // Adjust color scheme - '-color_primaries bt709 -color_trc bt709 -colorspace bt709 ' // Set color profile to BT.709 - '-c:v libx264 -crf 21 -preset medium ' // Compress with CRF=21 using H.264 - '-c:a copy ' // Keep original audio - '-f hls -hls_time 10 -hls_flags single_file ' - '-hls_list_size 0 -hls_key_info_file ${keyinfo.path} ' - '$prefix/output.m3u8', - ); - } - session ??= await FFmpegKit.execute( - '-i "${file.path}" ' - '-metadata:s:v:0 rotate=0 ' - '-vf "scale=-2:720,fps=30,format=yuv420p10le,zscale=transfer=linear,tonemap=tonemap=hable:desat=0:peak=10,zscale=transfer=bt709:matrix=bt709:primaries=bt709,format=yuv420p" ' - '-color_primaries bt709 -color_trc bt709 -colorspace bt709 ' - '-x264-params "colorprim=bt709:transfer=bt709:colormatrix=bt709" ' - '-c:v libx264 -b:v 2000k -preset medium ' - '-c:a aac -b:a 128k -f hls -hls_time 10 -hls_flags single_file ' - '-hls_list_size 0 -hls_key_info_file ${keyinfo.path} ' - '$prefix/output.m3u8', - ); + final returnCode = await session.getReturnCode(); - final returnCode = await session.getReturnCode(); + String? error; - String? error; - - if (ReturnCode.isSuccess(returnCode)) { - try { - _items[enteFile.uploadedFileID!] = PreviewItem( - status: PreviewItemStatus.uploading, - file: enteFile, - collectionID: enteFile.collectionID ?? 0, - ); - Bus.instance.fire(PreviewUpdatedEvent(_items)); - - _logger.info('Playlist Generated ${enteFile.displayName}'); - final playlistFile = File("$prefix/output.m3u8"); - final previewFile = File("$prefix/output.ts"); - final result = await _uploadPreviewVideo(enteFile, previewFile); - final String objectID = result.$1; - final objectSize = result.$2; - await _reportVideoPreview( - enteFile, - playlistFile, - objectID: objectID, - objectSize: objectSize, - ); + if (ReturnCode.isSuccess(returnCode)) { + try { + _items[enteFile.uploadedFileID!] = PreviewItem( + status: PreviewItemStatus.uploading, + file: enteFile, + collectionID: enteFile.collectionID ?? 0, + ); + Bus.instance.fire(PreviewUpdatedEvent(_items)); + + _logger.info('Playlist Generated ${enteFile.displayName}'); + final playlistFile = File("$prefix/output.m3u8"); + final previewFile = File("$prefix/output.ts"); + final result = await _uploadPreviewVideo(enteFile, previewFile); + final String objectID = result.$1; + final objectSize = result.$2; + await _reportVideoPreview( + enteFile, + playlistFile, + objectID: objectID, + objectSize: objectSize, + ); - FFProbeProps? props2; - props2 = await getVideoPropsAsync(playlistFile); - FileMagicService.instance.updatePublicMagicMetadata( - [enteFile], - { - previewHeightKey: props2?.height, - previewWidthKey: props2?.width, - previewSizeKey: objectSize, - }, - ).ignore(); - _logger.info("Video preview uploaded for $enteFile"); - } catch (_) { - error = "Failed to upload video preview"; - } - } else if (ReturnCode.isCancel(returnCode)) { - _logger.warning("FFmpeg command cancelled"); - error = "FFmpeg command cancelled"; - } else { - _logger.severe("FFmpeg command failed with return code $returnCode"); - if (kDebugMode) { - final output = await session.getOutput(); - _logger.severe(output); + FFProbeProps? props2; + props2 = await getVideoPropsAsync(playlistFile); + FileMagicService.instance.updatePublicMagicMetadata( + [enteFile], + { + previewHeightKey: props2?.height, + previewWidthKey: props2?.width, + previewSizeKey: objectSize, + }, + ).ignore(); + _logger.info("Video preview uploaded for $enteFile"); + } catch (_) { + error = "Failed to upload video preview"; + } + } else if (ReturnCode.isCancel(returnCode)) { + _logger.warning("FFmpeg command cancelled"); + error = "FFmpeg command cancelled"; + } else { + _logger.severe("FFmpeg command failed with return code $returnCode"); + if (kDebugMode) { + final output = await session.getOutput(); + _logger.severe(output); + } + error = "Failed to generate video preview"; } - error = "Failed to generate video preview"; - } - if (error == null) { - _items[enteFile.uploadedFileID!] = PreviewItem( - status: PreviewItemStatus.uploaded, - file: enteFile, - retryCount: _items[enteFile.uploadedFileID!]!.retryCount, - collectionID: enteFile.collectionID ?? 0, - ); - } else { - if (_items[enteFile.uploadedFileID!]!.retryCount < 3) { - _items[enteFile.uploadedFileID!] = PreviewItem( - status: PreviewItemStatus.retry, - file: enteFile, - retryCount: _items[enteFile.uploadedFileID!]!.retryCount + 1, - collectionID: enteFile.collectionID ?? 0, - ); - files.add(enteFile); - } else { + if (error == null) { _items[enteFile.uploadedFileID!] = PreviewItem( - status: PreviewItemStatus.failed, + status: PreviewItemStatus.uploaded, file: enteFile, retryCount: _items[enteFile.uploadedFileID!]!.retryCount, collectionID: enteFile.collectionID ?? 0, ); + } else { + if (_items[enteFile.uploadedFileID!]!.retryCount < 3) { + _items[enteFile.uploadedFileID!] = PreviewItem( + status: PreviewItemStatus.retry, + file: enteFile, + retryCount: _items[enteFile.uploadedFileID!]!.retryCount + 1, + collectionID: enteFile.collectionID ?? 0, + ); + files.add(enteFile); + } else { + _items[enteFile.uploadedFileID!] = PreviewItem( + status: PreviewItemStatus.failed, + file: enteFile, + retryCount: _items[enteFile.uploadedFileID!]!.retryCount, + collectionID: enteFile.collectionID ?? 0, + ); + } + } + Bus.instance.fire(PreviewUpdatedEvent(_items)); + } finally { + isUploading = false; + if (files.isNotEmpty) { + final file = files.first; + files.remove(file); + await chunkAndUploadVideo(ctx, file); } - } - Bus.instance.fire(PreviewUpdatedEvent(_items)); - - isUploading = false; - if (files.isNotEmpty) { - final file = files.first; - files.remove(file); - await chunkAndUploadVideo(ctx, file); } } @@ -498,18 +500,8 @@ class PreviewVideoStore { } final allFiles = files - .where( - (file) => - file.uploadedFileID != null && - previewIds?[file.uploadedFileID] == null && - file.fileType == FileType.video, - ) + .where((file) => previewIds?[file.uploadedFileID] == null) .toList(); - final file = allFiles.first; - allFiles.remove(file); - - this.files.addAll(allFiles); - await chunkAndUploadVideo(null, file); // set all video status to be in queue for (final file in allFiles) { @@ -519,5 +511,13 @@ class PreviewVideoStore { collectionID: file.collectionID ?? 0, ); } + Bus.instance.fire(PreviewUpdatedEvent(_items)); + + final file = allFiles.first; + allFiles.remove(file); + + this.files.addAll(allFiles); + + await chunkAndUploadVideo(null, file); } } diff --git a/mobile/lib/ui/home/status_bar_widget.dart b/mobile/lib/ui/home/status_bar_widget.dart index 68302b999da..3b026bc7fd6 100644 --- a/mobile/lib/ui/home/status_bar_widget.dart +++ b/mobile/lib/ui/home/status_bar_widget.dart @@ -35,7 +35,7 @@ class StatusBarWidget extends StatefulWidget { class _StatusBarWidgetState extends State { static final _logger = Logger("StatusBarWidget"); - int previewCount = 0; + late int previewCount = 0; late StreamSubscription _subscription; late StreamSubscription _notificationSubscription; @@ -88,12 +88,11 @@ class _StatusBarWidgetState extends State { } }); - // visit LinkedHashMap and calculat previewCount previewCount = PreviewVideoStore.instance.previews.values .where( (element) => - element.status == PreviewItemStatus.compressing || - element.status == PreviewItemStatus.uploading, + element.status != PreviewItemStatus.uploaded && + element.status != PreviewItemStatus.failed, ) .length; @@ -102,10 +101,11 @@ class _StatusBarWidgetState extends State { previewCount = event.items.values .where( (element) => - element.status == PreviewItemStatus.compressing || - element.status == PreviewItemStatus.uploading, + element.status != PreviewItemStatus.uploaded && + element.status != PreviewItemStatus.failed, ) .length; + setState(() {}); }); super.initState(); } diff --git a/mobile/lib/ui/viewer/file/preview_status_widget.dart b/mobile/lib/ui/viewer/file/preview_status_widget.dart index 1ad79e15c0b..2dc18a549a8 100644 --- a/mobile/lib/ui/viewer/file/preview_status_widget.dart +++ b/mobile/lib/ui/viewer/file/preview_status_widget.dart @@ -79,9 +79,9 @@ class _PreviewStatusWidgetState extends State { preview?.status == PreviewItemStatus.retry; final isFailed = preview?.status == PreviewItemStatus.failed; - final isBeforeCutoffDate = widget.file.updationTime != null && + final isBeforeCutoffDate = widget.file.creationTime != null && PreviewVideoStore.instance.videoStreamingCutoff != null - ? DateTime.fromMillisecondsSinceEpoch(widget.file.updationTime!) + ? DateTime.fromMillisecondsSinceEpoch(widget.file.creationTime!) .isBefore( PreviewVideoStore.instance.videoStreamingCutoff!, ) From 05d83cf39039f42e267607f606da6c276fc1a1f1 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Mon, 3 Feb 2025 04:40:28 +0530 Subject: [PATCH 77/90] fix: handle edge cases for preview uploads --- mobile/lib/services/preview_video_store.dart | 2 ++ mobile/lib/ui/viewer/file/preview_status_widget.dart | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/mobile/lib/services/preview_video_store.dart b/mobile/lib/services/preview_video_store.dart index 106131ead07..8b62490f4a3 100644 --- a/mobile/lib/services/preview_video_store.dart +++ b/mobile/lib/services/preview_video_store.dart @@ -126,6 +126,8 @@ class PreviewVideoStore { final codec = videoData["codec_name"]?.toString().toLowerCase(); final codecIsH264 = codec?.contains("h264") ?? false; if (codecIsH264) { + _items.removeWhere((key, value) => value.file == enteFile); + Bus.instance.fire(PreviewUpdatedEvent(_items)); return; } } diff --git a/mobile/lib/ui/viewer/file/preview_status_widget.dart b/mobile/lib/ui/viewer/file/preview_status_widget.dart index 2dc18a549a8..d15266c9c73 100644 --- a/mobile/lib/ui/viewer/file/preview_status_widget.dart +++ b/mobile/lib/ui/viewer/file/preview_status_widget.dart @@ -70,7 +70,8 @@ class _PreviewStatusWidgetState extends State { ?.containsKey(widget.file.uploadedFileID) ?? false); - if (widget.file.localID != null && preview == null) { + if (widget.file.localID != null && + (preview == null || preview?.status == PreviewItemStatus.uploaded)) { return const SizedBox(); } final isInProgress = preview?.status == PreviewItemStatus.compressing || From 95ae2c30ecc9f9c403b94c15c9579f95f5c72d0d Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Mon, 3 Feb 2025 04:51:41 +0530 Subject: [PATCH 78/90] fix: add i18n & autoplay --- mobile/lib/generated/intl/messages_en.dart | 3 +++ mobile/lib/generated/l10n.dart | 20 +++++++++++++++++++ mobile/lib/l10n/intl_en.arb | 4 +++- mobile/lib/ui/home/status_bar_widget.dart | 2 +- .../ui/viewer/file/preview_video_widget.dart | 2 +- .../preview_properties_item_widget.dart | 2 +- 6 files changed, 29 insertions(+), 4 deletions(-) diff --git a/mobile/lib/generated/intl/messages_en.dart b/mobile/lib/generated/intl/messages_en.dart index fad39495afc..b13d25434c3 100644 --- a/mobile/lib/generated/intl/messages_en.dart +++ b/mobile/lib/generated/intl/messages_en.dart @@ -1387,6 +1387,8 @@ class MessageLookup extends MessageLookupByLibrary { "proceed": MessageLookupByLibrary.simpleMessage("Proceed"), "processed": MessageLookupByLibrary.simpleMessage("Processed"), "processingImport": m55, + "processingVideos": + MessageLookupByLibrary.simpleMessage("Processing Videos"), "publicLinkCreated": MessageLookupByLibrary.simpleMessage("Public link created"), "publicLinkEnabled": @@ -1716,6 +1718,7 @@ class MessageLookup extends MessageLookupByLibrary { "storageLimitExceeded": MessageLookupByLibrary.simpleMessage("Storage limit exceeded"), "storageUsageInfo": m73, + "streamDetails": MessageLookupByLibrary.simpleMessage("Stream details"), "strongStrength": MessageLookupByLibrary.simpleMessage("Strong"), "subAlreadyLinkedErrMessage": m74, "subWillBeCancelledOn": m75, diff --git a/mobile/lib/generated/l10n.dart b/mobile/lib/generated/l10n.dart index 31734da09ef..40d365f314d 100644 --- a/mobile/lib/generated/l10n.dart +++ b/mobile/lib/generated/l10n.dart @@ -10968,6 +10968,26 @@ class S { args: [], ); } + + /// `Processing Videos` + String get processingVideos { + return Intl.message( + 'Processing Videos', + name: 'processingVideos', + desc: '', + args: [], + ); + } + + /// `Stream details` + String get streamDetails { + return Intl.message( + 'Stream details', + name: 'streamDetails', + desc: '', + args: [], + ); + } } class AppLocalizationDelegate extends LocalizationsDelegate { diff --git a/mobile/lib/l10n/intl_en.arb b/mobile/lib/l10n/intl_en.arb index 0bbcb75b18a..89a21be0676 100644 --- a/mobile/lib/l10n/intl_en.arb +++ b/mobile/lib/l10n/intl_en.arb @@ -1601,5 +1601,7 @@ "linkEmail": "Link email", "link": "Link", "noEnteAccountExclamation": "No Ente account!", - "videoStreaming": "Video Streaming" + "videoStreaming": "Video Streaming", + "processingVideos": "Processing Videos", + "streamDetails": "Stream details" } \ No newline at end of file diff --git a/mobile/lib/ui/home/status_bar_widget.dart b/mobile/lib/ui/home/status_bar_widget.dart index 3b026bc7fd6..1705cece1eb 100644 --- a/mobile/lib/ui/home/status_bar_widget.dart +++ b/mobile/lib/ui/home/status_bar_widget.dart @@ -144,7 +144,7 @@ class _StatusBarWidgetState extends State { forceCustomPageRoute: true, ).ignore(); }, - child: const Text("Processing Videos"), // TODO: i18n + child: Text(S.of(context).processingVideos), ) : const Text("ente", style: brandStyleMedium), ), diff --git a/mobile/lib/ui/viewer/file/preview_video_widget.dart b/mobile/lib/ui/viewer/file/preview_video_widget.dart index b275e3d844a..f21bed17521 100644 --- a/mobile/lib/ui/viewer/file/preview_video_widget.dart +++ b/mobile/lib/ui/viewer/file/preview_video_widget.dart @@ -34,7 +34,7 @@ class PreviewVideoWidget extends StatefulWidget { const PreviewVideoWidget( this.file, { - this.autoPlay = false, + this.autoPlay = true, this.tagPrefix, this.playbackCallback, this.onStreamChange, diff --git a/mobile/lib/ui/viewer/file_details/preview_properties_item_widget.dart b/mobile/lib/ui/viewer/file_details/preview_properties_item_widget.dart index e2e27a3b718..c0819438231 100644 --- a/mobile/lib/ui/viewer/file_details/preview_properties_item_widget.dart +++ b/mobile/lib/ui/viewer/file_details/preview_properties_item_widget.dart @@ -30,7 +30,7 @@ class _PreviewPropertiesItemWidgetState return InfoItemWidget( key: const ValueKey("Stream properties"), leadingIcon: Icons.play_circle_outline, - title: "Stream Details", // TODO: i18n + title: S.of(context).streamDetails, subtitleSection: _subTitleSection(), ); } From b70de5cc6740259f6bce91a3e0603030eeead7dc Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Mon, 3 Feb 2025 04:56:43 +0530 Subject: [PATCH 79/90] fix: imports --- .../ui/viewer/file_details/preview_properties_item_widget.dart | 1 + 1 file changed, 1 insertion(+) diff --git a/mobile/lib/ui/viewer/file_details/preview_properties_item_widget.dart b/mobile/lib/ui/viewer/file_details/preview_properties_item_widget.dart index c0819438231..8fff4c69316 100644 --- a/mobile/lib/ui/viewer/file_details/preview_properties_item_widget.dart +++ b/mobile/lib/ui/viewer/file_details/preview_properties_item_widget.dart @@ -1,4 +1,5 @@ import "package:flutter/material.dart"; +import "package:photos/generated/l10n.dart"; import "package:photos/models/ffmpeg/ffprobe_props.dart"; import 'package:photos/models/file/file.dart'; import "package:photos/models/file/file_type.dart"; From 9f14d60b42d0398410a2e43ce94d0a86768951f2 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Mon, 3 Feb 2025 05:40:19 +0530 Subject: [PATCH 80/90] fix: skip local videos for preview --- mobile/lib/ui/viewer/file/video_widget.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mobile/lib/ui/viewer/file/video_widget.dart b/mobile/lib/ui/viewer/file/video_widget.dart index 1fa11303797..dd343c98f5a 100644 --- a/mobile/lib/ui/viewer/file/video_widget.dart +++ b/mobile/lib/ui/viewer/file/video_widget.dart @@ -56,7 +56,7 @@ class _VideoWidgetState extends State { final isPreviewVideoPlayable = PreviewVideoStore.instance.isVideoStreamingEnabled && widget.file.isUploaded && - // widget.file.localID == null && + widget.file.localID == null && (FileDataService.instance.previewIds ?.containsKey(widget.file.uploadedFileID!) ?? false); From df769a97ec398f7447bd5f290ba329e83e75ea67 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Mon, 3 Feb 2025 06:02:54 +0530 Subject: [PATCH 81/90] chore: bump version --- mobile/pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mobile/pubspec.yaml b/mobile/pubspec.yaml index 33902e37b15..be6907a7c00 100644 --- a/mobile/pubspec.yaml +++ b/mobile/pubspec.yaml @@ -12,7 +12,7 @@ description: ente photos application # Read more about iOS versioning at # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html -version: 0.9.90+990 +version: 0.9.91+991 publish_to: none environment: From f93dbf063363dec00c1a8243adff4a0c99c22845 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Tue, 4 Feb 2025 12:09:25 +0530 Subject: [PATCH 82/90] fix: issues --- mobile/lib/main.dart | 5 ++++- mobile/lib/services/preview_video_store.dart | 7 +------ 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/mobile/lib/main.dart b/mobile/lib/main.dart index 9efc312fc5b..75dc61dcd39 100644 --- a/mobile/lib/main.dart +++ b/mobile/lib/main.dart @@ -287,7 +287,6 @@ Future _init(bool isBackground, {String via = ''}) async { } _logger.info("PushService/HomeWidget done $tlog"); PreviewVideoStore.instance.init(preferences); - PreviewVideoStore.instance.putFilesForPreviewCreation().ignore(); unawaited(SemanticSearchService.instance.init()); unawaited(MLService.instance.init()); await PersonService.init( @@ -295,6 +294,10 @@ Future _init(bool isBackground, {String via = ''}) async { MLDataDB.instance, preferences, ); + Future.delayed( + const Duration(seconds: 10), + PreviewVideoStore.instance.putFilesForPreviewCreation, + ).ignore(); initComplete = true; _logger.info("Initialization done $tlog"); } catch (e, s) { diff --git a/mobile/lib/services/preview_video_store.dart b/mobile/lib/services/preview_video_store.dart index 8b62490f4a3..8fd2c27bd9a 100644 --- a/mobile/lib/services/preview_video_store.dart +++ b/mobile/lib/services/preview_video_store.dart @@ -494,13 +494,8 @@ class PreviewVideoStore { fileType: FileType.video, beginDate: cutoff, ); - await Future.delayed(const Duration(seconds: 5)); - var previewIds = FileDataService.instance.previewIds; - if (previewIds == null) { - await Future.delayed(const Duration(seconds: 15)); - previewIds = FileDataService.instance.previewIds; - } + final previewIds = FileDataService.instance.previewIds; final allFiles = files .where((file) => previewIds?[file.uploadedFileID] == null) .toList(); From 2c20ace11083a971a2073ed9498f62a290093bdd Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Tue, 4 Feb 2025 12:29:25 +0530 Subject: [PATCH 83/90] fix: add delay, retry count and error --- mobile/lib/main.dart | 10 ++++++---- mobile/lib/services/preview_video_store.dart | 8 ++++++-- mobile/lib/ui/settings/backup/backup_item_card.dart | 13 +++++++++---- 3 files changed, 21 insertions(+), 10 deletions(-) diff --git a/mobile/lib/main.dart b/mobile/lib/main.dart index 75dc61dcd39..11040f030d5 100644 --- a/mobile/lib/main.dart +++ b/mobile/lib/main.dart @@ -294,10 +294,12 @@ Future _init(bool isBackground, {String via = ''}) async { MLDataDB.instance, preferences, ); - Future.delayed( - const Duration(seconds: 10), - PreviewVideoStore.instance.putFilesForPreviewCreation, - ).ignore(); + unawaited( + Future.delayed( + const Duration(seconds: 10), + PreviewVideoStore.instance.putFilesForPreviewCreation, + ), + ); initComplete = true; _logger.info("Initialization done $tlog"); } catch (e, s) { diff --git a/mobile/lib/services/preview_video_store.dart b/mobile/lib/services/preview_video_store.dart index 8fd2c27bd9a..7e364645dae 100644 --- a/mobile/lib/services/preview_video_store.dart +++ b/mobile/lib/services/preview_video_store.dart @@ -135,6 +135,7 @@ class PreviewVideoStore { _items[enteFile.uploadedFileID!] = PreviewItem( status: PreviewItemStatus.inQueue, file: enteFile, + retryCount: _items[enteFile.uploadedFileID!]?.retryCount ?? 0, collectionID: enteFile.collectionID ?? 0, ); Bus.instance.fire(PreviewUpdatedEvent(_items)); @@ -144,6 +145,7 @@ class PreviewVideoStore { _items[enteFile.uploadedFileID!] = PreviewItem( status: PreviewItemStatus.compressing, file: enteFile, + retryCount: _items[enteFile.uploadedFileID!]?.retryCount ?? 0, collectionID: enteFile.collectionID ?? 0, ); Bus.instance.fire(PreviewUpdatedEvent(_items)); @@ -229,6 +231,7 @@ class PreviewVideoStore { status: PreviewItemStatus.uploading, file: enteFile, collectionID: enteFile.collectionID ?? 0, + retryCount: _items[enteFile.uploadedFileID!]?.retryCount ?? 0, ); Bus.instance.fire(PreviewUpdatedEvent(_items)); @@ -264,11 +267,11 @@ class PreviewVideoStore { error = "FFmpeg command cancelled"; } else { _logger.severe("FFmpeg command failed with return code $returnCode"); + final output = await session.getOutput(); if (kDebugMode) { - final output = await session.getOutput(); _logger.severe(output); } - error = "Failed to generate video preview"; + error = "Failed to generate video preview\nError: $output"; } if (error == null) { @@ -293,6 +296,7 @@ class PreviewVideoStore { file: enteFile, retryCount: _items[enteFile.uploadedFileID!]!.retryCount, collectionID: enteFile.collectionID ?? 0, + error: error, ); } } diff --git a/mobile/lib/ui/settings/backup/backup_item_card.dart b/mobile/lib/ui/settings/backup/backup_item_card.dart index 571ecf4e30c..063eec8fe22 100644 --- a/mobile/lib/ui/settings/backup/backup_item_card.dart +++ b/mobile/lib/ui/settings/backup/backup_item_card.dart @@ -51,6 +51,9 @@ class _BackupItemCardState extends State { @override Widget build(BuildContext context) { final colorScheme = getEnteColorScheme(context); + final hasError = widget.item.error != null || + widget.preview?.status == PreviewItemStatus.failed; + return Container( height: 60, margin: const EdgeInsets.symmetric(vertical: 10), @@ -112,8 +115,8 @@ class _BackupItemCardState extends State { ], ), ), - if (widget.item.error != null) const SizedBox(width: 12), - if (widget.item.error != null) + if (hasError) const SizedBox(width: 12), + if (hasError) SizedBox( height: 48, width: 48, @@ -130,8 +133,10 @@ class _BackupItemCardState extends State { ex.runtimeType.toString() + " - " + ex.toString(); - } else { + } else if (widget.item.error != null) { errorMessage = widget.item.error.toString(); + } else if (widget.preview?.error != null) { + errorMessage = widget.preview!.error!.toString(); } showErrorDialog( context, @@ -141,7 +146,7 @@ class _BackupItemCardState extends State { }, ), ), - if (widget.item.error == null) const SizedBox(width: 12), + if (hasError) const SizedBox(width: 12), SizedBox( height: 48, width: 48, From d80093bfed29195e1a17275c22cb161d4a359b07 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Tue, 4 Feb 2025 12:57:52 +0530 Subject: [PATCH 84/90] fix: show options even if local variant is available but preview is too, shout correct errors, --- mobile/lib/services/preview_video_store.dart | 10 +++++++--- mobile/lib/ui/viewer/file/preview_status_widget.dart | 3 +-- mobile/lib/ui/viewer/file/video_widget.dart | 3 +-- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/mobile/lib/services/preview_video_store.dart b/mobile/lib/services/preview_video_store.dart index 7e364645dae..1a096e54e3e 100644 --- a/mobile/lib/services/preview_video_store.dart +++ b/mobile/lib/services/preview_video_store.dart @@ -259,15 +259,19 @@ class PreviewVideoStore { }, ).ignore(); _logger.info("Video preview uploaded for $enteFile"); - } catch (_) { - error = "Failed to upload video preview"; + } catch (err, sT) { + error = "Failed to upload video preview\nError: $err"; + _logger.shout("Video preview uploaded for $enteFile", err, sT); } } else if (ReturnCode.isCancel(returnCode)) { _logger.warning("FFmpeg command cancelled"); error = "FFmpeg command cancelled"; } else { - _logger.severe("FFmpeg command failed with return code $returnCode"); final output = await session.getOutput(); + _logger.shout( + "FFmpeg command failed with return code $returnCode", + output ?? "Error not found", + ); if (kDebugMode) { _logger.severe(output); } diff --git a/mobile/lib/ui/viewer/file/preview_status_widget.dart b/mobile/lib/ui/viewer/file/preview_status_widget.dart index d15266c9c73..d5a4bf53ee8 100644 --- a/mobile/lib/ui/viewer/file/preview_status_widget.dart +++ b/mobile/lib/ui/viewer/file/preview_status_widget.dart @@ -70,8 +70,7 @@ class _PreviewStatusWidgetState extends State { ?.containsKey(widget.file.uploadedFileID) ?? false); - if (widget.file.localID != null && - (preview == null || preview?.status == PreviewItemStatus.uploaded)) { + if (preview == null && !isPreviewAvailable) { return const SizedBox(); } final isInProgress = preview?.status == PreviewItemStatus.compressing || diff --git a/mobile/lib/ui/viewer/file/video_widget.dart b/mobile/lib/ui/viewer/file/video_widget.dart index dd343c98f5a..237e4cdaca5 100644 --- a/mobile/lib/ui/viewer/file/video_widget.dart +++ b/mobile/lib/ui/viewer/file/video_widget.dart @@ -31,7 +31,7 @@ class _VideoWidgetState extends State { bool useNativeVideoPlayer = true; late final StreamSubscription useMediaKitForVideoSubscription; - bool selectPreviewForPlay = true; + late bool selectPreviewForPlay = widget.file.localID == null; @override void initState() { @@ -56,7 +56,6 @@ class _VideoWidgetState extends State { final isPreviewVideoPlayable = PreviewVideoStore.instance.isVideoStreamingEnabled && widget.file.isUploaded && - widget.file.localID == null && (FileDataService.instance.previewIds ?.containsKey(widget.file.uploadedFileID!) ?? false); From 8fb51174cecb516428aee57f35dcc53f2d5609b5 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Tue, 4 Feb 2025 13:12:20 +0530 Subject: [PATCH 85/90] fix: allow force upload on failed click --- mobile/lib/services/preview_video_store.dart | 13 ++++++++++--- .../ui/settings/backup/backup_item_card.dart | 19 ++++++++++++++----- 2 files changed, 24 insertions(+), 8 deletions(-) diff --git a/mobile/lib/services/preview_video_store.dart b/mobile/lib/services/preview_video_store.dart index 1a096e54e3e..a4c2f86462a 100644 --- a/mobile/lib/services/preview_video_store.dart +++ b/mobile/lib/services/preview_video_store.dart @@ -91,7 +91,11 @@ class PreviewVideoStore { return DateTime.fromMillisecondsSinceEpoch(milliseconds); } - Future chunkAndUploadVideo(BuildContext? ctx, EnteFile enteFile) async { + Future chunkAndUploadVideo( + BuildContext? ctx, + EnteFile enteFile, [ + bool forceUpload = false, + ]) async { if (!enteFile.isUploaded || !isVideoStreamingEnabled) return; final file = await getFile(enteFile, isOrigin: true); if (file == null) return; @@ -135,7 +139,9 @@ class PreviewVideoStore { _items[enteFile.uploadedFileID!] = PreviewItem( status: PreviewItemStatus.inQueue, file: enteFile, - retryCount: _items[enteFile.uploadedFileID!]?.retryCount ?? 0, + retryCount: forceUpload + ? 0 + : _items[enteFile.uploadedFileID!]?.retryCount ?? 0, collectionID: enteFile.collectionID ?? 0, ); Bus.instance.fire(PreviewUpdatedEvent(_items)); @@ -145,7 +151,8 @@ class PreviewVideoStore { _items[enteFile.uploadedFileID!] = PreviewItem( status: PreviewItemStatus.compressing, file: enteFile, - retryCount: _items[enteFile.uploadedFileID!]?.retryCount ?? 0, + retryCount: + forceUpload ? 0 : _items[enteFile.uploadedFileID!]?.retryCount ?? 0, collectionID: enteFile.collectionID ?? 0, ); Bus.instance.fire(PreviewUpdatedEvent(_items)); diff --git a/mobile/lib/ui/settings/backup/backup_item_card.dart b/mobile/lib/ui/settings/backup/backup_item_card.dart index 063eec8fe22..a17cdcfd408 100644 --- a/mobile/lib/ui/settings/backup/backup_item_card.dart +++ b/mobile/lib/ui/settings/backup/backup_item_card.dart @@ -5,6 +5,7 @@ import "package:photos/models/backup/backup_item.dart"; import "package:photos/models/backup/backup_item_status.dart"; import "package:photos/models/preview/preview_item.dart"; import "package:photos/models/preview/preview_item_status.dart"; +import "package:photos/services/preview_video_store.dart"; import 'package:photos/theme/ente_theme.dart'; import "package:photos/ui/viewer/file/thumbnail_widget.dart"; import "package:photos/utils/dialog_util.dart"; @@ -171,11 +172,19 @@ class _BackupItemCardState extends State { "assets/processing-video.png", ), ), - PreviewItemStatus.failed => SizedBox( - width: 24, - height: 24, - child: Image.asset( - "assets/processing-video-failed.png", + PreviewItemStatus.failed => GestureDetector( + onTap: () => + PreviewVideoStore.instance.chunkAndUploadVideo( + context, + widget.item.file, + true, + ), + child: SizedBox( + width: 24, + height: 24, + child: Image.asset( + "assets/processing-video-failed.png", + ), ), ), PreviewItemStatus.retry || From 9bddc9882742aa3ca7e4ec43a39d276e24d89604 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Tue, 4 Feb 2025 13:27:51 +0530 Subject: [PATCH 86/90] fix: begin date conversion and check --- mobile/lib/db/files_db.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mobile/lib/db/files_db.dart b/mobile/lib/db/files_db.dart index b4b370155ce..3baaa06e174 100644 --- a/mobile/lib/db/files_db.dart +++ b/mobile/lib/db/files_db.dart @@ -1739,7 +1739,7 @@ class FilesDB { ''' SELECT * FROM $filesTable WHERE $columnFileType = ? AND $columnCreationTime > ? AND $columnUploadedFileID != -1 ''', - [getInt(fileType), beginDate.millisecondsSinceEpoch], + [getInt(fileType), beginDate.microsecondsSinceEpoch], ); return convertToFiles(results); } From d357d9ecbe707ecdad8afc95de00cb9ce0a856f1 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Tue, 4 Feb 2025 13:42:52 +0530 Subject: [PATCH 87/90] fix: clear Queue code & uploading id code --- mobile/lib/services/preview_video_store.dart | 32 ++++++++++++++------ 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/mobile/lib/services/preview_video_store.dart b/mobile/lib/services/preview_video_store.dart index a4c2f86462a..e21775c571b 100644 --- a/mobile/lib/services/preview_video_store.dart +++ b/mobile/lib/services/preview_video_store.dart @@ -51,7 +51,7 @@ class PreviewVideoStore { final videoCacheManager = VideoCacheManager.instance; LinkedHashSet files = LinkedHashSet(); - bool isUploading = false; + int uploadingFileId = -1; final _dio = NetworkClient.instance.enteDio; @@ -79,12 +79,16 @@ class PreviewVideoStore { if (isVideoStreamingEnabled) { await putFilesForPreviewCreation(); } else { - _items.clear(); - Bus.instance.fire(PreviewUpdatedEvent(_items)); - files.clear(); + clearQueue(); } } + clearQueue() { + _items.clear(); + Bus.instance.fire(PreviewUpdatedEvent(_items)); + files.clear(); + } + DateTime? get videoStreamingCutoff { final milliseconds = _prefs.getInt(_videoStreamingCutoff); if (milliseconds == null) return null; @@ -96,11 +100,16 @@ class PreviewVideoStore { EnteFile enteFile, [ bool forceUpload = false, ]) async { - if (!enteFile.isUploaded || !isVideoStreamingEnabled) return; - final file = await getFile(enteFile, isOrigin: true); - if (file == null) return; + if (!isVideoStreamingEnabled) { + clearQueue(); + return; + } try { + if (!enteFile.isUploaded) return; + final file = await getFile(enteFile, isOrigin: true); + if (file == null) return; + try { // check if playlist already exist await getPlaylist(enteFile); @@ -109,6 +118,8 @@ class PreviewVideoStore { showShortToast(ctx, 'Video preview already exists'); } debugPrint("previewUrl $resultUrl"); + _items.removeWhere((key, value) => value.file == enteFile); + Bus.instance.fire(PreviewUpdatedEvent(_items)); return; } catch (e, s) { if (e is DioError && e.response?.statusCode == 404) { @@ -135,7 +146,7 @@ class PreviewVideoStore { return; } } - if (isUploading) { + if (uploadingFileId >= 0) { _items[enteFile.uploadedFileID!] = PreviewItem( status: PreviewItemStatus.inQueue, file: enteFile, @@ -148,6 +159,7 @@ class PreviewVideoStore { files.add(enteFile); return; } + uploadingFileId = enteFile.uploadedFileID!; _items[enteFile.uploadedFileID!] = PreviewItem( status: PreviewItemStatus.compressing, file: enteFile, @@ -313,7 +325,9 @@ class PreviewVideoStore { } Bus.instance.fire(PreviewUpdatedEvent(_items)); } finally { - isUploading = false; + if (uploadingFileId == enteFile.uploadedFileID!) { + uploadingFileId = -1; + } if (files.isNotEmpty) { final file = files.first; files.remove(file); From aa07b53bbde8c123797947e495315faac691dcac Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Tue, 4 Feb 2025 14:36:24 +0530 Subject: [PATCH 88/90] fix: add delay from init --- mobile/lib/main.dart | 6 ------ mobile/lib/services/preview_video_store.dart | 5 +++++ 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/mobile/lib/main.dart b/mobile/lib/main.dart index 11040f030d5..70deb70cd74 100644 --- a/mobile/lib/main.dart +++ b/mobile/lib/main.dart @@ -294,12 +294,6 @@ Future _init(bool isBackground, {String via = ''}) async { MLDataDB.instance, preferences, ); - unawaited( - Future.delayed( - const Duration(seconds: 10), - PreviewVideoStore.instance.putFilesForPreviewCreation, - ), - ); initComplete = true; _logger.info("Initialization done $tlog"); } catch (e, s) { diff --git a/mobile/lib/services/preview_video_store.dart b/mobile/lib/services/preview_video_store.dart index e21775c571b..0d92229003a 100644 --- a/mobile/lib/services/preview_video_store.dart +++ b/mobile/lib/services/preview_video_store.dart @@ -57,6 +57,11 @@ class PreviewVideoStore { void init(SharedPreferences prefs) { _prefs = prefs; + + Future.delayed( + const Duration(seconds: 10), + PreviewVideoStore.instance.putFilesForPreviewCreation, + ); } late final SharedPreferences _prefs; From c59dd66c0d29f46d6f963a6bd04fee2dabdb2658 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Tue, 4 Feb 2025 15:13:05 +0530 Subject: [PATCH 89/90] fix: logic of displayling size, height and width --- mobile/lib/models/metadata/file_magic.dart | 14 ----- mobile/lib/models/preview/playlist_data.dart | 62 +++++++++++++++++++ mobile/lib/services/preview_video_store.dart | 58 ++++++++++++----- .../ui/viewer/file/file_details_widget.dart | 6 +- .../ui/viewer/file/preview_video_widget.dart | 6 +- .../preview_properties_item_widget.dart | 50 ++++++++++----- 6 files changed, 148 insertions(+), 48 deletions(-) create mode 100644 mobile/lib/models/preview/playlist_data.dart diff --git a/mobile/lib/models/metadata/file_magic.dart b/mobile/lib/models/metadata/file_magic.dart index acbeb4b4ed3..7599b7c82f3 100644 --- a/mobile/lib/models/metadata/file_magic.dart +++ b/mobile/lib/models/metadata/file_magic.dart @@ -14,9 +14,6 @@ const latKey = "lat"; const longKey = "long"; const motionVideoIndexKey = "mvi"; const noThumbKey = "noThumb"; -const previewWidthKey = "previewWidth"; -const previewHeightKey = "previewHeight"; -const previewSizeKey = "previewSize"; class MagicMetadata { // 0 -> visible @@ -65,11 +62,6 @@ class PubMagicMetadata { // 1 -> panorama int? mediaType; - // preview related metadata for videos - int? previewWidth; - int? previewHeight; - int? previewSize; - PubMagicMetadata({ this.editedTime, this.editedName, @@ -82,9 +74,6 @@ class PubMagicMetadata { this.mvi, this.noThumb, this.mediaType, - this.previewWidth, - this.previewHeight, - this.previewSize, }); factory PubMagicMetadata.fromEncodedJson(String encodedJson) => @@ -107,9 +96,6 @@ class PubMagicMetadata { mvi: map[motionVideoIndexKey], noThumb: map[noThumbKey], mediaType: map[mediaTypeKey], - previewWidth: map[previewWidthKey], - previewHeight: map[previewHeightKey], - previewSize: map[previewSizeKey], ); } diff --git a/mobile/lib/models/preview/playlist_data.dart b/mobile/lib/models/preview/playlist_data.dart new file mode 100644 index 00000000000..e5628dc1315 --- /dev/null +++ b/mobile/lib/models/preview/playlist_data.dart @@ -0,0 +1,62 @@ +// ignore_for_file: public_member_api_docs, sort_constructors_first +import 'dart:convert'; +import "dart:io"; + +class PlaylistData { + File preview; + int? width; + int? height; + int? size; + + PlaylistData({ + required this.preview, + this.width, + this.height, + this.size, + }); + + PlaylistData copyWith({ + File? preview, + int? width, + int? height, + int? size, + }) { + return PlaylistData( + preview: preview ?? this.preview, + width: width ?? this.width, + height: height ?? this.height, + size: size ?? this.size, + ); + } + + Map toMap() { + return { + 'preview': preview.readAsStringSync(), + 'width': width, + 'height': height, + 'size': size, + }; + } + + String toJson() => json.encode(toMap()); + + @override + String toString() { + return 'PlaylistData(preview: $preview, width: $width, height: $height, size: $size)'; + } + + @override + bool operator ==(covariant PlaylistData other) { + if (identical(this, other)) return true; + + return other.preview == preview && + other.width == width && + other.height == height && + other.size == size; + } + + @override + int get hashCode { + return preview.hashCode ^ width.hashCode ^ height.hashCode ^ size.hashCode; + } +} diff --git a/mobile/lib/services/preview_video_store.dart b/mobile/lib/services/preview_video_store.dart index 0d92229003a..7dc850e2cc8 100644 --- a/mobile/lib/services/preview_video_store.dart +++ b/mobile/lib/services/preview_video_store.dart @@ -25,10 +25,9 @@ import "package:photos/models/base/id.dart"; import "package:photos/models/ffmpeg/ffprobe_props.dart"; import "package:photos/models/file/file.dart"; import "package:photos/models/file/file_type.dart"; -import "package:photos/models/metadata/file_magic.dart"; +import "package:photos/models/preview/playlist_data.dart"; import "package:photos/models/preview/preview_item.dart"; import "package:photos/models/preview/preview_item_status.dart"; -import "package:photos/services/file_magic_service.dart"; import "package:photos/services/filedata/filedata_service.dart"; import "package:photos/utils/exif_util.dart"; import "package:photos/utils/file_key.dart"; @@ -265,23 +264,36 @@ class PreviewVideoStore { final result = await _uploadPreviewVideo(enteFile, previewFile); final String objectID = result.$1; final objectSize = result.$2; + + // Logic to fetch width & height of preview + //-allowed_extensions ALL -i "https://example.com/stream.m3u8" -frames:v 1 -c copy frame.ts + final FFmpegSession session2 = await FFmpegKit.execute( + '-allowed_extensions ALL -i "$prefix/output.m3u8" -frames:v 1 -c copy "$prefix/frame.ts"', + ); + final returnCode2 = await session2.getReturnCode(); + int? width, height; + try { + if (ReturnCode.isSuccess(returnCode2)) { + FFProbeProps? props2; + final file2 = File("$prefix/frame.ts"); + + props2 = await getVideoPropsAsync(file2); + width = props2?.width; + height = props2?.height; + } + } catch (_) { + _logger.warning("Failed to get width and height", _); + } + await _reportVideoPreview( enteFile, playlistFile, objectID: objectID, objectSize: objectSize, + width: width, + height: height, ); - FFProbeProps? props2; - props2 = await getVideoPropsAsync(playlistFile); - FileMagicService.instance.updatePublicMagicMetadata( - [enteFile], - { - previewHeightKey: props2?.height, - previewWidthKey: props2?.width, - previewSizeKey: objectSize, - }, - ).ignore(); _logger.info("Video preview uploaded for $enteFile"); } catch (err, sT) { error = "Failed to upload video preview\nError: $err"; @@ -346,6 +358,8 @@ class PreviewVideoStore { File playlist, { required String objectID, required int objectSize, + required int? width, + required int? height, }) async { _logger.info("Pushing playlist for ${file.uploadedFileID}"); try { @@ -355,6 +369,8 @@ class PreviewVideoStore { { "playlist": playlistContent, 'type': 'hls_video', + 'width': width, + 'height': height, }, encryptionKey, ); @@ -411,12 +427,13 @@ class PreviewVideoStore { return "video_preview_$objectKey"; } - Future getPlaylist(EnteFile file) async { + Future getPlaylist(EnteFile file) async { return await _getPlaylist(file); } - Future _getPlaylist(EnteFile file) async { + Future _getPlaylist(EnteFile file) async { _logger.info("Getting playlist for $file"); + int? width, height, size; try { final objectKey = FileDataService.instance.previewIds?[file.uploadedFileID!]?.objectId; @@ -443,6 +460,11 @@ class PreviewVideoStore { header: header, ); finalPlaylist = playlistData["playlist"]; + + width = playlistData["width"]; + height = playlistData["height"]; + size = response.data["data"]["objectSize"]; + if (objectKey != null) { unawaited( cacheManager.putFile( @@ -488,7 +510,13 @@ class PreviewVideoStore { final playlistFile = File("${tempDir.path}/${file.uploadedFileID}.m3u8"); await playlistFile.writeAsString(finalPlaylist); _logger.info("Writing playlist to ${playlistFile.path}"); - return playlistFile; + final data = PlaylistData( + preview: playlistFile, + width: width, + height: height, + size: size, + ); + return data; } catch (_) { rethrow; } diff --git a/mobile/lib/ui/viewer/file/file_details_widget.dart b/mobile/lib/ui/viewer/file/file_details_widget.dart index 96f4455163c..11389088603 100644 --- a/mobile/lib/ui/viewer/file/file_details_widget.dart +++ b/mobile/lib/ui/viewer/file/file_details_widget.dart @@ -18,6 +18,7 @@ import "package:photos/models/location/location.dart"; import "package:photos/models/metadata/file_magic.dart"; import "package:photos/service_locator.dart"; import "package:photos/services/file_magic_service.dart"; +import "package:photos/services/filedata/filedata_service.dart"; import "package:photos/services/user_remote_flag_service.dart"; import 'package:photos/theme/ente_theme.dart'; import 'package:photos/ui/components/buttons/icon_button_widget.dart'; @@ -178,7 +179,10 @@ class _FileDetailsWidgetState extends State { ), ), const FileDetailsDivider(), - if (widget.file.pubMagicMetadata?.previewSize != null) ...[ + if (widget.file.uploadedFileID != null && + (FileDataService.instance.previewIds + ?.containsKey(widget.file.uploadedFileID) ?? + false)) ...[ ValueListenableBuilder( valueListenable: _exifNotifier, builder: (context, _, __) => PreviewPropertiesItemWidget( diff --git a/mobile/lib/ui/viewer/file/preview_video_widget.dart b/mobile/lib/ui/viewer/file/preview_video_widget.dart index f21bed17521..dbaa409ed4a 100644 --- a/mobile/lib/ui/viewer/file/preview_video_widget.dart +++ b/mobile/lib/ui/viewer/file/preview_video_widget.dart @@ -81,7 +81,7 @@ class _PreviewVideoWidgetState extends State { } Future _checkForPreview() async { - final file = await PreviewVideoStore.instance + final data = await PreviewVideoStore.instance .getPlaylist(widget.file) .onError((error, stackTrace) { if (!mounted) return; @@ -90,7 +90,7 @@ class _PreviewVideoWidgetState extends State { return null; }); if (!mounted) return; - if (file != null) { + if (data != null) { if (flagService.internalUser) { final d = FileDataService.instance.previewIds?[widget.file.uploadedFileID!]; @@ -105,7 +105,7 @@ class _PreviewVideoWidgetState extends State { showShortToast(context, "Playing preview"); } } - previewFile = file; + previewFile = data.preview; _setVideoPlayerController(); } } diff --git a/mobile/lib/ui/viewer/file_details/preview_properties_item_widget.dart b/mobile/lib/ui/viewer/file_details/preview_properties_item_widget.dart index 8fff4c69316..cf3e05fe110 100644 --- a/mobile/lib/ui/viewer/file_details/preview_properties_item_widget.dart +++ b/mobile/lib/ui/viewer/file_details/preview_properties_item_widget.dart @@ -3,6 +3,7 @@ import "package:photos/generated/l10n.dart"; import "package:photos/models/ffmpeg/ffprobe_props.dart"; import 'package:photos/models/file/file.dart'; import "package:photos/models/file/file_type.dart"; +import "package:photos/services/preview_video_store.dart"; import "package:photos/theme/ente_theme.dart"; import "package:photos/ui/components/info_item_widget.dart"; import "package:photos/utils/data_util.dart"; @@ -26,34 +27,43 @@ class PreviewPropertiesItemWidget extends StatefulWidget { class _PreviewPropertiesItemWidgetState extends State { + Widget? child; + + @override + void initState() { + super.initState(); + _getSection(); + } + @override Widget build(BuildContext context) { - return InfoItemWidget( - key: const ValueKey("Stream properties"), - leadingIcon: Icons.play_circle_outline, - title: S.of(context).streamDetails, - subtitleSection: _subTitleSection(), - ); + return child ?? const SizedBox(); } - Future> _subTitleSection() async { + Future _getSection() async { final textStyle = getEnteTextTheme(context).miniMuted; final subSectionWidgets = []; - if (widget.file.pubMagicMetadata?.previewWidth != null && - widget.file.pubMagicMetadata?.previewHeight != null) { + final data = await PreviewVideoStore.instance + .getPlaylist(widget.file) + .onError((error, stackTrace) { + if (!mounted) return; + return null; + }); + + if (data!.width != null && data.height != null) { subSectionWidgets.add( Text( - "${widget.file.pubMagicMetadata?.previewWidth}x${widget.file.pubMagicMetadata?.previewHeight}", + "${data.width!}x${data.height!}", style: textStyle, ), ); } - if (widget.file.pubMagicMetadata?.previewSize != null) { + if (data.size != null) { subSectionWidgets.add( Text( - formatBytes(widget.file.pubMagicMetadata!.previewSize!), + formatBytes(data.size!), style: textStyle, ), ); @@ -61,10 +71,10 @@ class _PreviewPropertiesItemWidgetState if ((widget.file.fileType == FileType.video) && (widget.file.localID != null || widget.file.duration != 0) && - widget.file.pubMagicMetadata!.previewSize != null) { + data.size != null) { // show bitrate, i.e. size * 8 / duration formatted final result = FFProbeProps.formatBitrate( - widget.file.pubMagicMetadata!.previewSize! * 8 / widget.file.duration!, + data.size! * 8 / widget.file.duration!, "b/s", ); if (result != null) { @@ -77,6 +87,16 @@ class _PreviewPropertiesItemWidgetState } } - return Future.value(subSectionWidgets); + if (subSectionWidgets.isEmpty) return; + + child = InfoItemWidget( + key: const ValueKey("Stream properties"), + leadingIcon: Icons.play_circle_outline, + title: S.of(context).streamDetails, + subtitleSection: Future.value(subSectionWidgets), + ); + if (mounted) { + setState(() {}); + } } } From 510768bbd625a15dd36eac7b8fb1f9bab3969a90 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Tue, 4 Feb 2025 15:16:14 +0530 Subject: [PATCH 90/90] fix: add logic for caching and loading deatils --- mobile/lib/services/preview_video_store.dart | 29 ++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/mobile/lib/services/preview_video_store.dart b/mobile/lib/services/preview_video_store.dart index 7dc850e2cc8..e231e14d18a 100644 --- a/mobile/lib/services/preview_video_store.dart +++ b/mobile/lib/services/preview_video_store.dart @@ -1,5 +1,6 @@ import "dart:async"; import "dart:collection"; +import "dart:convert"; import "dart:io"; import "package:collection/collection.dart"; @@ -423,6 +424,10 @@ class PreviewVideoStore { return "video_playlist_$objectKey"; } + String _getDetailsCacheKey(String objectKey) { + return "video_playlist_details_$objectKey"; + } + String _getVideoPreviewKey(String objectKey) { return "video_preview_$objectKey"; } @@ -440,9 +445,20 @@ class PreviewVideoStore { final FileInfo? playlistCache = (objectKey == null) ? null : await cacheManager.getFileFromCache(_getCacheKey(objectKey)); + final detailsCache = (objectKey == null) + ? null + : await cacheManager.getFileFromCache( + _getDetailsCacheKey(objectKey), + ); String finalPlaylist; if (playlistCache != null) { finalPlaylist = playlistCache.file.readAsStringSync(); + if (detailsCache != null) { + final details = json.decode(detailsCache.file.readAsStringSync()); + width = details["width"]; + height = details["height"]; + size = details["size"]; + } } else { final response = await _dio.get( "/files/data/fetch/", @@ -474,6 +490,19 @@ class PreviewVideoStore { ), ), ); + final details = { + "width": width, + "height": height, + "size": size, + }; + unawaited( + cacheManager.putFile( + _getDetailsCacheKey(objectKey), + Uint8List.fromList( + json.encode(details).codeUnits, + ), + ), + ); } }