@aparte/locales 0.0.0-stage → 0.27.0
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 +50 -2
- package/dist/de.d.ts +10 -0
- package/dist/de.d.ts.map +1 -0
- package/dist/de.js +148 -0
- package/dist/de.js.map +1 -0
- package/dist/es.d.ts +10 -0
- package/dist/es.d.ts.map +1 -0
- package/dist/es.js +148 -0
- package/dist/es.js.map +1 -0
- package/dist/fr.d.ts +10 -0
- package/dist/fr.d.ts.map +1 -0
- package/dist/fr.js +148 -0
- package/dist/fr.js.map +1 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +21 -0
- package/dist/index.js.map +1 -0
- package/dist/it.d.ts +10 -0
- package/dist/it.d.ts.map +1 -0
- package/dist/it.js +148 -0
- package/dist/it.js.map +1 -0
- package/dist/ja.d.ts +10 -0
- package/dist/ja.d.ts.map +1 -0
- package/dist/ja.js +148 -0
- package/dist/ja.js.map +1 -0
- package/dist/ko.d.ts +10 -0
- package/dist/ko.d.ts.map +1 -0
- package/dist/ko.js +148 -0
- package/dist/ko.js.map +1 -0
- package/dist/pt-BR.d.ts +10 -0
- package/dist/pt-BR.d.ts.map +1 -0
- package/dist/pt-BR.js +148 -0
- package/dist/pt-BR.js.map +1 -0
- package/dist/ru.d.ts +10 -0
- package/dist/ru.d.ts.map +1 -0
- package/dist/ru.js +148 -0
- package/dist/ru.js.map +1 -0
- package/dist/zh-CN.d.ts +10 -0
- package/dist/zh-CN.d.ts.map +1 -0
- package/dist/zh-CN.js +148 -0
- package/dist/zh-CN.js.map +1 -0
- package/package.json +119 -3
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 aparté
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,3 +1,51 @@
|
|
|
1
|
-
#
|
|
1
|
+
# @aparte/locales
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
The chat's interface in nine languages for [aparté](https://github.com/apartejs/aparte): every
|
|
4
|
+
label, button and screen-reader string the chat draws. Core ships English
|
|
5
|
+
(`APARTE_DEFAULT_LOCALE`); install this to switch.
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install @aparte/locales @aparte/core
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
```ts
|
|
12
|
+
import { aparteGlobalConfig } from '@aparte/core';
|
|
13
|
+
import { es } from '@aparte/locales/es';
|
|
14
|
+
|
|
15
|
+
aparteGlobalConfig.setLocale(es);
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
Each language is its own entry, so a page loads only the one it imports. All of them are also
|
|
19
|
+
named exports of the package root.
|
|
20
|
+
|
|
21
|
+
| Language | Entry | Export | `tag` |
|
|
22
|
+
| --- | --- | --- | --- |
|
|
23
|
+
| French | `@aparte/locales/fr` | `fr` | `fr-FR` |
|
|
24
|
+
| Spanish | `@aparte/locales/es` | `es` | `es` |
|
|
25
|
+
| Portuguese (Brazil) | `@aparte/locales/pt-BR` | `ptBR` | `pt-BR` |
|
|
26
|
+
| German | `@aparte/locales/de` | `de` | `de` |
|
|
27
|
+
| Italian | `@aparte/locales/it` | `it` | `it` |
|
|
28
|
+
| Russian | `@aparte/locales/ru` | `ru` | `ru` |
|
|
29
|
+
| Japanese | `@aparte/locales/ja` | `ja` | `ja` |
|
|
30
|
+
| Korean | `@aparte/locales/ko` | `ko` | `ko` |
|
|
31
|
+
| Chinese (Simplified) | `@aparte/locales/zh-CN` | `zhCN` | `zh-CN` |
|
|
32
|
+
|
|
33
|
+
Every language translates every string core draws, keeps English's placeholders (`{tool}`, `{n}`,
|
|
34
|
+
`{name}`…), and is written left to right. The `tag` also sets how dates and numbers are
|
|
35
|
+
formatted.
|
|
36
|
+
|
|
37
|
+
To follow the browser's language, with English when none matches:
|
|
38
|
+
|
|
39
|
+
```ts
|
|
40
|
+
import { aparteGlobalConfig } from '@aparte/core';
|
|
41
|
+
import { de, es, fr } from '@aparte/locales';
|
|
42
|
+
|
|
43
|
+
const byLanguage = { de, es, fr };
|
|
44
|
+
const language = navigator.language.slice(0, 2) as keyof typeof byLanguage;
|
|
45
|
+
if (byLanguage[language]) aparteGlobalConfig.setLocale(byLanguage[language]);
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
`@aparte/core` is a **peer dependency**. The [Localization guide](https://apartejs.dev/guides/localization/)
|
|
49
|
+
covers the whole `AparteLocale` surface, a locale of your own, and strings of your own.
|
|
50
|
+
|
|
51
|
+
> ESM-only. Part of the aparté monorepo.
|
package/dist/de.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* German (de) — the chat's interface strings: pass `de` to `aparteGlobalConfig.setLocale()`.
|
|
3
|
+
*
|
|
4
|
+
* Core ships English (`APARTE_DEFAULT_LOCALE`). Every key is translated here — a key left out
|
|
5
|
+
* would show in English, and the package's tests and `check:locale-keys` refuse that.
|
|
6
|
+
*/
|
|
7
|
+
import type { AparteLocale } from '@aparte/core';
|
|
8
|
+
export declare const de: AparteLocale;
|
|
9
|
+
export default de;
|
|
10
|
+
//# sourceMappingURL=de.d.ts.map
|
package/dist/de.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"de.d.ts","sourceRoot":"","sources":["../src/de.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,eAAO,MAAM,EAAE,EAAE,YA8IhB,CAAC;AAEF,eAAe,EAAE,CAAC"}
|
package/dist/de.js
ADDED
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
const de = {
|
|
2
|
+
inputPlaceholder: "Nachricht eingeben…",
|
|
3
|
+
sendButton: "Senden",
|
|
4
|
+
copy: "Kopieren",
|
|
5
|
+
copied: "Kopiert!",
|
|
6
|
+
retry: "Erneut versuchen",
|
|
7
|
+
thinking: "Überlegung",
|
|
8
|
+
elicitationOther: "Andere Antwort…",
|
|
9
|
+
elicitationOtherPlaceholder: "Antwort eingeben…",
|
|
10
|
+
elicitationOtherLabel: "Freie Antwort",
|
|
11
|
+
submitButton: "Bestätigen",
|
|
12
|
+
stopButton: "Stoppen",
|
|
13
|
+
elicitationRecommended: "Empfohlen",
|
|
14
|
+
elicitationSkip: "Überspringen",
|
|
15
|
+
elicitationHide: "Vorerst ausblenden",
|
|
16
|
+
elicitationWaiting: "Wartet auf deine Antwort",
|
|
17
|
+
elicitationYes: "Ja",
|
|
18
|
+
elicitationNo: "Nein",
|
|
19
|
+
elicitationAnswerLabel: "Deine Antwort",
|
|
20
|
+
approvalInstructionPlaceholder: "Oder sag ihm, was es stattdessen tun soll…",
|
|
21
|
+
approvalOptionsLabel: "Deine Entscheidung",
|
|
22
|
+
approvalArgsLabel: "Argumente",
|
|
23
|
+
approvalAsk: "{tool} erlauben?",
|
|
24
|
+
approvalWaiting: "Ausstehend",
|
|
25
|
+
scrollToBottom: "Nach unten scrollen",
|
|
26
|
+
suggestionsLabel: "Vorgeschlagene Prompts",
|
|
27
|
+
contextLabel: "Kontextfenster",
|
|
28
|
+
contextSystem: "Systemprompt",
|
|
29
|
+
contextTools: "Tools",
|
|
30
|
+
contextSummary: "Zusammenfassung",
|
|
31
|
+
contextMessages: "Nachrichten",
|
|
32
|
+
contextOther: "Sonstiges",
|
|
33
|
+
contextFree: "Frei",
|
|
34
|
+
contextTotal: "Gesamt",
|
|
35
|
+
contextReclaim: "Jetzt komprimieren würde ~{n} Tokens freigeben",
|
|
36
|
+
contextCompactNow: "Jetzt komprimieren",
|
|
37
|
+
compactionSummaryTitle: "Zusammenfassung der Unterhaltung",
|
|
38
|
+
checkpointCount: "{n} Nachrichten für das Modell zusammengefasst",
|
|
39
|
+
checkpointCountOne: "1 Nachricht für das Modell zusammengefasst",
|
|
40
|
+
checkpointLegacy: "Frühere Nachrichten wurden zusammengefasst",
|
|
41
|
+
checkpointGroup: "Kontextzusammenfassung",
|
|
42
|
+
checkpointShow: "Zusammenfassung anzeigen",
|
|
43
|
+
checkpointHide: "Zusammenfassung ausblenden",
|
|
44
|
+
checkpointRestore: "Wiederherstellen",
|
|
45
|
+
checkpointRestoreConfirm: "Die ursprünglichen Nachrichten erneut an das Modell senden?",
|
|
46
|
+
checkpointPending: "Kontext wird zusammengefasst…",
|
|
47
|
+
checkpointFailed: "Kontext konnte nicht zusammengefasst werden",
|
|
48
|
+
toolRunning: "Läuft",
|
|
49
|
+
toolFailed: "Fehlgeschlagen",
|
|
50
|
+
toolCompleted: "Fertig",
|
|
51
|
+
toolRejected: "Abgelehnt",
|
|
52
|
+
toolStopped: "Gestoppt",
|
|
53
|
+
toolInput: "Eingabe",
|
|
54
|
+
toolOutput: "Ausgabe",
|
|
55
|
+
toolRejectedSaid: "Du hast gesagt: „{instruction}“",
|
|
56
|
+
toolRefusedByPolicy: "Durch eine Regel abgelehnt",
|
|
57
|
+
toolNotRunAfterRefusal: "Nicht ausgeführt: Ein früherer Aufruf wurde abgelehnt",
|
|
58
|
+
toolTimedOut: "Zeitüberschreitung",
|
|
59
|
+
toolUnavailable: "Hier nicht verfügbar",
|
|
60
|
+
toolNoApprover: "Niemand konnte es genehmigen",
|
|
61
|
+
toolTurnLimit: "Rundenlimit erreicht",
|
|
62
|
+
maxTurnsReached: "Nach {n} Runden gestoppt, um eine Endlosschleife zu vermeiden.",
|
|
63
|
+
questionDeclined: "Du wolltest nicht antworten.",
|
|
64
|
+
artifactNotCreated: "Nicht erstellt",
|
|
65
|
+
thoughtFor: "Überlegung: {duration}",
|
|
66
|
+
thought: "Überlegung abgeschlossen",
|
|
67
|
+
actionUpload: "Datei anhängen",
|
|
68
|
+
removeAttachment: "{name} entfernen",
|
|
69
|
+
messageFrom: "Nachricht von {name}",
|
|
70
|
+
selectSearchPlaceholder: "Suchen…",
|
|
71
|
+
selectSearchLabel: "Optionen durchsuchen",
|
|
72
|
+
loading: "Wird geladen…",
|
|
73
|
+
download: "Herunterladen",
|
|
74
|
+
openArtifact: "Öffnen",
|
|
75
|
+
modelContextWindow: "{n} Kontext",
|
|
76
|
+
previewPending: "Drücke Vorschau, um dieses Artefakt auszuführen.",
|
|
77
|
+
sandboxError: "Die Sandbox ist bei der Generierung fehlgeschlagen.",
|
|
78
|
+
sandboxErrorHint: "Häufige Ursache: Das Modell hat ungültigen Code erzeugt (undefinierte Variable, falscher Argumenttyp). Versuche es erneut – das Modell kann anderen Code erzeugen.",
|
|
79
|
+
preview: "Vorschau",
|
|
80
|
+
code: "Code",
|
|
81
|
+
generating: "Wird generiert…",
|
|
82
|
+
rebuildingPreview: "Vorschau wird neu erstellt…",
|
|
83
|
+
typing: "Schreibt",
|
|
84
|
+
responseCutOff: "Am Längenlimit des Modells abgeschnitten.",
|
|
85
|
+
error: "Fehler",
|
|
86
|
+
errorUnreachable: "Der Assistent ist gerade nicht erreichbar. Versuch es gleich noch einmal.",
|
|
87
|
+
errorTimeout: "Die Antwort hat zu lange gedauert. Versuch es gleich noch einmal.",
|
|
88
|
+
errorRefused: "Der Assistent darf gerade nicht antworten.",
|
|
89
|
+
errorRateLimited: "Gerade gibt es zu viele Anfragen. Versuch es gleich noch einmal.",
|
|
90
|
+
errorTooLong: "Diese Unterhaltung ist zu lang für das Modell. Fang eine neue an.",
|
|
91
|
+
errorFailed: "Der Assistent konnte nicht antworten. Versuch es gleich noch einmal.",
|
|
92
|
+
errorNoAnswer: "Der Assistent konnte auf diese Anfrage nicht antworten.",
|
|
93
|
+
running: "Wird ausgeführt…",
|
|
94
|
+
run: "Ausführen",
|
|
95
|
+
file: "Datei",
|
|
96
|
+
modelSelectorPlaceholder: "Modell auswählen…",
|
|
97
|
+
approvalModeLabel: "Genehmigungsmodus",
|
|
98
|
+
roleNameUser: "Du",
|
|
99
|
+
roleNameAssistant: "Assistent",
|
|
100
|
+
yourMessage: "Deine Nachricht",
|
|
101
|
+
assistantResponse: "Antwort des Assistenten",
|
|
102
|
+
messageActions: "Nachrichtenaktionen",
|
|
103
|
+
edit: "Nachricht bearbeiten",
|
|
104
|
+
editConfirm: "Senden",
|
|
105
|
+
editCancel: "Abbrechen",
|
|
106
|
+
feedbackPositive: "Gute Antwort",
|
|
107
|
+
feedbackNegative: "Schlechte Antwort",
|
|
108
|
+
previousResponse: "Vorherige Antwort",
|
|
109
|
+
nextResponse: "Nächste Antwort",
|
|
110
|
+
approveTool: "Genehmigen",
|
|
111
|
+
rejectTool: "Ablehnen",
|
|
112
|
+
messageInfo: "Details",
|
|
113
|
+
newChat: "Neuer Chat",
|
|
114
|
+
loadingConversations: "Unterhaltungen werden geladen",
|
|
115
|
+
conversationSearchEmpty: "Keine Unterhaltung gefunden",
|
|
116
|
+
conversationList: "Unterhaltungen",
|
|
117
|
+
loadingConversation: "Unterhaltung wird geladen",
|
|
118
|
+
deleteConversation: "Löschen",
|
|
119
|
+
archiveConversation: "Archivieren",
|
|
120
|
+
unarchiveConversation: "Archivierung aufheben",
|
|
121
|
+
conversationActions: "Aktionen der Unterhaltung",
|
|
122
|
+
conversationRunning: "Antwortet",
|
|
123
|
+
conversationWaiting: "Wartet auf dich",
|
|
124
|
+
renameConversation: "Umbenennen",
|
|
125
|
+
conversationTitle: "Titel der Unterhaltung",
|
|
126
|
+
pinConversation: "Anheften",
|
|
127
|
+
unpinConversation: "Lösen",
|
|
128
|
+
deleteConversationConfirm: "„{title}“ löschen?",
|
|
129
|
+
cancel: "Abbrechen",
|
|
130
|
+
conversationGroupPinned: "Angeheftet",
|
|
131
|
+
conversationGroupToday: "Heute",
|
|
132
|
+
conversationGroupYesterday: "Gestern",
|
|
133
|
+
conversationGroupWeek: "Letzte 7 Tage",
|
|
134
|
+
conversationGroupMonth: "Letzte 30 Tage",
|
|
135
|
+
scrollRailLabel: "Gliederung der Unterhaltung",
|
|
136
|
+
sidebarLabel: "Unterhaltungen",
|
|
137
|
+
splitHandleLabel: "Größe der Bereiche ändern",
|
|
138
|
+
launcherOpen: "Chat öffnen",
|
|
139
|
+
launcherClose: "Chat schließen",
|
|
140
|
+
transcript: "Verlauf",
|
|
141
|
+
tag: "de",
|
|
142
|
+
direction: "ltr"
|
|
143
|
+
};
|
|
144
|
+
export {
|
|
145
|
+
de,
|
|
146
|
+
de as default
|
|
147
|
+
};
|
|
148
|
+
//# sourceMappingURL=de.js.map
|
package/dist/de.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"de.js","sources":["../src/de.ts"],"sourcesContent":["/**\n * German (de) — the chat's interface strings: pass `de` to `aparteGlobalConfig.setLocale()`.\n *\n * Core ships English (`APARTE_DEFAULT_LOCALE`). Every key is translated here — a key left out\n * would show in English, and the package's tests and `check:locale-keys` refuse that.\n */\nimport type { AparteLocale } from '@aparte/core';\n\nexport const de: AparteLocale = {\n inputPlaceholder: \"Nachricht eingeben…\",\n sendButton: \"Senden\",\n copy: \"Kopieren\",\n copied: \"Kopiert!\",\n retry: \"Erneut versuchen\",\n thinking: \"Überlegung\",\n elicitationOther: \"Andere Antwort…\",\n elicitationOtherPlaceholder: \"Antwort eingeben…\",\n elicitationOtherLabel: \"Freie Antwort\",\n submitButton: \"Bestätigen\",\n stopButton: \"Stoppen\",\n elicitationRecommended: \"Empfohlen\",\n elicitationSkip: \"Überspringen\",\n elicitationHide: \"Vorerst ausblenden\",\n elicitationWaiting: \"Wartet auf deine Antwort\",\n elicitationYes: \"Ja\",\n elicitationNo: \"Nein\",\n elicitationAnswerLabel: \"Deine Antwort\",\n approvalInstructionPlaceholder: \"Oder sag ihm, was es stattdessen tun soll…\",\n approvalOptionsLabel: \"Deine Entscheidung\",\n approvalArgsLabel: \"Argumente\",\n approvalAsk: \"{tool} erlauben?\",\n approvalWaiting: \"Ausstehend\",\n scrollToBottom: \"Nach unten scrollen\",\n suggestionsLabel: \"Vorgeschlagene Prompts\",\n contextLabel: \"Kontextfenster\",\n contextSystem: \"Systemprompt\",\n contextTools: \"Tools\",\n contextSummary: \"Zusammenfassung\",\n contextMessages: \"Nachrichten\",\n contextOther: \"Sonstiges\",\n contextFree: \"Frei\",\n contextTotal: \"Gesamt\",\n contextReclaim: \"Jetzt komprimieren würde ~{n} Tokens freigeben\",\n contextCompactNow: \"Jetzt komprimieren\",\n compactionSummaryTitle: \"Zusammenfassung der Unterhaltung\",\n checkpointCount: \"{n} Nachrichten für das Modell zusammengefasst\",\n checkpointCountOne: \"1 Nachricht für das Modell zusammengefasst\",\n checkpointLegacy: \"Frühere Nachrichten wurden zusammengefasst\",\n checkpointGroup: \"Kontextzusammenfassung\",\n checkpointShow: \"Zusammenfassung anzeigen\",\n checkpointHide: \"Zusammenfassung ausblenden\",\n checkpointRestore: \"Wiederherstellen\",\n checkpointRestoreConfirm: \"Die ursprünglichen Nachrichten erneut an das Modell senden?\",\n checkpointPending: \"Kontext wird zusammengefasst…\",\n checkpointFailed: \"Kontext konnte nicht zusammengefasst werden\",\n toolRunning: \"Läuft\",\n toolFailed: \"Fehlgeschlagen\",\n toolCompleted: \"Fertig\",\n toolRejected: \"Abgelehnt\",\n toolStopped: \"Gestoppt\",\n toolInput: \"Eingabe\",\n toolOutput: \"Ausgabe\",\n toolRejectedSaid: \"Du hast gesagt: „{instruction}“\",\n toolRefusedByPolicy: \"Durch eine Regel abgelehnt\",\n toolNotRunAfterRefusal: \"Nicht ausgeführt: Ein früherer Aufruf wurde abgelehnt\",\n toolTimedOut: \"Zeitüberschreitung\",\n toolUnavailable: \"Hier nicht verfügbar\",\n toolNoApprover: \"Niemand konnte es genehmigen\",\n toolTurnLimit: \"Rundenlimit erreicht\",\n maxTurnsReached: \"Nach {n} Runden gestoppt, um eine Endlosschleife zu vermeiden.\",\n questionDeclined: \"Du wolltest nicht antworten.\",\n artifactNotCreated: \"Nicht erstellt\",\n thoughtFor: \"Überlegung: {duration}\",\n thought: \"Überlegung abgeschlossen\",\n actionUpload: \"Datei anhängen\",\n removeAttachment: \"{name} entfernen\",\n messageFrom: \"Nachricht von {name}\",\n selectSearchPlaceholder: \"Suchen…\",\n selectSearchLabel: \"Optionen durchsuchen\",\n loading: \"Wird geladen…\",\n download: \"Herunterladen\",\n openArtifact: \"Öffnen\",\n modelContextWindow: \"{n} Kontext\",\n previewPending: \"Drücke Vorschau, um dieses Artefakt auszuführen.\",\n sandboxError: \"Die Sandbox ist bei der Generierung fehlgeschlagen.\",\n sandboxErrorHint: \"Häufige Ursache: Das Modell hat ungültigen Code erzeugt (undefinierte Variable, falscher Argumenttyp). Versuche es erneut – das Modell kann anderen Code erzeugen.\",\n preview: \"Vorschau\",\n code: \"Code\",\n generating: \"Wird generiert…\",\n rebuildingPreview: \"Vorschau wird neu erstellt…\",\n typing: \"Schreibt\",\n responseCutOff: \"Am Längenlimit des Modells abgeschnitten.\",\n error: \"Fehler\",\n errorUnreachable: \"Der Assistent ist gerade nicht erreichbar. Versuch es gleich noch einmal.\",\n errorTimeout: \"Die Antwort hat zu lange gedauert. Versuch es gleich noch einmal.\",\n errorRefused: \"Der Assistent darf gerade nicht antworten.\",\n errorRateLimited: \"Gerade gibt es zu viele Anfragen. Versuch es gleich noch einmal.\",\n errorTooLong: \"Diese Unterhaltung ist zu lang für das Modell. Fang eine neue an.\",\n errorFailed: \"Der Assistent konnte nicht antworten. Versuch es gleich noch einmal.\",\n errorNoAnswer: \"Der Assistent konnte auf diese Anfrage nicht antworten.\",\n running: \"Wird ausgeführt…\",\n run: \"Ausführen\",\n file: \"Datei\",\n modelSelectorPlaceholder: \"Modell auswählen…\",\n approvalModeLabel: \"Genehmigungsmodus\",\n roleNameUser: \"Du\",\n roleNameAssistant: \"Assistent\",\n yourMessage: \"Deine Nachricht\",\n assistantResponse: \"Antwort des Assistenten\",\n messageActions: \"Nachrichtenaktionen\",\n edit: \"Nachricht bearbeiten\",\n editConfirm: \"Senden\",\n editCancel: \"Abbrechen\",\n feedbackPositive: \"Gute Antwort\",\n feedbackNegative: \"Schlechte Antwort\",\n previousResponse: \"Vorherige Antwort\",\n nextResponse: \"Nächste Antwort\",\n approveTool: \"Genehmigen\",\n rejectTool: \"Ablehnen\",\n messageInfo: \"Details\",\n newChat: \"Neuer Chat\",\n loadingConversations: \"Unterhaltungen werden geladen\",\n conversationSearchEmpty: \"Keine Unterhaltung gefunden\",\n conversationList: \"Unterhaltungen\",\n loadingConversation: \"Unterhaltung wird geladen\",\n deleteConversation: \"Löschen\",\n archiveConversation: \"Archivieren\",\n unarchiveConversation: \"Archivierung aufheben\",\n conversationActions: \"Aktionen der Unterhaltung\",\n conversationRunning: \"Antwortet\",\n conversationWaiting: \"Wartet auf dich\",\n renameConversation: \"Umbenennen\",\n conversationTitle: \"Titel der Unterhaltung\",\n pinConversation: \"Anheften\",\n unpinConversation: \"Lösen\",\n deleteConversationConfirm: \"„{title}“ löschen?\",\n cancel: \"Abbrechen\",\n conversationGroupPinned: \"Angeheftet\",\n conversationGroupToday: \"Heute\",\n conversationGroupYesterday: \"Gestern\",\n conversationGroupWeek: \"Letzte 7 Tage\",\n conversationGroupMonth: \"Letzte 30 Tage\",\n scrollRailLabel: \"Gliederung der Unterhaltung\",\n sidebarLabel: \"Unterhaltungen\",\n splitHandleLabel: \"Größe der Bereiche ändern\",\n launcherOpen: \"Chat öffnen\",\n launcherClose: \"Chat schließen\",\n transcript: \"Verlauf\",\n tag: \"de\",\n direction: 'ltr',\n};\n\nexport default de;\n"],"names":[],"mappings":"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"}
|
package/dist/es.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Spanish (es) — the chat's interface strings: pass `es` to `aparteGlobalConfig.setLocale()`.
|
|
3
|
+
*
|
|
4
|
+
* Core ships English (`APARTE_DEFAULT_LOCALE`). Every key is translated here — a key left out
|
|
5
|
+
* would show in English, and the package's tests and `check:locale-keys` refuse that.
|
|
6
|
+
*/
|
|
7
|
+
import type { AparteLocale } from '@aparte/core';
|
|
8
|
+
export declare const es: AparteLocale;
|
|
9
|
+
export default es;
|
|
10
|
+
//# sourceMappingURL=es.d.ts.map
|
package/dist/es.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"es.d.ts","sourceRoot":"","sources":["../src/es.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,eAAO,MAAM,EAAE,EAAE,YA8IhB,CAAC;AAEF,eAAe,EAAE,CAAC"}
|
package/dist/es.js
ADDED
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
const es = {
|
|
2
|
+
inputPlaceholder: "Escribe un mensaje…",
|
|
3
|
+
sendButton: "Enviar",
|
|
4
|
+
copy: "Copiar",
|
|
5
|
+
copied: "¡Copiado!",
|
|
6
|
+
retry: "Reintentar",
|
|
7
|
+
thinking: "Razonamiento",
|
|
8
|
+
elicitationOther: "Otra respuesta…",
|
|
9
|
+
elicitationOtherPlaceholder: "Escribe tu respuesta…",
|
|
10
|
+
elicitationOtherLabel: "Respuesta libre",
|
|
11
|
+
submitButton: "Confirmar",
|
|
12
|
+
stopButton: "Detener",
|
|
13
|
+
elicitationRecommended: "Recomendado",
|
|
14
|
+
elicitationSkip: "Omitir",
|
|
15
|
+
elicitationHide: "Ocultar por ahora",
|
|
16
|
+
elicitationWaiting: "Esperando tu respuesta",
|
|
17
|
+
elicitationYes: "Sí",
|
|
18
|
+
elicitationNo: "No",
|
|
19
|
+
elicitationAnswerLabel: "Tu respuesta",
|
|
20
|
+
approvalInstructionPlaceholder: "O dile qué hacer en su lugar…",
|
|
21
|
+
approvalOptionsLabel: "Tu decisión",
|
|
22
|
+
approvalArgsLabel: "Argumentos",
|
|
23
|
+
approvalAsk: "¿Permitir {tool}?",
|
|
24
|
+
approvalWaiting: "En espera",
|
|
25
|
+
scrollToBottom: "Ir al final",
|
|
26
|
+
suggestionsLabel: "Sugerencias de mensajes",
|
|
27
|
+
contextLabel: "Ventana de contexto",
|
|
28
|
+
contextSystem: "Prompt del sistema",
|
|
29
|
+
contextTools: "Herramientas",
|
|
30
|
+
contextSummary: "Resumen",
|
|
31
|
+
contextMessages: "Mensajes",
|
|
32
|
+
contextOther: "Otros",
|
|
33
|
+
contextFree: "Libre",
|
|
34
|
+
contextTotal: "Total",
|
|
35
|
+
contextReclaim: "Compactar ahora liberaría ~{n} tokens",
|
|
36
|
+
contextCompactNow: "Compactar ahora",
|
|
37
|
+
compactionSummaryTitle: "Resumen de la conversación",
|
|
38
|
+
checkpointCount: "{n} mensajes resumidos para el modelo",
|
|
39
|
+
checkpointCountOne: "1 mensaje resumido para el modelo",
|
|
40
|
+
checkpointLegacy: "Los mensajes anteriores se resumieron",
|
|
41
|
+
checkpointGroup: "Resumen del contexto",
|
|
42
|
+
checkpointShow: "Mostrar resumen",
|
|
43
|
+
checkpointHide: "Ocultar resumen",
|
|
44
|
+
checkpointRestore: "Restaurar",
|
|
45
|
+
checkpointRestoreConfirm: "¿Enviar de nuevo los mensajes originales al modelo?",
|
|
46
|
+
checkpointPending: "Resumiendo el contexto…",
|
|
47
|
+
checkpointFailed: "No se pudo resumir el contexto",
|
|
48
|
+
toolRunning: "En curso",
|
|
49
|
+
toolFailed: "Falló",
|
|
50
|
+
toolCompleted: "Hecho",
|
|
51
|
+
toolRejected: "Rechazado",
|
|
52
|
+
toolStopped: "Detenido",
|
|
53
|
+
toolInput: "Entrada",
|
|
54
|
+
toolOutput: "Salida",
|
|
55
|
+
toolRejectedSaid: "Dijiste: «{instruction}»",
|
|
56
|
+
toolRefusedByPolicy: "Rechazado por una regla",
|
|
57
|
+
toolNotRunAfterRefusal: "No ejecutado: se rechazó una llamada anterior",
|
|
58
|
+
toolTimedOut: "Tiempo agotado",
|
|
59
|
+
toolUnavailable: "No disponible aquí",
|
|
60
|
+
toolNoApprover: "Nadie podía aprobarlo",
|
|
61
|
+
toolTurnLimit: "Límite de turnos alcanzado",
|
|
62
|
+
maxTurnsReached: "Detenido tras {n} turnos para evitar un bucle infinito.",
|
|
63
|
+
questionDeclined: "Decidiste no responder.",
|
|
64
|
+
artifactNotCreated: "No creado",
|
|
65
|
+
thoughtFor: "Razonamiento: {duration}",
|
|
66
|
+
thought: "Razonamiento completado",
|
|
67
|
+
actionUpload: "Adjuntar archivo",
|
|
68
|
+
removeAttachment: "Quitar {name}",
|
|
69
|
+
messageFrom: "Mensaje de {name}",
|
|
70
|
+
selectSearchPlaceholder: "Buscar…",
|
|
71
|
+
selectSearchLabel: "Buscar en las opciones",
|
|
72
|
+
loading: "Cargando…",
|
|
73
|
+
download: "Descargar",
|
|
74
|
+
openArtifact: "Abrir",
|
|
75
|
+
modelContextWindow: "{n} de contexto",
|
|
76
|
+
previewPending: "Pulsa Vista previa para ejecutar este artefacto.",
|
|
77
|
+
sandboxError: "El entorno aislado falló durante la generación.",
|
|
78
|
+
sandboxErrorHint: "Causa frecuente: el modelo generó código no válido (variable no definida, tipo de argumento incorrecto). Vuelve a intentarlo: el modelo puede generar otro código.",
|
|
79
|
+
preview: "Vista previa",
|
|
80
|
+
code: "Código",
|
|
81
|
+
generating: "Generando…",
|
|
82
|
+
rebuildingPreview: "Reconstruyendo la vista previa…",
|
|
83
|
+
typing: "Escribiendo",
|
|
84
|
+
responseCutOff: "Cortada en el límite de longitud del modelo.",
|
|
85
|
+
error: "Error",
|
|
86
|
+
errorUnreachable: "Ahora mismo no se puede contactar con el asistente. Inténtalo de nuevo en un momento.",
|
|
87
|
+
errorTimeout: "La respuesta tardó demasiado. Inténtalo de nuevo en un momento.",
|
|
88
|
+
errorRefused: "El asistente no tiene permiso para responder ahora mismo.",
|
|
89
|
+
errorRateLimited: "Demasiadas solicitudes en este momento. Inténtalo de nuevo en un momento.",
|
|
90
|
+
errorTooLong: "Esta conversación es demasiado larga para el modelo. Empieza una nueva.",
|
|
91
|
+
errorFailed: "El asistente no pudo responder. Inténtalo de nuevo en un momento.",
|
|
92
|
+
errorNoAnswer: "El asistente no pudo responder a esta solicitud.",
|
|
93
|
+
running: "Ejecutando…",
|
|
94
|
+
run: "Ejecutar",
|
|
95
|
+
file: "Archivo",
|
|
96
|
+
modelSelectorPlaceholder: "Selecciona un modelo…",
|
|
97
|
+
approvalModeLabel: "Modo de aprobación",
|
|
98
|
+
roleNameUser: "Tú",
|
|
99
|
+
roleNameAssistant: "Asistente",
|
|
100
|
+
yourMessage: "Tu mensaje",
|
|
101
|
+
assistantResponse: "Respuesta del asistente",
|
|
102
|
+
messageActions: "Acciones del mensaje",
|
|
103
|
+
edit: "Editar mensaje",
|
|
104
|
+
editConfirm: "Enviar",
|
|
105
|
+
editCancel: "Cancelar",
|
|
106
|
+
feedbackPositive: "Buena respuesta",
|
|
107
|
+
feedbackNegative: "Mala respuesta",
|
|
108
|
+
previousResponse: "Respuesta anterior",
|
|
109
|
+
nextResponse: "Respuesta siguiente",
|
|
110
|
+
approveTool: "Aprobar",
|
|
111
|
+
rejectTool: "Rechazar",
|
|
112
|
+
messageInfo: "Detalles",
|
|
113
|
+
newChat: "Nueva conversación",
|
|
114
|
+
loadingConversations: "Cargando conversaciones",
|
|
115
|
+
conversationSearchEmpty: "Ninguna conversación coincide",
|
|
116
|
+
conversationList: "Conversaciones",
|
|
117
|
+
loadingConversation: "Cargando la conversación",
|
|
118
|
+
deleteConversation: "Eliminar",
|
|
119
|
+
archiveConversation: "Archivar",
|
|
120
|
+
unarchiveConversation: "Desarchivar",
|
|
121
|
+
conversationActions: "Acciones de la conversación",
|
|
122
|
+
conversationRunning: "Respondiendo",
|
|
123
|
+
conversationWaiting: "Espera tu respuesta",
|
|
124
|
+
renameConversation: "Cambiar nombre",
|
|
125
|
+
conversationTitle: "Título de la conversación",
|
|
126
|
+
pinConversation: "Fijar",
|
|
127
|
+
unpinConversation: "Dejar de fijar",
|
|
128
|
+
deleteConversationConfirm: "¿Eliminar «{title}»?",
|
|
129
|
+
cancel: "Cancelar",
|
|
130
|
+
conversationGroupPinned: "Fijadas",
|
|
131
|
+
conversationGroupToday: "Hoy",
|
|
132
|
+
conversationGroupYesterday: "Ayer",
|
|
133
|
+
conversationGroupWeek: "Últimos 7 días",
|
|
134
|
+
conversationGroupMonth: "Últimos 30 días",
|
|
135
|
+
scrollRailLabel: "Esquema de la conversación",
|
|
136
|
+
sidebarLabel: "Conversaciones",
|
|
137
|
+
splitHandleLabel: "Cambiar el tamaño de los paneles",
|
|
138
|
+
launcherOpen: "Abrir el chat",
|
|
139
|
+
launcherClose: "Cerrar el chat",
|
|
140
|
+
transcript: "Transcripción",
|
|
141
|
+
tag: "es",
|
|
142
|
+
direction: "ltr"
|
|
143
|
+
};
|
|
144
|
+
export {
|
|
145
|
+
es as default,
|
|
146
|
+
es
|
|
147
|
+
};
|
|
148
|
+
//# sourceMappingURL=es.js.map
|
package/dist/es.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"es.js","sources":["../src/es.ts"],"sourcesContent":["/**\n * Spanish (es) — the chat's interface strings: pass `es` to `aparteGlobalConfig.setLocale()`.\n *\n * Core ships English (`APARTE_DEFAULT_LOCALE`). Every key is translated here — a key left out\n * would show in English, and the package's tests and `check:locale-keys` refuse that.\n */\nimport type { AparteLocale } from '@aparte/core';\n\nexport const es: AparteLocale = {\n inputPlaceholder: \"Escribe un mensaje…\",\n sendButton: \"Enviar\",\n copy: \"Copiar\",\n copied: \"¡Copiado!\",\n retry: \"Reintentar\",\n thinking: \"Razonamiento\",\n elicitationOther: \"Otra respuesta…\",\n elicitationOtherPlaceholder: \"Escribe tu respuesta…\",\n elicitationOtherLabel: \"Respuesta libre\",\n submitButton: \"Confirmar\",\n stopButton: \"Detener\",\n elicitationRecommended: \"Recomendado\",\n elicitationSkip: \"Omitir\",\n elicitationHide: \"Ocultar por ahora\",\n elicitationWaiting: \"Esperando tu respuesta\",\n elicitationYes: \"Sí\",\n elicitationNo: \"No\",\n elicitationAnswerLabel: \"Tu respuesta\",\n approvalInstructionPlaceholder: \"O dile qué hacer en su lugar…\",\n approvalOptionsLabel: \"Tu decisión\",\n approvalArgsLabel: \"Argumentos\",\n approvalAsk: \"¿Permitir {tool}?\",\n approvalWaiting: \"En espera\",\n scrollToBottom: \"Ir al final\",\n suggestionsLabel: \"Sugerencias de mensajes\",\n contextLabel: \"Ventana de contexto\",\n contextSystem: \"Prompt del sistema\",\n contextTools: \"Herramientas\",\n contextSummary: \"Resumen\",\n contextMessages: \"Mensajes\",\n contextOther: \"Otros\",\n contextFree: \"Libre\",\n contextTotal: \"Total\",\n contextReclaim: \"Compactar ahora liberaría ~{n} tokens\",\n contextCompactNow: \"Compactar ahora\",\n compactionSummaryTitle: \"Resumen de la conversación\",\n checkpointCount: \"{n} mensajes resumidos para el modelo\",\n checkpointCountOne: \"1 mensaje resumido para el modelo\",\n checkpointLegacy: \"Los mensajes anteriores se resumieron\",\n checkpointGroup: \"Resumen del contexto\",\n checkpointShow: \"Mostrar resumen\",\n checkpointHide: \"Ocultar resumen\",\n checkpointRestore: \"Restaurar\",\n checkpointRestoreConfirm: \"¿Enviar de nuevo los mensajes originales al modelo?\",\n checkpointPending: \"Resumiendo el contexto…\",\n checkpointFailed: \"No se pudo resumir el contexto\",\n toolRunning: \"En curso\",\n toolFailed: \"Falló\",\n toolCompleted: \"Hecho\",\n toolRejected: \"Rechazado\",\n toolStopped: \"Detenido\",\n toolInput: \"Entrada\",\n toolOutput: \"Salida\",\n toolRejectedSaid: \"Dijiste: «{instruction}»\",\n toolRefusedByPolicy: \"Rechazado por una regla\",\n toolNotRunAfterRefusal: \"No ejecutado: se rechazó una llamada anterior\",\n toolTimedOut: \"Tiempo agotado\",\n toolUnavailable: \"No disponible aquí\",\n toolNoApprover: \"Nadie podía aprobarlo\",\n toolTurnLimit: \"Límite de turnos alcanzado\",\n maxTurnsReached: \"Detenido tras {n} turnos para evitar un bucle infinito.\",\n questionDeclined: \"Decidiste no responder.\",\n artifactNotCreated: \"No creado\",\n thoughtFor: \"Razonamiento: {duration}\",\n thought: \"Razonamiento completado\",\n actionUpload: \"Adjuntar archivo\",\n removeAttachment: \"Quitar {name}\",\n messageFrom: \"Mensaje de {name}\",\n selectSearchPlaceholder: \"Buscar…\",\n selectSearchLabel: \"Buscar en las opciones\",\n loading: \"Cargando…\",\n download: \"Descargar\",\n openArtifact: \"Abrir\",\n modelContextWindow: \"{n} de contexto\",\n previewPending: \"Pulsa Vista previa para ejecutar este artefacto.\",\n sandboxError: \"El entorno aislado falló durante la generación.\",\n sandboxErrorHint: \"Causa frecuente: el modelo generó código no válido (variable no definida, tipo de argumento incorrecto). Vuelve a intentarlo: el modelo puede generar otro código.\",\n preview: \"Vista previa\",\n code: \"Código\",\n generating: \"Generando…\",\n rebuildingPreview: \"Reconstruyendo la vista previa…\",\n typing: \"Escribiendo\",\n responseCutOff: \"Cortada en el límite de longitud del modelo.\",\n error: \"Error\",\n errorUnreachable: \"Ahora mismo no se puede contactar con el asistente. Inténtalo de nuevo en un momento.\",\n errorTimeout: \"La respuesta tardó demasiado. Inténtalo de nuevo en un momento.\",\n errorRefused: \"El asistente no tiene permiso para responder ahora mismo.\",\n errorRateLimited: \"Demasiadas solicitudes en este momento. Inténtalo de nuevo en un momento.\",\n errorTooLong: \"Esta conversación es demasiado larga para el modelo. Empieza una nueva.\",\n errorFailed: \"El asistente no pudo responder. Inténtalo de nuevo en un momento.\",\n errorNoAnswer: \"El asistente no pudo responder a esta solicitud.\",\n running: \"Ejecutando…\",\n run: \"Ejecutar\",\n file: \"Archivo\",\n modelSelectorPlaceholder: \"Selecciona un modelo…\",\n approvalModeLabel: \"Modo de aprobación\",\n roleNameUser: \"Tú\",\n roleNameAssistant: \"Asistente\",\n yourMessage: \"Tu mensaje\",\n assistantResponse: \"Respuesta del asistente\",\n messageActions: \"Acciones del mensaje\",\n edit: \"Editar mensaje\",\n editConfirm: \"Enviar\",\n editCancel: \"Cancelar\",\n feedbackPositive: \"Buena respuesta\",\n feedbackNegative: \"Mala respuesta\",\n previousResponse: \"Respuesta anterior\",\n nextResponse: \"Respuesta siguiente\",\n approveTool: \"Aprobar\",\n rejectTool: \"Rechazar\",\n messageInfo: \"Detalles\",\n newChat: \"Nueva conversación\",\n loadingConversations: \"Cargando conversaciones\",\n conversationSearchEmpty: \"Ninguna conversación coincide\",\n conversationList: \"Conversaciones\",\n loadingConversation: \"Cargando la conversación\",\n deleteConversation: \"Eliminar\",\n archiveConversation: \"Archivar\",\n unarchiveConversation: \"Desarchivar\",\n conversationActions: \"Acciones de la conversación\",\n conversationRunning: \"Respondiendo\",\n conversationWaiting: \"Espera tu respuesta\",\n renameConversation: \"Cambiar nombre\",\n conversationTitle: \"Título de la conversación\",\n pinConversation: \"Fijar\",\n unpinConversation: \"Dejar de fijar\",\n deleteConversationConfirm: \"¿Eliminar «{title}»?\",\n cancel: \"Cancelar\",\n conversationGroupPinned: \"Fijadas\",\n conversationGroupToday: \"Hoy\",\n conversationGroupYesterday: \"Ayer\",\n conversationGroupWeek: \"Últimos 7 días\",\n conversationGroupMonth: \"Últimos 30 días\",\n scrollRailLabel: \"Esquema de la conversación\",\n sidebarLabel: \"Conversaciones\",\n splitHandleLabel: \"Cambiar el tamaño de los paneles\",\n launcherOpen: \"Abrir el chat\",\n launcherClose: \"Cerrar el chat\",\n transcript: \"Transcripción\",\n tag: \"es\",\n direction: 'ltr',\n};\n\nexport default es;\n"],"names":[],"mappings":"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"}
|
package/dist/fr.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* French (fr) — the chat's interface strings: pass `fr` to `aparteGlobalConfig.setLocale()`.
|
|
3
|
+
*
|
|
4
|
+
* Core ships English (`APARTE_DEFAULT_LOCALE`). Every key is translated here — a key left out
|
|
5
|
+
* would show in English, and the package's tests and `check:locale-keys` refuse that.
|
|
6
|
+
*/
|
|
7
|
+
import type { AparteLocale } from '@aparte/core';
|
|
8
|
+
export declare const fr: AparteLocale;
|
|
9
|
+
export default fr;
|
|
10
|
+
//# sourceMappingURL=fr.d.ts.map
|
package/dist/fr.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fr.d.ts","sourceRoot":"","sources":["../src/fr.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,eAAO,MAAM,EAAE,EAAE,YA8IhB,CAAC;AAEF,eAAe,EAAE,CAAC"}
|
package/dist/fr.js
ADDED
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
const fr = {
|
|
2
|
+
inputPlaceholder: "Écrivez un message...",
|
|
3
|
+
sendButton: "Envoyer",
|
|
4
|
+
copy: "Copier",
|
|
5
|
+
copied: "Copié !",
|
|
6
|
+
retry: "Réessayer",
|
|
7
|
+
thinking: "Réflexion",
|
|
8
|
+
elicitationOther: "Autre…",
|
|
9
|
+
elicitationOtherPlaceholder: "Écrivez votre réponse…",
|
|
10
|
+
elicitationOtherLabel: "Réponse libre",
|
|
11
|
+
submitButton: "Valider",
|
|
12
|
+
stopButton: "Arrêter",
|
|
13
|
+
elicitationRecommended: "Recommandé",
|
|
14
|
+
elicitationSkip: "Passer",
|
|
15
|
+
elicitationHide: "Masquer pour l'instant",
|
|
16
|
+
elicitationWaiting: "En attente de votre réponse",
|
|
17
|
+
elicitationYes: "Oui",
|
|
18
|
+
elicitationNo: "Non",
|
|
19
|
+
elicitationAnswerLabel: "Votre réponse",
|
|
20
|
+
approvalInstructionPlaceholder: "Ou dites-lui quoi faire à la place…",
|
|
21
|
+
approvalOptionsLabel: "Votre décision",
|
|
22
|
+
approvalArgsLabel: "Arguments",
|
|
23
|
+
approvalAsk: "Autoriser {tool} ?",
|
|
24
|
+
approvalWaiting: "En attente",
|
|
25
|
+
scrollToBottom: "Aller en bas de la conversation",
|
|
26
|
+
suggestionsLabel: "Suggestions de messages",
|
|
27
|
+
contextLabel: "Fenêtre de contexte",
|
|
28
|
+
contextSystem: "Prompt système",
|
|
29
|
+
contextTools: "Outils",
|
|
30
|
+
contextSummary: "Résumé",
|
|
31
|
+
contextMessages: "Messages",
|
|
32
|
+
contextOther: "Autre",
|
|
33
|
+
contextFree: "Libre",
|
|
34
|
+
contextTotal: "Total",
|
|
35
|
+
contextReclaim: "Compacter maintenant libérerait ~{n} tokens",
|
|
36
|
+
contextCompactNow: "Compacter maintenant",
|
|
37
|
+
compactionSummaryTitle: "Résumé de la conversation",
|
|
38
|
+
checkpointCount: "{n} messages résumés pour le modèle",
|
|
39
|
+
checkpointCountOne: "1 message résumé pour le modèle",
|
|
40
|
+
checkpointLegacy: "Les messages précédents ont été résumés",
|
|
41
|
+
checkpointGroup: "Résumé du contexte",
|
|
42
|
+
checkpointShow: "Afficher le résumé",
|
|
43
|
+
checkpointHide: "Masquer le résumé",
|
|
44
|
+
checkpointRestore: "Restaurer",
|
|
45
|
+
checkpointRestoreConfirm: "Renvoyer les messages d'origine au modèle ?",
|
|
46
|
+
checkpointPending: "Résumé du contexte en cours…",
|
|
47
|
+
checkpointFailed: "Impossible de résumer le contexte",
|
|
48
|
+
toolRunning: "En cours",
|
|
49
|
+
toolFailed: "Échec",
|
|
50
|
+
toolCompleted: "Terminé",
|
|
51
|
+
toolRejected: "Refusé",
|
|
52
|
+
toolStopped: "Arrêté",
|
|
53
|
+
toolInput: "Entrée",
|
|
54
|
+
toolOutput: "Sortie",
|
|
55
|
+
toolRejectedSaid: "Vous avez dit : « {instruction} »",
|
|
56
|
+
toolRefusedByPolicy: "Refusé par une règle",
|
|
57
|
+
toolNotRunAfterRefusal: "Non exécuté : un appel précédent a été refusé",
|
|
58
|
+
toolTimedOut: "Délai dépassé",
|
|
59
|
+
toolUnavailable: "Indisponible ici",
|
|
60
|
+
toolNoApprover: "Personne ne pouvait l'approuver",
|
|
61
|
+
toolTurnLimit: "Limite de tours atteinte",
|
|
62
|
+
maxTurnsReached: "Arrêté après {n} tours pour éviter une boucle sans fin.",
|
|
63
|
+
questionDeclined: "Vous n'avez pas répondu.",
|
|
64
|
+
artifactNotCreated: "Non créé",
|
|
65
|
+
thoughtFor: "Réflexion : {duration}",
|
|
66
|
+
thought: "Réflexion terminée",
|
|
67
|
+
actionUpload: "Joindre un fichier",
|
|
68
|
+
removeAttachment: "Retirer {name}",
|
|
69
|
+
messageFrom: "Message de {name}",
|
|
70
|
+
selectSearchPlaceholder: "Rechercher…",
|
|
71
|
+
selectSearchLabel: "Rechercher parmi les options",
|
|
72
|
+
loading: "Chargement…",
|
|
73
|
+
download: "Télécharger",
|
|
74
|
+
openArtifact: "Ouvrir",
|
|
75
|
+
modelContextWindow: "{n} de contexte",
|
|
76
|
+
previewPending: "Appuyez sur Aperçu pour exécuter cet artefact.",
|
|
77
|
+
sandboxError: "Le bac à sable a échoué pendant la génération.",
|
|
78
|
+
sandboxErrorHint: "Cause fréquente : le modèle a produit du code invalide (variable non définie, mauvais type d'argument). Relancez la demande — le modèle peut produire un autre code.",
|
|
79
|
+
preview: "Aperçu",
|
|
80
|
+
code: "Code",
|
|
81
|
+
generating: "Génération…",
|
|
82
|
+
rebuildingPreview: "Reconstruction de l'aperçu…",
|
|
83
|
+
typing: "Écrit...",
|
|
84
|
+
responseCutOff: "Coupée à la limite de longueur du modèle.",
|
|
85
|
+
error: "Erreur",
|
|
86
|
+
errorUnreachable: "L'assistant est injoignable pour le moment. Réessayez dans un instant.",
|
|
87
|
+
errorTimeout: "La réponse a pris trop de temps. Réessayez dans un instant.",
|
|
88
|
+
errorRefused: "L'assistant n'est pas autorisé à répondre pour le moment.",
|
|
89
|
+
errorRateLimited: "Trop de requêtes en ce moment. Réessayez dans un instant.",
|
|
90
|
+
errorTooLong: "Cette conversation est trop longue pour le modèle. Commencez-en une nouvelle.",
|
|
91
|
+
errorFailed: "L'assistant n'a pas pu répondre. Réessayez dans un instant.",
|
|
92
|
+
errorNoAnswer: "L'assistant n'a pas pu répondre à cette demande.",
|
|
93
|
+
running: "Exécution...",
|
|
94
|
+
run: "Exécuter",
|
|
95
|
+
file: "Fichier",
|
|
96
|
+
modelSelectorPlaceholder: "Sélectionner un modèle...",
|
|
97
|
+
approvalModeLabel: "Mode d'approbation",
|
|
98
|
+
roleNameUser: "Vous",
|
|
99
|
+
roleNameAssistant: "Assistant",
|
|
100
|
+
yourMessage: "Votre message",
|
|
101
|
+
assistantResponse: "Réponse de l'assistant",
|
|
102
|
+
messageActions: "Actions du message",
|
|
103
|
+
edit: "Modifier le message",
|
|
104
|
+
editConfirm: "Envoyer",
|
|
105
|
+
editCancel: "Annuler",
|
|
106
|
+
feedbackPositive: "Bonne réponse",
|
|
107
|
+
feedbackNegative: "Mauvaise réponse",
|
|
108
|
+
previousResponse: "Réponse précédente",
|
|
109
|
+
nextResponse: "Réponse suivante",
|
|
110
|
+
approveTool: "Approuver",
|
|
111
|
+
rejectTool: "Rejeter",
|
|
112
|
+
messageInfo: "Détails",
|
|
113
|
+
newChat: "Nouvelle conversation",
|
|
114
|
+
loadingConversations: "Chargement des conversations",
|
|
115
|
+
conversationSearchEmpty: "Aucune conversation ne correspond",
|
|
116
|
+
conversationList: "Conversations",
|
|
117
|
+
loadingConversation: "Chargement de la conversation",
|
|
118
|
+
deleteConversation: "Supprimer",
|
|
119
|
+
archiveConversation: "Archiver",
|
|
120
|
+
unarchiveConversation: "Désarchiver",
|
|
121
|
+
conversationActions: "Actions de la conversation",
|
|
122
|
+
conversationRunning: "Réponse en cours",
|
|
123
|
+
conversationWaiting: "Attend votre réponse",
|
|
124
|
+
renameConversation: "Renommer",
|
|
125
|
+
conversationTitle: "Titre de la conversation",
|
|
126
|
+
pinConversation: "Épingler",
|
|
127
|
+
unpinConversation: "Désépingler",
|
|
128
|
+
deleteConversationConfirm: "Supprimer « {title} » ?",
|
|
129
|
+
cancel: "Annuler",
|
|
130
|
+
conversationGroupPinned: "Épinglées",
|
|
131
|
+
conversationGroupToday: "Aujourd'hui",
|
|
132
|
+
conversationGroupYesterday: "Hier",
|
|
133
|
+
conversationGroupWeek: "7 derniers jours",
|
|
134
|
+
conversationGroupMonth: "30 derniers jours",
|
|
135
|
+
scrollRailLabel: "Plan de la conversation",
|
|
136
|
+
sidebarLabel: "Conversations",
|
|
137
|
+
splitHandleLabel: "Redimensionner les panneaux",
|
|
138
|
+
launcherOpen: "Ouvrir la discussion",
|
|
139
|
+
launcherClose: "Fermer la discussion",
|
|
140
|
+
transcript: "Transcription",
|
|
141
|
+
tag: "fr-FR",
|
|
142
|
+
direction: "ltr"
|
|
143
|
+
};
|
|
144
|
+
export {
|
|
145
|
+
fr as default,
|
|
146
|
+
fr
|
|
147
|
+
};
|
|
148
|
+
//# sourceMappingURL=fr.js.map
|
package/dist/fr.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fr.js","sources":["../src/fr.ts"],"sourcesContent":["/**\n * French (fr) — the chat's interface strings: pass `fr` to `aparteGlobalConfig.setLocale()`.\n *\n * Core ships English (`APARTE_DEFAULT_LOCALE`). Every key is translated here — a key left out\n * would show in English, and the package's tests and `check:locale-keys` refuse that.\n */\nimport type { AparteLocale } from '@aparte/core';\n\nexport const fr: AparteLocale = {\n inputPlaceholder: \"Écrivez un message...\",\n sendButton: \"Envoyer\",\n copy: \"Copier\",\n copied: \"Copié !\",\n retry: \"Réessayer\",\n thinking: \"Réflexion\",\n elicitationOther: \"Autre…\",\n elicitationOtherPlaceholder: \"Écrivez votre réponse…\",\n elicitationOtherLabel: \"Réponse libre\",\n submitButton: \"Valider\",\n stopButton: \"Arrêter\",\n elicitationRecommended: \"Recommandé\",\n elicitationSkip: \"Passer\",\n elicitationHide: \"Masquer pour l'instant\",\n elicitationWaiting: \"En attente de votre réponse\",\n elicitationYes: \"Oui\",\n elicitationNo: \"Non\",\n elicitationAnswerLabel: \"Votre réponse\",\n approvalInstructionPlaceholder: \"Ou dites-lui quoi faire à la place…\",\n approvalOptionsLabel: \"Votre décision\",\n approvalArgsLabel: \"Arguments\",\n approvalAsk: \"Autoriser {tool} ?\",\n approvalWaiting: \"En attente\",\n scrollToBottom: \"Aller en bas de la conversation\",\n suggestionsLabel: \"Suggestions de messages\",\n contextLabel: \"Fenêtre de contexte\",\n contextSystem: \"Prompt système\",\n contextTools: \"Outils\",\n contextSummary: \"Résumé\",\n contextMessages: \"Messages\",\n contextOther: \"Autre\",\n contextFree: \"Libre\",\n contextTotal: \"Total\",\n contextReclaim: \"Compacter maintenant libérerait ~{n} tokens\",\n contextCompactNow: \"Compacter maintenant\",\n compactionSummaryTitle: \"Résumé de la conversation\",\n checkpointCount: \"{n} messages résumés pour le modèle\",\n checkpointCountOne: \"1 message résumé pour le modèle\",\n checkpointLegacy: \"Les messages précédents ont été résumés\",\n checkpointGroup: \"Résumé du contexte\",\n checkpointShow: \"Afficher le résumé\",\n checkpointHide: \"Masquer le résumé\",\n checkpointRestore: \"Restaurer\",\n checkpointRestoreConfirm: \"Renvoyer les messages d'origine au modèle ?\",\n checkpointPending: \"Résumé du contexte en cours…\",\n checkpointFailed: \"Impossible de résumer le contexte\",\n toolRunning: \"En cours\",\n toolFailed: \"Échec\",\n toolCompleted: \"Terminé\",\n toolRejected: \"Refusé\",\n toolStopped: \"Arrêté\",\n toolInput: \"Entrée\",\n toolOutput: \"Sortie\",\n toolRejectedSaid: \"Vous avez dit : « {instruction} »\",\n toolRefusedByPolicy: \"Refusé par une règle\",\n toolNotRunAfterRefusal: \"Non exécuté : un appel précédent a été refusé\",\n toolTimedOut: \"Délai dépassé\",\n toolUnavailable: \"Indisponible ici\",\n toolNoApprover: \"Personne ne pouvait l'approuver\",\n toolTurnLimit: \"Limite de tours atteinte\",\n maxTurnsReached: \"Arrêté après {n} tours pour éviter une boucle sans fin.\",\n questionDeclined: \"Vous n'avez pas répondu.\",\n artifactNotCreated: \"Non créé\",\n thoughtFor: \"Réflexion : {duration}\",\n thought: \"Réflexion terminée\",\n actionUpload: \"Joindre un fichier\",\n removeAttachment: \"Retirer {name}\",\n messageFrom: \"Message de {name}\",\n selectSearchPlaceholder: \"Rechercher…\",\n selectSearchLabel: \"Rechercher parmi les options\",\n loading: \"Chargement…\",\n download: \"Télécharger\",\n openArtifact: \"Ouvrir\",\n modelContextWindow: \"{n} de contexte\",\n previewPending: \"Appuyez sur Aperçu pour exécuter cet artefact.\",\n sandboxError: \"Le bac à sable a échoué pendant la génération.\",\n sandboxErrorHint: \"Cause fréquente : le modèle a produit du code invalide (variable non définie, mauvais type d'argument). Relancez la demande — le modèle peut produire un autre code.\",\n preview: \"Aperçu\",\n code: \"Code\",\n generating: \"Génération…\",\n rebuildingPreview: \"Reconstruction de l'aperçu…\",\n typing: \"Écrit...\",\n responseCutOff: \"Coupée à la limite de longueur du modèle.\",\n error: \"Erreur\",\n errorUnreachable: \"L'assistant est injoignable pour le moment. Réessayez dans un instant.\",\n errorTimeout: \"La réponse a pris trop de temps. Réessayez dans un instant.\",\n errorRefused: \"L'assistant n'est pas autorisé à répondre pour le moment.\",\n errorRateLimited: \"Trop de requêtes en ce moment. Réessayez dans un instant.\",\n errorTooLong: \"Cette conversation est trop longue pour le modèle. Commencez-en une nouvelle.\",\n errorFailed: \"L'assistant n'a pas pu répondre. Réessayez dans un instant.\",\n errorNoAnswer: \"L'assistant n'a pas pu répondre à cette demande.\",\n running: \"Exécution...\",\n run: \"Exécuter\",\n file: \"Fichier\",\n modelSelectorPlaceholder: \"Sélectionner un modèle...\",\n approvalModeLabel: \"Mode d'approbation\",\n roleNameUser: \"Vous\",\n roleNameAssistant: \"Assistant\",\n yourMessage: \"Votre message\",\n assistantResponse: \"Réponse de l'assistant\",\n messageActions: \"Actions du message\",\n edit: \"Modifier le message\",\n editConfirm: \"Envoyer\",\n editCancel: \"Annuler\",\n feedbackPositive: \"Bonne réponse\",\n feedbackNegative: \"Mauvaise réponse\",\n previousResponse: \"Réponse précédente\",\n nextResponse: \"Réponse suivante\",\n approveTool: \"Approuver\",\n rejectTool: \"Rejeter\",\n messageInfo: \"Détails\",\n newChat: \"Nouvelle conversation\",\n loadingConversations: \"Chargement des conversations\",\n conversationSearchEmpty: \"Aucune conversation ne correspond\",\n conversationList: \"Conversations\",\n loadingConversation: \"Chargement de la conversation\",\n deleteConversation: \"Supprimer\",\n archiveConversation: \"Archiver\",\n unarchiveConversation: \"Désarchiver\",\n conversationActions: \"Actions de la conversation\",\n conversationRunning: \"Réponse en cours\",\n conversationWaiting: \"Attend votre réponse\",\n renameConversation: \"Renommer\",\n conversationTitle: \"Titre de la conversation\",\n pinConversation: \"Épingler\",\n unpinConversation: \"Désépingler\",\n deleteConversationConfirm: \"Supprimer « {title} » ?\",\n cancel: \"Annuler\",\n conversationGroupPinned: \"Épinglées\",\n conversationGroupToday: \"Aujourd'hui\",\n conversationGroupYesterday: \"Hier\",\n conversationGroupWeek: \"7 derniers jours\",\n conversationGroupMonth: \"30 derniers jours\",\n scrollRailLabel: \"Plan de la conversation\",\n sidebarLabel: \"Conversations\",\n splitHandleLabel: \"Redimensionner les panneaux\",\n launcherOpen: \"Ouvrir la discussion\",\n launcherClose: \"Fermer la discussion\",\n transcript: \"Transcription\",\n tag: \"fr-FR\",\n direction: 'ltr'\n};\n\nexport default fr;\n"],"names":[],"mappings":"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"}
|