-
Notifications
You must be signed in to change notification settings - Fork 9.7k
Expand file tree
/
Copy pathen.ts
More file actions
4143 lines (4134 loc) · 264 KB
/
Copy pathen.ts
File metadata and controls
4143 lines (4134 loc) · 264 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
import type { Dict } from '../types';
export const en: Dict = {
'chat.amrCard.switchTitle': 'Model call failed — this run is paused',
'chat.amrCard.switchBody': 'Switch to Open Design Cloud — no API key setup needed. After you sign in, authorize, and top up, this run retries automatically.',
'chat.amrCard.chipOfficial': 'Official hosting',
'chat.amrCard.chipNoKey': 'No API key',
'chat.amrCard.chipAutoRetry': 'Auto-retry after sign-in',
'chat.amrCard.switchCta': 'Switch to Open Design Cloud & retry',
'chat.amrError.authMessage': 'Your Open Design Cloud account isn\'t authorized yet. Authorize it and this run retries automatically.',
'chat.amrError.balanceMessage': 'Your Open Design Cloud balance has run out. Top up to keep this run going.',
'chat.amrError.authorizeCta': 'Authorize & retry',
'chat.amrError.rechargeCta': 'Top up',
'chat.amrBalanceGate.title': 'Upgrade to keep creating',
'chat.amrBalanceGate.message': 'Not enough credits ({balance} left). Upgrade your plan or top up, and this task can start right away.',
'chat.amrBalanceGate.benefitsTitle': 'What you get with Open Design Cloud',
'chat.amrBalanceGate.benefit1': 'No API keys — top models included',
'chat.amrBalanceGate.benefit2': 'SOTA design agent built in, zero setup',
'chat.amrBalanceGate.benefit3': 'Official service you can rely on',
'chat.amrBalanceGate.benefit4': 'Always improving: one-click publishing, multimodal generation, teams, and more',
'chat.amrBalanceGate.laterCta': 'Not now',
'chat.amrBalanceGate.plansCta': 'Upgrade plan',
'chat.amrBalanceGate.signedOutTitle': 'Sign in to start creating',
'chat.amrBalanceGate.signedOutMessage': 'You\'re using the Open Design Cloud agent — sign in and this task can start right away.',
'chat.amrBalanceGate.signInCta': 'Sign in',
'chat.amrBalanceGate.watchingWallet': 'We\'ll continue automatically once your balance updates.',
'chat.amrLowBalance.title': 'Running low on credits',
'chat.amrLowBalance.message': 'Only {balance} left — likely not enough to finish this task. Top up or upgrade your plan first.',
'chat.amrLowBalance.rechargeCta': 'Top up',
'chat.amrLowBalance.proceedCta': 'Start anyway',
'chat.amrLowBalance.dontRemind': 'Don\'t ask again',
'chat.antigravityError.launchTerminalCta': 'Sign in via terminal',
'chat.antigravityError.launchSwitchModelCta': 'Switch model in terminal',
'chat.connectionDropped': 'The connection to the model service dropped before the response finished — usually an unstable network or proxy. Please retry.',
'chat.runError.title.authRequired': 'Authorization required',
'chat.runError.title.balance': 'Insufficient balance',
'chat.runError.title.connectionDropped': 'Connection dropped',
'chat.runError.title.signInRequired': 'Sign-in required',
'chat.runError.title.rateLimited': 'Usage limit reached',
'chat.runError.title.generic': 'Task failed',
'chat.runError.signInMessage.amr': 'The Open Design Cloud agent isn\'t signed in yet — sign in to start using it.',
'chat.runError.signInMessage.other': '{agent} isn\'t signed in. Check its sign-in status locally. We recommend the Open Design Cloud agent — steadier and better value.',
'chat.runError.agentFallback': 'the agent',
'chat.runError.sourceLabel': 'Error source',
'chat.runError.sourceExpandAria': 'Expand error source',
'chat.runError.sourceCollapseAria': 'Collapse error source',
'chat.runError.title.cliMissing': 'Agent not installed',
'chat.runError.title.promptTooLarge': 'Input too long',
'chat.runError.title.modelUnavailable': 'Model unavailable',
'chat.runError.title.upstreamUnavailable': 'Service temporarily unavailable',
'chat.runError.title.toolLoop': 'Stuck in a loop',
'chat.runError.title.outputInvalid': 'Invalid model output',
'chat.runError.title.runtimeConfig': 'Configuration error',
'chat.runError.cliMissingMessage': 'The {agent} command-line tool wasn\'t found. Install it and make sure it\'s on your PATH, then retry.',
'chat.runError.promptTooLargeMessage': 'This turn exceeded the model\'s context limit. Shorten your prompt, remove attachments, or start a new conversation, then retry.',
'chat.runError.modelUnavailableMessage': 'The selected model is unavailable or does not exist. Switch to another model in Settings, then retry.',
'chat.runError.rateLimitedMessage': 'You\'ve hit the model service\'s usage limit. Wait a moment and retry, or switch to another model or service.',
'chat.runError.upstreamUnavailableMessage': 'The model service is temporarily unavailable — usually upstream instability or a network/proxy issue. Retry in a moment.',
'chat.runError.toolLoopMessage': '{agent} kept repeating the same action without progress and was stopped. Check the target file or command, then retry.',
'chat.runError.outputInvalidMessage': 'The model produced invalid output and this turn was interrupted. Retrying usually recovers.',
'chat.runError.runtimeConfigMessage': 'The selected agent\'s runtime configuration is invalid, so the run could not start. Update to the latest version or contact support.',
'chat.runError.title.quotaExhausted': "Quota exhausted",
'chat.runError.title.timedOut': "Timed out",
'chat.runError.title.emptyOutput': "No output produced",
'chat.runError.title.sessionExpired': "Session expired",
'chat.runError.title.gitBashMissing': "Git Bash missing",
'chat.runError.quotaExhaustedMessage': "Your model service's quota or billing limit is used up, so retrying won't help. Top up with your provider, or switch to another model or service.",
'chat.runError.workspaceCreditsMessage': "Your workspace is out of credits. Add credits (or ask your workspace owner to refill), or switch to another model or service.",
'chat.runError.timedOutMessage': "This run took too long and was stopped. Try again, or narrow the task and retry.",
'chat.runError.inactivityTimeoutMessage': "The agent went quiet for too long and was stopped as a timeout. Retrying usually gets it moving again.",
'chat.runError.emptyOutputMessage': "The agent finished without producing any output. This is usually temporary, so retry to run it again.",
'chat.runError.sessionExpiredMessage': "The resumed session had expired. It has been reset, so retry to start a fresh run.",
'chat.runError.gitBashMissingMessage': "Git Bash is required to run this agent on Windows but wasn't found. Install Git for Windows, then retry.",
'common.cancel': 'Cancel',
'chat.selectFromLibrary': 'Import from library',
'chat.importFigma': 'Import from Figma',
'chat.plus.group.files': 'Files',
'chat.plus.group.code': 'Code',
'chat.plus.group.designs': 'Designs',
'chat.plus.group.other': 'Other',
'chat.plus.attachFiles': 'Attach files',
'chat.plus.referenceProject': 'Reference another project',
'chat.plus.linkLocalCode': 'Link local code',
'chat.plus.uploadFig': 'Upload .fig file',
'chat.plus.learnHow': 'Learn how',
'chat.plus.designSystem': 'Design system',
'chat.plus.skills': 'Skills',
'chat.plus.noSkills': 'No skills available',
'chat.plus.connectors': 'Connectors',
'chat.plus.plugins': 'Plugins',
'chat.plus.mcp': 'MCP',
'chat.referenceProject.title': 'Reference another project',
'chat.referenceProject.search': 'Search projects…',
'chat.referenceProject.empty': 'No projects match “{query}”',
'chat.referenceProject.emptyAll': 'No other projects yet',
'chat.referenceProject.loadFailed': 'Could not load projects. Check that the daemon is running and try again.',
'chat.referenceProject.confirm': 'Reference project',
'chat.contextPrompt.referenceProject': 'Use the Open Design project “{name}” as reference context. Its local path is: {path}. Before designing or modifying anything, search and read this directory when useful.',
'chat.contextPrompt.localCode': 'Use the local code folder “{name}” as code reference. Its absolute path is: {path}. Read relevant files when useful and stay consistent with the existing implementation.',
'chat.figmaHelp.title': 'How to download a .fig file',
'chat.figmaHelp.intro': 'From the Figma web or desktop app:',
'chat.figmaHelp.step1': 'Open the file in Figma.',
'chat.figmaHelp.step2': 'Go to File → Save local copy... (web: main menu → File).',
'chat.figmaHelp.step3': 'Figma downloads a .fig file. Drop it onto the composer or upload it.',
'chat.figmaHelp.note': 'The .fig file is parsed locally and is not uploaded to Figma.',
'designFiles.library.label': 'Import from library',
'designFiles.library.title': 'Import from library',
'libraryPicker.title': 'Import from library',
'libraryPicker.searchPlaceholder': 'Search library…',
'libraryPicker.empty': 'No assets in your library yet',
'libraryPicker.allKinds': 'All',
'libraryPicker.add': 'Import',
'libraryPicker.loading': 'Loading…',
'common.save': 'Save',
'common.close': 'Close',
'common.clear': 'Clear',
'common.delete': 'Delete',
'common.rename': 'Rename',
'common.edit': 'Edit',
'common.preview': 'Preview',
'common.share': 'Share',
'common.search': 'Search',
'common.searchEllipsis': 'Search…',
'common.loading': 'Loading…',
'common.all': 'All',
'common.none': 'None',
'common.default': 'Default',
'common.installed': 'installed',
'common.notInstalled': 'not installed',
'common.active': 'active',
'common.offline': 'offline',
'common.selected': 'selected',
'common.create': 'Create',
'common.openPreview': 'Open preview',
'common.exitFullscreen': 'Exit fullscreen',
'common.fullscreen': 'Fullscreen',
'common.openInNewTab': 'Open in new tab',
'common.exportPdf': 'Export as PDF',
'common.exportZip': 'Download as .zip',
'common.exportHtml': 'Export as standalone HTML',
'common.exportImage': 'Export as image',
'common.exportImageFailed': 'Image capture failed. Please try again or use your browser\'s screenshot tool.',
'common.justNow': 'just now',
'common.minutesAgo': '{n}m ago',
'common.hoursAgo': '{n}h ago',
'common.daysAgo': '{n}d ago',
'common.weeksAgo': '{n}w ago',
'common.now': 'now',
'common.minutesShort': '{n}m',
'common.hoursShort': '{n}h',
'common.daysShort': '{n}d',
'common.untitled': 'Untitled',
'designBrowser.savePageBrief': 'Save Page Brief',
'designBrowser.menu': 'Browser menu',
'designBrowser.copyScreenshot': 'Copy Screenshot',
'designBrowser.hardReload': 'Hard Reload',
'designBrowser.copyUrl': 'Copy URL',
'designBrowser.openExternal': 'Open in Browser',
'designBrowser.downloadPage': 'Download Page',
'designBrowser.downloadPageBusy': 'Downloading page...',
'designBrowser.clearHistory': 'Clear Browsing History',
'designBrowser.clearCookies': 'Clear Cookies',
'designBrowser.clearAllData': 'Clear All Data',
'designBrowser.status.noUrlToCopy': 'No URL to copy.',
'designBrowser.status.urlCopied': 'URL copied.',
'designBrowser.status.openHttpFirst': 'Open an http or https page first.',
'designBrowser.status.openBeforeScreenshot': 'Open a page before taking a screenshot.',
'designBrowser.status.screenshotSaved': 'Screenshot saved.',
'designBrowser.status.screenshotFailed': 'Screenshot failed.',
'designBrowser.status.openBeforeBrief': 'Open a page before saving a brief.',
'designBrowser.status.briefSaveFailed': 'Page brief save failed.',
'designBrowser.status.openBeforeDownload': 'Open a page before saving a snapshot.',
'designBrowser.status.pageSnapshotStarted': 'Saving page snapshot...',
'designBrowser.status.pageSnapshotUnsupported': 'This page cannot be archived.',
'designBrowser.status.pageSnapshotFailed': 'Page snapshot save failed.',
'designBrowser.status.pageSnapshotSaved': 'Saved page snapshot (HTML + CSS).',
'designBrowser.status.viewDesignFiles': 'View Design Files',
'designBrowser.status.downloadAssistHint': 'Step 2: click Download Page here, wait for the saved snapshot success, then return to the left Next Step card and click Continue extraction.',
'designBrowser.status.desktopDataUnavailable': 'Desktop browser data is unavailable here.',
'designBrowser.status.browserDataCleared': 'Browser data cleared.',
'designBrowser.status.browserDataClearFailed': 'Browser data clear failed.',
'designBrowser.status.historyCleared': 'History cleared.',
'plugins.availableDetails.provenance': 'Provenance',
'plugins.availableDetails.provenanceLine': 'from {source} · {trust} · {resolved}',
'plugins.availableDetails.provenanceLineWithIntegrity': 'from {source} · {trust} · {resolved} · {integrity}',
'plugins.availableDetails.install': 'Install',
'plugins.availableDetails.version': 'Version',
'plugins.availableDetails.pluginVersion': 'Plugin version',
'plugins.availableDetails.copyInstallCommand': 'Copy install command',
'plugins.availableDetails.copied': 'Copied',
'plugins.availableDetails.deprecatedPrefix': 'Deprecated: {message}',
'plugins.availableDetails.deprecatedFallback': 'This version has been marked deprecated.',
'plugins.availableDetails.yanked': 'Yanked.',
'plugins.availableDetails.yankedWithReason': 'Yanked: {reason}',
'plugins.availableDetails.versionDeprecatedSuffix': ' (deprecated)',
'plugins.availableDetails.versionYankedSuffix': ' (yanked)',
'plugins.availableDetails.ref': 'Ref',
'plugins.availableDetails.integrity': 'Integrity',
'plugins.availableDetails.permissions': 'Permissions',
'plugins.availableDetails.capabilitySummary': 'Capability summary',
'plugins.actions.copyInstallCommand': 'Copy install command',
'plugins.actions.copyPluginId': 'Copy plugin ID',
'plugins.actions.copyReadmeBadge': 'Copy README badge',
'plugins.actions.openSourceGithub': 'Open source on GitHub',
'plugins.actions.openSource': 'Open source',
'plugins.actions.openHomepage': 'Open homepage',
'plugins.actions.openMarketplace': 'Open in marketplace',
'app.brand': 'Open Design',
'app.brandPill': 'Research Preview',
'app.brandSubtitle': 'by Nexu Labs',
'app.welcomeLoading': 'Loading workspace…',
'settings.welcomeKicker': '',
'settings.welcomeTitle': 'Welcome to Open Design',
'settings.welcomeSubtitle': '',
'settings.onboardingCreateTitle': 'Start from a brief',
'settings.onboardingCreateBody': 'Describe the site, app, deck, image, or video you want. Open Design will create a project and keep the work editable.',
'settings.onboardingMemoryTitle': 'Save working context',
'settings.onboardingMemoryBody': 'Add preferences, project facts, and recurring rules so future chats pick up the right context.',
'settings.onboardingMemoryCalloutTitle': 'Saved to your Memory',
'settings.onboardingMemoryCalloutBody': 'These answers seed your Memory profile. Open Design reuses it on every task — and keeps learning as you work.',
'settings.onboardingMemoryBenefitIntent': 'Understands what you mean from a short request',
'settings.onboardingMemoryBenefitFewerQuestions': 'Skips repeat setup questions',
'settings.onboardingMemoryBenefitPersonalized': 'Tailors output to your role, audience, and taste',
'settings.onboardingSystemsTitle': 'Bring your design system',
'settings.onboardingSystemsBody': 'Pick or create a brand system so generated work follows real colors, typography, and product language.',
'settings.onboardingExecutionTitle': 'Choose how generation runs',
'settings.onboardingExecutionBody': 'Official CLI with one-click setup and ready-to-use defaults. Use one key to choose from many models with better pricing.',
'settings.onboardingAmrCloudBenefitOfficial': 'Officially recommended',
'settings.onboardingAmrCloudBenefitReady': 'No deploy needed',
'settings.onboardingAmrCloudBenefitModels': 'Supports Claude Opus 4.8',
'settings.onboardingAmrCloudBenefitPricing': 'SOTA Harness',
'settings.onboardingAmrCloudUpcomingLabel': 'Coming soon',
'settings.onboardingAmrCloudUpcomingImageVideo': 'Image & video',
'settings.onboardingAmrCloudUpcomingSkills': 'Massive skills',
'settings.onboardingAmrCloudUpcomingRouting': 'Smart routing',
'settings.onboardingAmrModelSourceLabel': 'Open Design Cloud',
'settings.onboardingAmrCloudAuthorizeAction': 'Authorize',
'settings.onboardingAmrCloudAuthorizedAction': 'Authorized',
'settings.onboardingStepConnect': 'Connect',
'settings.onboardingStepDesignSystem': 'Build design system',
'settings.onboardingStepProfile': 'About you',
'settings.onboardingStepNewsletter': 'Stay updated',
'settings.onboardingNewsletterTitle': 'Stay in the loop',
'settings.onboardingNewsletterBody': 'Get product updates, new templates, design-system drops, and ambassador work in your inbox. Optional — you can skip this.',
'settings.onboardingConnectTitle': 'Choose a runtime',
'settings.onboardingConnectBody': '',
'settings.onboardingCloudTitle': 'Sign in to Open Design',
'settings.onboardingCloudBody': 'Sign in to start designing with cloud AI right away — no complex setup required.',
'settings.onboardingCloudSignIn': 'Sign in to Open Design',
'settings.onboardingCloudContinue': 'Continue (signed in)',
'settings.onboardingCloudAlternative': 'Use a local CLI or your own API key',
'settings.onboardingCloudRights': 'All rights reserved.',
'settings.onboardingCloudOr': 'or',
'settings.onboardingGateTooltipNoRuntime': 'The next steps run on AI — pick a runtime to continue.',
'settings.onboardingGateTooltipAmr': 'The next steps run on AI — sign in to Open Design Cloud to continue.',
'settings.onboardingGateTooltipLocal': 'The next steps run on AI — select an available local CLI to continue.',
'settings.onboardingGateTooltipByok': 'The next steps run on AI — add and test your model key to continue.',
'settings.onboardingRecommended': 'Recommended',
'settings.onboardingAmrCloudOfficialBadge': 'Official',
'settings.onboardingLocalTitle': 'Local coding agent',
'settings.onboardingLocalBody': 'Use an installed CLI such as Claude Code, Codex, Cursor, Gemini, or OpenCode.',
'settings.onboardingLocalAction': 'Open CLI settings',
'settings.onboardingCliScanHint': 'This usually takes 5-10 seconds.',
'settings.onboardingByokTitle': 'Bring your own key',
'settings.onboardingByokBody': 'Use your own model provider credentials.',
'settings.onboardingByokAction': 'Open BYOK settings',
'settings.onboardingDesignTitle': 'Design system',
'settings.onboardingDesignBody': 'Generate once, reuse everywhere.',
'settings.onboardingDesignIntroGenerateTitle': 'Generate from existing work',
'settings.onboardingDesignIntroGenerateBody': 'Upload your design system from GitHub or local code repositories, Figma files, images, and other content assets.',
'settings.onboardingDesignIntroReuseTitle': 'Reuse in future work',
'settings.onboardingDesignIntroReuseBody': 'Future prototypes, slides, and other content can reference your existing fonts, spacing, logo style, and color tone.',
'settings.onboardingDesignIntroSkipTitle': 'Optional for now',
'settings.onboardingDesignIntroSkipBody': 'Skip this step if you want to start without generating a design system.',
'settings.onboardingGithubTitle': 'Import from GitHub',
'settings.onboardingGithubBody': 'Use a frontend repository.',
'settings.onboardingUploadTitle': 'Upload local files',
'settings.onboardingUploadBody': 'Add project files, screenshots, CSS, docs, or assets.',
'settings.onboardingPromptTitle': 'Generate from prompt',
'settings.onboardingPromptBody': 'Describe the product or brand.',
'settings.onboardingProfileTitle': 'About you',
'settings.onboardingProfileBody': 'Optional details for better defaults.',
'settings.onboardingRoleLabel': 'Your role',
'settings.onboardingOrgSizeLabel': 'Organization size',
'settings.onboardingUseCaseLabel': 'Use case',
'settings.onboardingSourceLabel': 'Where did you hear about us?',
'settings.onboardingSourceX': '🐦 X / Twitter',
'settings.onboardingSourceGithub': '🐙 GitHub',
'settings.onboardingSourceYoutube': '▶️ YouTube',
'settings.onboardingSourceTiktok': '🎵 TikTok',
'settings.onboardingSourceReddit': '👽 Reddit',
'settings.onboardingSourceLinkedin': '💼 LinkedIn',
'settings.onboardingSourceMetaSocial': '📸 Instagram / Threads / Facebook',
'settings.onboardingSourceSearch': '🔍 Search (Google / Bing)',
'settings.onboardingSourceAiTool': '🤖 AI tool (ChatGPT / Perplexity)',
'settings.onboardingSourceFriend': '👥 Friend or colleague',
'settings.onboardingSourceCommunity': '💬 Discord / community',
'settings.onboardingSourceEmail': '✉️ Email / Newsletter',
'settings.onboardingSourceBlog': '📝 Blog / article',
'settings.onboardingSourceOther': '✨ Other',
'settings.onboardingSourceOtherPlaceholder': 'Tell us where (optional)',
'settings.onboardingSelectPlaceholder': 'Select one',
'settings.onboardingSelectMultiplePlaceholder': 'Select one or more',
'settings.onboardingOrgSolo': 'Solo / personal (1)',
'settings.onboardingOrgTeam': 'Small team (2-10)',
'settings.onboardingOrgStartup': 'Startup / SMB (11-50)',
'settings.onboardingOrgGrowth': 'Growth company (51-200)',
'settings.onboardingOrgMidMarket': 'Mid-market (201-1000)',
'settings.onboardingOrgEnterprise': 'Enterprise (1000+)',
'settings.onboardingRolePm': '📋 Product manager',
'settings.onboardingRoleDesigner': '🎨 Designer',
'settings.onboardingRoleEngineer': '💻 Engineer',
'settings.onboardingRoleMarketing': '📣 Marketing',
'settings.onboardingRoleAgency': '📣 Marketing agency',
'settings.onboardingRoleGrowth': '📈 Growth',
'settings.onboardingRoleOps': '⚙️ Operations',
'settings.onboardingRoleFounder': '🚀 Founder / executive',
'settings.onboardingRoleStudent': '🎓 Student / educator',
'settings.onboardingRoleOther': '✨ Other',
'settings.onboardingUseProduct': '🎨 Product design',
'settings.onboardingUseDesignSystem': '🧩 Design system',
'settings.onboardingUsePrototype': '📱 Prototype / app UI',
'settings.onboardingUseLanding': '🌐 Landing pages',
'settings.onboardingUseAds': '📣 Ads / social content',
'settings.onboardingUseDashboard': '📊 Dashboards / internal tools',
'settings.onboardingUseDeck': '🖥️ Presentation / deck',
'settings.onboardingUseMarketing': '📈 Marketing / growth',
'settings.onboardingUseEngineering': '🤝 Engineering handoff',
'settings.onboardingUseAgency': '💼 Agency / client work',
'settings.onboardingBack': 'Back',
'settings.onboardingContinue': 'Continue',
'settings.onboardingFinish': 'Finish setup',
'settings.kicker': 'Settings',
'settings.title': 'Execution mode',
'settings.subtitle': 'Choose Local CLI or BYOK.',
'settings.modeAria': 'Execution mode',
'settings.protocolAria': 'API protocol',
'settings.modeDaemon': 'Local CLI',
'settings.modeDaemonHelp': 'Run via a code-agent CLI on your machine',
'settings.modeDaemonOffline': 'Daemon is not running',
'settings.modeDaemonOfflineMeta': 'daemon offline',
'settings.modeDaemonInstalledMeta': '{count} installed',
'settings.modeApi': 'API provider',
'settings.modeApiMeta': 'BYOK',
'settings.byokNoFileToolsNotice': 'BYOK can\'t read, write, or edit project files. Use Local CLI when you need code changes.',
'settings.codeAgent': 'Code agent',
'settings.codeAgentHint': 'Pick the CLI that runs your prompts.',
'settings.rescan': '↻ Rescan',
'settings.rescanTitle': 'Re-scan PATH',
'settings.rescanRunning': 'Scanning...',
'settings.rescanSuccess': 'Scan complete. {count} available.',
'settings.designSystemRenameFailed': 'Rename failed. Check that the daemon is running and try again.',
'settings.rescanFailed': 'Scan failed. Check the daemon and try again.',
'settings.test': 'Test',
'settings.testTitle': 'Send a tiny test prompt to verify the connection',
'settings.testRunning': 'Testing connection…',
'settings.byokReadyToTest': 'Ready to test',
'settings.testCancel': 'Cancel',
'settings.testRetry': 'Retry test',
'settings.required': 'required',
'settings.testMissingFields': 'Fill {fields} to test the connection.',
'settings.testSuccessApi': 'Connected. Replied in {ms} ms — \'{sample}\'',
'settings.testSuccessCli': '{agentName} replied in {ms} ms — \'{sample}\'',
'settings.testAuthFailed': 'Authentication failed. Check your API key.',
'settings.testForbidden': 'Access forbidden. Verify your account, region, or organization.',
'settings.testNotFoundModel': 'Model \'{model}\' not found on this endpoint.',
'settings.testInvalidModelId': 'Model id \'{model}\' is invalid. Custom ids must start with a letter or number and contain no spaces.',
'settings.testInvalidBaseUrl': 'Base URL is invalid or unreachable.',
'settings.testRateLimited': 'Provider rate-limited the test. Configuration looks valid.',
'settings.testUpstream': 'Provider returned {status}. Try again in a moment.',
'settings.testTimeout': 'Test timed out after {ms} ms.',
'settings.testAgentMissing': '{agentName} is not installed or not in PATH.',
'settings.testAgentSpawn': 'Could not start {agentName}: {detail}.',
'settings.testUnknown': 'Test failed: {detail}',
'settings.agentInstall.install': 'Install',
'settings.agentInstall.docs': 'Docs',
'settings.agentInstall.pathHint': 'If you installed a CLI with npm or Homebrew and it still shows as not installed, ensure the tool\'s bin directory is on the PATH the Open Design daemon inherits (Terminal vs GUI apps can differ on macOS). See QUICKSTART.md (section "Local agent CLI and PATH").',
'settings.agentInstall.stepOpenLinks': 'Open Install or Docs for your preferred agent.',
'settings.agentInstall.stepAuth': 'Authenticate with the vendor CLI (sign in or add API credentials) before returning to Open Design.',
'settings.agentInstall.stepRescan': 'Click Rescan in this section.',
'settings.agentInstall.stepSelect': 'Select the agent card once it appears as installed.',
'settings.noAgentsDetected': 'No agents detected yet. Install one of Claude Code, Codex, Devin for Terminal, OpenCode, Cursor Agent, Qwen, or GitHub Copilot CLI, then click Rescan.',
'settings.agentInstalledGroup': 'Your CLIs ({count})',
'settings.agentInstallGroup': 'Available to install ({count})',
'settings.agentAuthRequired': 'Authentication required',
'settings.agentAuthUnknown': 'Auth status unknown',
'settings.amrCloud': 'Open Design Cloud',
'settings.amrAuthorize': 'Authorize',
'settings.amrBenefitOfficial': 'Official',
'settings.amrBenefitLowerPrice': 'Lower cost',
'settings.amrBenefitManyModels': 'Many models',
'settings.amrPromoBonus': 'Limited bonus: +100%',
'settings.amrSignInToContinue': 'Sign in to continue',
'settings.amrSignIn': 'Sign in',
'settings.amrSignedIn': 'Signed in',
'settings.amrWalletBalance': 'Wallet balance',
'settings.amrWalletUnavailable': 'Balance temporarily unavailable',
'settings.amrWalletUpdatedAt': 'Updated {time}',
'settings.amrWalletCached': 'cached',
'settings.amrWalletRefresh': 'Refresh',
'settings.amrWalletRefreshTitle': 'Refresh Open Design Cloud wallet balance',
'settings.amrNotSignedIn': 'Not signed in',
'settings.amrSigningIn': 'Signing in…',
'settings.amrActivationHint': 'Sign-in page didn\'t open? Tap the button below to reopen it.',
'settings.amrActivationBrowserFailed': 'Couldn’t open your browser automatically. Open the sign-in page below to continue.',
'settings.amrActivationOpen': 'Open sign-in page',
'settings.amrCancelSignIn': 'Cancel sign-in',
'settings.amrAccountStatus': 'Open Design Cloud account status',
'settings.amrConsole': 'Manage',
'settings.amrBalance': 'Balance',
'settings.amrPlan': 'Plan',
'settings.amrUpgrade': 'Upgrade',
'settings.amrModelUpgradeHint': 'Upgrade to use',
'settings.amrLoginErrorCompact': 'Sign-in failed.',
'settings.advanced': 'Advanced',
'settings.amrLogin': 'Sign in',
'settings.amrLogout': 'Sign out',
'settings.amrLoggingIn': 'Signing in…',
'settings.amrLoggingOut': 'Signing out…',
'settings.amrLoggedInAs': 'Signed in as {email}',
'settings.amrLoggedInWithPlan': 'Signed in as {email} · {plan}',
'settings.amrLoggedInPill': 'Signed in',
'settings.amrNotLoggedIn': 'Not signed in',
'settings.apiSection': 'Anthropic API',
'settings.quickFillProvider': 'Quick fill provider',
'settings.providerPreset': 'Gateway preset',
'settings.protocolGroupProtocols': 'Protocols',
'settings.protocolGroupGateways': 'Gateways',
'settings.customProvider': 'Custom provider',
'settings.apiKey': 'API key',
'settings.apiKeyGetLink': 'Get key ↗',
'settings.showKey': 'Show key',
'settings.hideKey': 'Hide key',
'settings.show': 'Show',
'settings.hide': 'Hide',
'settings.model': 'Model',
'settings.apiKeyInvalid': 'Invalid API key.',
'settings.apiKeyCleaned': 'Removed extra whitespace from the API key.',
'settings.modelsLoadedFromAccount': '✓ Loaded {count} models from your account.',
'settings.modelsLoadedCount': '✓ Loaded {count} models.',
'settings.modelSourceAccount': 'From your account',
'settings.modelSourceSuggested': 'Suggested',
'modelCapability.standard': 'Standard',
'modelCapability.advanced': 'Advanced',
'modelCapability.bestQuality': 'Best Quality',
'modelCapability.standardDescription': 'Solid quality for regular tasks.',
'modelCapability.advancedDescription': 'Stronger quality for more demanding tasks.',
'modelCapability.bestQualityDescription': 'Best output quality for the most demanding work.',
'modelCost.upToHalf': 'Low cost',
'modelCost.halfToOne': 'Medium cost',
'modelCost.oneToFour': 'High cost',
'modelCost.overFour': 'Highest cost',
'settings.fetchModels': 'Fetch models',
'settings.fetchModelsTitle': 'Fetch available models from this provider',
'settings.fetchModelsRunning': 'Fetching models…',
'settings.fetchModelsMissingFields': 'Fill {fields} to fetch models.',
'settings.fetchModelsInvalidBaseUrl': 'Enter a valid Base URL to fetch models.',
'settings.fetchModelsUnsupportedAzure': 'Azure OpenAI uses deployment names, so model discovery is not available here.',
'settings.fetchModelsUnsupportedOllama': 'Ollama Cloud model discovery is not available yet. Choose or type a model.',
'settings.fetchModelsSuccess': 'Fetched {count} models.',
'settings.fetchModelsEmpty': 'No compatible text models were returned.',
'settings.fetchModelsUnsupported': 'Model discovery is not available for this protocol.',
'settings.fetchModelsFailed': 'Could not fetch models: {detail}',
'settings.suggestedModelsHint': 'These are suggested models for this protocol. Your provider may support different models.',
'settings.baseUrl': 'Base URL',
'settings.baseUrlInvalid': 'Use a public http:// or https:// URL.',
'settings.baseUrlCustomize': 'Customize',
'settings.baseUrlDefaultHint': 'Default endpoint. Usually no need to change this.',
'settings.azureBaseUrlPlaceholder': 'Paste Azure endpoint URL',
'settings.azureBaseUrlHint': 'Find this in Azure portal → your resource → Endpoint.',
'settings.azureDeploymentModel': 'Deployment name',
'settings.azureCustomDeploymentName': 'Custom deployment name',
'settings.azureDeploymentModelHint': 'For Azure OpenAI, this field is used as the deployment name in /openai/deployments/<model>. Enter the deployment name you created in Azure.',
'settings.azureModelFetchHint': 'Enter the deployment name from your Azure resource. Azure deployments can’t be fetched automatically.',
'settings.apiVersion': 'API version',
'settings.byokImageModel': 'Image generation model',
'settings.byokVideoModel': 'Video generation model',
'settings.byokVideoI2vHint': 'Image-to-video model: a reference image is required (the newest project image is used automatically if you don’t pick one)',
'settings.byokSpeechModel': 'Speech model',
'settings.byokSpeechVoice': 'Speech voice',
'settings.byokModelDefaultOption': 'Default',
'settings.maxTokens': 'Max tokens (optional)',
'settings.maxTokensHint': 'Cap on the response length. Each model has a tuned default (shown as a placeholder); leave blank to use it, or enter a number to override.',
'settings.apiHint': 'Stored only in this browser.',
'settings.skipForNow': 'Skip for now',
'settings.getStarted': 'Get started',
'settings.envConfigure': 'Execution mode',
'settings.localCli': 'Local CLI',
'settings.anthropicApi': 'Anthropic API',
'settings.noAgentSelected': 'no agent selected',
'settings.language': 'Language',
'settings.languageHint': 'Switch the interface language. Saved to this browser.',
'settings.appearance': 'Appearance',
'settings.appearanceHint': 'Choose light, dark, or follow your system setting.',
'settings.themeSystem': 'System',
'settings.themeLight': 'Light',
'settings.themeDark': 'Dark',
'settings.agentModelHead': 'Model for:',
'settings.modelPicker': 'Model',
'settings.modelSourceLive': 'Live from CLI',
'settings.modelSourceFallback': 'Built-in list',
'settings.reasoningPicker': 'Reasoning effort',
'settings.modelPickerHint': 'Default uses the CLI’s own config. Custom… lets you type any model id.',
'settings.modelPickerLiveHint': 'Model list comes from this CLI. Default uses the CLI\'s own config.',
'settings.modelPickerLiveCatalogOnlyHint': 'Model list comes from this CLI.',
'settings.modelPickerFallbackHint': 'Showing built-in defaults. Click Rescan to pull live models from the CLI.',
'settings.cliEnvTitle': 'Advanced: proxy & custom paths',
'settings.cliEnvHint': 'Use these to override the selected CLI environment: API keys, proxy base URLs, custom homes, or non-standard binary paths. Without a base URL, the CLI uses its default endpoint. Secrets stay in local app config and only the selected CLI sees them.',
'settings.cliEnvClaudeConfigDir': 'Claude Code config directory',
'settings.cliEnvClaudeBaseUrl': 'Claude proxy base URL',
'settings.cliEnvClaudeApiKey': 'Claude CLI API key',
'settings.cliEnvCodexHome': 'Codex home',
'settings.cliEnvCodexBin': 'Codex executable path',
'settings.cliEnvCodexBaseUrl': 'Codex/OpenAI proxy base URL',
'settings.cliEnvCodexApiKey': 'Codex/OpenAI CLI API key',
'settings.modelCustom': 'Custom (type below)…',
'settings.modelCustomLabel': 'Custom model id',
'settings.modelCustomPlaceholder': 'e.g. anthropic/claude-sonnet-4-6',
'settings.mediaProviders': 'Media providers',
'settings.mediaProvidersHint': 'API keys for image, video, and audio generation.',
'settings.mcpServerTitle': 'MCP server',
'settings.mcpServerHint': 'Expose Open Design as an MCP server for your coding agent.',
'settings.externalMcpTitle': 'External MCP',
'settings.externalMcpHint': 'Add MCP tools from external services (Higgsfield, GitHub, …).',
'settings.mediaProviderApiKey': 'API key',
'settings.mediaProviderBaseUrl': 'Base URL',
'settings.mediaProviderConfigured': 'Configured',
'settings.mediaProviderUnset': 'Unset',
'settings.mediaProviderClear': 'Clear',
'settings.mediaProviderClearConfirm': 'Clear saved {name} settings? You\'ll need to enter them again to use {name}.',
'settings.mediaProviderPlaceholder': 'Paste API key',
'settings.mediaProviderBaseUrlPlaceholder': 'Override default base URL',
'settings.mediaProviderReload': 'Reload from daemon',
'settings.mediaProviderReloadError': 'Could not reload media provider settings from the local daemon.',
'settings.mediaProviderReloadSuccess': 'Reloaded media provider settings from the local daemon.',
'settings.mediaProviderLoadError': 'Could not load media provider settings from the local daemon. Using browser-saved settings for now.',
'settings.mediaProviderComingSoonHint': 'We track these for the roadmap; the daemon doesn\'t ship a client yet, so there\'s nothing to configure.',
'settings.privacy': 'Privacy',
'settings.privacyHint': 'What data is shared with the Open Design team',
'settings.privacyConsentKicker': 'Help us improve Open Design',
'settings.privacyConsentLead': 'Sharing usage data helps us understand how Open Design performs in real workflows, so we can improve the parts that matter most to your experience.',
'settings.privacyConsentFooter': 'You can change these any time in Settings → Privacy.',
'settings.privacyConsentShare': 'Share',
'settings.privacyConsentDecline': 'Don\'t share',
'settings.privacyConsentAccept': 'I get it',
'settings.privacyConsentBannerFooter': 'Data sharing is on by default. You can turn it off any time in Settings → Privacy.',
'settings.privacyConsentPolicyLink': 'Read the privacy policy',
'settings.privacyMetrics': 'Anonymous metrics',
'settings.privacyMetricsHint': 'Run counts, token usage, error rate, and duration as basic usage metrics.',
'settings.privacyContent': 'Conversation and tool content',
'settings.privacyContentHint': 'After secrets and other sensitive information are stripped, we use prompts, assistant responses, tool input/output, and context needed for quality review.',
'settings.privacyInstallationId': 'Anonymous ID',
'settings.privacyOptedOut': 'opted out',
'settings.privacyDataDeletion': 'Delete my data',
'settings.privacyDataDeletionHint': 'Rotates your anonymous ID and stops sending. Existing traces age out under our retention policy.',
'settings.about': 'About',
'settings.aboutHint': 'Version and runtime details',
'settings.appVersion': 'Version',
'settings.appChannel': 'Channel',
'settings.appRuntime': 'Runtime',
'settings.appPlatform': 'Platform',
'settings.appArchitecture': 'Architecture',
'settings.runtimePackaged': 'Packaged app',
'settings.runtimeDevelopment': 'Development',
'settings.versionUnavailable': 'Version details are unavailable while the daemon is offline.',
'settings.installLatest': 'Install latest',
'settings.alreadyLatest': 'You\'re on the latest version',
'settings.updateCheck': 'Check for updates',
'settings.updateNow': 'Update now',
'settings.updateRecheck': 'Check again',
'settings.updateRetry': 'Retry',
'settings.updateViewReleases': 'View release notes',
'settings.updateActionFailed': 'Could not complete the update action.',
'settings.updateQuitFailed': 'The installer opened, but Open Design could not quit automatically.',
'settings.updateStatusNotChecked': 'Not checked yet',
'settings.updateStatusDevelopment': 'Development builds do not support in-app updates.',
'settings.updateStatusUnsupported': 'This environment does not support in-app updates.',
'settings.updateStatusChecking': 'Checking for updates...',
'settings.updateStatusUpToDate': 'You are already on the latest version.',
'settings.updateStatusAvailable': 'New version {version} found. Preparing download.',
'settings.updateStatusAvailableUnknown': 'New version found. Preparing download.',
'settings.updateStatusDownloading': 'Downloading update...',
'settings.updateStatusDownloadingPercent': 'Downloading update {percent}%.',
'settings.updateStatusReady': 'Version {version} is ready to install.',
'settings.updateStatusReadyUnknown': 'An update is ready to install.',
'settings.updateStatusInstalling': 'Installing update...',
'settings.updateStatusFailed': 'Check failed. Please retry.',
'settings.mcpTitle': 'MCP server',
'settings.mcpHint': 'Let coding agents (Cursor, Claude Code, VS Code…) read your Open Design projects directly.',
'settings.mcpDaemonError': 'Couldn\'t reach the local daemon to resolve install paths ({error}). Make sure Open Design is running, then reopen this panel.',
'settings.mcpBuildDaemon': 'Build the daemon first.',
'settings.mcpNodeMissing': 'Node binary is missing.',
'settings.mcpBuildHint': 'apps/daemon/dist/cli.js is missing. Run `pnpm --filter @open-design/daemon build` and refresh.',
'settings.mcpMethodCli': 'CLI command',
'settings.mcpInstructionCli': 'Run this in your terminal.',
'settings.mcpMethodToml': 'TOML config',
'settings.mcpInstructionCodex': 'Append this table to {path}. The same config is shared between the Codex CLI and the Codex IDE extension.',
'settings.mcpMethodOneClick': 'One-click install',
'settings.mcpInstructionCursor': 'Click "Install in Cursor" to install with an approval dialog, or merge this JSON into {path}.',
'settings.mcpDeeplinkInstallCursor': 'Install in Cursor',
'settings.mcpMethodJson': 'JSON config',
'settings.mcpInstructionCopilot': 'Open the Command Palette ({shortcut}), run "MCP: Open User Configuration", and merge this JSON. Copilot Chat must be in Agent mode for tools to show up.',
'settings.mcpInstructionAntigravity': 'In Antigravity: Agent panel "..." menu → MCP Servers → Manage MCP Servers → View raw config. Merge this JSON.',
'settings.mcpInstructionZed': 'Open Zed Settings ({shortcut}) and merge this into the top-level object. Zed uses "context_servers", not "mcpServers".',
'settings.mcpInstructionWindsurf': 'Open {path} (or use the MCPs icon in Cascade → Configure) and merge:',
'settings.mcpCopyAria': 'Copy MCP configuration snippet',
'settings.mcpResolvingFailed': '# resolving paths failed, see the error above',
'settings.mcpLoadingPaths': '# loading install paths from the local daemon…',
'settings.mcpCopied': 'Copied',
'settings.mcpCopy': 'Copy',
'settings.mcpCursorApproval': 'Cursor pops an approval dialog before writing the config.',
'settings.mcpCodexOneClickInstall': 'Install in Codex',
'settings.mcpCodexOneClickUninstall': 'Remove from Codex',
'settings.mcpCodexOneClickUnavailable': 'Codex CLI not found on PATH — install Codex or paste the snippet manually.',
'settings.mcpCodexInstallSuccess': 'Installed. Restart Codex to load the new server.',
'settings.mcpCodexUninstallSuccess': 'Removed from Codex.',
'settings.mcpCodexBusy': 'Working…',
'settings.mcpCodexInstallError': 'Operation failed: {error}',
'settings.mcpRestartNote': 'Restart your client to pick up the new server.',
'settings.mcpRestartDetail': 'Most editors only load MCP servers at startup. In Cursor / VS Code / Antigravity / Windsurf you can run `Developer: Reload Window` from the command palette instead of a full restart. Zed and Claude Code need a quit and reopen.',
'settings.mcpCapabilitiesTitle': 'What your agent can do',
'settings.mcpCapabilityRead': 'Read or search any file in a project (HTML, JSX, CSS, JSON, SVG, Markdown).',
'settings.mcpCapabilityPull': 'Pull a design bundle in one call: the entry file plus every CSS variable, component, and font it references.',
'settings.mcpCapabilityDefault': 'Default to the project and file you have open in Open Design, so you can say "build this in my app" without re-stating which design.',
'settings.mcpRunningNote': 'Open Design must be running for MCP tool calls to succeed. If you started your coding agent before opening Open Design, restart the agent so it can reach the live daemon.',
'entry.tabDesigns': 'Designs',
'entry.tabTemplates': 'Templates',
'entry.tabDesignSystems': 'Design systems',
'entry.tabConnectors': 'Connectors',
'entry.openSettingsTitle': 'Settings',
'entry.openSettingsAria': 'Open settings',
'entry.discordLabel': 'Join Discord',
'entry.discordAria': 'Join the Open Design Discord',
'entry.discordAriaWithOnline': 'Join the Open Design Discord - {online}',
'entry.discordOnlineLabel': '{count} online',
'entry.followXLabel': 'Follow @OpenDesignHQ on X',
'entry.followThreadsLabel': 'Follow Open Design on Threads',
'entry.youtubeLabel': 'Open Design on YouTube',
'entry.followInstagramLabel': 'Follow @opendesign.ai on Instagram',
'entry.followLinkedinLabel': 'Follow Open Design on LinkedIn',
'entry.followXiaohongshuLabel': 'Follow Open Design on Xiaohongshu',
'entry.resizeAria': 'Resize sidebar',
'entry.loadingWorkspace': 'Loading workspace…',
'entry.useEverywhereTitle': 'Use everywhere',
'entry.useEverywhereAria': 'Open the Use Everywhere guide (CLI, MCP, HTTP, Skills)',
'entry.workspaceTeamsLabel': 'Teams',
'entry.workspaceTeamsTitle': 'Workspace for Teams — tell us what your team needs',
'entry.workspaceTeamsAria': 'Open the Workspace for Teams page',
'entry.navExpand': 'Expand sidebar',
'entry.navCollapse': 'Collapse sidebar',
'entry.navNewProject': 'New project',
'entry.navHome': 'Home',
'entry.navProjects': 'Projects',
'entry.navTasks': 'Automations',
'entry.navPlugins': 'Plugins',
'entry.navDesignSystems': 'Design systems',
'entry.navBrands': 'Design System',
'entry.navIntegrations': 'Integrations',
'workspaceTabs.project': 'Project',
'workspaceTabs.pluginDetails': 'Plugin details',
'workspaceTabs.marketplace': 'Marketplace',
'homeHero.title': 'What will you design today?',
'homeHero.startWithTemplate': 'Start with a template…',
'homeHero.startBlankProject': '…or start a blank project',
'homeHero.templatePicker.label': 'Template',
'homeHero.templatePicker.searchPlaceholder': 'Search templates',
'homeHero.templatePicker.projectTypes': 'Project types',
'homeHero.templatesScrollHint': 'Scroll up to explore more templates',
'homeHero.templatesCollapse': 'Collapse templates',
'homeHero.subtitlePrefix': 'The open-source Claude Design alternative.',
'homeHero.placeholder': 'Describe what you want to generate…',
'homeHero.placeholderActive': 'Edit the example query or write your own…',
'homeHero.carousel.hint': 'Attach a file, link your design system, or describe what you want to make',
'homeHero.carousel.onePageBrief': 'Draft a one-page project brief',
'homeHero.carousel.notesToDeck': 'Turn my notes into a presentation',
'homeHero.carousel.signupFlow': 'Mock up a signup flow',
'homeHero.carousel.improveBrief': 'Improve an existing project brief',
'homeHero.carousel.loadingAnimation': 'Create a loading animation',
'homeHero.carousel.teamUpdateSlides': 'Design slides for a team update',
'homeHero.carousel.ordersDashboard': 'Prototype a dashboard for tracking orders',
'homeHero.carousel.productDetail': 'Lay out a product detail page',
'homeHero.carousel.caseStudy': 'Outline a case study',
'homeHero.carousel.landingIntro': 'Design a short intro for a landing page',
'homeHero.carousel.pitchDeck': 'Make a pitch deck for a new product',
'homeHero.carousel.appIdea': 'Describe an app idea',
'homeHero.carousel.landingLayout': 'Sketch a landing page layout',
'homeHero.skills': 'Skills',
'homeHero.addMenu': 'Add context',
'homeHero.addPlugin': 'Add plugin',
'homeHero.addConnectors': 'Add connectors',
'homeHero.addMcp': 'Add MCP server',
'homeHero.noPlugins': 'No installed plugins',
'homeHero.noMcp': 'No MCP servers',
'homeHero.noConnectors': 'No connected connectors',
'homeHero.applying': 'Applying…',
'homeHero.pluginTitle': 'Plugin: {title}',
'homeHero.pluginPrefix': 'Plugin: {title}',
'homeHero.skillPrefix': 'Skill: {title}',
'homeHero.removePlugin': 'Remove plugin',
'homeHero.removePluginAria': 'Remove plugin {title}',
'homeHero.clearActivePlugin': 'Clear active plugin',
'homeHero.clearActiveSkill': 'Clear active skill',
'homeHero.contextItemsResolved': '{n} context items resolved',
'homeHero.removeFile': 'Remove file',
'homeHero.contextSearchResults': 'Context search results',
'homeHero.contextSurfaces': 'Context surfaces',
'homeHero.loadingContext': 'Loading context…',
'homeHero.noResults': 'No results for "{query}".',
'homeHero.searchPrompt': 'Search files, plugins, skills, MCP servers, and connectors.',
'homeHero.parameters': '{n} parameters',
'homeHero.details': 'Details',
'homeHero.toRun': 'to run',
'homeHero.forNewLine': 'for new line',
'homeHero.run': 'Run',
'homeHero.typeSomethingToRun': 'Type something to run',
'homeHero.promptExamples': 'Example prompts',
'homeHero.footer.designSystem': 'Style',
'homeHero.footer.autoDesignSystem': 'Auto',
'homeHero.footer.autoDesignSystemSummary': 'Automatically matches the best design system and visual style for the current prompt.',
'homeHero.footer.ratio': 'Ratio',
'homeHero.footer.duration': 'Duration',
'homeHero.footer.resolution': 'Resolution',
'homeHero.footer.speakerNotes': 'Notes',
'homeHero.footer.noSpeakerNotes': 'No notes',
'homeHero.footer.availableCount': '{n} available',
'homeHero.footer.noMatches': 'No matches',
'homeHero.moreShortcuts': 'More',
'homeHero.railAria': 'Pick a project category or starter shortcut',
'homeHero.subTypeAria': 'Pick a sub-type',
'homeHero.confirmReplaceTitle': 'Replace current prompt?',
'homeHero.confirmReplaceBody': 'Using {title} will replace the text currently in the input.',
'homeHero.confirmReplace': 'Replace',
'homeHero.chip.prototype': 'Prototype',
'homeHero.chip.webClone': 'Website clone',
'homeHero.chip.liveArtifact': 'Live artifact',
'homeHero.chip.deck': 'Slide deck',
'homeHero.chip.image': 'Image',
'homeHero.chip.video': 'Video',
'homeHero.chip.hyperframes': 'HyperFrames',
'homeHero.chip.webgl': 'WebGL experience',
'homeHero.chip.webglDesc': 'Shaders, 3D & generative GPU visuals',
'homeHero.chip.worker': 'Worker visualizer',
'homeHero.chip.workerDesc': 'Off-thread sims, particles & data viz',
'homeHero.chip.audio': 'Audio',
'homeHero.chip.createBrandKit': 'Create Design System',
'homeHero.chip.createPlugin': 'Create plugin',
'homeHero.chip.figma': 'From Figma',
'homeHero.chip.folder': 'From folder',
'homeHero.chip.template': 'From template',
'homeHero.chip.liveArtifactHint': 'Build an interactive HTML/CSS/JS artifact you can preview live.',
'homeHero.chip.hyperframesHint': 'Author HTML-based motion: captions, audio-reactive visuals, scene transitions.',
'homeHero.chip.createBrandKitHint': 'Extract a design system from a website, then apply it in any chat.',
'homeHero.chip.createPluginHint': 'Author a reusable Open Design plugin and add it to My plugins.',
'homeHero.chip.figmaHint': 'Migrate a Figma frame into the active design system.',
'homeHero.chip.folderHint': 'Import an existing local folder and continue editing.',
'homeHero.chip.templateHint': 'Start from a bundled template.',
'homeHero.chip.wireframe': 'Wireframe',
'homeHero.chip.mobile': 'Mobile app',
'homeHero.chip.document': 'Document',
'homeHero.chip.prototypeDesc': 'Interactive app mockups',
'homeHero.chip.webCloneDesc': 'Source-first site reproduction',
'homeHero.chip.wireframeDesc': 'Lo-fi screens & flows',
'homeHero.chip.mobileDesc': 'iOS & Android screens',
'homeHero.chip.deckDesc': 'Presentations & pitch decks',
'homeHero.chip.documentDesc': 'Resumes, reports & PDFs',
'homeHero.chip.imageDesc': 'Posters, graphics & art',
'homeHero.chip.videoDesc': 'Clips, reels & promos',
'homeHero.chip.audioDesc': 'Voiceovers, music & SFX',
'homeHero.chip.hyperframesDesc': 'Motion graphics & loops',
'homeHero.chip.liveArtifactDesc': 'Data-backed live dashboards',
'homeHero.chip.createBrandKitDesc': 'Extract a brand design system',
'homeHero.chip.prototypeNext': 'Open a chat that builds a high-fidelity, clickable web prototype you refine turn by turn.',
'homeHero.chip.webCloneNext': 'Open a chat that asks for a target URL, reconstructs the site, and audits the clone.',
'homeHero.chip.wireframeNext': 'Open a chat that sketches lo-fi screens and flows to validate structure first.',
'homeHero.chip.mobileNext': 'Open a chat that lays out mobile screens for iOS and Android.',
'homeHero.chip.deckNext': 'Open a chat that builds a slide deck you can present and export.',
'homeHero.chip.documentNext': 'Open a chat that drafts a polished document — resume, report, or PDF.',
'homeHero.chip.imageNext': 'Open a chat that generates on-brand images you can iterate on.',
'homeHero.chip.videoNext': 'Open a chat that produces a short video you can refine.',
'homeHero.chip.audioNext': 'Open a chat that creates voiceover, music, or sound effects.',
'homeHero.chip.webClonePromptSeed': 'Website URL to clone: ',
'homeWorkingDir.trigger': 'Select working directory',
'homeWorkingDir.pick': 'Choose folder',
'homeWorkingDir.replace': 'Change working directory',
'homeWorkingDir.recent': 'Recent folders',
'homeWorkingDir.recentEmpty': 'No recent folders',
'homeWorkingDir.clear': 'Remove working directory',
'homeWorkingDir.hint': 'Let the agent read this local folder (not imported into Design Files)',
'homeWorkingDir.missing': 'This working folder no longer exists — pick another',
'homeWorkingDir.applyFailed': 'Couldn\'t set the working directory — the folder may no longer exist',
'workingDirPicker.title': 'Folder',
'workingDirPicker.homeTitle': 'Saved in local storage — click to choose a folder',
'workingDirPicker.processing': 'Processing…',
'workingDirPicker.select': 'Local storage',
'workingDirPicker.clearAria': 'Clear working directory',
'workingDirPicker.replaceFailed': 'Could not replace working directory',
'workingDirPicker.unavailable': 'Folder picker is unavailable in this build. Run the desktop app to pick a folder.',
'workingDirPicker.openUnavailable': 'Open this project in the desktop app to show the folder.',
'workingDirPicker.openFailed': 'Could not show this folder',
'workingDirPicker.showInFileManager': 'Show in file manager',
'workingDirPicker.replace': 'Choose folder…',
'workingDirPicker.recent': 'Recent directories',
'workingDirPicker.defaultLabel': 'Local storage',
'handoff.toTarget': 'Hand off to {target}',
'handoff.openInTarget': 'Open in {target}',
'handoff.openAction': 'Open',
'handoff.menuTitle': 'Open in which editor?',
'handoff.action': 'Hand off',
'handoff.fallbackTitle': 'No editors found on $PATH - opens in {target}',
'handoff.chooseTargetAria': 'Choose hand-off target',
'handoff.optionsAria': 'Handoff options',
'handoff.editorSection': 'Open with editor',
'handoff.cliSection': 'Copy for CLI',
'handoff.clickOpen': 'Click to open',
'handoff.framework': 'Code framework',
'handoff.framework.react': 'React',
'handoff.framework.vue': 'Vue.js',
'handoff.framework.svelte': 'Svelte',
'handoff.framework.solid': 'SolidJS',
'handoff.framework.next': 'Next.js',
'handoff.framework.vanilla': 'JS',
'handoff.frameworkPrompt.react': 'React',
'handoff.frameworkPrompt.vue': 'Vue.js',
'handoff.frameworkPrompt.svelte': 'Svelte',
'handoff.frameworkPrompt.solid': 'SolidJS',
'handoff.frameworkPrompt.next': 'Next.js / React',
'handoff.frameworkPrompt.vanilla': 'vanilla JavaScript, HTML, and CSS',
'handoff.amrWebsite': 'Visit Open Design Cloud',
'handoff.copyPrompt': 'Copy prompt',
'handoff.copyPromptForTarget': 'Copy prompt for {target}',
'handoff.copied': 'Copied',
'handoff.projectPathUnavailable': 'Project path is still loading. Try again in a moment.',
'handoff.copyFailed': 'Clipboard write was blocked. Try again in a moment.',
'handoff.promptIntro': 'Continue from this local Open Design project folder:',
'handoff.promptTarget': 'Target',
'handoff.promptCli': 'CLI',
'handoff.promptStepsLead': 'You are taking over in {cli}. Please:',
'handoff.promptReadFiles': 'Enter or read this directory first. Prioritize DESIGN.md, README, existing HTML/CSS/JS, assets, and package.json if present.',
'handoff.promptKeepDesign': 'Preserve the current visual design, layout, interactions, and assets. Do not stop at a plan.',
'handoff.promptProduceCode': 'Generate or modify real runnable {framework} code. If the project already has a clearer stack, call out the conflict and keep the result runnable.',
'handoff.promptVerify': 'Finish by telling me the run, preview, and verification commands.',
'handoff.promptCommandHint': 'To start from the project directory, use:',
'handoff.promptProject': 'Project',
'handoff.promptProjectId': 'Project ID',
'handoff.notInstalled': 'Not installed',
'handoff.notDetectedTitle': '{target} - not detected on $PATH',
'designSystemPicker.select': 'Choose design system',
'designSystemPicker.loading': 'Loading design systems…',
'designSystemPicker.searchPlaceholder': 'Search design systems (title / category / summary)',
'designSystemPicker.searchCompactPlaceholder': 'Search design systems',
'designSystemPicker.noneTitle': 'No design system',
'designSystemPicker.noneSummary': 'No design system — the model freely improvises the visual style from your prompt.',
'designSystemPicker.empty': 'No matching design systems',
'designSystemPicker.openPreview': 'Open preview',
'designSystemPicker.loadingPreview': 'Loading preview…',
'designSystemPicker.noPreview': 'No preview page. Open Design Systems to view the full preview.',
'designSystemPicker.previewHint': 'Hover a design system to preview it',
'designSystemPicker.fullscreenAria': '{title} full-screen preview',
'designSystemPicker.closeFullscreen': 'Close full-screen preview',
'designSystemPicker.closeEsc': 'Close (Esc)',
'designSystemPicker.previewFrameTitle': '{title} preview',
'designSystemPicker.fullscreenFrameTitle': '{title} full-screen preview',
'recentProjects.title': 'Recent projects',
'recentProjects.viewAll': 'View all',
'recentProjects.empty': 'No projects yet — type a prompt to start one.',
'pluginsHome.title': 'Community',
'pluginsHome.subtitle': 'Ready-to-use Open Design workflows bundled with this runtime. Pick one to load a starter prompt, or browse the registry for more.',
'pluginsHome.browseRegistry': 'Browse registry',
'pluginsHome.count': '{filtered} of {total}',
'pluginsHome.loadingCatalog': 'Loading catalog…',
'pluginsHome.emptyCatalog': 'Catalog is empty. Bundled plugins ship with Open Design and should appear here automatically — try restarting the daemon if this persists.',
'pluginsHome.emptyFiltered': 'No plugins match the current filters.',
'pluginsHome.clearFilters': 'Clear filters',
'pluginsHome.modeAria': 'Plugin mode',
'pluginsHome.featured': 'Saved',
'pluginsHome.totalInCatalog': '{n} in catalog',
'pluginsHome.categoryFilterAria': 'Category filter',
'pluginsHome.subcategoryFilterAria': '{label} subcategory filter',
'pluginsHome.allCategory': 'All {label}',
'pluginsHome.searchPlaceholder': 'Search plugins…',
'pluginsHome.searchAria': 'Search plugins',
'pluginsHome.clearSearch': 'Clear search',
'pluginsHome.sortAria': 'Sort order',
'pluginsHome.sortHot': 'Trending',
'pluginsHome.sortNewest': 'Newest',
'pluginsHome.facet.import': 'Import',
'pluginsHome.facet.create': 'Create',
'pluginsHome.facet.export': 'Export',
'pluginsHome.facet.share': 'Share',
'pluginsHome.facet.deploy': 'Deploy',
'pluginsHome.facet.refine': 'Refine',
'pluginsHome.facet.extend': 'Extend',
'pluginsHome.facet.figma': 'Figma',
'pluginsHome.facet.github': 'GitHub',
'pluginsHome.facet.codeFolder': 'Code / folder',
'pluginsHome.facet.url': 'URL',
'pluginsHome.facet.screenshot': 'Screenshot',
'pluginsHome.facet.pdf': 'PDF',
'pluginsHome.facet.pptx': 'PPTX',
'pluginsHome.facet.framer': 'Framer',
'pluginsHome.facet.webflow': 'Webflow',
'pluginsHome.facet.slides': 'Slides',
'pluginsHome.facet.publicLink': 'Public link',
'pluginsHome.facet.githubPr': 'GitHub PR',
'pluginsHome.facet.githubGist': 'GitHub Gist',
'pluginsHome.subfacet.business-dashboards': 'Dashboards',
'pluginsHome.subfacet.app-prototypes': 'Apps',
'pluginsHome.subfacet.landing-marketing': 'Landing / marketing',
'pluginsHome.subfacet.developer-tools': 'Developer tools',
'pluginsHome.subfacet.docs-reports': 'Docs / reports',
'pluginsHome.subfacet.brand-design': 'Brand / design',
'pluginsHome.subfacet.pitch-business': 'Pitch / business',
'pluginsHome.subfacet.course-training': 'Course / training',
'pluginsHome.subfacet.reports-briefings': 'Reports / briefings',
'pluginsHome.subfacet.product-sales': 'Product / sales',
'pluginsHome.subfacet.engineering-talks': 'Engineering talks',
'pluginsHome.subfacet.creative-decks': 'Creative decks',
'pluginsHome.subfacet.ui-product-mockups': 'UI / product mockups',
'pluginsHome.subfacet.brand-visuals': 'Brand / logo',
'pluginsHome.subfacet.storyboards-motion-refs': 'Storyboards',
'pluginsHome.subfacet.social-content': 'Social / content',
'pluginsHome.subfacet.avatar-portrait': 'Avatar / portrait',
'pluginsHome.subfacet.illustration-style': 'Illustration / style',
'pluginsHome.subfacet.motion-effects': 'Motion / effects',
'pluginsHome.subfacet.social-short-form': 'Social / short form',
'pluginsHome.subfacet.marketing-product': 'Marketing / product',
'pluginsHome.subfacet.data-explainers': 'Data / explainers',
'pluginsHome.subfacet.cinematic-story': 'Cinematic / story',
'pluginsView.lede': 'Browse installed workflows, discover registry entries, manage sources, and prepare plugins for team distribution.',
'pluginsView.importPlugin': 'Import plugin',
'pluginsView.agentContext': 'Agent context',
'pluginsView.summaryAria': 'Plugin summary',
'pluginsView.areasAria': 'Plugin areas',
'pluginsView.loading': 'Loading plugins…',
'pluginsView.tab.installed': 'Installed',
'pluginsView.tab.available': 'Available',
'pluginsView.tab.sources': 'Sources',
'pluginsView.tab.team': 'Team',
'pluginsView.tabHint.installed': 'Your plugins',
'pluginsView.tabHint.available': 'From sources',
'pluginsView.tabHint.sources': 'Catalogs',
'pluginsView.tabHint.team': 'Enterprise',
'pluginsView.installedTitle': 'Installed plugins',
'pluginsView.installedSubtitle': 'Plugins you imported or installed from marketplace sources.',
'pluginsView.installedEmpty': 'No installed user plugins yet. Use Create / Import or install an Available entry.',
'pluginsView.availableTitle': 'Available from sources',
'pluginsView.availableSubtitle': 'Catalog entries discovered from configured marketplaces.',
'pluginsView.availableFiltersAria': 'Available plugin filters',
'pluginsView.searchAvailableAria': 'Search available plugins',
'pluginsView.searchAvailablePlaceholder': 'Search available plugins',
'pluginsView.clearAvailableSearch': 'Clear available plugin search',
'pluginsView.source': 'Source',
'pluginsView.availableEmptyInstalled': 'No available entries yet. Installed catalog entries are removed from Available; uninstall one to make it available again.',
'pluginsView.availableEmptyFiltered': 'No available entries match your filters.',
'pluginsView.availableEmptyNoSources': 'No available entries yet. Add a source in the Sources tab.',
'pluginsView.installing': 'Installing…',
'pluginsView.install': 'Install',
'pluginsView.sourcesTitle': 'Registry sources',
'pluginsView.sourcesSubtitle': 'Marketplace catalogs that feed Available plugin entries.',
'pluginsView.sourceUrl': 'Source URL',
'pluginsView.defaultTrust': 'Default trust',
'pluginsView.trust.restricted': 'Restricted',
'pluginsView.trust.trusted': 'Trusted',
'pluginsView.trust.official': 'Official',
'pluginsView.adding': 'Adding…',
'pluginsView.addSource': 'Add source',
'pluginsView.sourcesEmpty': 'No registry sources configured yet.',
'pluginsView.pluginsCount': '{n} plugins',
'pluginsView.catalogVersion': 'catalog v{version}',
'pluginsView.trustFor': 'Trust for {name}',
'pluginsView.refreshing': 'Refreshing…',
'pluginsView.removing': 'Removing…',
'pluginsView.teamTitle': 'Private team marketplaces',
'pluginsView.teamBody': 'This area is reserved for enterprise and team catalogs, private trust policies, and shared plugin lifecycle controls.',
'pluginCard.details': 'Details',
'pluginCard.use': 'Use',
'pluginCard.useWithQuery': 'Use with query',
'pluginCard.applying': 'Applying…',
'pluginCard.duplicate': 'Remix',
'pluginCard.duplicating': 'Remixing…',
'pluginCard.duplicateFailed': 'Could not remix this template.',
'pluginCard.saved': 'Saved',
'pluginCard.publish': 'Publish',
'pluginCard.contribute': 'Contribute',
'pluginCard.starting': 'Starting…',
'pluginCard.detailsAria': 'View details for {title}',
'pluginCard.chooseUseAria': 'Choose how to use {title}',
'pluginCard.useOptionsAria': 'Use options for {title}',
'pluginCard.duplicateAria': 'Remix {title} as a new project',
'pluginCard.saveAria': 'Save {title}',
'pluginCard.savedAria': '{title} is saved',
'pluginCard.shareAria': 'Share {title}',
'pluginCard.publishAria': 'Publish {title} as a GitHub repository',
'pluginCard.publishTitle': 'Publish plugin as a GitHub repository',
'pluginCard.contributeAria': 'Contribute {title} to Open Design',
'pluginCard.contributeTitle': 'Contribute plugin to Open Design with a pull request',
'skillPluginCandidate.createForMe': 'Create plugin/template',
'skillPluginCandidate.contributeToMain': 'Contribute to open-design',
'skillPluginCandidate.repoDescription': 'This repo looks like it could work as a plugin.',
'integrations.kicker': 'Integration',