From cc2e656e142ea7f4f4703f3559e63b981e7e1843 Mon Sep 17 00:00:00 2001 From: Mo Tarbin Date: Tue, 18 Aug 2026 00:06:34 -0400 Subject: [PATCH] update localization for notifications, colors, and icons across multiple components --- public/locales/en/chores.json | 17 +++++++++++- public/locales/en/common.json | 26 +++++++++++++++++++ public/locales/en/history.json | 14 ++++++++++ public/locales/en/projects.json | 26 +++++++++++++++++++ src/components/NotificationTemplate.jsx | 26 +++++++++---------- .../Modals/Inputs/AdvancedFilterBuilder.jsx | 2 +- src/views/Modals/Inputs/IconPickerModal.jsx | 2 +- 7 files changed, 97 insertions(+), 16 deletions(-) diff --git a/public/locales/en/chores.json b/public/locales/en/chores.json index 6555089..f929aac 100644 --- a/public/locales/en/chores.json +++ b/public/locales/en/chores.json @@ -394,8 +394,23 @@ "failedScan": "Failed scan" }, "descriptionPlaceholder": "Enter description...", - "notifTemplate": { + "notificationTemplate": { "onDueDate": "On due date", + "timing": { + "before": "Before", + "ondue": "Due", + "after": "After" + }, + "unitName": { + "m": "minutes", + "h": "hours", + "d": "days" + }, + "unitShort": { + "m": "Mins", + "h": "Hours", + "d": "Days" + }, "beforeDue": "{{count}} {{unit}} before due", "afterDue": "{{count}} {{unit}} after due", "errDuplicate": "This notification setting already exists. Please use a different timing.", diff --git a/public/locales/en/common.json b/public/locales/en/common.json index 6801e6f..f2a5667 100644 --- a/public/locales/en/common.json +++ b/public/locales/en/common.json @@ -9,6 +9,32 @@ "error": "Error", "success": "Success", "warning": "Warning", + "colors": { + "Salmon": "Salmon", + "Teal": "Teal", + "Sky Blue": "Sky Blue", + "Grape": "Grape", + "Sunshine": "Sunshine", + "Coral": "Coral", + "Lavender": "Lavender", + "Rose": "Rose", + "Charcoal": "Charcoal", + "Sienna": "Sienna", + "Mint": "Mint", + "Amber": "Amber", + "Cobalt": "Cobalt", + "Emerald": "Emerald", + "Peach": "Peach", + "Ocean": "Ocean", + "Mustard": "Mustard", + "Ruby": "Ruby", + "Periwinkle": "Periwinkle", + "Turquoise": "Turquoise", + "Lime": "Lime", + "Blush": "Blush", + "Ash": "Ash", + "Sand": "Sand" + }, "refresh": "Refresh", "copy": "Copy", "copied": "Copied!", diff --git a/public/locales/en/history.json b/public/locales/en/history.json index 9d4b256..d0da7fe 100644 --- a/public/locales/en/history.json +++ b/public/locales/en/history.json @@ -21,6 +21,20 @@ "onTime": "On Time", "onTimeLabel": "On time" }, + "card": { + "wasDue": "Was due {{date}}", + "daysBeforeDue_one": "{{count}}d before due date", + "daysBeforeDue_other": "{{count}}d before due date", + "daysAfterDue_one": "{{count}}d after due date", + "daysAfterDue_other": "{{count}}d after due date", + "hoursBeforeDue_one": "{{count}}h before due date", + "hoursBeforeDue_other": "{{count}}h before due date", + "hoursAfterDue_one": "{{count}}h after due date", + "hoursAfterDue_other": "{{count}}h after due date", + "assignedTo": "Assigned to {{name}}", + "points_one": "★ {{count}} pt", + "points_other": "★ {{count}} pts" + }, "detail": { "title": "Activity Detail", "openTask": "Open Task", diff --git a/public/locales/en/projects.json b/public/locales/en/projects.json index d9c34d8..97c2f62 100644 --- a/public/locales/en/projects.json +++ b/public/locales/en/projects.json @@ -3,6 +3,32 @@ "chooseIcon": "Choose Project Icon", "availableIcons": "Available Icons" }, + "icons": { + "FolderOpen": "Folder", + "Work": "Work", + "Home": "Home", + "School": "School", + "BusinessCenter": "Business", + "Code": "Code", + "Build": "Build", + "Palette": "Design", + "SportsSoccer": "Sports", + "FitnessCenter": "Fitness", + "ShoppingCart": "Shopping", + "Restaurant": "Food", + "Flight": "Travel", + "Book": "Study", + "MusicNote": "Music", + "PhotoCamera": "Photo", + "Games": "Games", + "Science": "Science", + "AccountBalance": "Finance", + "LocalHospital": "Health", + "DirectionsCar": "Auto", + "Pets": "Pets", + "Garden": "Garden", + "Computer": "Tech" + }, "defaultChip": "Default", "tasks_one": "{{count}} task", "tasks_other": "{{count}} tasks", diff --git a/src/components/NotificationTemplate.jsx b/src/components/NotificationTemplate.jsx index 2db2d90..66c8644 100644 --- a/src/components/NotificationTemplate.jsx +++ b/src/components/NotificationTemplate.jsx @@ -30,13 +30,13 @@ function getRelativeLabel(notification, t) { const { unit, value } = notification const numericValue = Number(value) if (numericValue === 0) { - return t('notifTemplate.onDueDate') + return t('notificationTemplate.onDueDate') } - const unitName = t(`notifTemplate.unitName.${unit}`) + const unitName = t(`notificationTemplate.unitName.${unit}`) const absValue = Math.abs(numericValue) return numericValue < 0 - ? t('notifTemplate.beforeDue', { count: absValue, unit: unitName }) - : t('notifTemplate.afterDue', { count: absValue, unit: unitName }) + ? t('notificationTemplate.beforeDue', { count: absValue, unit: unitName }) + : t('notificationTemplate.afterDue', { count: absValue, unit: unitName }) } // Helper functions to convert between internal value and UI representation @@ -223,7 +223,7 @@ const NotificationTemplate = ({ if (!currentNotification) return if (isDuplicate(currentNotification, idx, currentList)) { - setError(t('notifTemplate.errDuplicate')) + setError(t('notificationTemplate.errDuplicate')) return } } @@ -235,14 +235,14 @@ const NotificationTemplate = ({ if (type === 'due') { if (notificationsRef.current.some(n => Number(n.value) === 0)) { - setError(t('notifTemplate.errOneDue')) + setError(t('notificationTemplate.errOneDue')) return } newNotification = { value: 0, unit: 'm' } } else { newNotification = getSmartSuggestion(type) if (!newNotification) { - setError(t('notifTemplate.errAllConfigured', { type })) + setError(t('notificationTemplate.errAllConfigured', { type })) return } } @@ -578,7 +578,7 @@ const NotificationTemplate = ({ value={opt.value} disabled={opt.value === 'ondue' && hasOnDueElsewhere} > - {t(`notifTemplate.timing.${opt.value}`)} + {t(`notificationTemplate.timing.${opt.value}`)} ))} @@ -641,7 +641,7 @@ const NotificationTemplate = ({ > {timeUnits.map(opt => ( ))} @@ -691,7 +691,7 @@ const NotificationTemplate = ({ }, }} > - {t('notifTemplate.reminder')} + {t('notificationTemplate.reminder')} {showSaveDefault && ( @@ -765,7 +765,7 @@ const NotificationTemplate = ({ setShowSaveDefault(false) }} > - {t('notifTemplate.rememberFuture')} + {t('notificationTemplate.rememberFuture')} )} diff --git a/src/views/Modals/Inputs/AdvancedFilterBuilder.jsx b/src/views/Modals/Inputs/AdvancedFilterBuilder.jsx index 8f01b96..9e150eb 100644 --- a/src/views/Modals/Inputs/AdvancedFilterBuilder.jsx +++ b/src/views/Modals/Inputs/AdvancedFilterBuilder.jsx @@ -202,7 +202,7 @@ const AdvancedFilterBuilder = ({ {FILTER_COLORS.map(c => ( setFilterColor(c.value)} sx={{ width: 26, diff --git a/src/views/Modals/Inputs/IconPickerModal.jsx b/src/views/Modals/Inputs/IconPickerModal.jsx index 1dcab74..8e1b1d7 100644 --- a/src/views/Modals/Inputs/IconPickerModal.jsx +++ b/src/views/Modals/Inputs/IconPickerModal.jsx @@ -90,7 +90,7 @@ const IconPickerModal = ({ lineHeight: 1.2, }} > - {t(`icons.${iconData.key}`)} + {t(`icons.${iconData.value}`)}