diff --git a/src/assets/locale/da/common.json b/src/assets/locale/da/common.json index 5a60ec5..4d0de2d 100644 --- a/src/assets/locale/da/common.json +++ b/src/assets/locale/da/common.json @@ -41,6 +41,7 @@ "webSearch": "Søger på internettet", "regenerate": "Regenerer", "edit": "Ændre", + "delete": "Slet", "saveAndSubmit": "Gem & Indsend", "editMessage": { "placeholder": "Skriv en besked..." @@ -101,5 +102,15 @@ "translate": "Oversæt", "custom": "Brugerdefineret" }, - "citations": "Citater" + "citations": "Citater", + "downloadCode": "Download Kode", + "date": { + "pinned": "Fastgjort", + "today": "I dag", + "yesterday": "I går", + "last7Days": "Sidste 7 dage", + "older": "Ældre" + }, + "pin": "Fastgør", + "unpin": "Frigør" } \ No newline at end of file diff --git a/src/assets/locale/da/knowledge.json b/src/assets/locale/da/knowledge.json index b1ae090..308c8cb 100644 --- a/src/assets/locale/da/knowledge.json +++ b/src/assets/locale/da/knowledge.json @@ -10,9 +10,6 @@ "expandedColumns": { "name": "Navn" }, - "tooltip": { - "delete": "Slet" - }, "confirm": { "delete": "Er du sikker på du vil slette denne viden?" }, diff --git a/src/assets/locale/de/common.json b/src/assets/locale/de/common.json index 0444973..739e0dd 100644 --- a/src/assets/locale/de/common.json +++ b/src/assets/locale/de/common.json @@ -41,6 +41,7 @@ "webSearch": "Web durchsuchen", "regenerate": "Neu generieren", "edit": "Bearbeiten", + "delete": "Löschen", "saveAndSubmit": "Speichern & Absenden", "editMessage": { "placeholder": "Nachricht eingeben..." @@ -101,5 +102,15 @@ "translate": "Übersetzen", "custom": "Benutzerdefiniert" }, - "citations": "Zitate" + "citations": "Zitate", + "downloadCode": "Code herunterladen", + "date": { + "pinned": "Angepinnt", + "today": "Heute", + "yesterday": "Gestern", + "last7Days": "Letzte 7 Tage", + "older": "Älter" + }, + "pin": "Anheften", + "unpin": "Losheften" } \ No newline at end of file diff --git a/src/assets/locale/de/knowledge.json b/src/assets/locale/de/knowledge.json index f572702..074f31b 100644 --- a/src/assets/locale/de/knowledge.json +++ b/src/assets/locale/de/knowledge.json @@ -10,9 +10,6 @@ "expandedColumns": { "name": "Name" }, - "tooltip": { - "delete": "Löschen" - }, "confirm": { "delete": "Sind Sie sicher, dass Sie dieses Wissen löschen möchten?" }, diff --git a/src/assets/locale/en/common.json b/src/assets/locale/en/common.json index 7198457..0cd96d7 100644 --- a/src/assets/locale/en/common.json +++ b/src/assets/locale/en/common.json @@ -41,6 +41,7 @@ "webSearch": "Searching the web", "regenerate": "Regenerate", "edit": "Edit", + "delete": "Delete", "saveAndSubmit": "Save & Submit", "editMessage": { "placeholder": "Type a message..." @@ -105,5 +106,15 @@ "segmented": { "ollama": "Ollama Models", "custom": "Custom Models" - } + }, + "downloadCode": "Download Code", + "date": { + "pinned": "Pinned", + "today": "Today", + "yesterday": "Yesterday", + "last7Days": "Last 7 Days", + "older": "Older" + }, + "pin": "Pin", + "unpin": "Unpin" } \ No newline at end of file diff --git a/src/assets/locale/en/knowledge.json b/src/assets/locale/en/knowledge.json index a29cf89..925c614 100644 --- a/src/assets/locale/en/knowledge.json +++ b/src/assets/locale/en/knowledge.json @@ -10,9 +10,6 @@ "expandedColumns": { "name": "Name" }, - "tooltip": { - "delete": "Delete" - }, "confirm": { "delete": "Are you sure you want to delete this knowledge?" }, diff --git a/src/assets/locale/es/common.json b/src/assets/locale/es/common.json index 33dd76a..65590aa 100644 --- a/src/assets/locale/es/common.json +++ b/src/assets/locale/es/common.json @@ -41,6 +41,7 @@ "webSearch": "Buscando en la web", "regenerate": "Regenerar", "edit": "Editar", + "delete": "Borrar", "saveAndSubmit": "Guardar y Enviar", "editMessage": { "placeholder": "Ingresar un mensaje..." @@ -100,5 +101,15 @@ "rephrase": "Reformular", "translate": "Traducir" }, - "citations": "Citas" + "citations": "Citas", + "downloadCode": "Descargar Código", + "date": { + "pinned": "Fijado", + "today": "Hoy", + "yesterday": "Ayer", + "last7Days": "Últimos 7 días", + "older": "Más antiguo" + }, + "pin": "Fijar", + "unpin": "Desfijar" } \ No newline at end of file diff --git a/src/assets/locale/es/knowledge.json b/src/assets/locale/es/knowledge.json index 13eb6e5..891da12 100644 --- a/src/assets/locale/es/knowledge.json +++ b/src/assets/locale/es/knowledge.json @@ -10,9 +10,6 @@ "expandedColumns": { "name": "Nombre" }, - "tooltip": { - "delete": "Borrar" - }, "confirm": { "delete": "¿Esta seguro que desea borrar este conocimiento?" }, diff --git a/src/assets/locale/fa/common.json b/src/assets/locale/fa/common.json index 1dd3ddd..4adb307 100644 --- a/src/assets/locale/fa/common.json +++ b/src/assets/locale/fa/common.json @@ -41,6 +41,7 @@ "webSearch": "جستجوی وب", "regenerate": "ایجاد مجدد", "edit": "ویرایش", + "delete": "حذف", "saveAndSubmit": "ذخیره و ارسال", "editMessage": { "placeholder": "یک پیام وارد کنید..." @@ -94,5 +95,15 @@ }, "advanced": "تنظیمات بیشتر مدل" }, - "citations": "منابع" + "citations": "منابع", + "downloadCode": "دانلود کد", + "date": { + "pinned": "پین شده", + "today": "امروز", + "yesterday": "دیروز", + "last7Days": "۷ روز گذشته", + "older": "قدیمی‌تر" + }, + "pin": "پین کردن", + "unpin": "حذف پین" } \ No newline at end of file diff --git a/src/assets/locale/fa/knowledge.json b/src/assets/locale/fa/knowledge.json index c955226..756bd07 100644 --- a/src/assets/locale/fa/knowledge.json +++ b/src/assets/locale/fa/knowledge.json @@ -10,9 +10,6 @@ "expandedColumns": { "name": "نام" }, - "tooltip": { - "delete": "حذف" - }, "confirm": { "delete": "آیا مطمئن هستید که می خواهید این دانش را حذف کنید؟" }, diff --git a/src/assets/locale/fr/common.json b/src/assets/locale/fr/common.json index 03cd970..8dbe609 100644 --- a/src/assets/locale/fr/common.json +++ b/src/assets/locale/fr/common.json @@ -41,6 +41,7 @@ "webSearch": "Recherche sur le Web", "regenerate": "Régénérer", "edit": "Modifier", + "delete": "Supprimer", "saveAndSubmit": "Enregistrer et soumettre", "editMessage": { "placeholder": "Tapez un message..." @@ -100,5 +101,15 @@ "rephrase": "Reformuler", "translate": "Traduire" }, - "citations": "Citations" + "citations": "Citations", + "downloadCode": "Télécharger le code", + "date": { + "pinned": "Épinglé", + "today": "Aujourd'hui", + "yesterday": "Hier", + "last7Days": "7 derniers jours", + "older": "Plus ancien" + }, + "pin": "Épingler", + "unpin": "Désépingler" } \ No newline at end of file diff --git a/src/assets/locale/fr/knowledge.json b/src/assets/locale/fr/knowledge.json index aa22b3f..c74ed07 100644 --- a/src/assets/locale/fr/knowledge.json +++ b/src/assets/locale/fr/knowledge.json @@ -10,9 +10,6 @@ "expandedColumns": { "name": "Nom" }, - "tooltip": { - "delete": "Supprimer" - }, "confirm": { "delete": "Êtes-vous sûr de vouloir supprimer ces connaissances ?" }, diff --git a/src/assets/locale/it/common.json b/src/assets/locale/it/common.json index 6e7cd38..80ede68 100644 --- a/src/assets/locale/it/common.json +++ b/src/assets/locale/it/common.json @@ -41,6 +41,7 @@ "webSearch": "Ricerca nel Web", "regenerate": "Rigenera", "edit": "Modifica", + "delete": "Elimina", "saveAndSubmit": "Salva e Invia", "editMessage": { "placeholder": "Scrivi un messaggio..." @@ -100,5 +101,15 @@ "rephrase": "Riformulare", "translate": "Tradurre" }, - "citations": "Citazioni" + "citations": "Citazioni", + "downloadCode": "Scarica Codice", + "date": { + "pinned": "Fissato", + "today": "Oggi", + "yesterday": "Ieri", + "last7Days": "Ultimi 7 Giorni", + "older": "Più Vecchi" + }, + "pin": "Fissa", + "unpin": "Rimuovi" } \ No newline at end of file diff --git a/src/assets/locale/it/knowledge.json b/src/assets/locale/it/knowledge.json index 0f01462..d9caef3 100644 --- a/src/assets/locale/it/knowledge.json +++ b/src/assets/locale/it/knowledge.json @@ -10,9 +10,6 @@ "expandedColumns": { "name": "Nome" }, - "tooltip": { - "delete": "Elimina" - }, "confirm": { "delete": "Sei sicuro di voler eliminare questa Knowledge Base?" }, diff --git a/src/assets/locale/ja-JP/common.json b/src/assets/locale/ja-JP/common.json index 4bb7061..df20028 100644 --- a/src/assets/locale/ja-JP/common.json +++ b/src/assets/locale/ja-JP/common.json @@ -41,6 +41,7 @@ "webSearch": "ウェブを検索中", "regenerate": "再生成", "edit": "編集", + "delete": "削除", "saveAndSubmit": "保存して送信", "editMessage": { "placeholder": "メッセージを入力..." @@ -87,9 +88,9 @@ "placeholder": "GPU(s)に送信するレイヤー数を入力してください" }, "systemPrompt": { - "label": "一時的なシステムプロンプト", - "placeholder": "システムプロンプトを入力", - "help": "これは現在のチャットでシステムプロンプトを素早く設定する方法で、選択されたシステムプロンプトが存在する場合はそれを上書きします。" + "label": "一時的なシステムプロンプト", + "placeholder": "システムプロンプトを入力", + "help": "これは現在のチャットでシステムプロンプトを素早く設定する方法で、選択されたシステムプロンプトが存在する場合はそれを上書きします。" } }, "advanced": "その他のモデル設定" @@ -100,5 +101,15 @@ "rephrase": "言い換え", "translate": "翻訳" }, - "citations": "引用" + "citations": "引用", + "downloadCode": "コードをダウンロード", + "date": { + "pinned": "固定", + "today": "今日", + "yesterday": "昨日", + "last7Days": "過去7日間", + "older": "それ以前" + }, + "pin": "固定", + "unpin": "固定解除" } \ No newline at end of file diff --git a/src/assets/locale/ja-JP/knowledge.json b/src/assets/locale/ja-JP/knowledge.json index 866631c..bfba28c 100644 --- a/src/assets/locale/ja-JP/knowledge.json +++ b/src/assets/locale/ja-JP/knowledge.json @@ -10,9 +10,6 @@ "expandedColumns": { "name": "名前" }, - "tooltip": { - "delete": "削除" - }, "confirm": { "delete": "この知識を削除してもよろしいですか?" }, diff --git a/src/assets/locale/ml/common.json b/src/assets/locale/ml/common.json index 9f00717..bb1149a 100644 --- a/src/assets/locale/ml/common.json +++ b/src/assets/locale/ml/common.json @@ -41,6 +41,7 @@ "webSearch": "വെബ് തിരയുന്നു", "regenerate": "വീണ്ടും ജനറേറ്റ് ചെയ്യുക", "edit": "എഡിറ്റ് ചെയ്യുക", + "delete": "ഇല്ലാതാക്കുക", "saveAndSubmit": "സേവ് ചെയ്ത് സമര്‍പ്പിക്കുക", "editMessage": { "placeholder": "ഒരു സന്ദേശം ടൈപ്പ് ചെയ്യുക..." @@ -99,5 +100,15 @@ "rephrase": "പുനഃരൂപീകരിക്കുക", "translate": "വിവർത്തനം ചെയ്യുക" }, - "citations": "ഉദ്ധരണികൾ" + "citations": "ഉദ്ധരണികൾ", + "downloadCode": "കോഡ് ഡൗൺലോഡ് ചെയ്യുക", + "date": { + "pinned": "പിൻ ചെയ്തത്", + "today": "ഇന്ന്", + "yesterday": "ഇന്നലെ", + "last7Days": "കഴിഞ്ഞ 7 ദിവസം", + "older": "പഴയത്" + }, + "pin": "പിൻ ചെയ്യുക", + "unpin": "അൺപിൻ ചെയ്യുക" } \ No newline at end of file diff --git a/src/assets/locale/ml/knowledge.json b/src/assets/locale/ml/knowledge.json index 41d8267..6823f48 100644 --- a/src/assets/locale/ml/knowledge.json +++ b/src/assets/locale/ml/knowledge.json @@ -10,9 +10,6 @@ "expandedColumns": { "name": "നാമം" }, - "tooltip": { - "delete": "ഇല്ലാതാക്കുക" - }, "confirm": { "delete": "നിങ്ങൾക്ക് ഈ വിജ്ഞാനം ഇല്ലാതാക്കണമെന്ന് ഉറപ്പാണോ?" }, diff --git a/src/assets/locale/no/common.json b/src/assets/locale/no/common.json index 99c91ce..6665280 100644 --- a/src/assets/locale/no/common.json +++ b/src/assets/locale/no/common.json @@ -41,6 +41,7 @@ "webSearch": "Søker på internett", "regenerate": "Regenerer", "edit": "Endre", + "delete": "Slett", "saveAndSubmit": "Lagre & Send inn", "editMessage": { "placeholder": "Skriv en melding..." @@ -101,5 +102,15 @@ "translate": "Oversett", "custom": "Egendefinert" }, - "citations": "Sitater" + "citations": "Sitater", + "downloadCode": "Last ned kode", + "date": { + "pinned": "Festet", + "today": "I dag", + "yesterday": "I går", + "last7Days": "Siste 7 dager", + "older": "Eldre" + }, + "pin": "Fest", + "unpin": "Løsne" } \ No newline at end of file diff --git a/src/assets/locale/no/knowledge.json b/src/assets/locale/no/knowledge.json index c5f7311..3e963df 100644 --- a/src/assets/locale/no/knowledge.json +++ b/src/assets/locale/no/knowledge.json @@ -10,9 +10,6 @@ "expandedColumns": { "name": "Navn" }, - "tooltip": { - "delete": "Slett" - }, "confirm": { "delete": "Er du sikker på at du vil slette denne kunnskapen?" }, diff --git a/src/assets/locale/pt-BR/common.json b/src/assets/locale/pt-BR/common.json index c09c1b4..ba4f252 100644 --- a/src/assets/locale/pt-BR/common.json +++ b/src/assets/locale/pt-BR/common.json @@ -41,6 +41,7 @@ "webSearch": "Pesquisando na web", "regenerate": "Gerar Novamente", "edit": "Editar", + "delete": "Excluir", "saveAndSubmit": "Salvar & Enviar", "editMessage": { "placeholder": "Digite uma mensagem..." @@ -83,13 +84,13 @@ "placeholder": "Digite o valor do Top P (ex: 0.9, 0.95)" }, "numGpu": { - "label": "Num GPUs", - "placeholder": "Digite o número de camadas para enviar para a(s) GPU(s)" + "label": "Num GPUs", + "placeholder": "Digite o número de camadas para enviar para a(s) GPU(s)" }, "systemPrompt": { - "label": "Prompt do Sistema Temporário", - "placeholder": "Digite o Prompt do Sistema", - "help": "Esta é uma maneira rápida de definir o prompt do sistema no chat atual, que substituirá o prompt do sistema selecionado, se existir." + "label": "Prompt do Sistema Temporário", + "placeholder": "Digite o Prompt do Sistema", + "help": "Esta é uma maneira rápida de definir o prompt do sistema no chat atual, que substituirá o prompt do sistema selecionado, se existir." } }, "advanced": "Mais Configurações do Modelo" @@ -100,5 +101,15 @@ "rephrase": "Reformular", "translate": "Traduzir" }, - "citations": "Citações" + "citations": "Citações", + "downloadCode": "Baixar Código", + "date": { + "pinned": "Fixado", + "today": "Hoje", + "yesterday": "Ontem", + "last7Days": "Últimos 7 Dias", + "older": "Mais Antigos" + }, + "pin": "Fixar", + "unpin": "Desafixar" } \ No newline at end of file diff --git a/src/assets/locale/pt-BR/knowledge.json b/src/assets/locale/pt-BR/knowledge.json index 7d2ebcd..c06a85c 100644 --- a/src/assets/locale/pt-BR/knowledge.json +++ b/src/assets/locale/pt-BR/knowledge.json @@ -10,9 +10,6 @@ "expandedColumns": { "name": "Nome" }, - "tooltip": { - "delete": "Excluir" - }, "confirm": { "delete": "Tem certeza de que deseja excluir este conhecimento?" }, diff --git a/src/assets/locale/ru/common.json b/src/assets/locale/ru/common.json index 582896c..b619def 100644 --- a/src/assets/locale/ru/common.json +++ b/src/assets/locale/ru/common.json @@ -41,6 +41,7 @@ "webSearch": "Поиск в интернете", "regenerate": "Пересоздать", "edit": "Редактировать", + "delete": "Удалить", "saveAndSubmit": "Сохранить и отправить", "editMessage": { "placeholder": "Введите сообщение..." @@ -100,5 +101,15 @@ "rephrase": "Перефразировать", "translate": "Перевести" }, - "citations": "Цитаты" + "citations": "Цитаты", + "downloadCode": "Скачать код", + "date": { + "pinned": "Закреплено", + "today": "Сегодня", + "yesterday": "Вчера", + "last7Days": "Последние 7 дней", + "older": "Ранее" + }, + "pin": "Закрепить", + "unpin": "Открепить" } \ No newline at end of file diff --git a/src/assets/locale/ru/knowledge.json b/src/assets/locale/ru/knowledge.json index e0689c0..4cefca0 100644 --- a/src/assets/locale/ru/knowledge.json +++ b/src/assets/locale/ru/knowledge.json @@ -10,9 +10,6 @@ "expandedColumns": { "name": "Имя" }, - "tooltip": { - "delete": "Удалить" - }, "confirm": { "delete": "Вы уверены, что хотите удалить это знание?" }, diff --git a/src/assets/locale/zh/common.json b/src/assets/locale/zh/common.json index ddb08b4..cd58e05 100644 --- a/src/assets/locale/zh/common.json +++ b/src/assets/locale/zh/common.json @@ -41,6 +41,7 @@ "webSearch": "搜索网络", "regenerate": "重新生成", "edit": "编辑", + "delete": "删除", "saveAndSubmit": "保存 & 提交", "editMessage": { "placeholder": "输入一条消息..." @@ -100,5 +101,15 @@ "rephrase": "重述", "translate": "翻译" }, - "citations": "引用" + "citations": "引用", + "downloadCode": "下载代码", + "date": { + "pinned": "已置顶", + "today": "今天", + "yesterday": "昨天", + "last7Days": "最近7天", + "older": "更早" + }, + "pin": "置顶", + "unpin": "取消置顶" } \ No newline at end of file diff --git a/src/assets/locale/zh/knowledge.json b/src/assets/locale/zh/knowledge.json index fcbfdee..d981192 100644 --- a/src/assets/locale/zh/knowledge.json +++ b/src/assets/locale/zh/knowledge.json @@ -10,9 +10,6 @@ "expandedColumns": { "name": "名称" }, - "tooltip": { - "delete": "删除" - }, "confirm": { "delete": "您确定要删除此知识吗?" }, diff --git a/src/components/Common/CodeBlock.tsx b/src/components/Common/CodeBlock.tsx index ea112f2..af1e363 100644 --- a/src/components/Common/CodeBlock.tsx +++ b/src/components/Common/CodeBlock.tsx @@ -1,6 +1,7 @@ -import { Tooltip } from "antd" -import { CheckIcon, ClipboardIcon } from "lucide-react" -import { FC, useState } from "react" +import { programmingLanguages } from "@/utils/langauge-extension" +import { Tooltip, Modal } from "antd" +import { CheckIcon, ClipboardIcon, DownloadIcon } from "lucide-react" +import { FC, useState } from "react" import { useTranslation } from "react-i18next" import { Prism as SyntaxHighlighter } from "react-syntax-highlighter" import { coldarkDark } from "react-syntax-highlighter/dist/cjs/styles/prism" @@ -10,26 +11,53 @@ interface Props { value: string } -export const CodeBlock: FC =({ language, value }) => { +export const CodeBlock: FC = ({ language, value }) => { const [isBtnPressed, setIsBtnPressed] = useState(false) + const [previewVisible, setPreviewVisible] = useState(false) const { t } = useTranslation("common") + + const handleCopy = () => { + navigator.clipboard.writeText(value) + setIsBtnPressed(true) + setTimeout(() => { + setIsBtnPressed(false) + }, 4000) + } + + const handlePreviewClose = () => { + setPreviewVisible(false) + } + + const handleDownload = () => { + const blob = new Blob([value], { type: "text/plain" }) + const url = window.URL.createObjectURL(blob) + const a = document.createElement("a") + a.href = url + a.download = `code_${new Date().toISOString().replace(/[:.]/g, "-")}.${programmingLanguages[language] || language}` + document.body.appendChild(a) + a.click() + document.body.removeChild(a) + window.URL.revokeObjectURL(url) + } + return ( <> -
+
{language} -
+
+ + +
+ {previewVisible && ( + +
+