wizards 0.5.7 → 0.5.9
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/apps/runtime/dist/agents/architect.js +13 -26
- package/apps/runtime/dist/agents/studio-assistant.js +19 -22
- package/apps/runtime/dist/agents/subscription.js +10 -9
- package/apps/runtime/dist/app.js +6 -6
- package/apps/runtime/dist/assistant/knows.js +10 -9
- package/apps/runtime/dist/connectors/external.js +3 -3
- package/apps/runtime/dist/connectors/index.js +23 -23
- package/apps/runtime/dist/connectors/via-account.js +6 -6
- package/apps/runtime/dist/documents/parse.js +3 -3
- package/apps/runtime/dist/engine/input.js +11 -11
- package/apps/runtime/dist/engine/requirements.js +7 -8
- package/apps/runtime/dist/engine/runner.js +10 -14
- package/apps/runtime/dist/engine/steps.js +6 -6
- package/apps/runtime/dist/engine/surface.js +2 -2
- package/apps/runtime/dist/film/step.js +5 -5
- package/apps/runtime/dist/harness/apple.js +2 -1
- package/apps/runtime/dist/harness/claude.js +2 -2
- package/apps/runtime/dist/harness/codex.js +2 -2
- package/apps/runtime/dist/harness/model.js +4 -5
- package/apps/runtime/dist/harness/terminal.js +4 -4
- package/apps/runtime/dist/media/conversation.js +18 -35
- package/apps/runtime/dist/media/transcribe.js +2 -1
- package/apps/runtime/dist/model-errors.js +1 -1
- package/apps/runtime/dist/models.js +32 -40
- package/apps/runtime/dist/plugins/runs.js +3 -5
- package/apps/runtime/dist/routes/api.js +9 -9
- package/apps/runtime/dist/routes/lang.js +14 -9
- package/apps/runtime/dist/routes/runs.js +5 -5
- package/apps/runtime/dist/routes/studio.js +38 -37
- package/apps/runtime/dist/services/access.js +4 -4
- package/apps/runtime/dist/services/architect.js +3 -12
- package/apps/runtime/dist/services/assistant-chats.js +2 -2
- package/apps/runtime/dist/services/brand.js +3 -3
- package/apps/runtime/dist/services/cloud.js +5 -5
- package/apps/runtime/dist/services/errors.js +2 -2
- package/apps/runtime/dist/services/knowledge-model.js +3 -3
- package/apps/runtime/dist/services/marketplace.js +3 -3
- package/apps/runtime/dist/services/package-file.js +9 -11
- package/apps/runtime/dist/services/package.js +8 -9
- package/apps/runtime/dist/services/profile.js +2 -1
- package/apps/runtime/dist/services/project-files.js +13 -13
- package/apps/runtime/dist/services/projects.js +7 -11
- package/apps/runtime/dist/services/runners.js +4 -4
- package/apps/runtime/dist/services/runs.js +7 -10
- package/apps/runtime/dist/services/shares.js +2 -2
- package/apps/runtime/dist/services/site.js +8 -11
- package/apps/runtime/dist/services/space-categories.js +7 -7
- package/apps/runtime/dist/services/space-data.js +20 -20
- package/apps/runtime/dist/services/spaces.js +7 -9
- package/apps/runtime/dist/services/wizards.js +11 -13
- package/apps/runtime/dist/store/index.js +2 -2
- package/apps/runtime/dist/texts.js +195 -0
- package/apps/runtime/dist/tools/plugin.js +7 -3
- package/apps/runtime/dist/widgets/step.js +2 -2
- package/apps/web/dist/assets/AboutDialog-CpI-cGpz.js +1 -0
- package/apps/web/dist/assets/{ChangelogDialog-rAtYZjxz.js → ChangelogDialog-BW56Y5UR.js} +1 -1
- package/apps/web/dist/assets/ChatView-CH8U-tRy.js +10 -0
- package/apps/web/dist/assets/EditorPage-Be5J_y4F.js +3 -0
- package/apps/web/dist/assets/{FlowPreview--3-yI51e.js → FlowPreview-CzmH4JUQ.js} +1 -1
- package/apps/web/dist/assets/{Harness-B9tvFe0U.js → Harness-CJKWO3AK.js} +2 -2
- package/apps/web/dist/assets/{NewWizardChannels-BxrBhC9U.js → NewWizardChannels-Ca2niMTY.js} +1 -1
- package/apps/web/dist/assets/NewWizardPage-D5gi4TYE.js +7 -0
- package/apps/web/dist/assets/{OnboardingPage-DPdH9sSj.js → OnboardingPage-Bm-c-D21.js} +1 -1
- package/apps/web/dist/assets/ProjectPage-C8nJCBZP.js +1 -0
- package/apps/web/dist/assets/{PublicRunner-Bv3TMKw4.js → PublicRunner-anxg3Rxz.js} +1 -1
- package/apps/web/dist/assets/{ReadOnly-CmqIrOAR.js → ReadOnly-i-6WBMSE.js} +1 -1
- package/apps/web/dist/assets/RunDrawer-4yvfW_2c.js +4 -0
- package/apps/web/dist/assets/{RunnerView-Cd1VAlIA.js → RunnerView-BkWQBa_M.js} +1 -1
- package/apps/web/dist/assets/SettingsPage-NL8r9S6R.js +1 -0
- package/apps/web/dist/assets/SetupPage-Crcfx4-p.js +1 -0
- package/apps/web/dist/assets/{SharePage-BT80wI1I.js → SharePage-CDEAtmBC.js} +1 -1
- package/apps/web/dist/assets/changelog-BGBuldNF.js +1 -0
- package/apps/web/dist/assets/{esm-BTVd6EFo.js → esm-BF1nonbH.js} +1 -1
- package/apps/web/dist/assets/index-C74LSJ-W.js +14 -0
- package/apps/web/dist/assets/{lock-ByHFI96G.js → lock-DVvM6IsA.js} +1 -1
- package/apps/web/dist/assets/{phone-KPwxAM1R.js → phone-3fG1okFs.js} +1 -1
- package/apps/web/dist/assets/{settings-menu-K5bg3QE3.js → settings-menu-D9fbi1Z0.js} +1 -1
- package/apps/web/dist/assets/ui-EuR3jezP.js +134 -0
- package/apps/web/dist/assets/{upload-BsIL8tNR.js → upload-BsMUhEfX.js} +1 -1
- package/apps/web/dist/index.html +2 -2
- package/apps/web/dist/mcp/flow.html +77 -77
- package/bin/wizards.mjs +15 -2
- package/node_modules/@engenty-wizards/shared/dist/definition.d.ts +26 -9
- package/node_modules/@engenty-wizards/shared/dist/definition.js +125 -3
- package/node_modules/@engenty-wizards/shared/dist/marketplace-entry.d.ts +1 -1
- package/node_modules/@engenty-wizards/shared/dist/marketplace-entry.js +9 -8
- package/node_modules/@engenty-wizards/shared/dist/marketplace-search.js +6 -6
- package/node_modules/@engenty-wizards/shared/dist/marketplace.d.ts +78 -205
- package/node_modules/@engenty-wizards/shared/dist/marketplace.js +167 -68
- package/node_modules/@engenty-wizards/shared/dist/projects.d.ts +3 -6
- package/node_modules/@engenty-wizards/shared/dist/projects.js +9 -9
- package/node_modules/@engenty-wizards/shared/dist/providers.d.ts +33 -7
- package/node_modules/@engenty-wizards/shared/dist/providers.js +88 -37
- package/node_modules/@engenty-wizards/shared/dist/run.d.ts +298 -365
- package/node_modules/@engenty-wizards/shared/dist/run.js +582 -240
- package/node_modules/@engenty-wizards/shared/dist/texts.d.ts +36 -0
- package/node_modules/@engenty-wizards/shared/dist/texts.js +46 -0
- package/package.json +5 -1
- package/apps/web/dist/assets/AboutDialog-t9bayaIs.js +0 -1
- package/apps/web/dist/assets/ChatView-C3VqLT98.js +0 -10
- package/apps/web/dist/assets/EditorPage-D3Ef24b9.js +0 -3
- package/apps/web/dist/assets/NewWizardPage-C1_hsQPr.js +0 -7
- package/apps/web/dist/assets/ProjectPage-P40R1cPE.js +0 -1
- package/apps/web/dist/assets/RunDrawer-9qG1G-OY.js +0 -4
- package/apps/web/dist/assets/SettingsPage-DFz4UMfo.js +0 -1
- package/apps/web/dist/assets/SetupPage-B0UBNMB9.js +0 -1
- package/apps/web/dist/assets/changelog-BpSBMjpm.js +0 -1
- package/apps/web/dist/assets/index-D8vwgldH.js +0 -14
- package/apps/web/dist/assets/ui-4bQx9I1f.js +0 -134
|
@@ -1,258 +1,600 @@
|
|
|
1
|
+
import { textOf } from "./texts.js";
|
|
1
2
|
/**
|
|
2
3
|
* What a step reports while it works, in words for each language: the runtime writes the English
|
|
3
4
|
* line into the run's log, a runner shows it in the language the person reads. The runtime's
|
|
4
5
|
* answers to the person running a shared wizard (a refusal, a failure) are notes too: it answers
|
|
5
6
|
* them in the wizard's language.
|
|
6
7
|
*/
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
editing: { de: "Bearbeitet {n} von {total}", en: "Editing {n} of {total}" },
|
|
15
|
-
filming: { de: "Dreht {n} von {total}", en: "Filming {n} of {total}" },
|
|
8
|
+
const NOTES_EN = {
|
|
9
|
+
entry: "Entry {n} of {total}",
|
|
10
|
+
deciding: "Deciding what to do next…",
|
|
11
|
+
choosingFields: "Choosing the right questions…",
|
|
12
|
+
batchDone: "{done} of {total} done",
|
|
13
|
+
editing: "Editing {n} of {total}",
|
|
14
|
+
filming: "Filming {n} of {total}",
|
|
16
15
|
clipsRendering: {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
},
|
|
20
|
-
videoRendering:
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
},
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
},
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
},
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
waitsForPage: { de: "Wartet auf die Seite", en: "Waiting for the page" },
|
|
57
|
-
fastLoop: { de: "Erledigt im Browser: {goal}", en: "Doing in the browser: {goal}" },
|
|
58
|
-
personDrives: {
|
|
59
|
-
de: "Du steuerst den Browser – der Wizard wartet",
|
|
60
|
-
en: "You’re driving the browser – the wizard waits",
|
|
61
|
-
},
|
|
62
|
-
agentDrives: {
|
|
63
|
-
de: "Der Wizard macht im Browser weiter",
|
|
64
|
-
en: "The wizard carries on in the browser",
|
|
65
|
-
},
|
|
66
|
-
looksAtPage: { de: "Sieht sich die Seite an", en: "Looking at the page" },
|
|
67
|
-
waitsForSignIn: {
|
|
68
|
-
de: "Wartet auf deine Anmeldung bei {name}",
|
|
69
|
-
en: "Waiting for you to sign in to {name}",
|
|
70
|
-
},
|
|
71
|
-
downloads: { de: "Lädt {name} herunter", en: "Downloading {name}" },
|
|
72
|
-
runs: { de: "Führt aus: {command}", en: "Running: {command}" },
|
|
73
|
-
python: { de: "Führt Python aus", en: "Running Python" },
|
|
74
|
-
drawing: { de: "Zeichnet ein Bild", en: "Drawing an image" },
|
|
75
|
-
writesPage: { de: "Schreibt die Seite „{title}“", en: "Writing the page “{title}”" },
|
|
76
|
-
searchesDocuments: {
|
|
77
|
-
de: "Sucht in den Dokumenten: {query}",
|
|
78
|
-
en: "Searching the documents: {query}",
|
|
79
|
-
},
|
|
80
|
-
searchesKnowledge: {
|
|
81
|
-
de: "Sucht in Wissen: {query} – {relevant} von {candidates} passen",
|
|
82
|
-
en: "Searching knowledge: {query} – {relevant} of {candidates} fit",
|
|
83
|
-
},
|
|
84
|
-
listsKnowledge: { de: "Listet Wissen", en: "Listing knowledge" },
|
|
85
|
-
searchesMail: { de: "Durchsucht {label}", en: "Searching {label}" },
|
|
16
|
+
one: "Rendering {count} clip – this takes a few minutes.",
|
|
17
|
+
other: "Rendering {count} clips – this takes a few minutes.",
|
|
18
|
+
},
|
|
19
|
+
videoRendering: "Rendering the video – this usually takes 1–3 minutes.",
|
|
20
|
+
photo: "Looking at photo {n} of {total}",
|
|
21
|
+
listen: "Listening to “{label}”…",
|
|
22
|
+
listenFailed: "“{label}” couldn’t be transcribed.",
|
|
23
|
+
filmCutting: "Cutting the film – this takes about a minute.",
|
|
24
|
+
filmProgress: "{pct} % cut",
|
|
25
|
+
filmError: "The film reports: {detail}",
|
|
26
|
+
widgetError: "The widget reports an error: {detail}",
|
|
27
|
+
mcpConnected: "Connected to {names}",
|
|
28
|
+
mcpUnreachable: "MCP server unreachable: {detail}",
|
|
29
|
+
reads: "Reading {name}",
|
|
30
|
+
readsMany: { one: "Reading {count} document", other: "Reading {count} documents" },
|
|
31
|
+
opens: "Opening {name}",
|
|
32
|
+
clicks: "Clicking in the browser",
|
|
33
|
+
clicksOn: "Clicking “{name}”",
|
|
34
|
+
types: "Typing in the browser",
|
|
35
|
+
typesText: "Typing “{text}”",
|
|
36
|
+
selects: "Choosing “{option}”",
|
|
37
|
+
scrolls: "Scrolling",
|
|
38
|
+
presses: "Pressing {key}",
|
|
39
|
+
goesBack: "Going back a page",
|
|
40
|
+
waitsForPage: "Waiting for the page",
|
|
41
|
+
fastLoop: "Doing in the browser: {goal}",
|
|
42
|
+
personDrives: "You’re driving the browser – the wizard waits",
|
|
43
|
+
agentDrives: "The wizard carries on in the browser",
|
|
44
|
+
looksAtPage: "Looking at the page",
|
|
45
|
+
waitsForSignIn: "Waiting for you to sign in to {name}",
|
|
46
|
+
downloads: "Downloading {name}",
|
|
47
|
+
runs: "Running: {command}",
|
|
48
|
+
python: "Running Python",
|
|
49
|
+
drawing: "Drawing an image",
|
|
50
|
+
writesPage: "Writing the page “{title}”",
|
|
51
|
+
searchesDocuments: "Searching the documents: {query}",
|
|
52
|
+
searchesKnowledge: "Searching knowledge: {query} – {relevant} of {candidates} fit",
|
|
53
|
+
listsKnowledge: "Listing knowledge",
|
|
54
|
+
searchesMail: "Searching {label}",
|
|
86
55
|
savesReceipts: {
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
},
|
|
90
|
-
remembers:
|
|
91
|
-
files: {
|
|
92
|
-
filmSetup:
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
},
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
},
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
},
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
},
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
},
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
},
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
},
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
},
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
},
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
56
|
+
one: "Saving {count} receipt from {label}",
|
|
57
|
+
other: "Saving {count} receipts from {label}",
|
|
58
|
+
},
|
|
59
|
+
remembers: "Remembering {title}",
|
|
60
|
+
files: { one: "Filing {count} file", other: "Filing {count} files" },
|
|
61
|
+
filmSetup: "Setting up the folder for the film",
|
|
62
|
+
filmClient: "{client} is working on the film – this usually takes 10–40 minutes.",
|
|
63
|
+
filmTask: "On the film: {task}",
|
|
64
|
+
filmLooks: "Looking at frames of the film",
|
|
65
|
+
filmFix: "The film didn’t render – Claude Code is fixing it",
|
|
66
|
+
filmResume: "Picking the film up where it stopped",
|
|
67
|
+
wizardUnavailable: "This wizard isn’t available right now.",
|
|
68
|
+
wizardLimit: "This wizard has reached its limit for today. Try again tomorrow.",
|
|
69
|
+
confirmHuman: "Confirm that you’re a person.",
|
|
70
|
+
tooManyRuns: "You’ve started a lot of runs just now. Try again in an hour.",
|
|
71
|
+
runOver: "The run is over.",
|
|
72
|
+
runBusy: "The wizard is working right now.",
|
|
73
|
+
pageOutdated: "This page is out of date.",
|
|
74
|
+
noStepBefore: "There is no step before this one.",
|
|
75
|
+
checkFields: "Check the marked fields.",
|
|
76
|
+
talkOff: "Live conversations aren’t turned on for this wizard.",
|
|
77
|
+
talkKeyRefused: "The conversation couldn’t start: the OpenAI API key was refused.",
|
|
78
|
+
talkFailed: "The conversation couldn’t start ({status}).",
|
|
79
|
+
talkNoSecret: "The conversation couldn’t start: no access key came back.",
|
|
80
|
+
tryLater: "Try again later.",
|
|
81
|
+
recordingTooLarge: "The recording can be 10 MB at most.",
|
|
82
|
+
fileTooLarge: "Choose a file of {mb} MB or less.",
|
|
83
|
+
askClosed: "This question is no longer open.",
|
|
84
|
+
noBrowser: "The wizard has no browser open right now.",
|
|
85
|
+
notWaiting: "The wizard isn’t waiting for you right now.",
|
|
86
|
+
pageActFailed: "That didn’t work on the page.",
|
|
87
|
+
linkGone: "This link has expired or was withdrawn.",
|
|
88
|
+
connected: "Connected. You can close this window.",
|
|
89
|
+
connectFailed: "Connecting didn’t work. Try again.",
|
|
90
|
+
connectCancelled: "Connecting was cancelled.",
|
|
91
|
+
appleOff: "Apple Intelligence is turned off on this Mac. Turn it on in System Settings → Apple Intelligence & Siri.",
|
|
92
|
+
appleLoading: "Apple is still loading the model for Apple Intelligence onto this Mac. Try again in a moment.",
|
|
93
|
+
appleMissing: "The helper for Apple Intelligence (wizards-apple) is missing from this install.",
|
|
94
|
+
appleOs: "Apple Intelligence needs macOS 26 or later.",
|
|
95
|
+
appleDevice: "Apple Intelligence only works on a Mac with Apple silicon.",
|
|
96
|
+
appleBusy: "Apple Intelligence isn’t taking more requests right now. Try again in a moment.",
|
|
97
|
+
appleTooLong: "The text is too long for Apple Intelligence on this Mac (4,096 tokens for question and answer). Choose another model for this class under Settings → Models.",
|
|
98
|
+
appleRefused: "Apple Intelligence turned the request down: Apple’s content rules don’t allow it.",
|
|
99
|
+
appleLanguage: "Apple Intelligence doesn’t understand the language of this request.",
|
|
100
|
+
appleFormat: "Apple Intelligence can’t answer in this format: {detail}",
|
|
101
|
+
appleFailed: "Apple Intelligence: {detail}",
|
|
102
|
+
appleNoFfmpeg: "Apple Intelligence can’t read {type}, and without ffmpeg the recording can’t be converted. Install ffmpeg or record as MP4 in the browser.",
|
|
103
|
+
appleNotConverted: "Apple Intelligence couldn’t convert the recording: {detail}",
|
|
104
|
+
connectorAlreadyExistsSpace: "The connector “{id}” already exists in this space.",
|
|
105
|
+
connectorNotExist: "This connector doesn’t exist.",
|
|
106
|
+
fieldMissing: "“{label}” is missing.",
|
|
107
|
+
mailServerNotExist: "The mail server{host} doesn’t exist. Enter the IMAP server. For Gmail and Google Workspace, it’s imap.gmail.com.",
|
|
108
|
+
mailServerNotResponding: "The mail server{host} isn’t responding. Check the IMAP server and port.",
|
|
109
|
+
connectingNotWork: "Connecting didn’t work{host}: {detail}",
|
|
110
|
+
connectEngentyAccountFirst: "Connect your engenty account first (Settings → Account). Then you can connect Google here.",
|
|
111
|
+
engentyAccountNotReached: "Your engenty account can’t be reached right now. Try again later.",
|
|
112
|
+
googleNoLongerAccepts: "Google no longer accepts this connection. Connect the account again.",
|
|
113
|
+
googleNotConnectedThrough: "Google can’t be connected through your engenty account right now.",
|
|
114
|
+
stepNeedsToolPlugin: "This step needs the tool “{id}”. The plugin “{plugin}” isn’t installed here.",
|
|
115
|
+
clientNotSignedIn: "{name} isn’t signed in on this computer. Sign in under Settings → Models.",
|
|
116
|
+
clientNotInstalled: "{name} isn’t installed on this computer. Install it under Settings → Models.",
|
|
117
|
+
clientNoCredit: "The account {name} is signed in with has no credit or quota left.",
|
|
118
|
+
anthropicAccountClaudeCode: "The Anthropic account Claude Code is signed in with has no credit. Sign Claude Code in with your subscription under Settings → Models.",
|
|
119
|
+
chatgptAccountCodexSigned: "The ChatGPT account Codex is signed in with has used up its quota. Try again later or choose another client.",
|
|
120
|
+
builtTerminalNotAvailable: "The built-in terminal isn’t available on this computer. Run the command in your own terminal.",
|
|
121
|
+
terminalNoLongerExists: "This terminal no longer exists.",
|
|
122
|
+
imageTypeNotReadable: "Images of type {mime} can’t be read (PNG, JPEG and WebP work).",
|
|
123
|
+
fileNotReadable: "“{name}” ({mime}) can’t be read.",
|
|
124
|
+
creditsNotSignedIn: "This is set to run on credits, but you’re not signed in to an account.",
|
|
125
|
+
accountNoLongerSigned: "The account is no longer signed in. Sign in again under Settings → Account.",
|
|
126
|
+
modelNotUsedYet: "The model “{ref}” can’t be used yet. Add an API key under Settings → Models, or sign in to an account.",
|
|
127
|
+
noModelForImages: "No model is set up for images.",
|
|
128
|
+
noModelForVideos: "No model is set up for videos.",
|
|
129
|
+
noModelForSpeech: "No model is set up for speech.",
|
|
130
|
+
noOpenaiApiKey: "No OpenAI API key is set for voice conversations (Settings → Models).",
|
|
131
|
+
modelNotAvailableAccount: "This model isn’t available with your account.",
|
|
132
|
+
accountNoModelSet: "Your account has no model set up for this.",
|
|
133
|
+
claudeCodeMakesFilms: "Claude Code makes films on this computer, using your subscription. Set it up as an AI subscription under Settings → Models.",
|
|
134
|
+
macNeedsFfmpegTranscribe: "This Mac needs ffmpeg to transcribe recordings from Chrome or Firefox (WebM, Ogg). Safari and the app don’t. Install ffmpeg, e.g. with “brew install ffmpeg”.",
|
|
135
|
+
fieldRequired: "Required",
|
|
136
|
+
chooseAtLeast: "Choose at least {min}",
|
|
137
|
+
chooseAtMost: "At most {max} – remove some",
|
|
138
|
+
enterNumber: "Enter a number",
|
|
139
|
+
invalidChoice: "Invalid choice",
|
|
140
|
+
timeNotOffered: "This time isn’t offered",
|
|
141
|
+
notValidEmailAddress: "Not a valid email address",
|
|
142
|
+
notValidUrl: "Not a valid URL",
|
|
143
|
+
wizardRunOutCredits: "This wizard has run out of credits for now. Try again later.",
|
|
144
|
+
providerCreditLow: "Your credit with the model provider isn’t enough for this (videos need a minimum balance there). Top up there and try again.",
|
|
145
|
+
aiServiceBusyRight: "The AI service is busy right now. Try again in a moment.",
|
|
146
|
+
stepTookTooLong: "The step took too long. Try again.",
|
|
147
|
+
aiServiceNotReached: "The AI service can’t be reached right now. Try again later.",
|
|
148
|
+
notAvailableNow: "That isn’t available here right now.",
|
|
149
|
+
fileNotFound: "File not found",
|
|
150
|
+
connectFirst: "Connect first",
|
|
151
|
+
noEntriesStepWork: "There are no entries for this step to work on.",
|
|
152
|
+
stepNotReturnResult: "The step didn’t return a result.",
|
|
153
|
+
documentNotCreated: "The document couldn’t be created.",
|
|
154
|
+
stepMissingSourcesImages: "This step is missing its sources (images or scenes).",
|
|
155
|
+
noTextReadAloud: "There is no text to read aloud.",
|
|
156
|
+
wizardStillErrors: "The wizard still has errors.",
|
|
157
|
+
noLanguageModelSet: "No language model is set up here.",
|
|
158
|
+
creditsUsedUp: "Your credits are used up.",
|
|
159
|
+
chooseFile: "Choose a file.",
|
|
160
|
+
pageNotReached: "The page can’t be reached.",
|
|
161
|
+
unknownEntry: "Unknown entry.",
|
|
162
|
+
chooseWizardFileMb: "Choose a wizard file ({PACKAGE_EXTENSION}) of 30 MB or less.",
|
|
163
|
+
recordingMbMost: "The recording can be 10 MB at most.",
|
|
164
|
+
onlyFinishedResultsShared: "Only finished results can be shared.",
|
|
165
|
+
gradientFailed: "Couldn’t make a gradient from that. Try describing it differently.",
|
|
166
|
+
onlyOneSpaceAllowed: "Only one space is allowed here.",
|
|
167
|
+
mostSpaces: {
|
|
168
|
+
one: "You can have at most {count} space here.",
|
|
169
|
+
other: "You can have at most {count} spaces here.",
|
|
170
|
+
},
|
|
171
|
+
twoEntriesSameKey: "Two entries have the same key.",
|
|
172
|
+
notDeleteLastSpace: "You can’t delete the last space.",
|
|
173
|
+
notFound: "This doesn’t exist or was deleted.",
|
|
174
|
+
categoryNeedsName: "A category needs a name.",
|
|
175
|
+
unknownCategoryType: "Unknown type “{type}”.",
|
|
176
|
+
spaceMostCategories: {
|
|
177
|
+
one: "A space can have at most {count} category.",
|
|
178
|
+
other: "A space can have at most {count} categories.",
|
|
179
|
+
},
|
|
180
|
+
categoryAlreadyExists: "The category “{name}” already exists.",
|
|
181
|
+
onlyChoiceCategoriesValues: "Only choice categories have values.",
|
|
182
|
+
onlyValuesOneCategory: "Only values of one category can be merged.",
|
|
183
|
+
templateNeedsNewerVersion: "This template needs a newer version of engenty wizards. Update engenty wizards first.",
|
|
184
|
+
chatNotExist: "This chat doesn’t exist.",
|
|
185
|
+
unknownRunner: "There’s no runner “{unknown}” here.",
|
|
186
|
+
leastOneRunnerStay: "At least one runner has to stay on.",
|
|
187
|
+
linkOpenRunnerTurned: "The link has to open a runner that’s turned on.",
|
|
188
|
+
jobNotExistAlready: "This job doesn’t exist or has already finished.",
|
|
189
|
+
accountAlreadySpace: "This account already has a space here.",
|
|
190
|
+
accountAlreadySpaces: {
|
|
191
|
+
one: "This account already has {count} space here.",
|
|
192
|
+
other: "This account already has {count} spaces here.",
|
|
193
|
+
},
|
|
194
|
+
roomMostPublishedWizards: {
|
|
195
|
+
one: "There’s room for at most {count} published wizard here.",
|
|
196
|
+
other: "There’s room for at most {count} published wizards here.",
|
|
197
|
+
},
|
|
198
|
+
spaceIdAlreadyExists: "A space with this ID already exists here and didn’t come from your computer.",
|
|
199
|
+
wizardIdAlreadyBelongs: "A wizard with this ID already belongs to another space here.",
|
|
200
|
+
idAlreadyUse: "This ID is already in use here.",
|
|
201
|
+
wizardNotSpace: "This wizard isn’t in the space.",
|
|
202
|
+
invalidColumns: "Invalid columns.",
|
|
203
|
+
spaceMostTables: {
|
|
204
|
+
one: "A space can have at most {count} table.",
|
|
205
|
+
other: "A space can have at most {count} tables.",
|
|
206
|
+
},
|
|
207
|
+
tableBelongsOneWizard: "This table belongs to one of the wizard’s lists. Its columns come from the wizard.",
|
|
208
|
+
entryAlreadyExists: "This entry already exists.",
|
|
209
|
+
tableMostRows: {
|
|
210
|
+
one: "A table can have at most {count} row.",
|
|
211
|
+
other: "A table can have at most {count} rows.",
|
|
212
|
+
},
|
|
213
|
+
spaceMostPages: {
|
|
214
|
+
one: "A space can have at most {count} page.",
|
|
215
|
+
other: "A space can have at most {count} pages.",
|
|
216
|
+
},
|
|
217
|
+
pageNotSubpages: "This page can’t have subpages.",
|
|
218
|
+
pageNotOwnSubpage: "A page can’t be its own subpage.",
|
|
219
|
+
pageNeedsTitle: "A page needs a title.",
|
|
220
|
+
unknownSpace: "There’s no space “{space}”.",
|
|
221
|
+
noParentPage: "There’s no page with the key “{parent}” to put this page under.",
|
|
222
|
+
onlyTeamAdmins: "Only team admins can do that. As a member, you can edit the wizards that already exist.",
|
|
223
|
+
spaceEditedLocally: "You edit this space in engenty wizards on your computer, not here.",
|
|
224
|
+
wizardsRunOncePublished: "Wizards run here once you publish them in engenty wizards on your computer. You build and edit them there.",
|
|
225
|
+
logoImagePngSvg: "A logo is an image (PNG, SVG, JPEG, WebP).",
|
|
226
|
+
patternImageSvgPng: "A pattern is an image (SVG, PNG, JPEG, WebP).",
|
|
227
|
+
filesGoHere: "Images, videos, audio, PDFs, fonts, Lottie and 3D models go here. Texts to look things up in go under knowledge.",
|
|
228
|
+
addressNotReached: "The address can’t be reached.",
|
|
229
|
+
addressResponded: "The address responded with {status}.",
|
|
230
|
+
addressLeadsWebPage: "The address leads to a web page, not an image.",
|
|
231
|
+
addressFileTooLarge: "The file is too large.",
|
|
232
|
+
onlyDocumentsIndex: "Only documents are in the index.",
|
|
233
|
+
emptyTooLargeDocument: "“{name}” is empty or too large for a document.",
|
|
234
|
+
spaceMostDocuments: {
|
|
235
|
+
one: "A space can have at most {count} document.",
|
|
236
|
+
other: "A space can have at most {count} documents.",
|
|
237
|
+
},
|
|
238
|
+
accountSignedOut: "The account is signed out. Sign in again.",
|
|
239
|
+
cloudNotReachedRight: "The cloud can’t be reached right now.",
|
|
240
|
+
publishWizardFirst: "Publish the wizard first.",
|
|
241
|
+
wizardJsonUnreadable: "This isn’t a wizard file: its wizard.json can’t be read.",
|
|
242
|
+
wizardFileComesNewer: "This wizard file comes from a newer version, or it’s damaged. Update engenty wizards or export the wizard again.",
|
|
243
|
+
fileOver5Mb: "{name} is larger than 5 MB.",
|
|
244
|
+
wizardFileTooLarge: "The wizard file is too large: a workspace holds at most 200 files and 25 MB.",
|
|
245
|
+
wizardFileNotOpened: "The wizard file can’t be opened. Export the wizard again and try once more.",
|
|
246
|
+
wizardJsonMissing: "This isn’t a wizard file: wizard.json is missing.",
|
|
247
|
+
notValidFilePath: "“{name}” isn’t a valid file path.",
|
|
248
|
+
workspaceWizardFileLarger: "The workspace in the wizard file is larger than 25 MB.",
|
|
249
|
+
unknownTemplate: "There’s no template “{starterId}”.",
|
|
250
|
+
wizardChangedMeantime: "The wizard was changed in the meantime.",
|
|
251
|
+
valueNotExist: "This value doesn’t exist.",
|
|
252
|
+
nothingFiledUnderValue: "Nothing is filed under this value yet.",
|
|
253
|
+
filmNotRenderedNeeds: "The film couldn’t be rendered. It needs ffmpeg and a timeline in the widget.",
|
|
254
|
+
signInRefused: "The sign-in was refused{host}. Are the address and (app) password right? Gmail and Google Workspace need an app password and IMAP turned on.{answer}",
|
|
255
|
+
serverSaid: " The server said: {answer}",
|
|
256
|
+
viaAccountFailed: "Connecting through your engenty account didn’t work ({code}).",
|
|
257
|
+
pluginInvalidInput: "“{id}” got invalid input: {path} – {problem}",
|
|
258
|
+
filmClientStopped: "{name} stopped working on the film: {detail}. The work is saved. A new try carries on from there.",
|
|
259
|
+
filmWorkSaved: "{problem} The work is saved. A new try carries on from there.",
|
|
260
|
+
filmRenderFailed: "The film couldn’t be rendered: {detail}",
|
|
261
|
+
commandNotStarted: "The command couldn’t start: {detail}",
|
|
262
|
+
providerKeyMissing: "{provider} is chosen for {makes}, but no API key is set.",
|
|
263
|
+
noModelFor: "No model is set up for {makes}.",
|
|
264
|
+
noApiKeyFor: "No API key is set for {provider}.",
|
|
265
|
+
freeTier: "Your AI Gateway key is on Vercel’s free tier, which doesn’t include {model}. Top up at Vercel ({url}) or choose another model under Settings → Models.",
|
|
266
|
+
thisModel: "this model",
|
|
267
|
+
quoted: "“{text}”",
|
|
268
|
+
viewErrors: "The view has errors: {detail}",
|
|
269
|
+
blockedSteps: "{steps}: {problem}",
|
|
270
|
+
joined: "{first} {second}",
|
|
271
|
+
stepFailed: "This step failed: {detail}",
|
|
272
|
+
answersMissing: "Answers are missing or don’t fit: {answers}",
|
|
273
|
+
fieldError: "{field} – {message}",
|
|
274
|
+
templateNeedsPlugins: {
|
|
275
|
+
one: "This template needs the plugin {plugins}: included with Pro on engenty.ai.",
|
|
276
|
+
other: "This template needs the plugins {plugins}: included with Pro on engenty.ai.",
|
|
277
|
+
},
|
|
278
|
+
pageMostChars: {
|
|
279
|
+
one: "A page can have at most {count} character.",
|
|
280
|
+
other: "A page can have at most {count} characters.",
|
|
281
|
+
},
|
|
282
|
+
chooseFileUpTo: "Choose a file of {mb} MB or less.",
|
|
283
|
+
roomMostFiles: {
|
|
284
|
+
one: "There’s room for at most {count} file here.",
|
|
285
|
+
other: "There’s room for at most {count} files here.",
|
|
286
|
+
},
|
|
287
|
+
makesText: "text",
|
|
288
|
+
makesImages: "images",
|
|
289
|
+
makesVideos: "videos",
|
|
290
|
+
makesSpeech: "speech",
|
|
291
|
+
makesVoiceNotes: "voice notes",
|
|
242
292
|
};
|
|
293
|
+
const NOTES_DE = {
|
|
294
|
+
entry: "Eintrag {n} von {total}",
|
|
295
|
+
deciding: "Entscheidet, wie es weitergeht …",
|
|
296
|
+
choosingFields: "Wählt die passenden Fragen …",
|
|
297
|
+
batchDone: "{done} von {total} fertig",
|
|
298
|
+
editing: "Bearbeitet {n} von {total}",
|
|
299
|
+
filming: "Dreht {n} von {total}",
|
|
300
|
+
clipsRendering: {
|
|
301
|
+
one: "{count} Clip wird gerendert – das dauert einige Minuten.",
|
|
302
|
+
other: "{count} Clips werden gerendert – das dauert einige Minuten.",
|
|
303
|
+
},
|
|
304
|
+
videoRendering: "Das Video wird gerendert – das dauert meist 1–3 Minuten.",
|
|
305
|
+
photo: "Sieht sich Foto {n} von {total} an",
|
|
306
|
+
listen: "Hört „{label}“ an …",
|
|
307
|
+
listenFailed: "„{label}“ konnte nicht verschriftlicht werden.",
|
|
308
|
+
filmCutting: "Der Film wird geschnitten – das dauert etwa eine Minute.",
|
|
309
|
+
filmProgress: "{pct} % geschnitten",
|
|
310
|
+
filmError: "Der Film meldet: {detail}",
|
|
311
|
+
widgetError: "Das Widget meldet einen Fehler: {detail}",
|
|
312
|
+
mcpConnected: "Verbunden mit {names}",
|
|
313
|
+
mcpUnreachable: "MCP-Server nicht erreichbar: {detail}",
|
|
314
|
+
reads: "Liest {name}",
|
|
315
|
+
readsMany: { one: "Liest {count} Dokument", other: "Liest {count} Dokumente" },
|
|
316
|
+
opens: "Öffnet {name}",
|
|
317
|
+
clicks: "Klickt im Browser",
|
|
318
|
+
clicksOn: "Klickt auf „{name}“",
|
|
319
|
+
types: "Tippt im Browser",
|
|
320
|
+
typesText: "Tippt „{text}“",
|
|
321
|
+
selects: "Wählt „{option}“",
|
|
322
|
+
scrolls: "Scrollt",
|
|
323
|
+
presses: "Drückt {key}",
|
|
324
|
+
goesBack: "Geht eine Seite zurück",
|
|
325
|
+
waitsForPage: "Wartet auf die Seite",
|
|
326
|
+
fastLoop: "Erledigt im Browser: {goal}",
|
|
327
|
+
personDrives: "Du steuerst den Browser – der Wizard wartet",
|
|
328
|
+
agentDrives: "Der Wizard macht im Browser weiter",
|
|
329
|
+
looksAtPage: "Sieht sich die Seite an",
|
|
330
|
+
waitsForSignIn: "Wartet auf deine Anmeldung bei {name}",
|
|
331
|
+
downloads: "Lädt {name} herunter",
|
|
332
|
+
runs: "Führt aus: {command}",
|
|
333
|
+
python: "Führt Python aus",
|
|
334
|
+
drawing: "Zeichnet ein Bild",
|
|
335
|
+
writesPage: "Schreibt die Seite „{title}“",
|
|
336
|
+
searchesDocuments: "Sucht in den Dokumenten: {query}",
|
|
337
|
+
searchesKnowledge: "Sucht in Wissen: {query} – {relevant} von {candidates} passen",
|
|
338
|
+
listsKnowledge: "Listet Wissen",
|
|
339
|
+
searchesMail: "Durchsucht {label}",
|
|
340
|
+
savesReceipts: {
|
|
341
|
+
one: "Speichert {count} Beleg aus {label}",
|
|
342
|
+
other: "Speichert {count} Belege aus {label}",
|
|
343
|
+
},
|
|
344
|
+
remembers: "Merkt sich {title}",
|
|
345
|
+
files: { one: "Legt {count} Datei ab", other: "Legt {count} Dateien ab" },
|
|
346
|
+
filmSetup: "Richtet den Arbeitsordner für den Film ein",
|
|
347
|
+
filmClient: "{client} arbeitet am Film – das dauert meist 10–40 Minuten.",
|
|
348
|
+
filmTask: "Am Film: {task}",
|
|
349
|
+
filmLooks: "Sieht sich Bilder des Films an",
|
|
350
|
+
filmFix: "Der Film ließ sich nicht rendern – Claude Code bessert nach",
|
|
351
|
+
filmResume: "Macht dort weiter, wo der Film stehen geblieben ist",
|
|
352
|
+
wizardUnavailable: "Dieser Wizard ist gerade nicht verfügbar.",
|
|
353
|
+
wizardLimit: "Für heute ist das Limit dieses Wizards erreicht. Versuch es morgen wieder.",
|
|
354
|
+
confirmHuman: "Bestätige kurz, dass du ein Mensch bist.",
|
|
355
|
+
tooManyRuns: "Du hast gerade viele Läufe gestartet. Versuch es in einer Stunde wieder.",
|
|
356
|
+
runOver: "Der Lauf ist beendet.",
|
|
357
|
+
runBusy: "Der Wizard arbeitet gerade.",
|
|
358
|
+
pageOutdated: "Diese Seite ist nicht mehr aktuell.",
|
|
359
|
+
noStepBefore: "Kein vorheriger Schritt.",
|
|
360
|
+
checkFields: "Prüf die markierten Felder.",
|
|
361
|
+
talkOff: "Live-Gespräche sind für diesen Wizard nicht eingeschaltet.",
|
|
362
|
+
talkKeyRefused: "Das Gespräch ließ sich nicht starten: Der OpenAI-API-Key wurde abgelehnt.",
|
|
363
|
+
talkFailed: "Das Gespräch ließ sich nicht starten ({status}).",
|
|
364
|
+
talkNoSecret: "Das Gespräch ließ sich nicht starten: Es kam kein Zugang zurück.",
|
|
365
|
+
tryLater: "Versuch es später noch einmal.",
|
|
366
|
+
recordingTooLarge: "Die Aufnahme darf höchstens 10 MB groß sein.",
|
|
367
|
+
fileTooLarge: "Wähl eine Datei bis {mb} MB.",
|
|
368
|
+
askClosed: "Diese Frage ist nicht mehr offen.",
|
|
369
|
+
noBrowser: "Der Wizard hat gerade keinen Browser offen.",
|
|
370
|
+
notWaiting: "Der Wizard wartet gerade nicht auf dich.",
|
|
371
|
+
pageActFailed: "Das hat auf der Seite nicht geklappt.",
|
|
372
|
+
linkGone: "Dieser Link ist abgelaufen oder wurde zurückgezogen.",
|
|
373
|
+
connected: "Verbunden. Du kannst dieses Fenster schließen.",
|
|
374
|
+
connectFailed: "Verbinden hat nicht geklappt. Versuch es noch einmal.",
|
|
375
|
+
connectCancelled: "Verbinden wurde abgebrochen.",
|
|
376
|
+
appleOff: "Apple Intelligence ist auf diesem Mac ausgeschaltet. Schalte es unter Systemeinstellungen → Apple Intelligence & Siri ein.",
|
|
377
|
+
appleLoading: "Apple lädt das Modell für Apple Intelligence noch auf diesen Mac. Versuch es gleich noch einmal.",
|
|
378
|
+
appleMissing: "Der Helfer für Apple Intelligence (wizards-apple) fehlt in dieser Installation.",
|
|
379
|
+
appleOs: "Apple Intelligence braucht macOS 26 oder neuer.",
|
|
380
|
+
appleDevice: "Apple Intelligence gibt es nur auf einem Mac mit Apple Silicon.",
|
|
381
|
+
appleBusy: "Apple Intelligence nimmt gerade keine weiteren Anfragen an. Versuch es gleich noch einmal.",
|
|
382
|
+
appleTooLong: "Der Text ist zu lang für Apple Intelligence auf diesem Mac (4.096 Tokens für Frage und Antwort). Wähle unter Einstellungen → Modelle ein anderes Modell für diese Klasse.",
|
|
383
|
+
appleRefused: "Apple Intelligence hat die Anfrage abgelehnt: Apples Inhaltsregeln lassen sie nicht zu.",
|
|
384
|
+
appleLanguage: "Apple Intelligence versteht die Sprache dieser Anfrage nicht.",
|
|
385
|
+
appleFormat: "Apple Intelligence kann dieses Antwortformat nicht liefern: {detail}",
|
|
386
|
+
appleFailed: "Apple Intelligence: {detail}",
|
|
387
|
+
appleNoFfmpeg: "Apple Intelligence liest {type} nicht, und ohne ffmpeg lässt sich die Aufnahme nicht umwandeln. Installiere ffmpeg oder nimm im Browser als MP4 auf.",
|
|
388
|
+
appleNotConverted: "Apple Intelligence konnte die Aufnahme nicht umwandeln: {detail}",
|
|
389
|
+
connectorAlreadyExistsSpace: "Den Connector „{id}“ gibt es in diesem Space schon.",
|
|
390
|
+
connectorNotExist: "Diesen Connector gibt es nicht.",
|
|
391
|
+
fieldMissing: "„{label}“ fehlt.",
|
|
392
|
+
mailServerNotExist: "Den Mail-Server{host} gibt es nicht. Trag den IMAP-Server ein, bei Gmail und Google Workspace imap.gmail.com.",
|
|
393
|
+
mailServerNotResponding: "Der Mail-Server{host} antwortet nicht. Prüf IMAP-Server und Port.",
|
|
394
|
+
connectingNotWork: "Verbinden hat nicht geklappt{host}: {detail}",
|
|
395
|
+
connectEngentyAccountFirst: "Verbinde zuerst dein engenty-Konto (Einstellungen → Konto). Dann kannst du Google hier verbinden.",
|
|
396
|
+
engentyAccountNotReached: "Dein engenty-Konto ist gerade nicht erreichbar. Versuch es später noch einmal.",
|
|
397
|
+
googleNoLongerAccepts: "Google nimmt diese Verbindung nicht mehr an. Verbinde das Konto neu.",
|
|
398
|
+
googleNotConnectedThrough: "Google lässt sich über dein engenty-Konto gerade nicht verbinden.",
|
|
399
|
+
stepNeedsToolPlugin: "Dieser Schritt braucht das Werkzeug „{id}“. Das Plugin „{plugin}“ ist hier nicht installiert.",
|
|
400
|
+
clientNotSignedIn: "{name} ist auf diesem Computer nicht angemeldet. Melde dich unter Einstellungen → Modelle an.",
|
|
401
|
+
clientNotInstalled: "{name} ist auf diesem Computer nicht installiert. Installiere es unter Einstellungen → Modelle.",
|
|
402
|
+
clientNoCredit: "Das Konto, mit dem {name} angemeldet ist, hat kein Guthaben oder Kontingent mehr.",
|
|
403
|
+
anthropicAccountClaudeCode: "Das Anthropic-Konto, mit dem Claude Code angemeldet ist, hat kein Guthaben. Melde Claude Code unter Einstellungen → Modelle mit deinem Abo an.",
|
|
404
|
+
chatgptAccountCodexSigned: "Das Kontingent des ChatGPT-Kontos, mit dem Codex angemeldet ist, ist aufgebraucht. Versuch es später noch einmal oder wähle einen anderen Client.",
|
|
405
|
+
builtTerminalNotAvailable: "Das eingebaute Terminal ist auf diesem Computer nicht verfügbar. Führe den Befehl in deinem eigenen Terminal aus.",
|
|
406
|
+
terminalNoLongerExists: "Dieses Terminal gibt es nicht mehr.",
|
|
407
|
+
imageTypeNotReadable: "Bilder vom Typ {mime} lassen sich nicht lesen (PNG, JPEG und WebP gehen).",
|
|
408
|
+
fileNotReadable: "„{name}“ ({mime}) lässt sich nicht lesen.",
|
|
409
|
+
creditsNotSignedIn: "Dafür sind Credits gewählt, aber du bist mit keinem Konto angemeldet.",
|
|
410
|
+
accountNoLongerSigned: "Das Konto ist nicht mehr angemeldet. Melde dich unter Einstellungen → Konto neu an.",
|
|
411
|
+
modelNotUsedYet: "Das Modell „{ref}“ lässt sich noch nicht nutzen. Hinterleg unter Einstellungen → Modelle einen API-Key oder melde dich mit einem Konto an.",
|
|
412
|
+
noModelForImages: "Für Bilder ist kein Modell eingerichtet.",
|
|
413
|
+
noModelForVideos: "Für Videos ist kein Modell eingerichtet.",
|
|
414
|
+
noModelForSpeech: "Für Sprachausgabe ist kein Modell eingerichtet.",
|
|
415
|
+
noOpenaiApiKey: "Für Sprachgespräche ist kein OpenAI-API-Key hinterlegt (Einstellungen → Modelle).",
|
|
416
|
+
modelNotAvailableAccount: "Dieses Modell gibt es mit deinem Konto nicht.",
|
|
417
|
+
accountNoModelSet: "Dafür ist bei deinem Konto kein Modell eingerichtet.",
|
|
418
|
+
claudeCodeMakesFilms: "Filme macht Claude Code auf diesem Computer mit deinem Abo. Richte es unter Einstellungen → Modelle als KI-Abo ein.",
|
|
419
|
+
macNeedsFfmpegTranscribe: "Aufnahmen aus Chrome oder Firefox (WebM, Ogg) schreibt dieser Mac erst mit ffmpeg auf. Safari und die App brauchen es nicht. Installiere ffmpeg, z. B. mit „brew install ffmpeg“.",
|
|
420
|
+
fieldRequired: "Pflichtfeld",
|
|
421
|
+
chooseAtLeast: "Wähl mindestens {min} aus",
|
|
422
|
+
chooseAtMost: "Höchstens {max} – entferne einige",
|
|
423
|
+
enterNumber: "Gib eine Zahl ein",
|
|
424
|
+
invalidChoice: "Ungültige Auswahl",
|
|
425
|
+
timeNotOffered: "Dieser Termin wird nicht angeboten",
|
|
426
|
+
notValidEmailAddress: "Keine gültige E-Mail-Adresse",
|
|
427
|
+
notValidUrl: "Keine gültige URL",
|
|
428
|
+
wizardRunOutCredits: "Dieser Wizard hat gerade kein Guthaben mehr. Versuch es später noch einmal.",
|
|
429
|
+
providerCreditLow: "Das Guthaben beim Modellanbieter reicht dafür nicht aus (Videos brauchen dort ein Mindestguthaben). Lade dort auf und versuch es noch einmal.",
|
|
430
|
+
aiServiceBusyRight: "Der KI-Dienst ist gerade ausgelastet. Versuch es gleich noch einmal.",
|
|
431
|
+
stepTookTooLong: "Der Schritt hat zu lange gedauert. Versuch es noch einmal.",
|
|
432
|
+
aiServiceNotReached: "Der KI-Dienst ist gerade nicht erreichbar. Versuch es später noch einmal.",
|
|
433
|
+
notAvailableNow: "Das ist hier gerade nicht verfügbar.",
|
|
434
|
+
fileNotFound: "Datei nicht gefunden",
|
|
435
|
+
connectFirst: "Verbinde zuerst",
|
|
436
|
+
noEntriesStepWork: "Es gibt keine Einträge, für die dieser Schritt arbeiten könnte.",
|
|
437
|
+
stepNotReturnResult: "Der Schritt hat kein Ergebnis geliefert.",
|
|
438
|
+
documentNotCreated: "Das Dokument konnte nicht erstellt werden.",
|
|
439
|
+
stepMissingSourcesImages: "Für diesen Schritt fehlen die Vorlagen (Bilder oder Szenen).",
|
|
440
|
+
noTextReadAloud: "Es gibt keinen Text zum Vorlesen.",
|
|
441
|
+
wizardStillErrors: "Der Wizard hat noch Fehler.",
|
|
442
|
+
noLanguageModelSet: "Hier ist kein Sprachmodell eingerichtet.",
|
|
443
|
+
creditsUsedUp: "Dein Guthaben ist aufgebraucht.",
|
|
444
|
+
chooseFile: "Wähl eine Datei.",
|
|
445
|
+
pageNotReached: "Die Seite ist nicht erreichbar.",
|
|
446
|
+
unknownEntry: "Unbekannter Eintrag.",
|
|
447
|
+
chooseWizardFileMb: "Wähl eine Wizard-Datei ({PACKAGE_EXTENSION}) bis 30 MB.",
|
|
448
|
+
recordingMbMost: "Die Aufnahme darf höchstens 10 MB groß sein.",
|
|
449
|
+
onlyFinishedResultsShared: "Nur fertige Ergebnisse lassen sich teilen.",
|
|
450
|
+
gradientFailed: "Daraus ließ sich kein Verlauf machen. Beschreib ihn anders.",
|
|
451
|
+
onlyOneSpaceAllowed: "Hier ist nur ein Space möglich.",
|
|
452
|
+
mostSpaces: {
|
|
453
|
+
one: "Hier ist höchstens {count} Space möglich.",
|
|
454
|
+
other: "Hier sind höchstens {count} Spaces möglich.",
|
|
455
|
+
},
|
|
456
|
+
twoEntriesSameKey: "Zwei Einträge haben denselben Schlüssel.",
|
|
457
|
+
notDeleteLastSpace: "Der letzte Space lässt sich nicht löschen.",
|
|
458
|
+
notFound: "Das gibt es nicht oder nicht mehr.",
|
|
459
|
+
categoryNeedsName: "Eine Kategorie braucht einen Namen.",
|
|
460
|
+
unknownCategoryType: "Unbekannter Typ „{type}“.",
|
|
461
|
+
spaceMostCategories: {
|
|
462
|
+
one: "Ein Space hat höchstens {count} Kategorie.",
|
|
463
|
+
other: "Ein Space hat höchstens {count} Kategorien.",
|
|
464
|
+
},
|
|
465
|
+
categoryAlreadyExists: "Die Kategorie „{name}“ gibt es schon.",
|
|
466
|
+
onlyChoiceCategoriesValues: "Werte gibt es nur bei Kategorien vom Typ Auswahl.",
|
|
467
|
+
onlyValuesOneCategory: "Nur Werte einer Kategorie lassen sich zusammenführen.",
|
|
468
|
+
templateNeedsNewerVersion: "Diese Vorlage braucht eine neuere Version von engenty wizards. Aktualisiere zuerst engenty wizards.",
|
|
469
|
+
chatNotExist: "Diesen Chat gibt es nicht.",
|
|
470
|
+
unknownRunner: "Einen Runner „{unknown}“ gibt es hier nicht.",
|
|
471
|
+
leastOneRunnerStay: "Mindestens ein Runner muss eingeschaltet bleiben.",
|
|
472
|
+
linkOpenRunnerTurned: "Der Link muss einen eingeschalteten Runner öffnen.",
|
|
473
|
+
jobNotExistAlready: "Diesen Vorgang gibt es nicht, oder er ist schon beendet.",
|
|
474
|
+
accountAlreadySpace: "Dieses Konto hat hier schon einen Space.",
|
|
475
|
+
accountAlreadySpaces: {
|
|
476
|
+
one: "Dieses Konto hat hier schon {count} Space.",
|
|
477
|
+
other: "Dieses Konto hat hier schon {count} Spaces.",
|
|
478
|
+
},
|
|
479
|
+
roomMostPublishedWizards: {
|
|
480
|
+
one: "Hier hat höchstens {count} veröffentlichter Wizard Platz.",
|
|
481
|
+
other: "Hier haben höchstens {count} veröffentlichte Wizards Platz.",
|
|
482
|
+
},
|
|
483
|
+
spaceIdAlreadyExists: "Einen Space mit dieser Kennung gibt es hier schon, und er kommt nicht von deinem Computer.",
|
|
484
|
+
wizardIdAlreadyBelongs: "Ein Wizard mit dieser Kennung gehört hier schon zu einem anderen Space.",
|
|
485
|
+
idAlreadyUse: "Diese Kennung ist hier schon vergeben.",
|
|
486
|
+
wizardNotSpace: "Diesen Wizard gibt es im Space nicht.",
|
|
487
|
+
invalidColumns: "Ungültige Spalten.",
|
|
488
|
+
spaceMostTables: {
|
|
489
|
+
one: "Ein Space hat höchstens {count} Tabelle.",
|
|
490
|
+
other: "Ein Space hat höchstens {count} Tabellen.",
|
|
491
|
+
},
|
|
492
|
+
tableBelongsOneWizard: "Diese Tabelle gehört zu einer Liste des Wizards. Ihre Spalten kommen aus dem Wizard.",
|
|
493
|
+
entryAlreadyExists: "Diesen Eintrag gibt es schon.",
|
|
494
|
+
tableMostRows: {
|
|
495
|
+
one: "Eine Tabelle hat höchstens {count} Zeile.",
|
|
496
|
+
other: "Eine Tabelle hat höchstens {count} Zeilen.",
|
|
497
|
+
},
|
|
498
|
+
spaceMostPages: {
|
|
499
|
+
one: "Ein Space hat höchstens {count} Seite.",
|
|
500
|
+
other: "Ein Space hat höchstens {count} Seiten.",
|
|
501
|
+
},
|
|
502
|
+
pageNotSubpages: "Diese Seite kann keine Unterseiten haben.",
|
|
503
|
+
pageNotOwnSubpage: "Eine Seite kann nicht ihre eigene Unterseite sein.",
|
|
504
|
+
pageNeedsTitle: "Eine Seite braucht einen Titel.",
|
|
505
|
+
unknownSpace: "Den Space „{space}“ gibt es nicht.",
|
|
506
|
+
noParentPage: "Es gibt keine Seite mit dem Schlüssel „{parent}“, unter die diese Seite könnte.",
|
|
507
|
+
onlyTeamAdmins: "Das dürfen nur Admins des Teams. Als Mitglied bearbeitest du die Wizards, die es schon gibt.",
|
|
508
|
+
spaceEditedLocally: "Diesen Space bearbeitest du in engenty wizards auf deinem Computer, nicht hier.",
|
|
509
|
+
wizardsRunOncePublished: "Hier laufen die Wizards, die du in engenty wizards auf deinem Computer veröffentlichst. Gebaut und bearbeitet wird dort.",
|
|
510
|
+
logoImagePngSvg: "Ein Logo ist ein Bild (PNG, SVG, JPEG, WebP).",
|
|
511
|
+
patternImageSvgPng: "Ein Muster ist ein Bild (SVG, PNG, JPEG, WebP).",
|
|
512
|
+
filesGoHere: "Hierher gehören Bilder, Videos, Audio, PDFs, Schriften, Lottie und 3D-Modelle. Texte zum Nachschlagen gehören ins Wissen.",
|
|
513
|
+
addressNotReached: "Die Adresse ist nicht erreichbar.",
|
|
514
|
+
addressResponded: "Die Adresse antwortete mit {status}.",
|
|
515
|
+
addressLeadsWebPage: "Unter der Adresse steht eine Webseite, kein Bild.",
|
|
516
|
+
addressFileTooLarge: "Die Datei ist zu groß.",
|
|
517
|
+
onlyDocumentsIndex: "Nur Dokumente stehen im Index.",
|
|
518
|
+
emptyTooLargeDocument: "„{name}“ ist leer oder zu groß für ein Dokument.",
|
|
519
|
+
spaceMostDocuments: {
|
|
520
|
+
one: "Ein Space hat höchstens {count} Dokument.",
|
|
521
|
+
other: "Ein Space hat höchstens {count} Dokumente.",
|
|
522
|
+
},
|
|
523
|
+
accountSignedOut: "Das Konto ist abgemeldet. Melde dich neu an.",
|
|
524
|
+
cloudNotReachedRight: "Die Cloud ist gerade nicht erreichbar.",
|
|
525
|
+
publishWizardFirst: "Veröffentliche den Wizard zuerst.",
|
|
526
|
+
wizardJsonUnreadable: "Das ist keine Wizard-Datei: Die wizard.json darin lässt sich nicht lesen.",
|
|
527
|
+
wizardFileComesNewer: "Diese Wizard-Datei stammt aus einer neueren Version oder ist beschädigt. Aktualisiere engenty wizards oder exportiere den Wizard neu.",
|
|
528
|
+
fileOver5Mb: "{name} ist größer als 5 MB.",
|
|
529
|
+
wizardFileTooLarge: "Die Wizard-Datei ist zu groß: Ein Arbeitsbereich fasst höchstens 200 Dateien und 25 MB.",
|
|
530
|
+
wizardFileNotOpened: "Die Wizard-Datei lässt sich nicht öffnen. Exportiere den Wizard neu und versuche es noch einmal.",
|
|
531
|
+
wizardJsonMissing: "Das ist keine Wizard-Datei: Die wizard.json fehlt.",
|
|
532
|
+
notValidFilePath: "„{name}“ ist kein gültiger Dateipfad.",
|
|
533
|
+
workspaceWizardFileLarger: "Der Arbeitsbereich in der Wizard-Datei ist größer als 25 MB.",
|
|
534
|
+
unknownTemplate: "Die Vorlage „{starterId}“ gibt es nicht.",
|
|
535
|
+
wizardChangedMeantime: "Der Wizard wurde inzwischen geändert.",
|
|
536
|
+
valueNotExist: "Diesen Wert gibt es nicht.",
|
|
537
|
+
nothingFiledUnderValue: "Unter diesem Wert steht noch nichts.",
|
|
538
|
+
filmNotRenderedNeeds: "Der Film ließ sich nicht rendern. Dafür braucht es ffmpeg und eine Zeitleiste im Widget.",
|
|
539
|
+
signInRefused: "Anmeldung abgelehnt{host}. Stimmen Adresse und (App-)Passwort? Gmail und Google Workspace brauchen ein App-Passwort und eingeschaltetes IMAP.{answer}",
|
|
540
|
+
serverSaid: " Antwort des Servers: {answer}",
|
|
541
|
+
viaAccountFailed: "Verbinden über dein engenty-Konto hat nicht geklappt ({code}).",
|
|
542
|
+
pluginInvalidInput: "„{id}“ bekam ungültige Angaben: {path} – {problem}",
|
|
543
|
+
filmClientStopped: "{name} hat beim Film aufgehört: {detail}. Die Arbeit ist gespeichert. Ein neuer Versuch macht dort weiter.",
|
|
544
|
+
filmWorkSaved: "{problem} Die Arbeit ist gespeichert. Ein neuer Versuch macht dort weiter.",
|
|
545
|
+
filmRenderFailed: "Der Film ließ sich nicht rendern: {detail}",
|
|
546
|
+
commandNotStarted: "Der Befehl konnte nicht starten: {detail}",
|
|
547
|
+
providerKeyMissing: "Für {makes} ist {provider} gewählt, aber kein API-Key hinterlegt.",
|
|
548
|
+
noModelFor: "Für {makes} ist kein Modell eingerichtet.",
|
|
549
|
+
noApiKeyFor: "Für {provider} ist kein API-Key hinterlegt.",
|
|
550
|
+
freeTier: "Dein AI-Gateway-Key nutzt bei Vercel die kostenlose Stufe, und die schließt {model} aus. Lade bei Vercel Guthaben auf ({url}) oder wähle unter Einstellungen → Modelle ein anderes Modell.",
|
|
551
|
+
thisModel: "dieses Modell",
|
|
552
|
+
quoted: "„{text}“",
|
|
553
|
+
viewErrors: "Die Ansicht hat Fehler: {detail}",
|
|
554
|
+
stepFailed: "Dieser Schritt hat nicht geklappt: {detail}",
|
|
555
|
+
answersMissing: "Antworten fehlen oder passen nicht: {answers}",
|
|
556
|
+
templateNeedsPlugins: {
|
|
557
|
+
one: "Diese Vorlage braucht das Plugin {plugins}: bei Pro auf engenty.ai dabei.",
|
|
558
|
+
other: "Diese Vorlage braucht die Plugins {plugins}: bei Pro auf engenty.ai dabei.",
|
|
559
|
+
},
|
|
560
|
+
pageMostChars: "Eine Seite hat höchstens {count} Zeichen.",
|
|
561
|
+
chooseFileUpTo: "Wähl eine Datei bis {mb} MB.",
|
|
562
|
+
roomMostFiles: {
|
|
563
|
+
one: "Hier hat höchstens {count} Datei Platz.",
|
|
564
|
+
other: "Hier haben höchstens {count} Dateien Platz.",
|
|
565
|
+
},
|
|
566
|
+
makesText: "Text",
|
|
567
|
+
makesImages: "Bilder",
|
|
568
|
+
makesVideos: "Videos",
|
|
569
|
+
makesSpeech: "Sprachausgabe",
|
|
570
|
+
makesVoiceNotes: "Sprachnotizen",
|
|
571
|
+
};
|
|
572
|
+
export const RUN_NOTES = { en: NOTES_EN, de: NOTES_DE };
|
|
573
|
+
/** A note: a line of `RUN_NOTES`, said in whichever language the reader reads. */
|
|
574
|
+
export function note(code, params) {
|
|
575
|
+
return params ? { code, params } : { code };
|
|
576
|
+
}
|
|
243
577
|
/** What is said, in a language. */
|
|
244
578
|
export function saidText(said, lang) {
|
|
245
579
|
return typeof said === "string" ? said : noteText(said, lang);
|
|
246
580
|
}
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
581
|
+
function gapIn(value, lang) {
|
|
582
|
+
if (Array.isArray(value)) {
|
|
583
|
+
return value.map((item) => gapIn(item, lang));
|
|
584
|
+
}
|
|
585
|
+
if (typeof value === "object" && value !== null && "code" in value) {
|
|
586
|
+
return noteText(value, lang);
|
|
587
|
+
}
|
|
588
|
+
return value;
|
|
250
589
|
}
|
|
251
|
-
/** A note in a language, its gaps filled. */
|
|
590
|
+
/** A note in a language, its gaps filled; English where the language lacks the line. */
|
|
252
591
|
export function noteText(note, lang) {
|
|
253
|
-
|
|
254
|
-
if (!line) {
|
|
592
|
+
if (!(note.code in NOTES_EN)) {
|
|
255
593
|
return "";
|
|
256
594
|
}
|
|
257
|
-
|
|
595
|
+
const params = {};
|
|
596
|
+
for (const [key, value] of Object.entries(note.params ?? {})) {
|
|
597
|
+
params[key] = value === undefined ? undefined : gapIn(value, lang);
|
|
598
|
+
}
|
|
599
|
+
return textOf(RUN_NOTES, note.code, lang, params);
|
|
258
600
|
}
|