-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathen.ts
More file actions
100 lines (98 loc) · 2.82 KB
/
Copy pathen.ts
File metadata and controls
100 lines (98 loc) · 2.82 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
import type { TaskPriority, TaskStatus } from '@/types/task';
/**
* English message catalog — the single source of all user-facing copy.
* No component hardcodes display strings; they read from here. Adding a second
* language is a sibling file with the same shape (the `Messages` type enforces
* parity) plus one line in `i18n/index.ts`.
*/
export const en = {
app: {
name: 'TaskFlow',
description: 'Real-time collaborative task management',
},
nav: {
board: 'Board',
newTask: '+ New Task',
},
board: {
title: 'Task Board',
live: 'Live',
offline: 'Offline',
empty: 'No tasks yet. Create your first one to get started.',
emptyFiltered: 'No tasks match the current filters.',
columnEmpty: 'No tasks',
loadMore: 'Load more',
loadingMore: 'Loading…',
},
columns: {
todo: 'To Do',
in_progress: 'In Progress',
done: 'Done',
archived: 'Archived',
} satisfies Record<TaskStatus, string>,
priorities: {
1: 'Low',
2: 'Medium',
3: 'High',
} satisfies Record<TaskPriority, string>,
filter: {
allStatuses: 'All statuses',
allPriorities: 'All priorities',
tagPlaceholder: 'Search tags…',
ariaStatus: 'Filter by status',
ariaPriority: 'Filter by priority',
ariaTag: 'Search tags',
},
newTask: {
heading: 'New Task',
titleLabel: 'Title',
titlePlaceholder: 'What needs doing?',
descriptionLabel: 'Description',
descriptionPlaceholder: 'Optional details…',
priorityLabel: 'Priority',
tagsLabel: 'Tags (comma-separated)',
tagsPlaceholder: 'frontend, urgent',
submit: 'Create Task',
submitting: 'Creating…',
cancel: 'Cancel',
error: 'Failed to create task',
},
detail: {
back: '← Back to board',
descriptionHeading: 'Description',
noDescription: 'No description provided.',
detailsHeading: 'Details',
statusLabel: 'Status',
priorityLabel: 'Priority',
tagsLabel: 'Tags',
noTags: '—',
createdLabel: 'Created',
updatedLabel: 'Updated',
changeStatus: 'Change status',
terminal: 'No further transitions (terminal state)',
selectPlaceholder: 'Select new status…',
updating: 'Updating…',
error: 'Failed to update status',
editButton: 'Edit',
},
edit: {
heading: 'Edit task',
save: 'Save changes',
saving: 'Saving…',
cancel: 'Cancel',
error: 'Failed to save changes',
},
connection: {
banner: 'Live updates disconnected — reconnecting…',
},
errors: {
boardTitle: 'Something went wrong',
boardBody: 'The board could not be loaded.',
boardHint: 'Is the backend running on its configured port?',
retry: 'Try again',
notFoundTitle: 'Not found',
notFoundBody: 'That task doesn’t exist (or was never created).',
notFoundBack: 'Back to board',
},
};
export type Messages = typeof en;