i18n: extract task-creation flow strings (Part of #145) - #155
i18n: extract task-creation flow strings (Part of #145)#155everysingletear wants to merge 8 commits into
Conversation
Wrap the assignee picker's user-facing strings in t():
- chores:assignee.label ("Assignee")
- chores:assignee.anyone ("Anyone")
- common:unknown ("Unknown" — shared user-name fallback)
Adds the English source keys only; no behavior change.
Wrap the reminder picker in t():
- chores:remind.* — label, title, on-due-date, and pluralized reminder
count (count_one/count_other)
- relative-time split so translations control word order:
chores:remind.unit.{minute,hour,day}_* (pluralized units) +
chores:remind.{before,after} ("{{num}} {{unit}} ...", plain interpolation)
- common:apply / common:removeAll (shared buttons); common:cancel reused
Adds English source keys only; no behavior change.
Wrap the modal title, sentence label, placeholder, footer buttons and the "task in a sentence" help block in t(). Help list items use plain t() with the example keywords (P1, tomorrow, daily...) kept as literal <em> — they are the parser's input tokens, not translatable copy. Adds common:create; reuses common:cancel. Partial: strings below the input section remain for a follow-up.
- Priority: reuse chores:priority for the label; add chores:noPriority. P1-P4 kept as literal codes. - Labels: chores:labels.* incl. pluralized count (count_one/other) and the "Create label" action.
Wrap trigger/title, quick-date and quick-time labels, and Anytime/Specific time in t() (chores:duePicker.*; reuse chores:dueDate). Replace the hardcoded month/weekday abbreviation arrays with moment formatting so the calendar localizes with the active language.
The @-mention "Anyone" option reuses chores:assignee.anyone. AddTaskModal now has no remaining hardcoded copy (example keywords stay literal).
Project, Attachment (pluralized file count), SmartTaskTitleInput, SubTask, AdvancedOptionsSection (assign-strategy options), and RepeatPickerField (SectionLabel translates via key; frequency/occurrence/unit labels; day and month names via moment).
|
Apologies for leaving this sitting red — I've now audited it properly rather than just rebasing and hoping. Six of the twelve files here were rewritten on The other six files are untouched, and they happen to be a coherent set on their own: the task-form field components. So rather than leave this conflicting indefinitely, I'd like to force-push it down to just those and retitle it "i18n: extract task form field strings" — That turns this into a small, conflict-free, reviewable PR. The rewritten half goes back into the queue behind the modal work, and I'll send it once that's settled. Full audit of the whole fork — what's ready and what's blocked on which refactor — is in #145. Shout if you'd rather I just close this one instead. |
Part of #145.
Extracts the hardcoded user-facing strings in the task-creation flow into
the existing i18next setup. This is a language-agnostic extraction PR: it only
adds English keys to
public/locales/en/and wraps the strings int()— nonew language dictionaries, no behavior changes.
Components migrated
The full "add / create task" surface:
AddTaskModal(header, help section, subtasks, description)AssigneePickerFieldPriorityPickerFieldLabelsPickerFieldDueDatePickerField(Today/Tomorrow/Weekend, time-of-day presets)RepeatPickerField(frequency, "repeat every", day-of-month)NotificationPickerField(reminder counts — pluralized)ProjectPickerFieldAttachmentPickerField(file counts — pluralized)SmartTaskTitleInputSubTaskAdvancedOptionsSection(assignment strategies)Notes
choresnamespace (plus a few reused generics incommon), following the existing feature-scoped namespace convention._one/_other) soother languages can supply their own plural forms.
commonrather than duplicated.
Testing
npm run build— green.t()withno visible change in English.