mirror of
https://github.com/MBombeck/HealthLog.git
synced 2026-11-14 06:40:50 +00:00
fix(onboarding): the connect step reads the sync verdict
The step decided "connected" from the ledger's `state` and had one piece of copy for every outcome: "the first sync is in progress". That sentence was false for a connection delivering for months, and worse for one the person has to repair — the screen said everything was fine while the grant was gone. `connectSourceView` resolves the envelope entry into one of four tiles and says whether the flow may record its result. Only `pending_first_sync` and `fresh` may; `stale` is acknowledged without being claimed as new; `stalled`, `failing`, `reauth_required` and `parked` name the state and link at the page that can change it. An unresolved envelope paints no tile at all. A source the instance cannot connect — a BYO provider with no client pair, a shared-app provider with no app — now points at the credentials instead of offering a "Connect" button onto a card that has none.
This commit is contained in:
1 parent
0bdbf009f6
commit
da58d16642
11 files changed
+883
-45
No files matched your search
+37
-3
@@ -4677,12 +4677,46 @@
|
||||
"connect-source": {
|
||||
"title": "{target} verbinden",
|
||||
"body": "Eine Verbindung, aus deinen Antworten gewählt. Danach kommen die Werte von selbst.",
|
||||
"howTo": "Die Verbindung wird auf der Integrationsseite hergestellt. Komm danach hierher zurück; dieser Bildschirm merkt, wenn sie steht.",
|
||||
"howTo": "Die Verbindung zu {target} wird auf der Integrationsseite hergestellt. Komm danach hierher zurück; dieser Bildschirm merkt, wenn sie steht.",
|
||||
"cta": "{target} verbinden",
|
||||
"checking": "Verbindung wird geprüft.",
|
||||
"waiting": "Noch nicht verbunden.",
|
||||
"done": "{target} ist verbunden.",
|
||||
"syncing": "Die erste Synchronisierung läuft. Die Werte erscheinen auf dem Dashboard, sobald sie ankommen."
|
||||
"openSettings": "Einstellungen → Integrationen öffnen",
|
||||
"noDate": "unbekannt",
|
||||
"needsCredentials": {
|
||||
"title": "Diese Instanz hat noch keine {target}-App hinterlegt.",
|
||||
"detail": "Trage deine eigenen Zugangsdaten unter Einstellungen → Integrationen ein, dann kann die Verbindung starten."
|
||||
},
|
||||
"state": {
|
||||
"pending_first_sync": {
|
||||
"title": "{target} ist verbunden.",
|
||||
"detail": "Die erste Synchronisierung läuft. Die Werte erscheinen auf dem Dashboard, sobald sie ankommen."
|
||||
},
|
||||
"fresh": {
|
||||
"title": "{target} ist schon verbunden.",
|
||||
"detail": "Letzter Wert {when}. Hier gibt es nichts mehr zu tun."
|
||||
},
|
||||
"stale": {
|
||||
"title": "{target} ist verbunden, aber es kommt gerade nichts an.",
|
||||
"detail": "Letzter Wert {when}. Die Verbindung selbst ist in Ordnung."
|
||||
},
|
||||
"stalled": {
|
||||
"title": "{target} ist verbunden, aber es wird nicht mehr synchronisiert.",
|
||||
"detail": "Letzter Versuch {when}. Prüfe die Verbindung unter Einstellungen → Integrationen."
|
||||
},
|
||||
"failing": {
|
||||
"title": "{target} ist verbunden, aber die Synchronisierung schlägt fehl.",
|
||||
"detail": "Ohne Erfolg seit {when}. Prüfe die Verbindung unter Einstellungen → Integrationen."
|
||||
},
|
||||
"reauth_required": {
|
||||
"title": "Die Verbindung zu {target} muss erneuert werden.",
|
||||
"detail": "Einmal neu anmelden, dann laufen die Werte weiter."
|
||||
},
|
||||
"parked": {
|
||||
"title": "Die Verbindung zu {target} ist pausiert.",
|
||||
"detail": "Prüfe die Verbindung unter Einstellungen → Integrationen."
|
||||
}
|
||||
}
|
||||
},
|
||||
"add-medication": {
|
||||
"title": "Dein erstes Medikament hinzufügen",
|
||||
|
||||
+37
-3
@@ -4677,12 +4677,46 @@
|
||||
"connect-source": {
|
||||
"title": "Connect {target}",
|
||||
"body": "One connection, chosen from your answers. Readings then arrive on their own.",
|
||||
"howTo": "The connection is made on the integrations page. Come back here afterwards; this screen notices when it is done.",
|
||||
"howTo": "The connection to {target} is made on the integrations page. Come back here afterwards; this screen notices when it is done.",
|
||||
"cta": "Connect {target}",
|
||||
"checking": "Checking the connection.",
|
||||
"waiting": "Not connected yet.",
|
||||
"done": "{target} is connected.",
|
||||
"syncing": "The first sync is in progress. Readings appear on the dashboard as they arrive."
|
||||
"openSettings": "Open Settings → Integrations",
|
||||
"noDate": "unknown",
|
||||
"needsCredentials": {
|
||||
"title": "This instance has no {target} app on file yet.",
|
||||
"detail": "Enter your own credentials under Settings → Integrations, then the connection can start."
|
||||
},
|
||||
"state": {
|
||||
"pending_first_sync": {
|
||||
"title": "{target} is connected.",
|
||||
"detail": "The first sync is in progress. Readings appear on the dashboard as they arrive."
|
||||
},
|
||||
"fresh": {
|
||||
"title": "{target} is already connected.",
|
||||
"detail": "Last reading {when}. Nothing left to do here."
|
||||
},
|
||||
"stale": {
|
||||
"title": "{target} is connected, but nothing is arriving right now.",
|
||||
"detail": "Last reading {when}. The connection itself is fine."
|
||||
},
|
||||
"stalled": {
|
||||
"title": "{target} is connected, but it has stopped syncing.",
|
||||
"detail": "Last attempt {when}. Check the connection under Settings → Integrations."
|
||||
},
|
||||
"failing": {
|
||||
"title": "{target} is connected, but the sync keeps failing.",
|
||||
"detail": "Nothing has come through since {when}. Check the connection under Settings → Integrations."
|
||||
},
|
||||
"reauth_required": {
|
||||
"title": "The connection to {target} needs renewing.",
|
||||
"detail": "Sign in once more and the readings carry on."
|
||||
},
|
||||
"parked": {
|
||||
"title": "The connection to {target} is paused.",
|
||||
"detail": "Check the connection under Settings → Integrations."
|
||||
}
|
||||
}
|
||||
},
|
||||
"add-medication": {
|
||||
"title": "Add your first medication",
|
||||
|
||||
+37
-3
@@ -4677,12 +4677,46 @@
|
||||
"connect-source": {
|
||||
"title": "Conectar {target}",
|
||||
"body": "Una conexión, elegida según tus respuestas. Después las mediciones llegan solas.",
|
||||
"howTo": "La conexión se hace en la página de integraciones. Vuelve aquí después; esta pantalla detecta cuándo está lista.",
|
||||
"howTo": "La conexión con {target} se hace en la página de integraciones. Vuelve aquí después; esta pantalla detecta cuándo está lista.",
|
||||
"cta": "Conectar {target}",
|
||||
"checking": "Comprobando la conexión.",
|
||||
"waiting": "Aún no conectado.",
|
||||
"done": "{target} está conectado.",
|
||||
"syncing": "La primera sincronización está en marcha. Las mediciones aparecen en el panel a medida que llegan."
|
||||
"openSettings": "Abrir Ajustes → Integraciones",
|
||||
"noDate": "desconocido",
|
||||
"needsCredentials": {
|
||||
"title": "Esta instancia aún no tiene una aplicación de {target} registrada.",
|
||||
"detail": "Introduce tus propias credenciales en Ajustes → Integraciones y la conexión podrá empezar."
|
||||
},
|
||||
"state": {
|
||||
"pending_first_sync": {
|
||||
"title": "{target} está conectado.",
|
||||
"detail": "La primera sincronización está en marcha. Los valores aparecerán en el panel en cuanto lleguen."
|
||||
},
|
||||
"fresh": {
|
||||
"title": "{target} ya está conectado.",
|
||||
"detail": "Último valor {when}. Aquí no queda nada por hacer."
|
||||
},
|
||||
"stale": {
|
||||
"title": "{target} está conectado, pero ahora mismo no llega nada.",
|
||||
"detail": "Último valor {when}. La conexión en sí está bien."
|
||||
},
|
||||
"stalled": {
|
||||
"title": "{target} está conectado, pero ha dejado de sincronizar.",
|
||||
"detail": "Último intento {when}. Revisa la conexión en Ajustes → Integraciones."
|
||||
},
|
||||
"failing": {
|
||||
"title": "{target} está conectado, pero la sincronización falla.",
|
||||
"detail": "No ha llegado nada desde {when}. Revisa la conexión en Ajustes → Integraciones."
|
||||
},
|
||||
"reauth_required": {
|
||||
"title": "Hay que renovar la conexión con {target}.",
|
||||
"detail": "Inicia sesión una vez más y los valores seguirán llegando."
|
||||
},
|
||||
"parked": {
|
||||
"title": "La conexión con {target} está en pausa.",
|
||||
"detail": "Revisa la conexión en Ajustes → Integraciones."
|
||||
}
|
||||
}
|
||||
},
|
||||
"add-medication": {
|
||||
"title": "Añade tu primer medicamento",
|
||||
|
||||
+37
-3
@@ -4677,12 +4677,46 @@
|
||||
"connect-source": {
|
||||
"title": "Connecter {target}",
|
||||
"body": "Une seule connexion, choisie d'après vos réponses. Les mesures arrivent ensuite d'elles-mêmes.",
|
||||
"howTo": "La connexion se fait sur la page des intégrations. Revenez ici ensuite ; cet écran détecte quand elle est établie.",
|
||||
"howTo": "La connexion à {target} se fait sur la page des intégrations. Revenez ici ensuite ; cet écran détecte quand elle est établie.",
|
||||
"cta": "Connecter {target}",
|
||||
"checking": "Vérification de la connexion.",
|
||||
"waiting": "Pas encore connecté.",
|
||||
"done": "{target} est connecté.",
|
||||
"syncing": "La première synchronisation est en cours. Les mesures apparaissent sur le tableau de bord au fur et à mesure."
|
||||
"openSettings": "Ouvrir Paramètres → Intégrations",
|
||||
"noDate": "inconnue",
|
||||
"needsCredentials": {
|
||||
"title": "Cette instance n’a pas encore d’application {target} enregistrée.",
|
||||
"detail": "Saisissez vos propres identifiants dans Paramètres → Intégrations, la connexion pourra alors démarrer."
|
||||
},
|
||||
"state": {
|
||||
"pending_first_sync": {
|
||||
"title": "{target} est connecté.",
|
||||
"detail": "La première synchronisation est en cours. Les valeurs apparaîtront sur le tableau de bord dès leur arrivée."
|
||||
},
|
||||
"fresh": {
|
||||
"title": "{target} est déjà connecté.",
|
||||
"detail": "Dernière valeur {when}. Il n’y a plus rien à faire ici."
|
||||
},
|
||||
"stale": {
|
||||
"title": "{target} est connecté, mais rien n’arrive en ce moment.",
|
||||
"detail": "Dernière valeur {when}. La connexion elle-même est en ordre."
|
||||
},
|
||||
"stalled": {
|
||||
"title": "{target} est connecté, mais la synchronisation ne tourne plus.",
|
||||
"detail": "Dernière tentative {when}. Vérifiez la connexion dans Paramètres → Intégrations."
|
||||
},
|
||||
"failing": {
|
||||
"title": "{target} est connecté, mais la synchronisation échoue.",
|
||||
"detail": "Plus rien n’est arrivé depuis {when}. Vérifiez la connexion dans Paramètres → Intégrations."
|
||||
},
|
||||
"reauth_required": {
|
||||
"title": "La connexion à {target} doit être renouvelée.",
|
||||
"detail": "Reconnectez-vous une fois et les valeurs reprendront."
|
||||
},
|
||||
"parked": {
|
||||
"title": "La connexion à {target} est en pause.",
|
||||
"detail": "Vérifiez la connexion dans Paramètres → Intégrations."
|
||||
}
|
||||
}
|
||||
},
|
||||
"add-medication": {
|
||||
"title": "Ajoutez votre premier médicament",
|
||||
|
||||
+37
-3
@@ -4677,12 +4677,46 @@
|
||||
"connect-source": {
|
||||
"title": "Collega {target}",
|
||||
"body": "Una sola connessione, scelta in base alle tue risposte. Poi le misurazioni arrivano da sole.",
|
||||
"howTo": "La connessione si fa nella pagina delle integrazioni. Poi torna qui; questa schermata si accorge quando è pronta.",
|
||||
"howTo": "La connessione a {target} si fa nella pagina delle integrazioni. Poi torna qui; questa schermata si accorge quando è pronta.",
|
||||
"cta": "Collega {target}",
|
||||
"checking": "Verifica della connessione in corso.",
|
||||
"waiting": "Non ancora collegato.",
|
||||
"done": "{target} è collegato.",
|
||||
"syncing": "La prima sincronizzazione è in corso. Le misurazioni compaiono nella dashboard man mano che arrivano."
|
||||
"openSettings": "Apri Impostazioni → Integrazioni",
|
||||
"noDate": "sconosciuto",
|
||||
"needsCredentials": {
|
||||
"title": "Questa istanza non ha ancora un’app {target} registrata.",
|
||||
"detail": "Inserisci le tue credenziali in Impostazioni → Integrazioni e la connessione potrà partire."
|
||||
},
|
||||
"state": {
|
||||
"pending_first_sync": {
|
||||
"title": "{target} è collegato.",
|
||||
"detail": "La prima sincronizzazione è in corso. I valori compaiono sulla dashboard appena arrivano."
|
||||
},
|
||||
"fresh": {
|
||||
"title": "{target} è già collegato.",
|
||||
"detail": "Ultimo valore {when}. Qui non resta nulla da fare."
|
||||
},
|
||||
"stale": {
|
||||
"title": "{target} è collegato, ma al momento non arriva nulla.",
|
||||
"detail": "Ultimo valore {when}. La connessione in sé è a posto."
|
||||
},
|
||||
"stalled": {
|
||||
"title": "{target} è collegato, ma non sincronizza più.",
|
||||
"detail": "Ultimo tentativo {when}. Controlla la connessione in Impostazioni → Integrazioni."
|
||||
},
|
||||
"failing": {
|
||||
"title": "{target} è collegato, ma la sincronizzazione non riesce.",
|
||||
"detail": "Non arriva nulla da {when}. Controlla la connessione in Impostazioni → Integrazioni."
|
||||
},
|
||||
"reauth_required": {
|
||||
"title": "La connessione a {target} va rinnovata.",
|
||||
"detail": "Accedi ancora una volta e i valori riprendono ad arrivare."
|
||||
},
|
||||
"parked": {
|
||||
"title": "La connessione a {target} è in pausa.",
|
||||
"detail": "Controlla la connessione in Impostazioni → Integrazioni."
|
||||
}
|
||||
}
|
||||
},
|
||||
"add-medication": {
|
||||
"title": "Aggiungi il tuo primo farmaco",
|
||||
|
||||
+37
-3
@@ -4677,12 +4677,46 @@
|
||||
"connect-source": {
|
||||
"title": "{target} 연결",
|
||||
"body": "답변을 바탕으로 고른 연결 하나입니다. 이후 측정값은 저절로 들어옵니다.",
|
||||
"howTo": "연결은 연동 페이지에서 합니다. 마친 뒤 이곳으로 돌아오면 이 화면이 연결을 감지합니다.",
|
||||
"howTo": "{target} 연결은 연동 페이지에서 합니다. 마친 뒤 이곳으로 돌아오면 이 화면이 연결을 감지합니다.",
|
||||
"cta": "{target} 연결",
|
||||
"checking": "연결을 확인하는 중입니다.",
|
||||
"waiting": "아직 연결되지 않았습니다.",
|
||||
"done": "{target}이(가) 연결되었습니다.",
|
||||
"syncing": "첫 동기화가 진행 중입니다. 측정값이 도착하는 대로 대시보드에 나타납니다."
|
||||
"openSettings": "설정 → 연동 열기",
|
||||
"noDate": "알 수 없음",
|
||||
"needsCredentials": {
|
||||
"title": "이 인스턴스에는 아직 {target} 앱이 등록되어 있지 않습니다.",
|
||||
"detail": "설정 → 연동에서 직접 발급받은 인증 정보를 입력하면 연결을 시작할 수 있습니다."
|
||||
},
|
||||
"state": {
|
||||
"pending_first_sync": {
|
||||
"title": "{target}이(가) 연결되었습니다.",
|
||||
"detail": "첫 동기화가 진행 중입니다. 값이 도착하는 대로 대시보드에 표시됩니다."
|
||||
},
|
||||
"fresh": {
|
||||
"title": "{target}은(는) 이미 연결되어 있습니다.",
|
||||
"detail": "마지막 값 {when}. 여기서 더 할 일은 없습니다."
|
||||
},
|
||||
"stale": {
|
||||
"title": "{target}은(는) 연결되어 있지만 지금은 값이 들어오지 않습니다.",
|
||||
"detail": "마지막 값 {when}. 연결 자체에는 문제가 없습니다."
|
||||
},
|
||||
"stalled": {
|
||||
"title": "{target}은(는) 연결되어 있지만 동기화가 멈췄습니다.",
|
||||
"detail": "마지막 시도 {when}. 설정 → 연동에서 연결을 확인하세요."
|
||||
},
|
||||
"failing": {
|
||||
"title": "{target}은(는) 연결되어 있지만 동기화가 계속 실패합니다.",
|
||||
"detail": "{when} 이후로 아무것도 들어오지 않았습니다. 설정 → 연동에서 연결을 확인하세요."
|
||||
},
|
||||
"reauth_required": {
|
||||
"title": "{target} 연결을 갱신해야 합니다.",
|
||||
"detail": "한 번 다시 로그인하면 값이 계속 들어옵니다."
|
||||
},
|
||||
"parked": {
|
||||
"title": "{target} 연결이 일시 중지되었습니다.",
|
||||
"detail": "설정 → 연동에서 연결을 확인하세요."
|
||||
}
|
||||
}
|
||||
},
|
||||
"add-medication": {
|
||||
"title": "첫 약 추가하기",
|
||||
|
||||
+37
-3
@@ -4677,12 +4677,46 @@
|
||||
"connect-source": {
|
||||
"title": "Połącz {target}",
|
||||
"body": "Jedno połączenie, wybrane na podstawie Twoich odpowiedzi. Potem pomiary przychodzą same.",
|
||||
"howTo": "Połączenie nawiązuje się na stronie integracji. Wróć tutaj później; ten ekran zauważy, kiedy będzie gotowe.",
|
||||
"howTo": "Połączenie z {target} nawiązuje się na stronie integracji. Wróć tutaj później; ten ekran zauważy, kiedy będzie gotowe.",
|
||||
"cta": "Połącz {target}",
|
||||
"checking": "Sprawdzanie połączenia.",
|
||||
"waiting": "Jeszcze nie połączono.",
|
||||
"done": "{target} jest połączone.",
|
||||
"syncing": "Trwa pierwsza synchronizacja. Pomiary pojawią się na panelu, gdy tylko nadejdą."
|
||||
"openSettings": "Otwórz Ustawienia → Integracje",
|
||||
"noDate": "nieznany",
|
||||
"needsCredentials": {
|
||||
"title": "Ta instancja nie ma jeszcze zapisanej aplikacji {target}.",
|
||||
"detail": "Wpisz własne dane dostępowe w Ustawieniach → Integracje, wtedy połączenie będzie mogło ruszyć."
|
||||
},
|
||||
"state": {
|
||||
"pending_first_sync": {
|
||||
"title": "{target} jest połączony.",
|
||||
"detail": "Trwa pierwsza synchronizacja. Wartości pojawią się na pulpicie, gdy tylko dotrą."
|
||||
},
|
||||
"fresh": {
|
||||
"title": "{target} jest już połączony.",
|
||||
"detail": "Ostatnia wartość {when}. Tutaj nie ma już nic do zrobienia."
|
||||
},
|
||||
"stale": {
|
||||
"title": "{target} jest połączony, ale w tej chwili nic nie przychodzi.",
|
||||
"detail": "Ostatnia wartość {when}. Samo połączenie jest w porządku."
|
||||
},
|
||||
"stalled": {
|
||||
"title": "{target} jest połączony, ale synchronizacja się zatrzymała.",
|
||||
"detail": "Ostatnia próba {when}. Sprawdź połączenie w Ustawieniach → Integracje."
|
||||
},
|
||||
"failing": {
|
||||
"title": "{target} jest połączony, ale synchronizacja się nie udaje.",
|
||||
"detail": "Od {when} nic nie dotarło. Sprawdź połączenie w Ustawieniach → Integracje."
|
||||
},
|
||||
"reauth_required": {
|
||||
"title": "Połączenie z {target} wymaga odnowienia.",
|
||||
"detail": "Zaloguj się jeszcze raz, a wartości popłyną dalej."
|
||||
},
|
||||
"parked": {
|
||||
"title": "Połączenie z {target} jest wstrzymane.",
|
||||
"detail": "Sprawdź połączenie w Ustawieniach → Integracje."
|
||||
}
|
||||
}
|
||||
},
|
||||
"add-medication": {
|
||||
"title": "Dodaj swój pierwszy lek",
|
||||
|
||||
Reference in new issue
Block a user