From ab323d89bec3b6cbe73ae17d0b54f5987fd1fe38 Mon Sep 17 00:00:00 2001 From: uvtqt Date: Tue, 10 Nov 2026 22:17:10 +0100 Subject: [PATCH 1/2] Translate the WHOOP firmware warning for de, es, fr, hi and zh The firmware warning on the connection and pairing screens existed in en, ru and th only, so German, Spanish, French, Hindi and Chinese users read the app's one message about keeping a band usable in English, on an otherwise translated screen. Seen on the iOS simulator in German. Adds the three strings to the five locales and a test that every supported language has its own text and keeps the two firmware versions. --- lib/l10n/app_de.arb | 5 ++++- lib/l10n/app_es.arb | 5 ++++- lib/l10n/app_fr.arb | 5 ++++- lib/l10n/app_hi.arb | 5 ++++- lib/l10n/app_zh.arb | 5 ++++- test/whoop_firmware_warning_test.dart | 23 +++++++++++++++++++++++ 6 files changed, 43 insertions(+), 5 deletions(-) diff --git a/lib/l10n/app_de.arb b/lib/l10n/app_de.arb index 32339bc6f..c47aa4bfb 100644 --- a/lib/l10n/app_de.arb +++ b/lib/l10n/app_de.arb @@ -3472,5 +3472,8 @@ "type": "int" } } - } + }, + "whoopFirmwareWarningTitle": "WHOOP-Nutzer: Verbinde dich nicht wieder mit der WHOOP-App", + "whoopFirmwareWarningAction": "Wenn du OpenStrap oder eine andere Open-Source-App nutzt oder später zu einer wechseln möchtest, verbinde dein Band nicht wieder mit der offiziellen WHOOP-App. Sie kann Firmware-Updates automatisch installieren. Deinstalliere oder deaktiviere die WHOOP-App, damit sie dein Band nicht aktualisiert.", + "whoopFirmwareWarningDetails": "Berichte zur WHOOP 5.0 / MG Firmware 50.43.1.0 und 50.43.2.0 beschreiben einen blockierten Datenzugriff. Bluetooth kann sich weiterhin verbinden. OpenStrap kann das von WHOOP signierte Mitgliedschafts-Token nicht ausstellen, das betroffene Bänder entsperrt. Wir arbeiten an einer Lösung, aber es gibt noch keine Abhilfe." } diff --git a/lib/l10n/app_es.arb b/lib/l10n/app_es.arb index 0fb047874..d14651ed9 100644 --- a/lib/l10n/app_es.arb +++ b/lib/l10n/app_es.arb @@ -2892,5 +2892,8 @@ } }, "reportContactLabel": "Contacto (opcional)", - "reportContactHint": "Correo o Discord, solo si quieres una respuesta" + "reportContactHint": "Correo o Discord, solo si quieres una respuesta", + "whoopFirmwareWarningTitle": "Usuarios de WHOOP: no vuelvas a conectarte a la app de WHOOP", + "whoopFirmwareWarningAction": "Si usas OpenStrap u otra app de código abierto, o piensas cambiarte a una más adelante, no vuelvas a conectar tu banda a la app oficial de WHOOP. Puede instalar actualizaciones de firmware automáticamente. Desinstala o desactiva la app de WHOOP para evitar que actualice tu banda.", + "whoopFirmwareWarningDetails": "Hay informes de que el firmware 50.43.1.0 y 50.43.2.0 de WHOOP 5.0 / MG bloquea el acceso a los datos. Es posible que el Bluetooth siga conectándose. OpenStrap no puede emitir el token de membresía firmado por WHOOP que se necesita para desbloquear las bandas afectadas. Estamos trabajando en una solución, pero todavía no hay ningún arreglo disponible." } diff --git a/lib/l10n/app_fr.arb b/lib/l10n/app_fr.arb index 41cab9ff7..5d5908b00 100644 --- a/lib/l10n/app_fr.arb +++ b/lib/l10n/app_fr.arb @@ -2863,5 +2863,8 @@ } }, "reportContactLabel": "Contact (facultatif)", - "reportContactHint": "E-mail ou Discord, seulement si vous voulez une réponse" + "reportContactHint": "E-mail ou Discord, seulement si vous voulez une réponse", + "whoopFirmwareWarningTitle": "Utilisateurs WHOOP : ne vous reconnectez pas à l’application WHOOP", + "whoopFirmwareWarningAction": "Si vous utilisez OpenStrap ou une autre application open source, ou si vous comptez y passer plus tard, ne reconnectez pas votre bracelet à l’application WHOOP officielle. Elle peut installer des mises à jour du firmware automatiquement. Désinstallez ou désactivez l’application WHOOP pour l’empêcher de mettre à jour votre bracelet.", + "whoopFirmwareWarningDetails": "Des signalements concernant les firmwares 50.43.1.0 et 50.43.2.0 des WHOOP 5.0 / MG décrivent un accès aux données bloqué. Le Bluetooth peut encore se connecter. OpenStrap ne peut pas émettre le jeton d’abonnement signé par WHOOP nécessaire pour déverrouiller les bracelets concernés. Nous travaillons sur une solution, mais aucun correctif n’est encore disponible." } diff --git a/lib/l10n/app_hi.arb b/lib/l10n/app_hi.arb index 6159de0a0..9ba5477d6 100644 --- a/lib/l10n/app_hi.arb +++ b/lib/l10n/app_hi.arb @@ -2863,5 +2863,8 @@ } }, "reportContactLabel": "संपर्क (वैकल्पिक)", - "reportContactHint": "ईमेल या Discord, केवल अगर आप जवाब चाहते हैं" + "reportContactHint": "ईमेल या Discord, केवल अगर आप जवाब चाहते हैं", + "whoopFirmwareWarningTitle": "WHOOP उपयोगकर्ता: WHOOP ऐप से दोबारा कनेक्ट न करें", + "whoopFirmwareWarningAction": "अगर आप OpenStrap या कोई दूसरा ओपन-सोर्स ऐप इस्तेमाल करते हैं, या बाद में किसी पर जाने की सोच रहे हैं, तो अपना बैंड आधिकारिक WHOOP ऐप से दोबारा कनेक्ट न करें। वह फ़र्मवेयर अपडेट अपने-आप इंस्टॉल कर सकता है। WHOOP ऐप को अनइंस्टॉल या बंद कर दें, ताकि वह आपके बैंड को अपडेट न कर सके।", + "whoopFirmwareWarningDetails": "WHOOP 5.0 / MG के फ़र्मवेयर 50.43.1.0 और 50.43.2.0 के बारे में रिपोर्टें बताती हैं कि डेटा तक पहुँच रोक दी जाती है। ब्लूटूथ फिर भी कनेक्ट हो सकता है। प्रभावित बैंड को अनलॉक करने के लिए WHOOP द्वारा साइन किया गया मेंबरशिप टोकन चाहिए, जिसे OpenStrap जारी नहीं कर सकता। हम समाधान पर काम कर रहे हैं, लेकिन अभी कोई उपाय उपलब्ध नहीं है।" } diff --git a/lib/l10n/app_zh.arb b/lib/l10n/app_zh.arb index 472e0d493..15c3512ef 100644 --- a/lib/l10n/app_zh.arb +++ b/lib/l10n/app_zh.arb @@ -2863,5 +2863,8 @@ } }, "reportContactLabel": "联系方式(可选)", - "reportContactHint": "邮箱或 Discord,仅在你希望得到回复时填写" + "reportContactHint": "邮箱或 Discord,仅在你希望得到回复时填写", + "whoopFirmwareWarningTitle": "WHOOP 用户:请勿重新连接 WHOOP 应用", + "whoopFirmwareWarningAction": "如果你在使用 OpenStrap 或其他开源应用,或打算以后改用,请不要再把手环连接到 WHOOP 官方应用。它可能会自动安装固件更新。请卸载或停用 WHOOP 应用,以免它更新你的手环。", + "whoopFirmwareWarningDetails": "有报告称,WHOOP 5.0 / MG 固件 50.43.1.0 和 50.43.2.0 会阻止访问数据。蓝牙可能仍能连接。解锁受影响的手环需要由 WHOOP 签名的会员令牌,OpenStrap 无法签发。我们正在寻找解决办法,但目前还没有可用的修复。" } diff --git a/test/whoop_firmware_warning_test.dart b/test/whoop_firmware_warning_test.dart index 13d931fa8..ab41f2556 100644 --- a/test/whoop_firmware_warning_test.dart +++ b/test/whoop_firmware_warning_test.dart @@ -1,11 +1,34 @@ import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; +import 'package:openstrap_edge/l10n/app_localizations.dart'; import 'package:openstrap_edge/ui2/onboarding/pairing.dart'; import 'package:openstrap_edge/ui2/pairing/device_picker.dart'; import 'package:openstrap_edge/ui2/pairing/whoop_firmware_warning.dart'; import 'package:openstrap_edge/ui2/ui2.dart'; void main() { + // The warning is the one message that keeps a band usable, so it may not + // fall back to English: it shipped translated for ru and th only. + test('every language has its own firmware warning', () { + final en = lookupAppLocalizations(const Locale('en')); + for (final locale in AppLocalizations.supportedLocales) { + if (locale.languageCode == 'en') continue; + final l = lookupAppLocalizations(locale); + final code = locale.languageCode; + expect(l.whoopFirmwareWarningTitle, isNot(en.whoopFirmwareWarningTitle), + reason: code); + expect(l.whoopFirmwareWarningAction, isNot(en.whoopFirmwareWarningAction), + reason: code); + expect( + l.whoopFirmwareWarningDetails, isNot(en.whoopFirmwareWarningDetails), + reason: code); + // The facts a translation must not lose. + expect(l.whoopFirmwareWarningTitle, contains('WHOOP'), reason: code); + expect(l.whoopFirmwareWarningDetails, contains('50.43.1.0'), reason: code); + expect(l.whoopFirmwareWarningDetails, contains('50.43.2.0'), reason: code); + } + }); + for (final brightness in Brightness.values) { testWidgets('connection warning precedes search in $brightness', (t) async { t.view.physicalSize = const Size(390, 844); From db79b4760ab15d62e11cda33ca3633c5af8e2dd9 Mon Sep 17 00:00:00 2001 From: uvtqt Date: Wed, 11 Nov 2026 10:29:18 +0100 Subject: [PATCH 2/2] Hindi firmware warning: say disable, not close --- lib/l10n/app_hi.arb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/l10n/app_hi.arb b/lib/l10n/app_hi.arb index 9ba5477d6..94a6a819e 100644 --- a/lib/l10n/app_hi.arb +++ b/lib/l10n/app_hi.arb @@ -2865,6 +2865,6 @@ "reportContactLabel": "संपर्क (वैकल्पिक)", "reportContactHint": "ईमेल या Discord, केवल अगर आप जवाब चाहते हैं", "whoopFirmwareWarningTitle": "WHOOP उपयोगकर्ता: WHOOP ऐप से दोबारा कनेक्ट न करें", - "whoopFirmwareWarningAction": "अगर आप OpenStrap या कोई दूसरा ओपन-सोर्स ऐप इस्तेमाल करते हैं, या बाद में किसी पर जाने की सोच रहे हैं, तो अपना बैंड आधिकारिक WHOOP ऐप से दोबारा कनेक्ट न करें। वह फ़र्मवेयर अपडेट अपने-आप इंस्टॉल कर सकता है। WHOOP ऐप को अनइंस्टॉल या बंद कर दें, ताकि वह आपके बैंड को अपडेट न कर सके।", + "whoopFirmwareWarningAction": "अगर आप OpenStrap या कोई दूसरा ओपन-सोर्स ऐप इस्तेमाल करते हैं, या बाद में किसी पर जाने की सोच रहे हैं, तो अपना बैंड आधिकारिक WHOOP ऐप से दोबारा कनेक्ट न करें। वह फ़र्मवेयर अपडेट अपने-आप इंस्टॉल कर सकता है। WHOOP ऐप को अनइंस्टॉल या अक्षम कर दें, ताकि वह आपके बैंड को अपडेट न कर सके।", "whoopFirmwareWarningDetails": "WHOOP 5.0 / MG के फ़र्मवेयर 50.43.1.0 और 50.43.2.0 के बारे में रिपोर्टें बताती हैं कि डेटा तक पहुँच रोक दी जाती है। ब्लूटूथ फिर भी कनेक्ट हो सकता है। प्रभावित बैंड को अनलॉक करने के लिए WHOOP द्वारा साइन किया गया मेंबरशिप टोकन चाहिए, जिसे OpenStrap जारी नहीं कर सकता। हम समाधान पर काम कर रहे हैं, लेकिन अभी कोई उपाय उपलब्ध नहीं है।" }