tongflow 0.1.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.
@@ -0,0 +1,4066 @@
1
+ //#region src/canvas/i18n/messages/en.json
2
+ var en_default = {
3
+ Workspace: {
4
+ "edges": {
5
+ "deleteConfirmTitle": "Delete connection?",
6
+ "deleteConfirmDescription": "This connection isn't attached to any node. Delete it?",
7
+ "delete": "Delete",
8
+ "cancel": "Cancel"
9
+ },
10
+ "handles": {
11
+ "text": "Text",
12
+ "image": "Image",
13
+ "image2": "Image 2",
14
+ "images": "Images",
15
+ "end_image": "End image",
16
+ "video": "Video",
17
+ "videos": "Videos",
18
+ "audio": "Audio",
19
+ "speech": "Speech",
20
+ "ref_audio": "Reference audio",
21
+ "ref_text": "Reference text",
22
+ "document": "Document",
23
+ "byFeature": { "image-image-gen-video": {
24
+ "image": "First frame",
25
+ "end_image": "Last frame"
26
+ } }
27
+ },
28
+ "modeSwitch": {
29
+ "createMode": "Create Mode",
30
+ "executeMode": "Execute Mode",
31
+ "appMode": "App Mode",
32
+ "upgradeRequired": "Upgrade to unlock Execute Mode"
33
+ },
34
+ "appView": {
35
+ "inputsTitle": "Inputs",
36
+ "outputsTitle": "Results",
37
+ "run": "Run",
38
+ "cancel": "Stop",
39
+ "stepProgress": "Step {current} of {total}",
40
+ "completed": "Done",
41
+ "failed": "Something went wrong",
42
+ "emptyWorkflow": "The canvas is empty. Build a workflow first.",
43
+ "invalidWorkflow": "This workflow has a cycle and can't run.",
44
+ "nothingToRun": "This workflow has no runnable steps yet.",
45
+ "noOutputsYet": "Results will show up here after a run.",
46
+ "dropFilesHere": "Drop files here or click to upload",
47
+ "copyText": "Copy",
48
+ "download": "Download",
49
+ "goToCreateMode": "Go to Create Mode",
50
+ "textPlaceholder": "Type here…",
51
+ "fieldType": {
52
+ "text": "Text",
53
+ "image": "Image",
54
+ "audio": "Audio",
55
+ "video": "Video",
56
+ "model": "3D model",
57
+ "file": "File"
58
+ }
59
+ },
60
+ "smartIsland": {
61
+ "category": {
62
+ "digitalHuman": "Digital Human",
63
+ "artDesign": "Art & Design",
64
+ "videoAd": "Video & Ads",
65
+ "docProcessing": "Doc Processing",
66
+ "knowledgeLearning": "Knowledge Learning",
67
+ "musicMV": "Music/MV"
68
+ },
69
+ "enterWorkflowName": "Enter workflow name",
70
+ "saveSuccess": "Saved successfully!",
71
+ "saveFailed": "Save failed, please try again",
72
+ "generateVideo": "Generate Video",
73
+ "generateAudio": "Generate Audio",
74
+ "generateText": "Generate Text",
75
+ "generateImage": "Generate Image",
76
+ "generateMusic": "Generate Music",
77
+ "generate3D": "Generate 3D",
78
+ "detectPose": "Pose",
79
+ "segmentBody": "Segment Body",
80
+ "estimateNormal": "Normals",
81
+ "extractForeground": "Matting",
82
+ "captureMotion": "Motion Capture",
83
+ "firstLastFrameVideo": "First/Last Frame Video",
84
+ "confirmExecute": "Confirm Execute",
85
+ "deployModalWorkers": "Deploy Modal Workers",
86
+ "deployModalRunning": "Deploying Modal workers...",
87
+ "deployModalSuccess": "Modal workers deployed",
88
+ "deployModalFailed": "Modal deploy failed",
89
+ "deployModalUnsupported": "This action is only available in the desktop app",
90
+ "saveAndExecute": "Save and Execute",
91
+ "cancel": "Cancel",
92
+ "executeConfirmTitle": "Confirm Execute Workflow",
93
+ "executeConfirmDescSaved": "The workflow will be saved with the latest state before execution. Confirm execution?",
94
+ "executeConfirmDescNew": "Please save the workflow before execution. Generated materials will be associated with this workflow for future reference and management.",
95
+ "executeWorkflow": "Execute Workflow",
96
+ "saveWorkflow": "Save Workflow",
97
+ "executing": "Executing...",
98
+ "saving": "Saving...",
99
+ "estimatedCost": "Estimated Cost:",
100
+ "estimatedTime": "Estimated Time:",
101
+ "workflowName": "Workflow Name",
102
+ "workflowNamePlaceholder": "Enter workflow name",
103
+ "workflowDescription": "Workflow Description",
104
+ "workflowDescPlaceholder": "Enter workflow description (optional)",
105
+ "tooltip3D": "3D",
106
+ "tooltipDocument": "Document",
107
+ "tooltipImage": "Image",
108
+ "tooltipText": "Text",
109
+ "tooltipVideo": "Video",
110
+ "tooltipAudio": "Audio",
111
+ "tooltipLink": "Link",
112
+ "split": "Split",
113
+ "splitText": "Smart Split",
114
+ "speechRecognize": "Speech Recognition",
115
+ "separateAudio": "Separate Vocals",
116
+ "separateSpeaker": "Speaker Separation",
117
+ "separateSound": "Extract Sound",
118
+ "denoise": "Denoise",
119
+ "convertVoice": "Voice Replacement",
120
+ "filter": "Filter",
121
+ "arrange": "Arrange",
122
+ "concat": "Concat",
123
+ "describeReverse": "Describe",
124
+ "upscale": "HD Upscale",
125
+ "removeSubtitle": "Remove Subtitle",
126
+ "removeWatermark": "Remove Watermark",
127
+ "extractAudioTrack": "Extract audio track",
128
+ "removeVideoAudio": "Remove audio",
129
+ "slice": "Slice",
130
+ "firstFrame": "First Frame",
131
+ "lastFrame": "Last Frame",
132
+ "editImage": "Edit Image",
133
+ "editVideo": "Edit Video",
134
+ "parseDocument": "Parse Document",
135
+ "extractContent": "Extract Content",
136
+ "mergeGroup": "Merge Group",
137
+ "imageFusion": "Image Fusion",
138
+ "imagesGenVideo": "Reference to Video",
139
+ "refsGenVideo": "Omni Reference Video",
140
+ "rewriteText": "Rewrite Text",
141
+ "textToSpeech": "Text to Speech",
142
+ "textToSpeechClone": "Generate Speech (Clone)",
143
+ "textToSpeechPreset": "Generate Speech (Preset)",
144
+ "textToSpeechInstruct": "Generate Speech (Describe)",
145
+ "motionControl": "Motion Control",
146
+ "videoTransfer": "Video Transfer",
147
+ "characterReplace": "Character Replace",
148
+ "merge": "Merge",
149
+ "lipSync": "Lip Sync",
150
+ "lipDub": "Lip Dub",
151
+ "cloneVoice": "Clone Voice",
152
+ "speechGenVideo": "Audio Generate Video",
153
+ "repaintMusic": "Repaint",
154
+ "coverMusic": "Cover",
155
+ "extractStem": "Extract Stem",
156
+ "addTrack": "Add Track",
157
+ "completeMusic": "Complete",
158
+ "musicBrief": "Music Brief"
159
+ },
160
+ "toast": {
161
+ "executing": "Executing...",
162
+ "completed": "Completed",
163
+ "cancelled": "Cancelled",
164
+ "cancelling": "Cancelling...",
165
+ "failed": "Failed",
166
+ "nodes": "Nodes",
167
+ "cancelTask": "Cancel Task",
168
+ "totalDuration": "Total Duration",
169
+ "taskCompleted": "Task completed",
170
+ "taskFailed": "Task failed",
171
+ "taskFailedWithMsg": "Task failed: {error}",
172
+ "level": "Level {level}"
173
+ },
174
+ "dialog": {
175
+ "myWorkflows": "My Workflows",
176
+ "noWorkflows": "No workflows",
177
+ "savedWorkflowsHint": "Saved workflows will appear here",
178
+ "noMore": "No more workflows",
179
+ "loadSuccess": "Loaded successfully!",
180
+ "loadFailed": "Load failed, please try again",
181
+ "open": "Open"
182
+ },
183
+ "menu": {
184
+ "save": "Save",
185
+ "saveAs": "Save As",
186
+ "clear": "Clear",
187
+ "confirmClear": "Are you sure you want to clear the current workflow? This action cannot be undone.",
188
+ "cleared": "Workflow cleared",
189
+ "saveAsNew": "Save as new workflow",
190
+ "saveWorkflow": "Save Workflow",
191
+ "saveNew": "Save as new",
192
+ "name": "Name",
193
+ "enterName": "Enter workflow name",
194
+ "descOptional": "Description (Optional)",
195
+ "enterDesc": "Enter workflow description",
196
+ "saving": "Saving...",
197
+ "update": "Update",
198
+ "cancel": "Cancel",
199
+ "saveSuccess": "Saved successfully!",
200
+ "saveFailed": "Save failed, please try again",
201
+ "exportJson": "Export JSON",
202
+ "exportWorkflow": "Export Workflow",
203
+ "exportExecutable": "Export Executable",
204
+ "importJson": "Import JSON",
205
+ "importJsonInvalid": "Could not parse: invalid JSON or structure.",
206
+ "importJsonNoCanvas": "This file has no canvas data (needs originalFlow, flow, or nodes/edges at the root).",
207
+ "importJsonSuccess": "Loaded workflow ({nodes} nodes, {edges} edges)",
208
+ "importJsonReadFailed": "Failed to read file",
209
+ "exportJsonSuccess": "Download started",
210
+ "exportJsonFailed": "Export failed, please try again"
211
+ },
212
+ "nodes": {
213
+ "base": {
214
+ "moreActions": "More options",
215
+ "execute": "Execute",
216
+ "cancelExecution": "Cancel execution",
217
+ "removeComment": "Remove comment",
218
+ "commentPlaceholder": "Add a comment for users...",
219
+ "clickToAddComment": "Click to add a comment...",
220
+ "addComment": "Add comment",
221
+ "delete": "Delete",
222
+ "deleteConfirmTitle": "Confirm Deletion",
223
+ "deleteConfirmDescription": "This node has {count} downstream node(s). Please choose how to delete.",
224
+ "deleteNodeOnly": "Delete this node only",
225
+ "deleteNodeAndChildren": "Delete this node and all downstream nodes ({count})",
226
+ "deleteChildrenOnly": "Delete downstream nodes only ({count})",
227
+ "run": "Run",
228
+ "preview": "Preview",
229
+ "lock": "Lock Node",
230
+ "unlock": "Unlock Node",
231
+ "startCombo": "Start Combo",
232
+ "addToCombo": "Add to Combo",
233
+ "removeFromCombo": "Remove from Combo",
234
+ "edit": "Edit",
235
+ "cancel": "Cancel",
236
+ "confirm": "Confirm",
237
+ "fullscreenEdit": "Fullscreen Edit",
238
+ "startVoice": "Start Voice Input",
239
+ "stopVoice": "Stop Voice Input",
240
+ "editText": "Edit Text",
241
+ "select": "Select",
242
+ "selected": "Selected",
243
+ "modalNotDeployedTitle": "Modal app not deployed",
244
+ "modalNotDeployedDescription": "Feature \"{feature}\" requires Modal app \"{app}\". It is not deployed yet. Deploy now?",
245
+ "modalDeployHint": "1) Set MODAL_TOKEN_ID / MODAL_TOKEN_SECRET. 2) Ensure plugins/ is present; the server scans plugin annotations in memory. 3) Ensure `python -m modal` works (e.g. pip install modal), then use one-click deploy to run modal deploy on each plugin deploy.py from that registry.",
246
+ "modalDeployDismiss": "Cancel",
247
+ "modalDeployAction": "Download & deploy",
248
+ "modalDeploying": "Deploying Modal workers…",
249
+ "modalDeployDone": "Deployment completed",
250
+ "modalDeployError": "Deployment failed",
251
+ "modalDeployingAction": "Deploying…",
252
+ "modalDeployProgressHint": "Deployed {done}/{total}",
253
+ "pluginImplementationTitle": "Implementation",
254
+ "pluginModelTitle": "Model",
255
+ "pluginImplementationLoading": "Loading plugin implementations…",
256
+ "pluginImplementationEmpty": "No plugin implementations were scanned for this capability. Add Modal or API plugins under the repo's plugins/ directory (see README), then reload this page.",
257
+ "pluginRegistryLoadError": "Could not load the plugin registry: {message}",
258
+ "pluginSelectPlaceholder": "Select a repo…",
259
+ "missingImplTitle": "Missing Implementation",
260
+ "missingImplDescription": "No plugin is installed for this node (or none is selected). Install one from the plugin manager, or pick an installed plugin, before running."
261
+ },
262
+ "common": {
263
+ "enterInstructions": "Enter instructions...",
264
+ "manualInput": "Input",
265
+ "library": "Library",
266
+ "addText": "Add Text",
267
+ "enterText": "Enter text content...",
268
+ "descOptional": "Description (Optional)",
269
+ "fromUpstreamText": "From upstream text node",
270
+ "videoDesc": "Video description",
271
+ "aspectRatio": "Aspect Ratio",
272
+ "resolution": "Resolution",
273
+ "duration": "Duration",
274
+ "currentSize": "Current Size:",
275
+ "currentDuration": "Current Duration:",
276
+ "upscaleTierLabel": "Output tier (long edge)",
277
+ "upscaleTierHint": "Aspect ratio follows input; only the long edge is scaled.",
278
+ "upscaleTier1k": "1K · ~1920",
279
+ "upscaleTier2k": "2K · ~2560",
280
+ "upscaleTier4k": "4K · ~3840",
281
+ "seconds": "s",
282
+ "minute": "min",
283
+ "thinkingProcess": "Thinking Process",
284
+ "performanceMode": "Performance Mode",
285
+ "ecoMode": "💰 Eco Mode",
286
+ "proMode": "⚡ Pro Mode",
287
+ "modelSelect": "Model",
288
+ "models": {
289
+ "imageEdit": "FLUX2 Klein image edit",
290
+ "imageGen": "Z-Image text-to-image",
291
+ "imageFusion": "FLUX2 Klein image fusion",
292
+ "imageGenVideo": "LTX2 image-to-video",
293
+ "features": {
294
+ "gen-text": "Default (OpenRouter)",
295
+ "gen-text-gemini": "Gemini",
296
+ "gen-text-openai": "OpenAI",
297
+ "split-text": "Smart split",
298
+ "combine-text": "Merge texts",
299
+ "combine-text-openai": "Merge texts (OpenAI)",
300
+ "combine-text-gemini": "Merge texts (Gemini)",
301
+ "image-fusion": "FLUX2 Klein fusion",
302
+ "image-gen-text": "Image captioning",
303
+ "video-gen-text": "Video captioning",
304
+ "transcribe": "Speech to text",
305
+ "transcribe-timestamp": "Speech to text (with timestamps)",
306
+ "concat-videos": "Concatenate videos",
307
+ "extract-audio": "Extract audio track",
308
+ "remove-video-audio": "Remove audio (silent video)",
309
+ "merge-video-audio": "Mux audio + video",
310
+ "get-first-frame": "First frame",
311
+ "get-last-frame": "Last frame",
312
+ "parse-document": "Document to text",
313
+ "split-video": "Split by shots",
314
+ "link": "Fetch from URL",
315
+ "gen-video": "Text to video",
316
+ "image-gen": "Z-Image text-to-image",
317
+ "gen-music": "ACE-Step music",
318
+ "text-gen-speech-preset": "TTS (preset style)",
319
+ "image-gen-video": "Image to video",
320
+ "image-edit": "FLUX2 Klein edit",
321
+ "image-upscale": "Image upscale",
322
+ "video-upscale": "Video upscale",
323
+ "image-describe": "Image understanding",
324
+ "video-describe": "Video understanding",
325
+ "audio-describe": "Audio understanding",
326
+ "music-repaint": "Music repaint",
327
+ "music-cover": "Music cover",
328
+ "music-extract": "Stem extraction",
329
+ "music-lego": "Add track",
330
+ "music-complete": "Arrangement completion",
331
+ "music-brief": "Music brief",
332
+ "audio-image-gen-video": "Speech+image to video",
333
+ "speech-text-gen-video": "Speech+text to video",
334
+ "video-image-gen-video-mix": "Video+image mix",
335
+ "video-image-gen-video-move": "Video+image move",
336
+ "image-image-gen-video": "Image+image to video",
337
+ "text-gen-video": "Text to video",
338
+ "image-gen-model": "Image to 3D",
339
+ "speech-video-gen-video": "Video lip dub (text+video)",
340
+ "audio-video-lip-sync": "Audio+video lip sync",
341
+ "text-gen-speech-clone": "Voice clone TTS",
342
+ "text-gen-speech-instruct": "Instruct TTS",
343
+ "video-image-move-animal": "Video+image move (animal)",
344
+ "video-image-move": "Video+image move (human)",
345
+ "video-image-move-muti": "Video+image move (multi)",
346
+ "video-image-move-animal-muti": "Video+image move (animal, multi)",
347
+ "wan-animate-mix": "WAN animate mix",
348
+ "subtitle-remove": "Subtitle removal",
349
+ "remove-watermark": "Watermark removal",
350
+ "denoise-audio": "Audio denoise",
351
+ "separate-audio-track": "Vocal / accompaniment",
352
+ "separate-speaker": "Speaker diarization",
353
+ "convert-voice": "Voice replacement",
354
+ "drop-video": "Filter clips",
355
+ "arrange-group": "Arrange batch"
356
+ }
357
+ },
358
+ "voice": "Voice",
359
+ "selectVoice": "Select Voice",
360
+ "previewVoice": "Preview Voice",
361
+ "uploadVoice": "Upload Voice",
362
+ "recordVoice": "Record Voice",
363
+ "voiceClone": "Voice Clone",
364
+ "voicePreset": "Preset Style",
365
+ "voiceDescribe": "Custom Description",
366
+ "gender": "Gender",
367
+ "selectGender": "Select Gender (Optional)",
368
+ "emotion": "Emotion",
369
+ "style": "Style",
370
+ "selectEmotion": "Select Emotion (Optional)",
371
+ "selectStyle": "Select Style (Optional)",
372
+ "voiceDescription": "Voice Description",
373
+ "voiceDescriptionPlaceholder": "Enter voice style description, e.g.: A gentle and sweet female voice, speaking slowly...",
374
+ "referenceAudio": "Reference Audio",
375
+ "noReferenceAudio": "Upload or record a reference clip (≥3 s)",
376
+ "referenceText": "Reference Text",
377
+ "referenceTextPlaceholder": "Optional: transcript of the reference audio — improves clone quality",
378
+ "referenceTextCloneHint": "Leave empty for fast x-vector clone; paste the reference transcript for higher-quality ICL clone",
379
+ "language": "Language",
380
+ "inputText": "Input Text",
381
+ "voiceOptions": {
382
+ "female": "Female Voice",
383
+ "male": "Male Voice"
384
+ }
385
+ },
386
+ "titles": {
387
+ "imageGenVideo": "Image to Video",
388
+ "textGenVideo": "Text to Video",
389
+ "addText": "Add Text",
390
+ "textGenText": "Text Generation",
391
+ "combineText": "Combine Texts",
392
+ "textGenImage": "Text to Image",
393
+ "textGenSpeechClone": "Generate Speech (Clone)",
394
+ "textGenSpeechCloneCompose": "Voice Clone (Text + Audio)",
395
+ "imageGenVideoCompose": "Image to Video (Text + Image)",
396
+ "textGenSpeechPreset": "Generate Speech (Preset)",
397
+ "textGenSpeechInstruct": "Generate Speech (Describe)",
398
+ "imageFusion": "Image Fusion",
399
+ "videoUpscale": "Video Upscale",
400
+ "videoGenText": "Describe Video",
401
+ "speechRecognize": "Speech Recognition",
402
+ "textGenMusic": "Text to Music",
403
+ "speechGenVideo": "Audio to Video",
404
+ "convertVoice": "Voice Replacement",
405
+ "denoiseAudio": "Audio Denoise",
406
+ "fileGenText": "Document Parser",
407
+ "linkGenText": "Link Extractor",
408
+ "removeSubtitle": "Remove Subtitle",
409
+ "removeWatermark": "Remove Watermark",
410
+ "separateAudio": "Split Audio & Video",
411
+ "imageGenText": "Image Description",
412
+ "audioDescribe": "Audio Description",
413
+ "imageGenImage": "Image Edit",
414
+ "videoEdit": "Video Edit",
415
+ "imageGenModel": "Image to 3D Model",
416
+ "imagePose": "Pose Detection",
417
+ "imageBodySeg": "Body-Part Segmentation",
418
+ "imageNormal": "Surface Normal",
419
+ "imageMatting": "Human Matting",
420
+ "videoGenModel": "Video Motion Capture",
421
+ "imageUpscale": "HD Upscale",
422
+ "separateTrack": "Vocal Extract",
423
+ "separateSpeaker": "Speaker Separation",
424
+ "separateSound": "Separate Sound",
425
+ "speechImageGenVideo": "Speech+Image to Video",
426
+ "concatVideo": "Concat Video",
427
+ "mergeVideoAudio": "Merge Video Audio",
428
+ "audioVideoLipSync": "Video Lip Sync",
429
+ "speechTextGenVideo": "Speech+Text to Video",
430
+ "speechVideoGenVideo": "Video Lip Dub",
431
+ "imageImageGenVideo": "First/Last Frame Video",
432
+ "imagesGenVideo": "Images to Video",
433
+ "refsGenVideo": "Omni Reference to Video",
434
+ "textAudioGenSpeech": "Text+Audio to Speech",
435
+ "videoImageMix": "Video+Image Mix",
436
+ "videoImageMove": "Video+Image Move",
437
+ "splitVideo": "Split Video",
438
+ "splitText": "Smart Split",
439
+ "getFirstFrame": "First Frame",
440
+ "getLastFrame": "Last Frame",
441
+ "extractAudioTrack": "Extract audio track",
442
+ "removeVideoAudio": "Remove audio (silent video)",
443
+ "musicRepaint": "Repaint Music",
444
+ "musicCover": "Music Cover",
445
+ "musicExtract": "Extract Stem",
446
+ "musicLego": "Add Track",
447
+ "musicComplete": "Complete Arrangement",
448
+ "musicBrief": "Music Brief"
449
+ },
450
+ "options": {
451
+ "portrait": "Portrait",
452
+ "landscape": "Landscape",
453
+ "square": "Square",
454
+ "standard": "Standard",
455
+ "verticalStandard": "Vertical Standard",
456
+ "human": "Human",
457
+ "animal": "Animal",
458
+ "single": "Single",
459
+ "multi": "Multi"
460
+ },
461
+ "actions": {
462
+ "generateVideo": "Generate Video",
463
+ "generateImage": "Generate Image",
464
+ "generateSpeech": "Generate Speech",
465
+ "startFusion": "Start Fusion",
466
+ "convertText": "Convert to Text",
467
+ "startUpscale": "Start Upscale",
468
+ "describeVideo": "Describe Video",
469
+ "recognizeSpeech": "Recognize Speech",
470
+ "generateMusic": "Generate Music",
471
+ "generateAudio": "Generate Audio",
472
+ "startReplace": "Start Replace",
473
+ "startDenoise": "Start Denoise",
474
+ "parseDocument": "Parse Document",
475
+ "extractContent": "Extract Content",
476
+ "removeSubtitle": "Remove Subtitle",
477
+ "removeWatermark": "Remove Watermark",
478
+ "compressVideo": "Compress Video",
479
+ "extractAudio": "Start Split",
480
+ "describeImage": "Describe Image",
481
+ "describeAudio": "Describe Audio",
482
+ "editImage": "Edit Image",
483
+ "editVideo": "Edit Video",
484
+ "generate3DModel": "Generate 3D Model",
485
+ "detectPose": "Detect Pose",
486
+ "segmentBody": "Segment Body Parts",
487
+ "estimateNormal": "Estimate Normals",
488
+ "extractForeground": "Extract Foreground",
489
+ "captureMotion": "Capture Motion",
490
+ "imageUpscale": "HD Upscale",
491
+ "extractVocals": "Extract Vocals",
492
+ "startSeparation": "Start Separation",
493
+ "concatVideo": "Concat Video",
494
+ "startMerge": "Start Merge",
495
+ "lipDub": "Lip Dub",
496
+ "motionTrackGenerate": "Generate (motion track)",
497
+ "splitVideo": "Split Video",
498
+ "splitText": "Smart Split",
499
+ "getFirstFrame": "Get First Frame",
500
+ "getLastFrame": "Get Last Frame",
501
+ "extractAudioTrack": "Extract audio",
502
+ "removeVideoAudio": "Remove audio",
503
+ "repaintMusic": "Repaint",
504
+ "coverMusic": "Generate Cover",
505
+ "extractStem": "Extract",
506
+ "separateSound": "Separate",
507
+ "addTrack": "Generate Track",
508
+ "completeMusic": "Complete",
509
+ "musicBrief": "Generate Brief"
510
+ },
511
+ "params": {
512
+ "prompt": "Prompt",
513
+ "model": "Model",
514
+ "modelDefault": "Default (OpenRouter free)",
515
+ "geminiModel": "Gemini model",
516
+ "openaiModel": "OpenAI model",
517
+ "style": "Style",
518
+ "sampler": "Sampler",
519
+ "seed": "Seed",
520
+ "steps": "Steps",
521
+ "cfg": "CFG Scale"
522
+ },
523
+ "emotions": {
524
+ "none": "None",
525
+ "happy": "Happy",
526
+ "angry": "Angry",
527
+ "sad": "Sad",
528
+ "fear": "Fear",
529
+ "surprised": "Surprised",
530
+ "confusion": "Confusion",
531
+ "empathy": "Empathy",
532
+ "embarrass": "Embarrassed",
533
+ "excited": "Excited",
534
+ "depressed": "Depressed",
535
+ "admiration": "Admiration",
536
+ "coldness": "Coldness"
537
+ },
538
+ "genders": {
539
+ "none": "None",
540
+ "male": "Male",
541
+ "female": "Female"
542
+ },
543
+ "styles": {
544
+ "none": "None",
545
+ "serious": "Serious",
546
+ "arrogant": "Arrogant",
547
+ "child": "Child",
548
+ "older": "Older",
549
+ "girl": "Girl",
550
+ "pure": "Pure",
551
+ "sister": "Mature Female",
552
+ "sweet": "Sweet",
553
+ "exaggerated": "Exaggerated",
554
+ "ethereal": "Ethereal",
555
+ "whisper": "Whisper",
556
+ "generous": "Generous",
557
+ "recite": "Recite",
558
+ "act_coy": "Coquettish",
559
+ "warm": "Warm",
560
+ "shy": "Shy",
561
+ "comfort": "Comforting",
562
+ "authority": "Authoritative",
563
+ "chat": "Chat",
564
+ "radio": "Radio",
565
+ "soulful": "Soulful",
566
+ "gentle": "Gentle",
567
+ "story": "Storytelling",
568
+ "vivid": "Vivid",
569
+ "program": "Host",
570
+ "news": "News",
571
+ "advertising": "Advertising",
572
+ "roar": "Roar",
573
+ "murmur": "Murmur",
574
+ "shout": "Shout",
575
+ "deeply": "Deep",
576
+ "loudly": "Loud"
577
+ },
578
+ "recorder": {
579
+ "title": "Record Voice",
580
+ "desc": "Record an audio clip as a reference for voice synthesis",
581
+ "start": "Start Recording",
582
+ "stop": "Stop Recording",
583
+ "preview": "Preview",
584
+ "retry": "Retry",
585
+ "uploading": "Uploading...",
586
+ "confirm": "Confirm",
587
+ "cancel": "Cancel",
588
+ "recording": "Recording...",
589
+ "recorded": "Recording Complete",
590
+ "micError": "Cannot access microphone, please check permissions",
591
+ "uploadError": "Upload failed, please try again",
592
+ "uploadFailed": "Upload Failed"
593
+ },
594
+ "imageFusion": {
595
+ "loading": "Loading...",
596
+ "imageReference": "Image Reference",
597
+ "imageReferenceHint": "Click image to insert reference in prompt",
598
+ "fusionPrompt": "Fusion Prompt",
599
+ "fusionPromptPlaceholder": "Enter fusion instructions, e.g., keep style of Image 1, fuse features of all images, highlight colors of Image 2, combine composition of Image 3...",
600
+ "imageLabel": "Image"
601
+ },
602
+ "refsGenVideo": {
603
+ "videoReference": "Video Reference",
604
+ "videoLabel": "Video",
605
+ "audioReference": "Audio Reference",
606
+ "audioLabel": "Audio",
607
+ "referenceHint": "Up to 9 images, 3 videos and 3 audio clips (12 files total); audio must come with an image or video. Click a thumbnail to insert its reference in the prompt.",
608
+ "promptPlaceholder": "Describe the video, e.g., the character from Image 1 speaks with the voice of Audio 1, continuing the scene of Video 1..."
609
+ },
610
+ "video": { "fileCount": "Files to process:" },
611
+ "speechRecognize": { "withTimestamp": "With Timestamp" },
612
+ "music": {
613
+ "handleStyle": "Style",
614
+ "handleLyric": "Lyrics",
615
+ "referenceAudio": "Reference audio",
616
+ "inputLyrics": "Input Lyrics",
617
+ "audioDuration": "Audio Duration",
618
+ "currentDuration": "Current Duration:",
619
+ "seconds": "s",
620
+ "15s": "15s",
621
+ "30s": "30s",
622
+ "1min": "1 min",
623
+ "2min": "2 min",
624
+ "styleSettings": "Music Style",
625
+ "voiceGender": "Voice",
626
+ "genders": {
627
+ "male": "Male",
628
+ "female": "Female"
629
+ },
630
+ "timbre": "Timbre",
631
+ "timbres": {
632
+ "bright": "Bright",
633
+ "dark": "Dark",
634
+ "warm": "Warm",
635
+ "soft": "Soft",
636
+ "rock": "Rock",
637
+ "vocal": "Vocal"
638
+ },
639
+ "genre": "Genre",
640
+ "genres": {
641
+ "pop": "Pop",
642
+ "rock": "Rock",
643
+ "electronic": "Electronic",
644
+ "hiphop": "Hip Hop",
645
+ "jazz": "Jazz",
646
+ "blues": "Blues",
647
+ "classical": "Classical",
648
+ "folk": "Folk",
649
+ "country": "Country",
650
+ "rnb": "R&B",
651
+ "kpop": "K-Pop",
652
+ "reggae": "Reggae",
653
+ "soul": "Soul",
654
+ "dance": "Dance",
655
+ "rap": "Rap",
656
+ "classicRock": "Classic Rock",
657
+ "hardRock": "Hard Rock",
658
+ "rockabilly": "Rockabilly",
659
+ "dancepop": "Dance Pop",
660
+ "house": "House",
661
+ "deephouse": "Deep House",
662
+ "experimental": "Experimental",
663
+ "experimentalPop": "Experimental Pop",
664
+ "popPunk": "Pop Punk",
665
+ "rockAndRoll": "Rock and Roll",
666
+ "popRock": "Pop Rock"
667
+ },
668
+ "mood": "Mood",
669
+ "moods": {
670
+ "happy": "Happy",
671
+ "sad": "Sad",
672
+ "romantic": "Romantic",
673
+ "melancholic": "Melancholic",
674
+ "uplifting": "Uplifting",
675
+ "intense": "Intense",
676
+ "emotional": "Emotional",
677
+ "angry": "Angry"
678
+ },
679
+ "instrumentAndRhythm": "Instrument & Rhythm",
680
+ "instrument": "Instrument",
681
+ "selectedCount": "{count} selected",
682
+ "instruments": {
683
+ "piano": "Piano",
684
+ "guitar": "Guitar",
685
+ "acousticGuitar": "Acoustic Guitar",
686
+ "electricGuitar": "Electric Guitar",
687
+ "drums": "Drums",
688
+ "synthesizer": "Synthesizer",
689
+ "violin": "Violin",
690
+ "saxophone": "Saxophone",
691
+ "bass": "Bass",
692
+ "beats": "Beats",
693
+ "strings": "Strings",
694
+ "cello": "Cello",
695
+ "trumpet": "Trumpet",
696
+ "harmonica": "Harmonica",
697
+ "banjo": "Banjo",
698
+ "fiddle": "Fiddle",
699
+ "brass": "Brass",
700
+ "doubleBass": "Double Bass"
701
+ },
702
+ "bpm": "BPM",
703
+ "slow": "Slow",
704
+ "moderate": "Moderate",
705
+ "fast": "Fast",
706
+ "songTitle": "Song Title",
707
+ "songTitlePlaceholder": "Enter song title (optional)",
708
+ "noTagsSelected": "No tags selected",
709
+ "tagsPlaceholder": "e.g. female, pop, bright, piano, happy, 120bpm",
710
+ "tagsHint": "Enter music style tags separated by commas, e.g. gender, genre, timbre, instruments, mood, BPM",
711
+ "fromUpstreamReadonly": "From upstream (read-only)",
712
+ "lyricsPlaceholder": "Enter lyrics when the lyric input is not connected",
713
+ "language": "Language",
714
+ "keyscale": "Key Scale",
715
+ "auto": "Auto"
716
+ },
717
+ "musicTasks": {
718
+ "promptLabel": "Caption",
719
+ "promptPlaceholder": "Describe the music style, mood, instruments...",
720
+ "lyricsLabel": "Lyrics",
721
+ "lyricsPlaceholder": "Lyrics (optional)...",
722
+ "startTime": "Start (s)",
723
+ "endTime": "End (s)",
724
+ "strength": "Strength",
725
+ "track": "Track",
726
+ "tracks": "Tracks to add",
727
+ "instrumental": "Instrumental",
728
+ "ideaPlaceholder": "One sentence describing the song you want...",
729
+ "sourceAudio": "Source Audio",
730
+ "refAudio": "Reference Audio",
731
+ "trackOptions": {
732
+ "vocals": "Vocals",
733
+ "backing_vocals": "Backing Vocals",
734
+ "drums": "Drums",
735
+ "percussion": "Percussion",
736
+ "bass": "Bass",
737
+ "guitar": "Guitar",
738
+ "keyboard": "Keyboard",
739
+ "synth": "Synth",
740
+ "strings": "Strings",
741
+ "brass": "Brass",
742
+ "woodwinds": "Woodwinds",
743
+ "fx": "FX"
744
+ }
745
+ },
746
+ "speechGenVideo": {
747
+ "loading": "Loading...",
748
+ "inputContent": "Input Content",
749
+ "audio": "Audio",
750
+ "connectAudioHint": "Connect an audio node or upload an audio file",
751
+ "audioPromptLabel": "Audio Prompt",
752
+ "audioPromptPlaceholder": "Enter audio dubbing prompt"
753
+ },
754
+ "convertVoice": {
755
+ "voiceLabel": "Voice:",
756
+ "selectVoice": "Select Voice",
757
+ "previewVoice": "Preview Voice",
758
+ "uploadVoice": "Upload Voice",
759
+ "recordVoice": "Record Voice",
760
+ "recordAudio": "Record Audio",
761
+ "recordHint": "You can record audio here.",
762
+ "recordNeedImpl": "Audio recording feature needs implementation",
763
+ "done": "Done"
764
+ },
765
+ "removeWatermark": { "hint": "Automatically detect and remove Sora video watermarks" },
766
+ "videoGenText": {
767
+ "promptLabel": "Custom Prompt",
768
+ "promptPlaceholder": "Leave empty for default prompt, or enter custom instructions, e.g.: Only describe the dialogues in the video..."
769
+ },
770
+ "imageGenText": {
771
+ "promptLabel": "Custom Prompt",
772
+ "promptPlaceholder": "Leave empty for default prompt, or enter custom instructions, e.g.: Describe the main subject, style, or on-image text..."
773
+ },
774
+ "audioDescribe": {
775
+ "promptLabel": "Custom Prompt",
776
+ "promptPlaceholder": "Leave empty for default prompt, or enter custom instructions, e.g.: Describe the genre, mood, instruments, or vocals..."
777
+ },
778
+ "textGenText": { "instructions": "Instructions" },
779
+ "lipDub": {
780
+ "targetDialogue": "Target dialogue (prompt)",
781
+ "targetDialoguePlaceholder": "Full prompt with character description and target-language lines (model does not translate for you)",
782
+ "promptHint": "Output resolution follows the reference video. Use a full prompt (character + target-language lines; no auto-translation). Match original clip length; single speaker only."
783
+ },
784
+ "lipSync": {
785
+ "scenePrompt": "Scene description (optional)",
786
+ "scenePromptPlaceholder": "Describe the shot and speaker. Lip sync follows the connected audio — do not paste full dialogue here.",
787
+ "audioDrivenHint": "Mouth motion and audio come from the audio input. Keep audio duration close to the reference video. Default output 720p."
788
+ },
789
+ "motionTrack": {
790
+ "connectHint": "Connect a first-frame image, a reference video (its motion is auto-tracked and transferred), and a text prompt (appearance/style only).",
791
+ "controlVideo": "Reference video",
792
+ "promptPlaceholder": "Describe appearance and style — motion is extracted from the reference video.",
793
+ "promptHint": "Describe appearance/style only; motion is auto-extracted from the reference video. Duration slider caps the reference clip length.",
794
+ "missing": "Still needed: {items}"
795
+ },
796
+ "imageEdit": {
797
+ "performanceMode": "Performance Mode",
798
+ "ecoMode": "💰 Eco (FLUX.2 Klein 9B)",
799
+ "proMode": "⚡ Pro Mode",
800
+ "editInstruction": "Edit Instruction",
801
+ "fromUpstream": "(from upstream node)",
802
+ "editPlaceholder": "Enter image edit instructions, e.g.: increase contrast, adjust color temperature to warm, enhance details"
803
+ },
804
+ "videoEdit": {
805
+ "editInstruction": "Edit Instruction",
806
+ "fromUpstream": "(from upstream node)",
807
+ "editPlaceholder": "Enter video edit instructions, e.g.: remove subtitles, apply a watercolor style, change the sky to sunset",
808
+ "connectTextVideo": "Connect a text node and a video node"
809
+ },
810
+ "compose": {
811
+ "loading": "Loading...",
812
+ "mediaFiles": "Media Files",
813
+ "image": "Image",
814
+ "audio": "Audio",
815
+ "video": "Video",
816
+ "text": "Text",
817
+ "noText": "No Text",
818
+ "inputContent": "Input Content",
819
+ "videoFiles": "Video Files",
820
+ "connectImageAudio": "Please connect an image and an audio file",
821
+ "connectVideo": "Please connect at least one video file",
822
+ "connectImageVideoAudio": "Please connect an image, a video and an audio file",
823
+ "connectTextAudio": "Please connect text content and an audio file",
824
+ "connectTextReferenceAudio": "Connect a text node and an audio node (reference voice)",
825
+ "connectTextImage": "Connect a text node and an image node",
826
+ "connectTextVideoNode": "Connect a video node and a text node (target dialogue goes in the prompt)",
827
+ "referenceAudio": "Reference audio",
828
+ "referenceTextOptional": "Reference transcript (optional, improves clone quality)",
829
+ "connectVideoAudio": "Please connect a video and an audio file",
830
+ "generatePromptLabel": "Generate Prompt",
831
+ "generatePromptPlaceholder": "Enter video generation prompt describing content, style, action, etc. (optional)",
832
+ "inputText": "Input Text",
833
+ "inputTextPlaceholder": "Enter text content",
834
+ "describeVideo": "Describe the video you want to generate...",
835
+ "firstFrame": "First Frame",
836
+ "lastFrame": "Last Frame",
837
+ "connectTwoImages": "Please connect two images (first and last frame)",
838
+ "inputData": "Input Data",
839
+ "connectTextAudioNode": "Please connect text and audio nodes",
840
+ "emotion": "Emotion:",
841
+ "style": "Style:",
842
+ "selectEmotion": "Select emotion style (optional)",
843
+ "selectStyle": "Select voice style (optional)",
844
+ "lipSync": "Lip Sync",
845
+ "connectImageVideo": "Please connect an image and a video file",
846
+ "startSlice": "Start Slice"
847
+ },
848
+ "modal": {
849
+ "audioPreview": "Audio Preview",
850
+ "audio": "Audio",
851
+ "audios": "Audios ({count})",
852
+ "loading": "Loading...",
853
+ "unavailable": "Content unavailable",
854
+ "more": "More",
855
+ "moreOptions": "More options",
856
+ "actions": "Actions",
857
+ "textPreview": "Text Preview",
858
+ "text": "Text",
859
+ "texts": "Texts ({count})",
860
+ "imagePreview": "Image Preview",
861
+ "image": "Image",
862
+ "images": "Images ({count})",
863
+ "videoPreview": "Video Preview",
864
+ "video": "Video",
865
+ "videos": "Videos ({count})",
866
+ "file": "File",
867
+ "files": "Files ({count})",
868
+ "link": "Link",
869
+ "links": "Links ({count})",
870
+ "fullScreenPreview": "Full screen preview",
871
+ "fullScreenWaterfall": "Full screen waterfall preview",
872
+ "model3DPreview": "3D Model Preview",
873
+ "model3D": "3D Model",
874
+ "models3D": "3D Models ({count})",
875
+ "resetView": "Reset view",
876
+ "playAnimation": "Play animation",
877
+ "pauseAnimation": "Pause animation",
878
+ "downloadModel": "Download model",
879
+ "loading3DModel": "Loading 3D model...",
880
+ "errorLoadingModel": "Error loading model",
881
+ "dragToRotate": "Left Click + Drag to Rotate | Scroll to Zoom | Click Reset to Center",
882
+ "noModelLoaded": "No 3D model loaded",
883
+ "loadingPreview": "Loading preview...",
884
+ "unsupportedFormat": "Unsupported Format",
885
+ "supportedFormats": "Supported",
886
+ "download": "Download",
887
+ "textEditor": "Text Editor",
888
+ "enterText": "Enter text content..."
889
+ },
890
+ "add": {
891
+ "addAudio": "Add Audio",
892
+ "addImage": "Add Image",
893
+ "addVideo": "Add Video",
894
+ "addText": "Add Text",
895
+ "addFile": "Add File",
896
+ "addModel": "Add 3D Model",
897
+ "addLink": "Add Link",
898
+ "record": "Record",
899
+ "recordVideo": "Record Video",
900
+ "upload": "Upload",
901
+ "library": "Library",
902
+ "recorded": "Recorded",
903
+ "uploading": "Uploading",
904
+ "confirmAndUpload": "Confirm & Upload",
905
+ "dropToUpload": "Drop files to upload",
906
+ "dragOrClick": "Drag files here or click to upload",
907
+ "supportedAudioFormats": "Supports MP3, WAV, OGG, M4A",
908
+ "supportedImageFormats": "Supports common image formats",
909
+ "supportedVideoFormats": "Supports MP4, MOV, WEBM",
910
+ "browseFiles": "Browse Files",
911
+ "canvas": "Canvas",
912
+ "camera": "Camera",
913
+ "openCanvas": "Open Canvas",
914
+ "canvasDrawing": "Canvas Drawing",
915
+ "canvasDrawingHint": "Draw on the canvas below, then click finish to save",
916
+ "clearCanvas": "Clear Canvas",
917
+ "finishAndSave": "Finish & Save",
918
+ "clickToStartCamera": "Click to Start Camera",
919
+ "takePhoto": "Take Photo",
920
+ "closeCamera": "Close Camera",
921
+ "cameraError": "Cannot access camera",
922
+ "cameraErrorHint": "Please ensure: 1. Using HTTPS or localhost 2. Camera permission allowed 3. Camera not in use by other apps",
923
+ "inputText": "Input Text",
924
+ "textPlaceholder": "Please enter text content...",
925
+ "generate": "Confirm",
926
+ "linkPlaceholder": "Please enter a link",
927
+ "extractContent": "Extract Content",
928
+ "cancel": "Cancel",
929
+ "startRecordingVideo": "Start Recording Video",
930
+ "addDocument": "Add Document",
931
+ "supportedDocFormats": "Supports multiple document formats",
932
+ "dragModel": "Drag 3D model files here or click to upload",
933
+ "supportedModelFormats": "Supported formats",
934
+ "modelHint": "Tip: Supports the following 3D file formats:"
935
+ },
936
+ "batch": {
937
+ "arrangeGroup": "Arrange Groups",
938
+ "startArrange": "Start Arrange",
939
+ "describeRequirements": "Describe your requirements...",
940
+ "groupCount": "Group Count",
941
+ "allowDuplicate": "Allow Duplicates",
942
+ "videoFilter": "Video Filter",
943
+ "startFilter": "Start Filter"
944
+ },
945
+ "voice": {
946
+ "timbre": "Voice:",
947
+ "selectTimbre": "Select voice",
948
+ "previewTimbre": "Preview current voice",
949
+ "uploadTimbre": "Upload voice",
950
+ "recordTimbre": "Record voice",
951
+ "emotion": "Emotion:",
952
+ "replaceTimbre": "Replace voice"
953
+ },
954
+ "separateSound": {
955
+ "textLabel": "Sound to isolate",
956
+ "textPlaceholder": "e.g. dog barking, piano, sirens in the background"
957
+ }
958
+ }
959
+ },
960
+ Upload: {
961
+ "failed": "Upload failed, please retry later",
962
+ "fileFailed": "Failed to upload \"{name}\": {reason}",
963
+ "partialFailed": "Some or all files failed to upload",
964
+ "maxFilesExceeded": "Maximum {max} files allowed",
965
+ "fileTooLarge": "File \"{name}\" is too large (max {max}MB)",
966
+ "fileTypeNotAccepted": "File \"{name}\" type not accepted",
967
+ "readImageFailed": "Failed to read image information",
968
+ "readVideoFailed": "Failed to read video information"
969
+ },
970
+ LibInput: {
971
+ "deleteSuccess": "Material deleted",
972
+ "deleteFailed": "Failed to delete",
973
+ "emptyText": "Empty text",
974
+ "loadFailed": "Failed to load materials",
975
+ "added": "Material added",
976
+ "retry": "Retry",
977
+ "emptyMaterial": "No {type} materials yet",
978
+ "typeImage": "image",
979
+ "typeVideo": "video",
980
+ "typeAudio": "audio",
981
+ "typeText": "text",
982
+ "typeFile": "file",
983
+ "typeModel": "model",
984
+ "favoriteHint": "Click the ❤️ icon on a node to favorite the material",
985
+ "portfolio": "Portfolio"
986
+ },
987
+ Recorder: {
988
+ "audioStart": "Start recording",
989
+ "audioCancel": "Cancel",
990
+ "audioCancelTooltip": "Cancel recording",
991
+ "audioFinish": "Finish",
992
+ "audioFinishTooltip": "Finish recording",
993
+ "audioPermissionError": "Cannot access microphone. Please grant permission.",
994
+ "videoPermissionError": "Cannot access camera or microphone. Please grant permission.",
995
+ "videoStart": "Start recording",
996
+ "videoStop": "Stop recording"
997
+ },
998
+ Languages: {
999
+ "auto": "Auto",
1000
+ "zh": "Chinese",
1001
+ "ja": "Japanese",
1002
+ "yue": "Cantonese",
1003
+ "en": "English",
1004
+ "ko": "Korean",
1005
+ "fr": "French",
1006
+ "es": "Spanish",
1007
+ "de": "German",
1008
+ "ru": "Russian",
1009
+ "pt": "Portuguese",
1010
+ "it": "Italian"
1011
+ },
1012
+ Errors: {
1013
+ "somethingWentWrong": "Something went wrong",
1014
+ "tryAgain": "Try again",
1015
+ "details": "Details",
1016
+ "copy": "Copy",
1017
+ "copied": "Copied",
1018
+ "close": "Close",
1019
+ "needHelp": "Stuck? Come find us:",
1020
+ "wechatGroup": "WeChat group",
1021
+ "wechatQrAlt": "WeChat group QR code"
1022
+ },
1023
+ Api: {
1024
+ "unknownError": "Unknown error",
1025
+ "unauthorized": "Unauthorized",
1026
+ "accessDenied": "Access denied",
1027
+ "requestFailed": "Request failed: {status} {statusText}",
1028
+ "success": "Success",
1029
+ "timedOut": "Request timed out; please retry"
1030
+ }
1031
+ };
1032
+ //#endregion
1033
+ //#region src/canvas/i18n/messages/ja.json
1034
+ var ja_default = {
1035
+ Workspace: {
1036
+ "edges": {
1037
+ "deleteConfirmTitle": "接続を削除しますか?",
1038
+ "deleteConfirmDescription": "この接続はどのノードにも接続されていません。削除しますか?",
1039
+ "delete": "削除",
1040
+ "cancel": "キャンセル"
1041
+ },
1042
+ "handles": {
1043
+ "text": "テキスト",
1044
+ "image": "画像",
1045
+ "image2": "画像 2",
1046
+ "images": "画像",
1047
+ "end_image": "終了画像",
1048
+ "video": "動画",
1049
+ "videos": "動画",
1050
+ "audio": "音声",
1051
+ "speech": "音声",
1052
+ "ref_audio": "参照音声",
1053
+ "ref_text": "参照テキスト",
1054
+ "document": "ドキュメント",
1055
+ "byFeature": { "image-image-gen-video": {
1056
+ "image": "開始フレーム",
1057
+ "end_image": "終了フレーム"
1058
+ } }
1059
+ },
1060
+ "modeSwitch": {
1061
+ "createMode": "作成モード",
1062
+ "executeMode": "実行モード",
1063
+ "appMode": "アプリモード",
1064
+ "upgradeRequired": "実行モードを解除するにはアップグレードが必要です"
1065
+ },
1066
+ "appView": {
1067
+ "inputsTitle": "入力",
1068
+ "outputsTitle": "結果",
1069
+ "run": "実行",
1070
+ "cancel": "停止",
1071
+ "stepProgress": "ステップ {current}/{total}",
1072
+ "completed": "完了",
1073
+ "failed": "実行に失敗しました",
1074
+ "emptyWorkflow": "キャンバスが空です。まずワークフローを作成してください",
1075
+ "invalidWorkflow": "ワークフローに循環があるため実行できません",
1076
+ "nothingToRun": "このワークフローには実行できるステップがありません",
1077
+ "noOutputsYet": "実行すると結果がここに表示されます",
1078
+ "dropFilesHere": "ここにファイルをドロップ、またはクリックしてアップロード",
1079
+ "copyText": "コピー",
1080
+ "download": "ダウンロード",
1081
+ "goToCreateMode": "作成モードへ",
1082
+ "textPlaceholder": "ここに入力…",
1083
+ "fieldType": {
1084
+ "text": "テキスト",
1085
+ "image": "画像",
1086
+ "audio": "音声",
1087
+ "video": "動画",
1088
+ "model": "3Dモデル",
1089
+ "file": "ファイル"
1090
+ }
1091
+ },
1092
+ "smartIsland": {
1093
+ "category": {
1094
+ "digitalHuman": "デジタルヒューマン",
1095
+ "artDesign": "アート&デザイン",
1096
+ "videoAd": "動画&広告",
1097
+ "docProcessing": "ドキュメント処理",
1098
+ "knowledgeLearning": "知識学習",
1099
+ "musicMV": "音楽/MV"
1100
+ },
1101
+ "enterWorkflowName": "ワークフロー名を入力",
1102
+ "saveSuccess": "保存しました!",
1103
+ "saveFailed": "保存に失敗しました。もう一度お試しください",
1104
+ "generateVideo": "動画生成",
1105
+ "generateAudio": "音声生成",
1106
+ "generateText": "テキスト生成",
1107
+ "generateImage": "画像生成",
1108
+ "generateMusic": "音楽生成",
1109
+ "generate3D": "3D生成",
1110
+ "detectPose": "ポーズ",
1111
+ "segmentBody": "身体分割",
1112
+ "estimateNormal": "法線",
1113
+ "extractForeground": "マッティング",
1114
+ "captureMotion": "モーションキャプチャ",
1115
+ "firstLastFrameVideo": "始点/終点フレーム動画",
1116
+ "confirmExecute": "実行を確認",
1117
+ "deployModalWorkers": "Modal ワーカーをデプロイ",
1118
+ "deployModalRunning": "Modal ワーカーをデプロイ中...",
1119
+ "deployModalSuccess": "Modal ワーカーのデプロイ完了",
1120
+ "deployModalFailed": "Modal のデプロイに失敗しました",
1121
+ "deployModalUnsupported": "この操作はデスクトップ版のみ対応しています",
1122
+ "saveAndExecute": "保存して実行",
1123
+ "cancel": "キャンセル",
1124
+ "executeConfirmTitle": "ワークフローの実行を確認",
1125
+ "executeConfirmDescSaved": "実行前にワークフローは最新の状態で保存されます。実行しますか?",
1126
+ "executeConfirmDescNew": "実行前にワークフローを保存してください。生成された素材は、将来の参照と管理のためにこのワークフローに関連付けられます。",
1127
+ "executeWorkflow": "ワークフローを実行",
1128
+ "saveWorkflow": "ワークフローを保存",
1129
+ "executing": "実行中...",
1130
+ "saving": "保存中...",
1131
+ "estimatedCost": "推定コスト:",
1132
+ "estimatedTime": "推定時間:",
1133
+ "workflowName": "ワークフロー名",
1134
+ "workflowNamePlaceholder": "ワークフロー名を入力",
1135
+ "workflowDescription": "ワークフローの説明",
1136
+ "workflowDescPlaceholder": "ワークフローの説明を入力(任意)",
1137
+ "tooltip3D": "3D",
1138
+ "tooltipDocument": "ドキュメント",
1139
+ "tooltipImage": "画像",
1140
+ "tooltipText": "テキスト",
1141
+ "tooltipVideo": "動画",
1142
+ "tooltipAudio": "音声",
1143
+ "tooltipLink": "リンク",
1144
+ "split": "分割",
1145
+ "splitText": "スマート分割",
1146
+ "speechRecognize": "音声認識",
1147
+ "separateAudio": "ボーカル分離",
1148
+ "separateSpeaker": "話者分離",
1149
+ "separateSound": "音を抽出",
1150
+ "denoise": "ノイズ除去",
1151
+ "convertVoice": "音声置換",
1152
+ "filter": "フィルター",
1153
+ "arrange": "配置",
1154
+ "concat": "結合",
1155
+ "describeReverse": "説明生成",
1156
+ "upscale": "HD高画質化",
1157
+ "removeSubtitle": "字幕削除",
1158
+ "removeWatermark": "透かし削除",
1159
+ "extractAudioTrack": "音声抽出",
1160
+ "removeVideoAudio": "音声を除去",
1161
+ "slice": "スライス",
1162
+ "firstFrame": "最初のフレーム",
1163
+ "lastFrame": "最後のフレーム",
1164
+ "editImage": "画像編集",
1165
+ "editVideo": "動画編集",
1166
+ "parseDocument": "ドキュメント解析",
1167
+ "extractContent": "コンテンツを抽出",
1168
+ "mergeGroup": "グループ化",
1169
+ "imageFusion": "画像合成",
1170
+ "imagesGenVideo": "参照から動画",
1171
+ "refsGenVideo": "マルチ参照動画",
1172
+ "rewriteText": "テキストリライト",
1173
+ "textToSpeech": "テキスト読み上げ",
1174
+ "textToSpeechClone": "音声生成(クローン)",
1175
+ "textToSpeechPreset": "音声生成(プリセット)",
1176
+ "textToSpeechInstruct": "音声生成(説明)",
1177
+ "motionControl": "モーション制御",
1178
+ "videoTransfer": "動画転送",
1179
+ "characterReplace": "キャラクター置換",
1180
+ "merge": "結合",
1181
+ "lipSync": "リップシンク",
1182
+ "lipDub": "吹き替え・口パク",
1183
+ "cloneVoice": "ボイスクローン",
1184
+ "speechGenVideo": "音声から動画生成",
1185
+ "repaintMusic": "リペイント",
1186
+ "coverMusic": "カバー",
1187
+ "extractStem": "ステム抽出",
1188
+ "addTrack": "トラック追加",
1189
+ "completeMusic": "編曲補完",
1190
+ "musicBrief": "音楽ブリーフ"
1191
+ },
1192
+ "toast": {
1193
+ "executing": "実行中...",
1194
+ "completed": "完了",
1195
+ "cancelled": "キャンセル済み",
1196
+ "cancelling": "キャンセル中...",
1197
+ "failed": "失敗",
1198
+ "nodes": "ノード",
1199
+ "cancelTask": "タスクをキャンセル",
1200
+ "totalDuration": "合計時間",
1201
+ "taskCompleted": "タスク完了",
1202
+ "taskFailed": "タスク失敗",
1203
+ "taskFailedWithMsg": "タスク失敗:{error}",
1204
+ "level": "レベル {level}"
1205
+ },
1206
+ "dialog": {
1207
+ "myWorkflows": "マイワークフロー",
1208
+ "noWorkflows": "ワークフローがありません",
1209
+ "savedWorkflowsHint": "保存したワークフローがここに表示されます",
1210
+ "noMore": "これ以上ワークフローはありません",
1211
+ "loadSuccess": "読み込みました!",
1212
+ "loadFailed": "読み込みに失敗しました。もう一度お試しください",
1213
+ "open": "開く"
1214
+ },
1215
+ "menu": {
1216
+ "save": "保存",
1217
+ "saveAs": "名前を付けて保存",
1218
+ "clear": "クリア",
1219
+ "confirmClear": "現在のワークフローをクリアしてもよろしいですか?この操作は元に戻せません。",
1220
+ "cleared": "ワークフローをクリアしました",
1221
+ "saveAsNew": "新規ワークフローとして保存",
1222
+ "saveWorkflow": "ワークフローを保存",
1223
+ "saveNew": "新規として保存",
1224
+ "name": "名前",
1225
+ "enterName": "ワークフロー名を入力",
1226
+ "descOptional": "説明(任意)",
1227
+ "enterDesc": "ワークフローの説明を入力",
1228
+ "saving": "保存中...",
1229
+ "update": "更新",
1230
+ "cancel": "キャンセル",
1231
+ "saveSuccess": "保存しました!",
1232
+ "saveFailed": "保存に失敗しました。もう一度お試しください",
1233
+ "exportJson": "JSON をエクスポート",
1234
+ "exportWorkflow": "ワークフローをエクスポート",
1235
+ "exportExecutable": "実行可能ファイルをエクスポート",
1236
+ "importJson": "JSON をインポート",
1237
+ "importJsonInvalid": "解析できません:JSON が無効か形式が違います。",
1238
+ "importJsonNoCanvas": "キャンバスデータがありません(originalFlow、flow、または nodes/edges が必要です)。",
1239
+ "importJsonSuccess": "ワークフローを読み込みました(ノード {nodes}、エッジ {edges})",
1240
+ "importJsonReadFailed": "ファイルの読み込みに失敗しました",
1241
+ "exportJsonSuccess": "ダウンロードを開始しました",
1242
+ "exportJsonFailed": "エクスポートに失敗しました"
1243
+ },
1244
+ "nodes": {
1245
+ "base": {
1246
+ "moreActions": "その他のオプション",
1247
+ "execute": "実行",
1248
+ "cancelExecution": "実行をキャンセル",
1249
+ "removeComment": "コメントを削除",
1250
+ "commentPlaceholder": "ユーザー向けのコメントを追加...",
1251
+ "clickToAddComment": "クリックしてコメントを追加...",
1252
+ "addComment": "コメントを追加",
1253
+ "delete": "削除",
1254
+ "deleteConfirmTitle": "削除の確認",
1255
+ "deleteConfirmDescription": "このノードには {count} 個の下流ノードがあります。削除方法を選択してください。",
1256
+ "deleteNodeOnly": "このノードのみ削除",
1257
+ "deleteNodeAndChildren": "このノードとすべての下流ノードを削除({count}個)",
1258
+ "deleteChildrenOnly": "下流ノードのみ削除({count}個)",
1259
+ "run": "実行",
1260
+ "preview": "プレビュー",
1261
+ "lock": "ノードをロック",
1262
+ "unlock": "ノードのロックを解除",
1263
+ "startCombo": "コンボを開始",
1264
+ "addToCombo": "コンボに追加",
1265
+ "removeFromCombo": "コンボから削除",
1266
+ "edit": "編集",
1267
+ "cancel": "キャンセル",
1268
+ "confirm": "確認",
1269
+ "fullscreenEdit": "フルスクリーン編集",
1270
+ "startVoice": "音声入力を開始",
1271
+ "stopVoice": "音声入力を停止",
1272
+ "editText": "テキストを編集",
1273
+ "select": "選択",
1274
+ "selected": "選択済み",
1275
+ "modalNotDeployedTitle": "Modal が未デプロイです",
1276
+ "modalNotDeployedDescription": "機能「{feature}」には Modal App「{app}」が必要です。まだデプロイされていません。今すぐデプロイしますか?",
1277
+ "modalDeployHint": "1) MODAL_TOKEN_ID / MODAL_TOKEN_SECRET を設定。2) plugins/ があることを確認する。サーバーがプラグイン注釈をメモリ上でスキャンして登録情報を作成します。3) 本機で `python -m modal` が動くことを確認(例: pip install modal)。ワンクリックデプロイはその登録情報に沿って各プラグインの deploy.py に modal deploy をかける。",
1278
+ "modalDeployDismiss": "キャンセル",
1279
+ "modalDeployAction": "ダウンロード&デプロイ",
1280
+ "modalDeploying": "Modal workers をデプロイ中…",
1281
+ "modalDeployDone": "デプロイ完了",
1282
+ "modalDeployError": "デプロイ失敗",
1283
+ "modalDeployingAction": "デプロイ中…",
1284
+ "modalDeployProgressHint": "{done}/{total} をデプロイ済み",
1285
+ "pluginImplementationTitle": "実装",
1286
+ "pluginModelTitle": "モデル",
1287
+ "pluginImplementationLoading": "プラグイン実装一覧を読み込み中…",
1288
+ "pluginImplementationEmpty": "この機能向けのプラグイン実装がスキャン結果にありません。リポジトリの plugins/ に Modal または API プラグインを追加してください(README 参照)。ページを再読み込みしてください。",
1289
+ "pluginRegistryLoadError": "プラグイン登録情報を読み込めませんでした:{message}",
1290
+ "pluginSelectPlaceholder": "リポジトリを選択…",
1291
+ "missingImplTitle": "実装が未選択",
1292
+ "missingImplDescription": "このノードに利用可能なプラグインがインストールされていません(または未選択です)。実行前に、プラグインマネージャーからインストールするか、インストール済みのプラグインを選択してください。"
1293
+ },
1294
+ "common": {
1295
+ "enterInstructions": "指示を入力してください...",
1296
+ "manualInput": "入力",
1297
+ "library": "ライブラリ",
1298
+ "addText": "テキストを追加",
1299
+ "enterText": "テキスト内容を入力...",
1300
+ "descOptional": "説明(任意)",
1301
+ "fromUpstreamText": "上流テキストノードから",
1302
+ "videoDesc": "動画の説明",
1303
+ "aspectRatio": "アスペクト比",
1304
+ "resolution": "解像度",
1305
+ "duration": "長さ",
1306
+ "currentSize": "現在のサイズ:",
1307
+ "currentDuration": "現在の長さ:",
1308
+ "upscaleTierLabel": "拡大モード(長辺)",
1309
+ "upscaleTierHint": "縦横比は入力に合わせ、長辺のみをスケールします。",
1310
+ "upscaleTier1k": "1K · ~1920",
1311
+ "upscaleTier2k": "2K · ~2560",
1312
+ "upscaleTier4k": "4K · ~3840",
1313
+ "seconds": "秒",
1314
+ "minute": "分",
1315
+ "thinkingProcess": "思考プロセス",
1316
+ "performanceMode": "パフォーマンスモード",
1317
+ "ecoMode": "💰 エコモード",
1318
+ "proMode": "⚡ プロモード",
1319
+ "modelSelect": "モデル",
1320
+ "models": {
1321
+ "imageEdit": "FLUX2 Klein 画像編集",
1322
+ "imageGen": "Z-Image テキスト生成画像",
1323
+ "imageFusion": "FLUX2 Klein 画像融合",
1324
+ "imageGenVideo": "LTX2 画像から動画",
1325
+ "features": {
1326
+ "gen-text": "デフォルト(OpenRouter)",
1327
+ "gen-text-gemini": "Gemini",
1328
+ "gen-text-openai": "OpenAI",
1329
+ "split-text": "スマート分割",
1330
+ "combine-text": "テキスト結合",
1331
+ "combine-text-openai": "テキスト結合(OpenAI)",
1332
+ "combine-text-gemini": "テキスト結合(Gemini)",
1333
+ "image-fusion": "FLUX2 Klein 融合",
1334
+ "image-gen-text": "画像キャプション",
1335
+ "video-gen-text": "動画キャプション",
1336
+ "transcribe": "音声認識",
1337
+ "transcribe-timestamp": "音声認識(タイムスタンプ)",
1338
+ "concat-videos": "動画連結",
1339
+ "extract-audio": "音声抽出",
1340
+ "remove-video-audio": "音声除去(無音動画)",
1341
+ "merge-video-audio": "動画+音声合成",
1342
+ "get-first-frame": "先頭フレーム",
1343
+ "get-last-frame": "末尾フレーム",
1344
+ "parse-document": "文書解析",
1345
+ "split-video": "シーン分割",
1346
+ "link": "URL取得",
1347
+ "gen-video": "テキストから動画",
1348
+ "image-gen": "Z-Image 文生図",
1349
+ "gen-music": "ACE-Step 音楽",
1350
+ "text-gen-speech-preset": "音声合成(プリセット)",
1351
+ "image-gen-video": "画像から動画",
1352
+ "image-edit": "FLUX2 Klein 編集",
1353
+ "image-upscale": "画像アップスケール",
1354
+ "video-upscale": "動画アップスケール",
1355
+ "image-describe": "画像理解",
1356
+ "video-describe": "動画理解",
1357
+ "audio-describe": "音声理解",
1358
+ "music-repaint": "音楽リペイント",
1359
+ "music-cover": "音楽カバー",
1360
+ "music-extract": "ステム抽出",
1361
+ "music-lego": "トラック追加",
1362
+ "music-complete": "編曲補完",
1363
+ "music-brief": "音楽ブリーフ",
1364
+ "audio-image-gen-video": "音声+画像から動画",
1365
+ "speech-text-gen-video": "音声+テキストから動画",
1366
+ "video-image-gen-video-mix": "動画+画像ミックス",
1367
+ "video-image-gen-video-move": "動画+画像モーション",
1368
+ "image-image-gen-video": "画像+画像から動画",
1369
+ "text-gen-video": "テキストから動画",
1370
+ "image-gen-model": "画像から3D",
1371
+ "speech-video-gen-video": "動画+台詞吹き替え",
1372
+ "audio-video-lip-sync": "音声+動画リップシンク",
1373
+ "text-gen-speech-clone": "ボイスクローン",
1374
+ "text-gen-speech-instruct": "指示TTS",
1375
+ "video-image-move-animal": "動画+画像(動物)",
1376
+ "video-image-move": "動画+画像(人物)",
1377
+ "video-image-move-muti": "動画+画像(マルチ)",
1378
+ "video-image-move-animal-muti": "動画+画像(動物・マルチ)",
1379
+ "wan-animate-mix": "WAN アニメート",
1380
+ "subtitle-remove": "字幕除去",
1381
+ "remove-watermark": "透かし除去",
1382
+ "denoise-audio": "ノイズ除去",
1383
+ "separate-audio-track": "ボーカル/伴奏",
1384
+ "separate-speaker": "話者分離",
1385
+ "convert-voice": "声色変換",
1386
+ "drop-video": "クリップ抽出",
1387
+ "arrange-group": "バッチ配置"
1388
+ }
1389
+ },
1390
+ "voice": "音声",
1391
+ "selectVoice": "音声を選択",
1392
+ "previewVoice": "音声をプレビュー",
1393
+ "uploadVoice": "音声をアップロード",
1394
+ "recordVoice": "音声を録音",
1395
+ "voiceClone": "音声クローン",
1396
+ "voicePreset": "プリセットスタイル",
1397
+ "voiceDescribe": "カスタム説明",
1398
+ "gender": "性别",
1399
+ "selectGender": "性别を選択(任意)",
1400
+ "emotion": "感情",
1401
+ "style": "スタイル",
1402
+ "selectEmotion": "感情を選択(任意)",
1403
+ "selectStyle": "スタイルを選択(任意)",
1404
+ "voiceDescription": "音声の説明",
1405
+ "voiceDescriptionPlaceholder": "音声スタイルの説明を入力してください。例:優しく甘い女性の声、ゆっくり話す...",
1406
+ "referenceAudio": "参照音声",
1407
+ "noReferenceAudio": "参照音声をアップロードまたは録音してください(3秒以上)",
1408
+ "referenceText": "参照テキスト",
1409
+ "referenceTextPlaceholder": "任意:参照音声の書き起こしテキスト。クローン品質の向上に役立ちます",
1410
+ "referenceTextCloneHint": "空欄の場合は x-vector クローン。転写テキストを入力すると ICL 高品質クローンになります",
1411
+ "language": "言語",
1412
+ "inputText": "テキスト入力",
1413
+ "voiceOptions": {
1414
+ "female": "女性の声",
1415
+ "male": "男性の声"
1416
+ }
1417
+ },
1418
+ "titles": {
1419
+ "imageGenVideo": "画像から動画",
1420
+ "textGenVideo": "テキストから動画",
1421
+ "addText": "テキストを追加",
1422
+ "textGenText": "テキスト生成",
1423
+ "combineText": "テキスト結合",
1424
+ "textGenImage": "テキストから画像",
1425
+ "textGenSpeechClone": "音声生成(クローン)",
1426
+ "textGenSpeechCloneCompose": "ボイスクローン(テキスト+参考音声)",
1427
+ "imageGenVideoCompose": "画像から動画(テキスト+画像)",
1428
+ "textGenSpeechPreset": "音声生成(プリセット)",
1429
+ "textGenSpeechInstruct": "音声生成(説明)",
1430
+ "imageFusion": "画像合成",
1431
+ "videoUpscale": "動画高画質化",
1432
+ "videoGenText": "動画説明",
1433
+ "speechRecognize": "音声認識",
1434
+ "textGenMusic": "テキストから音楽",
1435
+ "speechGenVideo": "音声から動画",
1436
+ "convertVoice": "音声変換",
1437
+ "denoiseAudio": "音声ノイズ除去",
1438
+ "fileGenText": "ドキュメント解析",
1439
+ "linkGenText": "リンク抽出",
1440
+ "removeSubtitle": "字幕削除",
1441
+ "removeWatermark": "透かし削除",
1442
+ "separateAudio": "映像・音声の分離",
1443
+ "imageGenText": "画像説明",
1444
+ "audioDescribe": "音声理解",
1445
+ "imageGenImage": "画像編集",
1446
+ "videoEdit": "動画編集",
1447
+ "imageGenModel": "画像から3Dモデル",
1448
+ "imagePose": "ポーズ検出",
1449
+ "imageBodySeg": "身体部位セグメンテーション",
1450
+ "imageNormal": "表面法線",
1451
+ "imageMatting": "人物マッティング",
1452
+ "videoGenModel": "ビデオモーションキャプチャ",
1453
+ "imageUpscale": "HD高画質化",
1454
+ "separateTrack": "ボーカル抽出",
1455
+ "separateSpeaker": "話者分離",
1456
+ "separateSound": "音の分離",
1457
+ "speechImageGenVideo": "音声+画像から動画",
1458
+ "concatVideo": "動画結合",
1459
+ "mergeVideoAudio": "動画と音声を結合",
1460
+ "audioVideoLipSync": "動画リップシンク",
1461
+ "speechTextGenVideo": "音声+テキストから動画",
1462
+ "speechVideoGenVideo": "動画吹き替え・口パク",
1463
+ "imageImageGenVideo": "始点/終点フレーム動画",
1464
+ "imagesGenVideo": "複数画像から動画",
1465
+ "refsGenVideo": "マルチ参照から動画",
1466
+ "textAudioGenSpeech": "テキスト+音声から音声",
1467
+ "videoImageMix": "動画+画像ミックス",
1468
+ "videoImageMove": "動画+画像移動",
1469
+ "splitVideo": "動画分割",
1470
+ "splitText": "スマート分割",
1471
+ "getFirstFrame": "最初のフレーム",
1472
+ "getLastFrame": "最後のフレーム",
1473
+ "extractAudioTrack": "音声抽出",
1474
+ "removeVideoAudio": "音声除去(無音動画)",
1475
+ "musicRepaint": "音楽リペイント",
1476
+ "musicCover": "音楽カバー",
1477
+ "musicExtract": "ステム抽出",
1478
+ "musicLego": "トラック追加",
1479
+ "musicComplete": "編曲補完",
1480
+ "musicBrief": "音楽ブリーフ"
1481
+ },
1482
+ "options": {
1483
+ "portrait": "縦向き",
1484
+ "landscape": "横向き",
1485
+ "square": "正方形",
1486
+ "standard": "標準",
1487
+ "verticalStandard": "縦向き標準",
1488
+ "human": "人物",
1489
+ "animal": "動物",
1490
+ "single": "一人",
1491
+ "multi": "複数人"
1492
+ },
1493
+ "actions": {
1494
+ "generateVideo": "動画を生成",
1495
+ "generateImage": "画像を生成",
1496
+ "generateSpeech": "音声を生成",
1497
+ "startFusion": "合成を開始",
1498
+ "convertText": "テキストに変換",
1499
+ "startUpscale": "高画質化を開始",
1500
+ "describeVideo": "動画を説明",
1501
+ "recognizeSpeech": "音声を認識",
1502
+ "generateMusic": "音楽を生成",
1503
+ "generateAudio": "音声を生成",
1504
+ "startReplace": "置換を開始",
1505
+ "startDenoise": "ノイズ除去を開始",
1506
+ "parseDocument": "ドキュメントを解析",
1507
+ "extractContent": "コンテンツを抽出",
1508
+ "removeSubtitle": "字幕を削除",
1509
+ "removeWatermark": "透かしを削除",
1510
+ "compressVideo": "動画を圧縮",
1511
+ "extractAudio": "分離を開始",
1512
+ "describeImage": "画像を説明",
1513
+ "describeAudio": "音声を説明",
1514
+ "editImage": "画像を編集",
1515
+ "editVideo": "動画を編集",
1516
+ "generate3DModel": "3Dモデルを生成",
1517
+ "detectPose": "ポーズを検出",
1518
+ "segmentBody": "身体部位を分割",
1519
+ "estimateNormal": "法線を推定",
1520
+ "extractForeground": "前景を抽出",
1521
+ "captureMotion": "モーションをキャプチャ",
1522
+ "imageUpscale": "HD高画質化",
1523
+ "extractVocals": "ボーカルを抽出",
1524
+ "startSeparation": "分離を開始",
1525
+ "concatVideo": "動画を結合",
1526
+ "startMerge": "結合を開始",
1527
+ "lipDub": "吹き替え・口パク",
1528
+ "motionTrackGenerate": "軌跡で生成",
1529
+ "splitVideo": "動画を分割",
1530
+ "splitText": "スマート分割",
1531
+ "getFirstFrame": "最初のフレームを取得",
1532
+ "getLastFrame": "最後のフレームを取得",
1533
+ "extractAudioTrack": "音声を抽出",
1534
+ "removeVideoAudio": "音声を除去",
1535
+ "repaintMusic": "リペイント開始",
1536
+ "coverMusic": "カバー生成",
1537
+ "extractStem": "抽出開始",
1538
+ "separateSound": "分離開始",
1539
+ "addTrack": "トラック生成",
1540
+ "completeMusic": "補完開始",
1541
+ "musicBrief": "ブリーフ生成"
1542
+ },
1543
+ "params": {
1544
+ "prompt": "プロンプト",
1545
+ "model": "モデル",
1546
+ "modelDefault": "デフォルト (OpenRouter 無料ルーター)",
1547
+ "geminiModel": "Gemini モデル",
1548
+ "openaiModel": "OpenAI モデル",
1549
+ "style": "スタイル",
1550
+ "sampler": "サンプラー",
1551
+ "seed": "シード",
1552
+ "steps": "ステップ",
1553
+ "cfg": "CFGスケール"
1554
+ },
1555
+ "emotions": {
1556
+ "none": "なし",
1557
+ "happy": "嬉しい",
1558
+ "angry": "怒り",
1559
+ "sad": "悲しい",
1560
+ "fear": "恐怖",
1561
+ "surprised": "驚き",
1562
+ "confusion": "困惑",
1563
+ "empathy": "共感",
1564
+ "embarrass": "恥ずかしい",
1565
+ "excited": "興奮",
1566
+ "depressed": "落ち込み",
1567
+ "admiration": "感嘆",
1568
+ "coldness": "冷淡"
1569
+ },
1570
+ "genders": {
1571
+ "none": "なし",
1572
+ "male": "男性",
1573
+ "female": "女性"
1574
+ },
1575
+ "styles": {
1576
+ "none": "なし",
1577
+ "serious": "真剣",
1578
+ "arrogant": "傲慢",
1579
+ "child": "子供",
1580
+ "older": "年配",
1581
+ "girl": "少女",
1582
+ "pure": "純粋",
1583
+ "sister": "お姉さん",
1584
+ "sweet": "甘い",
1585
+ "exaggerated": "オーバー",
1586
+ "ethereal": "幻想的",
1587
+ "whisper": "囁き",
1588
+ "generous": "寛大",
1589
+ "recite": "朗読",
1590
+ "act_coy": "甘え",
1591
+ "warm": "温かい",
1592
+ "shy": "恥ずかしがり",
1593
+ "comfort": "癒し",
1594
+ "authority": "権威",
1595
+ "chat": "雑談",
1596
+ "radio": "ラジオ",
1597
+ "soulful": "ソウルフル",
1598
+ "gentle": "優しい",
1599
+ "story": "物語",
1600
+ "vivid": "生き生き",
1601
+ "program": "司会",
1602
+ "news": "ニュース",
1603
+ "advertising": "広告",
1604
+ "roar": "咆哮",
1605
+ "murmur": "つぶやき",
1606
+ "shout": "叫び",
1607
+ "deeply": "深い",
1608
+ "loudly": "大声"
1609
+ },
1610
+ "recorder": {
1611
+ "title": "音声を録音",
1612
+ "desc": "音声合成の参照用にオーディオクリップを録音",
1613
+ "start": "録音開始",
1614
+ "stop": "録音停止",
1615
+ "preview": "プレビュー",
1616
+ "retry": "やり直し",
1617
+ "uploading": "アップロード中...",
1618
+ "confirm": "確認",
1619
+ "cancel": "キャンセル",
1620
+ "recording": "録音中...",
1621
+ "recorded": "録音完了",
1622
+ "micError": "マイクにアクセスできません。権限を確認してください",
1623
+ "uploadError": "アップロードに失敗しました。もう一度お試しください",
1624
+ "uploadFailed": "アップロード失敗"
1625
+ },
1626
+ "imageFusion": {
1627
+ "loading": "読み込み中...",
1628
+ "imageReference": "画像参照",
1629
+ "imageReferenceHint": "画像をクリックしてプロンプトに参照を挿入",
1630
+ "fusionPrompt": "合成プロンプト",
1631
+ "fusionPromptPlaceholder": "合成の指示を入力してください。例:画像1のスタイルを維持、すべての画像の特徴を合成、画像2の色を強調、画像3の構図を組み合わせ...",
1632
+ "imageLabel": "画像"
1633
+ },
1634
+ "refsGenVideo": {
1635
+ "videoReference": "動画参照",
1636
+ "videoLabel": "動画",
1637
+ "audioReference": "音声参照",
1638
+ "audioLabel": "音声",
1639
+ "referenceHint": "画像は最大9枚、動画3本、音声3本(合計12ファイル)。音声は画像か動画と組み合わせてください。サムネイルをクリックするとプロンプトに参照を挿入できます。",
1640
+ "promptPlaceholder": "生成したい動画を記述してください。例:画像1のキャラクターが音声1の声で話し、動画1のシーンを引き継ぐ…"
1641
+ },
1642
+ "video": { "fileCount": "処理するファイル:" },
1643
+ "speechRecognize": { "withTimestamp": "タイムスタンプ付き" },
1644
+ "music": {
1645
+ "handleStyle": "スタイル",
1646
+ "handleLyric": "歌詞",
1647
+ "referenceAudio": "参照音声",
1648
+ "inputLyrics": "歌詞を入力",
1649
+ "fromUpstreamReadonly": "上流から(読み取り専用)",
1650
+ "lyricsPlaceholder": "歌詞入力未接続時に入力",
1651
+ "audioDuration": "音声の長さ",
1652
+ "currentDuration": "現在の長さ:",
1653
+ "seconds": "秒",
1654
+ "15s": "15秒",
1655
+ "30s": "30秒",
1656
+ "1min": "1分",
1657
+ "2min": "2分",
1658
+ "language": "言語",
1659
+ "keyscale": "キー",
1660
+ "bpm": "BPM",
1661
+ "auto": "自動"
1662
+ },
1663
+ "musicTasks": {
1664
+ "promptLabel": "キャプション",
1665
+ "promptPlaceholder": "音楽のスタイル、雰囲気、楽器などを記述...",
1666
+ "lyricsLabel": "歌詞",
1667
+ "lyricsPlaceholder": "歌詞(任意)...",
1668
+ "startTime": "開始(秒)",
1669
+ "endTime": "終了(秒)",
1670
+ "strength": "強度",
1671
+ "track": "トラック",
1672
+ "tracks": "追加するトラック",
1673
+ "instrumental": "インストゥルメンタル",
1674
+ "ideaPlaceholder": "作りたい曲を一文で記述...",
1675
+ "sourceAudio": "元の曲",
1676
+ "refAudio": "リファレンス音声",
1677
+ "trackOptions": {
1678
+ "vocals": "ボーカル",
1679
+ "backing_vocals": "コーラス",
1680
+ "drums": "ドラム",
1681
+ "percussion": "パーカッション",
1682
+ "bass": "ベース",
1683
+ "guitar": "ギター",
1684
+ "keyboard": "キーボード",
1685
+ "synth": "シンセ",
1686
+ "strings": "ストリングス",
1687
+ "brass": "ブラス",
1688
+ "woodwinds": "木管楽器",
1689
+ "fx": "効果音"
1690
+ }
1691
+ },
1692
+ "speechGenVideo": {
1693
+ "loading": "読み込み中...",
1694
+ "inputContent": "入力内容",
1695
+ "audio": "音声",
1696
+ "connectAudioHint": "音声ノードを接続するか、音声ファイルをアップロードしてください",
1697
+ "audioPromptLabel": "音声プロンプト",
1698
+ "audioPromptPlaceholder": "音声吹き替えのプロンプトを入力"
1699
+ },
1700
+ "convertVoice": {
1701
+ "voiceLabel": "音声:",
1702
+ "selectVoice": "音声を選択",
1703
+ "previewVoice": "音声をプレビュー",
1704
+ "uploadVoice": "音声をアップロード",
1705
+ "recordVoice": "音声を録音",
1706
+ "recordAudio": "音声を録音",
1707
+ "recordHint": "ここで音声を録音できます。",
1708
+ "recordNeedImpl": "音声録音機能は実装が必要です",
1709
+ "done": "完了"
1710
+ },
1711
+ "removeWatermark": { "hint": "Sora動画の透かしを自動検出して削除" },
1712
+ "videoGenText": {
1713
+ "promptLabel": "カスタムプロンプト",
1714
+ "promptPlaceholder": "デフォルトのプロンプトを使用する場合は空白のままにするか、カスタム指示を入力してください。例:動画の会話内容のみを説明..."
1715
+ },
1716
+ "imageGenText": {
1717
+ "promptLabel": "カスタムプロンプト",
1718
+ "promptPlaceholder": "デフォルトを使う場合は空白のまま。例:被写体・雰囲気・画像内の文字のみを説明..."
1719
+ },
1720
+ "audioDescribe": {
1721
+ "promptLabel": "カスタムプロンプト",
1722
+ "promptPlaceholder": "空欄でデフォルトプロンプトを使用。ジャンル・雰囲気・楽器・ボーカルの説明など、カスタム指示も入力可能…"
1723
+ },
1724
+ "textGenText": { "instructions": "指示" },
1725
+ "lipDub": {
1726
+ "targetDialogue": "目標台詞(プロンプト)",
1727
+ "targetDialoguePlaceholder": "キャラクター説明と目標言語の台詞を含む完全なプロンプト(自動翻訳なし)",
1728
+ "promptHint": "解像度は参照動画に合わせます。キャラクター+目標言語の台詞を含む完全なプロンプト(自動翻訳なし)。長さは原動画に近づけ、話者1人のみ。"
1729
+ },
1730
+ "motionTrack": {
1731
+ "connectHint": "先頭フレーム画像、参考動画(動きを自動抽出して転写)、テキストプロンプト(見た目・スタイルのみ)を接続してください。",
1732
+ "controlVideo": "参考動画",
1733
+ "promptPlaceholder": "見た目とスタイルを記述。動きは参考動画から自動抽出されます。",
1734
+ "promptHint": "プロンプトは見た目・スタイルのみ。動きは参考動画から自動抽出されます。長さスライダーは参考動画の上限です。",
1735
+ "missing": "あと必要: {items}"
1736
+ },
1737
+ "lipSync": {
1738
+ "scenePrompt": "シーン説明(任意)",
1739
+ "scenePromptPlaceholder": "画面と話者を記述。口パクは接続した音声に同期します。台詞全文はここに書かないでください。",
1740
+ "audioDrivenHint": "口パクと音声は音声入力に従います。音声の長さは参照動画に近づけてください。出力は既定 720p。"
1741
+ },
1742
+ "imageEdit": {
1743
+ "performanceMode": "パフォーマンスモード",
1744
+ "ecoMode": "💰 エコ(FLUX.2 Klein 9B)",
1745
+ "proMode": "⚡ プロモード",
1746
+ "editInstruction": "編集指示",
1747
+ "fromUpstream": "(上流ノードから)",
1748
+ "editPlaceholder": "画像編集の指示を入力してください。例:コントラストを上げる、色温度を暖色に調整、ディテールを強調"
1749
+ },
1750
+ "videoEdit": {
1751
+ "editInstruction": "編集指示",
1752
+ "fromUpstream": "(上流ノードから)",
1753
+ "editPlaceholder": "動画編集の指示を入力してください。例:字幕を除去、水彩風スタイルを適用、空を夕焼けに変更",
1754
+ "connectTextVideo": "テキストノードと動画ノードを接続してください"
1755
+ },
1756
+ "compose": {
1757
+ "loading": "読み込み中...",
1758
+ "mediaFiles": "メディアファイル",
1759
+ "image": "画像",
1760
+ "audio": "音声",
1761
+ "video": "動画",
1762
+ "text": "テキスト",
1763
+ "noText": "テキストなし",
1764
+ "inputContent": "入力内容",
1765
+ "videoFiles": "動画ファイル",
1766
+ "connectImageAudio": "画像と音声ファイルを接続してください",
1767
+ "connectVideo": "少なくとも1つの動画ファイルを接続してください",
1768
+ "connectImageVideoAudio": "画像、動画、音声ファイルを接続してください",
1769
+ "connectTextAudio": "テキスト内容と音声ファイルを接続してください",
1770
+ "connectTextReferenceAudio": "テキストノードと音声ノード(参考音声)を接続してください",
1771
+ "connectTextImage": "テキストノードと画像ノードを接続してください",
1772
+ "connectTextVideoNode": "動画ノードとテキストノードを接続してください(目標台詞はプロンプトに記載)",
1773
+ "referenceAudio": "参考音声",
1774
+ "referenceTextOptional": "参照テキスト(任意・クローン品質向上)",
1775
+ "connectVideoAudio": "動画と音声ファイルを接続してください",
1776
+ "generatePromptLabel": "生成プロンプト",
1777
+ "generatePromptPlaceholder": "動画生成プロンプトを入力:内容、スタイル、アクションなどを説明(任意)",
1778
+ "inputText": "テキスト入力",
1779
+ "inputTextPlaceholder": "テキスト内容を入力",
1780
+ "describeVideo": "生成したい動画を説明...",
1781
+ "firstFrame": "最初のフレーム",
1782
+ "lastFrame": "最後のフレーム",
1783
+ "connectTwoImages": "2つの画像を接続してください(最初と最後のフレーム)",
1784
+ "inputData": "入力データ",
1785
+ "connectTextAudioNode": "テキストと音声ノードを接続してください",
1786
+ "emotion": "感情:",
1787
+ "style": "スタイル:",
1788
+ "selectEmotion": "感情スタイルを選択(任意)",
1789
+ "selectStyle": "音声スタイルを選択(任意)",
1790
+ "lipSync": "リップシンク",
1791
+ "connectImageVideo": "画像と動画ファイルを接続してください",
1792
+ "startSlice": "スライス開始"
1793
+ },
1794
+ "modal": {
1795
+ "audioPreview": "音声プレビュー",
1796
+ "audio": "音声",
1797
+ "audios": "音声({count})",
1798
+ "loading": "読み込み中...",
1799
+ "unavailable": "コンテンツを読み込めません",
1800
+ "more": "もっと見る",
1801
+ "moreOptions": "その他のオプション",
1802
+ "actions": "アクション",
1803
+ "textPreview": "テキストプレビュー",
1804
+ "text": "テキスト",
1805
+ "texts": "テキスト({count})",
1806
+ "imagePreview": "画像プレビュー",
1807
+ "image": "画像",
1808
+ "images": "画像({count})",
1809
+ "videoPreview": "動画プレビュー",
1810
+ "video": "動画",
1811
+ "videos": "動画({count})",
1812
+ "file": "ファイル",
1813
+ "files": "ファイル({count})",
1814
+ "link": "リンク",
1815
+ "links": "リンク({count})",
1816
+ "fullScreenPreview": "フルスクリーンプレビュー",
1817
+ "fullScreenWaterfall": "フルスクリーンウォーターフォールプレビュー",
1818
+ "model3DPreview": "3Dモデルプレビュー",
1819
+ "model3D": "3Dモデル",
1820
+ "models3D": "3Dモデル({count})",
1821
+ "resetView": "ビューをリセット",
1822
+ "playAnimation": "アニメーションを再生",
1823
+ "pauseAnimation": "アニメーションを一時停止",
1824
+ "downloadModel": "モデルをダウンロード",
1825
+ "loading3DModel": "3Dモデルを読み込み中...",
1826
+ "errorLoadingModel": "モデルの読み込みエラー",
1827
+ "dragToRotate": "左クリック+ドラッグで回転 | スクロールでズーム | リセットでセンタリング",
1828
+ "noModelLoaded": "3Dモデルが読み込まれていません",
1829
+ "loadingPreview": "プレビューを読み込み中...",
1830
+ "unsupportedFormat": "サポートされていない形式",
1831
+ "supportedFormats": "サポート形式",
1832
+ "download": "ダウンロード",
1833
+ "textEditor": "テキストエディター",
1834
+ "enterText": "テキストを入力してください..."
1835
+ },
1836
+ "add": {
1837
+ "addAudio": "音声を追加",
1838
+ "addImage": "画像を追加",
1839
+ "addVideo": "動画を追加",
1840
+ "addText": "テキストを追加",
1841
+ "addFile": "ファイルを追加",
1842
+ "addModel": "3Dモデルを追加",
1843
+ "addLink": "リンクを追加",
1844
+ "record": "録音",
1845
+ "recordVideo": "録画",
1846
+ "upload": "アップロード",
1847
+ "library": "ライブラリ",
1848
+ "recorded": "録音済み",
1849
+ "uploading": "アップロード中",
1850
+ "confirmAndUpload": "確認してアップロード",
1851
+ "dropToUpload": "ファイルをドロップしてアップロード",
1852
+ "dragOrClick": "ファイルをここにドラッグするか、クリックしてアップロード",
1853
+ "supportedAudioFormats": "MP3、WAV、OGG、M4Aをサポート",
1854
+ "supportedImageFormats": "一般的な画像形式をサポート",
1855
+ "supportedVideoFormats": "MP4、MOV、WEBMをサポート",
1856
+ "browseFiles": "ファイルを参照",
1857
+ "canvas": "キャンバス",
1858
+ "camera": "カメラ",
1859
+ "openCanvas": "キャンバスを開く",
1860
+ "canvasDrawing": "キャンバス描画",
1861
+ "canvasDrawingHint": "下のキャンバスに描画してから、完了をクリックして保存",
1862
+ "clearCanvas": "キャンバスをクリア",
1863
+ "finishAndSave": "完了して保存",
1864
+ "clickToStartCamera": "クリックしてカメラを起動",
1865
+ "takePhoto": "写真を撮る",
1866
+ "closeCamera": "カメラを閉じる",
1867
+ "cameraError": "カメラにアクセスできません",
1868
+ "cameraErrorHint": "確認してください:1. HTTPSまたはlocalhostを使用 2. カメラの権限を許可 3. カメラが他のアプリで使用されていない",
1869
+ "inputText": "テキスト入力",
1870
+ "textPlaceholder": "テキスト内容を入力してください...",
1871
+ "generate": "確認",
1872
+ "linkPlaceholder": "リンクを入力してください",
1873
+ "extractContent": "コンテンツを抽出",
1874
+ "cancel": "キャンセル",
1875
+ "startRecordingVideo": "動画録画を開始",
1876
+ "addDocument": "ドキュメントを追加",
1877
+ "supportedDocFormats": "複数のドキュメント形式をサポート",
1878
+ "dragModel": "3Dモデルファイルをここにドラッグするか、クリックしてアップロード",
1879
+ "supportedModelFormats": "サポート形式",
1880
+ "modelHint": "ヒント:以下の3Dファイル形式をサポート:"
1881
+ },
1882
+ "batch": {
1883
+ "arrangeGroup": "グループを配置",
1884
+ "startArrange": "配置を開始",
1885
+ "describeRequirements": "要件を説明...",
1886
+ "groupCount": "グループ数",
1887
+ "allowDuplicate": "重複を許可",
1888
+ "videoFilter": "動画フィルター",
1889
+ "startFilter": "フィルターを開始"
1890
+ },
1891
+ "voice": {
1892
+ "timbre": "音声:",
1893
+ "selectTimbre": "音声を選択",
1894
+ "previewTimbre": "現在の音声をプレビュー",
1895
+ "uploadTimbre": "音声をアップロード",
1896
+ "recordTimbre": "音声を録音",
1897
+ "emotion": "感情:",
1898
+ "replaceTimbre": "音声を置換"
1899
+ },
1900
+ "separateSound": {
1901
+ "textLabel": "抽出したい音",
1902
+ "textPlaceholder": "例:犬の鳴き声、ピアノ、背景のサイレン"
1903
+ }
1904
+ }
1905
+ },
1906
+ Upload: {
1907
+ "failed": "アップロードに失敗しました。後で再試行してください",
1908
+ "fileFailed": "ファイル \"{name}\" のアップロードに失敗しました:{reason}",
1909
+ "partialFailed": "一部またはすべてのファイルのアップロードに失敗しました",
1910
+ "maxFilesExceeded": "最大 {max} 個のファイルまで許可されています",
1911
+ "fileTooLarge": "ファイル \"{name}\" が大きすぎます(最大 {max}MB)",
1912
+ "fileTypeNotAccepted": "ファイル \"{name}\" の種類はサポートされていません",
1913
+ "readImageFailed": "画像情報の読み取りに失敗しました",
1914
+ "readVideoFailed": "動画情報の読み取りに失敗しました"
1915
+ },
1916
+ LibInput: {
1917
+ "deleteSuccess": "素材を削除しました",
1918
+ "deleteFailed": "削除に失敗しました",
1919
+ "emptyText": "空のテキスト",
1920
+ "loadFailed": "素材の読み込みに失敗しました",
1921
+ "added": "素材を追加しました",
1922
+ "retry": "再試行",
1923
+ "emptyMaterial": "{type}素材がまだありません",
1924
+ "typeImage": "画像",
1925
+ "typeVideo": "動画",
1926
+ "typeAudio": "音声",
1927
+ "typeText": "テキスト",
1928
+ "typeFile": "ファイル",
1929
+ "typeModel": "モデル",
1930
+ "favoriteHint": "ノードの ❤️ アイコンをクリックして素材をお気に入りに追加",
1931
+ "portfolio": "ポートフォリオ"
1932
+ },
1933
+ Recorder: {
1934
+ "audioStart": "録音開始",
1935
+ "audioCancel": "キャンセル",
1936
+ "audioCancelTooltip": "録音をキャンセル",
1937
+ "audioFinish": "完了",
1938
+ "audioFinishTooltip": "録音を完了",
1939
+ "audioPermissionError": "マイクにアクセスできません。権限を許可してください。",
1940
+ "videoPermissionError": "カメラとマイクにアクセスできません。権限を許可してください。",
1941
+ "videoStart": "録画開始",
1942
+ "videoStop": "録画停止"
1943
+ },
1944
+ Languages: {
1945
+ "auto": "自動",
1946
+ "zh": "中国語",
1947
+ "ja": "日本語",
1948
+ "yue": "広東語",
1949
+ "en": "英語",
1950
+ "ko": "韓国語",
1951
+ "fr": "フランス語",
1952
+ "es": "スペイン語",
1953
+ "de": "ドイツ語",
1954
+ "ru": "ロシア語",
1955
+ "pt": "ポルトガル語",
1956
+ "it": "イタリア語"
1957
+ },
1958
+ Errors: {
1959
+ "somethingWentWrong": "問題が発生しました",
1960
+ "tryAgain": "再試行",
1961
+ "details": "詳細",
1962
+ "copy": "コピー",
1963
+ "copied": "コピーしました",
1964
+ "close": "閉じる",
1965
+ "needHelp": "解決しない場合はこちらへ:",
1966
+ "wechatGroup": "WeChat グループ",
1967
+ "wechatQrAlt": "WeChat グループの QR コード"
1968
+ },
1969
+ Api: {
1970
+ "unknownError": "不明なエラー",
1971
+ "unauthorized": "認証されていません",
1972
+ "accessDenied": "アクセスが拒否されました",
1973
+ "requestFailed": "リクエスト失敗:{status} {statusText}",
1974
+ "success": "成功しました",
1975
+ "timedOut": "リクエストがタイムアウトしました。再試行してください"
1976
+ }
1977
+ };
1978
+ //#endregion
1979
+ //#region src/canvas/i18n/messages/ko.json
1980
+ var ko_default = {
1981
+ Workspace: {
1982
+ "edges": {
1983
+ "deleteConfirmTitle": "연결을 삭제하시겠습니까?",
1984
+ "deleteConfirmDescription": "이 연결은 어떤 노드에도 연결되어 있지 않습니다. 삭제하시겠습니까?",
1985
+ "delete": "삭제",
1986
+ "cancel": "취소"
1987
+ },
1988
+ "handles": {
1989
+ "text": "텍스트",
1990
+ "image": "이미지",
1991
+ "image2": "이미지 2",
1992
+ "images": "이미지",
1993
+ "end_image": "끝 이미지",
1994
+ "video": "비디오",
1995
+ "videos": "비디오",
1996
+ "audio": "오디오",
1997
+ "speech": "음성",
1998
+ "ref_audio": "참조 오디오",
1999
+ "ref_text": "참조 텍스트",
2000
+ "document": "문서",
2001
+ "byFeature": { "image-image-gen-video": {
2002
+ "image": "첫 프레임",
2003
+ "end_image": "마지막 프레임"
2004
+ } }
2005
+ },
2006
+ "modeSwitch": {
2007
+ "createMode": "생성 모드",
2008
+ "executeMode": "실행 모드",
2009
+ "appMode": "앱 모드",
2010
+ "upgradeRequired": "실행 모드를 사용하려면 업그레이드하세요"
2011
+ },
2012
+ "appView": {
2013
+ "inputsTitle": "입력",
2014
+ "outputsTitle": "결과",
2015
+ "run": "실행",
2016
+ "cancel": "중지",
2017
+ "stepProgress": "{current}/{total} 단계",
2018
+ "completed": "완료",
2019
+ "failed": "실행에 실패했습니다",
2020
+ "emptyWorkflow": "캔버스가 비어 있습니다. 먼저 워크플로를 만들어 주세요",
2021
+ "invalidWorkflow": "워크플로에 순환 연결이 있어 실행할 수 없습니다",
2022
+ "nothingToRun": "이 워크플로에는 실행할 단계가 없습니다",
2023
+ "noOutputsYet": "실행하면 결과가 여기에 표시됩니다",
2024
+ "dropFilesHere": "파일을 여기에 끌어다 놓거나 클릭해서 업로드",
2025
+ "copyText": "복사",
2026
+ "download": "다운로드",
2027
+ "goToCreateMode": "생성 모드로 이동",
2028
+ "textPlaceholder": "여기에 입력…",
2029
+ "fieldType": {
2030
+ "text": "텍스트",
2031
+ "image": "이미지",
2032
+ "audio": "오디오",
2033
+ "video": "비디오",
2034
+ "model": "3D 모델",
2035
+ "file": "파일"
2036
+ }
2037
+ },
2038
+ "smartIsland": {
2039
+ "category": {
2040
+ "digitalHuman": "디지털 휴먼",
2041
+ "artDesign": "아트 & 디자인",
2042
+ "videoAd": "비디오 & 광고",
2043
+ "docProcessing": "문서 처리",
2044
+ "knowledgeLearning": "지식 학습",
2045
+ "musicMV": "음악/MV"
2046
+ },
2047
+ "enterWorkflowName": "워크플로 이름 입력",
2048
+ "saveSuccess": "저장되었습니다!",
2049
+ "saveFailed": "저장에 실패했습니다. 다시 시도해 주세요",
2050
+ "generateVideo": "비디오 생성",
2051
+ "generateAudio": "오디오 생성",
2052
+ "generateText": "텍스트 생성",
2053
+ "generateImage": "이미지 생성",
2054
+ "generateMusic": "음악 생성",
2055
+ "generate3D": "3D 생성",
2056
+ "detectPose": "포즈",
2057
+ "segmentBody": "신체 분할",
2058
+ "estimateNormal": "노멀",
2059
+ "extractForeground": "매팅",
2060
+ "captureMotion": "모션 캡처",
2061
+ "firstLastFrameVideo": "첫/마지막 프레임 비디오",
2062
+ "confirmExecute": "실행 확인",
2063
+ "deployModalWorkers": "Modal 워커 배포",
2064
+ "deployModalRunning": "Modal 워커 배포 중...",
2065
+ "deployModalSuccess": "Modal 워커가 배포되었습니다",
2066
+ "deployModalFailed": "Modal 배포 실패",
2067
+ "deployModalUnsupported": "이 작업은 데스크톱 앱에서만 사용할 수 있습니다",
2068
+ "saveAndExecute": "저장 후 실행",
2069
+ "cancel": "취소",
2070
+ "executeConfirmTitle": "워크플로 실행 확인",
2071
+ "executeConfirmDescSaved": "실행 전에 워크플로가 최신 상태로 저장됩니다. 실행하시겠습니까?",
2072
+ "executeConfirmDescNew": "실행 전에 워크플로를 저장하세요. 생성된 자료는 향후 참조 및 관리를 위해 이 워크플로와 연결됩니다.",
2073
+ "executeWorkflow": "워크플로 실행",
2074
+ "saveWorkflow": "워크플로 저장",
2075
+ "executing": "실행 중...",
2076
+ "saving": "저장 중...",
2077
+ "estimatedCost": "예상 비용:",
2078
+ "estimatedTime": "예상 시간:",
2079
+ "workflowName": "워크플로 이름",
2080
+ "workflowNamePlaceholder": "워크플로 이름 입력",
2081
+ "workflowDescription": "워크플로 설명",
2082
+ "workflowDescPlaceholder": "워크플로 설명 입력(선택 사항)",
2083
+ "tooltip3D": "3D",
2084
+ "tooltipDocument": "문서",
2085
+ "tooltipImage": "이미지",
2086
+ "tooltipText": "텍스트",
2087
+ "tooltipVideo": "비디오",
2088
+ "tooltipAudio": "오디오",
2089
+ "tooltipLink": "링크",
2090
+ "split": "분할",
2091
+ "splitText": "스마트 분할",
2092
+ "speechRecognize": "음성 인식",
2093
+ "separateAudio": "보컬 분리",
2094
+ "separateSpeaker": "화자 분리",
2095
+ "separateSound": "소리 추출",
2096
+ "denoise": "노이즈 제거",
2097
+ "convertVoice": "음성 교체",
2098
+ "filter": "필터",
2099
+ "arrange": "배치",
2100
+ "concat": "연결",
2101
+ "describeReverse": "설명",
2102
+ "upscale": "고화질 업스케일",
2103
+ "removeSubtitle": "자막 제거",
2104
+ "removeWatermark": "워터마크 제거",
2105
+ "extractAudioTrack": "오디오 트랙 추출",
2106
+ "removeVideoAudio": "오디오 제거",
2107
+ "slice": "슬라이스",
2108
+ "firstFrame": "첫 프레임",
2109
+ "lastFrame": "마지막 프레임",
2110
+ "editImage": "이미지 편집",
2111
+ "editVideo": "비디오 편집",
2112
+ "parseDocument": "문서 파싱",
2113
+ "extractContent": "콘텐츠 추출",
2114
+ "mergeGroup": "그룹 병합",
2115
+ "imageFusion": "이미지 융합",
2116
+ "imagesGenVideo": "참조 이미지로 비디오 생성",
2117
+ "refsGenVideo": "옴니 참조 비디오",
2118
+ "rewriteText": "텍스트 재작성",
2119
+ "textToSpeech": "텍스트 음성 변환",
2120
+ "textToSpeechClone": "음성 생성(복제)",
2121
+ "textToSpeechPreset": "음성 생성(프리셋)",
2122
+ "textToSpeechInstruct": "음성 생성(설명)",
2123
+ "motionControl": "모션 제어",
2124
+ "videoTransfer": "비디오 트랜스퍼",
2125
+ "characterReplace": "캐릭터 교체",
2126
+ "merge": "병합",
2127
+ "lipSync": "립싱크",
2128
+ "lipDub": "립 더빙",
2129
+ "cloneVoice": "음성 복제",
2130
+ "speechGenVideo": "오디오로 비디오 생성",
2131
+ "repaintMusic": "리페인트",
2132
+ "coverMusic": "커버",
2133
+ "extractStem": "스템 추출",
2134
+ "addTrack": "트랙 추가",
2135
+ "completeMusic": "편곡 완성",
2136
+ "musicBrief": "음악 브리프"
2137
+ },
2138
+ "toast": {
2139
+ "executing": "실행 중...",
2140
+ "completed": "완료됨",
2141
+ "cancelled": "취소됨",
2142
+ "cancelling": "취소 중...",
2143
+ "failed": "실패",
2144
+ "nodes": "노드",
2145
+ "cancelTask": "작업 취소",
2146
+ "totalDuration": "총 소요 시간",
2147
+ "taskCompleted": "작업 완료",
2148
+ "taskFailed": "작업 실패",
2149
+ "taskFailedWithMsg": "작업 실패: {error}",
2150
+ "level": "레벨 {level}"
2151
+ },
2152
+ "dialog": {
2153
+ "myWorkflows": "내 워크플로",
2154
+ "noWorkflows": "워크플로 없음",
2155
+ "savedWorkflowsHint": "저장된 워크플로가 여기에 표시됩니다",
2156
+ "noMore": "더 이상 워크플로가 없습니다",
2157
+ "loadSuccess": "불러왔습니다!",
2158
+ "loadFailed": "불러오기에 실패했습니다. 다시 시도해 주세요",
2159
+ "open": "열기"
2160
+ },
2161
+ "menu": {
2162
+ "save": "저장",
2163
+ "saveAs": "다른 이름으로 저장",
2164
+ "clear": "지우기",
2165
+ "confirmClear": "현재 워크플로를 지우시겠습니까? 이 작업은 되돌릴 수 없습니다.",
2166
+ "cleared": "워크플로가 지워졌습니다",
2167
+ "saveAsNew": "새 워크플로로 저장",
2168
+ "saveWorkflow": "워크플로 저장",
2169
+ "saveNew": "새로 저장",
2170
+ "name": "이름",
2171
+ "enterName": "워크플로 이름 입력",
2172
+ "descOptional": "설명(선택 사항)",
2173
+ "enterDesc": "워크플로 설명 입력",
2174
+ "saving": "저장 중...",
2175
+ "update": "업데이트",
2176
+ "cancel": "취소",
2177
+ "saveSuccess": "저장되었습니다!",
2178
+ "saveFailed": "저장에 실패했습니다. 다시 시도해 주세요",
2179
+ "exportJson": "JSON 내보내기",
2180
+ "exportWorkflow": "워크플로 내보내기",
2181
+ "exportExecutable": "실행 파일 내보내기",
2182
+ "importJson": "JSON 가져오기",
2183
+ "importJsonInvalid": "파싱할 수 없습니다: 잘못된 JSON 또는 구조입니다.",
2184
+ "importJsonNoCanvas": "이 파일에는 캔버스 데이터가 없습니다(루트에 originalFlow, flow 또는 nodes/edges가 필요합니다).",
2185
+ "importJsonSuccess": "워크플로를 불러왔습니다(노드 {nodes}개, 엣지 {edges}개)",
2186
+ "importJsonReadFailed": "파일을 읽지 못했습니다",
2187
+ "exportJsonSuccess": "다운로드가 시작되었습니다",
2188
+ "exportJsonFailed": "내보내기에 실패했습니다. 다시 시도해 주세요"
2189
+ },
2190
+ "nodes": {
2191
+ "base": {
2192
+ "moreActions": "추가 옵션",
2193
+ "execute": "실행",
2194
+ "cancelExecution": "실행 취소",
2195
+ "removeComment": "댓글 제거",
2196
+ "commentPlaceholder": "사용자를 위한 댓글 추가...",
2197
+ "clickToAddComment": "클릭하여 댓글 추가...",
2198
+ "addComment": "댓글 추가",
2199
+ "delete": "삭제",
2200
+ "deleteConfirmTitle": "삭제 확인",
2201
+ "deleteConfirmDescription": "이 노드에는 {count}개의 다운스트림 노드가 있습니다. 삭제 방법을 선택하세요.",
2202
+ "deleteNodeOnly": "이 노드만 삭제",
2203
+ "deleteNodeAndChildren": "이 노드와 모든 다운스트림 노드 삭제({count})",
2204
+ "deleteChildrenOnly": "다운스트림 노드만 삭제({count})",
2205
+ "run": "실행",
2206
+ "preview": "미리보기",
2207
+ "lock": "노드 잠금",
2208
+ "unlock": "노드 잠금 해제",
2209
+ "startCombo": "콤보 시작",
2210
+ "addToCombo": "콤보에 추가",
2211
+ "removeFromCombo": "콤보에서 제거",
2212
+ "edit": "편집",
2213
+ "cancel": "취소",
2214
+ "confirm": "확인",
2215
+ "fullscreenEdit": "전체 화면 편집",
2216
+ "startVoice": "음성 입력 시작",
2217
+ "stopVoice": "음성 입력 중지",
2218
+ "editText": "텍스트 편집",
2219
+ "select": "선택",
2220
+ "selected": "선택됨",
2221
+ "modalNotDeployedTitle": "Modal 앱이 배포되지 않았습니다",
2222
+ "modalNotDeployedDescription": "\"{feature}\" 기능에는 Modal 앱 \"{app}\"이(가) 필요합니다. 아직 배포되지 않았습니다. 지금 배포하시겠습니까?",
2223
+ "modalDeployHint": "1) MODAL_TOKEN_ID / MODAL_TOKEN_SECRET를 설정합니다. 2) plugins/ 디렉터리가 있는지 확인합니다. 서버는 메모리에서 플러그인 주석을 스캔합니다. 3) `python -m modal`이 작동하는지 확인한 후(예: pip install modal) 원클릭 배포를 사용하여 해당 레지스트리의 각 플러그인 deploy.py에 대해 modal deploy를 실행합니다.",
2224
+ "modalDeployDismiss": "취소",
2225
+ "modalDeployAction": "다운로드 및 배포",
2226
+ "modalDeploying": "Modal 워커 배포 중…",
2227
+ "modalDeployDone": "배포가 완료되었습니다",
2228
+ "modalDeployError": "배포에 실패했습니다",
2229
+ "modalDeployingAction": "배포 중…",
2230
+ "modalDeployProgressHint": "{done}/{total} 배포됨",
2231
+ "pluginImplementationTitle": "구현",
2232
+ "pluginModelTitle": "모델",
2233
+ "pluginImplementationLoading": "플러그인 구현을 불러오는 중…",
2234
+ "pluginImplementationEmpty": "이 기능에 대해 스캔된 플러그인 구현이 없습니다. 저장소의 plugins/ 디렉터리 아래에 Modal 또는 API 플러그인을 추가한 후(README 참조) 이 페이지를 새로 고치세요.",
2235
+ "pluginRegistryLoadError": "플러그인 레지스트리를 불러올 수 없습니다: {message}",
2236
+ "pluginSelectPlaceholder": "저장소 선택…",
2237
+ "missingImplTitle": "구현 누락",
2238
+ "missingImplDescription": "실행하기 전에 이 노드에서 플러그인 구현을 선택하세요."
2239
+ },
2240
+ "common": {
2241
+ "enterInstructions": "지시 사항 입력...",
2242
+ "manualInput": "입력",
2243
+ "library": "라이브러리",
2244
+ "addText": "텍스트 추가",
2245
+ "enterText": "텍스트 내용 입력...",
2246
+ "descOptional": "설명(선택 사항)",
2247
+ "fromUpstreamText": "업스트림 텍스트 노드에서",
2248
+ "videoDesc": "비디오 설명",
2249
+ "aspectRatio": "종횡비",
2250
+ "resolution": "해상도",
2251
+ "duration": "길이",
2252
+ "currentSize": "현재 크기:",
2253
+ "currentDuration": "현재 길이:",
2254
+ "upscaleTierLabel": "출력 등급(긴 변)",
2255
+ "upscaleTierHint": "종횡비는 입력을 따르며 긴 변만 확대됩니다.",
2256
+ "upscaleTier1k": "1K · ~1920",
2257
+ "upscaleTier2k": "2K · ~2560",
2258
+ "upscaleTier4k": "4K · ~3840",
2259
+ "seconds": "초",
2260
+ "minute": "분",
2261
+ "thinkingProcess": "사고 과정",
2262
+ "performanceMode": "성능 모드",
2263
+ "ecoMode": "💰 절약 모드",
2264
+ "proMode": "⚡ 프로 모드",
2265
+ "modelSelect": "모델",
2266
+ "models": {
2267
+ "imageEdit": "FLUX2 Klein 이미지 편집",
2268
+ "imageGen": "Z-Image 텍스트-이미지",
2269
+ "imageFusion": "FLUX2 Klein 이미지 융합",
2270
+ "imageGenVideo": "LTX2 이미지-비디오",
2271
+ "features": {
2272
+ "gen-text": "기본값(OpenRouter)",
2273
+ "gen-text-gemini": "Gemini",
2274
+ "gen-text-openai": "OpenAI",
2275
+ "split-text": "스마트 분할",
2276
+ "combine-text": "텍스트 병합",
2277
+ "combine-text-openai": "텍스트 병합(OpenAI)",
2278
+ "combine-text-gemini": "텍스트 병합(Gemini)",
2279
+ "image-fusion": "FLUX2 Klein 융합",
2280
+ "image-gen-text": "이미지 캡션",
2281
+ "video-gen-text": "비디오 캡션",
2282
+ "transcribe": "음성-텍스트 변환",
2283
+ "transcribe-timestamp": "음성-텍스트 변환(타임스탬프 포함)",
2284
+ "concat-videos": "비디오 연결",
2285
+ "extract-audio": "오디오 트랙 추출",
2286
+ "remove-video-audio": "오디오 제거(무음 비디오)",
2287
+ "merge-video-audio": "오디오 + 비디오 합성",
2288
+ "get-first-frame": "첫 프레임",
2289
+ "get-last-frame": "마지막 프레임",
2290
+ "parse-document": "문서-텍스트 변환",
2291
+ "split-video": "샷별 분할",
2292
+ "link": "URL에서 가져오기",
2293
+ "gen-video": "텍스트-비디오",
2294
+ "image-gen": "Z-Image 텍스트-이미지",
2295
+ "gen-music": "ACE-Step 음악",
2296
+ "text-gen-speech-preset": "TTS(프리셋 스타일)",
2297
+ "image-gen-video": "이미지-비디오",
2298
+ "image-edit": "FLUX2 Klein 편집",
2299
+ "image-upscale": "이미지 업스케일",
2300
+ "video-upscale": "비디오 업스케일",
2301
+ "image-describe": "이미지 이해",
2302
+ "video-describe": "비디오 이해",
2303
+ "audio-describe": "오디오 이해",
2304
+ "music-repaint": "음악 리페인트",
2305
+ "music-cover": "음악 커버",
2306
+ "music-extract": "스템 추출",
2307
+ "music-lego": "트랙 추가",
2308
+ "music-complete": "편곡 완성",
2309
+ "music-brief": "음악 브리프",
2310
+ "audio-image-gen-video": "음성+이미지-비디오",
2311
+ "speech-text-gen-video": "음성+텍스트-비디오",
2312
+ "video-image-gen-video-mix": "비디오+이미지 믹스",
2313
+ "video-image-gen-video-move": "비디오+이미지 무브",
2314
+ "image-image-gen-video": "이미지+이미지-비디오",
2315
+ "text-gen-video": "텍스트-비디오",
2316
+ "image-gen-model": "이미지-3D",
2317
+ "speech-video-gen-video": "비디오 립 더빙(텍스트+비디오)",
2318
+ "audio-video-lip-sync": "오디오+비디오 립싱크",
2319
+ "text-gen-speech-clone": "음성 복제 TTS",
2320
+ "text-gen-speech-instruct": "지시형 TTS",
2321
+ "video-image-move-animal": "비디오+이미지 무브(동물)",
2322
+ "video-image-move": "비디오+이미지 무브(사람)",
2323
+ "video-image-move-muti": "비디오+이미지 무브(다중)",
2324
+ "video-image-move-animal-muti": "비디오+이미지 무브(동물, 다중)",
2325
+ "wan-animate-mix": "WAN 애니메이트 믹스",
2326
+ "subtitle-remove": "자막 제거",
2327
+ "remove-watermark": "워터마크 제거",
2328
+ "denoise-audio": "오디오 노이즈 제거",
2329
+ "separate-audio-track": "보컬 / 반주",
2330
+ "separate-speaker": "화자 분리",
2331
+ "convert-voice": "음성 교체",
2332
+ "drop-video": "클립 필터링",
2333
+ "arrange-group": "배치 정렬"
2334
+ }
2335
+ },
2336
+ "voice": "음성",
2337
+ "selectVoice": "음성 선택",
2338
+ "previewVoice": "음성 미리듣기",
2339
+ "uploadVoice": "음성 업로드",
2340
+ "recordVoice": "음성 녹음",
2341
+ "voiceClone": "음성 복제",
2342
+ "voicePreset": "프리셋 스타일",
2343
+ "voiceDescribe": "사용자 정의 설명",
2344
+ "gender": "성별",
2345
+ "selectGender": "성별 선택(선택 사항)",
2346
+ "emotion": "감정",
2347
+ "style": "스타일",
2348
+ "selectEmotion": "감정 선택(선택 사항)",
2349
+ "selectStyle": "스타일 선택(선택 사항)",
2350
+ "voiceDescription": "음성 설명",
2351
+ "voiceDescriptionPlaceholder": "음성 스타일 설명을 입력하세요. 예: 부드럽고 달콤한 여성 목소리, 천천히 말하기...",
2352
+ "referenceAudio": "참조 오디오",
2353
+ "noReferenceAudio": "참조 클립을 업로드하거나 녹음하세요(3초 이상)",
2354
+ "referenceText": "참조 텍스트",
2355
+ "referenceTextPlaceholder": "선택 사항: 참조 오디오의 전사본 — 복제 품질을 향상시킵니다",
2356
+ "referenceTextCloneHint": "빠른 x-vector 복제는 비워 두고, 더 높은 품질의 ICL 복제를 위해서는 참조 전사본을 붙여넣으세요",
2357
+ "language": "언어",
2358
+ "inputText": "입력 텍스트",
2359
+ "voiceOptions": {
2360
+ "female": "여성 목소리",
2361
+ "male": "남성 목소리"
2362
+ }
2363
+ },
2364
+ "titles": {
2365
+ "imageGenVideo": "이미지-비디오",
2366
+ "textGenVideo": "텍스트-비디오",
2367
+ "addText": "텍스트 추가",
2368
+ "textGenText": "텍스트 생성",
2369
+ "combineText": "텍스트 결합",
2370
+ "textGenImage": "텍스트-이미지",
2371
+ "textGenSpeechClone": "음성 생성(복제)",
2372
+ "textGenSpeechCloneCompose": "음성 복제(텍스트 + 오디오)",
2373
+ "imageGenVideoCompose": "이미지-비디오(텍스트 + 이미지)",
2374
+ "textGenSpeechPreset": "음성 생성(프리셋)",
2375
+ "textGenSpeechInstruct": "음성 생성(설명)",
2376
+ "imageFusion": "이미지 융합",
2377
+ "videoUpscale": "비디오 업스케일",
2378
+ "videoGenText": "비디오 설명",
2379
+ "speechRecognize": "음성 인식",
2380
+ "textGenMusic": "텍스트-음악",
2381
+ "speechGenVideo": "오디오-비디오",
2382
+ "convertVoice": "음성 교체",
2383
+ "denoiseAudio": "오디오 노이즈 제거",
2384
+ "fileGenText": "문서 파서",
2385
+ "linkGenText": "링크 추출기",
2386
+ "removeSubtitle": "자막 제거",
2387
+ "removeWatermark": "워터마크 제거",
2388
+ "separateAudio": "오디오 & 비디오 분리",
2389
+ "imageGenText": "이미지 설명",
2390
+ "audioDescribe": "오디오 이해",
2391
+ "imageGenImage": "이미지 편집",
2392
+ "videoEdit": "비디오 편집",
2393
+ "imageGenModel": "이미지-3D 모델",
2394
+ "imagePose": "포즈 감지",
2395
+ "imageBodySeg": "신체 부위 분할",
2396
+ "imageNormal": "표면 노멀",
2397
+ "imageMatting": "인물 매팅",
2398
+ "videoGenModel": "비디오 모션 캡처",
2399
+ "imageUpscale": "고화질 업스케일",
2400
+ "separateTrack": "보컬 추출",
2401
+ "separateSpeaker": "화자 분리",
2402
+ "separateSound": "소리 분리",
2403
+ "speechImageGenVideo": "음성+이미지-비디오",
2404
+ "concatVideo": "비디오 연결",
2405
+ "mergeVideoAudio": "비디오 오디오 병합",
2406
+ "audioVideoLipSync": "비디오 립싱크",
2407
+ "speechTextGenVideo": "음성+텍스트-비디오",
2408
+ "speechVideoGenVideo": "비디오 립 더빙",
2409
+ "imageImageGenVideo": "첫/마지막 프레임 비디오",
2410
+ "imagesGenVideo": "이미지-비디오",
2411
+ "refsGenVideo": "옴니 참조 비디오",
2412
+ "textAudioGenSpeech": "텍스트+오디오-음성",
2413
+ "videoImageMix": "비디오+이미지 믹스",
2414
+ "videoImageMove": "비디오+이미지 무브",
2415
+ "splitVideo": "비디오 분할",
2416
+ "splitText": "스마트 분할",
2417
+ "getFirstFrame": "첫 프레임",
2418
+ "getLastFrame": "마지막 프레임",
2419
+ "extractAudioTrack": "오디오 트랙 추출",
2420
+ "removeVideoAudio": "오디오 제거(무음 비디오)",
2421
+ "musicRepaint": "음악 리페인트",
2422
+ "musicCover": "음악 커버",
2423
+ "musicExtract": "스템 추출",
2424
+ "musicLego": "트랙 추가",
2425
+ "musicComplete": "편곡 완성",
2426
+ "musicBrief": "음악 브리프"
2427
+ },
2428
+ "options": {
2429
+ "portrait": "세로",
2430
+ "landscape": "가로",
2431
+ "square": "정사각형",
2432
+ "standard": "표준",
2433
+ "verticalStandard": "세로 표준",
2434
+ "human": "사람",
2435
+ "animal": "동물",
2436
+ "single": "단일",
2437
+ "multi": "다중"
2438
+ },
2439
+ "actions": {
2440
+ "generateVideo": "비디오 생성",
2441
+ "generateImage": "이미지 생성",
2442
+ "generateSpeech": "음성 생성",
2443
+ "startFusion": "융합 시작",
2444
+ "convertText": "텍스트로 변환",
2445
+ "startUpscale": "업스케일 시작",
2446
+ "describeVideo": "비디오 설명",
2447
+ "recognizeSpeech": "음성 인식",
2448
+ "generateMusic": "음악 생성",
2449
+ "generateAudio": "오디오 생성",
2450
+ "startReplace": "교체 시작",
2451
+ "startDenoise": "노이즈 제거 시작",
2452
+ "parseDocument": "문서 파싱",
2453
+ "extractContent": "콘텐츠 추출",
2454
+ "removeSubtitle": "자막 제거",
2455
+ "removeWatermark": "워터마크 제거",
2456
+ "compressVideo": "비디오 압축",
2457
+ "extractAudio": "분리 시작",
2458
+ "describeImage": "이미지 설명",
2459
+ "describeAudio": "오디오 설명",
2460
+ "editImage": "이미지 편집",
2461
+ "editVideo": "비디오 편집",
2462
+ "generate3DModel": "3D 모델 생성",
2463
+ "detectPose": "포즈 감지",
2464
+ "segmentBody": "신체 부위 분할",
2465
+ "estimateNormal": "노멀 추정",
2466
+ "extractForeground": "전경 추출",
2467
+ "captureMotion": "모션 캡처",
2468
+ "imageUpscale": "고화질 업스케일",
2469
+ "extractVocals": "보컬 추출",
2470
+ "startSeparation": "분리 시작",
2471
+ "concatVideo": "비디오 연결",
2472
+ "startMerge": "병합 시작",
2473
+ "lipDub": "립 더빙",
2474
+ "motionTrackGenerate": "생성(모션 트랙)",
2475
+ "splitVideo": "비디오 분할",
2476
+ "splitText": "스마트 분할",
2477
+ "getFirstFrame": "첫 프레임 가져오기",
2478
+ "getLastFrame": "마지막 프레임 가져오기",
2479
+ "extractAudioTrack": "오디오 추출",
2480
+ "removeVideoAudio": "오디오 제거",
2481
+ "repaintMusic": "리페인트 시작",
2482
+ "coverMusic": "커버 생성",
2483
+ "extractStem": "분리 시작",
2484
+ "separateSound": "분리 시작",
2485
+ "addTrack": "트랙 생성",
2486
+ "completeMusic": "보완 시작",
2487
+ "musicBrief": "브리프 생성"
2488
+ },
2489
+ "params": {
2490
+ "prompt": "프롬프트",
2491
+ "model": "모델",
2492
+ "modelDefault": "기본값(OpenRouter 무료)",
2493
+ "geminiModel": "Gemini 모델",
2494
+ "openaiModel": "OpenAI 모델",
2495
+ "style": "스타일",
2496
+ "sampler": "샘플러",
2497
+ "seed": "시드",
2498
+ "steps": "스텝",
2499
+ "cfg": "CFG 스케일"
2500
+ },
2501
+ "emotions": {
2502
+ "none": "없음",
2503
+ "happy": "행복",
2504
+ "angry": "분노",
2505
+ "sad": "슬픔",
2506
+ "fear": "두려움",
2507
+ "surprised": "놀람",
2508
+ "confusion": "혼란",
2509
+ "empathy": "공감",
2510
+ "embarrass": "당황",
2511
+ "excited": "흥분",
2512
+ "depressed": "우울",
2513
+ "admiration": "감탄",
2514
+ "coldness": "냉담"
2515
+ },
2516
+ "genders": {
2517
+ "none": "없음",
2518
+ "male": "남성",
2519
+ "female": "여성"
2520
+ },
2521
+ "styles": {
2522
+ "none": "없음",
2523
+ "serious": "진지함",
2524
+ "arrogant": "거만함",
2525
+ "child": "어린이",
2526
+ "older": "노년",
2527
+ "girl": "소녀",
2528
+ "pure": "순수함",
2529
+ "sister": "성숙한 여성",
2530
+ "sweet": "달콤함",
2531
+ "exaggerated": "과장됨",
2532
+ "ethereal": "몽환적",
2533
+ "whisper": "속삭임",
2534
+ "generous": "관대함",
2535
+ "recite": "낭독",
2536
+ "act_coy": "교태",
2537
+ "warm": "따뜻함",
2538
+ "shy": "수줍음",
2539
+ "comfort": "위로",
2540
+ "authority": "권위적",
2541
+ "chat": "대화",
2542
+ "radio": "라디오",
2543
+ "soulful": "감성적",
2544
+ "gentle": "부드러움",
2545
+ "story": "이야기",
2546
+ "vivid": "생생함",
2547
+ "program": "진행자",
2548
+ "news": "뉴스",
2549
+ "advertising": "광고",
2550
+ "roar": "포효",
2551
+ "murmur": "중얼거림",
2552
+ "shout": "외침",
2553
+ "deeply": "깊음",
2554
+ "loudly": "큰 소리"
2555
+ },
2556
+ "recorder": {
2557
+ "title": "음성 녹음",
2558
+ "desc": "음성 합성을 위한 참조로 오디오 클립을 녹음하세요",
2559
+ "start": "녹음 시작",
2560
+ "stop": "녹음 중지",
2561
+ "preview": "미리듣기",
2562
+ "retry": "다시 시도",
2563
+ "uploading": "업로드 중...",
2564
+ "confirm": "확인",
2565
+ "cancel": "취소",
2566
+ "recording": "녹음 중...",
2567
+ "recorded": "녹음 완료",
2568
+ "micError": "마이크에 접근할 수 없습니다. 권한을 확인하세요",
2569
+ "uploadError": "업로드에 실패했습니다. 다시 시도해 주세요",
2570
+ "uploadFailed": "업로드 실패"
2571
+ },
2572
+ "imageFusion": {
2573
+ "loading": "불러오는 중...",
2574
+ "imageReference": "이미지 참조",
2575
+ "imageReferenceHint": "이미지를 클릭하여 프롬프트에 참조를 삽입하세요",
2576
+ "fusionPrompt": "융합 프롬프트",
2577
+ "fusionPromptPlaceholder": "융합 지시 사항을 입력하세요. 예: 이미지 1의 스타일 유지, 모든 이미지의 특징 융합, 이미지 2의 색상 강조, 이미지 3의 구도 결합...",
2578
+ "imageLabel": "이미지"
2579
+ },
2580
+ "refsGenVideo": {
2581
+ "videoReference": "비디오 참조",
2582
+ "videoLabel": "비디오",
2583
+ "audioReference": "오디오 참조",
2584
+ "audioLabel": "오디오",
2585
+ "referenceHint": "이미지 최대 9장, 비디오 3개, 오디오 3개(총 12개 파일). 오디오는 이미지나 비디오와 함께 사용해야 합니다. 썸네일을 클릭하면 프롬프트에 참조가 삽입됩니다.",
2586
+ "promptPlaceholder": "생성할 비디오를 설명하세요. 예: 이미지 1의 캐릭터가 오디오 1의 목소리로 말하며 비디오 1의 장면을 이어갑니다..."
2587
+ },
2588
+ "video": { "fileCount": "처리할 파일:" },
2589
+ "speechRecognize": { "withTimestamp": "타임스탬프 포함" },
2590
+ "music": {
2591
+ "handleStyle": "스타일",
2592
+ "handleLyric": "가사",
2593
+ "referenceAudio": "참조 오디오",
2594
+ "inputLyrics": "가사 입력",
2595
+ "audioDuration": "오디오 길이",
2596
+ "currentDuration": "현재 길이:",
2597
+ "seconds": "초",
2598
+ "15s": "15초",
2599
+ "30s": "30초",
2600
+ "1min": "1분",
2601
+ "2min": "2분",
2602
+ "styleSettings": "음악 스타일",
2603
+ "voiceGender": "음성",
2604
+ "genders": {
2605
+ "male": "남성",
2606
+ "female": "여성"
2607
+ },
2608
+ "timbre": "음색",
2609
+ "timbres": {
2610
+ "bright": "밝음",
2611
+ "dark": "어두움",
2612
+ "warm": "따뜻함",
2613
+ "soft": "부드러움",
2614
+ "rock": "록",
2615
+ "vocal": "보컬"
2616
+ },
2617
+ "genre": "장르",
2618
+ "genres": {
2619
+ "pop": "팝",
2620
+ "rock": "록",
2621
+ "electronic": "일렉트로닉",
2622
+ "hiphop": "힙합",
2623
+ "jazz": "재즈",
2624
+ "blues": "블루스",
2625
+ "classical": "클래식",
2626
+ "folk": "포크",
2627
+ "country": "컨트리",
2628
+ "rnb": "R&B",
2629
+ "kpop": "K-Pop",
2630
+ "reggae": "레게",
2631
+ "soul": "소울",
2632
+ "dance": "댄스",
2633
+ "rap": "랩",
2634
+ "classicRock": "클래식 록",
2635
+ "hardRock": "하드 록",
2636
+ "rockabilly": "로커빌리",
2637
+ "dancepop": "댄스 팝",
2638
+ "house": "하우스",
2639
+ "deephouse": "딥 하우스",
2640
+ "experimental": "실험적",
2641
+ "experimentalPop": "실험적 팝",
2642
+ "popPunk": "팝 펑크",
2643
+ "rockAndRoll": "로큰롤",
2644
+ "popRock": "팝 록"
2645
+ },
2646
+ "mood": "분위기",
2647
+ "moods": {
2648
+ "happy": "행복",
2649
+ "sad": "슬픔",
2650
+ "romantic": "로맨틱",
2651
+ "melancholic": "우울",
2652
+ "uplifting": "고양",
2653
+ "intense": "강렬함",
2654
+ "emotional": "감성적",
2655
+ "angry": "분노"
2656
+ },
2657
+ "instrumentAndRhythm": "악기 & 리듬",
2658
+ "instrument": "악기",
2659
+ "selectedCount": "{count}개 선택됨",
2660
+ "instruments": {
2661
+ "piano": "피아노",
2662
+ "guitar": "기타",
2663
+ "acousticGuitar": "어쿠스틱 기타",
2664
+ "electricGuitar": "일렉트릭 기타",
2665
+ "drums": "드럼",
2666
+ "synthesizer": "신디사이저",
2667
+ "violin": "바이올린",
2668
+ "saxophone": "색소폰",
2669
+ "bass": "베이스",
2670
+ "beats": "비트",
2671
+ "strings": "현악기",
2672
+ "cello": "첼로",
2673
+ "trumpet": "트럼펫",
2674
+ "harmonica": "하모니카",
2675
+ "banjo": "밴조",
2676
+ "fiddle": "피들",
2677
+ "brass": "금관악기",
2678
+ "doubleBass": "더블 베이스"
2679
+ },
2680
+ "bpm": "BPM",
2681
+ "slow": "느림",
2682
+ "moderate": "보통",
2683
+ "fast": "빠름",
2684
+ "songTitle": "곡 제목",
2685
+ "songTitlePlaceholder": "곡 제목 입력(선택 사항)",
2686
+ "noTagsSelected": "선택된 태그 없음",
2687
+ "tagsPlaceholder": "예: 여성, 팝, 밝음, 피아노, 행복, 120bpm",
2688
+ "tagsHint": "음악 스타일 태그를 쉼표로 구분하여 입력하세요. 예: 성별, 장르, 음색, 악기, 분위기, BPM",
2689
+ "fromUpstreamReadonly": "업스트림에서(읽기 전용)",
2690
+ "lyricsPlaceholder": "가사 입력이 연결되지 않은 경우 가사를 입력하세요",
2691
+ "language": "언어",
2692
+ "keyscale": "키 스케일",
2693
+ "auto": "자동"
2694
+ },
2695
+ "musicTasks": {
2696
+ "promptLabel": "캡션",
2697
+ "promptPlaceholder": "음악 스타일, 분위기, 악기 등을 설명하세요...",
2698
+ "lyricsLabel": "가사",
2699
+ "lyricsPlaceholder": "가사(선택)...",
2700
+ "startTime": "시작(초)",
2701
+ "endTime": "종료(초)",
2702
+ "strength": "강도",
2703
+ "track": "트랙",
2704
+ "tracks": "추가할 트랙",
2705
+ "instrumental": "연주곡",
2706
+ "ideaPlaceholder": "원하는 곡을 한 문장으로 설명하세요...",
2707
+ "sourceAudio": "원곡",
2708
+ "refAudio": "참조 오디오",
2709
+ "trackOptions": {
2710
+ "vocals": "보컬",
2711
+ "backing_vocals": "백킹 보컬",
2712
+ "drums": "드럼",
2713
+ "percussion": "퍼커션",
2714
+ "bass": "베이스",
2715
+ "guitar": "기타",
2716
+ "keyboard": "키보드",
2717
+ "synth": "신스",
2718
+ "strings": "스트링",
2719
+ "brass": "브라스",
2720
+ "woodwinds": "목관",
2721
+ "fx": "이펙트"
2722
+ }
2723
+ },
2724
+ "speechGenVideo": {
2725
+ "loading": "불러오는 중...",
2726
+ "inputContent": "입력 내용",
2727
+ "audio": "오디오",
2728
+ "connectAudioHint": "오디오 노드를 연결하거나 오디오 파일을 업로드하세요",
2729
+ "audioPromptLabel": "오디오 프롬프트",
2730
+ "audioPromptPlaceholder": "오디오 더빙 프롬프트 입력"
2731
+ },
2732
+ "convertVoice": {
2733
+ "voiceLabel": "음성:",
2734
+ "selectVoice": "음성 선택",
2735
+ "previewVoice": "음성 미리듣기",
2736
+ "uploadVoice": "음성 업로드",
2737
+ "recordVoice": "음성 녹음",
2738
+ "recordAudio": "오디오 녹음",
2739
+ "recordHint": "여기에서 오디오를 녹음할 수 있습니다.",
2740
+ "recordNeedImpl": "오디오 녹음 기능 구현이 필요합니다",
2741
+ "done": "완료"
2742
+ },
2743
+ "removeWatermark": { "hint": "Sora 비디오 워터마크를 자동으로 감지하고 제거합니다" },
2744
+ "videoGenText": {
2745
+ "promptLabel": "사용자 정의 프롬프트",
2746
+ "promptPlaceholder": "기본 프롬프트는 비워 두거나 사용자 정의 지시 사항을 입력하세요. 예: 비디오의 대화만 설명..."
2747
+ },
2748
+ "imageGenText": {
2749
+ "promptLabel": "사용자 정의 프롬프트",
2750
+ "promptPlaceholder": "기본 프롬프트는 비워 두거나 사용자 정의 지시 사항을 입력하세요. 예: 주요 피사체, 스타일 또는 이미지 내 텍스트 설명..."
2751
+ },
2752
+ "audioDescribe": {
2753
+ "promptLabel": "커스텀 프롬프트",
2754
+ "promptPlaceholder": "비워 두면 기본 프롬프트를 사용합니다. 장르, 분위기, 악기, 보컬 설명 등 커스텀 지시를 입력할 수도 있습니다…"
2755
+ },
2756
+ "textGenText": { "instructions": "지시 사항" },
2757
+ "lipDub": {
2758
+ "targetDialogue": "대상 대화(프롬프트)",
2759
+ "targetDialoguePlaceholder": "캐릭터 설명과 대상 언어 대사를 포함한 전체 프롬프트(모델은 번역하지 않습니다)",
2760
+ "promptHint": "출력 해상도는 참조 비디오를 따릅니다. 전체 프롬프트를 사용하세요(캐릭터 + 대상 언어 대사, 자동 번역 없음). 원본 클립 길이에 맞추고 단일 화자만 지원합니다."
2761
+ },
2762
+ "lipSync": {
2763
+ "scenePrompt": "장면 설명(선택 사항)",
2764
+ "scenePromptPlaceholder": "샷과 화자를 설명하세요. 립싱크는 연결된 오디오를 따릅니다 — 여기에 전체 대화를 붙여넣지 마세요.",
2765
+ "audioDrivenHint": "입 움직임과 오디오는 오디오 입력에서 가져옵니다. 오디오 길이를 참조 비디오에 가깝게 유지하세요. 기본 출력은 720p입니다."
2766
+ },
2767
+ "motionTrack": {
2768
+ "connectHint": "첫 프레임 이미지, 참조 비디오(모션이 자동으로 추적되어 전송됨), 텍스트 프롬프트(외형/스타일만)를 연결하세요.",
2769
+ "controlVideo": "참조 비디오",
2770
+ "promptPlaceholder": "외형과 스타일을 설명하세요 — 모션은 참조 비디오에서 추출됩니다.",
2771
+ "promptHint": "외형/스타일만 설명하세요. 모션은 참조 비디오에서 자동으로 추출됩니다. 길이 슬라이더는 참조 클립 길이를 제한합니다.",
2772
+ "missing": "추가로 필요함: {items}"
2773
+ },
2774
+ "imageEdit": {
2775
+ "performanceMode": "성능 모드",
2776
+ "ecoMode": "💰 절약(FLUX.2 Klein 9B)",
2777
+ "proMode": "⚡ 프로 모드",
2778
+ "editInstruction": "편집 지시 사항",
2779
+ "fromUpstream": "(업스트림 노드에서)",
2780
+ "editPlaceholder": "이미지 편집 지시 사항을 입력하세요. 예: 대비 증가, 색온도를 따뜻하게 조정, 디테일 강화"
2781
+ },
2782
+ "videoEdit": {
2783
+ "editInstruction": "편집 지시 사항",
2784
+ "fromUpstream": "(업스트림 노드에서)",
2785
+ "editPlaceholder": "비디오 편집 지시 사항을 입력하세요. 예: 자막 제거, 수채화 스타일 적용, 하늘을 노을로 변경",
2786
+ "connectTextVideo": "텍스트 노드와 비디오 노드를 연결하세요"
2787
+ },
2788
+ "compose": {
2789
+ "loading": "불러오는 중...",
2790
+ "mediaFiles": "미디어 파일",
2791
+ "image": "이미지",
2792
+ "audio": "오디오",
2793
+ "video": "비디오",
2794
+ "text": "텍스트",
2795
+ "noText": "텍스트 없음",
2796
+ "inputContent": "입력 내용",
2797
+ "videoFiles": "비디오 파일",
2798
+ "connectImageAudio": "이미지와 오디오 파일을 연결하세요",
2799
+ "connectVideo": "비디오 파일을 하나 이상 연결하세요",
2800
+ "connectImageVideoAudio": "이미지, 비디오, 오디오 파일을 연결하세요",
2801
+ "connectTextAudio": "텍스트 내용과 오디오 파일을 연결하세요",
2802
+ "connectTextReferenceAudio": "텍스트 노드와 오디오 노드(참조 음성)를 연결하세요",
2803
+ "connectTextImage": "텍스트 노드와 이미지 노드를 연결하세요",
2804
+ "connectTextVideoNode": "비디오 노드와 텍스트 노드를 연결하세요(대상 대화는 프롬프트에 입력)",
2805
+ "referenceAudio": "참조 오디오",
2806
+ "referenceTextOptional": "참조 전사본(선택 사항, 복제 품질 향상)",
2807
+ "connectVideoAudio": "비디오와 오디오 파일을 연결하세요",
2808
+ "generatePromptLabel": "프롬프트 생성",
2809
+ "generatePromptPlaceholder": "내용, 스타일, 동작 등을 설명하는 비디오 생성 프롬프트를 입력하세요(선택 사항)",
2810
+ "inputText": "입력 텍스트",
2811
+ "inputTextPlaceholder": "텍스트 내용 입력",
2812
+ "describeVideo": "생성하려는 비디오를 설명하세요...",
2813
+ "firstFrame": "첫 프레임",
2814
+ "lastFrame": "마지막 프레임",
2815
+ "connectTwoImages": "두 개의 이미지를 연결하세요(첫 프레임과 마지막 프레임)",
2816
+ "inputData": "입력 데이터",
2817
+ "connectTextAudioNode": "텍스트와 오디오 노드를 연결하세요",
2818
+ "emotion": "감정:",
2819
+ "style": "스타일:",
2820
+ "selectEmotion": "감정 스타일 선택(선택 사항)",
2821
+ "selectStyle": "음성 스타일 선택(선택 사항)",
2822
+ "lipSync": "립싱크",
2823
+ "connectImageVideo": "이미지와 비디오 파일을 연결하세요",
2824
+ "startSlice": "슬라이스 시작"
2825
+ },
2826
+ "modal": {
2827
+ "audioPreview": "오디오 미리듣기",
2828
+ "audio": "오디오",
2829
+ "audios": "오디오 ({count})",
2830
+ "loading": "불러오는 중...",
2831
+ "unavailable": "콘텐츠를 사용할 수 없습니다",
2832
+ "more": "더보기",
2833
+ "moreOptions": "추가 옵션",
2834
+ "actions": "작업",
2835
+ "textPreview": "텍스트 미리보기",
2836
+ "text": "텍스트",
2837
+ "texts": "텍스트 ({count})",
2838
+ "imagePreview": "이미지 미리보기",
2839
+ "image": "이미지",
2840
+ "images": "이미지 ({count})",
2841
+ "videoPreview": "비디오 미리보기",
2842
+ "video": "비디오",
2843
+ "videos": "비디오 ({count})",
2844
+ "file": "파일",
2845
+ "files": "파일 ({count})",
2846
+ "link": "링크",
2847
+ "links": "링크 ({count})",
2848
+ "fullScreenPreview": "전체 화면 미리보기",
2849
+ "fullScreenWaterfall": "전체 화면 워터폴 미리보기",
2850
+ "model3DPreview": "3D 모델 미리보기",
2851
+ "model3D": "3D 모델",
2852
+ "models3D": "3D 모델 ({count})",
2853
+ "resetView": "뷰 재설정",
2854
+ "playAnimation": "애니메이션 재생",
2855
+ "pauseAnimation": "애니메이션 일시정지",
2856
+ "downloadModel": "모델 다운로드",
2857
+ "loading3DModel": "3D 모델 불러오는 중...",
2858
+ "errorLoadingModel": "모델 불러오기 오류",
2859
+ "dragToRotate": "왼쪽 클릭 + 드래그로 회전 | 스크롤로 확대/축소 | 재설정 클릭으로 중앙 정렬",
2860
+ "noModelLoaded": "불러온 3D 모델이 없습니다",
2861
+ "loadingPreview": "미리보기 불러오는 중...",
2862
+ "unsupportedFormat": "지원되지 않는 형식",
2863
+ "supportedFormats": "지원됨",
2864
+ "download": "다운로드",
2865
+ "textEditor": "텍스트 편집기",
2866
+ "enterText": "텍스트 내용 입력..."
2867
+ },
2868
+ "add": {
2869
+ "addAudio": "오디오 추가",
2870
+ "addImage": "이미지 추가",
2871
+ "addVideo": "비디오 추가",
2872
+ "addText": "텍스트 추가",
2873
+ "addFile": "파일 추가",
2874
+ "addModel": "3D 모델 추가",
2875
+ "addLink": "링크 추가",
2876
+ "record": "녹음",
2877
+ "recordVideo": "비디오 녹화",
2878
+ "upload": "업로드",
2879
+ "library": "라이브러리",
2880
+ "recorded": "녹화됨",
2881
+ "uploading": "업로드 중",
2882
+ "confirmAndUpload": "확인 및 업로드",
2883
+ "dropToUpload": "파일을 놓아 업로드",
2884
+ "dragOrClick": "여기에 파일을 드래그하거나 클릭하여 업로드",
2885
+ "supportedAudioFormats": "MP3, WAV, OGG, M4A 지원",
2886
+ "supportedImageFormats": "일반적인 이미지 형식 지원",
2887
+ "supportedVideoFormats": "MP4, MOV, WEBM 지원",
2888
+ "browseFiles": "파일 찾아보기",
2889
+ "canvas": "캔버스",
2890
+ "camera": "카메라",
2891
+ "openCanvas": "캔버스 열기",
2892
+ "canvasDrawing": "캔버스 그리기",
2893
+ "canvasDrawingHint": "아래 캔버스에 그린 후 완료를 클릭하여 저장하세요",
2894
+ "clearCanvas": "캔버스 지우기",
2895
+ "finishAndSave": "완료 및 저장",
2896
+ "clickToStartCamera": "클릭하여 카메라 시작",
2897
+ "takePhoto": "사진 촬영",
2898
+ "closeCamera": "카메라 닫기",
2899
+ "cameraError": "카메라에 접근할 수 없습니다",
2900
+ "cameraErrorHint": "다음을 확인하세요: 1. HTTPS 또는 localhost 사용 2. 카메라 권한 허용 3. 카메라가 다른 앱에서 사용 중이 아님",
2901
+ "inputText": "입력 텍스트",
2902
+ "textPlaceholder": "텍스트 내용을 입력하세요...",
2903
+ "generate": "확인",
2904
+ "linkPlaceholder": "링크를 입력하세요",
2905
+ "extractContent": "콘텐츠 추출",
2906
+ "cancel": "취소",
2907
+ "startRecordingVideo": "비디오 녹화 시작",
2908
+ "addDocument": "문서 추가",
2909
+ "supportedDocFormats": "다양한 문서 형식 지원",
2910
+ "dragModel": "여기에 3D 모델 파일을 드래그하거나 클릭하여 업로드",
2911
+ "supportedModelFormats": "지원되는 형식",
2912
+ "modelHint": "팁: 다음 3D 파일 형식을 지원합니다:"
2913
+ },
2914
+ "batch": {
2915
+ "arrangeGroup": "그룹 배치",
2916
+ "startArrange": "배치 시작",
2917
+ "describeRequirements": "요구 사항을 설명하세요...",
2918
+ "groupCount": "그룹 수",
2919
+ "allowDuplicate": "중복 허용",
2920
+ "videoFilter": "비디오 필터",
2921
+ "startFilter": "필터 시작"
2922
+ },
2923
+ "voice": {
2924
+ "timbre": "음성:",
2925
+ "selectTimbre": "음성 선택",
2926
+ "previewTimbre": "현재 음성 미리듣기",
2927
+ "uploadTimbre": "음성 업로드",
2928
+ "recordTimbre": "음성 녹음",
2929
+ "emotion": "감정:",
2930
+ "replaceTimbre": "음성 교체"
2931
+ },
2932
+ "separateSound": {
2933
+ "textLabel": "추출할 소리",
2934
+ "textPlaceholder": "예: 개 짖는 소리, 피아노, 배경 사이렌"
2935
+ }
2936
+ }
2937
+ },
2938
+ Upload: {
2939
+ "failed": "업로드에 실패했습니다. 나중에 다시 시도해 주세요",
2940
+ "fileFailed": "파일 \"{name}\" 업로드에 실패했습니다: {reason}",
2941
+ "partialFailed": "일부 또는 모든 파일 업로드에 실패했습니다",
2942
+ "maxFilesExceeded": "최대 {max}개의 파일만 허용됩니다",
2943
+ "fileTooLarge": "파일 \"{name}\"이(가) 너무 큽니다(최대 {max}MB)",
2944
+ "fileTypeNotAccepted": "파일 \"{name}\" 유형이 허용되지 않습니다",
2945
+ "readImageFailed": "이미지 정보를 읽지 못했습니다",
2946
+ "readVideoFailed": "비디오 정보를 읽지 못했습니다"
2947
+ },
2948
+ LibInput: {
2949
+ "deleteSuccess": "자료가 삭제되었습니다",
2950
+ "deleteFailed": "삭제에 실패했습니다",
2951
+ "emptyText": "빈 텍스트",
2952
+ "loadFailed": "자료를 불러오지 못했습니다",
2953
+ "added": "자료가 추가되었습니다",
2954
+ "retry": "다시 시도",
2955
+ "emptyMaterial": "아직 {type} 자료가 없습니다",
2956
+ "typeImage": "이미지",
2957
+ "typeVideo": "비디오",
2958
+ "typeAudio": "오디오",
2959
+ "typeText": "텍스트",
2960
+ "typeFile": "파일",
2961
+ "typeModel": "모델",
2962
+ "favoriteHint": "노드의 ❤️ 아이콘을 클릭하여 자료를 즐겨찾기에 추가하세요",
2963
+ "portfolio": "포트폴리오"
2964
+ },
2965
+ Recorder: {
2966
+ "audioStart": "녹음 시작",
2967
+ "audioCancel": "취소",
2968
+ "audioCancelTooltip": "녹음 취소",
2969
+ "audioFinish": "완료",
2970
+ "audioFinishTooltip": "녹음 완료",
2971
+ "audioPermissionError": "마이크에 접근할 수 없습니다. 권한을 허용해 주세요.",
2972
+ "videoPermissionError": "카메라 또는 마이크에 접근할 수 없습니다. 권한을 허용해 주세요.",
2973
+ "videoStart": "녹화 시작",
2974
+ "videoStop": "녹화 중지"
2975
+ },
2976
+ Languages: {
2977
+ "auto": "자동",
2978
+ "zh": "중국어",
2979
+ "ja": "일본어",
2980
+ "yue": "광둥어",
2981
+ "en": "영어",
2982
+ "ko": "한국어",
2983
+ "fr": "프랑스어",
2984
+ "es": "스페인어",
2985
+ "de": "독일어",
2986
+ "ru": "러시아어",
2987
+ "pt": "포르투갈어",
2988
+ "it": "이탈리아어"
2989
+ },
2990
+ Errors: {
2991
+ "somethingWentWrong": "문제가 발생했습니다",
2992
+ "tryAgain": "다시 시도",
2993
+ "details": "세부 정보",
2994
+ "copy": "복사",
2995
+ "copied": "복사됨",
2996
+ "close": "닫기",
2997
+ "needHelp": "해결이 안 되면 커뮤니티로 오세요:",
2998
+ "wechatGroup": "WeChat 그룹",
2999
+ "wechatQrAlt": "WeChat 그룹 QR 코드"
3000
+ },
3001
+ Api: {
3002
+ "unknownError": "알 수 없는 오류",
3003
+ "unauthorized": "인증되지 않음",
3004
+ "accessDenied": "접근 거부됨",
3005
+ "requestFailed": "요청 실패: {status} {statusText}",
3006
+ "success": "성공",
3007
+ "timedOut": "요청 시간이 초과되었습니다. 다시 시도해 주세요"
3008
+ }
3009
+ };
3010
+ //#endregion
3011
+ //#region src/canvas/i18n/messages/zh.json
3012
+ var zh_default = {
3013
+ Workspace: {
3014
+ "edges": {
3015
+ "deleteConfirmTitle": "删除连线?",
3016
+ "deleteConfirmDescription": "这条连线没有连接到任何节点,是否删除它?",
3017
+ "delete": "删除",
3018
+ "cancel": "取消"
3019
+ },
3020
+ "handles": {
3021
+ "text": "文本",
3022
+ "image": "图片",
3023
+ "image2": "图片 2",
3024
+ "images": "图片",
3025
+ "end_image": "尾帧图片",
3026
+ "video": "视频",
3027
+ "videos": "视频",
3028
+ "audio": "音频",
3029
+ "speech": "语音",
3030
+ "ref_audio": "参考音频",
3031
+ "ref_text": "参考文本",
3032
+ "document": "文档",
3033
+ "byFeature": { "image-image-gen-video": {
3034
+ "image": "首帧图片",
3035
+ "end_image": "尾帧图片"
3036
+ } }
3037
+ },
3038
+ "modeSwitch": {
3039
+ "createMode": "创作模式",
3040
+ "executeMode": "执行模式",
3041
+ "appMode": "应用模式",
3042
+ "upgradeRequired": "升级订阅以解锁执行模式"
3043
+ },
3044
+ "appView": {
3045
+ "inputsTitle": "输入",
3046
+ "outputsTitle": "结果",
3047
+ "run": "运行",
3048
+ "cancel": "停止",
3049
+ "stepProgress": "第 {current}/{total} 步",
3050
+ "completed": "已完成",
3051
+ "failed": "运行失败",
3052
+ "emptyWorkflow": "画布还是空的,先去搭一个工作流吧",
3053
+ "invalidWorkflow": "工作流存在循环连接,无法运行",
3054
+ "nothingToRun": "这个工作流还没有可运行的步骤",
3055
+ "noOutputsYet": "运行后结果会显示在这里",
3056
+ "dropFilesHere": "拖拽文件到这里,或点击上传",
3057
+ "copyText": "复制",
3058
+ "download": "下载",
3059
+ "goToCreateMode": "去创作模式",
3060
+ "textPlaceholder": "在这里输入…",
3061
+ "fieldType": {
3062
+ "text": "文本",
3063
+ "image": "图片",
3064
+ "audio": "音频",
3065
+ "video": "视频",
3066
+ "model": "3D 模型",
3067
+ "file": "文件"
3068
+ }
3069
+ },
3070
+ "smartIsland": {
3071
+ "category": {
3072
+ "digitalHuman": "数字人",
3073
+ "artDesign": "艺术设计",
3074
+ "videoAd": "影视广告",
3075
+ "docProcessing": "文档处理",
3076
+ "knowledgeLearning": "知识学习",
3077
+ "musicMV": "音乐/MV"
3078
+ },
3079
+ "enterWorkflowName": "请输入工作流名称",
3080
+ "saveSuccess": "保存成功!",
3081
+ "saveFailed": "保存失败,请重试",
3082
+ "generateVideo": "生成视频",
3083
+ "generateAudio": "生成语音",
3084
+ "generateText": "生成文本",
3085
+ "generateImage": "生成图片",
3086
+ "generateMusic": "生成音乐",
3087
+ "generate3D": "生成3D",
3088
+ "detectPose": "姿态",
3089
+ "segmentBody": "人体分割",
3090
+ "estimateNormal": "法线",
3091
+ "extractForeground": "抠图",
3092
+ "captureMotion": "动作捕捉",
3093
+ "firstLastFrameVideo": "首尾帧生成视频",
3094
+ "confirmExecute": "确认执行",
3095
+ "deployModalWorkers": "部署 Modal Worker",
3096
+ "deployModalRunning": "正在部署 Modal worker...",
3097
+ "deployModalSuccess": "Modal worker 部署完成",
3098
+ "deployModalFailed": "Modal 部署失败",
3099
+ "deployModalUnsupported": "仅桌面版支持此操作",
3100
+ "saveAndExecute": "保存并执行",
3101
+ "cancel": "取消",
3102
+ "executeConfirmTitle": "确认执行工作流",
3103
+ "executeConfirmDescSaved": "执行前会保存当前工作流的最新状态,确认执行吗?",
3104
+ "executeConfirmDescNew": "执行前需要先保存工作流。保存后生成的素材将关联到此工作流,方便后续追溯和管理。",
3105
+ "executeWorkflow": "执行工作流",
3106
+ "saveWorkflow": "保存工作流",
3107
+ "executing": "执行中...",
3108
+ "saving": "保存中...",
3109
+ "estimatedCost": "预估费用:",
3110
+ "estimatedTime": "预估用时:",
3111
+ "workflowName": "工作流名称",
3112
+ "workflowNamePlaceholder": "请输入工作流名称",
3113
+ "workflowDescription": "工作流描述",
3114
+ "workflowDescPlaceholder": "请输入工作流描述(可选)",
3115
+ "tooltip3D": "3D",
3116
+ "tooltipDocument": "文档",
3117
+ "tooltipImage": "图片",
3118
+ "tooltipText": "文本",
3119
+ "tooltipVideo": "视频",
3120
+ "tooltipAudio": "音频",
3121
+ "tooltipLink": "链接",
3122
+ "split": "打散",
3123
+ "splitText": "智能拆分",
3124
+ "speechRecognize": "语音识别",
3125
+ "separateAudio": "人声分离",
3126
+ "separateSpeaker": "说话人分离",
3127
+ "separateSound": "提取声音",
3128
+ "denoise": "降噪",
3129
+ "convertVoice": "人声替换",
3130
+ "filter": "筛选",
3131
+ "arrange": "排列组合",
3132
+ "concat": "拼接",
3133
+ "describeReverse": "反推描述",
3134
+ "upscale": "高清放大",
3135
+ "removeSubtitle": "去字幕",
3136
+ "removeWatermark": "去水印",
3137
+ "extractAudioTrack": "提取音轨",
3138
+ "removeVideoAudio": "去除音频",
3139
+ "slice": "切片",
3140
+ "firstFrame": "首帧截图",
3141
+ "lastFrame": "尾帧截图",
3142
+ "editImage": "编辑图片",
3143
+ "editVideo": "编辑视频",
3144
+ "parseDocument": "解析文档",
3145
+ "extractContent": "提取内容",
3146
+ "mergeGroup": "合为一组",
3147
+ "imageFusion": "图片融合",
3148
+ "imagesGenVideo": "参考生视频",
3149
+ "refsGenVideo": "全参考生视频",
3150
+ "rewriteText": "文本改写",
3151
+ "textToSpeech": "转换为语音",
3152
+ "textToSpeechClone": "生成语音(克隆音色)",
3153
+ "textToSpeechPreset": "生成语音(预设音色)",
3154
+ "textToSpeechInstruct": "生成语音(描述音色)",
3155
+ "motionControl": "动作控制",
3156
+ "videoTransfer": "动作迁移",
3157
+ "characterReplace": "人物替换",
3158
+ "merge": "合并",
3159
+ "lipSync": "视频对口型",
3160
+ "lipDub": "配音对口型",
3161
+ "cloneVoice": "克隆语音",
3162
+ "speechGenVideo": "音频生成视频",
3163
+ "repaintMusic": "重绘片段",
3164
+ "coverMusic": "翻唱改风格",
3165
+ "extractStem": "分离音轨",
3166
+ "addTrack": "加轨",
3167
+ "completeMusic": "补全编曲",
3168
+ "musicBrief": "音乐企划"
3169
+ },
3170
+ "toast": {
3171
+ "executing": "执行中...",
3172
+ "completed": "执行完成",
3173
+ "cancelled": "已取消",
3174
+ "cancelling": "取消中...",
3175
+ "failed": "执行失败",
3176
+ "nodes": "节点",
3177
+ "cancelTask": "取消任务",
3178
+ "totalDuration": "总耗时",
3179
+ "taskCompleted": "任务完成",
3180
+ "taskFailed": "任务失败",
3181
+ "taskFailedWithMsg": "任务失败:{error}",
3182
+ "level": "层级 {level}"
3183
+ },
3184
+ "dialog": {
3185
+ "myWorkflows": "我的工作流",
3186
+ "noWorkflows": "暂无工作流",
3187
+ "savedWorkflowsHint": "保存的工作流将在这里展示",
3188
+ "noMore": "没有更多了",
3189
+ "loadSuccess": "加载成功!",
3190
+ "loadFailed": "加载失败,请重试",
3191
+ "open": "打开"
3192
+ },
3193
+ "menu": {
3194
+ "save": "保存",
3195
+ "saveAs": "另存为",
3196
+ "clear": "清空",
3197
+ "confirmClear": "确定要清空当前工作流吗?此操作无法撤销。",
3198
+ "cleared": "已清空工作流",
3199
+ "saveAsNew": "另存为新工作流",
3200
+ "saveWorkflow": "保存工作流",
3201
+ "saveNew": "保存为新工作流",
3202
+ "name": "名称",
3203
+ "enterName": "输入工作流名称",
3204
+ "descOptional": "描述(可选)",
3205
+ "enterDesc": "输入工作流描述",
3206
+ "saving": "保存中...",
3207
+ "update": "更新",
3208
+ "cancel": "取消",
3209
+ "saveSuccess": "保存成功!",
3210
+ "saveFailed": "保存失败,请重试",
3211
+ "exportJson": "导出 JSON",
3212
+ "exportWorkflow": "导出工作流",
3213
+ "exportExecutable": "导出可执行文件",
3214
+ "importJson": "导入 JSON",
3215
+ "importJsonInvalid": "无法解析:不是有效的 JSON 或结构不正确。",
3216
+ "importJsonNoCanvas": "该文件缺少画布数据(需要 originalFlow、flow 或根级 nodes/edges)。",
3217
+ "importJsonSuccess": "已载入当前工作流({nodes} 个节点,{edges} 条连线)",
3218
+ "importJsonReadFailed": "读取文件失败",
3219
+ "exportJsonSuccess": "已开始下载",
3220
+ "exportJsonFailed": "导出失败,请重试"
3221
+ },
3222
+ "nodes": {
3223
+ "base": {
3224
+ "moreActions": "更多操作",
3225
+ "execute": "执行",
3226
+ "cancelExecution": "取消执行",
3227
+ "removeComment": "移除注释",
3228
+ "commentPlaceholder": "为用户添加注释...",
3229
+ "clickToAddComment": "点击添加注释...",
3230
+ "addComment": "添加注释",
3231
+ "delete": "删除",
3232
+ "deleteConfirmTitle": "确认删除",
3233
+ "deleteConfirmDescription": "该节点有 {count} 个下游节点,请选择删除方式。",
3234
+ "deleteNodeOnly": "仅删除当前节点",
3235
+ "deleteNodeAndChildren": "删除当前节点及所有下游节点({count}个)",
3236
+ "deleteChildrenOnly": "仅删除所有下游节点({count}个)",
3237
+ "run": "运行",
3238
+ "preview": "预览",
3239
+ "lock": "锁定节点",
3240
+ "unlock": "解锁节点",
3241
+ "startCombo": "开始组合",
3242
+ "addToCombo": "添加到组合",
3243
+ "removeFromCombo": "移出组合",
3244
+ "edit": "编辑",
3245
+ "cancel": "取消",
3246
+ "confirm": "确定",
3247
+ "fullscreenEdit": "全屏编辑",
3248
+ "startVoice": "开始语音输入",
3249
+ "stopVoice": "停止语音输入",
3250
+ "editText": "编辑文本",
3251
+ "select": "选择",
3252
+ "selected": "已选",
3253
+ "modalNotDeployedTitle": "未检测到 Modal 部署",
3254
+ "modalNotDeployedDescription": "功能「{feature}」需要 Modal App「{app}」。当前未检测到对应部署,是否现在下载/部署?",
3255
+ "modalDeployHint": "1) 配置 MODAL_TOKEN_ID / MODAL_TOKEN_SECRET;2) 确保本地存在 plugins/,服务端会在内存中扫描插件注解生成注册表;3) 确保本机可执行 `python -m modal`(如 pip install modal),再一键部署会根据该注册表对各个插件的 deploy.py 执行 modal deploy。完成后可点「重试」。",
3256
+ "modalDeployDismiss": "取消",
3257
+ "modalDeployAction": "下载并部署",
3258
+ "modalDeploying": "正在部署 Modal Workers…",
3259
+ "modalDeployDone": "部署完成",
3260
+ "modalDeployError": "部署失败",
3261
+ "modalDeployingAction": "部署中…",
3262
+ "modalDeployProgressHint": "已部署 {done}/{total}",
3263
+ "pluginImplementationTitle": "实现",
3264
+ "pluginModelTitle": "模型",
3265
+ "pluginImplementationLoading": "正在加载插件实现列表…",
3266
+ "pluginImplementationEmpty": "未扫描到适用于该能力的插件实现。请在仓库的 plugins/ 目录下添加 Modal 或 API 插件(见 README),然后刷新页面。",
3267
+ "pluginRegistryLoadError": "无法加载插件注册表:{message}",
3268
+ "pluginSelectPlaceholder": "选择一个仓库…",
3269
+ "missingImplTitle": "未配置实现",
3270
+ "missingImplDescription": "该节点尚未安装可用插件(或未选择)。请先在插件管理中安装一个插件,或选择一个已安装的插件,然后再运行。"
3271
+ },
3272
+ "common": {
3273
+ "enterInstructions": "请输入指令...",
3274
+ "manualInput": "输入",
3275
+ "library": "素材库",
3276
+ "addText": "添加文本",
3277
+ "enterText": "输入文本内容...",
3278
+ "descOptional": "补充描述(可选)",
3279
+ "fromUpstreamText": "来自上游文本节点",
3280
+ "videoDesc": "视频描述",
3281
+ "aspectRatio": "宽高比",
3282
+ "resolution": "分辨率",
3283
+ "duration": "时长",
3284
+ "currentSize": "当前尺寸:",
3285
+ "currentDuration": "当前时长:",
3286
+ "upscaleTierLabel": "放大档位(输出长边)",
3287
+ "upscaleTierHint": "宽高比与输入一致,仅将长边放大至对应量级。",
3288
+ "upscaleTier1k": "1K · ~1920",
3289
+ "upscaleTier2k": "2K · ~2560",
3290
+ "upscaleTier4k": "4K · ~3840",
3291
+ "seconds": "秒",
3292
+ "minute": "分钟",
3293
+ "thinkingProcess": "思考过程",
3294
+ "performanceMode": "性能模式",
3295
+ "ecoMode": "💰 性价比模式",
3296
+ "proMode": "⚡ 高性能模式",
3297
+ "modelSelect": "模型",
3298
+ "models": {
3299
+ "imageEdit": "FLUX2 Klein 图片编辑",
3300
+ "imageGen": "Z-Image 文生图",
3301
+ "imageFusion": "FLUX2 Klein 图片融合",
3302
+ "imageGenVideo": "LTX2 图生视频",
3303
+ "features": {
3304
+ "gen-text": "默认(OpenRouter)",
3305
+ "gen-text-gemini": "Gemini",
3306
+ "gen-text-openai": "OpenAI",
3307
+ "split-text": "智能分段",
3308
+ "combine-text": "合并文本",
3309
+ "combine-text-openai": "合并文本(OpenAI)",
3310
+ "combine-text-gemini": "合并文本(Gemini)",
3311
+ "image-fusion": "FLUX2 Klein 融合",
3312
+ "image-gen-text": "图像描述",
3313
+ "video-gen-text": "视频描述",
3314
+ "transcribe": "语音转文字",
3315
+ "transcribe-timestamp": "语音转文字(带时间戳)",
3316
+ "concat-videos": "拼接视频",
3317
+ "extract-audio": "提取音轨",
3318
+ "remove-video-audio": "去除音频(无声视频)",
3319
+ "merge-video-audio": "音视频合并",
3320
+ "get-first-frame": "首帧",
3321
+ "get-last-frame": "尾帧",
3322
+ "parse-document": "文档解析",
3323
+ "split-video": "分镜切段",
3324
+ "link": "链接抓取",
3325
+ "gen-video": "文生视频",
3326
+ "image-gen": "Z-Image 文生图",
3327
+ "gen-music": "ACE-Step 音乐",
3328
+ "text-gen-speech-preset": "语音合成(预设风格)",
3329
+ "image-gen-video": "图生视频",
3330
+ "image-edit": "FLUX2 Klein 编辑",
3331
+ "image-upscale": "图像超分",
3332
+ "video-upscale": "视频超分",
3333
+ "image-describe": "图像理解",
3334
+ "video-describe": "视频理解",
3335
+ "audio-describe": "音频理解",
3336
+ "music-repaint": "音乐重绘",
3337
+ "music-cover": "音乐翻唱",
3338
+ "music-extract": "分离音轨",
3339
+ "music-lego": "添加乐轨",
3340
+ "music-complete": "补全编曲",
3341
+ "music-brief": "音乐企划",
3342
+ "audio-image-gen-video": "语音+图生视频",
3343
+ "speech-text-gen-video": "语音+文生视频",
3344
+ "video-image-gen-video-mix": "视频+图混合",
3345
+ "video-image-gen-video-move": "视频+图驱动",
3346
+ "image-image-gen-video": "图+图生视频",
3347
+ "text-gen-video": "文生视频",
3348
+ "image-gen-model": "图生3D",
3349
+ "speech-video-gen-video": "视频+台词配音对口型",
3350
+ "audio-video-lip-sync": "音频+视频对口型",
3351
+ "text-gen-speech-clone": "音色克隆",
3352
+ "text-gen-speech-instruct": "指令语音",
3353
+ "video-image-move-animal": "视频+图驱动(动物)",
3354
+ "video-image-move": "视频+图驱动(人物)",
3355
+ "video-image-move-muti": "视频+图驱动(多人)",
3356
+ "video-image-move-animal-muti": "视频+图驱动(动物,多人)",
3357
+ "wan-animate-mix": "WAN 混合动画",
3358
+ "subtitle-remove": "去字幕",
3359
+ "remove-watermark": "去水印",
3360
+ "denoise-audio": "降噪",
3361
+ "separate-audio-track": "人声伴奏分离",
3362
+ "separate-speaker": "说话人分离",
3363
+ "convert-voice": "音色替换",
3364
+ "drop-video": "筛选片段",
3365
+ "arrange-group": "批量编排"
3366
+ }
3367
+ },
3368
+ "voice": "音色",
3369
+ "selectVoice": "请选择音色",
3370
+ "previewVoice": "试听当前音色",
3371
+ "uploadVoice": "上传音色",
3372
+ "recordVoice": "录制音色",
3373
+ "voiceClone": "声音克隆",
3374
+ "voicePreset": "预设风格",
3375
+ "voiceDescribe": "自定义描述",
3376
+ "gender": "性别",
3377
+ "selectGender": "选择性别(可选)",
3378
+ "emotion": "情感",
3379
+ "style": "风格",
3380
+ "selectEmotion": "选择情感风格(可选)",
3381
+ "selectStyle": "选择语音风格(可选)",
3382
+ "voiceDescription": "声音描述",
3383
+ "voiceDescriptionPlaceholder": "请输入声音风格描述,例如:温柔甜美的女声,语速稍慢...",
3384
+ "referenceAudio": "参考音频",
3385
+ "noReferenceAudio": "请上传或录制一段参考音频(≥3 秒)",
3386
+ "referenceText": "参考文本",
3387
+ "referenceTextPlaceholder": "可选:参考音频的转写文本,有助于提升克隆质量",
3388
+ "referenceTextCloneHint": "不填则使用 x-vector 快速克隆;填写参考音频转写文本可启用更高质量的 ICL 克隆",
3389
+ "language": "语言",
3390
+ "inputText": "输入文本",
3391
+ "voiceOptions": {
3392
+ "female": "普通女声",
3393
+ "male": "普通男声"
3394
+ }
3395
+ },
3396
+ "titles": {
3397
+ "imageGenVideo": "图片生成视频",
3398
+ "textGenVideo": "文本生成视频",
3399
+ "addText": "添加文本",
3400
+ "textGenText": "文本生成文本",
3401
+ "combineText": "合并文本",
3402
+ "textGenImage": "文本生成图片",
3403
+ "textGenSpeechClone": "生成语音(克隆音色)",
3404
+ "textGenSpeechCloneCompose": "音色克隆(文本+参考音频)",
3405
+ "imageGenVideoCompose": "图生视频(文本+图片)",
3406
+ "textGenSpeechPreset": "生成语音(预设音色)",
3407
+ "textGenSpeechInstruct": "生成语音(描述音色)",
3408
+ "imageFusion": "图片融合",
3409
+ "videoUpscale": "视频高清放大",
3410
+ "videoGenText": "反推描述",
3411
+ "speechRecognize": "语音识别",
3412
+ "textGenMusic": "文本生成音乐",
3413
+ "speechGenVideo": "音频生成视频",
3414
+ "convertVoice": "人声替换",
3415
+ "denoiseAudio": "音频降噪",
3416
+ "fileGenText": "文档解析",
3417
+ "linkGenText": "链接提取",
3418
+ "removeSubtitle": "消除字幕",
3419
+ "removeWatermark": "去除水印",
3420
+ "separateAudio": "音视频分离",
3421
+ "imageGenText": "反推描述",
3422
+ "audioDescribe": "音频理解",
3423
+ "imageGenImage": "图片编辑",
3424
+ "videoEdit": "视频编辑",
3425
+ "imageGenModel": "图片生成3D模型",
3426
+ "imagePose": "姿态检测",
3427
+ "imageBodySeg": "人体部位分割",
3428
+ "imageNormal": "表面法线",
3429
+ "imageMatting": "人像抠图",
3430
+ "videoGenModel": "视频动作捕捉",
3431
+ "imageUpscale": "高清放大",
3432
+ "separateTrack": "人声提取",
3433
+ "separateSpeaker": "说话人分离",
3434
+ "separateSound": "声音分离",
3435
+ "speechImageGenVideo": "语音图片生成视频",
3436
+ "concatVideo": "视频拼接",
3437
+ "mergeVideoAudio": "音视频合并",
3438
+ "audioVideoLipSync": "视频对口型",
3439
+ "speechTextGenVideo": "语音文本生成视频",
3440
+ "speechVideoGenVideo": "视频配音对口型",
3441
+ "imageImageGenVideo": "首尾帧生成视频",
3442
+ "imagesGenVideo": "多图参考生视频",
3443
+ "refsGenVideo": "全模态参考生视频",
3444
+ "textAudioGenSpeech": "文本音频生成语音",
3445
+ "videoImageMix": "视频图片混合",
3446
+ "videoImageMove": "视频图片迁移",
3447
+ "splitVideo": "视频分割",
3448
+ "splitText": "智能拆分",
3449
+ "getFirstFrame": "首帧截图",
3450
+ "getLastFrame": "尾帧截图",
3451
+ "extractAudioTrack": "提取音轨",
3452
+ "removeVideoAudio": "去除音频(无声视频)",
3453
+ "musicRepaint": "音乐重绘",
3454
+ "musicCover": "音乐翻唱",
3455
+ "musicExtract": "分离音轨",
3456
+ "musicLego": "添加乐轨",
3457
+ "musicComplete": "补全编曲",
3458
+ "musicBrief": "音乐企划"
3459
+ },
3460
+ "options": {
3461
+ "portrait": "竖屏",
3462
+ "landscape": "宽屏",
3463
+ "square": "正方形",
3464
+ "standard": "标准",
3465
+ "verticalStandard": "竖标",
3466
+ "human": "人物",
3467
+ "animal": "动物",
3468
+ "single": "单人",
3469
+ "multi": "多人"
3470
+ },
3471
+ "actions": {
3472
+ "generateVideo": "生成视频",
3473
+ "generateImage": "生成图片",
3474
+ "generateSpeech": "生成语音",
3475
+ "startFusion": "开始融合",
3476
+ "convertText": "转换文本",
3477
+ "startUpscale": "开始放大",
3478
+ "describeVideo": "描述视频",
3479
+ "recognizeSpeech": "识别语音",
3480
+ "generateMusic": "生成音乐",
3481
+ "generateAudio": "生成音频",
3482
+ "startReplace": "开始替换",
3483
+ "startDenoise": "开始降噪",
3484
+ "parseDocument": "解析文档",
3485
+ "extractContent": "提取内容",
3486
+ "removeSubtitle": "消除字幕",
3487
+ "removeWatermark": "去除水印",
3488
+ "compressVideo": "压缩视频",
3489
+ "extractAudio": "开始分离",
3490
+ "describeImage": "描述图片",
3491
+ "describeAudio": "描述音频",
3492
+ "editImage": "编辑图片",
3493
+ "editVideo": "编辑视频",
3494
+ "generate3DModel": "生成3D模型",
3495
+ "detectPose": "检测姿态",
3496
+ "segmentBody": "分割人体部位",
3497
+ "estimateNormal": "估计法线",
3498
+ "extractForeground": "提取前景",
3499
+ "captureMotion": "捕捉动作",
3500
+ "imageUpscale": "高清放大",
3501
+ "extractVocals": "提取人声",
3502
+ "startSeparation": "开始分离",
3503
+ "concatVideo": "拼接视频",
3504
+ "startMerge": "开始合并",
3505
+ "lipDub": "配音对口型",
3506
+ "motionTrackGenerate": "按轨迹生成",
3507
+ "splitVideo": "分割视频",
3508
+ "splitText": "智能拆分",
3509
+ "getFirstFrame": "截取首帧",
3510
+ "getLastFrame": "截取尾帧",
3511
+ "extractAudioTrack": "提取音轨",
3512
+ "removeVideoAudio": "去除音频",
3513
+ "repaintMusic": "开始重绘",
3514
+ "coverMusic": "生成翻唱",
3515
+ "extractStem": "开始分离",
3516
+ "separateSound": "开始分离",
3517
+ "addTrack": "生成乐轨",
3518
+ "completeMusic": "开始补全",
3519
+ "musicBrief": "生成企划"
3520
+ },
3521
+ "params": {
3522
+ "prompt": "提示词",
3523
+ "model": "模型",
3524
+ "modelDefault": "默认 (OpenRouter 免费路由)",
3525
+ "geminiModel": "Gemini 模型",
3526
+ "openaiModel": "OpenAI 模型",
3527
+ "style": "风格",
3528
+ "sampler": "采样器",
3529
+ "seed": "种子",
3530
+ "steps": "步数",
3531
+ "cfg": "提示词相关性"
3532
+ },
3533
+ "emotions": {
3534
+ "none": "无",
3535
+ "happy": "开心",
3536
+ "angry": "生气",
3537
+ "sad": "伤心",
3538
+ "fear": "恐惧",
3539
+ "surprised": "惊讶",
3540
+ "confusion": "困惑",
3541
+ "empathy": "共情",
3542
+ "embarrass": "尴尬",
3543
+ "excited": "兴奋",
3544
+ "depressed": "氮丧",
3545
+ "admiration": "敬佩",
3546
+ "coldness": "冷淡"
3547
+ },
3548
+ "genders": {
3549
+ "none": "无",
3550
+ "male": "男声",
3551
+ "female": "女声"
3552
+ },
3553
+ "styles": {
3554
+ "none": "无",
3555
+ "serious": "严肃",
3556
+ "arrogant": "傲慢",
3557
+ "child": "童声",
3558
+ "older": "老年",
3559
+ "girl": "少女",
3560
+ "pure": "纯真",
3561
+ "sister": "御姐",
3562
+ "sweet": "甜美",
3563
+ "exaggerated": "夸张",
3564
+ "ethereal": "空灵",
3565
+ "whisper": "耳语",
3566
+ "generous": "豪爽",
3567
+ "recite": "朗诵",
3568
+ "act_coy": "撒娇",
3569
+ "warm": "温暖",
3570
+ "shy": "害羞",
3571
+ "comfort": "安慰",
3572
+ "authority": "权威",
3573
+ "chat": "闲聊",
3574
+ "radio": "电台",
3575
+ "soulful": "深情",
3576
+ "gentle": "温柔",
3577
+ "story": "故事",
3578
+ "vivid": "生动",
3579
+ "program": "主持",
3580
+ "news": "新闻",
3581
+ "advertising": "广告",
3582
+ "roar": "咆哮",
3583
+ "murmur": "低语",
3584
+ "shout": "呐喊",
3585
+ "deeply": "低沉",
3586
+ "loudly": "高亢"
3587
+ },
3588
+ "recorder": {
3589
+ "title": "录制音色",
3590
+ "desc": "录制一段音频作为语音合成的参考音色",
3591
+ "start": "开始录制",
3592
+ "stop": "停止录制",
3593
+ "preview": "试听",
3594
+ "retry": "重录",
3595
+ "uploading": "上传中...",
3596
+ "confirm": "确认使用",
3597
+ "cancel": "取消",
3598
+ "recording": "正在录制...",
3599
+ "recorded": "录制完成",
3600
+ "micError": "无法访问麦克风,请确保已授予权限",
3601
+ "uploadError": "上传失败,请重试",
3602
+ "uploadFailed": "上传失败"
3603
+ },
3604
+ "imageFusion": {
3605
+ "loading": "加载中...",
3606
+ "imageReference": "图片引用",
3607
+ "imageReferenceHint": "点击图片可在提示词中插入引用",
3608
+ "fusionPrompt": "融合提示词",
3609
+ "fusionPromptPlaceholder": "输入融合指令,例如:保持图1的风格、融合所有图片的特征、突出图2的色彩、结合图3的构图等",
3610
+ "imageLabel": "图"
3611
+ },
3612
+ "refsGenVideo": {
3613
+ "videoReference": "视频引用",
3614
+ "videoLabel": "视频",
3615
+ "audioReference": "音频引用",
3616
+ "audioLabel": "音频",
3617
+ "referenceHint": "最多 9 张图、3 段视频、3 段音频(共 12 个文件);音频需搭配图片或视频。点击缩略图可在提示词中插入引用。",
3618
+ "promptPlaceholder": "描述想要的视频,例如:图1的角色用音频1的声音说话,场景延续视频1……"
3619
+ },
3620
+ "video": { "fileCount": "处理文件数:" },
3621
+ "speechRecognize": { "withTimestamp": "带时间戳" },
3622
+ "music": {
3623
+ "handleStyle": "曲风",
3624
+ "handleLyric": "歌词",
3625
+ "referenceAudio": "参考音频",
3626
+ "inputLyrics": "输入歌词",
3627
+ "audioDuration": "音频时长",
3628
+ "currentDuration": "当前时长:",
3629
+ "seconds": "秒",
3630
+ "15s": "15秒",
3631
+ "30s": "30秒",
3632
+ "1min": "1分钟",
3633
+ "2min": "2分钟",
3634
+ "styleSettings": "音乐风格",
3635
+ "voiceGender": "声音",
3636
+ "genders": {
3637
+ "male": "男声",
3638
+ "female": "女声"
3639
+ },
3640
+ "timbre": "音色",
3641
+ "timbres": {
3642
+ "bright": "明亮",
3643
+ "dark": "深沉",
3644
+ "warm": "温暖",
3645
+ "soft": "柔和",
3646
+ "rock": "摇滚",
3647
+ "vocal": "人声"
3648
+ },
3649
+ "genre": "流派",
3650
+ "genres": {
3651
+ "pop": "流行",
3652
+ "rock": "摇滚",
3653
+ "electronic": "电子",
3654
+ "hiphop": "嘻哈",
3655
+ "jazz": "爵士",
3656
+ "blues": "蓝调",
3657
+ "classical": "古典",
3658
+ "folk": "民谣",
3659
+ "country": "乡村",
3660
+ "rnb": "R&B",
3661
+ "kpop": "K-Pop",
3662
+ "reggae": "雷鬼",
3663
+ "soul": "灵魂乐",
3664
+ "dance": "舞曲",
3665
+ "rap": "说唱",
3666
+ "classicRock": "经典摇滚",
3667
+ "hardRock": "硬摇滚",
3668
+ "rockabilly": "乡村摇滚",
3669
+ "dancepop": "舞曲流行",
3670
+ "house": "浩室",
3671
+ "deephouse": "深浩室",
3672
+ "experimental": "实验音乐",
3673
+ "experimentalPop": "实验流行",
3674
+ "popPunk": "流行朋克",
3675
+ "rockAndRoll": "摇滚乐",
3676
+ "popRock": "流行摇滚"
3677
+ },
3678
+ "mood": "情感",
3679
+ "moods": {
3680
+ "happy": "欢快",
3681
+ "sad": "悲伤",
3682
+ "romantic": "浪漫",
3683
+ "melancholic": "忧郁",
3684
+ "uplifting": "振奋",
3685
+ "intense": "激烈",
3686
+ "emotional": "感性",
3687
+ "angry": "愤怒"
3688
+ },
3689
+ "instrumentAndRhythm": "乐器与节奏",
3690
+ "instrument": "乐器",
3691
+ "selectedCount": "已选 {count} 个",
3692
+ "instruments": {
3693
+ "piano": "钢琴",
3694
+ "guitar": "吉他",
3695
+ "acousticGuitar": "木吉他",
3696
+ "electricGuitar": "电吉他",
3697
+ "drums": "鼓",
3698
+ "synthesizer": "合成器",
3699
+ "violin": "小提琴",
3700
+ "saxophone": "萨克斯",
3701
+ "bass": "贝斯",
3702
+ "beats": "节拍采样",
3703
+ "strings": "弦乐",
3704
+ "cello": "大提琴",
3705
+ "trumpet": "小号",
3706
+ "harmonica": "口琴",
3707
+ "banjo": "班卓琴",
3708
+ "fiddle": "民间小提琴",
3709
+ "brass": "铜管乐器",
3710
+ "doubleBass": "低音提琴"
3711
+ },
3712
+ "bpm": "节拍速度",
3713
+ "slow": "慢",
3714
+ "moderate": "中等",
3715
+ "fast": "快",
3716
+ "songTitle": "歌曲名称",
3717
+ "songTitlePlaceholder": "输入歌曲名称(可选)",
3718
+ "noTagsSelected": "未选择标签",
3719
+ "tagsPlaceholder": "例如:female, pop, bright, piano, happy, 120bpm",
3720
+ "tagsHint": "输入音乐风格标签,用逗号分隔,如性别、流派、音色、乐器、情感、BPM等",
3721
+ "fromUpstreamReadonly": "来自上游(只读)",
3722
+ "lyricsPlaceholder": "输入歌词(未连接歌词输入时)",
3723
+ "language": "语言",
3724
+ "keyscale": "调式",
3725
+ "auto": "自动"
3726
+ },
3727
+ "musicTasks": {
3728
+ "promptLabel": "描述",
3729
+ "promptPlaceholder": "描述音乐风格、情绪、乐器…",
3730
+ "lyricsLabel": "歌词",
3731
+ "lyricsPlaceholder": "歌词(可选)…",
3732
+ "startTime": "开始(秒)",
3733
+ "endTime": "结束(秒)",
3734
+ "strength": "强度",
3735
+ "track": "乐轨",
3736
+ "tracks": "要添加的乐轨",
3737
+ "instrumental": "纯音乐",
3738
+ "ideaPlaceholder": "用一句话描述你想要的歌曲…",
3739
+ "sourceAudio": "原曲",
3740
+ "refAudio": "参考音频",
3741
+ "trackOptions": {
3742
+ "vocals": "人声",
3743
+ "backing_vocals": "和声",
3744
+ "drums": "鼓",
3745
+ "percussion": "打击乐",
3746
+ "bass": "贝斯",
3747
+ "guitar": "吉他",
3748
+ "keyboard": "键盘",
3749
+ "synth": "合成器",
3750
+ "strings": "弦乐",
3751
+ "brass": "铜管",
3752
+ "woodwinds": "木管",
3753
+ "fx": "音效"
3754
+ }
3755
+ },
3756
+ "speechGenVideo": {
3757
+ "loading": "加载中...",
3758
+ "inputContent": "输入内容",
3759
+ "audio": "音频",
3760
+ "connectAudioHint": "请连接音频节点或上传音频文件",
3761
+ "audioPromptLabel": "配音提示词",
3762
+ "audioPromptPlaceholder": "输入音频配音提示词"
3763
+ },
3764
+ "convertVoice": {
3765
+ "voiceLabel": "音色:",
3766
+ "selectVoice": "请选择音色",
3767
+ "previewVoice": "试听当前音色",
3768
+ "uploadVoice": "上传音色",
3769
+ "recordVoice": "录制音色",
3770
+ "recordAudio": "录制音频",
3771
+ "recordHint": "您可以在这里录制音频。",
3772
+ "recordNeedImpl": "音频录制功能需要实现",
3773
+ "done": "完成"
3774
+ },
3775
+ "removeWatermark": { "hint": "自动识别并去除 Sora 视频水印" },
3776
+ "videoGenText": {
3777
+ "promptLabel": "自定义提示词",
3778
+ "promptPlaceholder": "留空使用默认提示词,或输入自定义指令,例如:只描述视频中的对话内容..."
3779
+ },
3780
+ "imageGenText": {
3781
+ "promptLabel": "自定义提示词",
3782
+ "promptPlaceholder": "留空使用默认提示词,或输入自定义指令,例如:只描述画面主体、风格、文字内容..."
3783
+ },
3784
+ "audioDescribe": {
3785
+ "promptLabel": "自定义提示词",
3786
+ "promptPlaceholder": "留空使用默认提示词,或输入自定义指令,例如:描述这段音频的曲风、情绪、乐器或人声…"
3787
+ },
3788
+ "textGenText": { "instructions": "指令" },
3789
+ "lipDub": {
3790
+ "targetDialogue": "目标台词(提示词)",
3791
+ "targetDialoguePlaceholder": "写入完整提示词,需包含角色描述与要说的目标语言台词(模型不会自动翻译)",
3792
+ "promptHint": "输出分辨率跟随参考视频。台词宜写完整提示词(含角色与目标语言对白,模型不自动翻译),长度接近原片;仅支持单说话人。"
3793
+ },
3794
+ "motionTrack": {
3795
+ "connectHint": "请连接首帧图片、参考视频(自动提取并迁移其运动),以及文本提示词(仅描述外观/风格)。",
3796
+ "controlVideo": "参考视频",
3797
+ "promptPlaceholder": "描述外观与风格;运动从参考视频中自动提取。",
3798
+ "promptHint": "提示词仅描述外观与风格;运动会从参考视频自动提取。时长滑块用于裁剪参考视频长度。",
3799
+ "missing": "还需提供:{items}"
3800
+ },
3801
+ "lipSync": {
3802
+ "scenePrompt": "场景描述(可选)",
3803
+ "scenePromptPlaceholder": "描述画面与说话人,例如:一位女性对着镜头说话。口型由连接的音频驱动,不要在这里写台词全文。",
3804
+ "audioDrivenHint": "口型与配音由音频轨决定;音频时长宜与参考视频接近。输出默认 720p。"
3805
+ },
3806
+ "imageEdit": {
3807
+ "performanceMode": "性能模式",
3808
+ "ecoMode": "💰 性价比(FLUX.2 Klein 9B)",
3809
+ "proMode": "⚡ 高性能模式",
3810
+ "editInstruction": "编辑指令",
3811
+ "fromUpstream": "(来自上游节点)",
3812
+ "editPlaceholder": "输入图片编辑指令,例如:提高对比度、调整色温为暖色、增强细节等"
3813
+ },
3814
+ "videoEdit": {
3815
+ "editInstruction": "编辑指令",
3816
+ "fromUpstream": "(来自上游节点)",
3817
+ "editPlaceholder": "输入视频编辑指令,例如:去除字幕、应用水彩风格、将天空替换为日落",
3818
+ "connectTextVideo": "请连接文本节点与视频节点"
3819
+ },
3820
+ "compose": {
3821
+ "loading": "加载中...",
3822
+ "mediaFiles": "媒体文件",
3823
+ "image": "图片",
3824
+ "audio": "音频",
3825
+ "video": "视频",
3826
+ "text": "文本",
3827
+ "noText": "无文本",
3828
+ "inputContent": "输入内容",
3829
+ "videoFiles": "视频文件",
3830
+ "connectImageAudio": "请确保已连接一张图片和一个音频文件",
3831
+ "connectVideo": "请连接至少一个视频文件",
3832
+ "connectImageVideoAudio": "请确保已连接一张图片、一个视频和一个音频文件",
3833
+ "connectTextAudio": "请确保已连接文本内容和音频文件",
3834
+ "connectTextReferenceAudio": "请连接文本节点与音频节点(参考音色)",
3835
+ "connectTextImage": "请连接文本节点与图片节点",
3836
+ "connectTextVideoNode": "请连接视频节点与文本节点(目标台词写入提示词)",
3837
+ "referenceAudio": "参考音频",
3838
+ "referenceTextOptional": "参考文本(可选,提升克隆质量)",
3839
+ "connectVideoAudio": "请确保已连接视频和音频文件",
3840
+ "generatePromptLabel": "生成提示词",
3841
+ "generatePromptPlaceholder": "输入视频生成提示词,描述要生成的视频内容、风格、动作等(可选)",
3842
+ "inputText": "输入文本",
3843
+ "inputTextPlaceholder": "输入文本内容",
3844
+ "describeVideo": "请描述您想生成的视频内容...",
3845
+ "firstFrame": "首帧",
3846
+ "lastFrame": "尾帧",
3847
+ "connectTwoImages": "请确保已连接两张图片(首帧和尾帧)",
3848
+ "inputData": "输入数据",
3849
+ "connectTextAudioNode": "请连接文本和音频节点",
3850
+ "emotion": "情感:",
3851
+ "style": "风格:",
3852
+ "selectEmotion": "选择情感风格(可选)",
3853
+ "selectStyle": "选择语音风格(可选)",
3854
+ "lipSync": "对口型",
3855
+ "connectImageVideo": "请确保已连接一张图片和一个视频文件",
3856
+ "startSlice": "开始切片"
3857
+ },
3858
+ "modal": {
3859
+ "audioPreview": "音频预览",
3860
+ "audio": "音频",
3861
+ "audios": "音频 ({count})",
3862
+ "loading": "加载中...",
3863
+ "unavailable": "内容无法加载",
3864
+ "more": "更多",
3865
+ "moreOptions": "更多选项",
3866
+ "actions": "操作",
3867
+ "textPreview": "文本预览",
3868
+ "text": "文本",
3869
+ "texts": "文本 ({count})",
3870
+ "imagePreview": "图片预览",
3871
+ "image": "图片",
3872
+ "images": "图片 ({count})",
3873
+ "videoPreview": "视频预览",
3874
+ "video": "视频",
3875
+ "videos": "视频 ({count})",
3876
+ "file": "文件",
3877
+ "files": "文件 ({count})",
3878
+ "link": "链接",
3879
+ "links": "链接 ({count})",
3880
+ "fullScreenPreview": "全屏预览",
3881
+ "fullScreenWaterfall": "全屏瀑布流预览",
3882
+ "model3DPreview": "3D模型预览",
3883
+ "model3D": "3D模型",
3884
+ "models3D": "3D模型 ({count})",
3885
+ "resetView": "重置视图",
3886
+ "playAnimation": "播放动画",
3887
+ "pauseAnimation": "暂停动画",
3888
+ "downloadModel": "下载模型",
3889
+ "loading3DModel": "正在加载3D模型...",
3890
+ "errorLoadingModel": "模型加载出错",
3891
+ "dragToRotate": "左键拖拽旋转 | 滚轮缩放 | 点击重置居中",
3892
+ "noModelLoaded": "未加载3D模型",
3893
+ "loadingPreview": "加载预览中...",
3894
+ "unsupportedFormat": "不支持的格式",
3895
+ "supportedFormats": "支持的格式",
3896
+ "download": "下载",
3897
+ "textEditor": "编辑文本",
3898
+ "enterText": "请输入文本内容..."
3899
+ },
3900
+ "add": {
3901
+ "addAudio": "添加音频",
3902
+ "addImage": "添加图片",
3903
+ "addVideo": "添加视频",
3904
+ "addText": "添加文本",
3905
+ "addFile": "添加文件",
3906
+ "addModel": "添加3D模型",
3907
+ "addLink": "添加链接",
3908
+ "record": "录音",
3909
+ "recordVideo": "录像",
3910
+ "upload": "上传",
3911
+ "library": "素材库",
3912
+ "recorded": "已录制",
3913
+ "uploading": "上传中",
3914
+ "confirmAndUpload": "确认并上传",
3915
+ "dropToUpload": "释放文件以上传",
3916
+ "dragOrClick": "拖拽文件到此处或点击上传",
3917
+ "supportedAudioFormats": "支持 MP3, WAV, OGG, M4A 格式",
3918
+ "supportedImageFormats": "支持常见图片格式",
3919
+ "supportedVideoFormats": "支持 MP4, MOV, WEBM 格式",
3920
+ "browseFiles": "浏览文件",
3921
+ "canvas": "涂鸦",
3922
+ "camera": "相机",
3923
+ "openCanvas": "打开涂鸦板",
3924
+ "canvasDrawing": "涂鸦绘制",
3925
+ "canvasDrawingHint": "在下面的画板上绘制,然后点击完成保存",
3926
+ "clearCanvas": "清空画布",
3927
+ "finishAndSave": "完成并保存",
3928
+ "clickToStartCamera": "点击启动相机",
3929
+ "takePhoto": "拍照",
3930
+ "closeCamera": "关闭相机",
3931
+ "cameraError": "无法访问摄像头",
3932
+ "cameraErrorHint": "请确保:1. 使用HTTPS或localhost 2. 允许摄像头权限 3. 摄像头未被其他应用占用",
3933
+ "inputText": "输入文本",
3934
+ "textPlaceholder": "请输入文本内容...",
3935
+ "generate": "确认",
3936
+ "linkPlaceholder": "请输入链接",
3937
+ "extractContent": "提取内容",
3938
+ "cancel": "取消",
3939
+ "startRecordingVideo": "开始录制视频",
3940
+ "addDocument": "添加文档",
3941
+ "supportedDocFormats": "支持多种文档格式",
3942
+ "dragModel": "拖拽3D模型文件到此处或点击上传",
3943
+ "supportedModelFormats": "支持格式",
3944
+ "modelHint": "提示: 支持以下3D文件格式:"
3945
+ },
3946
+ "batch": {
3947
+ "arrangeGroup": "排列组合",
3948
+ "startArrange": "开始排列",
3949
+ "describeRequirements": "请描述您的要求...",
3950
+ "groupCount": "分组数量",
3951
+ "allowDuplicate": "允许重复",
3952
+ "videoFilter": "视频筛选",
3953
+ "startFilter": "开始筛选"
3954
+ },
3955
+ "voice": {
3956
+ "timbre": "音色:",
3957
+ "selectTimbre": "请选择音色",
3958
+ "previewTimbre": "试听当前音色",
3959
+ "uploadTimbre": "上传音色",
3960
+ "recordTimbre": "录制音色",
3961
+ "emotion": "情感:",
3962
+ "replaceTimbre": "替换音色"
3963
+ },
3964
+ "separateSound": {
3965
+ "textLabel": "要提取的声音",
3966
+ "textPlaceholder": "如:狗叫、钢琴、背景里的警笛"
3967
+ }
3968
+ }
3969
+ },
3970
+ Upload: {
3971
+ "failed": "上传失败,请稍后重试",
3972
+ "fileFailed": "文件 \"{name}\" 上传失败:{reason}",
3973
+ "partialFailed": "部分或全部文件上传失败",
3974
+ "maxFilesExceeded": "最多允许 {max} 个文件",
3975
+ "fileTooLarge": "文件 \"{name}\" 过大(上限 {max}MB)",
3976
+ "fileTypeNotAccepted": "文件 \"{name}\" 类型不被支持",
3977
+ "readImageFailed": "读取图片信息失败",
3978
+ "readVideoFailed": "读取视频信息失败"
3979
+ },
3980
+ LibInput: {
3981
+ "deleteSuccess": "素材已删除",
3982
+ "deleteFailed": "删除失败",
3983
+ "emptyText": "空文本",
3984
+ "loadFailed": "加载素材失败",
3985
+ "added": "已添加素材",
3986
+ "retry": "重试",
3987
+ "emptyMaterial": "暂无{type}素材",
3988
+ "typeImage": "图片",
3989
+ "typeVideo": "视频",
3990
+ "typeAudio": "音频",
3991
+ "typeText": "文本",
3992
+ "typeFile": "文件",
3993
+ "typeModel": "模型",
3994
+ "favoriteHint": "点击节点上的 ❤️ 图标收藏素材",
3995
+ "portfolio": "作品集"
3996
+ },
3997
+ Recorder: {
3998
+ "audioStart": "开始录音",
3999
+ "audioCancel": "取消",
4000
+ "audioCancelTooltip": "取消录音",
4001
+ "audioFinish": "完成",
4002
+ "audioFinishTooltip": "完成录音",
4003
+ "audioPermissionError": "无法访问麦克风。请确保已授予权限。",
4004
+ "videoPermissionError": "无法访问摄像头和麦克风。请确保已授予权限。",
4005
+ "videoStart": "开始录制",
4006
+ "videoStop": "停止录制"
4007
+ },
4008
+ Languages: {
4009
+ "auto": "自动",
4010
+ "zh": "中文",
4011
+ "ja": "日本語",
4012
+ "yue": "粤语",
4013
+ "en": "英语",
4014
+ "ko": "韩语",
4015
+ "fr": "法语",
4016
+ "es": "西班牙语",
4017
+ "de": "德语",
4018
+ "ru": "俄语",
4019
+ "pt": "葡萄牙语",
4020
+ "it": "意大利语"
4021
+ },
4022
+ Errors: {
4023
+ "somethingWentWrong": "出现错误",
4024
+ "tryAgain": "重试",
4025
+ "details": "详情",
4026
+ "copy": "复制",
4027
+ "copied": "已复制",
4028
+ "close": "关闭",
4029
+ "needHelp": "解决不了?来社群里找我们:",
4030
+ "wechatGroup": "微信群",
4031
+ "wechatQrAlt": "微信群二维码"
4032
+ },
4033
+ Api: {
4034
+ "unknownError": "未知错误",
4035
+ "unauthorized": "未授权",
4036
+ "accessDenied": "拒绝访问",
4037
+ "requestFailed": "请求失败:{status} {statusText}",
4038
+ "success": "操作成功",
4039
+ "timedOut": "请求超时,请重试"
4040
+ }
4041
+ };
4042
+ //#endregion
4043
+ //#region src/canvas/i18n/messages.ts
4044
+ /**
4045
+ * Message catalogs the canvas ships with. A host merges the catalog for its
4046
+ * locale into its own messages (`{ ...canvasMessages[locale], ...own }`) and
4047
+ * provides them through `use-intl`'s `IntlProvider` (or next-intl's
4048
+ * `NextIntlClientProvider`, which is the same context).
4049
+ */
4050
+ const CANVAS_LOCALES = [
4051
+ "en",
4052
+ "zh",
4053
+ "ja",
4054
+ "ko"
4055
+ ];
4056
+ const canvasMessages = {
4057
+ en: en_default,
4058
+ zh: zh_default,
4059
+ ja: ja_default,
4060
+ ko: ko_default
4061
+ };
4062
+ function isCanvasLocale(value) {
4063
+ return CANVAS_LOCALES.includes(value);
4064
+ }
4065
+ //#endregion
4066
+ export { CANVAS_LOCALES, canvasMessages, isCanvasLocale };