@djangocfg/widget-chat 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +124 -0
- package/package.json +95 -0
- package/src/composer/composer.tsx +100 -0
- package/src/composer/context.ts +33 -0
- package/src/composer/controls/button.tsx +104 -0
- package/src/composer/controls/language-menu.tsx +123 -0
- package/src/composer/controls/send.tsx +83 -0
- package/src/composer/controls/think.tsx +50 -0
- package/src/composer/controls/tools.tsx +130 -0
- package/src/composer/controls/tooltip.tsx +10 -0
- package/src/composer/controls/voice.tsx +266 -0
- package/src/composer/field/field.tsx +140 -0
- package/src/composer/field/input.tsx +214 -0
- package/src/composer/field/keys.ts +44 -0
- package/src/composer/field/use-autosize.ts +134 -0
- package/src/composer/focus-field.ts +27 -0
- package/src/composer/index.ts +86 -0
- package/src/composer/stories/field.tsx +112 -0
- package/src/composer/stories/harness.tsx +127 -0
- package/src/composer/tools/menu.tsx +129 -0
- package/src/composer/tools/rows.tsx +180 -0
- package/src/composer/tools/use-menu-nav.ts +66 -0
- package/src/composer/tools/use-recent-tools.ts +30 -0
- package/src/composer/tray/banner.tsx +157 -0
- package/src/composer/tray/command-progress.tsx +116 -0
- package/src/composer/tray/picked-tools.tsx +104 -0
- package/src/composer/tray/queue.tsx +202 -0
- package/src/composer/tray/use-replace-text.ts +58 -0
- package/src/composer/use-draft-persistence.ts +79 -0
- package/src/content/index.ts +16 -0
- package/src/content/media-content.tsx +38 -0
- package/src/content/response.tsx +221 -0
- package/src/core/adapter.ts +29 -0
- package/src/core/capabilities.ts +286 -0
- package/src/core/chunks.ts +66 -0
- package/src/core/content/incomplete-math.ts +118 -0
- package/src/core/content/index.ts +9 -0
- package/src/core/draft-storage.ts +62 -0
- package/src/core/events.ts +88 -0
- package/src/core/focus/index.ts +10 -0
- package/src/core/focus/roving.ts +56 -0
- package/src/core/group-parts.ts +80 -0
- package/src/core/index.ts +34 -0
- package/src/core/links/index.ts +33 -0
- package/src/core/links/prose.ts +191 -0
- package/src/core/links/scheme.ts +98 -0
- package/src/core/links/tool-id.ts +26 -0
- package/src/core/media/allowed-src.ts +138 -0
- package/src/core/media/block.ts +254 -0
- package/src/core/media/index.ts +22 -0
- package/src/core/media/kinds.ts +85 -0
- package/src/core/outbound.ts +86 -0
- package/src/core/parts.ts +169 -0
- package/src/core/queue/index.ts +15 -0
- package/src/core/queue/queue.ts +100 -0
- package/src/core/recall/boundary.ts +77 -0
- package/src/core/recall/from-transcript.ts +47 -0
- package/src/core/recall/index.ts +23 -0
- package/src/core/recall/ladder.ts +171 -0
- package/src/core/reload-decision.ts +36 -0
- package/src/core/scroll/index.ts +17 -0
- package/src/core/scroll/missed.ts +106 -0
- package/src/core/scroll/sent.ts +54 -0
- package/src/core/text-replace.ts +20 -0
- package/src/core/tool-name.ts +31 -0
- package/src/core/tool-picks-set.ts +48 -0
- package/src/core/tool-picks.ts +142 -0
- package/src/core/tool-prompt.ts +47 -0
- package/src/core/tools/capability.ts +34 -0
- package/src/core/tools/catalogue.ts +109 -0
- package/src/core/tools/index.ts +17 -0
- package/src/core/tools/layout.ts +44 -0
- package/src/core/tools/nav.ts +32 -0
- package/src/core/tools/rank.ts +60 -0
- package/src/core/tools/recent.ts +39 -0
- package/src/core/transcript.ts +301 -0
- package/src/core/voice/earcons.ts +58 -0
- package/src/core/voice/index.ts +26 -0
- package/src/core/voice/language-search.ts +62 -0
- package/src/core/voice/languages.ts +267 -0
- package/src/core/voice/resolve-language.ts +93 -0
- package/src/core/voice/session.ts +196 -0
- package/src/core/voice/web-speech.ts +170 -0
- package/src/i18n/index.ts +87 -0
- package/src/i18n/locales/ar.ts +97 -0
- package/src/i18n/locales/da.ts +90 -0
- package/src/i18n/locales/de.ts +90 -0
- package/src/i18n/locales/en.ts +90 -0
- package/src/i18n/locales/es.ts +90 -0
- package/src/i18n/locales/fr.ts +90 -0
- package/src/i18n/locales/it.ts +90 -0
- package/src/i18n/locales/ja.ts +83 -0
- package/src/i18n/locales/ko.ts +83 -0
- package/src/i18n/locales/nl.ts +90 -0
- package/src/i18n/locales/no.ts +90 -0
- package/src/i18n/locales/pl.ts +96 -0
- package/src/i18n/locales/ptBR.ts +90 -0
- package/src/i18n/locales/ru.ts +96 -0
- package/src/i18n/locales/sv.ts +90 -0
- package/src/i18n/locales/tr.ts +89 -0
- package/src/i18n/locales/zh.ts +83 -0
- package/src/i18n/plural.ts +62 -0
- package/src/i18n/types.ts +257 -0
- package/src/index.ts +18 -0
- package/src/primitives/index.ts +43 -0
- package/src/primitives/message.tsx +85 -0
- package/src/primitives/part-registry.tsx +44 -0
- package/src/primitives/stories-harness.tsx +118 -0
- package/src/primitives/suggestions.tsx +112 -0
- package/src/primitives/tool-call.tsx +145 -0
- package/src/primitives/tooltip.tsx +48 -0
- package/src/primitives/transcript.tsx +285 -0
- package/src/primitives/use-dismiss.ts +100 -0
- package/src/primitives/use-missed-count.ts +30 -0
- package/src/primitives/use-overflows.ts +69 -0
- package/src/primitives/use-return-on-send.ts +29 -0
- package/src/primitives/use-roving-focus.ts +69 -0
- package/src/primitives/use-select-all-transcript.ts +111 -0
- package/src/primitives/use-stick-to-bottom.ts +83 -0
- package/src/primitives/use-turn-activity.ts +25 -0
- package/src/store/context.ts +28 -0
- package/src/store/hooks.ts +215 -0
- package/src/store/index.ts +31 -0
- package/src/store/provider.tsx +97 -0
- package/src/store/store.ts +394 -0
- package/src/store/subscribers.ts +55 -0
- package/src/store/surfaces.ts +174 -0
- package/src/store/use-draft.ts +168 -0
- package/src/store/use-queue.ts +61 -0
- package/src/store/use-recall.ts +264 -0
- package/src/store/use-reload-on-revision.ts +67 -0
- package/src/store/use-speech-language.ts +84 -0
- package/src/store/use-voice.ts +116 -0
- package/src/styles/block.css +128 -0
- package/src/styles/composer.css +449 -0
- package/src/styles/index.css +47 -0
- package/src/styles/markdown.css +368 -0
- package/src/styles/surface.css +102 -0
- package/src/styles/tool.css +128 -0
- package/src/styles/turn-mark.css +97 -0
- package/src/testing/index.ts +15 -0
- package/src/testing/mock-adapter.ts +69 -0
- package/src/testing/mock-tools.ts +101 -0
- package/src/testing/mock-voice.ts +81 -0
- package/src/ui/chat-composer.tsx +286 -0
- package/src/ui/chat-reply-chip.tsx +42 -0
- package/src/ui/chat-suggestions.tsx +87 -0
- package/src/ui/chat-transcript.tsx +157 -0
- package/src/ui/chat.tsx +197 -0
- package/src/ui/collapsible-body.tsx +180 -0
- package/src/ui/collapsible-row.tsx +81 -0
- package/src/ui/day-divider.tsx +49 -0
- package/src/ui/index.ts +54 -0
- package/src/ui/jump-to-latest.tsx +60 -0
- package/src/ui/link-chip.tsx +73 -0
- package/src/ui/message-actions.tsx +163 -0
- package/src/ui/message-quote.tsx +47 -0
- package/src/ui/message.tsx +295 -0
- package/src/ui/pending.tsx +85 -0
- package/src/ui/renderers/data.tsx +63 -0
- package/src/ui/renderers/reasoning.tsx +73 -0
- package/src/ui/renderers/tool.tsx +176 -0
- package/src/ui/turn-mark.tsx +31 -0
- package/src/utils/day-heading.ts +46 -0
- package/src/utils/error-message.ts +10 -0
- package/src/utils/index.ts +12 -0
- package/src/utils/markdown-text.ts +175 -0
- package/src/widgets/index.ts +14 -0
- package/src/widgets/media.tsx +239 -0
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import type { ChatCopy } from "../types";
|
|
2
|
+
|
|
3
|
+
export const de: ChatCopy = {
|
|
4
|
+
transcript: {
|
|
5
|
+
empty: "Noch keine Nachrichten.",
|
|
6
|
+
suggestionsLabel: "Vorgeschlagene Eingaben",
|
|
7
|
+
log: "Unterhaltung",
|
|
8
|
+
announceStreaming: "Assistent antwortet",
|
|
9
|
+
announceComplete: "Antwort abgeschlossen",
|
|
10
|
+
jumpToLatest: "Zum Neuesten",
|
|
11
|
+
thinking: "Denkt nach",
|
|
12
|
+
thinkingElapsed: "{{seconds}} s",
|
|
13
|
+
today: "Heute",
|
|
14
|
+
yesterday: "Gestern",
|
|
15
|
+
},
|
|
16
|
+
message: {
|
|
17
|
+
copy: "Kopieren",
|
|
18
|
+
reply: "Antworten",
|
|
19
|
+
copyLink: "Link kopieren",
|
|
20
|
+
copiedLink: "Link kopiert",
|
|
21
|
+
jumpToQuoted: "Zur zitierten Nachricht",
|
|
22
|
+
copied: "Kopiert",
|
|
23
|
+
reasoning: "Überlegung",
|
|
24
|
+
reasoningLive: "Überlegt…",
|
|
25
|
+
reasoningTokens: {
|
|
26
|
+
one: "{{count}} Token nachgedacht",
|
|
27
|
+
other: "{{count}} Token nachgedacht",
|
|
28
|
+
},
|
|
29
|
+
showMore: "Mehr anzeigen",
|
|
30
|
+
showLess: "Weniger anzeigen",
|
|
31
|
+
},
|
|
32
|
+
tool: {
|
|
33
|
+
inputStreaming: "Wird vorbereitet",
|
|
34
|
+
inputAvailable: "Läuft",
|
|
35
|
+
outputAvailable: "Fertig",
|
|
36
|
+
outputError: "Fehlgeschlagen",
|
|
37
|
+
collapse: "Werkzeugaufruf einklappen",
|
|
38
|
+
expand: "Werkzeugaufruf ausklappen",
|
|
39
|
+
},
|
|
40
|
+
composer: {
|
|
41
|
+
replyClear: "Antwort verwerfen",
|
|
42
|
+
input: "Nachricht",
|
|
43
|
+
placeholder: "Frag mich alles",
|
|
44
|
+
send: "Senden",
|
|
45
|
+
sendShortcut: "Enter zum Senden",
|
|
46
|
+
stop: "Stoppen",
|
|
47
|
+
toolsMenu: "Werkzeuge",
|
|
48
|
+
toolsSearch: "Werkzeug suchen…",
|
|
49
|
+
toolsEmpty: "Kein solches Werkzeug",
|
|
50
|
+
toolsRecent: "Zuletzt verwendet",
|
|
51
|
+
toolsForget: "Aus den zuletzt verwendeten entfernen",
|
|
52
|
+
toolRemove: "Werkzeug entfernen",
|
|
53
|
+
needsFile: "Datei anhängen",
|
|
54
|
+
needsSkill: "Skill benennen",
|
|
55
|
+
toolsPicked: "Ausgewählte Werkzeuge",
|
|
56
|
+
thinkOn: "Länger nachdenken (langsamer, teurer)",
|
|
57
|
+
thinkOff: "Längeres Nachdenken beenden",
|
|
58
|
+
},
|
|
59
|
+
queue: {
|
|
60
|
+
prompts: {
|
|
61
|
+
one: "{{count}} Nachricht in der Warteschlange",
|
|
62
|
+
other: "{{count}} Nachrichten in der Warteschlange",
|
|
63
|
+
},
|
|
64
|
+
more: {
|
|
65
|
+
one: "{{count}} weitere",
|
|
66
|
+
other: "{{count}} weitere",
|
|
67
|
+
},
|
|
68
|
+
showLess: "Weniger anzeigen",
|
|
69
|
+
remove: "Aus der Warteschlange entfernen",
|
|
70
|
+
show: "Warteschlange anzeigen",
|
|
71
|
+
edit: "Anfrage bearbeiten",
|
|
72
|
+
send: "Jetzt senden",
|
|
73
|
+
sendNow: "Jetzt senden und die laufende Antwort abbrechen",
|
|
74
|
+
sendNowConfirmTitle: "Diese Nachricht jetzt senden?",
|
|
75
|
+
sendNowConfirmMessage:
|
|
76
|
+
"Die laufende Antwort wird abgebrochen und ihre unfertige Arbeit geht verloren. Die übrigen Nachrichten behalten ihre Reihenfolge.",
|
|
77
|
+
replaceDraftTitle: "Eingegebenen Text ersetzen?",
|
|
78
|
+
replaceDraftMessage:
|
|
79
|
+
"Ihr Entwurf und diese Nachricht unterscheiden sich. Wählen Sie, was bleibt.",
|
|
80
|
+
},
|
|
81
|
+
voice: {
|
|
82
|
+
start: "Diktieren",
|
|
83
|
+
stop: "Diktat beenden",
|
|
84
|
+
language: "Diktatsprache",
|
|
85
|
+
languageMenu: "Diktatsprache",
|
|
86
|
+
languageSearch: "Sprachen suchen",
|
|
87
|
+
languageEmpty: "Keine Sprache gefunden",
|
|
88
|
+
languageBack: "Zurück",
|
|
89
|
+
},
|
|
90
|
+
};
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import type { ChatCopy } from "../types";
|
|
2
|
+
|
|
3
|
+
export const en: ChatCopy = {
|
|
4
|
+
transcript: {
|
|
5
|
+
empty: "No messages yet.",
|
|
6
|
+
suggestionsLabel: "Suggested prompts",
|
|
7
|
+
log: "Conversation",
|
|
8
|
+
announceStreaming: "Assistant is replying",
|
|
9
|
+
announceComplete: "Reply complete",
|
|
10
|
+
jumpToLatest: "Jump to latest",
|
|
11
|
+
thinking: "Thinking",
|
|
12
|
+
thinkingElapsed: "{{seconds}}s",
|
|
13
|
+
today: "Today",
|
|
14
|
+
yesterday: "Yesterday",
|
|
15
|
+
},
|
|
16
|
+
message: {
|
|
17
|
+
copy: "Copy",
|
|
18
|
+
reply: "Reply",
|
|
19
|
+
copyLink: "Copy link",
|
|
20
|
+
copiedLink: "Link copied",
|
|
21
|
+
jumpToQuoted: "Go to the quoted message",
|
|
22
|
+
copied: "Copied",
|
|
23
|
+
reasoning: "Reasoning",
|
|
24
|
+
reasoningLive: "Reasoning…",
|
|
25
|
+
reasoningTokens: {
|
|
26
|
+
one: "Thought for {{count}} token",
|
|
27
|
+
other: "Thought for {{count}} tokens",
|
|
28
|
+
},
|
|
29
|
+
showMore: "Show more",
|
|
30
|
+
showLess: "Show less",
|
|
31
|
+
},
|
|
32
|
+
tool: {
|
|
33
|
+
inputStreaming: "Preparing",
|
|
34
|
+
inputAvailable: "Running",
|
|
35
|
+
outputAvailable: "Done",
|
|
36
|
+
outputError: "Failed",
|
|
37
|
+
collapse: "Collapse tool call",
|
|
38
|
+
expand: "Expand tool call",
|
|
39
|
+
},
|
|
40
|
+
composer: {
|
|
41
|
+
replyClear: "Cancel reply",
|
|
42
|
+
input: "Message",
|
|
43
|
+
placeholder: "Ask anything",
|
|
44
|
+
send: "Send",
|
|
45
|
+
sendShortcut: "Enter to send",
|
|
46
|
+
stop: "Stop",
|
|
47
|
+
toolsMenu: "Tools",
|
|
48
|
+
toolsSearch: "Find a tool…",
|
|
49
|
+
toolsEmpty: "No such tool",
|
|
50
|
+
toolsRecent: "Recent",
|
|
51
|
+
toolsForget: "Remove from recent",
|
|
52
|
+
toolRemove: "Remove tool",
|
|
53
|
+
needsFile: "Attach the file",
|
|
54
|
+
needsSkill: "Name the skill",
|
|
55
|
+
toolsPicked: "Picked tools",
|
|
56
|
+
thinkOn: "Think longer (slower, costs more)",
|
|
57
|
+
thinkOff: "Stop thinking longer",
|
|
58
|
+
},
|
|
59
|
+
queue: {
|
|
60
|
+
prompts: {
|
|
61
|
+
one: "{{count}} prompt queued",
|
|
62
|
+
other: "{{count}} prompts queued",
|
|
63
|
+
},
|
|
64
|
+
more: {
|
|
65
|
+
one: "{{count}} more",
|
|
66
|
+
other: "{{count}} more",
|
|
67
|
+
},
|
|
68
|
+
showLess: "Show less",
|
|
69
|
+
remove: "Remove from queue",
|
|
70
|
+
show: "Show queued prompts",
|
|
71
|
+
edit: "Edit this prompt",
|
|
72
|
+
send: "Send now",
|
|
73
|
+
sendNow: "Send now, stopping the current reply",
|
|
74
|
+
sendNowConfirmTitle: "Send this prompt now?",
|
|
75
|
+
sendNowConfirmMessage:
|
|
76
|
+
"The current reply stops and its unfinished work is lost. The remaining queued prompts keep their order.",
|
|
77
|
+
replaceDraftTitle: "Replace what you have typed?",
|
|
78
|
+
replaceDraftMessage:
|
|
79
|
+
"Your draft and this prompt are different. Choose which one survives.",
|
|
80
|
+
},
|
|
81
|
+
voice: {
|
|
82
|
+
start: "Dictate",
|
|
83
|
+
stop: "Stop dictation",
|
|
84
|
+
language: "Dictation language",
|
|
85
|
+
languageMenu: "Dictation language",
|
|
86
|
+
languageSearch: "Search languages",
|
|
87
|
+
languageEmpty: "No language found",
|
|
88
|
+
languageBack: "Back",
|
|
89
|
+
},
|
|
90
|
+
};
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import type { ChatCopy } from "../types";
|
|
2
|
+
|
|
3
|
+
export const es: ChatCopy = {
|
|
4
|
+
transcript: {
|
|
5
|
+
empty: "Todavía no hay mensajes.",
|
|
6
|
+
suggestionsLabel: "Sugerencias de preguntas",
|
|
7
|
+
log: "Conversación",
|
|
8
|
+
announceStreaming: "El asistente está respondiendo",
|
|
9
|
+
announceComplete: "Respuesta completa",
|
|
10
|
+
jumpToLatest: "Ir a lo último",
|
|
11
|
+
thinking: "Pensando",
|
|
12
|
+
thinkingElapsed: "{{seconds}} s",
|
|
13
|
+
today: "Hoy",
|
|
14
|
+
yesterday: "Ayer",
|
|
15
|
+
},
|
|
16
|
+
message: {
|
|
17
|
+
copy: "Copiar",
|
|
18
|
+
reply: "Responder",
|
|
19
|
+
copyLink: "Copiar enlace",
|
|
20
|
+
copiedLink: "Enlace copiado",
|
|
21
|
+
jumpToQuoted: "Ir al mensaje citado",
|
|
22
|
+
copied: "Copiado",
|
|
23
|
+
reasoning: "Razonamiento",
|
|
24
|
+
reasoningLive: "Razonando…",
|
|
25
|
+
reasoningTokens: {
|
|
26
|
+
one: "Pensó {{count}} token",
|
|
27
|
+
other: "Pensó {{count}} tokens",
|
|
28
|
+
},
|
|
29
|
+
showMore: "Mostrar más",
|
|
30
|
+
showLess: "Mostrar menos",
|
|
31
|
+
},
|
|
32
|
+
tool: {
|
|
33
|
+
inputStreaming: "Preparando",
|
|
34
|
+
inputAvailable: "En ejecución",
|
|
35
|
+
outputAvailable: "Listo",
|
|
36
|
+
outputError: "Falló",
|
|
37
|
+
collapse: "Contraer la llamada de herramienta",
|
|
38
|
+
expand: "Expandir la llamada de herramienta",
|
|
39
|
+
},
|
|
40
|
+
composer: {
|
|
41
|
+
replyClear: "Cancelar respuesta",
|
|
42
|
+
input: "Mensaje",
|
|
43
|
+
placeholder: "Pregunta lo que quieras",
|
|
44
|
+
send: "Enviar",
|
|
45
|
+
sendShortcut: "Intro para enviar",
|
|
46
|
+
stop: "Detener",
|
|
47
|
+
toolsMenu: "Herramientas",
|
|
48
|
+
toolsSearch: "Buscar una herramienta…",
|
|
49
|
+
toolsEmpty: "No existe esa herramienta",
|
|
50
|
+
toolsRecent: "Recientes",
|
|
51
|
+
toolsForget: "Quitar de recientes",
|
|
52
|
+
toolRemove: "Quitar herramienta",
|
|
53
|
+
needsFile: "Adjunta el archivo",
|
|
54
|
+
needsSkill: "Indica la habilidad",
|
|
55
|
+
toolsPicked: "Herramientas elegidas",
|
|
56
|
+
thinkOn: "Pensar más (más lento, cuesta más)",
|
|
57
|
+
thinkOff: "Dejar de pensar más",
|
|
58
|
+
},
|
|
59
|
+
queue: {
|
|
60
|
+
prompts: {
|
|
61
|
+
one: "{{count}} mensaje en cola",
|
|
62
|
+
other: "{{count}} mensajes en cola",
|
|
63
|
+
},
|
|
64
|
+
more: {
|
|
65
|
+
one: "{{count}} más",
|
|
66
|
+
other: "{{count}} más",
|
|
67
|
+
},
|
|
68
|
+
showLess: "Mostrar menos",
|
|
69
|
+
remove: "Quitar de la cola",
|
|
70
|
+
show: "Mostrar la cola",
|
|
71
|
+
edit: "Editar la solicitud",
|
|
72
|
+
send: "Enviar ahora",
|
|
73
|
+
sendNow: "Enviar ahora, deteniendo la respuesta actual",
|
|
74
|
+
sendNowConfirmTitle: "¿Enviar este mensaje ahora?",
|
|
75
|
+
sendNowConfirmMessage:
|
|
76
|
+
"La respuesta actual se detiene y se pierde el trabajo sin terminar. Los demás mensajes conservan su orden en la cola.",
|
|
77
|
+
replaceDraftTitle: "¿Reemplazar lo que has escrito?",
|
|
78
|
+
replaceDraftMessage:
|
|
79
|
+
"Tu borrador y este mensaje son distintos. Elige cuál se conserva.",
|
|
80
|
+
},
|
|
81
|
+
voice: {
|
|
82
|
+
start: "Dictar",
|
|
83
|
+
stop: "Detener el dictado",
|
|
84
|
+
language: "Idioma de dictado",
|
|
85
|
+
languageMenu: "Idioma de dictado",
|
|
86
|
+
languageSearch: "Buscar idiomas",
|
|
87
|
+
languageEmpty: "No se encontró ningún idioma",
|
|
88
|
+
languageBack: "Atrás",
|
|
89
|
+
},
|
|
90
|
+
};
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import type { ChatCopy } from "../types";
|
|
2
|
+
|
|
3
|
+
export const fr: ChatCopy = {
|
|
4
|
+
transcript: {
|
|
5
|
+
empty: "Aucun message pour l'instant.",
|
|
6
|
+
suggestionsLabel: "Suggestions de requêtes",
|
|
7
|
+
log: "Conversation",
|
|
8
|
+
announceStreaming: "L’assistant répond",
|
|
9
|
+
announceComplete: "Réponse terminée",
|
|
10
|
+
jumpToLatest: "Aller aux derniers",
|
|
11
|
+
thinking: "Réflexion",
|
|
12
|
+
thinkingElapsed: "{{seconds}} s",
|
|
13
|
+
today: "Aujourd’hui",
|
|
14
|
+
yesterday: "Hier",
|
|
15
|
+
},
|
|
16
|
+
message: {
|
|
17
|
+
copy: "Copier",
|
|
18
|
+
reply: "Répondre",
|
|
19
|
+
copyLink: "Copier le lien",
|
|
20
|
+
copiedLink: "Lien copié",
|
|
21
|
+
jumpToQuoted: "Aller au message cité",
|
|
22
|
+
copied: "Copié",
|
|
23
|
+
reasoning: "Raisonnement",
|
|
24
|
+
reasoningLive: "Raisonnement…",
|
|
25
|
+
reasoningTokens: {
|
|
26
|
+
one: "A réfléchi sur {{count}} jeton",
|
|
27
|
+
other: "A réfléchi sur {{count}} jetons",
|
|
28
|
+
},
|
|
29
|
+
showMore: "Afficher plus",
|
|
30
|
+
showLess: "Afficher moins",
|
|
31
|
+
},
|
|
32
|
+
tool: {
|
|
33
|
+
inputStreaming: "Préparation",
|
|
34
|
+
inputAvailable: "En cours",
|
|
35
|
+
outputAvailable: "Terminé",
|
|
36
|
+
outputError: "Échec",
|
|
37
|
+
collapse: "Réduire l'appel d'outil",
|
|
38
|
+
expand: "Développer l'appel d'outil",
|
|
39
|
+
},
|
|
40
|
+
composer: {
|
|
41
|
+
replyClear: "Annuler la réponse",
|
|
42
|
+
input: "Message",
|
|
43
|
+
placeholder: "Posez votre question",
|
|
44
|
+
send: "Envoyer",
|
|
45
|
+
sendShortcut: "Entrée pour envoyer",
|
|
46
|
+
stop: "Arrêter",
|
|
47
|
+
toolsMenu: "Outils",
|
|
48
|
+
toolsSearch: "Rechercher un outil…",
|
|
49
|
+
toolsEmpty: "Aucun outil de ce nom",
|
|
50
|
+
toolsRecent: "Récents",
|
|
51
|
+
toolsForget: "Retirer des récents",
|
|
52
|
+
toolRemove: "Retirer l’outil",
|
|
53
|
+
needsFile: "Joignez le fichier",
|
|
54
|
+
needsSkill: "Nommez la compétence",
|
|
55
|
+
toolsPicked: "Outils choisis",
|
|
56
|
+
thinkOn: "Réfléchir plus longtemps (plus lent, coûte plus)",
|
|
57
|
+
thinkOff: "Arrêter de réfléchir plus longtemps",
|
|
58
|
+
},
|
|
59
|
+
queue: {
|
|
60
|
+
prompts: {
|
|
61
|
+
one: "{{count}} message en file d’attente",
|
|
62
|
+
other: "{{count}} messages en file d’attente",
|
|
63
|
+
},
|
|
64
|
+
more: {
|
|
65
|
+
one: "{{count}} de plus",
|
|
66
|
+
other: "{{count}} de plus",
|
|
67
|
+
},
|
|
68
|
+
showLess: "Réduire",
|
|
69
|
+
remove: "Retirer de la file d’attente",
|
|
70
|
+
show: "Afficher la file d’attente",
|
|
71
|
+
edit: "Modifier la demande",
|
|
72
|
+
send: "Envoyer maintenant",
|
|
73
|
+
sendNow: "Envoyer maintenant en interrompant la réponse en cours",
|
|
74
|
+
sendNowConfirmTitle: "Envoyer ce message maintenant ?",
|
|
75
|
+
sendNowConfirmMessage:
|
|
76
|
+
"La réponse en cours s’arrête et son travail inachevé est perdu. Les autres messages conservent leur ordre dans la file d’attente.",
|
|
77
|
+
replaceDraftTitle: "Remplacer le texte saisi ?",
|
|
78
|
+
replaceDraftMessage:
|
|
79
|
+
"Votre brouillon et ce message diffèrent. Choisissez ce qui est conservé.",
|
|
80
|
+
},
|
|
81
|
+
voice: {
|
|
82
|
+
start: "Dicter",
|
|
83
|
+
stop: "Arrêter la dictée",
|
|
84
|
+
language: "Langue de dictée",
|
|
85
|
+
languageMenu: "Langue de dictée",
|
|
86
|
+
languageSearch: "Rechercher une langue",
|
|
87
|
+
languageEmpty: "Aucune langue trouvée",
|
|
88
|
+
languageBack: "Retour",
|
|
89
|
+
},
|
|
90
|
+
};
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import type { ChatCopy } from "../types";
|
|
2
|
+
|
|
3
|
+
export const it: ChatCopy = {
|
|
4
|
+
transcript: {
|
|
5
|
+
empty: "Nessun messaggio.",
|
|
6
|
+
suggestionsLabel: "Richieste suggerite",
|
|
7
|
+
log: "Conversazione",
|
|
8
|
+
announceStreaming: "L’assistente sta rispondendo",
|
|
9
|
+
announceComplete: "Risposta completata",
|
|
10
|
+
jumpToLatest: "Vai agli ultimi",
|
|
11
|
+
thinking: "Sto pensando",
|
|
12
|
+
thinkingElapsed: "{{seconds}} s",
|
|
13
|
+
today: "Oggi",
|
|
14
|
+
yesterday: "Ieri",
|
|
15
|
+
},
|
|
16
|
+
message: {
|
|
17
|
+
copy: "Copia",
|
|
18
|
+
reply: "Rispondi",
|
|
19
|
+
copyLink: "Copia link",
|
|
20
|
+
copiedLink: "Link copiato",
|
|
21
|
+
jumpToQuoted: "Vai al messaggio citato",
|
|
22
|
+
copied: "Copiato",
|
|
23
|
+
reasoning: "Ragionamento",
|
|
24
|
+
reasoningLive: "Ragionamento…",
|
|
25
|
+
reasoningTokens: {
|
|
26
|
+
one: "Ha pensato per {{count}} token",
|
|
27
|
+
other: "Ha pensato per {{count}} token",
|
|
28
|
+
},
|
|
29
|
+
showMore: "Mostra altro",
|
|
30
|
+
showLess: "Mostra meno",
|
|
31
|
+
},
|
|
32
|
+
tool: {
|
|
33
|
+
inputStreaming: "Preparazione",
|
|
34
|
+
inputAvailable: "In esecuzione",
|
|
35
|
+
outputAvailable: "Fatto",
|
|
36
|
+
outputError: "Non riuscito",
|
|
37
|
+
collapse: "Comprimi la chiamata allo strumento",
|
|
38
|
+
expand: "Espandi la chiamata allo strumento",
|
|
39
|
+
},
|
|
40
|
+
composer: {
|
|
41
|
+
replyClear: "Annulla risposta",
|
|
42
|
+
input: "Messaggio",
|
|
43
|
+
placeholder: "Chiedi qualsiasi cosa",
|
|
44
|
+
send: "Invia",
|
|
45
|
+
sendShortcut: "Invio per inviare",
|
|
46
|
+
stop: "Interrompi",
|
|
47
|
+
toolsMenu: "Strumenti",
|
|
48
|
+
toolsSearch: "Cerca uno strumento…",
|
|
49
|
+
toolsEmpty: "Strumento inesistente",
|
|
50
|
+
toolsRecent: "Recenti",
|
|
51
|
+
toolsForget: "Rimuovi dai recenti",
|
|
52
|
+
toolRemove: "Rimuovi strumento",
|
|
53
|
+
needsFile: "Allega il file",
|
|
54
|
+
needsSkill: "Indica la skill",
|
|
55
|
+
toolsPicked: "Strumenti scelti",
|
|
56
|
+
thinkOn: "Pensa più a lungo (più lento, costa di più)",
|
|
57
|
+
thinkOff: "Smetti di pensare più a lungo",
|
|
58
|
+
},
|
|
59
|
+
queue: {
|
|
60
|
+
prompts: {
|
|
61
|
+
one: "{{count}} messaggio in coda",
|
|
62
|
+
other: "{{count}} messaggi in coda",
|
|
63
|
+
},
|
|
64
|
+
more: {
|
|
65
|
+
one: "{{count}} in più",
|
|
66
|
+
other: "{{count}} in più",
|
|
67
|
+
},
|
|
68
|
+
showLess: "Mostra meno",
|
|
69
|
+
remove: "Rimuovi dalla coda",
|
|
70
|
+
show: "Mostra la coda",
|
|
71
|
+
edit: "Modifica la richiesta",
|
|
72
|
+
send: "Invia ora",
|
|
73
|
+
sendNow: "Invia ora, interrompendo la risposta in corso",
|
|
74
|
+
sendNowConfirmTitle: "Inviare questo messaggio ora?",
|
|
75
|
+
sendNowConfirmMessage:
|
|
76
|
+
"La risposta in corso si interrompe e il lavoro non completato va perso. Gli altri messaggi mantengono il loro ordine in coda.",
|
|
77
|
+
replaceDraftTitle: "Sostituire il testo digitato?",
|
|
78
|
+
replaceDraftMessage:
|
|
79
|
+
"La bozza e questo messaggio sono diversi. Scegli cosa conservare.",
|
|
80
|
+
},
|
|
81
|
+
voice: {
|
|
82
|
+
start: "Detta",
|
|
83
|
+
stop: "Interrompi dettatura",
|
|
84
|
+
language: "Lingua di dettatura",
|
|
85
|
+
languageMenu: "Lingua di dettatura",
|
|
86
|
+
languageSearch: "Cerca lingue",
|
|
87
|
+
languageEmpty: "Nessuna lingua trovata",
|
|
88
|
+
languageBack: "Indietro",
|
|
89
|
+
},
|
|
90
|
+
};
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import type { ChatCopy } from "../types";
|
|
2
|
+
|
|
3
|
+
export const ja: ChatCopy = {
|
|
4
|
+
transcript: {
|
|
5
|
+
empty: "メッセージはまだありません。",
|
|
6
|
+
suggestionsLabel: "提案されたプロンプト",
|
|
7
|
+
log: "会話",
|
|
8
|
+
announceStreaming: "アシスタントが返信しています",
|
|
9
|
+
announceComplete: "返信が完了しました",
|
|
10
|
+
jumpToLatest: "最新へ移動",
|
|
11
|
+
thinking: "考えています",
|
|
12
|
+
thinkingElapsed: "{{seconds}}秒",
|
|
13
|
+
today: "今日",
|
|
14
|
+
yesterday: "昨日",
|
|
15
|
+
},
|
|
16
|
+
message: {
|
|
17
|
+
copy: "コピー",
|
|
18
|
+
reply: "返信",
|
|
19
|
+
copyLink: "リンクをコピー",
|
|
20
|
+
copiedLink: "リンクをコピーしました",
|
|
21
|
+
jumpToQuoted: "引用元のメッセージへ移動",
|
|
22
|
+
copied: "コピーしました",
|
|
23
|
+
reasoning: "推論",
|
|
24
|
+
reasoningLive: "推論中…",
|
|
25
|
+
reasoningTokens: {
|
|
26
|
+
other: "{{count}} トークン思考",
|
|
27
|
+
},
|
|
28
|
+
showMore: "もっと見る",
|
|
29
|
+
showLess: "折りたたむ",
|
|
30
|
+
},
|
|
31
|
+
tool: {
|
|
32
|
+
inputStreaming: "準備中",
|
|
33
|
+
inputAvailable: "実行中",
|
|
34
|
+
outputAvailable: "完了",
|
|
35
|
+
outputError: "失敗",
|
|
36
|
+
collapse: "ツール呼び出しを折りたたむ",
|
|
37
|
+
expand: "ツール呼び出しを展開する",
|
|
38
|
+
},
|
|
39
|
+
composer: {
|
|
40
|
+
replyClear: "返信をキャンセル",
|
|
41
|
+
input: "メッセージ",
|
|
42
|
+
placeholder: "何でも聞いてください",
|
|
43
|
+
send: "送信",
|
|
44
|
+
sendShortcut: "Enter で送信",
|
|
45
|
+
stop: "停止",
|
|
46
|
+
toolsMenu: "ツール",
|
|
47
|
+
toolsSearch: "ツールを検索…",
|
|
48
|
+
toolsEmpty: "該当するツールがありません",
|
|
49
|
+
toolsRecent: "最近使った項目",
|
|
50
|
+
toolsForget: "最近使った項目から削除",
|
|
51
|
+
toolRemove: "ツールを削除",
|
|
52
|
+
needsFile: "ファイルを添付",
|
|
53
|
+
needsSkill: "スキル名を入力",
|
|
54
|
+
toolsPicked: "選択したツール",
|
|
55
|
+
thinkOn: "じっくり考える(低速・高コスト)",
|
|
56
|
+
thinkOff: "じっくり考えるのをやめる",
|
|
57
|
+
},
|
|
58
|
+
queue: {
|
|
59
|
+
prompts: { other: "{{count}} 件のメッセージが待機中" },
|
|
60
|
+
more: { other: "他 {{count}} 件" },
|
|
61
|
+
showLess: "折りたたむ",
|
|
62
|
+
remove: "キューから削除",
|
|
63
|
+
show: "キューを表示",
|
|
64
|
+
edit: "このプロンプトを編集",
|
|
65
|
+
send: "今すぐ送信",
|
|
66
|
+
sendNow: "現在の返信を中断して今すぐ送信",
|
|
67
|
+
sendNowConfirmTitle: "このメッセージを今すぐ送信しますか?",
|
|
68
|
+
sendNowConfirmMessage:
|
|
69
|
+
"現在の返信は中断され、途中の作業は失われます。残りのメッセージは順序を保ったまま待機します。",
|
|
70
|
+
replaceDraftTitle: "入力した内容を置き換えますか?",
|
|
71
|
+
replaceDraftMessage:
|
|
72
|
+
"下書きとこのメッセージは異なります。どちらを残すか選んでください。",
|
|
73
|
+
},
|
|
74
|
+
voice: {
|
|
75
|
+
start: "音声入力",
|
|
76
|
+
stop: "音声入力を停止",
|
|
77
|
+
language: "音声入力の言語",
|
|
78
|
+
languageMenu: "音声入力の言語",
|
|
79
|
+
languageSearch: "言語を検索",
|
|
80
|
+
languageEmpty: "言語が見つかりません",
|
|
81
|
+
languageBack: "戻る",
|
|
82
|
+
},
|
|
83
|
+
};
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import type { ChatCopy } from "../types";
|
|
2
|
+
|
|
3
|
+
export const ko: ChatCopy = {
|
|
4
|
+
transcript: {
|
|
5
|
+
empty: "아직 메시지가 없습니다.",
|
|
6
|
+
suggestionsLabel: "추천 프롬프트",
|
|
7
|
+
log: "대화",
|
|
8
|
+
announceStreaming: "어시스턴트가 응답 중입니다",
|
|
9
|
+
announceComplete: "응답이 완료되었습니다",
|
|
10
|
+
jumpToLatest: "최신으로 이동",
|
|
11
|
+
thinking: "생각 중",
|
|
12
|
+
thinkingElapsed: "{{seconds}}초",
|
|
13
|
+
today: "오늘",
|
|
14
|
+
yesterday: "어제",
|
|
15
|
+
},
|
|
16
|
+
message: {
|
|
17
|
+
copy: "복사",
|
|
18
|
+
reply: "답장",
|
|
19
|
+
copyLink: "링크 복사",
|
|
20
|
+
copiedLink: "링크가 복사됨",
|
|
21
|
+
jumpToQuoted: "인용된 메시지로 이동",
|
|
22
|
+
copied: "복사됨",
|
|
23
|
+
reasoning: "추론",
|
|
24
|
+
reasoningLive: "추론 중…",
|
|
25
|
+
reasoningTokens: {
|
|
26
|
+
other: "{{count}}개 토큰만큼 생각함",
|
|
27
|
+
},
|
|
28
|
+
showMore: "더 보기",
|
|
29
|
+
showLess: "접기",
|
|
30
|
+
},
|
|
31
|
+
tool: {
|
|
32
|
+
inputStreaming: "준비 중",
|
|
33
|
+
inputAvailable: "실행 중",
|
|
34
|
+
outputAvailable: "완료",
|
|
35
|
+
outputError: "실패",
|
|
36
|
+
collapse: "도구 호출 접기",
|
|
37
|
+
expand: "도구 호출 펼치기",
|
|
38
|
+
},
|
|
39
|
+
composer: {
|
|
40
|
+
replyClear: "답장 취소",
|
|
41
|
+
input: "메시지",
|
|
42
|
+
placeholder: "무엇이든 물어보세요",
|
|
43
|
+
send: "보내기",
|
|
44
|
+
sendShortcut: "Enter 키로 보내기",
|
|
45
|
+
stop: "중지",
|
|
46
|
+
toolsMenu: "도구",
|
|
47
|
+
toolsSearch: "도구 검색…",
|
|
48
|
+
toolsEmpty: "해당 도구가 없습니다",
|
|
49
|
+
toolsRecent: "최근 사용",
|
|
50
|
+
toolsForget: "최근 목록에서 제거",
|
|
51
|
+
toolRemove: "도구 제거",
|
|
52
|
+
needsFile: "파일을 첨부하세요",
|
|
53
|
+
needsSkill: "스킬 이름을 입력하세요",
|
|
54
|
+
toolsPicked: "선택한 도구",
|
|
55
|
+
thinkOn: "더 오래 생각하기 (느리고 비용 증가)",
|
|
56
|
+
thinkOff: "더 오래 생각하기 끄기",
|
|
57
|
+
},
|
|
58
|
+
queue: {
|
|
59
|
+
prompts: { other: "대기 중인 메시지 {{count}}개" },
|
|
60
|
+
more: { other: "{{count}}개 더" },
|
|
61
|
+
showLess: "접기",
|
|
62
|
+
remove: "대기열에서 제거",
|
|
63
|
+
show: "대기열 보기",
|
|
64
|
+
edit: "이 프롬프트 편집",
|
|
65
|
+
send: "지금 보내기",
|
|
66
|
+
sendNow: "현재 응답을 중단하고 지금 보내기",
|
|
67
|
+
sendNowConfirmTitle: "이 메시지를 지금 보낼까요?",
|
|
68
|
+
sendNowConfirmMessage:
|
|
69
|
+
"현재 응답이 중단되고 완료되지 않은 작업은 사라집니다. 나머지 메시지는 대기열 순서를 유지합니다.",
|
|
70
|
+
replaceDraftTitle: "입력한 내용을 바꿀까요?",
|
|
71
|
+
replaceDraftMessage:
|
|
72
|
+
"임시 저장한 내용과 이 메시지가 다릅니다. 무엇을 남길지 선택하세요.",
|
|
73
|
+
},
|
|
74
|
+
voice: {
|
|
75
|
+
start: "받아쓰기",
|
|
76
|
+
stop: "받아쓰기 중지",
|
|
77
|
+
language: "받아쓰기 언어",
|
|
78
|
+
languageMenu: "받아쓰기 언어",
|
|
79
|
+
languageSearch: "언어 검색",
|
|
80
|
+
languageEmpty: "언어를 찾을 수 없습니다",
|
|
81
|
+
languageBack: "뒤로",
|
|
82
|
+
},
|
|
83
|
+
};
|