forked from Windshiftapp/core
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtime.js
More file actions
297 lines (283 loc) · 11.3 KB
/
Copy pathtime.js
File metadata and controls
297 lines (283 loc) · 11.3 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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
/**
* Time tracking related translations for English locale
* Includes: time, timeProject, timeProjectCategory sections
*/
export default {
time: {
title: 'Time Tracking',
subtitle: 'Track time spent on work items',
logTime: 'Log Time',
editTimeEntry: 'Edit Time Entry',
updateEntry: 'Update Entry',
timeSpent: 'Time Spent',
remaining: 'Remaining',
estimate: 'Estimate',
originalEstimate: 'Original Estimate',
hours: 'hours',
minutes: 'minutes',
days: 'days',
weeks: 'weeks',
startTimer: 'Start Timer',
stopTimer: 'Stop Timer',
pauseTimer: 'Pause Timer',
resumeTimer: 'Resume Timer',
timeLogged: 'Time logged successfully',
timeTrackingProject: 'Time Tracking Project',
workItemOptional: 'Work Item (Optional)',
whatDidYouWorkOn: 'What did you work on?',
start: 'Start',
end: 'End',
duration: 'Duration',
durationHelperText:
'Enter start time + duration (2h) to auto-calculate end time, or enter start + end times to auto-calculate duration. Time formats: 1h, 30m, 1h30m, 2h15m, 1d (=8h)',
pomodoro: {
title: 'Pomodoro Settings',
subtitle: 'Configure desktop timer behavior and automatic time logging.',
loadingSettings: 'Loading settings...',
loadError: 'Failed to load settings: {error}',
settingsSaved: 'Settings saved',
saveError: 'Failed to save settings: {error}',
timer: 'Timer',
workDuration: 'Work duration',
workDurationHelper: 'Minutes per focus session',
shortBreak: 'Short break',
shortBreakHelper: 'Minutes between work sessions',
longBreak: 'Long break',
longBreakHelper: 'Minutes after a completed cycle',
sessionsBeforeLongBreak: 'Sessions before long break',
sessionsBeforeLongBreakHelper: 'Completed work sessions',
behavior: 'Behavior',
autoStartBreaks: 'Auto-start breaks',
autoStartWork: 'Auto-start work',
logging: 'Logging',
autoLogCompletedSessions: 'Automatically log completed work sessions',
project: 'Project',
projectHelper: 'Active time projects from this workspace server',
selectProject: 'Select a project...',
loadingProjects: 'Loading projects...',
description: 'Description',
descriptionHelper: 'Used for new worklog entries',
sessionPlaceholder: 'Pomodoro session',
cancel: 'Cancel',
saveSettings: 'Save Settings',
},
// Timesheet
timesheet: {
title: 'Timesheet',
subtitle: 'Weekly timesheet overview',
total: 'Total',
noEntries: 'No time entries this week. Add a project to get started.',
projectItem: 'Project / Work Item',
addProject: 'Add project to timesheet...',
removeProject: 'Remove from timesheet',
showWeekends: 'Weekends',
},
// Onboarding
onboarding: {
title: 'Set Up Time Tracking',
subtitle: "Let's create your first customer organization and project to get started",
setupProgress: 'Setup Progress',
stepOf: 'Step {current} of {total}',
createCustomerTitle: 'Create Your First Customer Organization',
createCustomerDescription:
"A customer organization represents the company or entity you're doing work for. This could be a client organization, your employer, or your own company.",
createProjectTitle: 'Create Your First Project',
createProjectDescription:
'Projects help organize your work within a customer. You can track time against specific projects.',
organizationNameRequired: 'Organization name is required',
projectNameRequired: 'Project name is required',
failedToCreateCustomer: 'Failed to create customer organization. Please try again.',
failedToCreateProject: 'Failed to create project. Please try again.',
customerCreatedSuccess: 'Customer organization "{name}" created successfully!',
organizationNamePlaceholder: 'e.g., Acme Corporation, TechStart Inc, Freelance Work',
emailPlaceholder: 'billing@customer.com',
contactPersonPlaceholder: 'John Smith',
projectNamePlaceholder: 'e.g., Website Development, Consulting, General Work',
projectDescriptionPlaceholder: 'Brief description of the project...',
hourlyRateHint: "You can set this later if you're not sure",
skipForNow: 'Skip for now',
completeSetup: 'Complete Setup',
},
// Categories
categories: {
title: 'Project Categories',
subtitle: 'Organize projects into categories for better management',
newCategory: 'New Category',
noCategories: 'No categories yet',
createFirstHint: 'Create your first category to organize projects',
failedToSave: 'Failed to save category',
failedToDelete: 'Failed to delete category',
confirmDelete: 'Are you sure you want to delete "{name}"?',
},
// Reports
reports: {
title: 'Reports',
subtitle: 'Analyze your time tracking data and export reports',
exportCSV: 'Export CSV',
exportPDF: 'Export PDF',
filters: 'Filters',
customer: 'Customer',
allCustomers: 'All customers',
allProjects: 'All projects',
descriptionFilter: 'Description Filter',
searchDescriptions: 'Search descriptions...',
fromDate: 'From Date',
toDate: 'To Date',
applyFilters: 'Apply Filters',
totalHours: 'Total Hours',
totalEntries: 'Total Entries',
averagePerDay: 'Average per Day',
topProject: 'Top Project',
loadingReports: 'Loading reports...',
noEntriesFound: 'No time entries found for the selected filters.',
totalTime: 'Total Time',
entriesShown: '{count} entries shown',
// Project reporting
projectReports: 'Project Reports',
personal: 'Personal',
project: 'Project',
selectProject: 'Select a project',
budget: 'Budget',
budgetUsage: 'Budget Usage',
contributors: 'Contributors',
memberBreakdown: 'Team Breakdown',
member: 'Member',
hoursLogged: 'Hours Logged',
entries: 'Entries',
avgPerDay: 'Avg/Day',
dailyHours: 'Daily Hours',
noBudgetSet: 'No budget set',
noProjectSelected: 'Select a project to view its report',
printLoading: 'Preparing time report for print…',
printUnavailable: 'This time report is no longer available. Return to reports and export it again.',
backToReports: 'Back to reports',
},
// Timer
timer: {
goToWorkItem: 'Go to work item: {title}',
expandTimer: 'Expand timer',
collapseTimer: 'Collapse timer',
project: 'Project',
workspace: 'Workspace',
},
// Projects
projects: {
title: 'Projects',
subtitle: 'Manage global projects for time tracking across workspaces',
addProject: 'Add Project',
projectsTab: 'Projects',
categoriesTab: 'Categories',
searchProjects: 'Search projects...',
allCategories: 'All Categories',
allStatuses: 'All Statuses',
statusCount: '{count} statuses',
noProjects: 'No projects found. Create your first project to start tracking time.',
noProjectsInCategory: 'No projects in this category.',
failedToSave: 'Failed to save project',
deleteProject: 'Delete Project',
confirmDelete: 'Are you sure you want to delete "{name}"?',
unknownCustomer: 'Unknown Customer',
project: 'Project',
customer: 'Customer',
rate: 'Rate',
projectName: 'Project Name',
descriptionOptional: 'Description (Optional)',
hourlyRateOptional: 'Hourly Rate (Optional)',
},
// Calendar
calendar: {
title: 'Weekly Calendar',
itemCount: '{count} items',
exportWeekToICS: 'Export Week to ICS',
myWorkItems: 'My Work Items',
dragToSchedule: 'Drag items to schedule them',
noWorkItems: 'No work items assigned',
workItemsWillAppear: 'Work items will appear here when assigned to you',
itemsCompleted: '{completed} of {total} items completed',
previousWeek: 'Previous week',
thisWeek: 'this week',
nextWeek: 'Next week',
newTaskPlaceholder: 'New task title...',
failedToCreateTask: 'Failed to create task',
},
// Time Entry
entry: {
title: 'Time Entry',
subtitle: 'Log your work hours and manage time entries',
addTimeEntry: 'Add a new time entry',
failedToSave: 'Failed to save time entry. Please check your input.',
confirmDelete: 'Are you sure you want to delete this time entry?',
needProjects: 'You need to create active projects before logging time.',
goToProjects: 'Go to Projects',
startSetupWizard: 'start the setup wizard',
applyFiltersTitle: 'Apply the selected filters to the time entries list',
clearFiltersTitle: 'Clear all filters and show all time entries',
noEntries: 'No time entries found. Log your first time entry to get started.',
clickToView: 'Click to view {key}-{number}',
budgetExceeded: '- budget exceeded',
submitted: 'Submitted',
},
// Organizations (formerly Customers)
organizations: {
title: 'Organizations',
subtitle: 'Manage your client organizations',
addOrganization: 'Add Organization',
noOrganizations: 'No organizations found. Create your first organization to get started.',
name: 'Organization Name',
emailOptional: 'Email (Optional)',
contactPersonOptional: 'Contact Person (Optional)',
failedToSave: 'Failed to save organization',
deleteOrganization: 'Delete Organization',
confirmDelete: 'Are you sure you want to delete "{name}"?',
},
// Permissions
permissions: {
title: 'Project Permissions',
managePermissions: 'Manage Permissions',
managers: 'Managers',
members: 'Members',
addManager: 'Add Manager',
addMember: 'Add Member',
removeManager: 'Remove Manager',
removeMember: 'Remove Member',
noManagers: 'No managers assigned',
noManagersHint: 'When no managers are assigned, anyone can manage this project',
noMembers: 'No members assigned',
noMembersHint: 'When no members are assigned, anyone can book time on this project',
grantedAt: 'Added',
confirmRemove: 'Are you sure you want to remove {name}?',
failedToAdd: 'Failed to add',
failedToRemove: 'Failed to remove',
managersNote: 'Managers:',
managersNoteText:
'Can edit project settings, manage members, and view all time entries for this project.',
membersNote: 'Members:',
membersNoteText: 'Can book time on this project and view their own time entries.',
},
},
timeProject: {
editProject: 'Edit Project',
newProject: 'New Project',
projectName: 'Project Name',
status: 'Status',
customerOptional: 'Customer (Optional)',
none: 'None',
categoryOptional: 'Category (Optional)',
hourlyRate: 'Hourly Rate ($)',
maxHours: 'Max Hours',
maxHoursPlaceholder: 'No limit',
maxHoursHint: 'Optional budget for reporting',
projectColor: 'Project Color',
updateProject: 'Update Project',
createProject: 'Create Project',
},
timeProjectCategory: {
editCategory: 'Edit Category',
newCategory: 'New Category',
categoryName: 'Category Name',
categoryNamePlaceholder: 'Development, Marketing, Operations...',
optionalDescription: 'Optional description...',
updateCategory: 'Update Category',
createCategory: 'Create Category',
},
};