From d81444683b74a1179589cc16468d7c6e23b1ffd9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9D=9E=E6=B3=95=E6=93=8D=E4=BD=9C?= Date: Mon, 20 Apr 2026 10:33:04 +0800 Subject: [PATCH] chore: improve conversation opener (#35403) Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com> --- eslint-suppressions.json | 8 - .../__tests__/modal.spec.tsx | 62 ++++- .../conversation-opener/index.tsx | 2 +- .../conversation-opener/modal.tsx | 221 +++++++++++------- web/i18n/ar-TN/app-debug.json | 7 +- web/i18n/de-DE/app-debug.json | 7 +- web/i18n/en-US/app-debug.json | 7 +- web/i18n/es-ES/app-debug.json | 7 +- web/i18n/fa-IR/app-debug.json | 7 +- web/i18n/fr-FR/app-debug.json | 7 +- web/i18n/hi-IN/app-debug.json | 7 +- web/i18n/id-ID/app-debug.json | 7 +- web/i18n/it-IT/app-debug.json | 7 +- web/i18n/ja-JP/app-debug.json | 7 +- web/i18n/ko-KR/app-debug.json | 7 +- web/i18n/nl-NL/app-debug.json | 7 +- web/i18n/pl-PL/app-debug.json | 7 +- web/i18n/pt-BR/app-debug.json | 7 +- web/i18n/ro-RO/app-debug.json | 7 +- web/i18n/ru-RU/app-debug.json | 7 +- web/i18n/sl-SI/app-debug.json | 7 +- web/i18n/th-TH/app-debug.json | 7 +- web/i18n/tr-TR/app-debug.json | 7 +- web/i18n/uk-UA/app-debug.json | 7 +- web/i18n/vi-VN/app-debug.json | 7 +- web/i18n/zh-Hans/app-debug.json | 7 +- web/i18n/zh-Hant/app-debug.json | 7 +- 27 files changed, 308 insertions(+), 146 deletions(-) diff --git a/eslint-suppressions.json b/eslint-suppressions.json index 32de602651..2d53d97dd0 100644 --- a/eslint-suppressions.json +++ b/eslint-suppressions.json @@ -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 diff --git a/web/app/components/base/features/new-feature-panel/conversation-opener/__tests__/modal.spec.tsx b/web/app/components/base/features/new-feature-panel/conversation-opener/__tests__/modal.spec.tsx index 4d117c7085..d8cdc56849 100644 --- a/web/app/components/base/features/new-feature-panel/conversation-opener/__tests__/modal.spec.tsx +++ b/web/app/components/base/features/new-feature-panel/conversation-opener/__tests__/modal.spec.tsx @@ -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( { 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( + , + ) + + 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( + , + ) + + 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( + , + ) + + 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 () => { diff --git a/web/app/components/base/features/new-feature-panel/conversation-opener/index.tsx b/web/app/components/base/features/new-feature-panel/conversation-opener/index.tsx index 5a579519f0..b85367ba93 100644 --- a/web/app/components/base/features/new-feature-panel/conversation-opener/index.tsx +++ b/web/app/components/base/features/new-feature-panel/conversation-opener/index.tsx @@ -102,7 +102,7 @@ const ConversationOpener = ({ <> {!isHovering && (
- {opening.opening_statement || t('openingStatement.placeholder', { ns: 'appDebug' })} + {opening.opening_statement || t('openingStatement.placeholderLine1', { ns: 'appDebug' })}
)} {isHovering && ( diff --git a/web/app/components/base/features/new-feature-panel/conversation-opener/modal.tsx b/web/app/components/base/features/new-feature-panel/conversation-opener/modal.tsx index 2b0e809688..f69b507115 100644 --- a/web/app/components/base/features/new-feature-panel/conversation-opener/modal.tsx +++ b/web/app/components/base/features/new-feature-panel/conversation-opener/modal.tsx @@ -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(null) const [deletingID, setDeletingID] = useState(null) + const [autoFocusQuestionID, setAutoFocusQuestionID] = useState(null) + const openerPlaceholder = ( + + {t('openingStatement.placeholderLine1', { ns: 'appDebug' })} +
+ {t('openingStatement.placeholderLine2', { ns: 'appDebug' })} +
+ ) const renderQuestions = () => { return (
-
-
-
{t('openingStatement.openingQuestion', { ns: 'appDebug' })}
-
·
-
- {tempSuggestedQuestions.length} - / - {MAX_QUESTION_NUM} +
+
+
+ {t('openingStatement.openingQuestion', { ns: 'appDebug' })}
+ + + + + )} + /> + + {t('openingStatement.openingQuestionDescription', { ns: 'appDebug' })} + + +
+
+ {tempSuggestedQuestions.length} + / + {MAX_QUESTION_NUM}
-
+ { @@ -133,8 +161,8 @@ const OpeningSettingModal = ({
@@ -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 = ({ {tempSuggestedQuestions.length < MAX_QUESTION_NUM && (
{ 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" > @@ -185,81 +223,90 @@ const OpeningSettingModal = ({ } return ( - -
-
{t('feature.conversationOpener.title', { ns: 'appDebug' })}
-
{ - if (e.key === 'Enter' || e.key === ' ') { - e.preventDefault() - onCancel() - } - }} - > - -
-
-
-
- -
-
- ({ - name: item.name || item.key, - value: item.key, - })), - // Workflow variables - ...workflowVariables.map(item => ({ - name: item.variable, - value: item.variable, - })), - ], + !open && onCancel()} disablePointerDismissal> + +
+
{t('feature.conversationOpener.title', { ns: 'appDebug' })}
+
{ + if (e.key === 'Enter' || e.key === ' ') { + e.preventDefault() + onCancel() + } }} - /> - {renderQuestions()} + > + +
-
-
- - -
- {isShowConfirmAddVar && ( - - )} - +
+
+
+ {t('openingStatement.editorTitle', { ns: 'appDebug' })} +
+
+ ({ + name: item.name || item.key, + value: item.key, + })), + // Workflow variables + ...workflowVariables.map(item => ({ + name: item.variable, + value: item.variable, + })), + ], + }} + /> +
+
+
+ {renderQuestions()} +
+
+
+ + +
+ {isShowConfirmAddVar && ( + + )} + + ) } diff --git a/web/i18n/ar-TN/app-debug.json b/web/i18n/ar-TN/app-debug.json index 99c510dcb5..37787c4645 100644 --- a/web/i18n/ar-TN/app-debug.json +++ b/web/i18n/ar-TN/app-debug.json @@ -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}}", diff --git a/web/i18n/de-DE/app-debug.json b/web/i18n/de-DE/app-debug.json index 0e067e20eb..50eb9706f4 100644 --- a/web/i18n/de-DE/app-debug.json +++ b/web/i18n/de-DE/app-debug.json @@ -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", diff --git a/web/i18n/en-US/app-debug.json b/web/i18n/en-US/app-debug.json index 9c64405ecc..2afd56715b 100644 --- a/web/i18n/en-US/app-debug.json +++ b/web/i18n/en-US/app-debug.json @@ -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}}", diff --git a/web/i18n/es-ES/app-debug.json b/web/i18n/es-ES/app-debug.json index cfb8a0643e..f97df22429 100644 --- a/web/i18n/es-ES/app-debug.json +++ b/web/i18n/es-ES/app-debug.json @@ -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}}", diff --git a/web/i18n/fa-IR/app-debug.json b/web/i18n/fa-IR/app-debug.json index a612105f35..2327611662 100644 --- a/web/i18n/fa-IR/app-debug.json +++ b/web/i18n/fa-IR/app-debug.json @@ -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}} را امتحان کنید", diff --git a/web/i18n/fr-FR/app-debug.json b/web/i18n/fr-FR/app-debug.json index 711959c323..2873483c7d 100644 --- a/web/i18n/fr-FR/app-debug.json +++ b/web/i18n/fr-FR/app-debug.json @@ -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}}", diff --git a/web/i18n/hi-IN/app-debug.json b/web/i18n/hi-IN/app-debug.json index f9d438f0b1..23075891e3 100644 --- a/web/i18n/hi-IN/app-debug.json +++ b/web/i18n/hi-IN/app-debug.json @@ -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}} टाइप करने का प्रयास करें", diff --git a/web/i18n/id-ID/app-debug.json b/web/i18n/id-ID/app-debug.json index feb0f0a296..f3cfc1ea98 100644 --- a/web/i18n/id-ID/app-debug.json +++ b/web/i18n/id-ID/app-debug.json @@ -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}}", diff --git a/web/i18n/it-IT/app-debug.json b/web/i18n/it-IT/app-debug.json index b9aad1ff6b..a9c7c0b981 100644 --- a/web/i18n/it-IT/app-debug.json +++ b/web/i18n/it-IT/app-debug.json @@ -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}}", diff --git a/web/i18n/ja-JP/app-debug.json b/web/i18n/ja-JP/app-debug.json index 274db25283..7a3cc821c6 100644 --- a/web/i18n/ja-JP/app-debug.json +++ b/web/i18n/ja-JP/app-debug.json @@ -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}} を入力してみてください", diff --git a/web/i18n/ko-KR/app-debug.json b/web/i18n/ko-KR/app-debug.json index 1f9c1e2420..fa89feef5a 100644 --- a/web/i18n/ko-KR/app-debug.json +++ b/web/i18n/ko-KR/app-debug.json @@ -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}}를 입력해보세요.", diff --git a/web/i18n/nl-NL/app-debug.json b/web/i18n/nl-NL/app-debug.json index 7552cb7cc9..e4eb1172f9 100644 --- a/web/i18n/nl-NL/app-debug.json +++ b/web/i18n/nl-NL/app-debug.json @@ -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}}", diff --git a/web/i18n/pl-PL/app-debug.json b/web/i18n/pl-PL/app-debug.json index d708c997e9..53fff52de0 100644 --- a/web/i18n/pl-PL/app-debug.json +++ b/web/i18n/pl-PL/app-debug.json @@ -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}}", diff --git a/web/i18n/pt-BR/app-debug.json b/web/i18n/pt-BR/app-debug.json index 3b1a0da424..0f1b31de54 100644 --- a/web/i18n/pt-BR/app-debug.json +++ b/web/i18n/pt-BR/app-debug.json @@ -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}}", diff --git a/web/i18n/ro-RO/app-debug.json b/web/i18n/ro-RO/app-debug.json index d2b8294804..2ce7b5181a 100644 --- a/web/i18n/ro-RO/app-debug.json +++ b/web/i18n/ro-RO/app-debug.json @@ -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}}", diff --git a/web/i18n/ru-RU/app-debug.json b/web/i18n/ru-RU/app-debug.json index 514958101d..b8b2997b2c 100644 --- a/web/i18n/ru-RU/app-debug.json +++ b/web/i18n/ru-RU/app-debug.json @@ -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}}", diff --git a/web/i18n/sl-SI/app-debug.json b/web/i18n/sl-SI/app-debug.json index cf3d6c9ec4..a2b916fb0e 100644 --- a/web/i18n/sl-SI/app-debug.json +++ b/web/i18n/sl-SI/app-debug.json @@ -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}}", diff --git a/web/i18n/th-TH/app-debug.json b/web/i18n/th-TH/app-debug.json index c36db9ce18..e50c5e752c 100644 --- a/web/i18n/th-TH/app-debug.json +++ b/web/i18n/th-TH/app-debug.json @@ -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}}", diff --git a/web/i18n/tr-TR/app-debug.json b/web/i18n/tr-TR/app-debug.json index 1eb5f83d9b..c9aa6efef8 100644 --- a/web/i18n/tr-TR/app-debug.json +++ b/web/i18n/tr-TR/app-debug.json @@ -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", diff --git a/web/i18n/uk-UA/app-debug.json b/web/i18n/uk-UA/app-debug.json index dd7ec2de8f..87a66674b3 100644 --- a/web/i18n/uk-UA/app-debug.json +++ b/web/i18n/uk-UA/app-debug.json @@ -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}}", diff --git a/web/i18n/vi-VN/app-debug.json b/web/i18n/vi-VN/app-debug.json index 92037650cb..2668dbcc6f 100644 --- a/web/i18n/vi-VN/app-debug.json +++ b/web/i18n/vi-VN/app-debug.json @@ -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}}", diff --git a/web/i18n/zh-Hans/app-debug.json b/web/i18n/zh-Hans/app-debug.json index fb4f231852..6d1d16223d 100644 --- a/web/i18n/zh-Hans/app-debug.json +++ b/web/i18n/zh-Hans/app-debug.json @@ -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}}", diff --git a/web/i18n/zh-Hant/app-debug.json b/web/i18n/zh-Hant/app-debug.json index 3058cd8458..984b8ccf55 100644 --- a/web/i18n/zh-Hant/app-debug.json +++ b/web/i18n/zh-Hant/app-debug.json @@ -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}}",