@@ -37,6 +37,7 @@ import {
37
37
import { filterNavItems } from ' @/utils/nav-permissions'
38
38
import { useStorage } from ' @vueuse/core'
39
39
import { computed } from ' vue'
40
+ import { useI18n } from ' vue-i18n'
40
41
import { useUserStore } from ' @/stores/user'
41
42
42
43
defineProps ({
@@ -46,6 +47,7 @@ defineProps({
46
47
const userStore = useUserStore ()
47
48
const settingsStore = useAppSettingsStore ()
48
49
const route = useRoute ()
50
+ const { t } = useI18n ()
49
51
const emit = defineEmits ([' createView' , ' editView' , ' deleteView' , ' createConversation' ])
50
52
51
53
const openCreateViewDialog = () => {
@@ -95,7 +97,9 @@ const viewInboxOpen = useStorage('viewInboxOpen', true)
95
97
<SidebarMenuItem >
96
98
<SidebarMenuButton :isActive =" isActiveParent('/reports/overview')" asChild >
97
99
<div >
98
- <span class =" font-semibold text-xl" >Reports</span >
100
+ <span class =" font-semibold text-xl" >
101
+ {{ t('navigation.reports') }}
102
+ </span >
99
103
</div >
100
104
</SidebarMenuButton >
101
105
</SidebarMenuItem >
@@ -105,10 +109,10 @@ const viewInboxOpen = useStorage('viewInboxOpen', true)
105
109
<SidebarContent >
106
110
<SidebarGroup >
107
111
<SidebarMenu >
108
- <SidebarMenuItem v-for =" item in filteredReportsNavItems" :key =" item.title " >
112
+ <SidebarMenuItem v-for =" item in filteredReportsNavItems" :key =" item.titleKey " >
109
113
<SidebarMenuButton :isActive =" isActiveParent(item.href)" asChild >
110
114
<router-link :to =" item.href" >
111
- <span >{{ item.title }}</span >
115
+ <span >{{ t( item.titleKey) }}</span >
112
116
</router-link >
113
117
</SidebarMenuButton >
114
118
</SidebarMenuItem >
@@ -127,7 +131,9 @@ const viewInboxOpen = useStorage('viewInboxOpen', true)
127
131
<SidebarMenuItem >
128
132
<SidebarMenuButton :isActive =" isActiveParent('/admin')" asChild >
129
133
<div class =" flex items-center justify-between w-full" >
130
- <span class =" font-semibold text-xl" >Admin</span >
134
+ <span class =" font-semibold text-xl" >
135
+ {{ t('navigation.admin') }}
136
+ </span >
131
137
</div >
132
138
<!-- App version -->
133
139
<div class =" text-xs text-muted-foreground ml-2" >
@@ -141,14 +147,14 @@ const viewInboxOpen = useStorage('viewInboxOpen', true)
141
147
<SidebarContent >
142
148
<SidebarGroup >
143
149
<SidebarMenu >
144
- <SidebarMenuItem v-for =" item in filteredAdminNavItems" :key =" item.title " >
150
+ <SidebarMenuItem v-for =" item in filteredAdminNavItems" :key =" item.titleKey " >
145
151
<SidebarMenuButton
146
152
v-if =" !item.children"
147
153
:isActive =" isActiveParent(item.href)"
148
154
asChild
149
155
>
150
156
<router-link :to =" item.href" >
151
- <span >{{ item.title }}</span >
157
+ <span >{{ t( item.titleKey) }}</span >
152
158
</router-link >
153
159
</SidebarMenuButton >
154
160
@@ -159,18 +165,18 @@ const viewInboxOpen = useStorage('viewInboxOpen', true)
159
165
>
160
166
<CollapsibleTrigger as-child >
161
167
<SidebarMenuButton :isActive =" isActiveParent(item.href)" >
162
- <span >{{ item.title }}</span >
168
+ <span >{{ t( item.titleKey) }}</span >
163
169
<ChevronRight
164
170
class =" ml-auto transition-transform duration-200 group-data-[state=open]/collapsible:rotate-90"
165
171
/>
166
172
</SidebarMenuButton >
167
173
</CollapsibleTrigger >
168
174
<CollapsibleContent >
169
175
<SidebarMenuSub >
170
- <SidebarMenuSubItem v-for =" child in item.children" :key =" child.title " >
176
+ <SidebarMenuSubItem v-for =" child in item.children" :key =" child.titleKey " >
171
177
<SidebarMenuButton size =" sm" :isActive =" isActiveParent(child.href)" asChild >
172
178
<router-link :to =" child.href" >
173
- <span >{{ child.title }}</span >
179
+ <span >{{ t( child.titleKey) }}</span >
174
180
</router-link >
175
181
</SidebarMenuButton >
176
182
</SidebarMenuSubItem >
@@ -193,7 +199,9 @@ const viewInboxOpen = useStorage('viewInboxOpen', true)
193
199
<SidebarMenuItem >
194
200
<SidebarMenuButton :isActive =" isActiveParent('/account/profile')" asChild >
195
201
<div >
196
- <span class =" font-semibold text-xl" >Account</span >
202
+ <span class =" font-semibold text-xl" >
203
+ {{ t('navigation.account') }}
204
+ </span >
197
205
</div >
198
206
</SidebarMenuButton >
199
207
</SidebarMenuItem >
@@ -203,10 +211,10 @@ const viewInboxOpen = useStorage('viewInboxOpen', true)
203
211
<SidebarContent >
204
212
<SidebarGroup >
205
213
<SidebarMenu >
206
- <SidebarMenuItem v-for =" item in accountNavItems" :key =" item.title " >
214
+ <SidebarMenuItem v-for =" item in accountNavItems" :key =" item.titleKey " >
207
215
<SidebarMenuButton :isActive =" isActiveParent(item.href)" asChild >
208
216
<router-link :to =" item.href" >
209
- <span >{{ item.title }}</span >
217
+ <span >{{ t( item.titleKey) }}</span >
210
218
</router-link >
211
219
</SidebarMenuButton >
212
220
<SidebarMenuAction >
@@ -228,7 +236,9 @@ const viewInboxOpen = useStorage('viewInboxOpen', true)
228
236
<SidebarMenuItem >
229
237
<SidebarMenuButton asChild >
230
238
<div class =" flex items-center justify-between w-full" >
231
- <div class =" font-semibold text-xl" >Inbox</div >
239
+ <div class =" font-semibold text-xl" >
240
+ <span >{{ t('navigation.inbox') }}</span >
241
+ </div >
232
242
<div class =" ml-auto" >
233
243
<div class =" flex items-center space-x-2" >
234
244
<div
@@ -265,7 +275,7 @@ const viewInboxOpen = useStorage('viewInboxOpen', true)
265
275
<SidebarMenuButton asChild :isActive =" isActiveParent('/inboxes/assigned')" >
266
276
<router-link :to =" { name: 'inbox', params: { type: 'assigned' } }" >
267
277
<CircleUserRound />
268
- <span >My inbox </span >
278
+ <span >{{ t('navigation.myInbox') }} </span >
269
279
</router-link >
270
280
</SidebarMenuButton >
271
281
</SidebarMenuItem >
@@ -274,7 +284,9 @@ const viewInboxOpen = useStorage('viewInboxOpen', true)
274
284
<SidebarMenuButton asChild :isActive =" isActiveParent('/inboxes/unassigned')" >
275
285
<router-link :to =" { name: 'inbox', params: { type: 'unassigned' } }" >
276
286
<UserSearch />
277
- <span >Unassigned</span >
287
+ <span >
288
+ {{ t('navigation.unassigned') }}
289
+ </span >
278
290
</router-link >
279
291
</SidebarMenuButton >
280
292
</SidebarMenuItem >
@@ -283,7 +295,9 @@ const viewInboxOpen = useStorage('viewInboxOpen', true)
283
295
<SidebarMenuButton asChild :isActive =" isActiveParent('/inboxes/all')" >
284
296
<router-link :to =" { name: 'inbox', params: { type: 'all' } }" >
285
297
<UsersRound />
286
- <span >All</span >
298
+ <span >
299
+ {{ t('navigation.all') }}
300
+ </span >
287
301
</router-link >
288
302
</SidebarMenuButton >
289
303
</SidebarMenuItem >
@@ -300,7 +314,9 @@ const viewInboxOpen = useStorage('viewInboxOpen', true)
300
314
<SidebarMenuButton asChild >
301
315
<router-link to =" #" >
302
316
<!-- <Users /> -->
303
- <span >Team inboxes</span >
317
+ <span >
318
+ {{ t('navigation.teamInboxes') }}
319
+ </span >
304
320
<ChevronRight
305
321
class =" ml-auto transition-transform duration-200 group-data-[state=open]/collapsible:rotate-90"
306
322
/>
@@ -332,7 +348,9 @@ const viewInboxOpen = useStorage('viewInboxOpen', true)
332
348
<SidebarMenuButton asChild >
333
349
<router-link to =" #" >
334
350
<!-- <SlidersHorizontal /> -->
335
- <span >Views</span >
351
+ <span >
352
+ {{ t('navigation.views') }}
353
+ </span >
336
354
<div >
337
355
<Plus
338
356
size =" 18"
@@ -365,10 +383,10 @@ const viewInboxOpen = useStorage('viewInboxOpen', true)
365
383
</DropdownMenuTrigger >
366
384
<DropdownMenuContent >
367
385
<DropdownMenuItem @click =" () => editView(view)" >
368
- <span >Edit </span >
386
+ <span >{{ t('globals.buttons.edit') }} </span >
369
387
</DropdownMenuItem >
370
388
<DropdownMenuItem @click =" () => deleteView(view)" >
371
- <span >Delete </span >
389
+ <span >{{ t('globals.buttons.delete') }} </span >
372
390
</DropdownMenuItem >
373
391
</DropdownMenuContent >
374
392
</DropdownMenu >
0 commit comments