This commit is contained in:
hailin 2025-04-19 15:43:35 +08:00
parent 379313dde9
commit 07c0e5e145
4 changed files with 34 additions and 4 deletions

View File

@ -29,6 +29,8 @@ import { ContentType } from "@/types"
import { FC, useContext, useRef, useState } from "react" import { FC, useContext, useRef, useState } from "react"
import { toast } from "sonner" import { toast } from "sonner"
import { useTranslation } from 'react-i18next'
interface SidebarCreateItemProps { interface SidebarCreateItemProps {
isOpen: boolean isOpen: boolean
isTyping: boolean isTyping: boolean
@ -46,6 +48,9 @@ export const SidebarCreateItem: FC<SidebarCreateItemProps> = ({
createState, createState,
isTyping isTyping
}) => { }) => {
const { t, i18n } = useTranslation()
const { const {
selectedWorkspace, selectedWorkspace,
setChats, setChats,
@ -215,6 +220,20 @@ export const SidebarCreateItem: FC<SidebarCreateItemProps> = ({
} }
} }
// 判断是否需要首字母大写(且做 -1 截断)
const needsUpperCaseFirstLetter = (language: string) => {
const languagesRequiringUpperCase = ['en', 'de', 'fr', 'es', 'it'];
return languagesRequiringUpperCase.includes(language);
};
// 处理翻译后的 contentType 文本
const getCapitalizedContentType = (translated: string, language: string) => {
if (needsUpperCaseFirstLetter(language)) {
return translated.charAt(0).toUpperCase() + translated.slice(1, -1); // ✅ 按你的要求保留 .slice(1, -1)
}
return translated;
};
return ( return (
<Sheet open={isOpen} onOpenChange={onOpenChange}> <Sheet open={isOpen} onOpenChange={onOpenChange}>
<SheetContent <SheetContent
@ -225,8 +244,13 @@ export const SidebarCreateItem: FC<SidebarCreateItemProps> = ({
<div className="grow overflow-auto"> <div className="grow overflow-auto">
<SheetHeader> <SheetHeader>
<SheetTitle className="text-2xl font-bold"> <SheetTitle className="text-2xl font-bold">
Create{" "} {/* Create{" "}
{contentType.charAt(0).toUpperCase() + contentType.slice(1, -1)} {contentType.charAt(0).toUpperCase() + contentType.slice(1, -1)} */}
{t("side.sidebarCreateNew")}{" "}
{getCapitalizedContentType(t(`contentTypeLabel.${contentType}`), i18n.language)}
</SheetTitle> </SheetTitle>
</SheetHeader> </SheetHeader>
@ -240,11 +264,11 @@ export const SidebarCreateItem: FC<SidebarCreateItemProps> = ({
variant="outline" variant="outline"
onClick={() => onOpenChange(false)} onClick={() => onOpenChange(false)}
> >
Cancel {t("side.cancel")}
</Button> </Button>
<Button disabled={creating} ref={buttonRef} onClick={handleCreate}> <Button disabled={creating} ref={buttonRef} onClick={handleCreate}>
{creating ? "Creating..." : "Create"} {creating ? t("side.creating") : t("side.create")}
</Button> </Button>
</div> </div>
</SheetFooter> </SheetFooter>

View File

@ -151,6 +151,8 @@
"profileSettings": "Profile Settings", "profileSettings": "Profile Settings",
"deleteChatTitle": "Delete", "deleteChatTitle": "Delete",
"deleteChatConfirm": "Are you sure you want to delete this chat?", "deleteChatConfirm": "Are you sure you want to delete this chat?",
"create": "Create",
"creating": "Creating...",
"delete": "Delete" "delete": "Delete"
}, },

View File

@ -150,6 +150,8 @@
"profileSettings": "プロフィール設定", "profileSettings": "プロフィール設定",
"deleteChatTitle": "削除", "deleteChatTitle": "削除",
"deleteChatConfirm": "このチャットを削除してもよろしいですか?", "deleteChatConfirm": "このチャットを削除してもよろしいですか?",
"create": "作成",
"creating": "作成中...",
"delete": "削除" "delete": "削除"
}, },

View File

@ -150,6 +150,8 @@
"profileSettings": "个人资料设置", "profileSettings": "个人资料设置",
"deleteChatTitle": "删除", "deleteChatTitle": "删除",
"deleteChatConfirm": "您确定要删除此聊天记录吗?", "deleteChatConfirm": "您确定要删除此聊天记录吗?",
"create": "创建",
"creating": "正在创建...",
"delete": "删除" "delete": "删除"
}, },