Repository navigation
EMI: feat: say what each My data row and export file is for - #370
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What. This changes the words of the My data rows and the export screen in English, Spanish and Russian, so each row says what it does for her. Each export file now has a line that says what it holds and its format.
Why. The review by a native speaker (Polina) said that "One press, and it's gone for good" was too harsh, and that the export did not say what she gets. Step 25 changed the Russian only. This step moves English and Spanish to the same meaning.
No canvas board exists for this step. The export tiles keep the existing look: the new line under each name uses the body small style and the secondary text colour of the settings rows.
My data, English (before, after)
My data, Russian (before, after)
Download data, English (before, after)
Download data, Russian (before, after)
I captured all pictures on the iPhone SE (3rd generation) simulator, from Metro on this checkout. The before pictures are from main at
6677b83. The after pictures are from this branch at3f4ef5d. They are observed, not rendered. I made no export file on the phone and sent nothing anywhere.Stack. Step 25, #363, merged before this branch was cut, so this pull request is based on main. Step 31, #369, is the sibling for Insights. This pull request touches none of its keys.
Issue. Closes #324, #324. This is the last step for the issue. It closes together with #363 (merged) and #369.
Draft text for review. Each line: the key, then English, Russian and Spanish, old and new.
settings.settings.answersLine. EN: "What you told us when you started" to "Your name and your answers from setup". RU: «Имя и ответы из первой настройки» (no change, step 25). ES: «Lo que nos contaste al empezar» to «Tu nombre y tus respuestas de la configuración inicial».settings.settings.lock. EN: "Lock" to "App lock". RU: «Блокировка входа» (no change). ES: «Bloqueo» to «Bloqueo de la aplicación».settings.settings.lockLine. EN: "On, with your face or your passcode" to "Face ID, Touch ID or your phone passcode". RU: «Включена: по лицу или по коду доступа» to «Face ID, Touch ID или код телефона». ES: «Activado, con tu cara o tu código de acceso» to «Face ID, Touch ID o el código de tu teléfono».settings.settings.export. EN: "Export" to "Download data". RU: «Скачать данные» (no change). ES: «Exportar» to «Descargar datos».settings.settings.exportLine. EN: "Two files, made on this phone" to "Save your records or make a report for your doctor". RU: «Сохранить записи или подготовить отчёт для врача» (no change). ES: «Dos archivos, creados en este teléfono» to «Guarda tus registros o prepara un informe para tu médico».settings.settings.delete. EN: "Delete everything" to "Delete data". RU: «Удалить данные» (no change). ES: «Borrarlo todo» to «Borrar datos».settings.settings.deleteLine. EN: "One press, and it's gone for good" to "Delete your records and settings". RU: «Удалить записи и настройки» (no change). ES: «Una pulsación, y desaparece para siempre» to «Borra tus registros y tus ajustes».export.title. EN: "Export" to "Download data". RU: «Скачать данные» (no change). ES: «Exportar» to «Descargar datos».export.what. EN: "Two files: one you can read or give to your doctor, and one another app can open." to "Save a report for yourself or your doctor, and a file with all your records. Both files are made together, and you can share each one on its own." RU: «Можно сохранить отчёт для себя или врача и файл для переноса записей в другое приложение.» to «Можно сохранить отчёт для себя или врача и файл со всеми записями. Оба файла создаются вместе, и каждым можно поделиться отдельно.» ES: «Dos archivos: uno que puedes leer o dar a tu médico, y otro que puede abrir otra aplicación.» to «Guarda un informe para ti o para tu médico, y un archivo con todos tus registros. Los dos archivos se crean a la vez, y puedes compartir cada uno por separado.»export.forADoctor. EN: "For a doctor" to "Report for your doctor". RU: «Отчёт для врача» (no change). ES: «Para un médico» to «Informe para tu médico».export.forADoctorLine(new). EN: "Your period dates and day entries, as a web page (.html)". RU: «Даты месячных и записи о самочувствии, страница для браузера (.html)». ES: «Tus fechas de periodo y tus registros diarios, como página web (.html)».export.forAnApplication. EN: "For an application" to "Data file". RU: «Файл с данными» (no change). ES: «Para una aplicación» to «Archivo de datos».export.forAnApplicationLine(new). EN: "Everything you logged, in a .json file other apps can open". RU: «Все ваши записи в файле .json, который открывают другие приложения». ES: «Todo lo que registraste, en un archivo .json que otras aplicaciones pueden abrir».export.where. EN: "Nothing is sent anywhere. The files are made on this phone, and you decide who gets them." to "The files are made on your phone. You choose where to save them and who to send them to." RU: «Файлы создаются на вашем телефоне. Вы сами выбираете, где их сохранить и кому отправить.» (no change). ES: «No se envía nada a ninguna parte. Los archivos se crean en este teléfono, y tú decides quién los recibe.» to «Los archivos se crean en tu teléfono. Tú eliges dónde guardarlos y a quién enviarlos.»Decisions.
lockLine: Polina wrote «Face ID или код телефона». An iPhone SE has Touch ID, so I added Touch ID. I removed "On":features/lock/LockGate.tsxopens the app without a prompt when the phone has nothing enrolled, so "On" is not true on every phone. I readfeatures/lock/deviceLock.ts: it asks the phone withdisableDeviceFallback: false, so the passcode is the way past a failed face or finger. The app ships for iOS only (noandroidfolder), so the Apple names are true.forAnApplicationLine: Polina wrote «Для переноса записей в совместимое приложение». No app is known to import the Emi file, so "transfer to a compatible app" is not true in the code. I used the nearest true line: the file is.json(features/export/files.ts), which other apps can open. For the same reason,export.whatin Russian now says «файл со всеми записями» in place of «файл для переноса записей в другое приложение», which step 25 had shipped.forADoctorLine:features/export/readableDocument.tswrites the cycles, the days and the settings into an.htmlpage. The line names the period dates and the day entries, and the format. Polina asked for the formats.export.whatadds that both files are made together and each one can be shared on its own. Polina asked whether she can take one file.ExportScreen.tsxmakes both files with one press and gives each file its own Share button.export.where:features/export/expoDestination.tswrites the files to the cache folder on the phone, and the share sheet she opens is the only way out. The app uploads nothing.tests/copy/storageWords.test.tsxpasses.export.heldalready has plural forms.settings.answers.goalsChosenandsettings.answers.feeling(Your answers screen,feelingfollows the first run question of Onboarding: work out cycle and period length from her dates, and ask about irregular cycles only when it applies #326),settings.delete.line(step 6 for The delete screen says there is a server account, but onboarding says there is no account #319 set it), the assurance card «Только вы можете читать свои дни.» (step 14 added the page that explains it).23.6pinned the old English ofanswersLine,deleteLine,export.whatandexport.where. It now pins the new English, holds the two new keys in the same language checks (no Emi, no refused word, not left in English), and checks the line under each export tile. The BDD steps file pins the same new English, and SCREEN-2 reads the new answers line. New testtests/copy/myDataAndExportWords.test.tsxrenders both screens in the three languages, checks every row and tile line in order, and checks that the old words are gone.Checks.
make check: every stage before the tests passed. Workspace tests 124 and 1873 passed. Mobile tests 3671 passed and 1 failed: 10.7, the known local noise, because~/.npmrcprints the "always-auth" and "email" warnings. In an earlier run 6.2 (timing ratio) also failed while Metro was busy, and it passed in the final run.npm run test:behaviour: 98 passed.tools/pipeline/forbiddenClaims.ts), the naming tests 23.2 to 23.6, the storage words test and the pinned strings pass.ExportScreen.tsx. The new test failed (3 failed, 7 passed). I restored the file, and it passed (10 passed).brand/screens/privacyandbrand/screens/export-screenare generated again with their npm scripts.grep -c itvrepos package-lock.jsonprints 0.