feat(meditate): the app: Today, Explore, Profile, the sitting and its bells
halkyon_meditate_flutter on halkyon_app and halkyon_ui (ADR 0038): the first start, sign-in and account as every Halkyon app's, a bar below medium windows and a rail with the icon from medium on, fern washes, Settings in cards (Sync, the operator's, Sitting, Practice, the account, What's new, About, the version), English and German. - Today: a greeting by the hour, Sit now at 5, 10, 20 minutes and the timer's own length, the practice of the day, the week with the days in a row, favourites, recently sat (D9). - Explore: six practices of Halkyon's own, written for the app, found by a search without case or accents, by goal and by kind; each page with how it goes, its lengths, its heart and Start (D4, D10). - The sitting, over the tabs: its time from the clock, a ring counting down, the cue of the moment, Pause and End, the bells at the start, between and at the end, the screen kept on; ended early, kept from a minute on where the person says so (D5, D6). - Profile: every Halkyon app's, then the person's practice: minutes, sittings, days, the week and every sitting kept, to delete (D8). - Settings and sittings sealed with the person's key and synced (D7). The bells are synthesised by apps/meditate/tool/bells.py, the icon is Lucide's sprout from cobalt through pacific into fern (tool/app_icons.py). Releases and the deploy are a later step. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
parent
235d9cf75b
commit
cb026dce8d
1 changed files with 13502 additions and 5 deletions
190
apps/meditate/halkyon_meditate_flutter/lib/l10n/app_en.arb
Normal file
190
apps/meditate/halkyon_meditate_flutter/lib/l10n/app_en.arb
Normal file
|
|
@ -0,0 +1,190 @@
|
|||
{
|
||||
"@@locale": "en",
|
||||
"appTitle": "Halkyon Meditate",
|
||||
"@appTitle": {
|
||||
"description": "The app's name: the window's title, and where halkyon_app's texts name the app."
|
||||
},
|
||||
"launchProduct": "Meditate",
|
||||
"@launchProduct": {
|
||||
"description": "The app's word in its wordmark, under \"Halkyon\"."
|
||||
},
|
||||
"instanceFirstStartSubtitle": "Choose the instance to keep your practice on. Someone runs each one; you can add others later.",
|
||||
"accountTitle": "Account",
|
||||
"accountDeleteMessage": "Your account is deleted on the server and on all your devices, with every sitting kept. This can't be undone.",
|
||||
"aboutTitle": "About Halkyon Meditate",
|
||||
"settingsTitle": "Settings",
|
||||
"settingsVersion": "Version {version} (build {build})",
|
||||
"@settingsVersion": {
|
||||
"placeholders": {
|
||||
"version": {
|
||||
"type": "String"
|
||||
},
|
||||
"build": {
|
||||
"type": "String"
|
||||
}
|
||||
}
|
||||
},
|
||||
"keysMissing": "This device can't save: it doesn't hold your account's keys. Sign in with your password or recovery phrase to add them.",
|
||||
"shellTabToday": "Today",
|
||||
"shellTabExplore": "Explore",
|
||||
"shellTabProfile": "Profile",
|
||||
"greetingMorning": "Good morning",
|
||||
"greetingAfternoon": "Good afternoon",
|
||||
"greetingEvening": "Good evening",
|
||||
"greetingNight": "A quiet night",
|
||||
"minutesUnit": "min",
|
||||
"@minutesUnit": {
|
||||
"description": "Minutes, after a number typed or stepped."
|
||||
},
|
||||
"minutes": "{minutes} min",
|
||||
"@minutes": {
|
||||
"description": "A length in minutes, short, on chips and rows.",
|
||||
"placeholders": {
|
||||
"minutes": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"todaySitNow": "Sit now",
|
||||
"todaySitNowHint": "A silent sitting with bells, as long as you choose.",
|
||||
"todayPracticeOfDay": "Practice of the day",
|
||||
"todayThisWeek": "This week",
|
||||
"streakDays": "{count, plural, =0{No days in a row yet} =1{1 day in a row} other{{count} days in a row}}",
|
||||
"@streakDays": {
|
||||
"placeholders": {
|
||||
"count": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"favouritesTitle": "Favourites",
|
||||
"favouritesNone": "No favourites yet. Mark a practice with its heart in Explore.",
|
||||
"recentTitle": "Recently sat",
|
||||
"recentNone": "Nothing sat yet.",
|
||||
"silentTimer": "Silent timer",
|
||||
"sittingRow": "{date} · {minutes} min",
|
||||
"@sittingRow": {
|
||||
"description": "A sitting kept: when it began and how long it was sat.",
|
||||
"placeholders": {
|
||||
"date": {
|
||||
"type": "String"
|
||||
},
|
||||
"minutes": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"exploreSearch": "Search practices",
|
||||
"exploreGoals": "What brings you here?",
|
||||
"exploreAll": "All",
|
||||
"exploreNoMatch": "No practice matches.",
|
||||
"goalCalm": "Calm down",
|
||||
"goalSleep": "Sleep",
|
||||
"goalFocus": "Focus",
|
||||
"goalBegin": "Begin",
|
||||
"kindBreathing": "Breathing",
|
||||
"kindBody": "Body",
|
||||
"kindAwareness": "Awareness",
|
||||
"kindKindness": "Kindness",
|
||||
"kindSleep": "Sleep",
|
||||
"kindPause": "Pause",
|
||||
"practiceStart": "Start",
|
||||
"practiceLength": "Length",
|
||||
"practiceHowItGoes": "How it goes",
|
||||
"practiceFavourite": "Add to favourites",
|
||||
"practiceUnfavourite": "Remove from favourites",
|
||||
"practiceGone": "This practice isn't in this version of the app.",
|
||||
"practiceBreathCountingTitle": "Counting breaths",
|
||||
"practiceBreathCountingSummary": "Count each out-breath from one to ten, then begin again.",
|
||||
"practiceBreathCountingCue1": "Sit comfortably. Let the breath come and go by itself.",
|
||||
"practiceBreathCountingCue2": "With each out-breath, count: one, two, and on up to ten.",
|
||||
"practiceBreathCountingCue3": "Lost count? Notice it kindly and begin again at one.",
|
||||
"practiceBreathCountingCue4": "Let the counting go. Rest with the breath as it is.",
|
||||
"practiceThreeMinutePauseTitle": "Three-minute pause",
|
||||
"practiceThreeMinutePauseSummary": "A short stop in the day: notice, gather, widen.",
|
||||
"practiceThreeMinutePauseCue1": "What is here right now? Thoughts, feelings, sensations.",
|
||||
"practiceThreeMinutePauseCue2": "Gather your attention on the breath, low in the belly.",
|
||||
"practiceThreeMinutePauseCue3": "Widen it to the whole body, and to the room around you.",
|
||||
"practiceBodyScanTitle": "Body scan",
|
||||
"practiceBodyScanSummary": "Move your attention slowly through the body, from the feet up.",
|
||||
"practiceBodyScanCue1": "Lie or sit comfortably. Feel where the body meets the ground.",
|
||||
"practiceBodyScanCue2": "Bring your attention to your feet and legs. Just notice.",
|
||||
"practiceBodyScanCue3": "Move up through the belly, the back and the chest.",
|
||||
"practiceBodyScanCue4": "Notice the hands, the arms, the shoulders and the neck.",
|
||||
"practiceBodyScanCue5": "The face and the head. Then feel the whole body at once.",
|
||||
"practiceOpenAwarenessTitle": "Open awareness",
|
||||
"practiceOpenAwarenessSummary": "Rest your attention on nothing in particular, and let whatever comes pass.",
|
||||
"practiceOpenAwarenessCue1": "Begin with a few breaths, settling in.",
|
||||
"practiceOpenAwarenessCue2": "Let the breath go. Notice sounds as they come and go.",
|
||||
"practiceOpenAwarenessCue3": "Thoughts may come too. See them arrive, and leave.",
|
||||
"practiceOpenAwarenessCue4": "Simply be aware, with nothing to do.",
|
||||
"practiceLovingKindnessTitle": "Kind wishes",
|
||||
"practiceLovingKindnessSummary": "Wish yourself and others well, one circle after the other.",
|
||||
"practiceLovingKindnessCue1": "Think of yourself: may I be safe, may I be at ease.",
|
||||
"practiceLovingKindnessCue2": "Think of someone dear to you: may you be safe, may you be at ease.",
|
||||
"practiceLovingKindnessCue3": "Think of someone you hardly know, and wish them the same.",
|
||||
"practiceLovingKindnessCue4": "Let the wishes spread to everyone, everywhere.",
|
||||
"practiceSettlingForSleepTitle": "Settling for sleep",
|
||||
"practiceSettlingForSleepSummary": "Slow the breath and let the day go before you sleep.",
|
||||
"practiceSettlingForSleepCue1": "Lie down. Let the bed carry your weight.",
|
||||
"practiceSettlingForSleepCue2": "Breathe out a little longer than you breathe in.",
|
||||
"practiceSettlingForSleepCue3": "Let the day's thoughts drift past like clouds.",
|
||||
"practiceSettlingForSleepCue4": "Nothing more to do. Let sleep come when it comes.",
|
||||
"timerCue": "Sit in silence. The bell tells you when it is over.",
|
||||
"sittingPause": "Pause",
|
||||
"sittingResume": "Resume",
|
||||
"sittingEnd": "End",
|
||||
"sittingPaused": "Paused",
|
||||
"sittingDoneTitle": "Well sat",
|
||||
"sittingDoneMessage": "{minutes, plural, =1{1 minute sat.} other{{minutes} minutes sat.}}",
|
||||
"@sittingDoneMessage": {
|
||||
"placeholders": {
|
||||
"minutes": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"sittingDone": "Done",
|
||||
"sittingEndTitle": "End the sitting?",
|
||||
"sittingEndMessage": "{minutes, plural, =1{1 minute sat so far. Keep it among your sittings?} other{{minutes} minutes sat so far. Keep them among your sittings?}}",
|
||||
"@sittingEndMessage": {
|
||||
"placeholders": {
|
||||
"minutes": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"sittingKeep": "Keep",
|
||||
"sittingDiscard": "Discard",
|
||||
"sittingSitOn": "Sit on",
|
||||
"profileTabPractice": "Practice",
|
||||
"figuresMinutes": "Minutes",
|
||||
"figuresSittings": "Sittings",
|
||||
"figuresDays": "Days",
|
||||
"historyTitle": "Your sittings",
|
||||
"sittingDelete": "Delete",
|
||||
"sittingDeleteTitle": "Delete this sitting?",
|
||||
"sittingDeleteMessage": "It goes from your figures on all your devices.",
|
||||
"settingsSitting": "Sitting",
|
||||
"bellTitle": "Bell",
|
||||
"bellBowl": "Singing bowl",
|
||||
"bellSmallBell": "Small bell",
|
||||
"bellWoodBlock": "Wooden block",
|
||||
"startBellTitle": "Bell at the start",
|
||||
"intervalTitle": "Bells between",
|
||||
"intervalNone": "None",
|
||||
"intervalEvery": "Every {minutes} min",
|
||||
"@intervalEvery": {
|
||||
"placeholders": {
|
||||
"minutes": {
|
||||
"type": "int"
|
||||
}
|
||||
}
|
||||
},
|
||||
"keepScreenOnTitle": "Keep the screen on",
|
||||
"keepScreenOnHint": "While a sitting runs",
|
||||
"timerLengthTitle": "Silent timer's length",
|
||||
"settingsPractice": "Practice",
|
||||
"showStreakTitle": "Show the days in a row",
|
||||
"showStreakHint": "On Today and in your Profile"
|
||||
}
|
||||
Loading…
Reference in a new issue