Merge origin/master into feat/apple-typed-resources-and-fixes

Brings in custom relays, relay connection policies, storage cache clearing, and
receiver-failure reporting. Apple-side conflict resolutions:
- CoreRepository: keep CoreDispatcher, adopt master's relay factory + network
  transition guard, drop the now-unused serial queue.
- TransferDetailsView: keep the toolbar-share layout; adopt master's
  invitationPresentation-based QR panel and the new .failed receiver case (typed).
- SettingsModel/SettingsScreen: typed L10n titleKey with master's .network case;
  relay controls and the Free up space / storage redesign coexist.
- Add the missing transfer_receiver_failed localization key.
- Regenerate l10n from the merged strings.json; keep the Apple catalog untracked.
- Drop the notificationsEnabled test assertion (notifications preference was
  intentionally removed on this branch).
This commit is contained in:
2026-07-24 17:48:10 +02:00
80 changed files with 5906 additions and 383 deletions

View File

@@ -170,6 +170,32 @@
<string name="receive_review_title">Vérifier le transfert</string>
<string name="receive_title">Recevoir</string>
<string name="receive_unknown_transfer">Transfert VniDrop</string>
<string name="relay_add_url">Ajouter un serveur relais</string>
<string name="relay_apply">Appliquer les réglages réseau</string>
<string name="relay_applying">Application…</string>
<string name="relay_apply_active_transfers">Arrêtez tous les transferts et partages actifs avant dappliquer les réglages réseau.</string>
<string name="relay_apply_failed">Impossible dappliquer ces réglages. Les réglages réseau précédents ont été restaurés.</string>
<string name="relay_apply_restart_description">Lapplication de ces réglages redémarre la connexion réseau de VniDrop. Arrêtez dabord les transferts et partages actifs. Il peut être nécessaire de partager à nouveau les invitations existantes.</string>
<string name="relay_custom_urls_help">Saisissez une URL de relais HTTPS par ligne. Les identifiants dans les URL ne sont pas pris en charge. Le certificat TLS doit être émis par une autorité de certification reconnue publiquement.</string>
<string name="relay_custom_urls_label">URL des relais</string>
<string name="relay_mode_automatic">Automatique (recommandé)</string>
<string name="relay_mode_automatic_description">Utiliser linfrastructure de relais publique par défaut de VniDrop lorsquune connexion directe est indisponible.</string>
<string name="relay_mode_custom">Personnalisé strict</string>
<string name="relay_mode_custom_description">Utilise uniquement les relais personnalisés configurés ou les connexions directes. Signale une erreur si aucun relais personnalisé ne peut être établi.</string>
<string name="relay_mode_custom_direct_fallback">Personnalisé avec repli direct</string>
<string name="relay_mode_custom_direct_fallback_description">Préfère les relais personnalisés configurés. Sils sont indisponibles, continue uniquement avec des connexions directes. Nutilise jamais les relais publics.</string>
<string name="relay_mode_local_only">Réseau local uniquement</string>
<string name="relay_mode_local_only_description">Désactive tous les relais et autorise uniquement les connexions directes, principalement pour les appareils sur le même réseau.</string>
<string name="relay_privacy_description">Les relais transmettent du trafic chiffré et ne peuvent pas lire vos fichiers, mais leur opérateur peut observer les métadonnées de connexion.</string>
<string name="relay_remove_url">Supprimer le serveur relais</string>
<string name="relay_restore_failed">Impossible de restaurer les réglages réseau précédents. Redémarrez VniDrop et vérifiez votre configuration de relais.</string>
<string name="relay_settings_applied">Réglages réseau appliqués.</string>
<string name="relay_strict_warning">Le mode personnalisé strict ne démarre que si au moins un relais configuré est accessible. VniDrop nutilise jamais de relais ni de découverte publics dans ce mode.</string>
<string name="relay_validation_duplicate_url">LURL de relais à la ligne %1$d est identique à une entrée précédente.</string>
<string name="relay_validation_https_required">LURL de relais à la ligne %1$d doit commencer par https://.</string>
<string name="relay_validation_invalid_url">LURL de relais à la ligne %1$d nest pas valide.</string>
<string name="relay_validation_missing_url">Ajoutez au moins une URL de relais.</string>
<string name="relay_validation_too_many_urls">Vous pouvez configurer jusquà %1$d serveurs relais.</string>
<string name="send_access_anyone">Toute personne disposant de ce transfert</string>
<string name="send_access_anyone_description">Aucune approbation requise. À nutiliser que pour des éléments que vous êtes à laise de partager.</string>
<string name="send_access_anyone_warning">Toute personne disposant de linvitation peut télécharger jusquà ce que vous arrêtiez le partage. Ne lutilisez pas pour des éléments privés ou sensibles.</string>
@@ -193,6 +219,8 @@
<string name="send_transfer_created">Transfert créé.</string>
<string name="send_transfer_details_title">Détails du transfert</string>
<string name="send_transfers_title">Vos transferts</string>
<string name="settings_advanced_title">Avancé</string>
<string name="settings_network_title">Réseau</string>
<string name="settings_subtitle">Votre nom, lemplacement denregistrement des transferts, lapparence et les notifications.</string>
<string name="settings_title">Réglages</string>
<string name="snackbar_dismiss">Ignorer</string>
@@ -253,6 +281,7 @@
<string name="transfer_receiver_accepted">Approuvé — en attente de la fin</string>
<string name="transfer_receiver_completed">Reçu avec succès</string>
<string name="transfer_receiver_expired">Demande expirée</string>
<string name="transfer_receiver_failed">Échec de l\'envoi</string>
<string name="transfer_receiver_refused">Demande refusée</string>
<string name="transfer_receiver_requested">En attente de votre approbation</string>
<string name="transfer_receiver_unknown">Statut indisponible</string>
@@ -260,6 +289,7 @@
<string name="transfer_receivers_description">Demandes, approbations et livraisons terminées</string>
<string name="transfer_receivers_pending">%1$d en attente</string>
<string name="transfer_receivers_title">Destinataires</string>
<string name="transfer_qr_unavailable">Le code QR nest pas disponible pour cette invitation. Utilisez plutôt Partager ou Télécharger.</string>
<string name="transfer_scan_qr">Scannez avec VniDrop pour recevoir ce transfert</string>
<string name="transfer_share_description">QR code, fichier dinvitation et options à proximité</string>
<string name="transfer_share_title">Partager</string>