refactor(core): remove prototype contact paths for experimental saved devices

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-08-11 06:05:31 +02:00
parent 0a6ecb5c3b
commit a2385912c2
63 changed files with 514 additions and 7806 deletions

View File

@@ -4618,250 +4618,6 @@
"ru": "Версия приложения"
}
},
"contacts_title": {
"context": "Devices screen: title of the list of remembered devices.",
"translations": {
"en": "Devices",
"fr": "Appareils",
"es": "Dispositivos",
"it": "Dispositivi",
"de": "Geräte",
"pt": "Dispositivos",
"pl": "Urządzenia",
"nl": "Apparaten",
"ru": "Устройства"
}
},
"contacts_subtitle": {
"context": "Devices screen: one-line explanation under the title.",
"translations": {
"en": "Devices you have transferred with can receive files without a new invitation.",
"fr": "Les appareils avec lesquels vous avez déjà échangé peuvent recevoir des fichiers sans nouvelle invitation.",
"es": "Los dispositivos con los que ya has compartido pueden recibir archivos sin una nueva invitación.",
"it": "I dispositivi con cui hai già scambiato file possono riceverne altri senza un nuovo invito.",
"de": "Geräte, mit denen Sie bereits Dateien ausgetauscht haben, können ohne neue Einladung Dateien empfangen.",
"pt": "Os dispositivos com os quais já transferiu podem receber ficheiros sem um novo convite.",
"pl": "Urządzenia, z którymi już przesyłano pliki, mogą je odbierać bez nowego zaproszenia.",
"nl": "Apparaten waarmee je al hebt overgedragen, kunnen bestanden ontvangen zonder nieuwe uitnodiging.",
"ru": "Устройства, с которыми вы уже обменивались файлами, могут получать их без нового приглашения."
}
},
"contacts_empty_title": {
"context": "Devices screen: empty-state title when no device has been remembered yet.",
"translations": {
"en": "No remembered devices",
"fr": "Aucun appareil enregistré",
"es": "Ningún dispositivo guardado",
"it": "Nessun dispositivo memorizzato",
"de": "Keine gespeicherten Geräte",
"pt": "Nenhum dispositivo guardado",
"pl": "Brak zapamiętanych urządzeń",
"nl": "Geen onthouden apparaten",
"ru": "Нет сохранённых устройств"
}
},
"contacts_empty_body": {
"context": "Devices screen: empty-state explanation of how a device gets remembered.",
"translations": {
"en": "After a transfer, both devices can choose to remember each other.",
"fr": "Après un transfert, les deux appareils peuvent choisir de se mémoriser mutuellement.",
"es": "Tras una transferencia, ambos dispositivos pueden elegir recordarse mutuamente.",
"it": "Dopo un trasferimento, entrambi i dispositivi possono scegliere di ricordarsi a vicenda.",
"de": "Nach einer Übertragung können beide Geräte einander speichern.",
"pt": "Após uma transferência, ambos os dispositivos podem optar por lembrar-se um do outro.",
"pl": "Po przesłaniu plików oba urządzenia mogą zapamiętać się nawzajem.",
"nl": "Na een overdracht kunnen beide apparaten elkaar onthouden.",
"ru": "После передачи оба устройства могут запомнить друг друга."
}
},
"contacts_unreachable": {
"context": "Devices screen: badge on a device that can no longer be sent to.",
"translations": {
"en": "Needs pairing again",
"fr": "Nouvel appairage nécessaire",
"es": "Requiere emparejar de nuevo",
"it": "Richiede un nuovo abbinamento",
"de": "Muss erneut gekoppelt werden",
"pt": "É preciso emparelhar novamente",
"pl": "Wymaga ponownego sparowania",
"nl": "Opnieuw koppelen vereist",
"ru": "Требуется повторное сопряжение"
}
},
"contacts_unreachable_body": {
"context": "Device detail: explains why a remembered device can no longer be reached.",
"translations": {
"en": "This device withdrew access, or reinstalled VniDrop. Transfer to it once more to remember it again.",
"fr": "Cet appareil a retiré laccès ou a réinstallé VniDrop. Effectuez un nouveau transfert pour le mémoriser à nouveau.",
"es": "Este dispositivo retiró el acceso o reinstaló VniDrop. Realiza otra transferencia para volver a recordarlo.",
"it": "Questo dispositivo ha revocato laccesso o ha reinstallato VniDrop. Effettua un altro trasferimento per memorizzarlo di nuovo.",
"de": "Dieses Gerät hat den Zugriff entzogen oder VniDrop neu installiert. Übertragen Sie erneut, um es wieder zu speichern.",
"pt": "Este dispositivo retirou o acesso ou reinstalou o VniDrop. Faça outra transferência para o voltar a guardar.",
"pl": "To urządzenie cofnęło dostęp lub ponownie zainstalowało VniDrop. Wykonaj kolejne przesłanie, aby zapamiętać je ponownie.",
"nl": "Dit apparaat heeft de toegang ingetrokken of VniDrop opnieuw geïnstalleerd. Draag opnieuw over om het weer te onthouden.",
"ru": "Это устройство отозвало доступ или переустановило VniDrop. Выполните новую передачу, чтобы снова его запомнить."
}
},
"contacts_name_field": {
"context": "Device detail: text field label for the name the local user gives a device.",
"translations": {
"en": "Name on this device",
"fr": "Nom sur cet appareil",
"es": "Nombre en este dispositivo",
"it": "Nome su questo dispositivo",
"de": "Name auf diesem Gerät",
"pt": "Nome neste dispositivo",
"pl": "Nazwa na tym urządzeniu",
"nl": "Naam op dit apparaat",
"ru": "Имя на этом устройстве"
}
},
"contacts_name_hint": {
"context": "Device detail: note that the local name is never changed by the other device.",
"translations": {
"en": "Only you see this name. The other device can never change it.",
"fr": "Vous seul voyez ce nom. Lautre appareil ne peut jamais le modifier.",
"es": "Solo tú ves este nombre. El otro dispositivo nunca puede cambiarlo.",
"it": "Solo tu vedi questo nome. Laltro dispositivo non può mai modificarlo.",
"de": "Nur Sie sehen diesen Namen. Das andere Gerät kann ihn nie ändern.",
"pt": "Só você vê este nome. O outro dispositivo nunca o pode alterar.",
"pl": "Tylko Ty widzisz tę nazwę. Drugie urządzenie nigdy jej nie zmieni.",
"nl": "Alleen jij ziet deze naam. Het andere apparaat kan die nooit wijzigen.",
"ru": "Это имя видите только вы. Другое устройство не может его изменить."
}
},
"contacts_forget": {
"context": "Device detail: button that removes a device and revokes its access.",
"translations": {
"en": "Forget device",
"fr": "Oublier lappareil",
"es": "Olvidar dispositivo",
"it": "Dimentica dispositivo",
"de": "Gerät entfernen",
"pt": "Esquecer dispositivo",
"pl": "Zapomnij urządzenie",
"nl": "Apparaat vergeten",
"ru": "Забыть устройство"
}
},
"contacts_forget_body": {
"context": "Device detail: confirmation explaining what forgetting a device does.",
"translations": {
"en": "This device will no longer be able to send you files without a new invitation. Files already received are kept.",
"fr": "Cet appareil ne pourra plus vous envoyer de fichiers sans nouvelle invitation. Les fichiers déjà reçus sont conservés.",
"es": "Este dispositivo ya no podrá enviarte archivos sin una nueva invitación. Los archivos ya recibidos se conservan.",
"it": "Questo dispositivo non potrà più inviarti file senza un nuovo invito. I file già ricevuti vengono conservati.",
"de": "Dieses Gerät kann Ihnen ohne neue Einladung keine Dateien mehr senden. Bereits empfangene Dateien bleiben erhalten.",
"pt": "Este dispositivo deixará de lhe poder enviar ficheiros sem um novo convite. Os ficheiros já recebidos são mantidos.",
"pl": "To urządzenie nie będzie mogło wysyłać Ci plików bez nowego zaproszenia. Już odebrane pliki pozostaną.",
"nl": "Dit apparaat kan je zonder nieuwe uitnodiging geen bestanden meer sturen. Reeds ontvangen bestanden blijven behouden.",
"ru": "Это устройство больше не сможет отправлять вам файлы без нового приглашения. Уже полученные файлы сохранятся."
}
},
"contacts_forget_all": {
"context": "Devices screen: button that forgets every remembered device at once.",
"translations": {
"en": "Forget all devices",
"fr": "Oublier tous les appareils",
"es": "Olvidar todos los dispositivos",
"it": "Dimentica tutti i dispositivi",
"de": "Alle Geräte entfernen",
"pt": "Esquecer todos os dispositivos",
"pl": "Zapomnij wszystkie urządzenia",
"nl": "Alle apparaten vergeten",
"ru": "Забыть все устройства"
}
},
"contacts_block": {
"context": "Device detail: button that blocks a device outright.",
"translations": {
"en": "Block device",
"fr": "Bloquer lappareil",
"es": "Bloquear dispositivo",
"it": "Blocca dispositivo",
"de": "Gerät blockieren",
"pt": "Bloquear dispositivo",
"pl": "Zablokuj urządzenie",
"nl": "Apparaat blokkeren",
"ru": "Заблокировать устройство"
}
},
"contacts_blocked_title": {
"context": "Devices screen: section listing blocked devices.",
"translations": {
"en": "Blocked devices",
"fr": "Appareils bloqués",
"es": "Dispositivos bloqueados",
"it": "Dispositivi bloccati",
"de": "Blockierte Geräte",
"pt": "Dispositivos bloqueados",
"pl": "Zablokowane urządzenia",
"nl": "Geblokkeerde apparaten",
"ru": "Заблокированные устройства"
}
},
"contacts_unblock": {
"context": "Devices screen: button that removes a device from the block list.",
"translations": {
"en": "Unblock",
"fr": "Débloquer",
"es": "Desbloquear",
"it": "Sblocca",
"de": "Freigeben",
"pt": "Desbloquear",
"pl": "Odblokuj",
"nl": "Deblokkeren",
"ru": "Разблокировать"
}
},
"contacts_unblock_hint": {
"context": "Devices screen: note that unblocking does not restore the previous access.",
"translations": {
"en": "Unblocking does not restore access. The device has to be paired again.",
"fr": "Le déblocage ne rétablit pas laccès. Lappareil doit être appairé à nouveau.",
"es": "Desbloquear no restaura el acceso. Hay que emparejar el dispositivo de nuevo.",
"it": "Sbloccare non ripristina laccesso. Il dispositivo deve essere abbinato di nuovo.",
"de": "Die Freigabe stellt den Zugriff nicht wieder her. Das Gerät muss erneut gekoppelt werden.",
"pt": "Desbloquear não restaura o acesso. O dispositivo tem de ser emparelhado novamente.",
"pl": "Odblokowanie nie przywraca dostępu. Urządzenie trzeba sparować ponownie.",
"nl": "Deblokkeren herstelt de toegang niet. Het apparaat moet opnieuw worden gekoppeld.",
"ru": "Разблокировка не восстанавливает доступ. Устройство нужно сопрячь заново."
}
},
"contacts_send_to": {
"context": "Device detail: button that starts choosing files to send to this device.",
"translations": {
"en": "Send files",
"fr": "Envoyer des fichiers",
"es": "Enviar archivos",
"it": "Invia file",
"de": "Dateien senden",
"pt": "Enviar ficheiros",
"pl": "Wyślij pliki",
"nl": "Bestanden sturen",
"ru": "Отправить файлы"
}
},
"contacts_last_transfer": {
"context": "Devices screen: subtitle showing when the last transfer with a device happened. {date} = formatted date.",
"args": [
{
"name": "date",
"type": "string"
}
],
"translations": {
"en": "Last transfer {date}",
"fr": "Dernier transfert {date}",
"es": "Última transferencia {date}",
"it": "Ultimo trasferimento {date}",
"de": "Letzte Übertragung {date}",
"pt": "Última transferência {date}",
"pl": "Ostatnie przesłanie {date}",
"nl": "Laatste overdracht {date}",
"ru": "Последняя передача {date}"
}
},
"pairing_request_title": {
"context": "Pairing prompt: title asking whether to remember a device that offered to be reachable.",
"translations": {
@@ -5031,299 +4787,6 @@
"nl": "Weigeren",
"ru": "Отклонить"
}
},
"contacts_grant_lifetime_title": {
"context": "Devices settings: how long a remembered device stays reachable while unused.",
"translations": {
"en": "Forget unused devices after",
"fr": "Oublier les appareils inutilisés après",
"es": "Olvidar dispositivos sin usar tras",
"it": "Dimentica i dispositivi inutilizzati dopo",
"de": "Ungenutzte Geräte entfernen nach",
"pt": "Esquecer dispositivos não usados após",
"pl": "Zapomnij nieużywane urządzenia po",
"nl": "Ongebruikte apparaten vergeten na",
"ru": "Забывать неиспользуемые устройства через"
}
},
"contacts_grant_lifetime_hint": {
"context": "Devices settings: clarifies that the countdown restarts on each transfer.",
"translations": {
"en": "The countdown restarts every time you transfer with the device.",
"fr": "Le décompte redémarre à chaque transfert avec lappareil.",
"es": "La cuenta atrás se reinicia cada vez que transfieres con el dispositivo.",
"it": "Il conteggio riparte a ogni trasferimento con il dispositivo.",
"de": "Die Frist beginnt bei jeder Übertragung mit dem Gerät neu.",
"pt": "A contagem reinicia sempre que transfere com o dispositivo.",
"pl": "Odliczanie zaczyna się od nowa przy każdym przesłaniu.",
"nl": "De teller start opnieuw bij elke overdracht met het apparaat.",
"ru": "Отсчёт начинается заново при каждой передаче с устройством."
}
},
"contacts_grant_lifetime_never": {
"context": "Devices settings: option to never forget an unused device.",
"translations": {
"en": "Never",
"fr": "Jamais",
"es": "Nunca",
"it": "Mai",
"de": "Nie",
"pt": "Nunca",
"pl": "Nigdy",
"nl": "Nooit",
"ru": "Никогда"
}
},
"contacts_grant_lifetime_days": {
"context": "Devices settings: option label for a number of days. {count} = days.",
"args": [
{
"name": "count",
"type": "int"
}
],
"plural": {
"en": {
"one": "{count} day",
"other": "{count} days"
},
"fr": {
"one": "{count} jour",
"other": "{count} jours"
},
"es": {
"one": "{count} día",
"other": "{count} días"
},
"it": {
"one": "{count} giorno",
"other": "{count} giorni"
},
"de": {
"one": "{count} Tag",
"other": "{count} Tage"
},
"pt": {
"one": "{count} dia",
"other": "{count} dias"
},
"pl": {
"one": "{count} dzień",
"few": "{count} dni",
"many": "{count} dni",
"other": "{count} dnia"
},
"nl": {
"one": "{count} dag",
"other": "{count} dagen"
},
"ru": {
"one": "{count} день",
"few": "{count} дня",
"many": "{count} дней",
"other": "{count} дня"
}
}
},
"contacts_check_on_open": {
"context": "Devices settings: toggle to check remembered devices for waiting transfers when the app opens.",
"translations": {
"en": "Check for waiting transfers",
"fr": "Rechercher les transferts en attente",
"es": "Buscar transferencias en espera",
"it": "Cerca trasferimenti in attesa",
"de": "Nach wartenden Übertragungen suchen",
"pt": "Procurar transferências em espera",
"pl": "Sprawdzaj oczekujące przesyłki",
"nl": "Controleren op wachtende overdrachten",
"ru": "Проверять ожидающие передачи"
}
},
"contacts_check_on_open_hint": {
"context": "Devices settings: warns that checking reveals to remembered devices when the app is opened.",
"translations": {
"en": "When you open VniDrop, your remembered devices are asked whether they have anything for you. This tells them when you opened the app.",
"fr": "À louverture de VniDrop, vos appareils enregistrés sont interrogés pour savoir sils ont quelque chose pour vous. Cela leur indique quand vous ouvrez lapplication.",
"es": "Al abrir VniDrop, se pregunta a tus dispositivos guardados si tienen algo para ti. Esto les indica cuándo abriste la aplicación.",
"it": "Allapertura di VniDrop, ai dispositivi memorizzati viene chiesto se hanno qualcosa per te. Questo rivela loro quando apri lapp.",
"de": "Beim Öffnen von VniDrop werden Ihre gespeicherten Geräte gefragt, ob sie etwas für Sie haben. Dadurch erfahren sie, wann Sie die App geöffnet haben.",
"pt": "Ao abrir o VniDrop, os dispositivos guardados são questionados se têm algo para si. Isto revela-lhes quando abriu a aplicação.",
"pl": "Po otwarciu VniDrop zapamiętane urządzenia są pytane, czy mają coś dla Ciebie. Dzięki temu wiedzą, kiedy otwierasz aplikację.",
"nl": "Bij het openen van VniDrop wordt aan je onthouden apparaten gevraagd of ze iets voor je hebben. Zij weten daardoor wanneer je de app opende.",
"ru": "При открытии VniDrop сохранённые устройства опрашиваются, есть ли у них что-то для вас. Так они узнают, когда вы открыли приложение."
}
},
"contacts_check_now": {
"context": "Devices screen: button that checks remembered devices for waiting transfers right now.",
"translations": {
"en": "Check now",
"fr": "Vérifier maintenant",
"es": "Comprobar ahora",
"it": "Controlla ora",
"de": "Jetzt prüfen",
"pt": "Verificar agora",
"pl": "Sprawdź teraz",
"nl": "Nu controleren",
"ru": "Проверить сейчас"
}
},
"contacts_check_none": {
"context": "Devices screen: result message when no device had anything waiting.",
"translations": {
"en": "Nothing waiting",
"fr": "Rien en attente",
"es": "Nada en espera",
"it": "Nulla in attesa",
"de": "Nichts wartet",
"pt": "Nada em espera",
"pl": "Nic nie czeka",
"nl": "Niets in de wacht",
"ru": "Ничего не ожидает"
}
},
"contacts_offer_held": {
"context": "Shown after sending to a device that was not running: the transfer waits for it to open the app.",
"translations": {
"en": "That device is not open. The transfer will be delivered the next time it opens VniDrop.",
"fr": "Cet appareil nest pas ouvert. Le transfert sera remis à sa prochaine ouverture de VniDrop.",
"es": "Ese dispositivo no está abierto. La transferencia se entregará la próxima vez que abra VniDrop.",
"it": "Quel dispositivo non è aperto. Il trasferimento verrà consegnato alla prossima apertura di VniDrop.",
"de": "Dieses Gerät ist nicht geöffnet. Die Übertragung wird beim nächsten Öffnen von VniDrop zugestellt.",
"pt": "Esse dispositivo não está aberto. A transferência será entregue da próxima vez que abrir o VniDrop.",
"pl": "To urządzenie nie jest otwarte. Przesyłka zostanie dostarczona przy następnym uruchomieniu VniDrop.",
"nl": "Dat apparaat is niet geopend. De overdracht wordt bezorgd zodra het VniDrop weer opent.",
"ru": "Это устройство не открыто. Передача будет доставлена при следующем запуске VniDrop."
}
},
"contacts_waiting_title": {
"context": "Devices screen: section listing transfers waiting for their target device to come online.",
"translations": {
"en": "Waiting to be delivered",
"fr": "En attente de remise",
"es": "Pendientes de entrega",
"it": "In attesa di consegna",
"de": "Wartet auf Zustellung",
"pt": "A aguardar entrega",
"pl": "Oczekuje na dostarczenie",
"nl": "Wacht op bezorging",
"ru": "Ожидает доставки"
}
},
"contacts_waiting_hint": {
"context": "Devices screen: explains that a waiting transfer is withdrawn by cancelling it.",
"translations": {
"en": "Cancel the transfer to withdraw it.",
"fr": "Annulez le transfert pour le retirer.",
"es": "Cancela la transferencia para retirarla.",
"it": "Annulla il trasferimento per ritirarlo.",
"de": "Brechen Sie die Übertragung ab, um sie zurückzuziehen.",
"pt": "Cancele a transferência para a retirar.",
"pl": "Anuluj przesyłkę, aby ją wycofać.",
"nl": "Annuleer de overdracht om die in te trekken.",
"ru": "Отмените передачу, чтобы отозвать её."
}
},
"contacts_send_to_device": {
"context": "Transfer share panel: action that sends this transfer straight to a remembered device.",
"translations": {
"en": "Send to a device",
"fr": "Envoyer à un appareil",
"es": "Enviar a un dispositivo",
"it": "Invia a un dispositivo",
"de": "An ein Gerät senden",
"pt": "Enviar para um dispositivo",
"pl": "Wyślij do urządzenia",
"nl": "Naar een apparaat sturen",
"ru": "Отправить на устройство"
}
},
"contacts_pick_device_title": {
"context": "Device picker sheet: title when choosing which remembered device to send a transfer to.",
"translations": {
"en": "Choose a device",
"fr": "Choisir un appareil",
"es": "Elegir un dispositivo",
"it": "Scegli un dispositivo",
"de": "Gerät auswählen",
"pt": "Escolher um dispositivo",
"pl": "Wybierz urządzenie",
"nl": "Kies een apparaat",
"ru": "Выберите устройство"
}
},
"contacts_pick_device_empty": {
"context": "Device picker sheet: shown when no remembered device can currently be sent to.",
"translations": {
"en": "No device can be reached right now. Remembered devices appear here after a transfer.",
"fr": "Aucun appareil nest joignable pour le moment. Les appareils enregistrés apparaissent ici après un transfert.",
"es": "Ningún dispositivo está disponible ahora. Los dispositivos guardados aparecen aquí tras una transferencia.",
"it": "Nessun dispositivo è raggiungibile ora. I dispositivi memorizzati compaiono qui dopo un trasferimento.",
"de": "Derzeit ist kein Gerät erreichbar. Gespeicherte Geräte erscheinen hier nach einer Übertragung.",
"pt": "Nenhum dispositivo está acessível agora. Os dispositivos guardados aparecem aqui após uma transferência.",
"pl": "Żadne urządzenie nie jest teraz dostępne. Zapamiętane urządzenia pojawią się tu po przesłaniu.",
"nl": "Er is nu geen apparaat bereikbaar. Onthouden apparaten verschijnen hier na een overdracht.",
"ru": "Сейчас ни одно устройство недоступно. Сохранённые устройства появятся здесь после передачи."
}
},
"contacts_sent_to_device": {
"context": "Confirmation after a transfer was accepted by the device it was sent to. {device} = device name.",
"args": [
{
"name": "device",
"type": "string"
}
],
"translations": {
"en": "{device} accepted the transfer",
"fr": "{device} a accepté le transfert",
"es": "{device} aceptó la transferencia",
"it": "{device} ha accettato il trasferimento",
"de": "{device} hat die Übertragung angenommen",
"pt": "{device} aceitou a transferência",
"pl": "{device} zaakceptowało przesyłkę",
"nl": "{device} heeft de overdracht geaccepteerd",
"ru": "{device} принял передачу"
}
},
"contacts_declined_by_device": {
"context": "Shown when the person on the other device declined an offered transfer. {device} = device name.",
"args": [
{
"name": "device",
"type": "string"
}
],
"translations": {
"en": "{device} declined the transfer",
"fr": "{device} a refusé le transfert",
"es": "{device} rechazó la transferencia",
"it": "{device} ha rifiutato il trasferimento",
"de": "{device} hat die Übertragung abgelehnt",
"pt": "{device} recusou a transferência",
"pl": "{device} odrzuciło przesyłkę",
"nl": "{device} heeft de overdracht geweigerd",
"ru": "{device} отклонил передачу"
}
},
"contacts_no_answer": {
"context": "Shown when an offered transfer got no answer on the other device before timing out. {device} = device name.",
"args": [
{
"name": "device",
"type": "string"
}
],
"translations": {
"en": "{device} did not answer",
"fr": "{device} na pas répondu",
"es": "{device} no respondió",
"it": "{device} non ha risposto",
"de": "{device} hat nicht geantwortet",
"pt": "{device} não respondeu",
"pl": "{device} nie odpowiedziało",
"nl": "{device} heeft niet geantwoord",
"ru": "{device} не ответил"
}
}
}
}