feat(space): unify end session flow and en-first copy
This commit is contained in:
208
src/shared/i18n/messages/space.en.ts
Normal file
208
src/shared/i18n/messages/space.en.ts
Normal file
@@ -0,0 +1,208 @@
|
||||
import { space as koSpace } from './space';
|
||||
|
||||
export const spaceEn = {
|
||||
...koSpace,
|
||||
sessionGoal: {
|
||||
...koSpace.sessionGoal,
|
||||
label: 'One goal for this session',
|
||||
required: '(Required)',
|
||||
placeholder: 'e.g. Draft the first page of the contract',
|
||||
hint: 'Keep it small. Just the next concrete piece.',
|
||||
},
|
||||
setup: {
|
||||
...koSpace.setup,
|
||||
panelAriaLabel: 'Focus entry panel',
|
||||
eyebrow: 'Execution Setup',
|
||||
title: 'Set the goal, time, and atmosphere. Then step in.',
|
||||
description: 'Pick a goal, background, timer, and sound. Then move straight into the focus stage.',
|
||||
resumeTitle: 'Pick up the last block',
|
||||
startFresh: 'Start fresh',
|
||||
resumePrepare: 'Prepare to resume',
|
||||
sceneLabel: 'Background',
|
||||
timerLabel: 'Time',
|
||||
soundLabel: 'Sound',
|
||||
reviewTeaserEyebrow: 'Weekly Review',
|
||||
reviewTeaserTitle: 'Take another look at this week?',
|
||||
reviewTeaserTitlePro: 'Review this week and reopen the rhythm that worked best?',
|
||||
reviewTeaserHelper: 'You can jump right back in, or pause for a quick weekly review first.',
|
||||
reviewTeaserHelperPro: 'You can jump right back in, or check this week’s flow and recommended atmosphere first.',
|
||||
reviewTeaserCta: 'Open weekly review',
|
||||
reviewTeaserDismiss: 'Later',
|
||||
readyHint: 'Add a goal to unlock the start flow.',
|
||||
openFocusScreen: 'Open focus stage',
|
||||
},
|
||||
timerHud: {
|
||||
...koSpace.timerHud,
|
||||
actions: [
|
||||
{ id: 'start', label: 'Start', icon: '▶' },
|
||||
{ id: 'pause', label: 'Pause', icon: '⏸' },
|
||||
{ id: 'reset', label: 'Reset', icon: '↺' },
|
||||
],
|
||||
readyMode: 'Ready',
|
||||
focusMode: 'Focus',
|
||||
breakMode: 'Break',
|
||||
goalFallback: 'Set the next block to begin.',
|
||||
goalPrefix: 'Current block · ',
|
||||
completeButton: 'Complete',
|
||||
},
|
||||
focusHud: {
|
||||
...koSpace.focusHud,
|
||||
goalFallback: 'Start the next block.',
|
||||
goalToast: (goal: string) => `Current block · ${goal}`,
|
||||
restReminder: 'Five minutes passed. Come back to the next block.',
|
||||
intentLabel: 'Current session goal',
|
||||
microStepLabel: 'Current microstep',
|
||||
intentExpandAriaLabel: 'Expand goal card',
|
||||
refocusButton: 'Edit goal',
|
||||
intentEditLabel: 'Edit',
|
||||
refocusTitle: 'Reset the direction',
|
||||
refocusDescription: 'Tighten one line, then go again.',
|
||||
refocusApply: 'Apply',
|
||||
refocusApplyAndResume: 'Apply and resume',
|
||||
refocusApplying: 'Applying…',
|
||||
refocusSaved: 'The session direction is updated.',
|
||||
refocusOpenOnPause: 'If you paused, want to realign the next tiny piece before you continue?',
|
||||
pausePromptEyebrow: 'Paused',
|
||||
pausePromptTitle: 'You only need one line to restart.',
|
||||
pausePromptDescription: 'You do not have to explain why you stopped. Just set the next line your hands can land on.',
|
||||
pausePromptRefocus: 'Reset the next piece',
|
||||
pausePromptRefocusHint: 'Keep the goal. Rewrite only the next line you will actually start with.',
|
||||
pausePromptKeep: 'Resume now',
|
||||
pausePromptKeepHint: 'Keep the current direction and continue from where you stopped.',
|
||||
pausePromptFinish: 'Finish here',
|
||||
pausePromptFinishHint: 'Close this block quietly instead of trying to force your way back in.',
|
||||
returnPromptEyebrow: 'You are back',
|
||||
returnPromptFocusTitle: 'The flow is still here.',
|
||||
returnPromptFocusDescription: 'You can continue exactly where you paused, or softly reset the next piece before you return.',
|
||||
returnPromptBreakTitle: 'A break started while you were away.',
|
||||
returnPromptBreakDescription: 'Keep the break going, or move gently into the next block.',
|
||||
returnPromptContinue: 'Resume where I left off',
|
||||
returnPromptContinueHint: 'Keep the timer and the flow exactly as they are and return to focus.',
|
||||
returnPromptRest: 'Stay on break',
|
||||
returnPromptRestHint: 'Keep the break that already started and breathe for a little longer.',
|
||||
returnPromptNext: 'Next block',
|
||||
returnPromptNextHint: 'Set the next piece and continue inside the same session flow.',
|
||||
returnPromptRefocus: 'Reset the next piece',
|
||||
returnPromptRefocusHint: 'Skip the explanation. Just leave yourself the next line to start with.',
|
||||
returnPromptFinish: 'Finish here',
|
||||
returnPromptFinishHint: 'Close this flow here and leave the next entry light.',
|
||||
microStepCompleteAriaLabel: 'Complete current microstep',
|
||||
microStepPromptEyebrow: 'Next step',
|
||||
microStepPromptTitle: 'Is there a clear next step?',
|
||||
microStepPromptDescription: 'If yes, write one line. If not, keep the goal and continue.',
|
||||
microStepPromptKeep: 'Keep going with the goal',
|
||||
microStepPromptKeepHint: 'Clear the next step and continue inside the same goal.',
|
||||
microStepPromptDefine: 'Write the next step',
|
||||
microStepPromptDefineHint: 'Capture the smallest next action you can immediately start.',
|
||||
microStepPromptFinish: 'Finish this goal here',
|
||||
microStepPromptFinishHint: 'Do not grow the next step. Close this block cleanly here.',
|
||||
microStepCleared: 'The microstep is cleared. The goal stays.',
|
||||
completeAction: 'END SESSION',
|
||||
},
|
||||
goalComplete: {
|
||||
...koSpace.goalComplete,
|
||||
placeholderFallback: 'Write the next block',
|
||||
placeholderExample: (goal: string) => `e.g. ${goal}`,
|
||||
title: 'How do you want to continue this block?',
|
||||
description: 'Pick one path and keep the momentum simple.',
|
||||
timerTitle: 'Time is up. What should happen to this goal?',
|
||||
timerDescription: 'Finish the session here, or keep the same flow alive for ten more minutes.',
|
||||
nextTitle: 'Good. Define the next block.',
|
||||
nextDescription: 'Do not make it bigger. Leave only the next line your hands can start with.',
|
||||
currentGoalLabel: 'Current block',
|
||||
nextGoalLabel: 'Next block',
|
||||
chooseNextButton: 'Next block',
|
||||
chooseNextDescription: 'Define the next piece and continue inside the same flow.',
|
||||
backButton: 'Back',
|
||||
closeAriaLabel: 'Close',
|
||||
finishButton: 'Finish here',
|
||||
finishDescription: 'Close this block here and leave the next entry light.',
|
||||
timerFinishButton: 'Finish session',
|
||||
timerFinishDescription: 'Record this goal as complete and close the session.',
|
||||
timerFinishPending: 'Finishing…',
|
||||
restButton: 'Step away',
|
||||
restDescription: 'Keep the block alive, pause briefly, and come back later.',
|
||||
extendButton: '10 more minutes',
|
||||
extendDescription: 'Keep the current flow and continue for ten more minutes.',
|
||||
extendPending: 'Adding 10 minutes…',
|
||||
confirmButton: 'Start next block',
|
||||
confirmPending: 'Starting…',
|
||||
finishPending: 'Finishing…',
|
||||
},
|
||||
completionResult: {
|
||||
...koSpace.completionResult,
|
||||
eyebrow: 'SESSION COMPLETE',
|
||||
title: 'This session is now gently closed.',
|
||||
description: 'Here is what you focused on, what you finished, and what you parked in your thought capsule.',
|
||||
focusedLabel: 'Focused time',
|
||||
focusedValue: (minutes: number) => `${minutes} min`,
|
||||
goalLabel: 'Completed goal',
|
||||
thoughtsLabel: 'Thought capsule',
|
||||
thoughtCount: (count: number) => `${count} items`,
|
||||
confirmButton: 'Back to lobby',
|
||||
},
|
||||
endSession: {
|
||||
...koSpace.endSession,
|
||||
trigger: 'END SESSION',
|
||||
eyebrow: 'END SESSION',
|
||||
title: 'Did you finish this goal?',
|
||||
description: 'Choose the path that matches this block. If you close the session, we will show the result summary before you head back.',
|
||||
goalLabel: 'Current goal',
|
||||
cancelButton: 'Keep focusing',
|
||||
confirmButton: 'End session',
|
||||
confirmPending: 'Ending…',
|
||||
finishedTitle: 'Nice. How do you want to close it?',
|
||||
finishedDescription: 'You can open the next block right away, or close this session here.',
|
||||
unfinishedTitle: 'Okay. What do you want to do with this session?',
|
||||
unfinishedDescription: 'If the goal is not done yet, you can still close the session here.',
|
||||
finishedAnswer: 'Yes, I finished it',
|
||||
unfinishedAnswer: 'No, not yet',
|
||||
nextBlockButton: 'Next block',
|
||||
finishHereButton: 'Finish here',
|
||||
endHereButton: 'End session',
|
||||
backButton: 'Back',
|
||||
nextGoalLabel: 'Next block',
|
||||
nextGoalPlaceholder: 'e.g. Refine the travel budget',
|
||||
nextGoalConfirmButton: 'Start next block',
|
||||
},
|
||||
quickNotes: {
|
||||
...koSpace.quickNotes,
|
||||
title: 'Park the thought for later',
|
||||
placeholder: 'Drop the thought here…',
|
||||
submit: 'Save',
|
||||
hint: 'You can sort it in the inbox later.',
|
||||
},
|
||||
inbox: {
|
||||
...koSpace.inbox,
|
||||
empty: 'Nothing is parked yet. Thoughts that pop up during focus can be dropped here.',
|
||||
complete: 'Done',
|
||||
completed: 'Done',
|
||||
delete: 'Delete',
|
||||
readOnly: 'A read-only inbox for later review',
|
||||
clearAll: 'Clear all',
|
||||
clearConfirmTitle: 'Clear the inbox?',
|
||||
clearConfirmDescription: 'If this was a mistake, you can undo it in the toast.',
|
||||
clearButton: 'Clear',
|
||||
openInboxAriaLabel: 'Open inbox',
|
||||
openInboxTitle: 'Inbox',
|
||||
},
|
||||
workspace: {
|
||||
...koSpace.workspace,
|
||||
readyToStart: 'Ready. Press start and step into focus.',
|
||||
startFailed: 'Could not start the session. Please try again in a moment.',
|
||||
resumeFailed: 'Could not resume the session.',
|
||||
abandonFailed: 'Could not close the session.',
|
||||
pauseFailed: 'Could not pause the session.',
|
||||
restartFailed: 'Could not restart the current phase.',
|
||||
restarted: 'The current phase has been restarted.',
|
||||
intentSyncFailed: 'Could not sync the session direction to the server.',
|
||||
goalCompleteSyncFailed: 'Could not record the goal-complete finish on the server.',
|
||||
timerCompleteSyncFailed: 'Could not finish the timer-complete session.',
|
||||
timerExtendFailed: 'Could not add 10 more minutes.',
|
||||
timerExtendConflict: 'This session was already extended in another window.',
|
||||
timerExtended: (minutes: number) => `${minutes} more minutes added.`,
|
||||
nextGoalStarted: 'The next block started right away.',
|
||||
selectionPreferenceSaveFailed: 'Could not save the default background/sound selection.',
|
||||
selectionSessionSyncFailed: 'Could not sync the current session background/sound selection.',
|
||||
},
|
||||
} as const;
|
||||
Reference in New Issue
Block a user