@@ -18,21 +18,22 @@ const fileFilter = defineModel<'all' | 'added' | 'removed' | 'modified'>('fileFi
1818})
1919
2020const sectionOrder = [' dependencies' , ' devDependencies' , ' peerDependencies' , ' optionalDependencies' ]
21- const sectionMeta: Record <string , { label: string ; icon: string }> = {
22- dependencies: { label: ' Dependencies' , icon: ' i-carbon-cube' },
23- devDependencies: { label: ' Dev Dependencies' , icon: ' i-carbon-tools' },
24- peerDependencies: { label: ' Peer Dependencies' , icon: ' i-carbon-user-multiple' },
25- optionalDependencies: { label: ' Optional Dependencies' , icon: ' i-carbon-help' },
26- }
21+ const { t } = useI18n ()
22+ const sectionMeta = computed <Record <string , { label: string ; icon: string }>>(() => ({
23+ dependencies: { label: t (' compare.dependencies' ), icon: ' i-carbon-cube' },
24+ devDependencies: { label: t (' compare.dev_dependencies' ), icon: ' i-carbon-tools' },
25+ peerDependencies: { label: t (' compare.peer_dependencies' ), icon: ' i-carbon-user-multiple' },
26+ optionalDependencies: { label: t (' compare.optional_dependencies' ), icon: ' i-carbon-help' },
27+ }))
2728
2829const sectionList = computed (() => {
2930 const entries = Array .from (props .groupedDeps .entries ())
3031 return entries
3132 .map (([key , changes ]) => ({
3233 key ,
3334 changes ,
34- label: sectionMeta [key ]?.label ?? key ,
35- icon: sectionMeta [key ]?.icon ?? ' i-carbon-cube' ,
35+ label: sectionMeta . value [key ]?.label ?? key ,
36+ icon: sectionMeta . value [key ]?.icon ?? ' i-carbon-cube' ,
3637 order: sectionOrder .indexOf (key ) === - 1 ? sectionOrder .length + 1 : sectionOrder .indexOf (key ),
3738 }))
3839 .sort ((a , b ) => a .order - b .order )
@@ -72,7 +73,7 @@ function handleFileSelect(file: FileChange) {
7273 <div class =" flex flex-wrap items-center justify-between gap-2" >
7374 <span class =" text-xs font-medium flex items-center gap-1.5" >
7475 <span class =" i-lucide-lightbulb w-3.5 h-3.5" />
75- Summary
76+ {{ $t('compare.summary') }}
7677 </span >
7778 <div class =" flex items-center gap-3 font-mono text-[10px]" >
7879 <span class =" flex items-center gap-1" >
@@ -83,9 +84,7 @@ function handleFileSelect(file: FileChange) {
8384 <span class =" text-yellow-500" >~{{ compare.stats.filesModified }}</span >
8485 </span >
8586 <span v-if =" compare.dependencyChanges.length > 0" class =" text-fg-muted" >
86- {{ compare.dependencyChanges.length }} dep{{
87- compare.dependencyChanges.length !== 1 ? 's' : ''
88- }}
87+ {{ $t('compare.deps_count', { count: compare.dependencyChanges.length }) }}
8988 </span >
9089 </div >
9190 </div >
@@ -168,7 +167,7 @@ function handleFileSelect(file: FileChange) {
168167 v-if =" compare.dependencyChanges.length === 0 && !compare.meta.warnings?.length"
169168 class =" px-3 py-2 text-[10px] text-fg-muted text-center"
170169 >
171- No dependency changes
170+ {{ $t('compare.no_dependency_changes') }}
172171 </div >
173172 </div >
174173
@@ -179,17 +178,27 @@ function handleFileSelect(file: FileChange) {
179178 >
180179 <span class =" text-xs font-medium flex items-center gap-1.5" >
181180 <span class =" i-carbon-document w-3.5 h-3.5" />
182- Changed Files
181+ {{ $t('compare.file_changes') }}
183182 </span >
184183 <span class =" flex items-center gap-2" >
185184 <select
186185 v-model =" fileFilter"
187186 class =" text-[10px] px-2 py-1 bg-bg-subtle border border-border rounded font-mono cursor-pointer hover:border-border-hover transition-colors"
188187 >
189- <option value =" all" >All ({{ allChanges.length }})</option >
190- <option value =" added" >Added ({{ compare.stats.filesAdded }})</option >
191- <option value =" removed" >Removed ({{ compare.stats.filesRemoved }})</option >
192- <option value =" modified" >Modified ({{ compare.stats.filesModified }})</option >
188+ <option value =" all" >
189+ {{ $t('compare.file_filter_option.all', { count: allChanges.length }) }}
190+ </option >
191+ <option value =" added" >
192+ {{ $t('compare.file_filter_option.added', { count: compare.stats.filesAdded }) }}
193+ </option >
194+ <option value =" removed" >
195+ {{ $t('compare.file_filter_option.removed', { count: compare.stats.filesRemoved }) }}
196+ </option >
197+ <option value =" modified" >
198+ {{
199+ $t('compare.file_filter_option.modified', { count: compare.stats.filesModified })
200+ }}
201+ </option >
193202 </select >
194203 <span
195204 class =" i-carbon-chevron-right w-3.5 h-3.5 transition-transform group-open:rotate-90"
@@ -199,7 +208,11 @@ function handleFileSelect(file: FileChange) {
199208
200209 <div class =" flex-1 overflow-y-auto min-h-0" >
201210 <div v-if =" filteredChanges.length === 0" class =" p-8 text-center text-xs text-fg-muted" >
202- No {{ fileFilter === 'all' ? '' : fileFilter }} files
211+ {{
212+ fileFilter === 'all'
213+ ? $t('compare.no_files_all')
214+ : $t('compare.no_files_filtered', { filter: $t(`compare.filter.${fileFilter}`) })
215+ }}
203216 </div >
204217
205218 <DiffFileTree
0 commit comments