Forráskód Böngészése

enh: codespan click to copy content

Timothy J. Baek 8 hónapja
szülő
commit
7fc049a513
42 módosított fájl, 59 hozzáadás és 5 törlés
  1. 18 5
      src/lib/components/chat/Messages/Markdown/MarkdownInlineTokens.svelte
  2. 1 0
      src/lib/i18n/locales/ar-BH/translation.json
  3. 1 0
      src/lib/i18n/locales/bg-BG/translation.json
  4. 1 0
      src/lib/i18n/locales/bn-BD/translation.json
  5. 1 0
      src/lib/i18n/locales/ca-ES/translation.json
  6. 1 0
      src/lib/i18n/locales/ceb-PH/translation.json
  7. 1 0
      src/lib/i18n/locales/de-DE/translation.json
  8. 1 0
      src/lib/i18n/locales/dg-DG/translation.json
  9. 1 0
      src/lib/i18n/locales/en-GB/translation.json
  10. 1 0
      src/lib/i18n/locales/en-US/translation.json
  11. 1 0
      src/lib/i18n/locales/es-ES/translation.json
  12. 1 0
      src/lib/i18n/locales/fa-IR/translation.json
  13. 1 0
      src/lib/i18n/locales/fi-FI/translation.json
  14. 1 0
      src/lib/i18n/locales/fr-CA/translation.json
  15. 1 0
      src/lib/i18n/locales/fr-FR/translation.json
  16. 1 0
      src/lib/i18n/locales/he-IL/translation.json
  17. 1 0
      src/lib/i18n/locales/hi-IN/translation.json
  18. 1 0
      src/lib/i18n/locales/hr-HR/translation.json
  19. 1 0
      src/lib/i18n/locales/id-ID/translation.json
  20. 1 0
      src/lib/i18n/locales/it-IT/translation.json
  21. 1 0
      src/lib/i18n/locales/ja-JP/translation.json
  22. 1 0
      src/lib/i18n/locales/ka-GE/translation.json
  23. 1 0
      src/lib/i18n/locales/ko-KR/translation.json
  24. 1 0
      src/lib/i18n/locales/lt-LT/translation.json
  25. 1 0
      src/lib/i18n/locales/ms-MY/translation.json
  26. 1 0
      src/lib/i18n/locales/nb-NO/translation.json
  27. 1 0
      src/lib/i18n/locales/nl-NL/translation.json
  28. 1 0
      src/lib/i18n/locales/pa-IN/translation.json
  29. 1 0
      src/lib/i18n/locales/pl-PL/translation.json
  30. 1 0
      src/lib/i18n/locales/pt-BR/translation.json
  31. 1 0
      src/lib/i18n/locales/pt-PT/translation.json
  32. 1 0
      src/lib/i18n/locales/ro-RO/translation.json
  33. 1 0
      src/lib/i18n/locales/ru-RU/translation.json
  34. 1 0
      src/lib/i18n/locales/sr-RS/translation.json
  35. 1 0
      src/lib/i18n/locales/sv-SE/translation.json
  36. 1 0
      src/lib/i18n/locales/th-TH/translation.json
  37. 1 0
      src/lib/i18n/locales/tk-TW/translation.json
  38. 1 0
      src/lib/i18n/locales/tr-TR/translation.json
  39. 1 0
      src/lib/i18n/locales/uk-UA/translation.json
  40. 1 0
      src/lib/i18n/locales/vi-VN/translation.json
  41. 1 0
      src/lib/i18n/locales/zh-CN/translation.json
  42. 1 0
      src/lib/i18n/locales/zh-TW/translation.json

+ 18 - 5
src/lib/components/chat/Messages/Markdown/MarkdownInlineTokens.svelte

@@ -1,12 +1,17 @@
 <script lang="ts">
 	import DOMPurify from 'dompurify';
+	import { toast } from 'svelte-sonner';
+
 	import type { Token } from 'marked';
-	import { revertSanitizedResponseContent, unescapeHtml } from '$lib/utils';
-	import { onMount } from 'svelte';
-	import Image from '$lib/components/common/Image.svelte';
+	import { getContext } from 'svelte';
+
+	const i18n = getContext('i18n');
 
-	import KatexRenderer from './KatexRenderer.svelte';
 	import { WEBUI_BASE_URL } from '$lib/constants';
+	import { copyToClipboard, revertSanitizedResponseContent, unescapeHtml } from '$lib/utils';
+
+	import Image from '$lib/components/common/Image.svelte';
+	import KatexRenderer from './KatexRenderer.svelte';
 
 	export let id: string;
 	export let tokens: Token[];
@@ -37,7 +42,15 @@
 			<svelte:self id={`${id}-em`} tokens={token.tokens} />
 		</em>
 	{:else if token.type === 'codespan'}
-		<code class="codespan">{unescapeHtml(token.text)}</code>
+		<!-- svelte-ignore a11y-click-events-have-key-events -->
+		<!-- svelte-ignore a11y-no-noninteractive-element-interactions -->
+		<code
+			class="codespan cursor-pointer"
+			on:click={() => {
+				copyToClipboard(unescapeHtml(token.text));
+				toast.success($i18n.t('Copied to clipboard'));
+			}}>{unescapeHtml(token.text)}</code
+		>
 	{:else if token.type === 'br'}
 		<br />
 	{:else if token.type === 'del'}

+ 1 - 0
src/lib/i18n/locales/ar-BH/translation.json

@@ -140,6 +140,7 @@
 	"Controls": "",
 	"Copied": "",
 	"Copied shared chat URL to clipboard!": "تم نسخ عنوان URL للدردشة المشتركة إلى الحافظة",
+	"Copied to clipboard": "",
 	"Copy": "نسخ",
 	"Copy Code": "",
 	"Copy last code block": "انسخ كتلة التعليمات البرمجية الأخيرة",

+ 1 - 0
src/lib/i18n/locales/bg-BG/translation.json

@@ -140,6 +140,7 @@
 	"Controls": "",
 	"Copied": "",
 	"Copied shared chat URL to clipboard!": "Копирана е връзката за чат!",
+	"Copied to clipboard": "",
 	"Copy": "Копирай",
 	"Copy Code": "",
 	"Copy last code block": "Копиране на последен код блок",

+ 1 - 0
src/lib/i18n/locales/bn-BD/translation.json

@@ -140,6 +140,7 @@
 	"Controls": "",
 	"Copied": "",
 	"Copied shared chat URL to clipboard!": "শেয়ারকৃত কথা-ব্যবহারের URL ক্লিপবোর্ডে কপি করা হয়েছে!",
+	"Copied to clipboard": "",
 	"Copy": "অনুলিপি",
 	"Copy Code": "",
 	"Copy last code block": "সর্বশেষ কোড ব্লক কপি করুন",

+ 1 - 0
src/lib/i18n/locales/ca-ES/translation.json

@@ -140,6 +140,7 @@
 	"Controls": "Controls",
 	"Copied": "Copiat",
 	"Copied shared chat URL to clipboard!": "S'ha copiat l'URL compartida al porta-retalls!",
+	"Copied to clipboard": "",
 	"Copy": "Copiar",
 	"Copy Code": "Copiar el codi",
 	"Copy last code block": "Copiar l'últim bloc de codi",

+ 1 - 0
src/lib/i18n/locales/ceb-PH/translation.json

@@ -140,6 +140,7 @@
 	"Controls": "",
 	"Copied": "",
 	"Copied shared chat URL to clipboard!": "",
+	"Copied to clipboard": "",
 	"Copy": "",
 	"Copy Code": "",
 	"Copy last code block": "Kopyaha ang katapusang bloke sa code",

+ 1 - 0
src/lib/i18n/locales/de-DE/translation.json

@@ -140,6 +140,7 @@
 	"Controls": "",
 	"Copied": "",
 	"Copied shared chat URL to clipboard!": "Freigabelink in die Zwischenablage kopiert!",
+	"Copied to clipboard": "",
 	"Copy": "Kopieren",
 	"Copy Code": "",
 	"Copy last code block": "Letzten Codeblock kopieren",

+ 1 - 0
src/lib/i18n/locales/dg-DG/translation.json

@@ -140,6 +140,7 @@
 	"Controls": "",
 	"Copied": "",
 	"Copied shared chat URL to clipboard!": "",
+	"Copied to clipboard": "",
 	"Copy": "",
 	"Copy Code": "",
 	"Copy last code block": "Copy last code block",

+ 1 - 0
src/lib/i18n/locales/en-GB/translation.json

@@ -140,6 +140,7 @@
 	"Controls": "",
 	"Copied": "",
 	"Copied shared chat URL to clipboard!": "",
+	"Copied to clipboard": "",
 	"Copy": "",
 	"Copy Code": "",
 	"Copy last code block": "",

+ 1 - 0
src/lib/i18n/locales/en-US/translation.json

@@ -140,6 +140,7 @@
 	"Controls": "",
 	"Copied": "",
 	"Copied shared chat URL to clipboard!": "",
+	"Copied to clipboard": "",
 	"Copy": "",
 	"Copy Code": "",
 	"Copy last code block": "",

+ 1 - 0
src/lib/i18n/locales/es-ES/translation.json

@@ -140,6 +140,7 @@
 	"Controls": "",
 	"Copied": "",
 	"Copied shared chat URL to clipboard!": "¡URL de chat compartido copiado al portapapeles!",
+	"Copied to clipboard": "",
 	"Copy": "Copiar",
 	"Copy Code": "",
 	"Copy last code block": "Copia el último bloque de código",

+ 1 - 0
src/lib/i18n/locales/fa-IR/translation.json

@@ -140,6 +140,7 @@
 	"Controls": "",
 	"Copied": "",
 	"Copied shared chat URL to clipboard!": "URL چت به کلیپ بورد کپی شد!",
+	"Copied to clipboard": "",
 	"Copy": "کپی",
 	"Copy Code": "",
 	"Copy last code block": "کپی آخرین بلوک کد",

+ 1 - 0
src/lib/i18n/locales/fi-FI/translation.json

@@ -140,6 +140,7 @@
 	"Controls": "",
 	"Copied": "",
 	"Copied shared chat URL to clipboard!": "Jaettu keskustelulinkki kopioitu leikepöydälle!",
+	"Copied to clipboard": "",
 	"Copy": "Kopioi",
 	"Copy Code": "",
 	"Copy last code block": "Kopioi viimeisin koodilohko",

+ 1 - 0
src/lib/i18n/locales/fr-CA/translation.json

@@ -140,6 +140,7 @@
 	"Controls": "",
 	"Copied": "",
 	"Copied shared chat URL to clipboard!": "URL du chat copiée dans le presse-papiers\u00a0!",
+	"Copied to clipboard": "",
 	"Copy": "Copie",
 	"Copy Code": "",
 	"Copy last code block": "Copier le dernier bloc de code",

+ 1 - 0
src/lib/i18n/locales/fr-FR/translation.json

@@ -140,6 +140,7 @@
 	"Controls": "Contrôles",
 	"Copied": "Copié",
 	"Copied shared chat URL to clipboard!": "URL du chat copiée dans le presse-papiers\u00a0!",
+	"Copied to clipboard": "",
 	"Copy": "Copie",
 	"Copy Code": "Copier le code",
 	"Copy last code block": "Copier le dernier bloc de code",

+ 1 - 0
src/lib/i18n/locales/he-IL/translation.json

@@ -140,6 +140,7 @@
 	"Controls": "",
 	"Copied": "",
 	"Copied shared chat URL to clipboard!": "העתקת כתובת URL של צ'אט משותף ללוח!",
+	"Copied to clipboard": "",
 	"Copy": "העתק",
 	"Copy Code": "",
 	"Copy last code block": "העתק את בלוק הקוד האחרון",

+ 1 - 0
src/lib/i18n/locales/hi-IN/translation.json

@@ -140,6 +140,7 @@
 	"Controls": "",
 	"Copied": "",
 	"Copied shared chat URL to clipboard!": "साझा चैट URL को क्लिपबोर्ड पर कॉपी किया गया!",
+	"Copied to clipboard": "",
 	"Copy": "कॉपी",
 	"Copy Code": "",
 	"Copy last code block": "अंतिम कोड ब्लॉक कॉपी करें",

+ 1 - 0
src/lib/i18n/locales/hr-HR/translation.json

@@ -140,6 +140,7 @@
 	"Controls": "",
 	"Copied": "",
 	"Copied shared chat URL to clipboard!": "URL dijeljenog razgovora kopiran u međuspremnik!",
+	"Copied to clipboard": "",
 	"Copy": "Kopiraj",
 	"Copy Code": "",
 	"Copy last code block": "Kopiraj zadnji blok koda",

+ 1 - 0
src/lib/i18n/locales/id-ID/translation.json

@@ -140,6 +140,7 @@
 	"Controls": "",
 	"Copied": "",
 	"Copied shared chat URL to clipboard!": "Menyalin URL obrolan bersama ke papan klip!",
+	"Copied to clipboard": "",
 	"Copy": "Menyalin",
 	"Copy Code": "",
 	"Copy last code block": "Salin blok kode terakhir",

+ 1 - 0
src/lib/i18n/locales/it-IT/translation.json

@@ -140,6 +140,7 @@
 	"Controls": "",
 	"Copied": "",
 	"Copied shared chat URL to clipboard!": "URL della chat condivisa copiato negli appunti!",
+	"Copied to clipboard": "",
 	"Copy": "Copia",
 	"Copy Code": "",
 	"Copy last code block": "Copia ultimo blocco di codice",

+ 1 - 0
src/lib/i18n/locales/ja-JP/translation.json

@@ -140,6 +140,7 @@
 	"Controls": "",
 	"Copied": "",
 	"Copied shared chat URL to clipboard!": "共有チャットURLをクリップボードにコピーしました!",
+	"Copied to clipboard": "",
 	"Copy": "コピー",
 	"Copy Code": "",
 	"Copy last code block": "最後のコードブロックをコピー",

+ 1 - 0
src/lib/i18n/locales/ka-GE/translation.json

@@ -140,6 +140,7 @@
 	"Controls": "",
 	"Copied": "",
 	"Copied shared chat URL to clipboard!": "ყავს ჩათის URL-ი კლიპბორდში!",
+	"Copied to clipboard": "",
 	"Copy": "კოპირება",
 	"Copy Code": "",
 	"Copy last code block": "ბოლო ბლოკის კოპირება",

+ 1 - 0
src/lib/i18n/locales/ko-KR/translation.json

@@ -140,6 +140,7 @@
 	"Controls": "",
 	"Copied": "",
 	"Copied shared chat URL to clipboard!": "공유 채팅 URL이 클립보드에 복사되었습니다!",
+	"Copied to clipboard": "",
 	"Copy": "복사",
 	"Copy Code": "",
 	"Copy last code block": "마지막 코드 블록 복사",

+ 1 - 0
src/lib/i18n/locales/lt-LT/translation.json

@@ -140,6 +140,7 @@
 	"Controls": "Valdymas",
 	"Copied": "Nukopijuota",
 	"Copied shared chat URL to clipboard!": "Nukopijavote pokalbio nuorodą",
+	"Copied to clipboard": "",
 	"Copy": "Kopijuoti",
 	"Copy Code": "Kopijuoti kodą",
 	"Copy last code block": "Kopijuoti paskutinį kodo bloką",

+ 1 - 0
src/lib/i18n/locales/ms-MY/translation.json

@@ -140,6 +140,7 @@
 	"Controls": "Kawalan",
 	"Copied": "Disalin",
 	"Copied shared chat URL to clipboard!": "Menyalin URL sembang kongsi ke papan klip",
+	"Copied to clipboard": "",
 	"Copy": "Salin",
 	"Copy Code": "Salin Kod",
 	"Copy last code block": "Salin Blok Kod Terakhir",

+ 1 - 0
src/lib/i18n/locales/nb-NO/translation.json

@@ -140,6 +140,7 @@
 	"Controls": "Kontroller",
 	"Copied": "",
 	"Copied shared chat URL to clipboard!": "Kopiert delt chat-URL til utklippstavlen!",
+	"Copied to clipboard": "",
 	"Copy": "Kopier",
 	"Copy Code": "",
 	"Copy last code block": "Kopier siste kodeblokk",

+ 1 - 0
src/lib/i18n/locales/nl-NL/translation.json

@@ -140,6 +140,7 @@
 	"Controls": "",
 	"Copied": "",
 	"Copied shared chat URL to clipboard!": "URL van gedeelde gesprekspagina gekopieerd naar klembord!",
+	"Copied to clipboard": "",
 	"Copy": "Kopieer",
 	"Copy Code": "",
 	"Copy last code block": "Kopieer laatste code blok",

+ 1 - 0
src/lib/i18n/locales/pa-IN/translation.json

@@ -140,6 +140,7 @@
 	"Controls": "",
 	"Copied": "",
 	"Copied shared chat URL to clipboard!": "ਸਾਂਝੇ ਕੀਤੇ ਗੱਲਬਾਤ URL ਨੂੰ ਕਲਿੱਪਬੋਰਡ 'ਤੇ ਕਾਪੀ ਕਰ ਦਿੱਤਾ!",
+	"Copied to clipboard": "",
 	"Copy": "ਕਾਪੀ ਕਰੋ",
 	"Copy Code": "",
 	"Copy last code block": "ਆਖਰੀ ਕੋਡ ਬਲਾਕ ਨੂੰ ਕਾਪੀ ਕਰੋ",

+ 1 - 0
src/lib/i18n/locales/pl-PL/translation.json

@@ -140,6 +140,7 @@
 	"Controls": "",
 	"Copied": "",
 	"Copied shared chat URL to clipboard!": "Skopiowano URL czatu do schowka!",
+	"Copied to clipboard": "",
 	"Copy": "Kopiuj",
 	"Copy Code": "",
 	"Copy last code block": "Skopiuj ostatni blok kodu",

+ 1 - 0
src/lib/i18n/locales/pt-BR/translation.json

@@ -140,6 +140,7 @@
 	"Controls": "Controles",
 	"Copied": "",
 	"Copied shared chat URL to clipboard!": "URL de chat compartilhado copiado para a área de transferência!",
+	"Copied to clipboard": "",
 	"Copy": "Copiar",
 	"Copy Code": "",
 	"Copy last code block": "Copiar último bloco de código",

+ 1 - 0
src/lib/i18n/locales/pt-PT/translation.json

@@ -140,6 +140,7 @@
 	"Controls": "",
 	"Copied": "",
 	"Copied shared chat URL to clipboard!": "URL de Conversa partilhado copiada com sucesso!",
+	"Copied to clipboard": "",
 	"Copy": "Copiar",
 	"Copy Code": "",
 	"Copy last code block": "Copiar último bloco de código",

+ 1 - 0
src/lib/i18n/locales/ro-RO/translation.json

@@ -140,6 +140,7 @@
 	"Controls": "Controale",
 	"Copied": "",
 	"Copied shared chat URL to clipboard!": "URL-ul conversației partajate a fost copiat în clipboard!",
+	"Copied to clipboard": "",
 	"Copy": "Copiază",
 	"Copy Code": "",
 	"Copy last code block": "Copiază ultimul bloc de cod",

+ 1 - 0
src/lib/i18n/locales/ru-RU/translation.json

@@ -140,6 +140,7 @@
 	"Controls": "Управление",
 	"Copied": "Скопировано",
 	"Copied shared chat URL to clipboard!": "Копирование в буфер обмена выполнено успешно!",
+	"Copied to clipboard": "",
 	"Copy": "Копировать",
 	"Copy Code": "Скопировать код",
 	"Copy last code block": "Копировать последний блок кода",

+ 1 - 0
src/lib/i18n/locales/sr-RS/translation.json

@@ -140,6 +140,7 @@
 	"Controls": "",
 	"Copied": "",
 	"Copied shared chat URL to clipboard!": "Адреса дељеног ћаскања ископирана у оставу!",
+	"Copied to clipboard": "",
 	"Copy": "Копирај",
 	"Copy Code": "",
 	"Copy last code block": "Копирај последњи блок кода",

+ 1 - 0
src/lib/i18n/locales/sv-SE/translation.json

@@ -140,6 +140,7 @@
 	"Controls": "",
 	"Copied": "",
 	"Copied shared chat URL to clipboard!": "Kopierad delad chatt-URL till urklipp!",
+	"Copied to clipboard": "",
 	"Copy": "Kopiera",
 	"Copy Code": "",
 	"Copy last code block": "Kopiera sista kodblock",

+ 1 - 0
src/lib/i18n/locales/th-TH/translation.json

@@ -140,6 +140,7 @@
 	"Controls": "การควบคุม",
 	"Copied": "",
 	"Copied shared chat URL to clipboard!": "คัดลอก URL แชทที่แชร์ไปยังคลิปบอร์ดแล้ว!",
+	"Copied to clipboard": "",
 	"Copy": "คัดลอก",
 	"Copy Code": "",
 	"Copy last code block": "คัดลอกบล็อกโค้ดสุดท้าย",

+ 1 - 0
src/lib/i18n/locales/tk-TW/translation.json

@@ -140,6 +140,7 @@
 	"Controls": "",
 	"Copied": "",
 	"Copied shared chat URL to clipboard!": "",
+	"Copied to clipboard": "",
 	"Copy": "",
 	"Copy Code": "",
 	"Copy last code block": "",

+ 1 - 0
src/lib/i18n/locales/tr-TR/translation.json

@@ -140,6 +140,7 @@
 	"Controls": "",
 	"Copied": "",
 	"Copied shared chat URL to clipboard!": "Paylaşılan sohbet URL'si panoya kopyalandı!",
+	"Copied to clipboard": "",
 	"Copy": "Kopyala",
 	"Copy Code": "",
 	"Copy last code block": "Son kod bloğunu kopyala",

+ 1 - 0
src/lib/i18n/locales/uk-UA/translation.json

@@ -140,6 +140,7 @@
 	"Controls": "Керування",
 	"Copied": "Скопійовано",
 	"Copied shared chat URL to clipboard!": "Скопійовано URL-адресу спільного чату в буфер обміну!",
+	"Copied to clipboard": "",
 	"Copy": "Копіювати",
 	"Copy Code": "Копіювати код",
 	"Copy last code block": "Копіювати останній блок коду",

+ 1 - 0
src/lib/i18n/locales/vi-VN/translation.json

@@ -140,6 +140,7 @@
 	"Controls": "",
 	"Copied": "Đã sao chép",
 	"Copied shared chat URL to clipboard!": "Đã sao chép link chia sẻ trò chuyện vào clipboard!",
+	"Copied to clipboard": "",
 	"Copy": "Sao chép",
 	"Copy Code": "Sao chép Code",
 	"Copy last code block": "Sao chép khối mã cuối cùng",

+ 1 - 0
src/lib/i18n/locales/zh-CN/translation.json

@@ -140,6 +140,7 @@
 	"Controls": "对话高级设置",
 	"Copied": "已复制",
 	"Copied shared chat URL to clipboard!": "已复制此对话分享链接至剪贴板!",
+	"Copied to clipboard": "",
 	"Copy": "复制",
 	"Copy Code": "复制代码",
 	"Copy last code block": "复制最后一个代码块中的代码",

+ 1 - 0
src/lib/i18n/locales/zh-TW/translation.json

@@ -140,6 +140,7 @@
 	"Controls": "控制項",
 	"Copied": "",
 	"Copied shared chat URL to clipboard!": "已複製共用對話 URL 到剪貼簿!",
+	"Copied to clipboard": "",
 	"Copy": "複製",
 	"Copy Code": "",
 	"Copy last code block": "複製最後一個程式碼區塊",