From dc04529f5bab96f0d2c162a324353e0c03c8f5ca Mon Sep 17 00:00:00 2001 From: jialin Date: Wed, 3 Jun 2026 17:35:15 +0800 Subject: [PATCH] fix: vendor options display by locales --- src/locales/en-US/vendor.ts | 2 +- src/locales/ja-JP/vendor.ts | 2 +- src/locales/ru-RU/vendor.ts | 2 +- src/locales/tr-TR/vendor.ts | 2 +- .../templates/components/template-card.tsx | 23 ++++--- .../gpu-service/templates/forms/basic.tsx | 4 +- src/pages/gpu-service/templates/index.tsx | 6 +- src/pages/resources/config/gpu-driver.ts | 66 ++++++++++++++++--- 8 files changed, 81 insertions(+), 26 deletions(-) diff --git a/src/locales/en-US/vendor.ts b/src/locales/en-US/vendor.ts index d36be562..bf6ff419 100644 --- a/src/locales/en-US/vendor.ts +++ b/src/locales/en-US/vendor.ts @@ -4,7 +4,7 @@ export default { 'vendor.hygon': 'Hygon', 'vendor.moorthreads': 'Moore Threads', 'vendor.iluvatar': 'Iluvatar', - 'vendor.metax': 'Metax', + 'vendor.metax': 'MetaX', 'vendor.cambricon': 'Cambricon', 'vendor.thead': 'T-Head PPU' }; diff --git a/src/locales/ja-JP/vendor.ts b/src/locales/ja-JP/vendor.ts index d36be562..bf6ff419 100644 --- a/src/locales/ja-JP/vendor.ts +++ b/src/locales/ja-JP/vendor.ts @@ -4,7 +4,7 @@ export default { 'vendor.hygon': 'Hygon', 'vendor.moorthreads': 'Moore Threads', 'vendor.iluvatar': 'Iluvatar', - 'vendor.metax': 'Metax', + 'vendor.metax': 'MetaX', 'vendor.cambricon': 'Cambricon', 'vendor.thead': 'T-Head PPU' }; diff --git a/src/locales/ru-RU/vendor.ts b/src/locales/ru-RU/vendor.ts index d36be562..bf6ff419 100644 --- a/src/locales/ru-RU/vendor.ts +++ b/src/locales/ru-RU/vendor.ts @@ -4,7 +4,7 @@ export default { 'vendor.hygon': 'Hygon', 'vendor.moorthreads': 'Moore Threads', 'vendor.iluvatar': 'Iluvatar', - 'vendor.metax': 'Metax', + 'vendor.metax': 'MetaX', 'vendor.cambricon': 'Cambricon', 'vendor.thead': 'T-Head PPU' }; diff --git a/src/locales/tr-TR/vendor.ts b/src/locales/tr-TR/vendor.ts index d36be562..bf6ff419 100644 --- a/src/locales/tr-TR/vendor.ts +++ b/src/locales/tr-TR/vendor.ts @@ -4,7 +4,7 @@ export default { 'vendor.hygon': 'Hygon', 'vendor.moorthreads': 'Moore Threads', 'vendor.iluvatar': 'Iluvatar', - 'vendor.metax': 'Metax', + 'vendor.metax': 'MetaX', 'vendor.cambricon': 'Cambricon', 'vendor.thead': 'T-Head PPU' }; diff --git a/src/pages/gpu-service/templates/components/template-card.tsx b/src/pages/gpu-service/templates/components/template-card.tsx index 5090359a..1b0b296f 100644 --- a/src/pages/gpu-service/templates/components/template-card.tsx +++ b/src/pages/gpu-service/templates/components/template-card.tsx @@ -41,16 +41,6 @@ const imageLogoMap = { ubuntu: ubuntuLogo } as const; -const manufacturerLabelMap: Record = Object.values( - GPUsConfigs -).reduce( - (acc, item) => { - if (item.gpuVendor) acc[item.gpuVendor] = item.label; - return acc; - }, - { cpu: 'CPU' } as Record -); - const matchImageLogo = ( image: string | undefined ): { logo: string; type: string } | null => { @@ -145,6 +135,19 @@ interface TemplateCardProps { const TemplateCardItem: React.FC = ({ data, onSelect }) => { const intl = useIntl(); + const manufacturerLabelMap: Record = Object.values( + GPUsConfigs + ).reduce( + (acc, item) => { + if (item.gpuVendor) + acc[item.gpuVendor] = item.locales.locale + ? intl.formatMessage({ id: item.locales.label }) + : item.locales.label; + return acc; + }, + { cpu: 'CPU' } as Record + ); + const handleOnSelect = (item: any) => { onSelect?.({ action: item.key, data }); }; diff --git a/src/pages/gpu-service/templates/forms/basic.tsx b/src/pages/gpu-service/templates/forms/basic.tsx index d1c71ad6..dc85e436 100644 --- a/src/pages/gpu-service/templates/forms/basic.tsx +++ b/src/pages/gpu-service/templates/forms/basic.tsx @@ -47,7 +47,9 @@ const Basic: React.FC = ({ const manufacturerOptions = useMemo( () => Object.values(GPUsConfigs).map((item) => ({ - label: item.label, + label: item.locales.locale + ? intl.formatMessage({ id: item.locales.label }) + : item.locales.label, value: item.gpuVendor })), [] diff --git a/src/pages/gpu-service/templates/index.tsx b/src/pages/gpu-service/templates/index.tsx index 483992e6..604520b1 100644 --- a/src/pages/gpu-service/templates/index.tsx +++ b/src/pages/gpu-service/templates/index.tsx @@ -60,12 +60,14 @@ const GPUServiceTemplates: React.FC = () => { const manufacturerOptions = useMemo( () => [ ...Object.values(GPUsConfigs).map((item) => ({ - label: item.label, + label: item.locales.locale + ? intl.formatMessage({ id: item.locales.label }) + : item.locales.label, value: item.gpuVendor as string })), { label: 'CPU', value: 'cpu' } ], - [] + [intl] ); const handleFilterByManufacturer = (value: string) => { diff --git a/src/pages/resources/config/gpu-driver.ts b/src/pages/resources/config/gpu-driver.ts index 1f9192fa..d12f8d1f 100644 --- a/src/pages/resources/config/gpu-driver.ts +++ b/src/pages/resources/config/gpu-driver.ts @@ -36,6 +36,14 @@ export const manfacturerValueMap = { THEAD: 'thead' }; +// 'vendor.ascend': '昇腾', +// 'vendor.hygon': '海光', +// 'vendor.moorthreads': '摩尔线程', +// 'vendor.iluvatar': '天数智芯', +// 'vendor.metax': '沐曦', +// 'vendor.cambricon': '寒武纪', +// 'vendor.thead': '平头哥 PPU' + export const GPUsConfigs: Record< string, { @@ -44,6 +52,10 @@ export const GPUsConfigs: Record< runtime: string; driver: string; gpuVendor?: string; + locales: { + label: string; + locale?: boolean; + }; } > = { [GPUDriverMap.NVIDIA]: { @@ -51,63 +63,99 @@ export const GPUsConfigs: Record< value: GPUDriverMap.NVIDIA, runtime: 'nvidia', driver: 'nvidia-smi', - gpuVendor: 'nvidia' + gpuVendor: 'nvidia', + locales: { + label: 'NVIDIA', + locale: false + } }, [GPUDriverMap.AMD]: { label: 'AMD', value: GPUDriverMap.AMD, runtime: 'amd', driver: 'amd-smi static', - gpuVendor: 'amd' + gpuVendor: 'amd', + locales: { + label: 'AMD', + locale: false + } }, [GPUDriverMap.ASCEND]: { label: 'Ascend', value: GPUDriverMap.ASCEND, runtime: 'ascend', driver: 'npu-smi info', - gpuVendor: 'ascend' + gpuVendor: 'ascend', + locales: { + label: 'vendor.ascend', + locale: true + } }, [GPUDriverMap.HYGON]: { label: 'Hygon', value: GPUDriverMap.HYGON, runtime: 'hygon', // TODO: confirm runtime name driver: 'hy-smi', - gpuVendor: 'hygon' + gpuVendor: 'hygon', + locales: { + label: 'vendor.hygon', + locale: true + } }, [GPUDriverMap.MOORE_THREADS]: { label: 'Moore Threads', value: GPUDriverMap.MOORE_THREADS, runtime: 'mthreads', driver: 'mthreads-gmi', - gpuVendor: 'mthreads' + gpuVendor: 'mthreads', + locales: { + label: 'vendor.moorthreads', + locale: true + } }, [GPUDriverMap.ILUVATAR]: { label: 'Iluvatar', value: GPUDriverMap.ILUVATAR, runtime: 'iluvatar', driver: 'ixsmi', - gpuVendor: 'iluvatar' + gpuVendor: 'iluvatar', + locales: { + label: 'vendor.iluvatar', + locale: true + } }, [GPUDriverMap.CAMBRICON]: { label: 'Cambricon', value: GPUDriverMap.CAMBRICON, runtime: 'cambricon', driver: 'cnmon info', - gpuVendor: 'cambricon' + gpuVendor: 'cambricon', + locales: { + label: 'vendor.cambricon', + locale: true + } }, [GPUDriverMap.METAX]: { label: 'Metax', value: GPUDriverMap.METAX, runtime: 'metax', driver: 'mx-smi', - gpuVendor: 'metax' + gpuVendor: 'metax', + locales: { + label: 'vendor.metax', + locale: true + } }, [GPUDriverMap.THEAD]: { label: 'T-Head PPU', value: GPUDriverMap.THEAD, runtime: 'thead', // TODO: confirm runtime name driver: 'ppu-smi', - gpuVendor: 'thead' + gpuVendor: 'thead', + locales: { + label: 'vendor.thead', + locale: true + } } };