chore: build button text to star build

This commit is contained in:
Joel 2026-06-25 13:54:30 +08:00
parent 5713307f7b
commit e2860d79de
31 changed files with 93 additions and 38 deletions

View File

@ -314,6 +314,12 @@ describe('ChatInputArea', () => {
render(<ChatInputArea visionConfig={mockVisionConfig} />)
expect(screen.getByRole('button', { name: 'common.operation.send' })).toBeInTheDocument()
})
it('should render a custom send button label when provided', () => {
render(<ChatInputArea visionConfig={mockVisionConfig} sendButtonLabel="Start build" />)
expect(screen.getByRole('button', { name: 'Start build' })).toBeInTheDocument()
expect(screen.queryByRole('button', { name: 'common.operation.send' })).not.toBeInTheDocument()
})
})
// -------------------------------------------------------------------------

View File

@ -41,6 +41,7 @@ type ChatInputAreaProps = {
theme?: Theme | null
isResponding?: boolean
disabled?: boolean
sendButtonLabel?: string
/**
* Controls whether pressing Enter sends the message.
* - true (default): Enter sends, Shift+Enter inserts newline
@ -49,7 +50,7 @@ type ChatInputAreaProps = {
*/
sendOnEnter?: boolean
}
const ChatInputArea = ({ readonly, botName, placeholder, showFeatureBar, showFileUpload, featureBarReadonly = readonly, featureBarDisabled, onFeatureBarClick, visionConfig, speechToTextConfig = { enabled: true }, onSend, inputs = {}, inputsForm = [], theme, isResponding, disabled, sendOnEnter = true }: ChatInputAreaProps) => {
const ChatInputArea = ({ readonly, botName, placeholder, showFeatureBar, showFileUpload, featureBarReadonly = readonly, featureBarDisabled, onFeatureBarClick, visionConfig, speechToTextConfig = { enabled: true }, onSend, inputs = {}, inputsForm = [], theme, isResponding, disabled, sendButtonLabel, sendOnEnter = true }: ChatInputAreaProps) => {
const { t } = useTranslation()
const { wrapperRef, textareaRef, textValueRef, holdSpaceRef, handleTextareaResize, isMultipleLine } = useTextAreaHeight()
const [query, setQuery] = useState('')
@ -141,7 +142,7 @@ const ChatInputArea = ({ readonly, botName, placeholder, showFeatureBar, showFil
toast.error(t('voiceInput.notAllow', { ns: 'common' }))
})
}, [t])
const operation = (<Operation ref={holdSpaceRef} readonly={readonly} fileConfig={visionConfig} speechToTextConfig={speechToTextConfig} onShowVoiceInput={handleShowVoiceInput} onSend={handleSend} theme={theme} />)
const operation = (<Operation ref={holdSpaceRef} readonly={readonly} fileConfig={visionConfig} speechToTextConfig={speechToTextConfig} onShowVoiceInput={handleShowVoiceInput} onSend={handleSend} sendButtonLabel={sendButtonLabel} theme={theme} />)
return (
<>
<div className={cn('relative z-10 overflow-hidden rounded-xl border border-components-chat-input-border bg-components-panel-bg-blur pb-[9px] shadow-md', isDragActive && 'border border-dashed border-components-option-card-option-selected-border', disabled && 'pointer-events-none border-components-panel-border opacity-50 shadow-none')}>

View File

@ -22,6 +22,7 @@ type OperationProps = {
speechToTextConfig?: EnableType
onShowVoiceInput?: () => void
onSend: () => void
sendButtonLabel?: string
theme?: Theme | null
ref?: Ref<HTMLDivElement>
}
@ -32,6 +33,7 @@ const Operation: FC<OperationProps> = ({
speechToTextConfig,
onShowVoiceInput,
onSend,
sendButtonLabel,
theme,
}) => {
const { t } = useTranslation()
@ -62,8 +64,11 @@ const Operation: FC<OperationProps> = ({
}
</div>
<Button
aria-label={t('operation.send', { ns: 'common' })}
className="ml-3 w-8 px-0"
aria-label={sendButtonLabel ? undefined : t('operation.send', { ns: 'common' })}
className={cn(
'ml-3',
sendButtonLabel ? 'px-3' : 'w-8 px-0',
)}
variant="primary"
onClick={readonly ? noop : onSend}
style={
@ -74,7 +79,7 @@ const Operation: FC<OperationProps> = ({
: {}
}
>
<RiSendPlane2Fill className="size-4" aria-hidden="true" />
{sendButtonLabel || <RiSendPlane2Fill className="size-4" aria-hidden="true" />}
</Button>
</div>
</div>

View File

@ -72,6 +72,7 @@ export type ChatProps = {
inputDisabled?: boolean
inputPlaceholder?: string
inputPlaceholderBotName?: string
sendButtonLabel?: string
sidebarCollapseState?: boolean
hideAvatar?: boolean
sendOnEnter?: boolean
@ -120,6 +121,7 @@ const Chat: FC<ChatProps> = ({
inputDisabled,
inputPlaceholder,
inputPlaceholderBotName,
sendButtonLabel,
sidebarCollapseState,
hideAvatar,
sendOnEnter,
@ -262,6 +264,7 @@ const Chat: FC<ChatProps> = ({
theme={themeBuilder?.theme}
isResponding={isResponding}
readonly={readonly}
sendButtonLabel={sendButtonLabel}
sendOnEnter={sendOnEnter}
/>
)

View File

@ -1,4 +1,4 @@
import { render, screen } from '@testing-library/react'
import { render, screen, within } from '@testing-library/react'
import userEvent from '@testing-library/user-event'
import { AgentPreviewHeader } from '../header'
@ -6,12 +6,14 @@ function renderHeader({
mode = 'preview',
previewEnabled = true,
onModeChange = vi.fn(),
onToggleChatFeatures = vi.fn(),
onOpenVersions = vi.fn(),
onRefresh = vi.fn(),
}: {
mode?: 'build' | 'preview'
previewEnabled?: boolean
onModeChange?: (mode: 'build' | 'preview') => void
onToggleChatFeatures?: () => void
onOpenVersions?: () => void
onRefresh?: () => void
} = {}) {
@ -21,7 +23,7 @@ function renderHeader({
previewEnabled={previewEnabled}
isChatFeaturesOpen={false}
onModeChange={onModeChange}
onToggleChatFeatures={vi.fn()}
onToggleChatFeatures={onToggleChatFeatures}
onOpenVersions={onOpenVersions}
onRefresh={onRefresh}
/>,
@ -43,6 +45,16 @@ describe('AgentPreviewHeader', () => {
expect(onRefresh).toHaveBeenCalledTimes(1)
})
it('should show chat features in build mode', async () => {
const user = userEvent.setup()
const onToggleChatFeatures = vi.fn()
renderHeader({ mode: 'build', onToggleChatFeatures })
await user.click(screen.getByRole('button', { name: 'agentV2.agentDetail.configure.preview.chatFeatures' }))
expect(onToggleChatFeatures).toHaveBeenCalledTimes(1)
})
it('should disable preview mode when preview is unavailable', async () => {
const user = userEvent.setup()
const onModeChange = vi.fn()
@ -52,7 +64,9 @@ describe('AgentPreviewHeader', () => {
onModeChange,
})
await user.click(screen.getByRole('button', { name: /agentV2\.agentDetail\.configure\.rightPanel\.preview/ }))
const modeControl = screen.getByRole('group', { name: 'agentV2.agentDetail.configure.rightPanel.modeLabel' })
await user.click(within(modeControl).getByRole('button', { name: /agentV2\.agentDetail\.configure\.rightPanel\.preview/ }))
expect(onModeChange).not.toHaveBeenCalled()
})

View File

@ -6,7 +6,7 @@ import { AgentChatRuntime } from './chat-runtime'
const buildIconGridCells = Array.from({ length: 16 }, (_, index) => `build-icon-cell-${index}`)
type AgentBuildChatProps = Omit<AgentChatRuntimeProps, 'inputPlaceholder' | 'renderEmptyState'>
type AgentBuildChatProps = Omit<AgentChatRuntimeProps, 'inputPlaceholder' | 'renderEmptyState' | 'sendButtonLabel'>
function AgentBuildChatEmptyState({
inputNode,
@ -43,6 +43,7 @@ export function AgentBuildChat(props: AgentBuildChatProps) {
<AgentChatRuntime
{...props}
inputPlaceholder={t('agentDetail.configure.build.inputPlaceholder')}
sendButtonLabel={t('agentDetail.configure.build.startBuild')}
renderEmptyState={(emptyStateProps: AgentChatRuntimeEmptyStateProps) => (
<AgentBuildChatEmptyState {...emptyStateProps} />
)}

View File

@ -410,6 +410,7 @@ export type AgentChatRuntimeProps = {
clearChatList: boolean
conversationId?: string | null
inputPlaceholder: string
sendButtonLabel?: string
renderEmptyState: (props: AgentChatRuntimeEmptyStateProps) => ReactNode
onClearChatListChange: (clearChatList: boolean) => void
onConversationIdChange?: (conversationId: string) => void
@ -426,6 +427,7 @@ export function AgentChatRuntime({
clearChatList,
conversationId,
inputPlaceholder,
sendButtonLabel,
renderEmptyState,
onClearChatListChange,
onConversationIdChange,
@ -462,6 +464,7 @@ export function AgentChatRuntime({
conversationId={conversationId}
initialChatTree={initialChatTree}
inputPlaceholder={inputPlaceholder}
sendButtonLabel={sendButtonLabel}
renderEmptyState={renderEmptyState}
onClearChatListChange={onClearChatListChange}
onConversationIdChange={onConversationIdChange}
@ -481,6 +484,7 @@ function AgentPreviewChatSession({
conversationId,
initialChatTree,
inputPlaceholder,
sendButtonLabel,
renderEmptyState,
onClearChatListChange,
onConversationIdChange,
@ -496,6 +500,7 @@ function AgentPreviewChatSession({
conversationId?: string | null
initialChatTree: ChatItemInTree[]
inputPlaceholder: string
sendButtonLabel?: string
renderEmptyState: (props: AgentChatRuntimeEmptyStateProps) => ReactNode
onClearChatListChange: (clearChatList: boolean) => void
onConversationIdChange?: (conversationId: string) => void
@ -602,6 +607,7 @@ function AgentPreviewChatSession({
onSend={doSend}
inputs={inputs}
inputsForm={inputsForm}
sendButtonLabel={sendButtonLabel}
/>
</div>
)
@ -627,6 +633,7 @@ function AgentPreviewChatSession({
isEmptyChat ? 'hidden' : 'px-3 pt-10',
)}
inputPlaceholder={inputPlaceholder}
sendButtonLabel={sendButtonLabel}
showFileUpload={false}
suggestedQuestions={suggestedQuestions}
onSend={doSend}

View File

@ -117,35 +117,30 @@ export function AgentPreviewHeader({
>
<span aria-hidden className="i-custom-vender-other-replay-line size-4" />
</button>
{mode === 'build'
? (
<button
type="button"
onClick={onOpenVersions}
className="flex size-6 items-center justify-center rounded-md p-0.5 text-text-tertiary hover:bg-state-base-hover hover:text-text-secondary focus-visible:ring-2 focus-visible:ring-state-accent-solid focus-visible:outline-hidden"
aria-label={t('agentDetail.configure.publishBar.versionHistory')}
>
<span aria-hidden className="i-ri-folder-3-line size-4" />
</button>
)
: (
<>
<SegmentedControlDivider className="mx-1" />
<button
type="button"
aria-pressed={isChatFeaturesOpen}
onClick={onToggleChatFeatures}
className={cn(
'flex h-8 items-center justify-center gap-0.5 rounded-lg px-3 py-2 text-text-tertiary hover:bg-state-base-hover hover:text-text-secondary focus-visible:ring-2 focus-visible:ring-state-accent-solid focus-visible:outline-hidden',
isChatFeaturesOpen && 'bg-state-base-hover text-text-secondary',
)}
aria-label={t('agentDetail.configure.preview.chatFeatures')}
>
<span aria-hidden className="i-ri-apps-2-add-line size-4" />
<span className="px-0.5 system-sm-medium">{t('agentDetail.configure.preview.chatFeatures')}</span>
</button>
</>
)}
{mode === 'build' && (
<button
type="button"
onClick={onOpenVersions}
className="flex size-6 items-center justify-center rounded-md p-0.5 text-text-tertiary hover:bg-state-base-hover hover:text-text-secondary focus-visible:ring-2 focus-visible:ring-state-accent-solid focus-visible:outline-hidden"
aria-label={t('agentDetail.configure.publishBar.versionHistory')}
>
<span aria-hidden className="i-ri-folder-3-line size-4" />
</button>
)}
<SegmentedControlDivider className="mx-1" />
<button
type="button"
aria-pressed={isChatFeaturesOpen}
onClick={onToggleChatFeatures}
className={cn(
'flex h-8 items-center justify-center gap-0.5 rounded-lg px-3 py-2 text-text-tertiary hover:bg-state-base-hover hover:text-text-secondary focus-visible:ring-2 focus-visible:ring-state-accent-solid focus-visible:outline-hidden',
isChatFeaturesOpen && 'bg-state-base-hover text-text-secondary',
)}
aria-label={t('agentDetail.configure.preview.chatFeatures')}
>
<span aria-hidden className="i-ri-apps-2-add-line size-4" />
<span className="px-0.5 system-sm-medium">{t('agentDetail.configure.preview.chatFeatures')}</span>
</button>
</div>
</div>
)

View File

@ -63,6 +63,7 @@
"agentDetail.configure.build.empty.description": "صِف ما تريده وسيتم ملء النموذج على اليسار أثناء المحادثة.",
"agentDetail.configure.build.empty.title": "ابنِ وكيلك عبر الدردشة",
"agentDetail.configure.build.inputPlaceholder": "صِف ما يجب أن يفعله وكيلك",
"agentDetail.configure.build.startBuild": "ابدأ البناء",
"agentDetail.configure.chatFeatures.description": "شكّل تجربة الدردشة للمستخدم النهائي على Web app وأسطح الدردشة.",
"agentDetail.configure.chatFeatures.title": "ميزات الدردشة",
"agentDetail.configure.files.add": "إضافة ملف",

View File

@ -63,6 +63,7 @@
"agentDetail.configure.build.empty.description": "Beschreiben Sie, was Sie möchten, und das Formular links wird während des Chats ausgefüllt.",
"agentDetail.configure.build.empty.title": "Agent per Chat erstellen",
"agentDetail.configure.build.inputPlaceholder": "Beschreiben Sie, was Ihr Agent tun soll",
"agentDetail.configure.build.startBuild": "Build starten",
"agentDetail.configure.chatFeatures.description": "Gestalten Sie das Chat-Erlebnis für Endnutzer in Ihrer Webapp und in Chat-Oberflächen.",
"agentDetail.configure.chatFeatures.title": "Chat-Funktionen",
"agentDetail.configure.files.add": "Datei hinzufügen",

View File

@ -63,6 +63,7 @@
"agentDetail.configure.build.empty.description": "Describe what you want and it fills in the form on the left as you go.",
"agentDetail.configure.build.empty.title": "Build your agent by chatting",
"agentDetail.configure.build.inputPlaceholder": "Describe what your agent should do",
"agentDetail.configure.build.startBuild": "Start build",
"agentDetail.configure.chatFeatures.description": "Shape the end-user chat experience on your web app and chat surfaces.",
"agentDetail.configure.chatFeatures.title": "Chat Features",
"agentDetail.configure.files.add": "Add file",

View File

@ -63,6 +63,7 @@
"agentDetail.configure.build.empty.description": "Describe lo que quieres y se irá completando el formulario de la izquierda mientras avanzas.",
"agentDetail.configure.build.empty.title": "Crea tu agente chateando",
"agentDetail.configure.build.inputPlaceholder": "Describe qué debe hacer tu agente",
"agentDetail.configure.build.startBuild": "Iniciar compilación",
"agentDetail.configure.chatFeatures.description": "Da forma a la experiencia de chat del usuario final en tu webapp y superficies de chat.",
"agentDetail.configure.chatFeatures.title": "Funciones de chat",
"agentDetail.configure.files.add": "Agregar archivo",

View File

@ -63,6 +63,7 @@
"agentDetail.configure.build.empty.description": "آنچه می‌خواهید را توضیح دهید تا فرم سمت چپ در طول گفتگو تکمیل شود.",
"agentDetail.configure.build.empty.title": "عامل خود را با چت بسازید",
"agentDetail.configure.build.inputPlaceholder": "توضیح دهید عامل شما باید چه کاری انجام دهد",
"agentDetail.configure.build.startBuild": "شروع ساخت",
"agentDetail.configure.chatFeatures.description": "تجربه چت کاربر نهایی را در Web app و سطوح چت خود شکل دهید.",
"agentDetail.configure.chatFeatures.title": "ویژگی‌های چت",
"agentDetail.configure.files.add": "افزودن فایل",

View File

@ -63,6 +63,7 @@
"agentDetail.configure.build.empty.description": "Décrivez ce que vous voulez et le formulaire de gauche se remplit au fil de la conversation.",
"agentDetail.configure.build.empty.title": "Créez votre agent par chat",
"agentDetail.configure.build.inputPlaceholder": "Décrivez ce que votre agent doit faire",
"agentDetail.configure.build.startBuild": "Démarrer la création",
"agentDetail.configure.chatFeatures.description": "Façonnez lexpérience de chat de lutilisateur final sur votre webapp et vos surfaces de chat.",
"agentDetail.configure.chatFeatures.title": "Fonctionnalités de chat",
"agentDetail.configure.files.add": "Ajouter un fichier",

View File

@ -63,6 +63,7 @@
"agentDetail.configure.build.empty.description": "आप जो चाहते हैं उसका वर्णन करें और बाईं ओर का फ़ॉर्म बातचीत के साथ भरता जाएगा।",
"agentDetail.configure.build.empty.title": "चैट करके अपना एजेंट बनाएं",
"agentDetail.configure.build.inputPlaceholder": "बताएं कि आपका एजेंट क्या करे",
"agentDetail.configure.build.startBuild": "बिल्ड शुरू करें",
"agentDetail.configure.chatFeatures.description": "अपने Web app और चैट सतहों पर अंतिम-उपयोगकर्ता चैट अनुभव को आकार दें।",
"agentDetail.configure.chatFeatures.title": "चैट सुविधाएँ",
"agentDetail.configure.files.add": "फ़ाइल जोड़ें",

View File

@ -63,6 +63,7 @@
"agentDetail.configure.build.empty.description": "Jelaskan yang Anda inginkan dan formulir di kiri akan terisi seiring percakapan.",
"agentDetail.configure.build.empty.title": "Bangun agen Anda lewat chat",
"agentDetail.configure.build.inputPlaceholder": "Jelaskan apa yang harus dilakukan agen Anda",
"agentDetail.configure.build.startBuild": "Mulai build",
"agentDetail.configure.chatFeatures.description": "Bentuk pengalaman chat pengguna akhir di Web app dan permukaan chat Anda.",
"agentDetail.configure.chatFeatures.title": "Fitur Chat",
"agentDetail.configure.files.add": "Tambahkan file",

View File

@ -63,6 +63,7 @@
"agentDetail.configure.build.empty.description": "Descrivi ciò che vuoi e il modulo a sinistra verrà compilato man mano.",
"agentDetail.configure.build.empty.title": "Crea il tuo agente con la chat",
"agentDetail.configure.build.inputPlaceholder": "Descrivi cosa dovrebbe fare il tuo agente",
"agentDetail.configure.build.startBuild": "Avvia build",
"agentDetail.configure.chatFeatures.description": "Definisci lesperienza di chat per lutente finale sulla tua webapp e sulle superfici di chat.",
"agentDetail.configure.chatFeatures.title": "Funzionalità chat",
"agentDetail.configure.files.add": "Aggiungi file",

View File

@ -63,6 +63,7 @@
"agentDetail.configure.build.empty.description": "やりたいことを説明すると、左側のフォームが会話に合わせて入力されます。",
"agentDetail.configure.build.empty.title": "チャットでエージェントを作成",
"agentDetail.configure.build.inputPlaceholder": "エージェントに実行させたいことを説明",
"agentDetail.configure.build.startBuild": "ビルドを開始",
"agentDetail.configure.chatFeatures.description": "Web app やチャット画面でのエンドユーザー向けチャット体験を設定します。",
"agentDetail.configure.chatFeatures.title": "チャット機能",
"agentDetail.configure.files.add": "ファイルを追加",

View File

@ -63,6 +63,7 @@
"agentDetail.configure.build.empty.description": "원하는 내용을 설명하면 대화에 맞춰 왼쪽 양식이 채워집니다.",
"agentDetail.configure.build.empty.title": "채팅으로 에이전트 만들기",
"agentDetail.configure.build.inputPlaceholder": "에이전트가 해야 할 일을 설명하세요",
"agentDetail.configure.build.startBuild": "빌드 시작",
"agentDetail.configure.chatFeatures.description": "Web app 및 채팅 화면에서의 최종 사용자 채팅 경험을 구성합니다.",
"agentDetail.configure.chatFeatures.title": "채팅 기능",
"agentDetail.configure.files.add": "파일 추가",

View File

@ -63,6 +63,7 @@
"agentDetail.configure.build.empty.description": "Beschrijf wat je wilt en het formulier links wordt gaandeweg ingevuld.",
"agentDetail.configure.build.empty.title": "Bouw je agent via chat",
"agentDetail.configure.build.inputPlaceholder": "Beschrijf wat je agent moet doen",
"agentDetail.configure.build.startBuild": "Build starten",
"agentDetail.configure.chatFeatures.description": "Geef vorm aan de chatervaring voor eindgebruikers in je webapp en chatoppervlakken.",
"agentDetail.configure.chatFeatures.title": "Chatfuncties",
"agentDetail.configure.files.add": "Bestand toevoegen",

View File

@ -63,6 +63,7 @@
"agentDetail.configure.build.empty.description": "Opisz, czego chcesz, a formularz po lewej będzie wypełniany w trakcie rozmowy.",
"agentDetail.configure.build.empty.title": "Buduj agenta przez czat",
"agentDetail.configure.build.inputPlaceholder": "Opisz, co agent ma robić",
"agentDetail.configure.build.startBuild": "Rozpocznij budowanie",
"agentDetail.configure.chatFeatures.description": "Ukształtuj doświadczenie czatu użytkownika końcowego w aplikacji webowej i powierzchniach czatu.",
"agentDetail.configure.chatFeatures.title": "Funkcje czatu",
"agentDetail.configure.files.add": "Dodaj plik",

View File

@ -63,6 +63,7 @@
"agentDetail.configure.build.empty.description": "Descreva o que você quer e o formulário à esquerda será preenchido conforme a conversa avança.",
"agentDetail.configure.build.empty.title": "Crie seu agente conversando",
"agentDetail.configure.build.inputPlaceholder": "Descreva o que seu agente deve fazer",
"agentDetail.configure.build.startBuild": "Iniciar build",
"agentDetail.configure.chatFeatures.description": "Modele a experiência de chat do usuário final no seu webapp e superfícies de chat.",
"agentDetail.configure.chatFeatures.title": "Recursos de chat",
"agentDetail.configure.files.add": "Adicionar arquivo",

View File

@ -63,6 +63,7 @@
"agentDetail.configure.build.empty.description": "Descrie ce dorești, iar formularul din stânga se completează pe măsură ce avansezi.",
"agentDetail.configure.build.empty.title": "Construiește agentul prin chat",
"agentDetail.configure.build.inputPlaceholder": "Descrie ce ar trebui să facă agentul tău",
"agentDetail.configure.build.startBuild": "Pornește build-ul",
"agentDetail.configure.chatFeatures.description": "Modelează experiența de chat a utilizatorului final pe webapp-ul tău și pe suprafețele de chat.",
"agentDetail.configure.chatFeatures.title": "Funcții de chat",
"agentDetail.configure.files.add": "Adaugă fișier",

View File

@ -63,6 +63,7 @@
"agentDetail.configure.build.empty.description": "Опишите, что вам нужно, и форма слева будет заполняться по ходу диалога.",
"agentDetail.configure.build.empty.title": "Создайте агента в чате",
"agentDetail.configure.build.inputPlaceholder": "Опишите, что должен делать агент",
"agentDetail.configure.build.startBuild": "Начать сборку",
"agentDetail.configure.chatFeatures.description": "Настройте чат-опыт конечного пользователя в вашем веб-приложении и чат-поверхностях.",
"agentDetail.configure.chatFeatures.title": "Функции чата",
"agentDetail.configure.files.add": "Добавить файл",

View File

@ -63,6 +63,7 @@
"agentDetail.configure.build.empty.description": "Opišite, kaj želite, in obrazec na levi se bo sproti izpolnjeval.",
"agentDetail.configure.build.empty.title": "Izdelajte agenta s klepetom",
"agentDetail.configure.build.inputPlaceholder": "Opišite, kaj naj vaš agent počne",
"agentDetail.configure.build.startBuild": "Začni gradnjo",
"agentDetail.configure.chatFeatures.description": "Oblikujte uporabniško izkušnjo klepeta v vaši spletni aplikaciji in klepetalnih površinah.",
"agentDetail.configure.chatFeatures.title": "Funkcije klepeta",
"agentDetail.configure.files.add": "Dodaj datoteko",

View File

@ -63,6 +63,7 @@
"agentDetail.configure.build.empty.description": "อธิบายสิ่งที่คุณต้องการ แล้วแบบฟอร์มด้านซ้ายจะถูกกรอกไปพร้อมกับการสนทนา",
"agentDetail.configure.build.empty.title": "สร้างเอเจนต์ของคุณด้วยการแชท",
"agentDetail.configure.build.inputPlaceholder": "อธิบายว่าเอเจนต์ของคุณควรทำอะไร",
"agentDetail.configure.build.startBuild": "เริ่มสร้าง",
"agentDetail.configure.chatFeatures.description": "กำหนดประสบการณ์การแชทของผู้ใช้ปลายทางบน Web app และหน้าจอแชท",
"agentDetail.configure.chatFeatures.title": "ฟีเจอร์แชท",
"agentDetail.configure.files.add": "เพิ่มไฟล์",

View File

@ -63,6 +63,7 @@
"agentDetail.configure.build.empty.description": "Ne istediğinizi açıklayın; soldaki form ilerledikçe doldurulur.",
"agentDetail.configure.build.empty.title": "Aracınızı sohbet ederek oluşturun",
"agentDetail.configure.build.inputPlaceholder": "Aracınızın ne yapması gerektiğini açıklayın",
"agentDetail.configure.build.startBuild": "Buildi başlat",
"agentDetail.configure.chatFeatures.description": "Web app ve sohbet yüzeylerinizde son kullanıcı sohbet deneyimini şekillendirin.",
"agentDetail.configure.chatFeatures.title": "Sohbet Özellikleri",
"agentDetail.configure.files.add": "Dosya ekle",

View File

@ -63,6 +63,7 @@
"agentDetail.configure.build.empty.description": "Опишіть, що вам потрібно, і форма ліворуч заповнюватиметься під час розмови.",
"agentDetail.configure.build.empty.title": "Створіть агента через чат",
"agentDetail.configure.build.inputPlaceholder": "Опишіть, що має робити ваш агент",
"agentDetail.configure.build.startBuild": "Почати збірку",
"agentDetail.configure.chatFeatures.description": "Налаштуйте чат-досвід кінцевого користувача у вашому веб-застосунку та чат-поверхнях.",
"agentDetail.configure.chatFeatures.title": "Функції чату",
"agentDetail.configure.files.add": "Додати файл",

View File

@ -63,6 +63,7 @@
"agentDetail.configure.build.empty.description": "Mô tả điều bạn muốn và biểu mẫu bên trái sẽ được điền dần khi trò chuyện.",
"agentDetail.configure.build.empty.title": "Xây dựng tác nhân bằng trò chuyện",
"agentDetail.configure.build.inputPlaceholder": "Mô tả tác nhân của bạn nên làm gì",
"agentDetail.configure.build.startBuild": "Bắt đầu build",
"agentDetail.configure.chatFeatures.description": "Định hình trải nghiệm trò chuyện cho người dùng cuối trên Web app và các bề mặt trò chuyện.",
"agentDetail.configure.chatFeatures.title": "Tính năng trò chuyện",
"agentDetail.configure.files.add": "Thêm tệp",

View File

@ -63,6 +63,7 @@
"agentDetail.configure.build.empty.description": "描述你的需求,它会随着对话填写左侧表单。",
"agentDetail.configure.build.empty.title": "通过对话构建 Agent",
"agentDetail.configure.build.inputPlaceholder": "描述你的 Agent 应该做什么",
"agentDetail.configure.build.startBuild": "开始构建",
"agentDetail.configure.chatFeatures.description": "配置 Web app 和聊天界面的终端用户聊天体验。",
"agentDetail.configure.chatFeatures.title": "Chat 功能",
"agentDetail.configure.files.add": "添加文件",

View File

@ -63,6 +63,7 @@
"agentDetail.configure.build.empty.description": "描述你的需求,它會隨著對話填寫左側表單。",
"agentDetail.configure.build.empty.title": "透過對話建置 Agent",
"agentDetail.configure.build.inputPlaceholder": "描述你的 Agent 應該做什麼",
"agentDetail.configure.build.startBuild": "開始構建",
"agentDetail.configure.chatFeatures.description": "配置 Web app 和聊天介面的終端使用者聊天體驗。",
"agentDetail.configure.chatFeatures.title": "Chat 功能",
"agentDetail.configure.files.add": "新增檔案",