mirror of
https://mirror.skon.top/github.com/langgenius/dify.git
synced 2026-04-20 15:20:15 +08:00
chore: improve conversation opener (#35403)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
This commit is contained in:
@@ -1182,14 +1182,6 @@
|
||||
"count": 2
|
||||
}
|
||||
},
|
||||
"web/app/components/base/features/new-feature-panel/conversation-opener/modal.tsx": {
|
||||
"no-restricted-imports": {
|
||||
"count": 1
|
||||
},
|
||||
"react/set-state-in-effect": {
|
||||
"count": 1
|
||||
}
|
||||
},
|
||||
"web/app/components/base/features/new-feature-panel/feature-bar.tsx": {
|
||||
"no-restricted-imports": {
|
||||
"count": 1
|
||||
|
||||
@@ -186,7 +186,7 @@ describe('OpeningSettingModal', () => {
|
||||
expect(onCancel).toHaveBeenCalledTimes(1)
|
||||
})
|
||||
|
||||
it('should not call onCancel when close icon receives non-action key', async () => {
|
||||
it('should call onCancel when Escape is pressed on the dialog close control', async () => {
|
||||
const onCancel = vi.fn()
|
||||
await render(
|
||||
<OpeningSettingModal
|
||||
@@ -200,7 +200,7 @@ describe('OpeningSettingModal', () => {
|
||||
closeButton.focus()
|
||||
fireEvent.keyDown(closeButton, { key: 'Escape' })
|
||||
|
||||
expect(onCancel).not.toHaveBeenCalled()
|
||||
expect(onCancel).toHaveBeenCalledTimes(1)
|
||||
})
|
||||
|
||||
it('should call onSave with updated data when save is clicked', async () => {
|
||||
@@ -257,6 +257,26 @@ describe('OpeningSettingModal', () => {
|
||||
expect(allInputs.length).toBeGreaterThanOrEqual(1)
|
||||
})
|
||||
|
||||
it('should focus a new suggested question without destructive styling', async () => {
|
||||
await render(
|
||||
<OpeningSettingModal
|
||||
data={defaultData}
|
||||
onSave={vi.fn()}
|
||||
onCancel={vi.fn()}
|
||||
/>,
|
||||
)
|
||||
|
||||
await userEvent.click(screen.getByText(/variableConfig\.addOption/))
|
||||
|
||||
const newInput = screen.getAllByPlaceholderText('appDebug.openingStatement.openingQuestionPlaceholder')
|
||||
.find(input => (input as HTMLInputElement).value === '') as HTMLInputElement
|
||||
const questionRow = newInput.parentElement
|
||||
|
||||
expect(newInput).toHaveFocus()
|
||||
expect(questionRow).not.toHaveClass('border-components-input-border-destructive')
|
||||
expect(questionRow).toHaveClass('border-components-input-border-active')
|
||||
})
|
||||
|
||||
it('should delete a suggested question via save verification', async () => {
|
||||
const onSave = vi.fn()
|
||||
await render(
|
||||
@@ -334,7 +354,39 @@ describe('OpeningSettingModal', () => {
|
||||
)
|
||||
|
||||
// Count is displayed as "2/10" across child elements
|
||||
expect(screen.getByText(/openingStatement\.openingQuestion/)).toBeInTheDocument()
|
||||
expect(screen.getByText('appDebug.openingStatement.openingQuestion')).toBeInTheDocument()
|
||||
})
|
||||
|
||||
it('should render separate opener and question sections', async () => {
|
||||
await render(
|
||||
<OpeningSettingModal
|
||||
data={defaultData}
|
||||
onSave={vi.fn()}
|
||||
onCancel={vi.fn()}
|
||||
/>,
|
||||
)
|
||||
|
||||
expect(screen.getByTestId('opener-input-section')).toBeInTheDocument()
|
||||
expect(screen.getByTestId('opener-questions-section')).toBeInTheDocument()
|
||||
expect(screen.getByText(/openingStatement\.editorTitle/)).toBeInTheDocument()
|
||||
expect(screen.getByTestId('opening-questions-tooltip')).toBeInTheDocument()
|
||||
expect(screen.queryByText(/openingStatement\.openingQuestionDescription/)).not.toBeInTheDocument()
|
||||
})
|
||||
|
||||
it('should show the opening questions description in a tooltip', async () => {
|
||||
await render(
|
||||
<OpeningSettingModal
|
||||
data={defaultData}
|
||||
onSave={vi.fn()}
|
||||
onCancel={vi.fn()}
|
||||
/>,
|
||||
)
|
||||
|
||||
act(() => {
|
||||
fireEvent.mouseEnter(screen.getByTestId('opening-questions-tooltip'))
|
||||
})
|
||||
|
||||
expect(screen.getByText(/openingStatement\.openingQuestionDescription/)).toBeInTheDocument()
|
||||
})
|
||||
|
||||
it('should call onAutoAddPromptVariable when confirm add is clicked', async () => {
|
||||
@@ -540,7 +592,9 @@ describe('OpeningSettingModal', () => {
|
||||
|
||||
const editor = getPromptEditor()
|
||||
expect(editor.textContent?.trim()).toBe('')
|
||||
expect(screen.getByText('appDebug.openingStatement.placeholder')).toBeInTheDocument()
|
||||
const openerSection = screen.getByTestId('opener-input-section')
|
||||
expect(openerSection.textContent).toContain('appDebug.openingStatement.placeholderLine1')
|
||||
expect(openerSection.textContent).toContain('appDebug.openingStatement.placeholderLine2')
|
||||
})
|
||||
|
||||
it('should render with empty suggested questions when field is missing', async () => {
|
||||
|
||||
@@ -102,7 +102,7 @@ const ConversationOpener = ({
|
||||
<>
|
||||
{!isHovering && (
|
||||
<div className="line-clamp-2 min-h-8 system-xs-regular text-text-tertiary">
|
||||
{opening.opening_statement || t('openingStatement.placeholder', { ns: 'appDebug' })}
|
||||
{opening.opening_statement || t('openingStatement.placeholderLine1', { ns: 'appDebug' })}
|
||||
</div>
|
||||
)}
|
||||
{isHovering && (
|
||||
|
||||
@@ -3,8 +3,9 @@ import type { InputVar } from '@/app/components/workflow/types'
|
||||
import type { PromptVariable } from '@/models/debug'
|
||||
import { Button } from '@langgenius/dify-ui/button'
|
||||
import { cn } from '@langgenius/dify-ui/cn'
|
||||
import { Dialog, DialogContent } from '@langgenius/dify-ui/dialog'
|
||||
import { Tooltip, TooltipContent, TooltipTrigger } from '@langgenius/dify-ui/tooltip'
|
||||
import { useBoolean } from 'ahooks'
|
||||
import { noop } from 'es-toolkit/function'
|
||||
import { produce } from 'immer'
|
||||
import * as React from 'react'
|
||||
import { useCallback, useEffect, useMemo, useState } from 'react'
|
||||
@@ -13,7 +14,6 @@ import { ReactSortable } from 'react-sortablejs'
|
||||
import ConfirmAddVar from '@/app/components/app/configuration/config-prompt/confirm-add-var'
|
||||
import { getInputKeys } from '@/app/components/base/block-input'
|
||||
import Divider from '@/app/components/base/divider'
|
||||
import Modal from '@/app/components/base/modal'
|
||||
import PromptEditor from '@/app/components/base/prompt-editor'
|
||||
import { checkKeys, getNewVar } from '@/utils/var'
|
||||
|
||||
@@ -39,6 +39,7 @@ const OpeningSettingModal = ({
|
||||
const { t } = useTranslation()
|
||||
const [tempValue, setTempValue] = useState(data?.opening_statement || '')
|
||||
useEffect(() => {
|
||||
// eslint-disable-next-line react/set-state-in-effect
|
||||
setTempValue(data.opening_statement || '')
|
||||
}, [data.opening_statement])
|
||||
const [tempSuggestedQuestions, setTempSuggestedQuestions] = useState(data.suggested_questions || [])
|
||||
@@ -99,22 +100,49 @@ const OpeningSettingModal = ({
|
||||
|
||||
const [focusID, setFocusID] = useState<number | null>(null)
|
||||
const [deletingID, setDeletingID] = useState<number | null>(null)
|
||||
const [autoFocusQuestionID, setAutoFocusQuestionID] = useState<number | null>(null)
|
||||
const openerPlaceholder = (
|
||||
<span className="block break-words whitespace-pre-wrap">
|
||||
{t('openingStatement.placeholderLine1', { ns: 'appDebug' })}
|
||||
<br />
|
||||
{t('openingStatement.placeholderLine2', { ns: 'appDebug' })}
|
||||
</span>
|
||||
)
|
||||
|
||||
const renderQuestions = () => {
|
||||
return (
|
||||
<div>
|
||||
<div className="flex items-center py-2">
|
||||
<div className="flex shrink-0 space-x-0.5 text-xs leading-[18px] font-medium text-text-tertiary">
|
||||
<div className="uppercase">{t('openingStatement.openingQuestion', { ns: 'appDebug' })}</div>
|
||||
<div>·</div>
|
||||
<div>
|
||||
{tempSuggestedQuestions.length}
|
||||
/
|
||||
{MAX_QUESTION_NUM}
|
||||
<div className="mb-3 flex items-center justify-between">
|
||||
<div className="flex items-center gap-1">
|
||||
<div className="text-sm font-medium text-text-primary">
|
||||
{t('openingStatement.openingQuestion', { ns: 'appDebug' })}
|
||||
</div>
|
||||
<Tooltip>
|
||||
<TooltipTrigger
|
||||
delay={0}
|
||||
render={(
|
||||
<button
|
||||
type="button"
|
||||
className="flex items-center rounded-sm p-px text-text-quaternary hover:text-text-tertiary"
|
||||
data-testid="opening-questions-tooltip"
|
||||
aria-label={t('openingStatement.openingQuestionDescription', { ns: 'appDebug' })}
|
||||
>
|
||||
<span className="i-ri-question-line h-3.5 w-3.5" />
|
||||
</button>
|
||||
)}
|
||||
/>
|
||||
<TooltipContent className="max-w-[220px] system-sm-regular text-text-secondary">
|
||||
{t('openingStatement.openingQuestionDescription', { ns: 'appDebug' })}
|
||||
</TooltipContent>
|
||||
</Tooltip>
|
||||
</div>
|
||||
<div className="text-xs leading-[18px] font-medium text-text-tertiary">
|
||||
{tempSuggestedQuestions.length}
|
||||
/
|
||||
{MAX_QUESTION_NUM}
|
||||
</div>
|
||||
<Divider bgStyle="gradient" className="ml-3 h-px w-0 grow" />
|
||||
</div>
|
||||
<Divider bgStyle="gradient" className="mb-3 h-px" />
|
||||
<ReactSortable
|
||||
className="space-y-1"
|
||||
list={tempSuggestedQuestions.map((name, index) => {
|
||||
@@ -133,8 +161,8 @@ const OpeningSettingModal = ({
|
||||
<div
|
||||
className={cn(
|
||||
'group relative flex items-center rounded-lg border border-components-panel-border-subtle bg-components-panel-on-panel-item-bg pl-2.5 hover:bg-components-panel-on-panel-item-bg-hover',
|
||||
focusID === index && 'border-components-input-border-active bg-components-input-bg-active hover:border-components-input-border-active hover:bg-components-input-bg-active',
|
||||
deletingID === index && 'border-components-input-border-destructive bg-state-destructive-hover hover:border-components-input-border-destructive hover:bg-state-destructive-hover',
|
||||
focusID === index && 'border-components-input-border-active bg-components-input-bg-active hover:border-components-input-border-active hover:bg-components-input-bg-active',
|
||||
)}
|
||||
key={index}
|
||||
>
|
||||
@@ -152,8 +180,13 @@ const OpeningSettingModal = ({
|
||||
return item
|
||||
}))
|
||||
}}
|
||||
autoFocus={autoFocusQuestionID === index}
|
||||
className="h-9 w-full grow cursor-pointer overflow-x-auto rounded-lg border-0 bg-transparent pr-8 pl-1.5 text-sm leading-9 text-text-secondary focus:outline-hidden"
|
||||
onFocus={() => setFocusID(index)}
|
||||
onFocus={() => {
|
||||
setFocusID(index)
|
||||
if (autoFocusQuestionID === index)
|
||||
setAutoFocusQuestionID(null)
|
||||
}}
|
||||
onBlur={() => setFocusID(null)}
|
||||
/>
|
||||
|
||||
@@ -173,7 +206,12 @@ const OpeningSettingModal = ({
|
||||
</ReactSortable>
|
||||
{tempSuggestedQuestions.length < MAX_QUESTION_NUM && (
|
||||
<div
|
||||
onClick={() => { setTempSuggestedQuestions([...tempSuggestedQuestions, '']) }}
|
||||
onClick={() => {
|
||||
const nextIndex = tempSuggestedQuestions.length
|
||||
setDeletingID(null)
|
||||
setAutoFocusQuestionID(nextIndex)
|
||||
setTempSuggestedQuestions([...tempSuggestedQuestions, ''])
|
||||
}}
|
||||
className="mt-1 flex h-9 cursor-pointer items-center gap-2 rounded-lg bg-components-button-tertiary-bg px-3 text-components-button-tertiary-text hover:bg-components-button-tertiary-bg-hover"
|
||||
>
|
||||
<span className="i-ri-add-line h-4 w-4" />
|
||||
@@ -185,81 +223,90 @@ const OpeningSettingModal = ({
|
||||
}
|
||||
|
||||
return (
|
||||
<Modal
|
||||
isShow
|
||||
onClose={noop}
|
||||
className="mt-14! w-[640px]! max-w-none! bg-components-panel-bg-blur! p-6!"
|
||||
>
|
||||
<div className="mb-6 flex items-center justify-between">
|
||||
<div className="title-2xl-semi-bold text-text-primary">{t('feature.conversationOpener.title', { ns: 'appDebug' })}</div>
|
||||
<div
|
||||
className="cursor-pointer p-1"
|
||||
onClick={onCancel}
|
||||
data-testid="close-modal"
|
||||
role="button"
|
||||
tabIndex={0}
|
||||
onKeyDown={(e) => {
|
||||
if (e.key === 'Enter' || e.key === ' ') {
|
||||
e.preventDefault()
|
||||
onCancel()
|
||||
}
|
||||
}}
|
||||
>
|
||||
<span className="i-ri-close-line h-4 w-4 text-text-tertiary" />
|
||||
</div>
|
||||
</div>
|
||||
<div className="mb-8 flex gap-2">
|
||||
<div className="mt-1.5 h-8 w-8 shrink-0 rounded-lg border-components-panel-border bg-util-colors-orange-dark-orange-dark-500 p-1.5">
|
||||
<span className="i-ri-asterisk h-5 w-5 text-text-primary-on-surface" />
|
||||
</div>
|
||||
<div className="grow rounded-2xl border-t border-divider-subtle bg-chat-bubble-bg p-3 shadow-xs">
|
||||
<PromptEditor
|
||||
value={tempValue}
|
||||
onChange={setTempValue}
|
||||
placeholder={t('openingStatement.placeholder', { ns: 'appDebug' }) as string}
|
||||
variableBlock={{
|
||||
show: true,
|
||||
variables: [
|
||||
// Prompt variables
|
||||
...promptVariables.map(item => ({
|
||||
name: item.name || item.key,
|
||||
value: item.key,
|
||||
})),
|
||||
// Workflow variables
|
||||
...workflowVariables.map(item => ({
|
||||
name: item.variable,
|
||||
value: item.variable,
|
||||
})),
|
||||
],
|
||||
<Dialog open onOpenChange={open => !open && onCancel()} disablePointerDismissal>
|
||||
<DialogContent className="mt-14 w-[640px] max-w-none rounded-2xl bg-components-panel-bg-blur p-6">
|
||||
<div className="mb-6 flex items-center justify-between">
|
||||
<div className="title-2xl-semi-bold text-text-primary">{t('feature.conversationOpener.title', { ns: 'appDebug' })}</div>
|
||||
<div
|
||||
className="cursor-pointer p-1"
|
||||
onClick={onCancel}
|
||||
data-testid="close-modal"
|
||||
role="button"
|
||||
tabIndex={0}
|
||||
onKeyDown={(e) => {
|
||||
if (e.key === 'Enter' || e.key === ' ') {
|
||||
e.preventDefault()
|
||||
onCancel()
|
||||
}
|
||||
}}
|
||||
/>
|
||||
{renderQuestions()}
|
||||
>
|
||||
<span className="i-ri-close-line h-4 w-4 text-text-tertiary" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="flex items-center justify-end">
|
||||
<Button
|
||||
onClick={onCancel}
|
||||
className="mr-2"
|
||||
>
|
||||
{t('operation.cancel', { ns: 'common' })}
|
||||
</Button>
|
||||
<Button
|
||||
variant="primary"
|
||||
onClick={() => handleSave()}
|
||||
disabled={isSaveDisabled}
|
||||
>
|
||||
{t('operation.save', { ns: 'common' })}
|
||||
</Button>
|
||||
</div>
|
||||
{isShowConfirmAddVar && (
|
||||
<ConfirmAddVar
|
||||
varNameArr={notIncludeKeys}
|
||||
onConfirm={autoAddVar}
|
||||
onCancel={cancelAutoAddVar}
|
||||
onHide={hideConfirmAddVar}
|
||||
/>
|
||||
)}
|
||||
</Modal>
|
||||
<div className="mb-8 space-y-4">
|
||||
<div
|
||||
data-testid="opener-input-section"
|
||||
className="py-2"
|
||||
>
|
||||
<div className="mb-3 text-sm font-medium text-text-primary">
|
||||
{t('openingStatement.editorTitle', { ns: 'appDebug' })}
|
||||
</div>
|
||||
<div className="relative min-h-[80px] rounded-lg bg-components-input-bg-normal px-3 py-2">
|
||||
<PromptEditor
|
||||
value={tempValue}
|
||||
onChange={setTempValue}
|
||||
placeholder={openerPlaceholder}
|
||||
placeholderClassName="!overflow-visible !whitespace-pre-wrap !text-clip break-words pr-8"
|
||||
variableBlock={{
|
||||
show: true,
|
||||
variables: [
|
||||
// Prompt variables
|
||||
...promptVariables.map(item => ({
|
||||
name: item.name || item.key,
|
||||
value: item.key,
|
||||
})),
|
||||
// Workflow variables
|
||||
...workflowVariables.map(item => ({
|
||||
name: item.variable,
|
||||
value: item.variable,
|
||||
})),
|
||||
],
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
data-testid="opener-questions-section"
|
||||
className="py-2"
|
||||
>
|
||||
{renderQuestions()}
|
||||
</div>
|
||||
</div>
|
||||
<div className="flex items-center justify-end">
|
||||
<Button
|
||||
onClick={onCancel}
|
||||
className="mr-2"
|
||||
>
|
||||
{t('operation.cancel', { ns: 'common' })}
|
||||
</Button>
|
||||
<Button
|
||||
variant="primary"
|
||||
onClick={() => handleSave()}
|
||||
disabled={isSaveDisabled}
|
||||
>
|
||||
{t('operation.save', { ns: 'common' })}
|
||||
</Button>
|
||||
</div>
|
||||
{isShowConfirmAddVar && (
|
||||
<ConfirmAddVar
|
||||
varNameArr={notIncludeKeys}
|
||||
onConfirm={autoAddVar}
|
||||
onCancel={cancelAutoAddVar}
|
||||
onHide={hideConfirmAddVar}
|
||||
/>
|
||||
)}
|
||||
</DialogContent>
|
||||
</Dialog>
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
@@ -252,11 +252,14 @@
|
||||
"notSetAPIKey.trailFinished": "انتهت التجربة",
|
||||
"notSetVar": "تسمح المتغيرات للمستخدمين بتقديم كلمات مطالبة أو ملاحظات افتتاحية عند ملء النماذج. يمكنك محاولة إدخال \"{{input}}\" في كلمات المطالبة.",
|
||||
"openingStatement.add": "إضافة",
|
||||
"openingStatement.editorTitle": "رسالة الافتتاح",
|
||||
"openingStatement.noDataPlaceHolder": "يمكن أن يساعد بدء المحادثة مع المستخدم الذكاء الاصطناعي على إنشاء اتصال أوثق معهم في تطبيقات المحادثة.",
|
||||
"openingStatement.notIncludeKey": "لا تتضمن المطالبة الأولية المتغير: {{key}}. يرجى إضافته إلى المطالبة الأولية.",
|
||||
"openingStatement.openingQuestion": "أسئلة افتتاحية",
|
||||
"openingStatement.openingQuestionPlaceholder": "يمكنك استخدام المتغيرات، حاول كتابة {{variable}}.",
|
||||
"openingStatement.placeholder": "اكتب رسالتك الافتتاحية هنا، يمكنك استخدام المتغيرات، حاول كتابة {{variable}}.",
|
||||
"openingStatement.openingQuestionDescription": "مطالبات اختيارية تظهر بعد الرسالة الافتتاحية لمساعدة المستخدمين على متابعة المحادثة.",
|
||||
"openingStatement.openingQuestionPlaceholder": "أدخل سؤالاً افتتاحياً.",
|
||||
"openingStatement.placeholderLine1": "ابدأ من هنا. اكتب الرسالة الأولى التي يجب أن يرسلها الذكاء الاصطناعي.",
|
||||
"openingStatement.placeholderLine2": "يمكنك استخدام المتغيرات، حاول كتابة {{variable}}.",
|
||||
"openingStatement.title": "فاتحة المحادثة",
|
||||
"openingStatement.tooShort": "مطلوب ما لا يقل عن 20 كلمة من المطالبة الأولية لإنشاء ملاحظات افتتاحية للمحادثة.",
|
||||
"openingStatement.varTip": "يمكنك استخدام المتغيرات، حاول كتابة {{variable}}",
|
||||
|
||||
@@ -252,11 +252,14 @@
|
||||
"notSetAPIKey.trailFinished": "Testversion beendet",
|
||||
"notSetVar": "Variablen ermöglichen es Benutzern, Aufforderungswörter oder Eröffnungsbemerkungen einzuführen, wenn sie Formulare ausfüllen. Sie könnten versuchen, \"{{input}}\" im Prompt einzugeben.",
|
||||
"openingStatement.add": "Hinzufügen",
|
||||
"openingStatement.editorTitle": "Eroffnungsnachricht",
|
||||
"openingStatement.noDataPlaceHolder": "Den Dialog mit dem Benutzer zu beginnen, kann helfen, in konversationellen Anwendungen eine engere Verbindung mit ihnen herzustellen.",
|
||||
"openingStatement.notIncludeKey": "Das Anfangsprompt enthält nicht die Variable: {{key}}. Bitte fügen Sie sie dem Anfangsprompt hinzu.",
|
||||
"openingStatement.openingQuestion": "Eröffnungsfragen",
|
||||
"openingStatement.openingQuestionPlaceholder": "Sie können Variablen verwenden, versuchen Sie {{variable}} einzugeben.",
|
||||
"openingStatement.placeholder": "Schreiben Sie hier Ihre Eröffnungsnachricht, Sie können Variablen verwenden, versuchen Sie {{variable}} zu tippen.",
|
||||
"openingStatement.openingQuestionDescription": "Optionale Vorschlage, die nach der Eroffnungsnachricht angezeigt werden, damit Benutzer das Gesprach leichter fortsetzen konnen.",
|
||||
"openingStatement.openingQuestionPlaceholder": "Geben Sie eine Einstiegsfrage ein.",
|
||||
"openingStatement.placeholderLine1": "Beginnen Sie hier. Schreiben Sie die erste Nachricht, die die KI senden soll.",
|
||||
"openingStatement.placeholderLine2": "Sie können Variablen verwenden, versuchen Sie {{variable}} einzugeben.",
|
||||
"openingStatement.title": "Gesprächseröffner",
|
||||
"openingStatement.tooShort": "Für die Erzeugung von Eröffnungsbemerkungen für das Gespräch werden mindestens 20 Wörter des Anfangsprompts benötigt.",
|
||||
"openingStatement.varTip": "Sie können Variablen verwenden, versuchen Sie {{variable}} zu tippen",
|
||||
|
||||
@@ -252,11 +252,14 @@
|
||||
"notSetAPIKey.trailFinished": "Trail finished",
|
||||
"notSetVar": "Variables allow users to introduce prompt words or opening remarks when filling out forms. You can try entering \"{{input}}\" in the prompt words.",
|
||||
"openingStatement.add": "Add",
|
||||
"openingStatement.editorTitle": "Opener Message",
|
||||
"openingStatement.noDataPlaceHolder": "Starting the conversation with the user can help AI establish a closer connection with them in conversational applications.",
|
||||
"openingStatement.notIncludeKey": "The initial prompt does not include the variable: {{key}}. Please add it to the initial prompt.",
|
||||
"openingStatement.openingQuestion": "Opening Questions",
|
||||
"openingStatement.openingQuestionPlaceholder": "You can use variables, try typing {{variable}}.",
|
||||
"openingStatement.placeholder": "Write your opener message here, you can use variables, try type {{variable}}.",
|
||||
"openingStatement.openingQuestionDescription": "Optional prompts shown after the opener to help users continue the conversation.",
|
||||
"openingStatement.openingQuestionPlaceholder": "Enter an opening question.",
|
||||
"openingStatement.placeholderLine1": "Start here. Write the first message the AI should send.",
|
||||
"openingStatement.placeholderLine2": "You can use variables, try typing {{variable}}.",
|
||||
"openingStatement.title": "Conversation Opener",
|
||||
"openingStatement.tooShort": "At least 20 words of initial prompt are required to generate an opening remarks for the conversation.",
|
||||
"openingStatement.varTip": "You can use variables, try type {{variable}}",
|
||||
|
||||
@@ -252,11 +252,14 @@
|
||||
"notSetAPIKey.trailFinished": "Prueba terminada",
|
||||
"notSetVar": "Las variables permiten a los usuarios introducir palabras de indicación u observaciones de apertura al completar formularios. Puedes intentar ingresar \"{{input}}\" en las palabras de indicación.",
|
||||
"openingStatement.add": "Agregar",
|
||||
"openingStatement.editorTitle": "Mensaje de apertura",
|
||||
"openingStatement.noDataPlaceHolder": "Iniciar la conversación con el usuario puede ayudar a la IA a establecer una conexión más cercana con ellos en aplicaciones de conversación.",
|
||||
"openingStatement.notIncludeKey": "La indicación inicial no incluye la variable: {{key}}. Por favor agrégala a la indicación inicial.",
|
||||
"openingStatement.openingQuestion": "Preguntas de Apertura",
|
||||
"openingStatement.openingQuestionPlaceholder": "Puede usar variables, intente escribir {{variable}}.",
|
||||
"openingStatement.placeholder": "Escribe tu mensaje de apertura aquí, puedes usar variables, intenta escribir {{variable}}.",
|
||||
"openingStatement.openingQuestionDescription": "Sugerencias opcionales que se muestran despues del mensaje de apertura para ayudar a los usuarios a continuar la conversacion.",
|
||||
"openingStatement.openingQuestionPlaceholder": "Introduce una pregunta de apertura.",
|
||||
"openingStatement.placeholderLine1": "Empieza aqui. Escribe el primer mensaje que la IA debe enviar.",
|
||||
"openingStatement.placeholderLine2": "Puede usar variables, intente escribir {{variable}}.",
|
||||
"openingStatement.title": "Apertura de Conversación",
|
||||
"openingStatement.tooShort": "Se requieren al menos 20 palabras en la indicación inicial para generar una apertura de conversación.",
|
||||
"openingStatement.varTip": "Puedes usar variables, intenta escribir {{variable}}",
|
||||
|
||||
@@ -252,11 +252,14 @@
|
||||
"notSetAPIKey.trailFinished": "آزمایش تمام شد",
|
||||
"notSetVar": "متغیرها به کاربران امکان میدهند تا هنگام پر کردن فرمها، کلمات راهنما یا سخنان افتتاحیه را وارد کنند. میتوانید امتحان کنید که '{{input}}' را در کلمات راهنما وارد کنید.",
|
||||
"openingStatement.add": "اضافه کردن",
|
||||
"openingStatement.editorTitle": "پیام آغازین",
|
||||
"openingStatement.noDataPlaceHolder": "شروع مکالمه با کاربر می تواند به هوش مصنوعی کمک کند تا در برنامه های مکالمه ارتباط نزدیک تری با آنها برقرار کند.",
|
||||
"openingStatement.notIncludeKey": "پیام اولیه شامل متغیر {{key}} نیست. لطفاً آن را به پیام اولیه اضافه کنید.",
|
||||
"openingStatement.openingQuestion": "سوالات آغازین",
|
||||
"openingStatement.openingQuestionPlaceholder": "میتوانید از متغیرها استفاده کنید، امتحان کنید {{variable}} را تایپ کنید.",
|
||||
"openingStatement.placeholder": "پیام شروع خود را اینجا بنویسید، میتوانید از متغیرها استفاده کنید، امتحان کنید تایپ {{variable}}.",
|
||||
"openingStatement.openingQuestionDescription": "پیشنهادهای اختیاری که پس از پیام آغازین نمایش داده می شوند تا به کاربران در ادامه گفتگو کمک کنند.",
|
||||
"openingStatement.openingQuestionPlaceholder": "یک سوال آغازین وارد کنید.",
|
||||
"openingStatement.placeholderLine1": "از اینجا شروع کنید. اولین پیامی را که هوش مصنوعی باید ارسال کند بنویسید.",
|
||||
"openingStatement.placeholderLine2": "میتوانید از متغیرها استفاده کنید، امتحان کنید {{variable}} را تایپ کنید.",
|
||||
"openingStatement.title": "افتتاحیه مکالمه",
|
||||
"openingStatement.tooShort": "حداقل 20 کلمه درخواست اولیه برای ایجاد یک سخنرانی آغازین برای مکالمه مورد نیاز است.",
|
||||
"openingStatement.varTip": "میتوانید از متغیرها استفاده کنید، نوع {{variable}} را امتحان کنید",
|
||||
|
||||
@@ -252,11 +252,14 @@
|
||||
"notSetAPIKey.trailFinished": "Parcours terminé",
|
||||
"notSetVar": "Les variables permettent aux utilisateurs d'introduire des mots de prompt ou des remarques d'ouverture lors du remplissage des formulaires. Vous pouvez essayer de saisir \"{{input}}\" dans les mots de prompt.",
|
||||
"openingStatement.add": "Ajouter",
|
||||
"openingStatement.editorTitle": "Message d'ouverture",
|
||||
"openingStatement.noDataPlaceHolder": "Commencer la conversation avec l'utilisateur peut aider l'IA à établir une connexion plus proche avec eux dans les applications conversationnelles.",
|
||||
"openingStatement.notIncludeKey": "The initial prompt does not include the variable: {{key}}. Please add it to the initial prompt.",
|
||||
"openingStatement.openingQuestion": "Questions d'ouverture",
|
||||
"openingStatement.openingQuestionPlaceholder": "Vous pouvez utiliser des variables, essayez de taper {{variable}}.",
|
||||
"openingStatement.placeholder": "Rédigez votre message d'ouverture ici, vous pouvez utiliser des variables, essayez de taper {{variable}}.",
|
||||
"openingStatement.openingQuestionDescription": "Suggestions facultatives affichees apres le message d'ouverture pour aider les utilisateurs a poursuivre la conversation.",
|
||||
"openingStatement.openingQuestionPlaceholder": "Saisissez une question d'ouverture.",
|
||||
"openingStatement.placeholderLine1": "Commencez ici. Redigez le premier message que l'IA doit envoyer.",
|
||||
"openingStatement.placeholderLine2": "Vous pouvez utiliser des variables, essayez de taper {{variable}}.",
|
||||
"openingStatement.title": "Ouverture de Conversation",
|
||||
"openingStatement.tooShort": "Au moins 20 mots de l'invite initiale sont requis pour générer des remarques d'ouverture pour la conversation.",
|
||||
"openingStatement.varTip": "Vous pouvez utiliser des variables, essayez de taper {{variable}}",
|
||||
|
||||
@@ -252,11 +252,14 @@
|
||||
"notSetAPIKey.trailFinished": "परीक्षण समाप्त",
|
||||
"notSetVar": "वेरिएबल्स उपयोगकर्ताओं को फॉर्म भरते समय प्रॉम्प्ट शब्द या प्रारंभिक टिप्पणी प्रस्तुत करने की अनुमति देते हैं। आप प्रॉम्प्ट शब्दों में '{{input}}' दर्ज करने का प्रयास कर सकते हैं।",
|
||||
"openingStatement.add": "जोड़ें",
|
||||
"openingStatement.editorTitle": "प्रारंभिक संदेश",
|
||||
"openingStatement.noDataPlaceHolder": "उपयोगकर्ता के साथ संवाद प्रारंभ करने से एआई को संवादात्मक अनुप्रयोगों में उनके साथ निकट संबंध स्थापित करने में मदद मिल सकती है।",
|
||||
"openingStatement.notIncludeKey": "प्रारंभिक प्रॉम्प्ट में वेरिएबल शामिल नहीं है: {{key}}। कृपया इसे प्रारंभिक प्रॉम्प्ट में जोड़ें।",
|
||||
"openingStatement.openingQuestion": "प्रारंभिक प्रश्न",
|
||||
"openingStatement.openingQuestionPlaceholder": "आप वेरिएबल्स का उपयोग कर सकते हैं, {{variable}} टाइप करके देखें।",
|
||||
"openingStatement.placeholder": "यहां अपना प्रारंभक संदेश लिखें, आप वेरिएबल्स का उपयोग कर सकते हैं, {{variable}} टाइप करने का प्रयास करें।",
|
||||
"openingStatement.openingQuestionDescription": "वैकल्पिक संकेत, जो ओपनर के बाद दिखते हैं और उपयोगकर्ताओं को बातचीत जारी रखने में मदद करते हैं।",
|
||||
"openingStatement.openingQuestionPlaceholder": "एक शुरुआती प्रश्न लिखें।",
|
||||
"openingStatement.placeholderLine1": "यहाँ से शुरू करें। वह पहला संदेश लिखें जो AI को भेजना चाहिए।",
|
||||
"openingStatement.placeholderLine2": "आप वेरिएबल्स का उपयोग कर सकते हैं, {{variable}} टाइप करके देखें।",
|
||||
"openingStatement.title": "संवाद प्रारंभक",
|
||||
"openingStatement.tooShort": "संवाद प्रारंभ करने के लिए कम से कम 20 शब्दों के प्रारंभिक प्रॉम्प्ट की आवश्यकता होती है।",
|
||||
"openingStatement.varTip": "आप वेरिएबल्स का उपयोग कर सकते हैं, {{variable}} टाइप करने का प्रयास करें",
|
||||
|
||||
@@ -252,11 +252,14 @@
|
||||
"notSetAPIKey.trailFinished": "Jejak selesai",
|
||||
"notSetVar": "Variabel memungkinkan pengguna untuk memasukkan kata pemicu atau ucapan pembuka saat mengisi formulir. Anda dapat mencoba memasukkan \"{{input}}\" pada kata pemicu.",
|
||||
"openingStatement.add": "Tambah",
|
||||
"openingStatement.editorTitle": "Pesan Pembuka",
|
||||
"openingStatement.noDataPlaceHolder": "Memulai percakapan dengan pengguna dapat membantu AI menjalin hubungan yang lebih dekat dengan mereka dalam aplikasi percakapan.",
|
||||
"openingStatement.notIncludeKey": "Prompt awal tidak menyertakan variabel: {{key}}. Harap tambahkan ke prompt awal.",
|
||||
"openingStatement.openingQuestion": "Pertanyaan Pembuka",
|
||||
"openingStatement.openingQuestionPlaceholder": "Anda bisa menggunakan variabel, coba ketik {{variable}}.",
|
||||
"openingStatement.placeholder": "Tulis pesan pembuka Anda di sini, Anda bisa menggunakan variabel, coba ketik {{variable}}.",
|
||||
"openingStatement.openingQuestionDescription": "Prompt opsional yang ditampilkan setelah pesan pembuka untuk membantu pengguna melanjutkan percakapan.",
|
||||
"openingStatement.openingQuestionPlaceholder": "Masukkan pertanyaan pembuka.",
|
||||
"openingStatement.placeholderLine1": "Mulai dari sini. Tulis pesan pertama yang harus dikirim AI.",
|
||||
"openingStatement.placeholderLine2": "Anda bisa menggunakan variabel, coba ketik {{variable}}.",
|
||||
"openingStatement.title": "Pembuka Percakapan",
|
||||
"openingStatement.tooShort": "Setidaknya 20 kata prompt awal diperlukan untuk menghasilkan pidato pembuka untuk percakapan.",
|
||||
"openingStatement.varTip": "Anda dapat menggunakan variabel, coba ketik {{variable}}",
|
||||
|
||||
@@ -252,11 +252,14 @@
|
||||
"notSetAPIKey.trailFinished": "Periodo di prova terminato",
|
||||
"notSetVar": "Le variabili consentono agli utenti di introdurre parole del prompt o osservazioni di apertura quando compilano i moduli. Puoi provare a inserire `{{input}}` nelle parole del prompt.",
|
||||
"openingStatement.add": "Aggiungi",
|
||||
"openingStatement.editorTitle": "Messaggio iniziale",
|
||||
"openingStatement.noDataPlaceHolder": "Iniziare la conversazione con l'utente può aiutare l'IA a stabilire un legame più stretto con loro nelle applicazioni conversazionali.",
|
||||
"openingStatement.notIncludeKey": "Il prompt iniziale non include la variabile: {{key}}. Per favore aggiungila al prompt iniziale.",
|
||||
"openingStatement.openingQuestion": "Domande iniziali",
|
||||
"openingStatement.openingQuestionPlaceholder": "Puoi usare variabili, prova a digitare {{variable}}.",
|
||||
"openingStatement.placeholder": "Scrivi qui il tuo messaggio introduttivo, puoi usare variabili, prova a scrivere {{variable}}.",
|
||||
"openingStatement.openingQuestionDescription": "Suggerimenti opzionali mostrati dopo il messaggio iniziale per aiutare gli utenti a continuare la conversazione.",
|
||||
"openingStatement.openingQuestionPlaceholder": "Inserisci una domanda iniziale.",
|
||||
"openingStatement.placeholderLine1": "Inizia da qui. Scrivi il primo messaggio che l'IA dovrebbe inviare.",
|
||||
"openingStatement.placeholderLine2": "Puoi usare variabili, prova a digitare {{variable}}.",
|
||||
"openingStatement.title": "Iniziatore di conversazione",
|
||||
"openingStatement.tooShort": "Sono richieste almeno 20 parole di prompt iniziale per generare un'introduzione alla conversazione.",
|
||||
"openingStatement.varTip": "Puoi usare variabili, prova a scrivere {{variable}}",
|
||||
|
||||
@@ -252,11 +252,14 @@
|
||||
"notSetAPIKey.trailFinished": "トライアル終了",
|
||||
"notSetVar": "変数を使用すると、ユーザーはフォームに入力する際にプロンプトの単語や開始の言葉を導入できます。プロンプトの単語に \"{{input}}\" を入力してみてください。",
|
||||
"openingStatement.add": "追加",
|
||||
"openingStatement.editorTitle": "オープナーメッセージ",
|
||||
"openingStatement.noDataPlaceHolder": "ユーザーとの会話を開始すると、会話アプリケーションで彼らとのより密接な関係を築くのに役立ちます。",
|
||||
"openingStatement.notIncludeKey": "初期プロンプトに変数 {{key}} が含まれていません。初期プロンプトに追加してください。",
|
||||
"openingStatement.openingQuestion": "開始質問",
|
||||
"openingStatement.openingQuestionPlaceholder": "変数を使用できます。{{variable}} と入力してみてください。",
|
||||
"openingStatement.placeholder": "ここにオープナーメッセージを書いてください。変数を使用できます。{{variable}} を入力してみてください。",
|
||||
"openingStatement.openingQuestionDescription": "会話のきっかけの後に表示される任意の候補で、ユーザーが会話を続けやすくするためのものです。",
|
||||
"openingStatement.openingQuestionPlaceholder": "開始用の質問を入力してください。",
|
||||
"openingStatement.placeholderLine1": "ここから始めましょう。AI が最初に送るメッセージを書いてください。",
|
||||
"openingStatement.placeholderLine2": "変数を使用できます。{{variable}} と入力してみてください。",
|
||||
"openingStatement.title": "会話開始",
|
||||
"openingStatement.tooShort": "会話の開始には少なくとも 20 単語の初期プロンプトが必要です。",
|
||||
"openingStatement.varTip": "変数を使用できます。{{variable}} を入力してみてください",
|
||||
|
||||
@@ -252,11 +252,14 @@
|
||||
"notSetAPIKey.trailFinished": "트라이얼 종료",
|
||||
"notSetVar": "변수를 사용하면 사용자는 양식에 입력할 때 프롬프트의 단어나 시작 단어를 소개할 수 있습니다. \"{{input}}\"을 프롬프트 단어에 입력해 보세요.",
|
||||
"openingStatement.add": "추가",
|
||||
"openingStatement.editorTitle": "오프너 메시지",
|
||||
"openingStatement.noDataPlaceHolder": "사용자와의 대화를 시작하면 대화 애플리케이션에서 그들과 더 밀접한 관계를 구축하는 데 도움이 됩니다.",
|
||||
"openingStatement.notIncludeKey": "초기 프롬프트에 변수 {{key}}가 포함되어 있지 않습니다. 초기 프롬프트에 추가하세요.",
|
||||
"openingStatement.openingQuestion": "시작 질문",
|
||||
"openingStatement.openingQuestionPlaceholder": "변수를 사용할 수 있습니다. {{variable}}을(를) 입력해 보세요.",
|
||||
"openingStatement.placeholder": "여기에 오프너 메시지를 작성하세요. 변수를 사용할 수 있습니다. {{variable}}를 입력해보세요.",
|
||||
"openingStatement.openingQuestionDescription": "오프너 뒤에 표시되는 선택형 프롬프트로, 사용자가 대화를 이어가도록 돕습니다.",
|
||||
"openingStatement.openingQuestionPlaceholder": "시작 질문을 입력하세요.",
|
||||
"openingStatement.placeholderLine1": "여기서 시작하세요. AI가 처음으로 보낼 메시지를 작성하세요.",
|
||||
"openingStatement.placeholderLine2": "변수를 사용할 수 있습니다. {{variable}}을(를) 입력해 보세요.",
|
||||
"openingStatement.title": "대화 시작",
|
||||
"openingStatement.tooShort": "대화 시작에는 최소 20 단어의 초기 프롬프트가 필요합니다.",
|
||||
"openingStatement.varTip": "변수를 사용할 수 있습니다. {{variable}}를 입력해보세요.",
|
||||
|
||||
@@ -252,11 +252,14 @@
|
||||
"notSetAPIKey.trailFinished": "Trail finished",
|
||||
"notSetVar": "Variables allow users to introduce prompt words or opening remarks when filling out forms. You can try entering \"{{input}}\" in the prompt words.",
|
||||
"openingStatement.add": "Add",
|
||||
"openingStatement.editorTitle": "Openingsbericht",
|
||||
"openingStatement.noDataPlaceHolder": "Starting the conversation with the user can help AI establish a closer connection with them in conversational applications.",
|
||||
"openingStatement.notIncludeKey": "The initial prompt does not include the variable: {{key}}. Please add it to the initial prompt.",
|
||||
"openingStatement.openingQuestion": "Opening Questions",
|
||||
"openingStatement.openingQuestionPlaceholder": "You can use variables, try typing {{variable}}.",
|
||||
"openingStatement.placeholder": "Write your opener message here, you can use variables, try type {{variable}}.",
|
||||
"openingStatement.openingQuestionDescription": "Optionele prompts die na het openingsbericht worden getoond om gebruikers te helpen het gesprek voort te zetten.",
|
||||
"openingStatement.openingQuestionPlaceholder": "Voer een openingsvraag in.",
|
||||
"openingStatement.placeholderLine1": "Begin hier. Schrijf het eerste bericht dat de AI moet sturen.",
|
||||
"openingStatement.placeholderLine2": "You can use variables, try typing {{variable}}.",
|
||||
"openingStatement.title": "Conversation Opener",
|
||||
"openingStatement.tooShort": "At least 20 words of initial prompt are required to generate an opening remarks for the conversation.",
|
||||
"openingStatement.varTip": "You can use variables, try type {{variable}}",
|
||||
|
||||
@@ -252,11 +252,14 @@
|
||||
"notSetAPIKey.trailFinished": "Ścieżka zakończona",
|
||||
"notSetVar": "Zmienne pozwalają użytkownikom wprowadzać słowa wstępujące lub otwierające uwagi podczas wypełniania formularzy. Możesz spróbować wpisać \"{{input}}\" w słowach monitu.",
|
||||
"openingStatement.add": "Dodaj",
|
||||
"openingStatement.editorTitle": "Wiadomosc otwierajaca",
|
||||
"openingStatement.noDataPlaceHolder": "Rozpoczynanie rozmowy z użytkownikiem może pomóc AI nawiązać bliższe połączenie z nim w aplikacjach konwersacyjnych.",
|
||||
"openingStatement.notIncludeKey": "Wstępny monit nie zawiera zmiennej: {{key}}. Proszę dodać ją do wstępnego monitu.",
|
||||
"openingStatement.openingQuestion": "Pytania otwierające",
|
||||
"openingStatement.openingQuestionPlaceholder": "Możesz używać zmiennych, spróbuj wpisać {{variable}}.",
|
||||
"openingStatement.placeholder": "Tutaj napisz swoją wiadomość wprowadzającą, możesz użyć zmiennych, spróbuj wpisać {{variable}}.",
|
||||
"openingStatement.openingQuestionDescription": "Opcjonalne podpowiedzi wyswietlane po wiadomosci otwierajacej, aby pomoc uzytkownikom kontynuowac rozmowe.",
|
||||
"openingStatement.openingQuestionPlaceholder": "Wpisz pytanie otwierające.",
|
||||
"openingStatement.placeholderLine1": "Zacznij tutaj. Napisz pierwsza wiadomosc, ktora AI powinno wyslac.",
|
||||
"openingStatement.placeholderLine2": "Możesz używać zmiennych, spróbuj wpisać {{variable}}.",
|
||||
"openingStatement.title": "Wstęp do rozmowy",
|
||||
"openingStatement.tooShort": "Wymagane jest co najmniej 20 słów wstępnego monitu, aby wygenerować uwagi wstępne do rozmowy.",
|
||||
"openingStatement.varTip": "Możesz używać zmiennych, spróbuj wpisać {{variable}}",
|
||||
|
||||
@@ -252,11 +252,14 @@
|
||||
"notSetAPIKey.trailFinished": "Trilha finalizada",
|
||||
"notSetVar": "As variáveis permitem que os usuários introduzam palavras de solicitação ou observações iniciais ao preencher formulários. Você pode tentar digitar \"{{input}}\" nas palavras de solicitação.",
|
||||
"openingStatement.add": "Adicionar",
|
||||
"openingStatement.editorTitle": "Mensagem de abertura",
|
||||
"openingStatement.noDataPlaceHolder": "Iniciar a conversa com o usuário pode ajudar a IA a estabelecer uma conexão mais próxima com eles em aplicativos de conversação.",
|
||||
"openingStatement.notIncludeKey": "O prompt inicial não inclui a variável: {{key}}. Por favor, adicione-a ao prompt inicial.",
|
||||
"openingStatement.openingQuestion": "Perguntas de Abertura",
|
||||
"openingStatement.openingQuestionPlaceholder": "Você pode usar variáveis, tente digitar {{variable}}.",
|
||||
"openingStatement.placeholder": "Escreva sua mensagem de abertura aqui, você pode usar variáveis, tente digitar {{variable}}.",
|
||||
"openingStatement.openingQuestionDescription": "Sugestoes opcionais exibidas apos a mensagem de abertura para ajudar os usuarios a continuar a conversa.",
|
||||
"openingStatement.openingQuestionPlaceholder": "Digite uma pergunta de abertura.",
|
||||
"openingStatement.placeholderLine1": "Comece aqui. Escreva a primeira mensagem que a IA deve enviar.",
|
||||
"openingStatement.placeholderLine2": "Você pode usar variáveis, tente digitar {{variable}}.",
|
||||
"openingStatement.title": "Abertura da Conversa",
|
||||
"openingStatement.tooShort": "São necessárias pelo menos 20 palavras de prompt inicial para gerar observações de abertura para a conversa.",
|
||||
"openingStatement.varTip": "Você pode usar variáveis, tente digitar {{variable}}",
|
||||
|
||||
@@ -252,11 +252,14 @@
|
||||
"notSetAPIKey.trailFinished": "Perioada de încercare a expirat",
|
||||
"notSetVar": "Variabilele permit utilizatorilor să introducă cuvinte de prompt sau remarci de deschidere atunci când completează formulare. Puteți încerca să introduceți \"{{input}}\" în cuvintele de prompt.",
|
||||
"openingStatement.add": "Adăugare",
|
||||
"openingStatement.editorTitle": "Mesaj de deschidere",
|
||||
"openingStatement.noDataPlaceHolder": "Începerea conversației cu utilizatorul poate ajuta AI să stabilească o conexiune mai strânsă cu ei în aplicațiile conversaționale.",
|
||||
"openingStatement.notIncludeKey": "Promptarea inițială nu include variabila: {{key}}. Vă rugăm să o adăugați la promptarea inițială.",
|
||||
"openingStatement.openingQuestion": "Întrebări de deschidere",
|
||||
"openingStatement.openingQuestionPlaceholder": "Puteți utiliza variabile, încercați să tastați {{variable}}.",
|
||||
"openingStatement.placeholder": "Scrieți aici mesajul de deschidere, puteți utiliza variabile, încercați să tastați {{variable}}.",
|
||||
"openingStatement.openingQuestionDescription": "Sugestii optionale afisate dupa mesajul de deschidere pentru a-i ajuta pe utilizatori sa continue conversatia.",
|
||||
"openingStatement.openingQuestionPlaceholder": "Introdu o intrebare de deschidere.",
|
||||
"openingStatement.placeholderLine1": "Incepe aici. Scrie primul mesaj pe care AI-ul ar trebui sa il trimita.",
|
||||
"openingStatement.placeholderLine2": "Puteți utiliza variabile, încercați să tastați {{variable}}.",
|
||||
"openingStatement.title": "Deschizător de conversație",
|
||||
"openingStatement.tooShort": "Este necesară o promptare inițială de cel puțin 20 de cuvinte pentru a genera o remarcă de deschidere a conversației.",
|
||||
"openingStatement.varTip": "Puteți utiliza variabile, încercați să tastați {{variable}}",
|
||||
|
||||
@@ -252,11 +252,14 @@
|
||||
"notSetAPIKey.trailFinished": "Пробный период закончен",
|
||||
"notSetVar": "Переменные позволяют пользователям вводить промпты или вступительные замечания при заполнении форм. Вы можете попробовать ввести \"{{input}}\" в промптах.",
|
||||
"openingStatement.add": "Добавить",
|
||||
"openingStatement.editorTitle": "Стартовое сообщение",
|
||||
"openingStatement.noDataPlaceHolder": "Начало разговора с пользователем может помочь ИИ установить более тесную связь с ним в диалоговых приложениях.",
|
||||
"openingStatement.notIncludeKey": "Начальный промпт не включает переменную: {{key}}. Пожалуйста, добавьте её в начальную промпт.",
|
||||
"openingStatement.openingQuestion": "Начальные вопросы",
|
||||
"openingStatement.openingQuestionPlaceholder": "Вы можете использовать переменные, попробуйте ввести {{variable}}.",
|
||||
"openingStatement.placeholder": "Напишите здесь свое начальное сообщение, вы можете использовать переменные, попробуйте ввести {{variable}}.",
|
||||
"openingStatement.openingQuestionDescription": "Необязательные подсказки, которые показываются после вступительного сообщения и помогают пользователям продолжить разговор.",
|
||||
"openingStatement.openingQuestionPlaceholder": "Введите начальный вопрос.",
|
||||
"openingStatement.placeholderLine1": "Начните здесь. Напишите первое сообщение, которое ИИ должен отправить.",
|
||||
"openingStatement.placeholderLine2": "Вы можете использовать переменные, попробуйте ввести {{variable}}.",
|
||||
"openingStatement.title": "Начальное сообщение",
|
||||
"openingStatement.tooShort": "Для генерации вступительного замечания к разговору требуется не менее 20 слов начального промпта.",
|
||||
"openingStatement.varTip": "Вы можете использовать переменные, попробуйте ввести {{variable}}",
|
||||
|
||||
@@ -252,11 +252,14 @@
|
||||
"notSetAPIKey.trailFinished": "Preizkus končan",
|
||||
"notSetVar": "Spremenljivke uporabnikom omogočajo, da pri izpolnjevanju obrazcev vnesejo začetne besede ali uvodne opombe. Poskusite vnesti \"{{input}}\" v začetne besede.",
|
||||
"openingStatement.add": "Dodati",
|
||||
"openingStatement.editorTitle": "Uvodno sporocilo",
|
||||
"openingStatement.noDataPlaceHolder": "Začetek pogovora z uporabnikom lahko AI pomaga vzpostaviti tesnejšo povezavo z njimi v pogovornih aplikacijah.",
|
||||
"openingStatement.notIncludeKey": "Začetni poziv ne vključuje spremenljivke: {{key}}. Prosimo, dodajte jo v začetni poziv.",
|
||||
"openingStatement.openingQuestion": "Uvodna vprašanja",
|
||||
"openingStatement.openingQuestionPlaceholder": "Lahko uporabljaš spremenljivke, poskusi vpisati {{variable}}.",
|
||||
"openingStatement.placeholder": "Tukaj napišite svoje uvodno sporočilo, lahko uporabljate spremenljivke, poskusite tip {{variable}}.",
|
||||
"openingStatement.openingQuestionDescription": "Izbirni predlogi, prikazani po uvodnem sporocilu, ki uporabnikom pomagajo nadaljevati pogovor.",
|
||||
"openingStatement.openingQuestionPlaceholder": "Vnesite uvodno vprasanje.",
|
||||
"openingStatement.placeholderLine1": "Zacnite tukaj. Napisite prvo sporocilo, ki ga mora poslati AI.",
|
||||
"openingStatement.placeholderLine2": "Lahko uporabljaš spremenljivke, poskusi vpisati {{variable}}.",
|
||||
"openingStatement.title": "Odpiralec pogovorov",
|
||||
"openingStatement.tooShort": "Za ustvarjanje uvodnih pripomb za pogovor je potrebnih vsaj 20 besed začetnega poziva.",
|
||||
"openingStatement.varTip": "Lahko uporabiš spremenljivke, poskusi tip {{variable}}",
|
||||
|
||||
@@ -252,11 +252,14 @@
|
||||
"notSetAPIKey.trailFinished": "เส้นทางเสร็จสิ้น",
|
||||
"notSetVar": "ตัวแปรช่วยให้ผู้ใช้สามารถใส่คำกระตุ้นหรือข้อคิดเห็นเริ่มต้นเมื่อกรอกแบบฟอร์ม คุณสามารถลองใส่ \"{{input}}\" ในคำกระตุ้นได้",
|
||||
"openingStatement.add": "เพิ่ม",
|
||||
"openingStatement.editorTitle": "ข้อความเปิด",
|
||||
"openingStatement.noDataPlaceHolder": "การเริ่มการสนทนากับผู้ใช้สามารถช่วยให้ AI สร้างความสัมพันธ์ที่ใกล้ชิดกับพวกเขาในแอปพลิเคชันการสนทนา",
|
||||
"openingStatement.notIncludeKey": "คำสั่งเริ่มต้นไม่ได้รวมตัวแปร: {{key}}. กรุณาเพิ่มตัวแปรนี้ในคำสั่งเริ่มต้นด้วย",
|
||||
"openingStatement.openingQuestion": "คําถามเปิด",
|
||||
"openingStatement.openingQuestionPlaceholder": "คุณสามารถใช้ตัวแปร ลองพิมพ์ {{variable}} ดูสิ",
|
||||
"openingStatement.placeholder": "เขียนข้อความเปิดของคุณที่นี่ คุณสามารถใช้ตัวแปร ลองพิมพ์ {{variable}}",
|
||||
"openingStatement.openingQuestionDescription": "พรอมป์ตัวเลือกที่จะแสดงหลังข้อความเปิด เพื่อช่วยให้ผู้ใช้สนทนาต่อได้",
|
||||
"openingStatement.openingQuestionPlaceholder": "ป้อนคำถามเปิดบทสนทนา",
|
||||
"openingStatement.placeholderLine1": "เริ่มตรงนี้ เขียนข้อความแรกที่ AI ควรส่ง",
|
||||
"openingStatement.placeholderLine2": "คุณสามารถใช้ตัวแปร ลองพิมพ์ {{variable}} ดูสิ",
|
||||
"openingStatement.title": "ที่เปิดการสนทนา",
|
||||
"openingStatement.tooShort": "ต้องใช้ข้อความแจ้งเริ่มต้นอย่างน้อย 20 คําเพื่อสร้างคําพูดเปิดการสนทนา",
|
||||
"openingStatement.varTip": "คุณสามารถใช้ตัวแปรได้ ลองพิมพ์ {{variable}}",
|
||||
|
||||
@@ -252,11 +252,14 @@
|
||||
"notSetAPIKey.trailFinished": "Deneme süresi sona erdi",
|
||||
"notSetVar": "Değişkenler, kullanıcıların form doldururken prompt kelimelerini veya açılış ifadelerini getirmesine izin verir. Prompt kelimelerine \"{{input}}\" yazmayı deneyebilirsiniz.",
|
||||
"openingStatement.add": "Ekle",
|
||||
"openingStatement.editorTitle": "Acilis Mesaji",
|
||||
"openingStatement.noDataPlaceHolder": "Kullanıcı ile konuşmayı başlatmak, AI'ın konuşma uygulamalarında onlarla daha yakın bir bağlantı kurmasına yardımcı olabilir.",
|
||||
"openingStatement.notIncludeKey": "Başlangıç promptu değişkeni içermiyor: {{key}}. Lütfen bunu başlangıç promptuna ekleyin.",
|
||||
"openingStatement.openingQuestion": "Açılış Soruları",
|
||||
"openingStatement.openingQuestionPlaceholder": "Değişkenler kullanabilirsiniz, {{variable}} yazmayı deneyin.",
|
||||
"openingStatement.placeholder": "Başlangıç mesajınızı buraya yazın, değişkenler kullanabilirsiniz, örneğin {{variable}} yazmayı deneyin.",
|
||||
"openingStatement.openingQuestionDescription": "Acilis mesajindan sonra gosterilen istege bagli yonlendirmeler; kullanicilarin konusmayi surdurmesine yardimci olur.",
|
||||
"openingStatement.openingQuestionPlaceholder": "Bir acilis sorusu girin.",
|
||||
"openingStatement.placeholderLine1": "Buradan baslayin. Yapay zekanin gondermesi gereken ilk mesaji yazin.",
|
||||
"openingStatement.placeholderLine2": "Değişkenler kullanabilirsiniz, {{variable}} yazmayı deneyin.",
|
||||
"openingStatement.title": "Konuşma Başlatıcı",
|
||||
"openingStatement.tooShort": "Konuşma için açılış ifadeleri oluşturmak için en az 20 kelimelik başlangıç promptu gereklidir.",
|
||||
"openingStatement.varTip": "Değişkenler kullanabilirsiniz, örneğin {{variable}} yazmayı deneyin",
|
||||
|
||||
@@ -252,11 +252,14 @@
|
||||
"notSetAPIKey.trailFinished": "Демо закінчилось",
|
||||
"notSetVar": "Змінні дозволяють користувачам вводити підказки або вступні зауваження під час заповнення форм. Ви можете спробувати ввести \"{{input}}\" у слова підказки.",
|
||||
"openingStatement.add": "Додати",
|
||||
"openingStatement.editorTitle": "Вступне повідомлення",
|
||||
"openingStatement.noDataPlaceHolder": "Початок розмови з користувачем може допомогти ШІ встановити більш тісний зв’язок з ним у розмовних застосунках.",
|
||||
"openingStatement.notIncludeKey": "Початковий запит не включає змінну: {{key}}. Будь ласка, додайте її до початкового запиту.",
|
||||
"openingStatement.openingQuestion": "Відкриваючі питання",
|
||||
"openingStatement.openingQuestionPlaceholder": "Ви можете використовувати змінні, спробуйте ввести {{variable}}.",
|
||||
"openingStatement.placeholder": "Напишіть тут своє вступне повідомлення, ви можете використовувати змінні, спробуйте ввести {{variable}}.",
|
||||
"openingStatement.openingQuestionDescription": "Необовʼязкові підказки, що показуються після вступного повідомлення та допомагають користувачам продовжити розмову.",
|
||||
"openingStatement.openingQuestionPlaceholder": "Введіть вступне запитання.",
|
||||
"openingStatement.placeholderLine1": "Почніть тут. Напишіть перше повідомлення, яке ШІ має надіслати.",
|
||||
"openingStatement.placeholderLine2": "Ви можете використовувати змінні, спробуйте ввести {{variable}}.",
|
||||
"openingStatement.title": "Вступ до розмови",
|
||||
"openingStatement.tooShort": "Для створення вступних зауважень для розмови потрібно принаймні 20 слів вступного запиту.",
|
||||
"openingStatement.varTip": "Ви можете використовувати змінні, спробуйте ввести {{variable}}",
|
||||
|
||||
@@ -252,11 +252,14 @@
|
||||
"notSetAPIKey.trailFinished": "Kết thúc dùng thử",
|
||||
"notSetVar": "Biến cho phép người dùng đưa ra từ khóa lời nhắc hoặc mở đầu khi điền vào biểu mẫu. Bạn có thể thử nhập \"{{input}}\" trong các từ khóa lời nhắc.",
|
||||
"openingStatement.add": "Thêm",
|
||||
"openingStatement.editorTitle": "Tin nhan mo dau",
|
||||
"openingStatement.noDataPlaceHolder": "Bắt đầu cuộc trò chuyện với người dùng có thể giúp AI thiết lập mối quan hệ gần gũi hơn với họ trong các ứng dụng trò chuyện.",
|
||||
"openingStatement.notIncludeKey": "Lời nhắc ban đầu không bao gồm biến: {{key}}. Vui lòng thêm nó vào lời nhắc ban đầu.",
|
||||
"openingStatement.openingQuestion": "Câu hỏi mở đầu",
|
||||
"openingStatement.openingQuestionPlaceholder": "Bạn có thể sử dụng biến, hãy thử nhập {{variable}}.",
|
||||
"openingStatement.placeholder": "Viết thông điệp mở đầu của bạn ở đây, bạn có thể sử dụng biến, hãy thử nhập {{variable}}.",
|
||||
"openingStatement.openingQuestionDescription": "Cac goi y tuy chon hien thi sau loi mo dau de giup nguoi dung tiep tuc cuoc tro chuyen.",
|
||||
"openingStatement.openingQuestionPlaceholder": "Nhap cau hoi mo dau.",
|
||||
"openingStatement.placeholderLine1": "Bat dau tai day. Viet tin nhan dau tien ma AI nen gui.",
|
||||
"openingStatement.placeholderLine2": "Bạn có thể sử dụng biến, hãy thử nhập {{variable}}.",
|
||||
"openingStatement.title": "Mở đầu cuộc trò chuyện",
|
||||
"openingStatement.tooShort": "Cần ít nhất 20 từ trong lời nhắc ban đầu để tạo ra các câu mở đầu cho cuộc trò chuyện.",
|
||||
"openingStatement.varTip": "Bạn có thể sử dụng biến, hãy thử nhập {{variable}}",
|
||||
|
||||
@@ -252,11 +252,14 @@
|
||||
"notSetAPIKey.trailFinished": "试用已结束",
|
||||
"notSetVar": "变量能使用户输入表单引入提示词或开场白,你可以试试在提示词中输入 {{input}}",
|
||||
"openingStatement.add": "添加开场白",
|
||||
"openingStatement.editorTitle": "开场白内容",
|
||||
"openingStatement.noDataPlaceHolder": "在对话型应用中,让 AI 主动说第一段话可以拉近与用户间的距离。",
|
||||
"openingStatement.notIncludeKey": "前缀提示词中不包含变量 {{key}}。请在前缀提示词中添加该变量",
|
||||
"openingStatement.openingQuestion": "开场问题",
|
||||
"openingStatement.openingQuestionPlaceholder": "可以使用变量,尝试输入 {{variable}}。",
|
||||
"openingStatement.placeholder": "在这里写下你的开场白,你可以使用变量,尝试输入 {{variable}}。",
|
||||
"openingStatement.openingQuestionDescription": "可选的引导问题,会在开场白之后展示,帮助用户继续对话。",
|
||||
"openingStatement.openingQuestionPlaceholder": "输入一个开场问题。",
|
||||
"openingStatement.placeholderLine1": "先在这里写 AI 要发送的第一句话。",
|
||||
"openingStatement.placeholderLine2": "你可以使用变量,尝试输入 {{variable}}。",
|
||||
"openingStatement.title": "对话开场白",
|
||||
"openingStatement.tooShort": "对话前提示词至少 20 字才能生成开场白",
|
||||
"openingStatement.varTip": "你可以使用变量,试试输入 {{variable}}",
|
||||
|
||||
@@ -252,11 +252,14 @@
|
||||
"notSetAPIKey.trailFinished": "試用已結束",
|
||||
"notSetVar": "變數能使使用者輸入表單引入提示詞或開場白,你可以試試在提示詞中輸入 {{input}}",
|
||||
"openingStatement.add": "新增開場白",
|
||||
"openingStatement.editorTitle": "開場白內容",
|
||||
"openingStatement.noDataPlaceHolder": "在對話型應用中,讓 AI 主動說第一段話可以拉近與使用者間的距離。",
|
||||
"openingStatement.notIncludeKey": "字首提示詞中不包含變數 {{key}}。請在字首提示詞中新增該變數",
|
||||
"openingStatement.openingQuestion": "開場問題",
|
||||
"openingStatement.openingQuestionPlaceholder": "可以使用變數,嘗試輸入 {{variable}}。",
|
||||
"openingStatement.placeholder": "在這裡寫下你的開場白,你可以使用變數,嘗試輸入 {{variable}}。",
|
||||
"openingStatement.openingQuestionDescription": "可選的引導問題,會在開場白之後顯示,幫助使用者繼續對話。",
|
||||
"openingStatement.openingQuestionPlaceholder": "輸入一個開場問題。",
|
||||
"openingStatement.placeholderLine1": "先在這裡寫下 AI 要傳送的第一句話。",
|
||||
"openingStatement.placeholderLine2": "可以使用變數,嘗試輸入 {{variable}}。",
|
||||
"openingStatement.title": "對話開場白",
|
||||
"openingStatement.tooShort": "對話前提示詞至少 20 字才能生成開場白",
|
||||
"openingStatement.varTip": "你可以使用變數,試試輸入 {{variable}}",
|
||||
|
||||
Reference in New Issue
Block a user