diff --git a/src/components/status-tag/index.tsx b/src/components/status-tag/index.tsx index db303538..fb85113e 100644 --- a/src/components/status-tag/index.tsx +++ b/src/components/status-tag/index.tsx @@ -58,16 +58,21 @@ const StatusTag: React.FC = ({ return StatusColorMap[status]; }, [status]); - const statusMessage = useMemo(() => { - return statusValue.message?.replace(linkReg, ''); + const hasLink = useMemo(() => { + if (!statusValue.message) return false; + return linkReg.test(statusValue.message || ''); }, [statusValue.message]); - const messageLink = useMemo(() => { + const statusMessage = useMemo(() => { + if (!statusValue.message) return ''; const link = statusValue.message?.match(linkReg); if (link) { - return link?.[0].replace(linkReg, '$2'); + return statusValue.message?.replace( + linkReg, + '$2' + ); } - return null; + return statusValue.message; }, [statusValue.message]); const renderContent = () => { @@ -125,12 +130,12 @@ const StatusTag: React.FC = ({ wordBreak: 'break-word' }} > - {statusMessage} - {statusMessage && } - {extra} - {messageLink && ( - + {hasLink ? ( + + ) : ( + statusMessage )} + {extra && {extra}} ); diff --git a/src/locales/en-US/resources.ts b/src/locales/en-US/resources.ts index 5ba40848..d65de92b 100644 --- a/src/locales/en-US/resources.ts +++ b/src/locales/en-US/resources.ts @@ -87,6 +87,9 @@ export default { 'Paste the Token.', 'resources.register.worker.step7': 'Click Restart to apply the settings.', - 'resources.register.install.title': 'Install GPUStack', - 'resources.register.download': 'Download the package and install it.' + 'resources.register.install.title': 'Install GPUStack on {os}', + 'resources.register.download': + 'Download and install the installer. Currently supported: {versions}.', + 'resource.register.maos.support': 'Apple Silicon (M series), macOS 14+', + 'resource.register.windows.support': 'win 10, win 11' }; diff --git a/src/locales/ja-JP/resources.ts b/src/locales/ja-JP/resources.ts index 49ab8b12..af2e8f49 100644 --- a/src/locales/ja-JP/resources.ts +++ b/src/locales/ja-JP/resources.ts @@ -88,8 +88,11 @@ export default { 'Paste the Token.', 'resources.register.worker.step7': 'Click Restart to apply the settings.', - 'resources.register.install.title': 'Install GPUStack', - 'resources.register.download': 'Download the package and install it.' + 'resources.register.install.title': 'Install GPUStack on {os}', + 'resources.register.download': + 'Download and install the installer. Currently supported: {versions}.', + 'resource.register.maos.support': 'Apple Silicon (M series), macOS 14+', + 'resource.register.windows.support': 'win 10, win 11' }; // ========== To-Do: Translate Keys (Remove After Translation) ========== @@ -100,6 +103,8 @@ export default { // 5. 'resources.register.worker.step5': 'Enter the Server URL.', // 6. 'resources.register.worker.step6': 'Paste the Token.', // 7. 'resources.register.worker.step7': 'Click Restart to apply the settings.', -// 8. 'resources.register.install.title': 'Install GPUStack', -// 9. 'resources.register.download': 'Download the package and install it.' +// 8. 'resources.register.install.title': 'Install GPUStack on {os}', +// 9. 'resources.register.download':'Download and install the installer. Currently supported: {versions}.', +// 10. 'resource.register.maos.support': 'Apple Silicon (M series), macOS 14+', +// 11. 'resource.register.windows.support': 'win 10, win 11' // ========== End of To-Do List ========== diff --git a/src/locales/ru-RU/resources.ts b/src/locales/ru-RU/resources.ts index da08943a..834d7752 100644 --- a/src/locales/ru-RU/resources.ts +++ b/src/locales/ru-RU/resources.ts @@ -86,8 +86,11 @@ export default { 'Paste the Token.', 'resources.register.worker.step7': 'Click Restart to apply the settings.', - 'resources.register.install.title': 'Install GPUStack', - 'resources.register.download': 'Download the package and install it.' + 'resources.register.install.title': 'Install GPUStack on {os}', + 'resources.register.download': + 'Download and install the installer. Currently supported: {versions}.', + 'resource.register.maos.support': 'Apple Silicon (M series), macOS 14+', + 'resource.register.windows.support': 'win 10, win 11' }; // ========== To-Do: Translate Keys (Remove After Translation) ========== @@ -98,6 +101,8 @@ export default { // 5. 'resources.register.worker.step5': 'Enter the Server URL.', // 6. 'resources.register.worker.step6': 'Paste the Token.', // 7. 'resources.register.worker.step7': 'Click Restart to apply the settings.', -// 8. 'resources.register.install.title': 'Install GPUStack', -// 9. 'resources.register.download': 'Download the package and install it.' +// 8. 'resources.register.install.title': 'Install GPUStack on {os}', +// 9. 'resources.register.download':'Download and install the installer. Currently supported: {versions}.', +// 10. 'resource.register.maos.support': 'Apple Silicon (M series), macOS 14+', +// 11. 'resource.register.windows.support': 'win 10, win 11' // ========== End of To-Do List ========== diff --git a/src/locales/zh-CN/resources.ts b/src/locales/zh-CN/resources.ts index dc4ac9b6..75c2b8a6 100644 --- a/src/locales/zh-CN/resources.ts +++ b/src/locales/zh-CN/resources.ts @@ -72,19 +72,22 @@ export default { 'resources.modelfiles.copy.tips': '复制完整路径', 'resources.filter.path': '路径查询', 'resources.register.worker.step1': - '点击菜单 Copy Token。', + '点击菜单复制 Token。', 'resources.register.worker.step2': - '点击菜单 Quick Config。', + '点击菜单快速配置。', 'resources.register.worker.step3': - '点击页签 General。', + '点击页签通用。', 'resources.register.worker.step4': - '选择 Worker 作为服务角色。', + '选择服务角色 Worker。', 'resources.register.worker.step5': '输入 Server URL。', 'resources.register.worker.step6': '粘贴 Token.', 'resources.register.worker.step7': - '点击 Restart 应用设置。', - 'resources.register.install.title': '安装 GPUStack', - 'resources.register.download': '下载安装包 并且安装。' + '点击重启应用设置。', + 'resources.register.install.title': '在 {os} 上安装 GPUStack', + 'resources.register.download': + '下载并安装安装包,目前仅支持 {versions}。', + 'resource.register.maos.support': 'M 芯片,macOS 14+', + 'resource.register.windows.support': 'win 10, win 11' }; diff --git a/src/pages/resources/components/add-worker-macos.tsx b/src/pages/resources/components/add-worker-macos.tsx index 915dd6c7..772157a5 100644 --- a/src/pages/resources/components/add-worker-macos.tsx +++ b/src/pages/resources/components/add-worker-macos.tsx @@ -6,18 +6,21 @@ const { Text } = Typography; interface AddWorkerMacOSProps { token?: string; + platform: { + os: string; + supportVersions: string; + }; } const registerWorkerSteps = [ 'resources.register.worker.step2', - // `resources.register.worker.step3`, `resources.register.worker.step4`, 'resources.register.worker.step5', 'resources.register.worker.step6', `resources.register.worker.step7` ]; -const AddWorkerMacOS: React.FC = () => { +const AddWorkerMacOS: React.FC = ({ platform }) => { const intl = useIntl(); const labels = useMemo( () => ({ @@ -32,12 +35,23 @@ const AddWorkerMacOS: React.FC = () => { return (

- 1. {intl.formatMessage({ id: 'resources.register.install.title' })} + 1.{' '} + {intl.formatMessage( + { id: 'resources.register.install.title' }, + { os: platform.os } + )}

diff --git a/src/pages/resources/components/add-worker-windows.tsx b/src/pages/resources/components/add-worker-windows.tsx deleted file mode 100644 index 3628ee09..00000000 --- a/src/pages/resources/components/add-worker-windows.tsx +++ /dev/null @@ -1,91 +0,0 @@ -import { useIntl } from '@umijs/max'; -import { Space, Typography } from 'antd'; -import React, { useMemo } from 'react'; - -const { Text } = Typography; - -interface AddWorkerProps { - token?: string; -} - -const registerWorkerSteps = [ - 'resources.register.worker.step2', - // `resources.register.worker.step3`, - `resources.register.worker.step4`, - 'resources.register.worker.step5', - 'resources.register.worker.step6', - `resources.register.worker.step7` -]; - -const AddWorkerWindows: React.FC = () => { - const intl = useIntl(); - const labels = useMemo( - () => ({ - step1: intl.formatMessage({ id: 'resources.worker.add.step1' }), - step2: intl.formatMessage({ id: 'resources.worker.add.step2' }), - step2Tips: intl.formatMessage({ id: 'resources.worker.add.step2.tips' }), - step3: intl.formatMessage({ id: 'resources.worker.add.step3' }), - linuxOrMac: intl.formatMessage({ id: 'resources.worker.linuxormaxos' }) - }), - [intl] - ); - return ( -
-

- 1. {intl.formatMessage({ id: 'resources.register.install.title' })} -

- - - -

- 2. -

- -
- - - -
-
-

- 3. {labels.step2}{' '} - -

- -
- - {registerWorkerSteps.map((step, index) => ( - - {index + 1}.{' '} - - - ))} - -
-
-

4. {labels.step3}

-
- ); -}; - -export default AddWorkerWindows; diff --git a/src/pages/resources/components/add-worker.tsx b/src/pages/resources/components/add-worker.tsx index 89505c77..4baae3c8 100644 --- a/src/pages/resources/components/add-worker.tsx +++ b/src/pages/resources/components/add-worker.tsx @@ -7,7 +7,6 @@ import { useIntl } from '@umijs/max'; import { Modal, Tabs, TabsProps } from 'antd'; import React from 'react'; import MacOS from './add-worker-macos'; -import Windows from './add-worker-windows'; import ContainerInstall from './container-install'; type ViewModalProps = { @@ -32,13 +31,29 @@ const AddWorker: React.FC = (props) => { key: 'macos', label: 'macOS', icon: , - children: + children: ( + + ) }, { key: 'windows', label: 'Windows', icon: , - children: + children: ( + + ) } ];