From 8f61e0bc6a4ccb87c1e4ae9bbb17fbcb33f2c4eb Mon Sep 17 00:00:00 2001 From: Antiheld86 <4201585+Antiheld86@users.noreply.github.com> Date: Mon, 31 Aug 2026 09:50:47 +0000 Subject: [PATCH] Plainer copy on the measurement token card MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The card read like API documentation sitting in a settings page: it named the Authorization header, spelled out both endpoint paths, and listed the scope's limits as four clauses. None of that is what someone deciding whether to mint a token needs, and the endpoint paths were already in the API endpoints card immediately above it. Rewrite to the shape the MCP connector card next door uses — a short title, one line on what the token is for, one line saying it is shown once, and one sentence on what it can and cannot do. Drop the endpoints note entirely rather than rephrase it, since the card above owns that. Say the useful consequence instead of the mechanism: readings arrive as if entered by hand, so they can be corrected. That is the thing a person will actually notice. Translations were revised across all seven locales — the previous German in particular read as translated English rather than as the rest of the app, which uses short informal sentences. --- messages/de.json | 11 +++++------ messages/en.json | 13 ++++++------- messages/es.json | 11 +++++------ messages/fr.json | 13 ++++++------- messages/it.json | 11 +++++------ messages/ko.json | 11 +++++------ messages/pl.json | 11 +++++------ src/components/settings/api-section.tsx | 3 --- 8 files changed, 37 insertions(+), 47 deletions(-) diff --git a/messages/de.json b/messages/de.json index d4525c861..3526b66b0 100644 --- a/messages/de.json +++ b/messages/de.json @@ -5880,14 +5880,13 @@ "apiTokens": "API-Tokens", "apiTokensDescription": "API-Tokens für die externe Medikamenten-Einnahme prüfen und widerrufen.", "measurementsToken": { - "title": "Token für Messwert-Import", - "description": "Werte von einer smarten Waage, einer Uhren-Bridge oder einer Hausautomatisierung übertragen.", - "detail": "Sende ihn als Authorization: Bearer-Header. Das Token wird nur einmal angezeigt — kopiere es jetzt.", - "scopeNote": "Es kann ausschließlich Werte hinzufügen, und nur zu deiner eigenen Akte. Es kann deine Daten nicht lesen, keinen Wert ändern oder löschen und kein weiteres Token erstellen.", - "endpointsNote": "Funktioniert mit POST /api/measurements und POST /api/measurements/batch. Werte kommen als manuell erfasst an.", + "title": "Messwert-Tokens", + "description": "Erzeuge ein Token, damit eine Waage, eine Uhr oder deine Hausautomatisierung Werte eintragen kann.", + "detail": "Das Token wird nur einmal angezeigt.", + "scopeNote": "Es kann ausschließlich neue Werte in deine eigene Akte eintragen — deine Daten nicht lesen, nichts ändern oder löschen und kein weiteres Token erstellen. Werte erscheinen wie von Hand eingetragen und lassen sich jederzeit korrigieren.", "createFailed": "Das Token konnte nicht erstellt werden. Bitte versuche es erneut." }, - "tokenMintMovedDescription": "Tokens werden dort ausgestellt, wo ihr Geltungsbereich liegt. Erstelle oben ein Token für den Messwert-Import, oder öffne ein Medikament und aktiviere dessen API-Endpoint für ein Token, das nur für dieses Medikament gilt.", + "tokenMintMovedDescription": "Tokens werden dort ausgestellt, wo sie gelten: oben für Messwerte, oder im API-Endpoint eines Medikaments für genau dieses Medikament.", "tokenNamePlaceholder": "Token-Name (z.B. iPhone Shortcut)", "tokenCreated": "Token erstellt — kopiere ihn jetzt! Er wird nicht erneut angezeigt.", "tokenCopy": "Token kopieren", diff --git a/messages/en.json b/messages/en.json index 2a26caef8..8bdc1d87b 100644 --- a/messages/en.json +++ b/messages/en.json @@ -5880,14 +5880,13 @@ "apiTokens": "API Tokens", "apiTokensDescription": "Review and revoke API tokens for external medication intake.", "measurementsToken": { - "title": "Measurement ingest token", - "description": "Push readings from a smart scale, a watch bridge or a home-automation rule.", - "detail": "Send it as an Authorization: Bearer header. The token is shown once — copy it now.", - "scopeNote": "It can only add readings, and only to your own record. It cannot look at your data, change or delete a reading, or create another token.", - "endpointsNote": "Works on POST /api/measurements and POST /api/measurements/batch. Readings arrive marked as entered by hand.", - "createFailed": "Could not create the token. Please try again." + "title": "Measurement tokens", + "description": "Mint a token so a scale, a watch bridge or your home automation can add readings.", + "detail": "The token is shown once.", + "scopeNote": "It can only add new readings to your own record — it cannot read your data, change or delete anything, or create another token. Readings arrive as if you had entered them by hand, so you can correct them yourself.", + "createFailed": "The token could not be created. Please try again." }, - "tokenMintMovedDescription": "Tokens are issued where they are scoped. Mint a measurement ingest token above, or open a medication and enable its API endpoint for a token limited to that medication alone.", + "tokenMintMovedDescription": "Tokens are issued where they apply: above for measurements, or in a medication's own API endpoint for that one medication.", "tokenNamePlaceholder": "Token name (e.g., iPhone Shortcut)", "tokenCreated": "Token created — copy it now! It won't be shown again.", "tokenCopy": "Copy token", diff --git a/messages/es.json b/messages/es.json index a746556e1..db93fa6ba 100644 --- a/messages/es.json +++ b/messages/es.json @@ -5880,14 +5880,13 @@ "apiTokens": "Tokens de API", "apiTokensDescription": "Revisa y revoca tokens de API para el registro externo de tomas de medicación.", "measurementsToken": { - "title": "Token de importación de mediciones", - "description": "Envía lecturas desde una báscula inteligente, un puente de reloj o una regla de domótica.", - "detail": "Mándalo como cabecera Authorization: Bearer. El token se muestra una sola vez: cópialo ahora.", - "scopeNote": "Solo puede añadir lecturas, y únicamente a tu propio historial. No puede consultar tus datos, ni modificar o borrar una lectura, ni crear otro token.", - "endpointsNote": "Funciona en POST /api/measurements y POST /api/measurements/batch. Las lecturas llegan marcadas como introducidas a mano.", + "title": "Tokens de mediciones", + "description": "Crea un token para que una báscula, un reloj o tu domótica añadan mediciones.", + "detail": "El token se muestra una sola vez.", + "scopeNote": "Solo puede añadir mediciones nuevas a tu propio historial: no puede leer tus datos, ni modificar o borrar nada, ni crear otro token. Las mediciones llegan como si las hubieras introducido a mano, así que puedes corregirlas.", "createFailed": "No se pudo crear el token. Inténtalo de nuevo." }, - "tokenMintMovedDescription": "Los tokens se emiten allí donde está su alcance. Crea arriba un token de importación de mediciones, o abre un medicamento y activa su endpoint de API para obtener uno limitado únicamente a ese medicamento.", + "tokenMintMovedDescription": "Los tokens se emiten donde se aplican: arriba para las mediciones, o en el endpoint de API de un medicamento para ese medicamento concreto.", "tokenNamePlaceholder": "Nombre del token (p. ej., Atajo de iPhone)", "tokenCreated": "Token creado — ¡cópialo ahora! No se mostrará de nuevo.", "tokenCopy": "Copiar token", diff --git a/messages/fr.json b/messages/fr.json index d6f05537c..90c0d6fb5 100644 --- a/messages/fr.json +++ b/messages/fr.json @@ -5880,14 +5880,13 @@ "apiTokens": "Jetons API", "apiTokensDescription": "Consultez et révoquez les jetons API pour l’enregistrement externe des prises de médicaments.", "measurementsToken": { - "title": "Jeton d'import de mesures", - "description": "Envoyez des relevés depuis une balance connectée, une passerelle de montre ou une règle domotique.", - "detail": "Transmettez-le dans un en-tête Authorization: Bearer. Le jeton n'est affiché qu'une fois — copiez-le maintenant.", - "scopeNote": "Il peut uniquement ajouter des relevés, et seulement à votre propre dossier. Il ne peut pas consulter vos données, ni modifier ou supprimer un relevé, ni créer un autre jeton.", - "endpointsNote": "Fonctionne sur POST /api/measurements et POST /api/measurements/batch. Les relevés arrivent marqués comme saisis à la main.", - "createFailed": "Impossible de créer le jeton. Veuillez réessayer." + "title": "Jetons de mesures", + "description": "Créez un jeton pour qu'une balance, une montre ou votre domotique ajoutent des mesures.", + "detail": "Le jeton n'est affiché qu'une fois.", + "scopeNote": "Il peut uniquement ajouter de nouvelles mesures à votre propre dossier : il ne peut pas lire vos données, ni modifier ou supprimer quoi que ce soit, ni créer un autre jeton. Les mesures arrivent comme si vous les aviez saisies à la main, vous pouvez donc les corriger.", + "createFailed": "Le jeton n'a pas pu être créé. Veuillez réessayer." }, - "tokenMintMovedDescription": "Les jetons sont émis là où porte leur périmètre. Créez ci-dessus un jeton d'import de mesures, ou ouvrez un médicament et activez son point de terminaison API pour un jeton limité à ce seul médicament.", + "tokenMintMovedDescription": "Les jetons sont émis là où ils s'appliquent : ci-dessus pour les mesures, ou dans le point de terminaison API d'un médicament pour ce seul médicament.", "tokenNamePlaceholder": "Nom du jeton (par exemple Raccourci iPhone)", "tokenCreated": "Jeton créé — copiez-le maintenant ! Il ne sera plus affiché.", "tokenCopy": "Copier le jeton", diff --git a/messages/it.json b/messages/it.json index 144816dff..df3c4d740 100644 --- a/messages/it.json +++ b/messages/it.json @@ -5880,14 +5880,13 @@ "apiTokens": "Token API", "apiTokensDescription": "Rivedi e revoca i token API per la registrazione esterna delle assunzioni di farmaci.", "measurementsToken": { - "title": "Token per l'importazione di misurazioni", - "description": "Invia letture da una bilancia smart, da un bridge per orologi o da una regola di domotica.", - "detail": "Invialo come intestazione Authorization: Bearer. Il token viene mostrato una sola volta: copialo adesso.", - "scopeNote": "Può soltanto aggiungere letture, e solo alla tua cartella. Non può leggere i tuoi dati, modificare o eliminare una lettura, né creare un altro token.", - "endpointsNote": "Funziona su POST /api/measurements e POST /api/measurements/batch. Le letture arrivano contrassegnate come inserite a mano.", + "title": "Token per misurazioni", + "description": "Crea un token perché una bilancia, un orologio o la tua domotica aggiungano misurazioni.", + "detail": "Il token viene mostrato una sola volta.", + "scopeNote": "Può soltanto aggiungere nuove misurazioni alla tua cartella: non può leggere i tuoi dati, modificare o eliminare nulla, né creare un altro token. Le misurazioni arrivano come se le avessi inserite a mano, quindi puoi correggerle.", "createFailed": "Non è stato possibile creare il token. Riprova." }, - "tokenMintMovedDescription": "I token vengono emessi dove si applicano. Crea qui sopra un token per l'importazione di misurazioni, oppure apri un farmaco e attiva il suo endpoint API per un token valido solo per quel farmaco.", + "tokenMintMovedDescription": "I token vengono emessi dove si applicano: qui sopra per le misurazioni, oppure nell'endpoint API di un farmaco per quel singolo farmaco.", "tokenNamePlaceholder": "Nome del token (ad es. Comando rapido iPhone)", "tokenCreated": "Token creato — copialo ora! Non verrà mostrato di nuovo.", "tokenCopy": "Copia token", diff --git a/messages/ko.json b/messages/ko.json index f353a20ac..2d435e3aa 100644 --- a/messages/ko.json +++ b/messages/ko.json @@ -5880,14 +5880,13 @@ "apiTokens": "API 토큰", "apiTokensDescription": "외부에서 복용을 기록할 때 쓰는 API 토큰을 확인하고 폐기해요.", "measurementsToken": { - "title": "측정값 전송 토큰", - "description": "스마트 체중계나 시계 브리지, 홈 오토메이션 규칙에서 측정값을 보내요.", - "detail": "Authorization: Bearer 헤더로 보내세요. 토큰은 한 번만 표시되니 지금 복사해 두세요.", - "scopeNote": "측정값을 추가하는 것만, 그것도 본인 기록에만 할 수 있어요. 데이터를 열어 볼 수도, 측정값을 고치거나 지울 수도, 다른 토큰을 만들 수도 없어요.", - "endpointsNote": "POST /api/measurements와 POST /api/measurements/batch에서 쓸 수 있어요. 들어온 측정값은 직접 입력한 것으로 표시돼요.", + "title": "측정 토큰", + "description": "체중계나 시계, 홈 오토메이션이 측정값을 기록할 수 있도록 토큰을 만들어요.", + "detail": "토큰은 한 번만 표시돼요.", + "scopeNote": "본인 기록에 새 측정값을 추가하는 것만 할 수 있어요. 데이터를 읽거나, 무언가를 고치거나 지우거나, 다른 토큰을 만들 수는 없어요. 측정값은 직접 입력한 것처럼 들어오니 언제든 고칠 수 있어요.", "createFailed": "토큰을 만들지 못했어요. 다시 시도해 주세요." }, - "tokenMintMovedDescription": "토큰은 권한이 미치는 곳에서 발급돼요. 위에서 측정값 전송 토큰을 만들거나, 약을 열고 API 엔드포인트를 켜서 그 약에만 적용되는 토큰을 받으세요.", + "tokenMintMovedDescription": "토큰은 쓰이는 곳에서 발급돼요. 측정값은 위에서, 특정 약은 그 약의 API 엔드포인트에서 만들 수 있어요.", "tokenNamePlaceholder": "토큰 이름 (예: iPhone 단축어)", "tokenCreated": "토큰을 만들었어요 — 지금 복사하세요! 다시 보여주지 않아요.", "tokenCopy": "토큰 복사", diff --git a/messages/pl.json b/messages/pl.json index 7ab7edb1e..735ead22a 100644 --- a/messages/pl.json +++ b/messages/pl.json @@ -5880,14 +5880,13 @@ "apiTokens": "Tokeny API", "apiTokensDescription": "Przeglądaj i unieważniaj tokeny API do zewnętrznego rejestrowania przyjęć leków.", "measurementsToken": { - "title": "Token do importu pomiarów", - "description": "Wysyłaj odczyty z inteligentnej wagi, mostka zegarka lub reguły automatyki domowej.", - "detail": "Prześlij go w nagłówku Authorization: Bearer. Token pokazujemy tylko raz — skopiuj go teraz.", - "scopeNote": "Może wyłącznie dodawać odczyty i tylko do Twojej własnej dokumentacji. Nie odczyta Twoich danych, nie zmieni ani nie usunie odczytu i nie utworzy kolejnego tokenu.", - "endpointsNote": "Działa na POST /api/measurements oraz POST /api/measurements/batch. Odczyty trafiają oznaczone jako wpisane ręcznie.", + "title": "Tokeny pomiarów", + "description": "Utwórz token, aby waga, zegarek lub automatyka domowa mogły dodawać pomiary.", + "detail": "Token pokazujemy tylko raz.", + "scopeNote": "Może wyłącznie dodawać nowe pomiary do Twojej dokumentacji — nie odczyta danych, niczego nie zmieni ani nie usunie i nie utworzy kolejnego tokenu. Pomiary trafiają tak, jakbyś wpisał je ręcznie, więc możesz je poprawić.", "createFailed": "Nie udało się utworzyć tokenu. Spróbuj ponownie." }, - "tokenMintMovedDescription": "Tokeny wydajemy tam, gdzie sięga ich zakres. Utwórz powyżej token do importu pomiarów albo otwórz lek i włącz jego punkt końcowy API, aby otrzymać token obejmujący wyłącznie ten lek.", + "tokenMintMovedDescription": "Tokeny wydajemy tam, gdzie działają: powyżej dla pomiarów albo w punkcie końcowym API danego leku dla tego jednego leku.", "tokenNamePlaceholder": "Nazwa tokena (np. Skrót iPhone)", "tokenCreated": "Token utworzony — skopiuj go teraz! Nie zostanie pokazany ponownie.", "tokenCopy": "Kopiuj token", diff --git a/src/components/settings/api-section.tsx b/src/components/settings/api-section.tsx index 460037af9..29ba7c2b7 100644 --- a/src/components/settings/api-section.tsx +++ b/src/components/settings/api-section.tsx @@ -137,9 +137,6 @@ function MeasurementTokensCard() {
{t("settings.measurementsToken.scopeNote")}
-- {t("settings.measurementsToken.endpointsNote")} -