mirror of
https://github.com/langgenius/dify.git
synced 2026-06-26 14:51:13 +08:00
chore: build button text to star build
This commit is contained in:
parent
5713307f7b
commit
e2860d79de
@ -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()
|
||||
})
|
||||
})
|
||||
|
||||
// -------------------------------------------------------------------------
|
||||
|
||||
@ -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')}>
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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}
|
||||
/>
|
||||
)
|
||||
|
||||
@ -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()
|
||||
})
|
||||
|
||||
@ -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} />
|
||||
)}
|
||||
|
||||
@ -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}
|
||||
|
||||
@ -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>
|
||||
)
|
||||
|
||||
@ -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": "إضافة ملف",
|
||||
|
||||
@ -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",
|
||||
|
||||
@ -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",
|
||||
|
||||
@ -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",
|
||||
|
||||
@ -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": "افزودن فایل",
|
||||
|
||||
@ -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 l’expérience de chat de l’utilisateur final sur votre webapp et vos surfaces de chat.",
|
||||
"agentDetail.configure.chatFeatures.title": "Fonctionnalités de chat",
|
||||
"agentDetail.configure.files.add": "Ajouter un fichier",
|
||||
|
||||
@ -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": "फ़ाइल जोड़ें",
|
||||
|
||||
@ -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",
|
||||
|
||||
@ -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 l’esperienza di chat per l’utente finale sulla tua webapp e sulle superfici di chat.",
|
||||
"agentDetail.configure.chatFeatures.title": "Funzionalità chat",
|
||||
"agentDetail.configure.files.add": "Aggiungi 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": "ファイルを追加",
|
||||
|
||||
@ -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": "파일 추가",
|
||||
|
||||
@ -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",
|
||||
|
||||
@ -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",
|
||||
|
||||
@ -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",
|
||||
|
||||
@ -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",
|
||||
|
||||
@ -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": "Добавить файл",
|
||||
|
||||
@ -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",
|
||||
|
||||
@ -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": "เพิ่มไฟล์",
|
||||
|
||||
@ -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": "Build’i 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",
|
||||
|
||||
@ -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": "Додати файл",
|
||||
|
||||
@ -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",
|
||||
|
||||
@ -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": "添加文件",
|
||||
|
||||
@ -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": "新增檔案",
|
||||
|
||||
Loading…
Reference in New Issue
Block a user