chore: 统一为简体中文

This commit is contained in:
CrescentLeaf
2025-10-06 15:36:12 +08:00
parent bd857b840b
commit dced175d7a
23 changed files with 131 additions and 175 deletions

View File

@@ -90,7 +90,7 @@ export default function App() {
if (re.code == 401)
loginDialogRef.current!.open = true
else if (re.code != 200) {
if (checkApiSuccessOrSncakbar(re, "驗證失敗")) return
if (checkApiSuccessOrSncakbar(re, "验证失败")) return
} else if (re.code == 200) {
setMyUserProfileCache(Client.myUserProfile as User)
}
@@ -201,7 +201,7 @@ export default function App() {
textAlign: 'center',
alignSelf: 'center',
}}>
...
......
</div>
}
{

View File

@@ -92,7 +92,7 @@ export default function AppMobile() {
if (re.code == 401)
loginDialogRef.current!.open = true
else if (re.code != 200) {
if (checkApiSuccessOrSncakbar(re, "驗證失敗")) return
if (checkApiSuccessOrSncakbar(re, "验证失败")) return
} else if (re.code == 200) {
setMyUserProfileCache(Client.myUserProfile as User)
}
@@ -191,8 +191,8 @@ export default function AppMobile() {
}}>
<mdui-top-app-bar-title>{
({
Recents: "最近對話",
Contacts: "所有對話"
Recents: "最近对话",
Contacts: "所有对话"
})[navigationItemSelected]
}</mdui-top-app-bar-title>
<div style={{
@@ -234,8 +234,8 @@ export default function AppMobile() {
position: 'sticky',
bottom: '0',
}}>
<mdui-navigation-bar-item icon="watch_later--outlined" active-icon="watch_later--filled" value="Recents"></mdui-navigation-bar-item>
<mdui-navigation-bar-item icon="chat--outlined" active-icon="chat--filled" value="Contacts"></mdui-navigation-bar-item>
<mdui-navigation-bar-item icon="watch_later--outlined" active-icon="watch_later--filled" value="Recents"></mdui-navigation-bar-item>
<mdui-navigation-bar-item icon="chat--outlined" active-icon="chat--filled" value="Contacts"></mdui-navigation-bar-item>
</mdui-navigation-bar>
</div>
)

View File

@@ -52,7 +52,7 @@ const markedInstance = new marked.Marked({
export default function ChatFragment({ target, showReturnButton, onReturnButtonClicked, openChatInfoDialog, openUserInfoDialog, ...props }: Args) {
const [messagesList, setMessagesList] = React.useState([] as Message[])
const [chatInfo, setChatInfo] = React.useState({
title: '加中...'
title: '加中...'
} as Chat)
const [tabItemSelected, setTabItemSelected] = React.useState('None')
@@ -68,7 +68,7 @@ export default function ChatFragment({ target, showReturnButton, onReturnButtonC
target: target,
})
if (re.code != 200)
return target != '' && checkApiSuccessOrSncakbar(re, "對話錯誤")
return target != '' && checkApiSuccessOrSncakbar(re, "获取对话信息失败")
setChatInfo(re.data as Chat)
await loadMore()
@@ -90,7 +90,7 @@ export default function ChatFragment({ target, showReturnButton, onReturnButtonC
page: page.current,
})
if (checkApiSuccessOrSncakbar(re, "拉取歷史記錄失敗")) return
if (checkApiSuccessOrSncakbar(re, "拉取对话记录失败")) return
const returnMsgs = (re.data!.messages as Message[]).reverse()
page.current++
if (returnMsgs.length == 0) {
@@ -150,7 +150,7 @@ export default function ChatFragment({ target, showReturnButton, onReturnButtonC
target,
data: cachedFiles.current[fileName],
}, 5000)
if (checkApiSuccessOrSncakbar(re, `文件[${fileName}] 上傳失敗`)) return setIsMessageSending(false)
if (checkApiSuccessOrSncakbar(re, `文件[${fileName}] 上传失败`)) return setIsMessageSending(false)
text = text.replaceAll('(' + fileName + ')', '(' + re.data!.file_path as string + ')')
}
}
@@ -160,12 +160,12 @@ export default function ChatFragment({ target, showReturnButton, onReturnButtonC
target,
text,
}, 5000)
if (checkApiSuccessOrSncakbar(re, "送失")) return setIsMessageSending(false)
if (checkApiSuccessOrSncakbar(re, "送失")) return setIsMessageSending(false)
inputRef.current!.value = ''
cachedFiles.current = {}
} catch (e) {
snackbar({
message: '送失: ' + (e as Error).message,
message: '送失: ' + (e as Error).message,
placement: 'top',
})
}
@@ -188,7 +188,7 @@ export default function ChatFragment({ target, showReturnButton, onReturnButtonC
cachedFiles.current[name] = await data.arrayBuffer()
cachedFileNamesCount.current[name] = 1
if (type.startsWith('image/'))
insertText(`![片](${name})`)
insertText(`![片](${name})`)
else if (type.startsWith('video/'))
insertText(`![Video=${name}](${name})`)
else
@@ -227,7 +227,7 @@ export default function ChatFragment({ target, showReturnButton, onReturnButtonC
<mdui-tab value="Chat">{
chatInfo.title
}</mdui-tab>
<mdui-tab value="Settings"></mdui-tab>
<mdui-tab value="Settings"></mdui-tab>
<mdui-tab value="None" style={{ display: 'none' }}></mdui-tab>
<div style={{
flexGrow: '1',
@@ -265,7 +265,7 @@ export default function ChatFragment({ target, showReturnButton, onReturnButtonC
<span style={{
alignSelf: 'center',
paddingLeft: '12px',
}}>...</span>
}}>...</span>
</div>
<div style={{
display: showNoMoreMessagesTip ? undefined : 'none',
@@ -372,7 +372,7 @@ export default function ChatFragment({ target, showReturnButton, onReturnButtonC
addFile(type as string, getFileNameOrRandom(url), re)
} catch (e) {
snackbar({
message: '法解析連結: ' + (e as Error).message,
message: '法解析链接: ' + (e as Error).message,
placement: 'top',
})
}
@@ -385,7 +385,7 @@ export default function ChatFragment({ target, showReturnButton, onReturnButtonC
}
}
}}>
<mdui-text-field variant="outlined" placeholder="喵呜~" autosize ref={inputRef as any} max-rows={6} onChange={() => {
<mdui-text-field variant="outlined" placeholder="(。・ω・。)" autosize ref={inputRef as any} max-rows={6} onChange={() => {
if (inputRef.current?.value.trim() == '')
cachedFiles.current = {}
}} onKeyDown={(event) => {
@@ -415,7 +415,7 @@ export default function ChatFragment({ target, showReturnButton, onReturnButtonC
<div style={{
display: 'none'
}}>
<input accept="*/*" type="file" name="選擇附加文" multiple ref={attachFileInputRef}></input>
<input accept="*/*" type="file" name="加文" multiple ref={attachFileInputRef}></input>
</div>
</div>
</mdui-tab-panel>

View File

@@ -1,4 +1,4 @@
import { Dropdown, Dialog } from "mdui"
import { Dropdown, Dialog, dialog } from "mdui"
import { $ } from "mdui/jq"
import Client from "../../api/Client.ts"
import Data_Message from "../../api/client_data/Message.ts"
@@ -131,9 +131,9 @@ export default function Message({ userId, rawData, renderHTML, message, openUser
e.stopPropagation()
setDropDownOpen(false)
}}>
<mdui-menu-item icon="content_copy" onClick={() => copyToClipboard($(dropDownRef.current as HTMLElement).find('#msg').text().trim())}></mdui-menu-item>
<mdui-menu-item icon="content_copy" onClick={() => copyToClipboard(rawData)}></mdui-menu-item>
<mdui-menu-item icon="info" onClick={() => messageJsonDialogRef.current!.open = true}></mdui-menu-item>
<mdui-menu-item icon="content_copy" onClick={() => copyToClipboard($(dropDownRef.current as HTMLElement).find('#msg').text().trim())}></mdui-menu-item>
<mdui-menu-item icon="content_copy" onClick={() => copyToClipboard(rawData)}></mdui-menu-item>
<mdui-menu-item icon="info" onClick={() => messageJsonDialogRef.current!.open = true}>JSON</mdui-menu-item>
</mdui-menu>
</mdui-dropdown>
</mdui-card>

View File

@@ -20,10 +20,10 @@ customElements.define('chat-image', class extends HTMLElement {
e.onerror = () => {
const src = $(this).attr('src')
$(this).html(`<mdui-icon name="broken_image" style="font-size: 2rem;"></mdui-icon>`)
$(this).attr('alt', '法加載圖像')
$(this).attr('alt', '法加载: ' + $(this).attr('alt'))
$(this).on('click', () => {
snackbar({
message: `片 (${src}) 法加!`,
message: `片 (${src}) 法加!`,
placement: 'top'
})
})

View File

@@ -6,7 +6,7 @@ customElements.define('chat-video', class extends HTMLElement {
}
connectedCallback() {
this.style.display = 'block'
const e = new DOMParser().parseFromString(`<video controls>視頻無法播放</video>`, 'text/html').body.firstChild as HTMLVideoElement
const e = new DOMParser().parseFromString(`<video controls></video>`, 'text/html').body.firstChild as HTMLVideoElement
e.style.width = "100%"
e.style.height = "100%"
e.style.borderRadius = "var(--mdui-shape-corner-medium)"

View File

@@ -35,8 +35,8 @@ export default function AddContactDialog({
}
return (
<mdui-dialog close-on-overlay-click close-on-esc headline="添加對話" ref={addContactDialogRef}>
<mdui-text-field clearable label="对话 ID / 用 ID / 用名" ref={inputTargetRef as any} onKeyDown={(event) => {
<mdui-dialog close-on-overlay-click close-on-esc headline="添加对话" ref={addContactDialogRef}>
<mdui-text-field clearable label="对话 ID / 用 ID / 用名" ref={inputTargetRef as any} onKeyDown={(event) => {
if (event.key == 'Enter')
addContact()
}}></mdui-text-field>

View File

@@ -26,7 +26,7 @@ export default function ChatInfoDialog({ chat, chatInfoDialogRef, openChatFragme
target: chat.id,
})
if (re.code != 200)
return checkApiSuccessOrSncakbar(re, '獲取對話訊息失')
return checkApiSuccessOrSncakbar(re, '获取对话信息失')
setChatInfo(re.data!.chat_info as Chat)
})

View File

@@ -32,20 +32,20 @@ export default function LoginDialog({
password: CryptoJS.SHA256(password).toString(CryptoJS.enc.Hex),
})
if (checkApiSuccessOrSncakbar(re, "登錄失敗")) return
if (checkApiSuccessOrSncakbar(re, "登录失败")) return
data.access_token = re.data!.access_token as string
data.apply()
location.reload()
})
return (
<mdui-dialog headline="登" ref={loginDialogRef}>
<mdui-dialog headline="登" ref={loginDialogRef}>
<mdui-text-field label="用 ID / 用名" ref={loginInputAccountRef as any}></mdui-text-field>
<mdui-text-field label="用 ID / 用名" ref={loginInputAccountRef as any}></mdui-text-field>
<div style={{
height: "10px",
}}></div>
<mdui-text-field label="密" type="password" toggle-password ref={loginInputPasswordRef as any}></mdui-text-field>
<mdui-text-field label="密" type="password" toggle-password ref={loginInputPasswordRef as any}></mdui-text-field>
<mdui-button slot="action" variant="text" ref={registerButtonRef}></mdui-button>
<mdui-button slot="action" variant="text" ref={loginButtonRef}></mdui-button>

View File

@@ -30,9 +30,9 @@ export default function MyProfileDialog({
avatar: file
})
if (checkApiSuccessOrSncakbar(re, "修改失")) return
if (checkApiSuccessOrSncakbar(re, "修改失")) return
snackbar({
message: "修改成功 (刷新面以更新)",
message: "修改成功 (刷新面以更新)",
placement: "top",
})
})
@@ -74,8 +74,8 @@ export default function MyProfileDialog({
marginBottom: "10px",
}}></mdui-divider>
<mdui-list-item icon="logout" rounded onClick={() => dialog({
headline: "退出登",
description: "確定要退出登錄嗎? (若您的賬號未設定 用戶名, 請無務必複製 用戶 ID, 以免丟失賬號!)",
headline: "退出登",
description: "请确保在退出登录前, 设定了用户名或者已经记录下了用户 ID, 以免无法登录账号",
actions: [
{
text: "取消",
@@ -84,7 +84,7 @@ export default function MyProfileDialog({
},
},
{
text: "定",
text: "定",
onClick: () => {
data.access_token = ''
data.apply()
@@ -93,7 +93,7 @@ export default function MyProfileDialog({
},
}
],
})}>退</mdui-list-item>
})}>退</mdui-list-item>
</mdui-list>
</mdui-dialog>
{
@@ -103,7 +103,7 @@ export default function MyProfileDialog({
<div style={{
display: "none"
}}>
<input type="file" name="選擇頭像" ref={chooseAvatarFileRef}
<input type="file" name="选择头像" ref={chooseAvatarFileRef}
accept="image/*" />
</div>
@@ -115,7 +115,7 @@ export default function MyProfileDialog({
width: '50px',
height: '50px',
}} />
<mdui-text-field variant="outlined" placeholder="昵" ref={editNickNameRef as any} style={{
<mdui-text-field variant="outlined" placeholder="昵" ref={editNickNameRef as any} style={{
marginLeft: "15px",
}} value={user?.nickname}></mdui-text-field>
</div>
@@ -123,12 +123,12 @@ export default function MyProfileDialog({
marginTop: "10px",
}}></mdui-divider>
<mdui-text-field style={{ marginTop: "10px", }} variant="outlined" label="用 ID" value={user?.id || ''} readonly onClick={(e) => {
<mdui-text-field style={{ marginTop: "10px", }} variant="outlined" label="用 ID" value={user?.id || ''} readonly onClick={(e) => {
const input = e.target as HTMLInputElement
input.select()
input.setSelectionRange(0, 1145141919810)
}}></mdui-text-field>
<mdui-text-field style={{ marginTop: "20px", }} variant="outlined" label="用名" value={user?.username || ''} ref={editUserNameRef as any}></mdui-text-field>
<mdui-text-field style={{ marginTop: "20px", }} variant="outlined" label="用名" value={user?.username || ''} ref={editUserNameRef as any}></mdui-text-field>
<mdui-button slot="action" variant="text" onClick={() => userProfileEditDialogRef.current!.open = false}></mdui-button>
<mdui-button slot="action" variant="text" onClick={async () => {
@@ -138,9 +138,9 @@ export default function MyProfileDialog({
username: editUserNameRef.current?.value,
})
if (checkApiSuccessOrSncakbar(re, "修改失")) return
if (checkApiSuccessOrSncakbar(re, "修改失")) return
snackbar({
message: "修改成功 (刷新面以更新)",
message: "修改成功 (刷新面以更新)",
placement: "top",
})
userProfileEditDialogRef.current!.open = false

View File

@@ -34,7 +34,7 @@ export default function RegisterDialog({
password: CryptoJS.SHA256(registerInputPasswordRef.current!.value).toString(CryptoJS.enc.Hex),
})
if (checkApiSuccessOrSncakbar(re, "注冊失敗")) return
if (checkApiSuccessOrSncakbar(re, "注册失败")) return
loginInputAccountRef.current!.value = username == "" ? re.data!.userid as string : username
loginInputPasswordRef.current!.value = registerInputPasswordRef.current!.value
@@ -43,25 +43,25 @@ export default function RegisterDialog({
registerInputPasswordRef.current!.value = ""
registerDialogRef.current!.open = false
snackbar({
message: "注成功!",
message: "注成功!",
placement: "top",
})
})
return (
<mdui-dialog headline="注" ref={registerDialogRef}>
<mdui-dialog headline="注" ref={registerDialogRef}>
<mdui-text-field label="用名 (可)" ref={registerInputUserNameRef as any}></mdui-text-field>
<mdui-text-field label="用名 (可)" ref={registerInputUserNameRef as any}></mdui-text-field>
<div style={{
height: "10px",
}}></div>
<mdui-text-field label="昵" ref={registerInputNickNameRef as any}></mdui-text-field>
<mdui-text-field label="昵" ref={registerInputNickNameRef as any}></mdui-text-field>
<div style={{
height: "10px",
}}></div>
<mdui-text-field label="密码" type="password" toggle-password ref={registerInputPasswordRef as any}></mdui-text-field>
<mdui-button slot="action" variant="text" ref={registerBackButtonRef}></mdui-button>
<mdui-button slot="action" variant="text" ref={doRegisterButtonRef}></mdui-button>
<mdui-button slot="action" variant="text" ref={doRegisterButtonRef}></mdui-button>
</mdui-dialog>
)
}

View File

@@ -38,7 +38,7 @@ export default function ContactsList({
token: data.access_token,
})
if (re.code != 200)
return checkApiSuccessOrSncakbar(re, "获取對話列表失败")
return checkApiSuccessOrSncakbar(re, "获取所有对话列表失败")
setContactsList(re.data!.contacts_list as Chat[])
}
@@ -61,7 +61,7 @@ export default function ContactsList({
<mdui-list-item rounded style={{
width: '100%',
marginTop: '13px',
}} icon="person_add" onClick={() => addContactDialogRef.current!.open = true}></mdui-list-item>
}} icon="person_add" onClick={() => addContactDialogRef.current!.open = true}></mdui-list-item>
<mdui-list-item rounded style={{
width: '100%',
}} icon="group_add" onClick={() => createGroupDialogRef.current!.open = true}></mdui-list-item>

View File

@@ -36,7 +36,7 @@ export default function RecentsList({
token: data.access_token,
})
if (re.code != 200)
return checkApiSuccessOrSncakbar(re, "获取最近對話列表失败")
return checkApiSuccessOrSncakbar(re, "获取最近对话列表失败")
setRecentsList(re.data!.recent_chats as RecentChat[])
}