feat: Add missing text placeholder in prompt help messages for different locales
This commit is contained in:
parent
1bb6d3a89a
commit
2cc880c722
@ -170,7 +170,8 @@
|
|||||||
"label": "Prompt",
|
"label": "Prompt",
|
||||||
"placeholder": "Enter Prompt",
|
"placeholder": "Enter Prompt",
|
||||||
"required": "Please enter a prompt",
|
"required": "Please enter a prompt",
|
||||||
"help": "You can use {key} as variable in your prompt."
|
"help": "You can use {key} as variable in your prompt.",
|
||||||
|
"missingTextPlaceholder": "The {text} variable is missing in the prompt. Please add it."
|
||||||
},
|
},
|
||||||
"isSystem": {
|
"isSystem": {
|
||||||
"label": "Is System Prompt"
|
"label": "Is System Prompt"
|
||||||
|
@ -170,7 +170,8 @@
|
|||||||
"label": "Prompt",
|
"label": "Prompt",
|
||||||
"placeholder": "Ingrese un prompt",
|
"placeholder": "Ingrese un prompt",
|
||||||
"required": "Por favor, ingrese un prompt",
|
"required": "Por favor, ingrese un prompt",
|
||||||
"help": "Puede usar {key} como variable en su prompt."
|
"help": "Puede usar {key} como variable en su prompt.",
|
||||||
|
"missingTextPlaceholder": "Falta la variable {text} en el mensaje. Por favor, añádela."
|
||||||
},
|
},
|
||||||
"isSystem": {
|
"isSystem": {
|
||||||
"label": "Es un Prompt del Sistema"
|
"label": "Es un Prompt del Sistema"
|
||||||
|
@ -170,7 +170,8 @@
|
|||||||
"label": "Prompt",
|
"label": "Prompt",
|
||||||
"placeholder": "Entrer Prompt",
|
"placeholder": "Entrer Prompt",
|
||||||
"required": "Veuillez entrer un prompt",
|
"required": "Veuillez entrer un prompt",
|
||||||
"help": "Vous pouvez utiliser {key} comme variable dans votre prompt."
|
"help": "Vous pouvez utiliser {key} comme variable dans votre prompt.",
|
||||||
|
"missingTextPlaceholder": "La variable {text} est manquante dans le message. Veuillez l'ajouter."
|
||||||
},
|
},
|
||||||
"isSystem": {
|
"isSystem": {
|
||||||
"label": "Est un prompt système"
|
"label": "Est un prompt système"
|
||||||
|
@ -170,7 +170,8 @@
|
|||||||
"label": "Prompt",
|
"label": "Prompt",
|
||||||
"placeholder": "Inserisci Prompt",
|
"placeholder": "Inserisci Prompt",
|
||||||
"required": "Scrivi il prompt",
|
"required": "Scrivi il prompt",
|
||||||
"help": "Puoi usare {key} come variabile nel tuo prompt."
|
"help": "Puoi usare {key} come variabile nel tuo prompt.",
|
||||||
|
"missingTextPlaceholder": "La variabile {text} manca nel prompt. Per favore, aggiungila."
|
||||||
},
|
},
|
||||||
"isSystem": {
|
"isSystem": {
|
||||||
"label": "Prompt di Sistema"
|
"label": "Prompt di Sistema"
|
||||||
|
@ -173,7 +173,8 @@
|
|||||||
"label": "プロンプト",
|
"label": "プロンプト",
|
||||||
"placeholder": "プロンプトを入力",
|
"placeholder": "プロンプトを入力",
|
||||||
"required": "プロンプトを入力してください",
|
"required": "プロンプトを入力してください",
|
||||||
"help": "プロンプト内で{key}を変数として使用できます。"
|
"help": "プロンプト内で{key}を変数として使用できます。",
|
||||||
|
"missingTextPlaceholder": "プロンプトに{text}変数がありません。追加してください。"
|
||||||
},
|
},
|
||||||
"isSystem": {
|
"isSystem": {
|
||||||
"label": "システムプロンプト"
|
"label": "システムプロンプト"
|
||||||
|
@ -173,7 +173,8 @@
|
|||||||
"label": "പ്രോംപ്റ്റ്",
|
"label": "പ്രോംപ്റ്റ്",
|
||||||
"placeholder": "പ്രോംപ്റ്റ് നല്കുക",
|
"placeholder": "പ്രോംപ്റ്റ് നല്കുക",
|
||||||
"required": "ദയവായി ഒരു പ്രോംപ്റ്റ് നല്കുക",
|
"required": "ദയവായി ഒരു പ്രോംപ്റ്റ് നല്കുക",
|
||||||
"help": "നിങ്ങള്ക്ക് {key} എന്ന രീതിയില് പ്രോംപ്റ്റില് വേരിയബിളുകള് ഉപയോഗിക്കാവുന്നതാണ്."
|
"help": "നിങ്ങള്ക്ക് {key} എന്ന രീതിയില് പ്രോംപ്റ്റില് വേരിയബിളുകള് ഉപയോഗിക്കാവുന്നതാണ്.",
|
||||||
|
"missingTextPlaceholder": "പ്രോംപ്റ്റിൽ {text} വേരിയബിൾ കാണുന്നില്ല. ദയവായി അത് ചേർക്കുക."
|
||||||
},
|
},
|
||||||
"isSystem": {
|
"isSystem": {
|
||||||
"label": "സിസ്റ്റം പ്രോംപ്റ്റ് ആണോ"
|
"label": "സിസ്റ്റം പ്രോംപ്റ്റ് ആണോ"
|
||||||
|
@ -170,7 +170,8 @@
|
|||||||
"label": "Prompt",
|
"label": "Prompt",
|
||||||
"placeholder": "Digite o Prompt",
|
"placeholder": "Digite o Prompt",
|
||||||
"required": "Por favor, insira um prompt",
|
"required": "Por favor, insira um prompt",
|
||||||
"help": "Você pode usar {key} como variável em seu prompt."
|
"help": "Você pode usar {key} como variável em seu prompt.",
|
||||||
|
"missingTextPlaceholder": "A variável {text} está faltando no prompt. Por favor, adicione-a."
|
||||||
},
|
},
|
||||||
"isSystem": {
|
"isSystem": {
|
||||||
"label": "É um Prompt do Sistema"
|
"label": "É um Prompt do Sistema"
|
||||||
|
@ -171,7 +171,8 @@
|
|||||||
"label": "Подсказка",
|
"label": "Подсказка",
|
||||||
"placeholder": "Введите подсказку",
|
"placeholder": "Введите подсказку",
|
||||||
"required": "Пожалуйста, введите подсказку",
|
"required": "Пожалуйста, введите подсказку",
|
||||||
"help": "Вы можете использовать {key} в качестве переменной в своей подсказке."
|
"help": "Вы можете использовать {key} в качестве переменной в своей подсказке.",
|
||||||
|
"missingTextPlaceholder": "Переменная {text} отсутствует в подсказке. Пожалуйста, добавьте ее."
|
||||||
},
|
},
|
||||||
"isSystem": {
|
"isSystem": {
|
||||||
"label": "Это системная подсказка"
|
"label": "Это системная подсказка"
|
||||||
|
@ -174,7 +174,8 @@
|
|||||||
"label": "提示词",
|
"label": "提示词",
|
||||||
"placeholder": "输入提示词",
|
"placeholder": "输入提示词",
|
||||||
"required": "请输入提示词",
|
"required": "请输入提示词",
|
||||||
"help": "您可以在提示词中使用 {key} 作为变量。"
|
"help": "您可以在提示词中使用 {key} 作为变量。",
|
||||||
|
"missingTextPlaceholder": "提示中缺少{text}变量。请添加它。"
|
||||||
},
|
},
|
||||||
"isSystem": {
|
"isSystem": {
|
||||||
"label": "是否为系统提示词"
|
"label": "是否为系统提示词"
|
||||||
|
@ -15,7 +15,10 @@ import { Trash2, Pen, Computer, Zap } from "lucide-react"
|
|||||||
import { useState } from "react"
|
import { useState } from "react"
|
||||||
import { useTranslation } from "react-i18next"
|
import { useTranslation } from "react-i18next"
|
||||||
import { deletePromptById, getAllPrompts, savePrompt, updatePrompt } from "@/db"
|
import { deletePromptById, getAllPrompts, savePrompt, updatePrompt } from "@/db"
|
||||||
import { getAllCopilotPrompts } from "@/services/application"
|
import {
|
||||||
|
getAllCopilotPrompts,
|
||||||
|
setAllCopilotPrompts
|
||||||
|
} from "@/services/application"
|
||||||
import { tagColors } from "@/utils/color"
|
import { tagColors } from "@/utils/color"
|
||||||
|
|
||||||
export const PromptBody = () => {
|
export const PromptBody = () => {
|
||||||
@ -29,6 +32,11 @@ export const PromptBody = () => {
|
|||||||
const [selectedSegment, setSelectedSegment] = useState<"custom" | "copilot">(
|
const [selectedSegment, setSelectedSegment] = useState<"custom" | "copilot">(
|
||||||
"custom"
|
"custom"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
const [openCopilotEdit, setOpenCopilotEdit] = useState(false)
|
||||||
|
const [editCopilotId, setEditCopilotId] = useState("")
|
||||||
|
const [editCopilotForm] = Form.useForm()
|
||||||
|
|
||||||
const { data, status } = useQuery({
|
const { data, status } = useQuery({
|
||||||
queryKey: ["fetchAllPrompts"],
|
queryKey: ["fetchAllPrompts"],
|
||||||
queryFn: getAllPrompts
|
queryFn: getAllPrompts
|
||||||
@ -109,6 +117,36 @@ export const PromptBody = () => {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
const { mutate: updateCopilotPrompt, isPending: isUpdatingCopilotPrompt } =
|
||||||
|
useMutation({
|
||||||
|
mutationFn: async (data: any) => {
|
||||||
|
return await setAllCopilotPrompts([
|
||||||
|
{
|
||||||
|
key: data.key,
|
||||||
|
prompt: data.prompt
|
||||||
|
}
|
||||||
|
])
|
||||||
|
},
|
||||||
|
onSuccess: () => {
|
||||||
|
queryClient.invalidateQueries({
|
||||||
|
queryKey: ["fetchCopilotPrompts"]
|
||||||
|
})
|
||||||
|
setOpenCopilotEdit(false)
|
||||||
|
editCopilotForm.resetFields()
|
||||||
|
notification.success({
|
||||||
|
message: t("managePrompts.notification.updatedSuccess"),
|
||||||
|
description: t("managePrompts.notification.updatedSuccessDesc")
|
||||||
|
})
|
||||||
|
},
|
||||||
|
onError: (error) => {
|
||||||
|
notification.error({
|
||||||
|
message: t("managePrompts.notification.error"),
|
||||||
|
description:
|
||||||
|
error?.message || t("managePrompts.notification.someError")
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
function customPrompts() {
|
function customPrompts() {
|
||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
@ -241,9 +279,9 @@ export const PromptBody = () => {
|
|||||||
<Tooltip title={t("managePrompts.tooltip.edit")}>
|
<Tooltip title={t("managePrompts.tooltip.edit")}>
|
||||||
<button
|
<button
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
// setEditId(record.id)
|
setEditCopilotId(record.key)
|
||||||
// editForm.setFieldsValue(record)
|
editCopilotForm.setFieldsValue(record)
|
||||||
// setOpenEdit(true)
|
setOpenCopilotEdit(true)
|
||||||
}}
|
}}
|
||||||
className="text-gray-500 dark:text-gray-400">
|
className="text-gray-500 dark:text-gray-400">
|
||||||
<Pen className="size-4" />
|
<Pen className="size-4" />
|
||||||
@ -396,6 +434,59 @@ export const PromptBody = () => {
|
|||||||
</Form.Item>
|
</Form.Item>
|
||||||
</Form>
|
</Form>
|
||||||
</Modal>
|
</Modal>
|
||||||
|
|
||||||
|
<Modal
|
||||||
|
title={t("managePrompts.modal.editTitle")}
|
||||||
|
open={openCopilotEdit}
|
||||||
|
onCancel={() => setOpenCopilotEdit(false)}
|
||||||
|
footer={null}>
|
||||||
|
<Form
|
||||||
|
onFinish={(values) =>
|
||||||
|
updateCopilotPrompt({
|
||||||
|
key: editCopilotId,
|
||||||
|
prompt: values.prompt
|
||||||
|
})
|
||||||
|
}
|
||||||
|
layout="vertical"
|
||||||
|
form={editCopilotForm}>
|
||||||
|
<Form.Item
|
||||||
|
name="prompt"
|
||||||
|
label={t("managePrompts.form.prompt.label")}
|
||||||
|
rules={[
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: t("managePrompts.form.prompt.required")
|
||||||
|
},
|
||||||
|
{
|
||||||
|
validator: (_, value) => {
|
||||||
|
if (value && value.includes("{text}")) {
|
||||||
|
return Promise.resolve()
|
||||||
|
}
|
||||||
|
return Promise.reject(
|
||||||
|
new Error(
|
||||||
|
t("managePrompts.form.prompt.missingTextPlaceholder")
|
||||||
|
)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]}>
|
||||||
|
<Input.TextArea
|
||||||
|
placeholder={t("managePrompts.form.prompt.placeholder")}
|
||||||
|
autoSize={{ minRows: 3, maxRows: 10 }}
|
||||||
|
/>
|
||||||
|
</Form.Item>
|
||||||
|
|
||||||
|
<Form.Item>
|
||||||
|
<button
|
||||||
|
disabled={isUpdatingCopilotPrompt}
|
||||||
|
className="inline-flex justify-center w-full text-center mt-4 items-center rounded-md border border-transparent bg-black px-2 py-2 text-sm font-medium leading-4 text-white shadow-sm hover:bg-gray-700 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2 dark:bg-white dark:text-gray-800 dark:hover:bg-gray-100 dark:focus:ring-gray-500 dark:focus:ring-offset-gray-100 disabled:opacity-50 ">
|
||||||
|
{isUpdatingCopilotPrompt
|
||||||
|
? t("managePrompts.form.btnEdit.saving")
|
||||||
|
: t("managePrompts.form.btnEdit.save")}
|
||||||
|
</button>
|
||||||
|
</Form.Item>
|
||||||
|
</Form>
|
||||||
|
</Modal>
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user