@@ -279,10 +279,13 @@ function blockedUpdateTooltip(container: {
279279 const summary = container .updateSecuritySummary ;
280280 const critical = summary ?.critical ?? 0 ;
281281 if (critical > 0 ) {
282- const noun = critical === 1 ? ' critical CVE' : ' critical CVEs' ;
283- return ` Blocked: ${tag } (${critical } ${noun }) ` ;
282+ const key =
283+ critical === 1
284+ ? ' containerComponents.groupedViews.blockedTagWithCriticals'
285+ : ' containerComponents.groupedViews.blockedTagWithCriticalsCVEs' ;
286+ return t (key , { tag , count: critical });
284287 }
285- return ` Blocked: ${ tag } ` ;
288+ return t ( ' containerComponents.groupedViews.blockedTag ' , { tag }) ;
286289}
287290
288291function canCancelUpdate(c : { updateOperation? : { status? : string ; id? : string } }): boolean {
@@ -320,7 +323,9 @@ function updateBtnTooltip(c: {
320323 if (state === ' hard' ) return blockedUpdateTooltip (c );
321324 if (state === ' soft' ) {
322325 const soft = getPrimarySoftBlocker (c .updateEligibility );
323- return soft ? ` Manual update only — ${soft .message } ` : ' Manual update only' ;
326+ return soft
327+ ? t (' containerComponents.groupedViews.manualUpdateOnlyWithMessage' , { message: soft .message })
328+ : t (' containerComponents.groupedViews.manualUpdateOnly' );
324329 }
325330 return ' Update' ;
326331}
@@ -772,7 +777,7 @@ onScopeDispose(() => {
772777 <span v-if =" hasRegistryError(c)"
773778 class =" inline-flex items-center justify-center"
774779 style =" color : var (--dd-danger );"
775- aria-label =" Registry error "
780+ : aria-label =" t('containerComponents.groupedViews.ariaRegistryError') "
776781 v-tooltip.top =" tt(registryErrorTooltip(c))" >
777782 <AppIcon name =" warning" :size =" 12" />
778783 </span >
@@ -1321,28 +1326,28 @@ onScopeDispose(() => {
13211326 <span v-if =" hasRegistryError(c)"
13221327 class =" inline-flex items-center justify-center"
13231328 style =" color : var (--dd-danger );"
1324- aria-label =" Registry error "
1329+ : aria-label =" t('containerComponents.groupedViews.ariaRegistryError') "
13251330 v-tooltip.top =" tt(registryErrorTooltip(c))" >
13261331 <AppIcon name =" warning" :size =" 12" />
13271332 </span >
13281333 <span v-if =" getContainerListPolicyState(c).snoozed"
13291334 class =" inline-flex items-center justify-center"
13301335 style =" color : var (--dd-info );"
1331- aria-label =" Snoozed updates "
1336+ : aria-label =" t('containerComponents.groupedViews.ariaSnoozedUpdates') "
13321337 v-tooltip.top =" tt(containerPolicyTooltip(c, 'snoozed'))" >
13331338 <AppIcon name =" pause" :size =" 12" />
13341339 </span >
13351340 <span v-if =" getContainerListPolicyState(c).skipped"
13361341 class =" inline-flex items-center justify-center"
13371342 style =" color : var (--dd-warning );"
1338- aria-label =" Skipped updates "
1343+ : aria-label =" t('containerComponents.groupedViews.ariaSkippedUpdates') "
13391344 v-tooltip.top =" tt(containerPolicyTooltip(c, 'skipped'))" >
13401345 <AppIcon name =" skip-forward" :size =" 12" />
13411346 </span >
13421347 <span v-if =" getContainerListPolicyState(c).maturityBlocked"
13431348 class =" inline-flex items-center justify-center"
13441349 style =" color : var (--dd-primary );"
1345- aria-label =" Maturity-blocked updates "
1350+ : aria-label =" t('containerComponents.groupedViews.ariaMaturityBlocked') "
13461351 v-tooltip.top =" tt(containerPolicyTooltip(c, 'maturity'))" >
13471352 <AppIcon name =" clock" :size =" 12" />
13481353 </span >
@@ -1449,7 +1454,7 @@ onScopeDispose(() => {
14491454 <!-- EMPTY STATE -->
14501455 <EmptyState v-if =" filteredContainers.length === 0"
14511456 icon =" filter"
1452- message =" No containers match your filters "
1457+ : message =" t('containerComponents.groupedViews.emptyState') "
14531458 :show-clear =" activeFilterCount > 0 || !!filterSearch"
14541459 @clear =" clearFilters" />
14551460 </div >
0 commit comments