feat: add chinese translations and improve ui

This commit is contained in:
kangfenmao 2024-10-29 02:26:10 +08:00
parent f73749ac63
commit 98307d5d85
6 changed files with 33 additions and 17 deletions

View File

@ -169,7 +169,8 @@
"edit.message.user.placeholder": "输入用户消息", "edit.message.user.placeholder": "输入用户消息",
"edit.message.empty.content": "会话输入内容不能为空", "edit.message.empty.content": "会话输入内容不能为空",
"edit.model.select.title": "选择模型", "edit.model.select.title": "选择模型",
"edit.settings.hide_preset_messages": "隐藏预设消息" "edit.settings.hide_preset_messages": "隐藏预设消息",
"search.no_results": "没有找到相关智能体"
}, },
"minapp": { "minapp": {
"title": "小程序" "title": "小程序"

View File

@ -169,7 +169,8 @@
"edit.message.user.placeholder": "輸入用戶消息", "edit.message.user.placeholder": "輸入用戶消息",
"edit.message.empty.content": "會話輸入內容不能為空", "edit.message.empty.content": "會話輸入內容不能為空",
"edit.model.select.title": "選擇模型", "edit.model.select.title": "選擇模型",
"edit.settings.hide_preset_messages": "隱藏預設消息" "edit.settings.hide_preset_messages": "隱藏預設消息",
"search.no_results": "沒有找到相關智能體"
}, },
"minapp": { "minapp": {
"title": "小程序" "title": "小程序"

View File

@ -97,8 +97,7 @@ const AgentsPage: FC = () => {
const tabItems = useMemo(() => { const tabItems = useMemo(() => {
let groups = Object.keys(filteredAgentGroups) let groups = Object.keys(filteredAgentGroups)
groups = groups.filter((g) => g !== '办公') groups = groups.includes('办公') ? ['办公', ...groups.filter((g) => g !== '办公')] : groups
groups = ['办公', ...groups]
return groups.map((group, i) => { return groups.map((group, i) => {
const id = String(i + 1) const id = String(i + 1)
return { return {

View File

@ -1,20 +1,17 @@
import { SyncOutlined } from '@ant-design/icons' import { SyncOutlined } from '@ant-design/icons'
import { Message, Model } from '@renderer/types' import { Message, Model } from '@renderer/types'
import { getBriefInfo } from '@renderer/utils' import { getBriefInfo } from '@renderer/utils'
import { Alert } from 'antd'
import React from 'react' import React from 'react'
import { useTranslation } from 'react-i18next'
import styled from 'styled-components' import styled from 'styled-components'
import Markdown from '../Markdown/Markdown' import Markdown from '../Markdown/Markdown'
import MessageAttachments from './MessageAttachments' import MessageAttachments from './MessageAttachments'
import MessageError from './MessageError'
const MessageContent: React.FC<{ const MessageContent: React.FC<{
message: Message message: Message
model?: Model model?: Model
}> = ({ message, model }) => { }> = ({ message, model }) => {
const { t } = useTranslation()
if (message.status === 'sending') { if (message.status === 'sending') {
return ( return (
<MessageContentLoading> <MessageContentLoading>
@ -24,14 +21,7 @@ const MessageContent: React.FC<{
} }
if (message.status === 'error') { if (message.status === 'error') {
return ( return <MessageError message={message} />
<Alert
message={<div style={{ fontSize: 14 }}>{t('error.chat.response')}</div>}
description={<Markdown message={message} />}
type="error"
style={{ marginBottom: 15, padding: 10, fontSize: 12 }}
/>
)
} }
if (message.type === '@' && model) { if (message.type === '@' && model) {

View File

@ -0,0 +1,21 @@
import { Message } from '@renderer/types'
import { Alert } from 'antd'
import { t } from 'i18next'
import { FC } from 'react'
import Markdown from '../Markdown/Markdown'
const MessageError: FC<{ message: Message }> = ({ message }) => {
return (
<>
<Alert
description={t('error.chat.response')}
type="error"
style={{ marginBottom: 15, padding: 10, fontSize: 12 }}
/>
<Markdown message={message} />
</>
)
}
export default MessageError

View File

@ -73,8 +73,12 @@ export async function fetchChatCompletion({
}) })
} }
} catch (error: any) { } catch (error: any) {
message.content = `Error: ${error.message}`
message.status = 'error' message.status = 'error'
try {
message.content = '```json\n' + JSON.stringify(error, null, 2) + '\n```'
} catch (e) {
message.content = 'Error: ' + error.message
}
} }
timer && clearInterval(timer) timer && clearInterval(timer)