-
Notifications
You must be signed in to change notification settings - Fork 9.7k
Expand file tree
/
Copy pathen.ts
More file actions
5227 lines (5217 loc) · 331 KB
/
Copy pathen.ts
File metadata and controls
5227 lines (5217 loc) · 331 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 = {
'invite.header.eyebrow': "Team invitation",
'invite.loading': "Loading invitation…",
'invite.landing.title': "Join the team",
'invite.landing.subtitle': "You’ve been invited to collaborate in Open Design.",
'invite.landing.roleLabel': "Role",
'invite.landing.invitedEmail': "Invited email",
'invite.landing.expires': "Expires",
'invite.role.admin': "Admin",
'invite.role.member': "Member",
'invite.role.admin.desc': "Can manage members, seats, and all project settings.",
'invite.role.member.desc': "Can create your own projects, and view and comment on shared team projects.",
'invite.accept.cta': "Accept invitation",
'invite.accountMismatch.title': "You’re signed in as a different account",
'invite.accountMismatch.body': "This invitation was sent to a different email address. You can continue with your current account, or switch accounts.",
'invite.accountMismatch.continue': "Continue with current account",
'invite.accountMismatch.switch': "Switch account",
'invite.accepting.title': "Joining the team…",
'invite.accepting.body': "Setting up your membership.",
'invite.success.title': "You’re in",
'invite.success.body': "Opening Open Design so you can start collaborating.",
'invite.success.roleReceipt': "Joined as",
'invite.success.enter': "Enter workspace",
'invite.open.cta': "Open Open Design",
'invite.open.opening': "Opening Open Design…",
'invite.open.retry': "Already installed? Try opening again",
'invite.notInstalled.title': "Didn’t open automatically?",
'invite.notInstalled.body': "You may not have Open Design installed yet. Install it, then reopen this link to finish joining.",
'invite.notInstalled.download': "Download Open Design",
'invite.error.title': "Can’t accept this invitation",
'invite.error.invite_expired': "This invitation has expired. Ask an admin to send a new one.",
'invite.error.invite_consumed': "This invitation has already been used.",
'invite.error.workspace_seat_limit_reached': "The team has no seats left. Ask an admin to free up a seat or add more.",
'invite.error.workspace_subscription_locked': "The team’s subscription is inactive, so new members can’t join right now.",
'invite.error.workspace_not_found': "This workspace no longer exists.",
'invite.error.workspace_forbidden': "Your account isn’t allowed to accept this invitation.",
'invite.error.invite_unavailable': "This invitation is no longer available.",
'invite.error.generic': "Something went wrong. Please try again.",
'invite.error.retry': "Try again",
"workspaceInvite.dialogAria": "Invite members",
"workspaceInvite.title": "Invite members to your team",
"workspaceInvite.freePlanBody": "The free plan includes 1 seat. Inviting teammates will guide you to upgrade to Teams.",
"workspaceInvite.teamPlanBody": "Invite teammates to share projects, design systems, and plugins together.",
"workspaceInvite.seatsExhaustedBody": "This workspace has no seats left. Add seats to invite teammates.",
"workspaceInvite.seatsExhaustedAction": "View seats and plan",
"workspaceInvite.emailLabel": "Invite members by email",
"workspaceInvite.roleLabel": "Assign role",
"workspaceInvite.defaultRoleLabel": "Default role",
"workspaceInvite.emailPlaceholder": "Enter email address…",
"workspaceInvite.removeRow": "Remove",
"workspaceInvite.addMember": "Add member",
"workspaceInvite.visibilityQuestion": "Will team members see my designs?",
"workspaceInvite.visibilityAnswer": "Team members can see designs you share to the team space. Private designs kept in Personal projects are not visible to others.",
"workspaceInvite.sent": "Invitation sent",
"workspaceInvite.sending": "Inviting…",
"workspaceInvite.confirm": "Confirm and invite",
"workspaceInvite.submitFailed": "Failed to send invitation. Try again later.",
"workspaceInvite.errorAlreadyMember": "This email is already a team member or has a pending invitation.",
"workspaceInvite.errorNoSession": "Sign in to your Vela account before inviting members.",
"workspaceInvite.errorNoWorkspace": "There's no team workspace to invite members to yet.",
"workspaceInvite.errorUnreachable": "The invitation couldn't be delivered. Please try again later.",
'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 allowance 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 allowance ({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 allowance updates.',
'chat.amrLowBalance.title': 'Running low on allowance',
'chat.amrLowBalance.message': 'Only {balance} of allowance remains — 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.amrArtifactUpgrade.title': 'Keep refining with stronger models',
'chat.amrArtifactUpgrade.message': 'Unlock advanced models, more parallel tasks, and more monthly credits.',
'chat.amrArtifactUpgrade.benefit1': 'More advanced models, including Fable 5 and GPT-5.6',
'chat.amrArtifactUpgrade.benefit2': 'Run up to 10× more tasks concurrently',
'chat.amrArtifactUpgrade.benefit3': 'Up to 300× more monthly credits',
'chat.amrArtifactUpgrade.benefit4': 'Priority queue at peak times for faster generations',
'chat.amrArtifactUpgrade.promoBanner': 'Limited time: save up to 67% on plans',
'chat.amrArtifactUpgrade.countdownLabel': 'Offer ends in',
'chat.amrArtifactUpgrade.plansCta': 'Upgrade now, up to 67% off',
'chat.amrArtifactUpgrade.homePlansCta': 'Save 67%',
'chat.amrArtifactUpgrade.laterCta': 'Continue with Free and send',
'chat.amrArtifactUpgrade.homeTitle': 'Your artifact is ready. Take the next idea further.',
'chat.amrArtifactUpgrade.homeMessage': 'Upgrade for stronger models, more parallel tasks, and more monthly credits.',
'chat.amrArtifactUpgrade.homeArtifactCta': 'View work',
'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 allowance',
'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.title.artifactMissing': 'No deliverable produced',
'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 details',
'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.title.cpuUnsupported': "Processor not supported",
'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 allowance. Top up (or ask your workspace owner to increase the allowance), 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.",
'chat.runError.cpuUnsupportedMessage': "This agent's runtime needs a CPU instruction set (AVX2) that this device doesn't have, so it can't start. Update Open Design to the latest version, which ships a compatible runtime.",
'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.inactive': 'inactive',
'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.viewport.desktop': 'Desktop',
'designBrowser.viewport.desktopTitle': 'Use the full browser tab size',
'designBrowser.viewport.tablet': 'Tablet',
'designBrowser.viewport.tabletTitle': 'Preview at 820px wide',
'designBrowser.viewport.mobile': 'Mobile',
'designBrowser.viewport.mobileTitle': 'Preview at 390px wide',
'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.addImageToChatButton': 'Add to Chat',
'designBrowser.status.imageAddedToChat': 'Image added to chat.',
'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': 'When the page is ready, click Download Page. Return to chat after it is saved.',
'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': 'Models & providers',
'settings.subtitle': 'Choose Local CLI or BYOK.',
'settings.general': 'General',
'settings.generalHint': 'Language, appearance, notifications, project locations, privacy, and app details.',
'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.cloudCalloutTitle': 'Use Open Design Cloud',
'settings.cloudCalloutBody': 'Sign in to the cloud version to enable team spaces, shared projects, member permissions, and the audit dashboard.',
'settings.cloudCalloutButton': 'Sign in / Register',
'settings.modeApiMeta': 'API providers',
'settings.byokNoFileToolsNotice': 'BYOK can\'t read, write, or edit project files. Use Local CLI when you need code changes.',
'settings.byokDraftNotice': 'Complete the required fields to save this provider. Your current setup will remain active.',
'settings.codeAgent': 'Code agent',
'settings.codeAgentHint': 'Choose which CLI 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': 'View 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': 'Installed CLIs ({count})',
'settings.agentInstallGroup': 'Available CLIs ({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': 'Allowance',
'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': 'Provider 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 URL',
'settings.baseUrlDefaultHint': 'Change this only if you use a proxy or compatible gateway.',
'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': 'Maximum response length. Leave blank to use the model default.',
'settings.apiHint': 'Stored locally on this device.',
'settings.skipForNow': 'Skip for now',
'settings.getStarted': 'Get started',
'settings.envConfigure': 'Models & providers',
'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.agentModelHead': 'Model for:',
'settings.modelPicker': 'Model',
'settings.modelSourceLive': 'Synced from CLI',
'settings.modelUsesCliDefault': 'CLI default',
'settings.modelSourceFallback': 'Built-in list',
'settings.reasoningPicker': 'Reasoning effort',
'settings.serviceTierPicker': 'Service tier',
'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': 'Connect providers for image, video, audio, and search.',
'settings.mcpServerTitle': 'Open Design MCP',
'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 configuration',
'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': 'Refresh providers',
'settings.mediaProviderReloadError': 'Could not refresh provider settings.',
'settings.mediaProviderReloadSuccess': 'Provider settings refreshed.',
'settings.mediaProviderLoadError': 'Could not load provider settings. Using locally saved settings for now.',
'settings.mediaProviderComingSoonHint': 'These providers are planned but are not yet available 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.allowSilentUpdates": "Allow automatic install of future in-app updates",
"settings.allowSilentUpdatesDesc": "When an in-app update is ready, install it automatically the next time Open Design starts. Does not upgrade the current session. Installer updates still ask first.",
'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': 'Connect Open Design to your coding agent',
'settings.mcpHint': 'Use MCP to give supported agents access to your projects and design context.',
'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': 'Setup command',
'settings.mcpInstructionCli': 'Run this command 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.mcpInstructionKiro': 'Open {path} and merge this JSON. For workspace-level config, use .kiro/settings/mcp.json.',
'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 setup command',
'settings.mcpResolvingFailed': '# resolving paths failed, see the error above',
'settings.mcpLoadingPaths': '# loading install paths from the local daemon…',
'settings.mcpCopied': 'Copied',
'settings.mcpCopy': 'Copy command',
'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 coding agent after adding the 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.',
'settings.mcpCapabilityPull': 'Collect a design’s files, styles, components, and fonts as context.',
'settings.mcpCapabilityDefault': 'Use the project and file currently open in Open Design as context.',
'settings.mcpRunningNote': 'Keep Open Design running. Restart your coding agent after setup.',
'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.mailAria': 'Email Open Design',
'entry.accountSettings': 'Settings',
'chat.collapsePane': 'Collapse the conversation pane',
'collabPresence.ariaOne': '1 collaborator online',
'collabPresence.aria': '{count} collaborators online',
'collabPresence.ariaWithSelfOne': '1 collaborator online, including you',
'collabPresence.ariaWithSelf': '{count} collaborators online, including you',
'collabPresence.moreOnline': '{count} more online',
'collabPresence.dialogTitle': 'Online collaborators',
'collabPresence.onlineCount': '{count} online',
'collabPresence.selfBadge': 'You',
'collabPresence.roleOwner': 'Owner',
'collabPresence.roleAdmin': 'Admin',
'collabPresence.roleMember': 'Member',
'collabPresence.viewingFileSelf': 'You are viewing {file}',
'collabPresence.viewingFileOther': 'Viewing {file}',
'collabPresence.viewingProjectSelf': 'You are viewing this project',
'collabPresence.viewingProjectOther': 'Viewing this project',
'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',
'workspaceSwitcher.team': 'Team',
'workspaceSwitcher.invite': 'Invite colleague',
'workspaceSwitcher.createTeam': 'New team',
"workspaceSwitcher.draftsTooltip": "Personal projects",
"workspaceSwitcher.allProjectsTooltip": "Team projects",
"entry.primaryNavAria": "Primary",
"entry.billingTierTeam": "Teams",
"entry.billingTierFree": "Free",
"entry.billingTierPro": "Pro",
"entry.billingFamilyCreator": "Creator",
"entry.upgradeTitle": "Upgrade plan",
"entry.upgradeCreditsExhaustedTitle": "Credits exhausted",
"entry.upgradeAutoRechargeTitle": "Auto recharge",
"entry.upgradeDialogAria": "Upgrade plan",
"entry.upgradeSubtitle": "Upgrade to a higher plan to increase your quota immediately. The charge is prorated for the current billing cycle.",
"entry.upgradeCreditsExhaustedSubtitle": "You need more credits to continue. Upgrade to a higher plan to increase your quota immediately. The charge is prorated for the current billing cycle.",
"entry.upgradeAutoRechargeMemberSubtitle": "Enable a separate allowance for {member}. Saving this setting will not charge immediately; credits refill only when this member falls below the threshold.",
"entry.upgradeAutoRechargeTeamSubtitle": "Enable an allowance for all teammates. Saving this setting will not charge immediately; team credits refill only when the balance falls below the threshold.",
"entry.upgradeScopeLabel": "Scope",
"entry.upgradeScopeMember": "{member} · single-member allowance",
"entry.upgradeScopeTeam": "All teammates · shared allowance",
"entry.upgradePaymentHint": "Uses the subscription payment method by default. You can manage it anytime.",
"entry.upgradeManagePayment": "Manage payment method",
"entry.upgradeMonthlyLimit": "Monthly limit",
"entry.upgradeLimitCustom": "",
"entry.upgradeLimitUnlimited": "∞ unlimited (no monthly cap)",
"entry.upgradeBillingCycleAria": "Billing cycle",
"entry.upgradeAnnual": "Annual",
"entry.upgradeAnnualSave": "Save 20%",
"entry.upgradeMonthly": "Monthly",
"entry.upgradePlanPlus": "Personal Plus",
"entry.upgradePlanPlusDesc": "Basic token allowance · SOTA models",
"entry.upgradePlanPro": "Personal Pro",
"entry.upgradePlanProDesc": "3x token allowance · top multimodal models",
"entry.upgradePlanMax": "Personal Max",
"entry.upgradePlanMaxDesc": "10x token allowance · top multimodal models",
"entry.upgradePlanTeam": "Teams",
"entry.upgradePlanTeamDesc": "Collaboration · shared assets · role permissions",
"entry.upgradePriceUnitMonth": "/mo",
"entry.upgradePriceUnitSeat": "/seat/mo",
"entry.upgradeProrateAnnualPrefix": "Annual billing saves 20%; ",
"entry.upgradeProrateMonthlyPrefix": "Monthly billing; ",
"entry.upgradeProrateSuffix": "upgrades are prorated for the current billing cycle and take effect immediately.",
"entry.upgradeBack": "Back",
"entry.upgradeAutoRechargeSaved": "Auto recharge settings saved",
"entry.upgradeConfirm": "Confirm payment and upgrade",
"entry.creditsAria": "{tier} · allowance remaining",
"entry.creditsAriaWithBalance": "{tier} · {balance} allowance remaining",
"entry.creditsGrantTip": "Team allowance is granted by subscription. Usage is available in billing.",
"entry.creditsUpgrade": "Upgrade",
"entry.creditsOpening": "Opening...",
"entry.creditsRemaining": "Allowance remaining",
"entry.credits": "Allowance",
"entry.creditsUsage": "View usage",
"entry.creditsMemberNoticeTitle": "Need more allowance?",
"entry.creditsMemberNoticeBody": "You are currently a Member and cannot top up yourself. Ask a team Admin to increase the allowance when you need more.",
"entry.creditsMemberNoticeAction": "Ask Admin to increase allowance",
"entry.accountToggleTheme": "Toggle theme",
"entry.accountSwitchLanguage": "Switch language",
"entry.accountLanguageMeta": "中文 / English",
"entry.accountGithubHelp": "Get help on GitHub",
"entry.accountFeatureRequest": "Submit feature request",
"entry.accountAddAccount": "Add account",
"entry.accountSignOut": "Sign out",
"signOut.confirmTitle": "Sign out",
"signOut.confirmMessage": "Are you sure you want to sign out?",
"signOut.confirmAction": "Sign out",
"entry.navRecents": "Home",
"entry.navDashboard": "Dashboard",
"entry.blankDraftsTitle": "Start a private draft",
"entry.blankDraftsDescription": "Create a project here first. It stays private until you move it into the team space.",
"entry.blankAllProjectsTitle": "No team projects yet",
"entry.blankAllProjectsDescription": "Projects shared to the team will appear here for everyone in the workspace.",
"entry.blankCreate": "New project",
'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',
'entry.navMembers': 'Members',
'entry.navWorkspaceSettings': 'Workspace settings',
'entry.navDrafts': 'Personal projects',
'entry.navAllProjects': 'Team projects',
'entry.draftsDescription': 'Projects you created, visible only to you',
'entry.allProjectsDescription': 'Projects owned by everyone on the team',
'entry.navBoard': 'Board',
'entry.navTeamSection': 'Team',
'entry.teamSlotNote': 'This space is provided by the team service. Integration is in progress.',
"entry.cloudCalloutTitle": "Open Design Cloud",
"entry.cloudCalloutBody": "Sign in to use Open Design Cloud and collaborate in the cloud",
"entry.cloudCalloutDismissAria": "Dismiss Open Design Cloud note",
'entry.workspaceLockedNote': 'This workspace is locked. Restore billing to resume editing shared projects.',
'entry.workspaceLockedRecover': 'Restore access',
'messageCenter.openAria': 'Open message center',
'messageCenter.unreadCount': '{count} unread',
'messageCenter.title': 'Message center',
'messageCenter.subtitle': 'Open Design updates, platform announcements, and account notices.',
'messageCenter.filterAll': 'All',
'messageCenter.filterUnread': 'Unread',
'messageCenter.filterRead': 'Read',
'messageCenter.markAllRead': 'Mark all read',
'messageCenter.emptyAllTitle': 'No messages yet',
'messageCenter.emptyUnreadTitle': 'All caught up',
'messageCenter.emptyReadTitle': 'No read messages',
'messageCenter.emptyBody': 'New platform messages will appear here.',
'messageCenter.close': 'Close message center',
'messageCenter.desktopSettings': 'Desktop notification settings',
'messageCenter.desktopSettingsHint': 'Task completion sounds and system notifications stay in Settings.',
'workspaceTabs.project': 'Project',
'workspaceTabs.pluginDetails': 'Plugin details',
'workspaceTabs.marketplace': 'Marketplace',
'homeHero.title': 'What will you design with your agent today?',
'homeHero.startWithTemplate': 'Start with a template…',
'homeHero.startBlankProject': 'start a blank project',
'homeHero.templatePicker.label': 'Creation type',
'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 source-available 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': 'Examples',
'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.subTypeMore': 'More',
'homeHero.confirmReplaceTitle': 'Replace current prompt?',
'homeHero.confirmReplaceBody': 'Using {title} will replace the text currently in the input.',
'homeHero.confirmReplace': 'Replace',
'homeHero.chip.prototype': 'UI Mockup',
'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': 'Working directory',
'homeWorkingDir.triggerShort': 'Working directory',
'homeWorkingDir.pick': 'Choose folder',
'homeWorkingDir.replace': 'Change working directory',
'homeWorkingDir.recent': 'Recent folders',