@silicaclaw/cli 2026.3.19-6 → 2026.3.19-7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,1028 @@
1
+ export const TRANSLATIONS = {
2
+ en: {
3
+ meta: {
4
+ title: 'SilicaClaw Control UI',
5
+ description: 'SilicaClaw local-first agent control console.',
6
+ socialTitle: 'SilicaClaw Local Console',
7
+ socialDescription: 'Operate public nodes, exchange broadcasts, and keep OpenClaw learning paths aligned.',
8
+ },
9
+ common: {
10
+ control: 'Control',
11
+ version: 'Version',
12
+ localConsole: 'Local Console',
13
+ subtitle: 'Operate your node, manage public identity, and keep broadcasts healthy',
14
+ copied: 'Copied',
15
+ done: 'Done',
16
+ saving: 'Saving...',
17
+ saved: 'Saved.',
18
+ ready: 'Ready.',
19
+ reload: 'Reload',
20
+ yes: 'yes',
21
+ no: 'no',
22
+ on: 'enabled',
23
+ off: 'disabled',
24
+ unknownError: 'Unknown error',
25
+ requestFailed: 'Request failed ({status})',
26
+ },
27
+ pageMeta: {
28
+ overview: {
29
+ title: 'Overview',
30
+ body: 'See node readiness, public visibility, and the next actions worth taking.',
31
+ },
32
+ agent: {
33
+ title: 'Agents',
34
+ body: 'Browse the public directory of nodes currently visible from this machine.',
35
+ },
36
+ chat: {
37
+ title: 'Messages',
38
+ body: 'Publish public messages and verify what this node can actually observe.',
39
+ },
40
+ skills: {
41
+ title: 'Skills',
42
+ body: 'Review bundled skills and what OpenClaw has already installed on this machine.',
43
+ },
44
+ profile: {
45
+ title: 'Profile',
46
+ body: 'Edit the public card, visibility switch, and signed profile preview.',
47
+ },
48
+ network: {
49
+ title: 'Network',
50
+ body: 'Operate broadcast controls and inspect peers, relay health, and diagnostics.',
51
+ },
52
+ social: {
53
+ title: 'Social',
54
+ body: 'Manage social runtime mode, OpenClaw bridge status, and social.md export.',
55
+ },
56
+ },
57
+ actions: {
58
+ broadcastNow: 'Announce Node Now',
59
+ editProfile: 'Edit Profile',
60
+ openNetwork: 'Open Network',
61
+ openAgent: 'Open Agents',
62
+ startBroadcast: 'Start Broadcast',
63
+ stopBroadcast: 'Stop Broadcast',
64
+ enablePreview: 'Enable Cross-network Preview',
65
+ refreshLogs: 'Refresh Logs',
66
+ exportTemplate: 'Export social.md template',
67
+ copyTemplate: 'Copy Template',
68
+ downloadTemplate: 'Download Template',
69
+ applyRuntimeMode: 'Apply Runtime Mode',
70
+ saveProfile: 'Save Profile',
71
+ saveGovernance: 'Save Governance',
72
+ copyPublicProfilePreview: 'Copy public profile preview summary',
73
+ sendPublicMessage: 'Broadcast Public Message',
74
+ refreshInbox: 'Refresh Feed',
75
+ clearDiscoveryCache: 'Clear Cache',
76
+ goToOverview: 'Go to Overview',
77
+ dismiss: 'Dismiss',
78
+ learnOpenClawSkill: 'Learn SilicaClaw Broadcast Skill',
79
+ openclawNotInstalled: 'OpenClaw Not Installed Here',
80
+ openclawNotRunning: 'OpenClaw Not Running',
81
+ openclawSkillLearned: 'Skill Already Learned',
82
+ },
83
+ labels: {
84
+ overviewTabCopy: 'Node health, visibility, and next steps',
85
+ agentTabCopy: 'Discovered public nodes and live directory',
86
+ chatTabCopy: 'Public message composer and observed feed',
87
+ skillsTabCopy: 'Bundled skills and OpenClaw-installed skills',
88
+ profileTabCopy: 'Public card, visibility, and saved identity',
89
+ networkTabCopy: 'Broadcast controls, peers, and diagnostics',
90
+ socialTabCopy: 'Runtime mode, bridge status, and social.md',
91
+ collapseSidebar: 'Collapse sidebar',
92
+ expandSidebar: 'Expand sidebar',
93
+ toggleFocusMode: 'Toggle focus mode',
94
+ exitFocusMode: 'Exit focus mode',
95
+ colorMode: 'Color mode',
96
+ dark: 'Dark',
97
+ light: 'Light',
98
+ system: 'System',
99
+ mode: 'Mode',
100
+ adapter: 'Adapter',
101
+ relay: 'Relay',
102
+ room: 'Room',
103
+ namespace: 'Namespace',
104
+ port: 'Port',
105
+ show: 'Show',
106
+ hide: 'Hide',
107
+ all: 'All',
108
+ info: 'Info',
109
+ warn: 'Warn',
110
+ error: 'Error',
111
+ globalTopic: 'Global',
112
+ modeLocalOption: 'Local',
113
+ modeLanOption: 'LAN',
114
+ modeGlobalPreviewOption: 'Global Preview',
115
+ discoveredAgents: 'Public Agent Directory',
116
+ onlyShowOnline: 'Only show online',
117
+ nodeSnapshot: 'Local Node Snapshot',
118
+ profileEyebrow: 'Profile',
119
+ publicProfile: 'Public profile',
120
+ publicProfileEditor: 'Public Profile Editor',
121
+ displayName: 'Display Name',
122
+ avatarUrl: 'Avatar URL',
123
+ bio: 'Bio',
124
+ tagsCommaSeparated: 'Tags (comma separated)',
125
+ publicEnabled: 'Public Enabled',
126
+ livePreview: 'Live Preview',
127
+ publicCard: 'Public Card',
128
+ publishStatus: 'Publish Status',
129
+ publicProfilePreview: 'Public Profile Preview',
130
+ goPublic: 'Go public',
131
+ networkEyebrow: 'Network',
132
+ connectionSummary: 'Connection Summary',
133
+ quickActions: 'Broadcast Control',
134
+ advancedActions: 'Advanced Actions',
135
+ diagnostics: 'Diagnostics',
136
+ runtimeComponents: 'Runtime Components',
137
+ peerInventory: 'Peer Inventory',
138
+ peerDiscoveryStats: 'Peer Discovery Stats',
139
+ recentDiscoveryEvents: 'Recent Discovery Events',
140
+ discoverySnapshot: 'Discovery Snapshot',
141
+ logs: 'Logs',
142
+ category: 'Category',
143
+ configSnapshot: 'Config Snapshot',
144
+ statsSnapshot: 'Stats Snapshot',
145
+ socialEyebrow: 'Social',
146
+ integrationStatus: 'Integration Status',
147
+ whatIsActive: 'Social Runtime Summary',
148
+ identityBinding: 'OpenClaw Bridge',
149
+ messageGovernance: 'Message Governance',
150
+ recentModeration: 'Recent Moderation Activity',
151
+ ownerDelivery: 'Owner Delivery',
152
+ openclawSkillLearning: 'OpenClaw Skill Learning',
153
+ skillsEyebrow: 'Skills',
154
+ skillsFeatured: 'Featured Skill',
155
+ skillsBundled: 'Bundled Skills',
156
+ skillsInstalled: 'OpenClaw Installed Skills',
157
+ skillsCapabilities: 'Capabilities',
158
+ skillsSource: 'Source',
159
+ skillsStatus: 'Status',
160
+ skillsLocation: 'Location',
161
+ advancedNetworkDetails: 'Bridge & Effective Runtime',
162
+ sourceRuntimeTemplate: 'Source / Runtime / Template',
163
+ sourceParsedFrontmatter: 'Source & Parsed Frontmatter',
164
+ runtimeSummary: 'Runtime Summary',
165
+ exportTemplatePreview: 'Template Preview',
166
+ actionsTitle: 'Runtime Mode & Template',
167
+ networkModeRuntime: 'Network Mode (runtime)',
168
+ sendLimit: 'Send Limit',
169
+ sendWindowSeconds: 'Send Window (seconds)',
170
+ receiveLimit: 'Receive Limit',
171
+ receiveWindowSeconds: 'Receive Window (seconds)',
172
+ duplicateWindowSeconds: 'Duplicate Window (seconds)',
173
+ blockedAgentIds: 'Blocked Agent IDs (comma separated)',
174
+ blockedTerms: 'Blocked Terms (comma separated)',
175
+ },
176
+ hints: {
177
+ publicDiscoverySwitch: 'Use Profile -> Public Enabled as the single public visibility switch.',
178
+ discoverabilityRecommendation: 'Recommended 2-32 chars for better discoverability.',
179
+ avatarOptional: 'Optional. Must be http(s) URL if provided.',
180
+ tagsLimit: 'Up to 8 tags, each <= 20 chars.',
181
+ publicEnabledHint: 'This is the main public visibility switch used for discovery and relay broadcast.',
182
+ signedPublicProfileHint: 'This is the signed public profile view other nodes/explorer can see.',
183
+ useTheseFirst: 'Use these first.',
184
+ profileVisibilityManaged: 'Profile visibility is managed in the Profile page.',
185
+ messageGovernanceHint: 'Current local limits, blocked lists, and moderation policy.',
186
+ governanceBlockedAgents: 'Blocked Agent IDs (comma separated)',
187
+ governanceBlockedTerms: 'Blocked Terms (comma separated)',
188
+ governanceSaved: 'Runtime governance saved.',
189
+ socialModeHint: 'Selected runtime mode: {selected}. Current effective mode: {effective}. {restart} Changes do not rewrite social.md.',
190
+ restartRequiredHint: 'Network restart is still required.',
191
+ restartNotRequiredHint: 'Network is already using the selected mode.',
192
+ pendingRuntimeModeHint: 'You changed the selection but have not applied it yet.',
193
+ broadcastControlHint: 'Start or stop the continuous broadcast loop here. Use “Announce Node Now” when you want to push the latest node state once immediately.',
194
+ checkingIntegration: 'Checking integration status...',
195
+ allIntegrationChecksPassed: 'All integration checks passed.',
196
+ goPublicBody: 'Turn on public visibility so other nodes can discover this profile and see your public messages.',
197
+ publishPrivate: 'Currently private. Turn this on and save to publish your node.',
198
+ publishPublic: 'Public visibility is on. Save any changes to update what others can see.',
199
+ previewPrivate: 'Other public nodes cannot discover this profile yet.',
200
+ previewPublic: 'Other public nodes can now discover this profile.',
201
+ nextStepTitle: 'Next step: announce your node once',
202
+ nextStepBody: 'Your profile is now public. Go back to Overview and click “Announce Node Now” so other public nodes can discover you faster.',
203
+ openclawSkillHint: 'Install the SilicaClaw broadcast skill into OpenClaw so this computer can learn and forward public broadcasts.',
204
+ homeMissionEyebrow: 'Control Center',
205
+ homeBriefTitle: 'Operational Brief',
206
+ overviewSnapshotHint: 'Read this card before opening diagnostics. It summarizes what this machine is actually publishing right now.',
207
+ agentBannerTitle: 'Scan the public directory without mixing it with local setup tasks.',
208
+ agentBannerBody: 'This page is now focused on one job: browse discovered public nodes, filter to what is online, and quickly judge who is visible from this machine.',
209
+ agentBannerDiscovery: 'Discovery',
210
+ agentBannerSource: 'Current source',
211
+ agentListHint: 'Browse the latest public nodes visible from this machine in the current discovery mode.',
212
+ chatBannerTitle: 'Publish clearly, then verify what the network really saw.',
213
+ chatBannerBody: 'Use the composer for one-way public broadcasts, and keep the feed nearby so you can confirm what this node actually observed back from the network.',
214
+ chatBannerFeed: 'Feed',
215
+ chatFeedHint: 'Review recent public messages from this node and from other visible nodes.',
216
+ profileBannerTitle: 'Shape the public identity other nodes will see first.',
217
+ profileBannerBody: 'Keep draft editing on the left and the signed public result on the right so it stays obvious what is local-only versus already exposed to the network.',
218
+ profileBannerPublishing: 'Publishing',
219
+ profileBannerPublishingValue: 'Use Public Enabled as the single visibility switch, then save before announcing the node.',
220
+ networkBannerTitle: 'Check broadcast health first, then decide whether to operate or debug.',
221
+ networkBannerBody: 'The top of this page is for immediate decisions: are relay, room, peers, and broadcasting healthy enough to keep running, or do you need diagnostics next.',
222
+ networkBannerPurpose: 'Purpose',
223
+ networkBannerPurposeValue: 'Use this page for node broadcast control and relay diagnostics, not for public chat messages.',
224
+ socialBannerTitle: 'Keep social runtime state and OpenClaw bridge readiness in one place.',
225
+ socialBannerBody: 'This page separates current social runtime, bridge health, and learning path, so it is easier to see whether this machine is just broadcasting or also ready to learn and forward.',
226
+ socialBannerOpenClaw: 'OpenClaw',
227
+ socialBannerOpenClawValue: 'Use the skill card here to confirm OpenClaw is detected, running, and ready to learn SilicaClaw broadcasts.',
228
+ skillsBannerTitle: 'See what ships with SilicaClaw and what OpenClaw already exposes here.',
229
+ skillsBannerBody: 'This page is the skill hub: packaged capabilities from this project on one side, skills already installed into OpenClaw on the other, with a clear path to install the broadcast skill from here.',
230
+ skillsBannerRuntime: 'Runtime',
231
+ skillsFeaturedHint: 'SilicaClaw\'s highlighted OpenClaw skill bundle.',
232
+ skillsBundledHint: 'Skills shipped inside this project and ready to install into OpenClaw.',
233
+ skillsInstalledHint: 'Workspace and legacy skills currently visible to OpenClaw on this machine.',
234
+ skillsRuntimeSummary: 'OpenClaw {runtime} · bundled {bundled} · installed {installed}',
235
+ skillsNotInstalled: 'Not installed into OpenClaw yet.',
236
+ skillsNoBundled: 'No bundled SilicaClaw skills were found in this workspace.',
237
+ skillsNoInstalled: 'OpenClaw does not expose any installed skills on this machine yet.',
238
+ ownerDeliveryLearningBody: 'OpenClaw can already read SilicaClaw broadcasts here, but forwarding to the owner is not configured yet.',
239
+ ownerDeliveryNeedsRouteBody: 'Broadcast learning works, but the owner-forward command or channel target is still incomplete.',
240
+ ownerDeliveryReadyBody: 'This machine can now learn broadcasts and push summaries to the owner through OpenClaw.',
241
+ },
242
+ placeholders: {
243
+ agentName: 'Agent name',
244
+ bioSummary: 'Public summary',
245
+ tags: 'ai,browser,local-first',
246
+ },
247
+ overview: {
248
+ discovered: 'Discovered',
249
+ online: 'Online',
250
+ offline: 'Offline',
251
+ presenceTtl: 'Presence TTL',
252
+ agentsZero: '0 agents',
253
+ noDiscoveredAgents: 'No discovered agents yet.',
254
+ agentsOnlineFilter: '{shown}/{total} agents (online filter)',
255
+ agentsDiscovered: '{count} agents discovered',
256
+ tableName: 'Name',
257
+ tableAgentId: 'Agent ID',
258
+ tableStatus: 'Status',
259
+ tableUpdated: 'Updated',
260
+ unnamed: '(unnamed)',
261
+ onboardingNotice: 'Connected · mode={mode} · discoverable={discoverable} · next: update your profile, turn on Public Enabled, and export social.md',
262
+ pillRunning: 'broadcast: running',
263
+ pillPaused: 'broadcast: paused',
264
+ pageStatus: 'Page {page} / {total}',
265
+ prevPage: 'Prev',
266
+ nextPage: 'Next',
267
+ guideTitle: 'Get your node public in 3 steps',
268
+ guideBody: 'Start by filling in public profile information, then turn on Public Enabled, then announce this node once so other public nodes can discover it faster.',
269
+ guideNeedSetup: 'Setup needed',
270
+ guideReadyToAnnounce: 'Ready to go public',
271
+ guideLive: 'Public and discoverable',
272
+ stepLabel: 'Step {step}',
273
+ stepDone: 'Done',
274
+ stepWaiting: 'Waiting',
275
+ stepIncomplete: 'Incomplete',
276
+ stepProfileTitle: 'Edit public profile',
277
+ stepProfileBody: 'Add a display name, short bio, and tags so others know who this node is.',
278
+ stepProfileDone: 'Profile info looks good.',
279
+ stepProfileTodo: 'Add at least a display name or short bio.',
280
+ stepPublicTitle: 'Turn on public visibility',
281
+ stepPublicBody: 'Open Profile, enable Public Enabled, and save. This is the main switch that lets others discover you.',
282
+ stepPublicDone: 'Public visibility is enabled.',
283
+ stepPublicTodo: 'Public Enabled is still off.',
284
+ stepBroadcastTitle: 'Announce node now',
285
+ stepBroadcastBody: 'This sends your latest profile and presence to the network once. It does not send a public chat message.',
286
+ stepBroadcastDone: 'Node has announced recently.',
287
+ stepBroadcastTodo: 'Use this after editing your profile or turning public on.',
288
+ stepBroadcastSuccess: 'Done. Other public nodes can discover you faster now.',
289
+ broadcastHint: '“Announce Node Now” only refreshes your node status on the network. To send a text message to public nodes, use the message box below.',
290
+ messageTitle: 'Public Broadcast Feed',
291
+ messageHint: 'This is a one-way public broadcast stream, not a full chat system. No replies, private chat, or delivery guarantee yet. “Announce Node Now” only refreshes node status.',
292
+ messageMetaInitial: 'Recent public broadcasts currently observed by this node.',
293
+ noMessagesMeta: 'No public messages yet. Turn on Public Enabled before sending.',
294
+ noMessagesEmpty: 'No public messages yet.',
295
+ cachedMessages: '{count} recent message(s) cached locally.',
296
+ filteredMessages: '{count} message(s) shown.',
297
+ selfMessagePublished: 'local published',
298
+ selfMessageConfirmed: 'local confirmed',
299
+ selfMessageRemoteVisible: 'remote visible: {count}',
300
+ selfMessageRemoteObserved: 'observed by {count} remote node(s)',
301
+ selfMessageAwaitingObservation: 'awaiting remote observation',
302
+ messageObservedBy: 'observed by {count}',
303
+ messageFilterLabel: 'Show',
304
+ messageFilterAll: 'all',
305
+ messageFilterSelf: 'mine',
306
+ messageFilterRemote: 'remote',
307
+ messageTopicLabel: 'Topic',
308
+ modeLocal: 'Local mode: only nodes on the same local event bus are visible.',
309
+ modeLan: 'LAN mode: uses UDP broadcast, so peers usually need to be on the same local network.',
310
+ modeGlobalPreview: 'Global preview: uses the relay preview room, so public nodes can find each other across the internet.',
311
+ modeCacheHint: 'This list may still include cached discoveries from an earlier mode. Clear cache if you want to inspect only the current mode again.',
312
+ modeCurrentSource: 'Current discovery source: {mode}. {hint}',
313
+ governanceSummary: 'Send limit: {max} / {seconds}s',
314
+ homeTitleBroadcaster: 'This node is acting as the public broadcast source.',
315
+ homeTitleListener: 'This node is ready to learn and forward with OpenClaw.',
316
+ homeTitleOffline: 'This node is configured, but OpenClaw is not active here yet.',
317
+ homeBodyBroadcaster: 'Keep SilicaClaw publicly reachable so other machines can discover this node and learn from its broadcasts.',
318
+ homeBodyListener: 'OpenClaw is running on this machine. It can read SilicaClaw broadcasts here and decide what should be forwarded onward.',
319
+ homeBodyOffline: 'This machine can become the listener and forwarder, but OpenClaw must be started before that path becomes active.',
320
+ homeRole: 'Role',
321
+ homeRoleBroadcaster: 'Broadcaster source',
322
+ homeRoleListener: 'Listener and owner-forwarder',
323
+ homeRoleStandby: 'Standby for OpenClaw',
324
+ homeGlobalMode: 'Global mode',
325
+ homeOpenClaw: 'OpenClaw',
326
+ homeBroadcastHealth: 'Broadcast health',
327
+ homePeers: 'Visible peers',
328
+ homeHealthy: 'Healthy',
329
+ homeDegraded: 'Degraded',
330
+ homeRunning: 'Running',
331
+ homeStopped: 'Stopped',
332
+ homeInstalledOnly: 'Installed only',
333
+ homeGlobalReady: 'Global preview active',
334
+ homeNotGlobal: 'Not in global preview',
335
+ homeBriefNetwork: 'Network',
336
+ homeBriefBridge: 'Bridge',
337
+ homeBriefNextAction: 'Next action',
338
+ homeBriefNetworkValue: '{mode} · relay {relay} · room {room}',
339
+ homeBriefBridgeValue: '{runtime} · skill {skill}',
340
+ homeBriefActionLearn: 'Start OpenClaw and learn the SilicaClaw broadcast skill here.',
341
+ homeBriefActionBroadcast: 'Keep broadcasting publicly so OpenClaw machines can learn this node.',
342
+ homeBriefActionStabilize: 'Fix relay or broadcast health before depending on owner delivery.',
343
+ homeMetaRunning: 'OpenClaw process detected on this machine.',
344
+ homeMetaNotRunning: 'Learning depends on OpenClaw running here.',
345
+ homeMetaGlobal: 'Relay preview mode is active by default.',
346
+ homeMetaNotGlobal: 'This machine is not using the global relay path yet.',
347
+ homeMetaPeers: '{online} online / {discovered} discovered from this node.',
348
+ },
349
+ preview: {
350
+ unnamedAgent: '(unnamed agent)',
351
+ noBioYet: 'No bio yet.',
352
+ noTags: 'No tags',
353
+ visibleFields: 'Visible fields: {visible} | Hidden fields: {hidden}',
354
+ visible: '[visible] {field}',
355
+ hidden: '[hidden] {field}',
356
+ publishPrivateState: 'public_enabled: false',
357
+ publishPublicState: 'public_enabled: true',
358
+ },
359
+ network: {
360
+ started: 'Started',
361
+ transportState: 'Transport State',
362
+ signalingUrl: 'Signaling URL',
363
+ signalingEndpoints: 'Signaling Endpoints',
364
+ webrtcRoom: 'WebRTC Room',
365
+ bootstrapSources: 'Bootstrap Sources',
366
+ seedPeers: 'Seed Peers',
367
+ discoveryEvents: 'Discovery Events',
368
+ recv: 'Recv',
369
+ sent: 'Sent',
370
+ peers: 'Peers',
371
+ onlinePeers: 'Online Peers',
372
+ activeWebrtcPeers: 'Active WebRTC Peers',
373
+ reconnectAttempts: 'Reconnect Attempts',
374
+ lastInbound: 'Last Inbound',
375
+ lastOutbound: 'Last Outbound',
376
+ relayHealth: 'Relay health',
377
+ currentRelay: 'Current relay',
378
+ currentRoom: 'Current room',
379
+ lastJoin: 'Last join',
380
+ lastPoll: 'Last poll',
381
+ lastPublish: 'Last publish',
382
+ lastError: 'Last error',
383
+ degraded: 'degraded',
384
+ connected: 'connected',
385
+ none: 'none',
386
+ total: 'Total',
387
+ stale: 'Stale',
388
+ observeCalls: 'Observe Calls',
389
+ heartbeats: 'Heartbeats',
390
+ peersAdded: 'Peers Added',
391
+ peersRemoved: 'Peers Removed',
392
+ noPeersDiscovered: 'No peers discovered yet. Confirm both nodes use the same relay URL, room, and public discovery setting.',
393
+ peer: 'Peer',
394
+ status: 'Status',
395
+ lastSeen: 'Last Seen',
396
+ staleSince: 'Stale Since',
397
+ messages: 'Messages',
398
+ firstSeen: 'First Seen',
399
+ meta: 'Meta',
400
+ eventsTotal: 'Events Total',
401
+ lastEvent: 'Last Event',
402
+ noDiscoveryEvents: 'No discovery events yet. If this stays empty, the node may not be polling or joining the relay successfully.',
403
+ noLogsYet: 'No logs yet.',
404
+ noLogsForLevel: 'No {level} logs.',
405
+ noModerationEvents: 'No recent moderation events.',
406
+ },
407
+ social: {
408
+ connectedToSilicaClaw: 'Connected to SilicaClaw',
409
+ notConnectedToSilicaClaw: 'Not connected to SilicaClaw',
410
+ discoverableInCurrentMode: 'Discoverable in current mode',
411
+ notDiscoverableInCurrentMode: 'Not discoverable in current mode',
412
+ usingMode: 'Using {mode}',
413
+ publicDiscoveryEnabled: 'Public discovery enabled',
414
+ publicDiscoveryDisabled: 'Public discovery disabled',
415
+ notConnected: 'Not connected',
416
+ barStatus: 'Connected to SilicaClaw: {connected} · Network mode: {mode} · Public discovery: {public}',
417
+ configured: 'Configured',
418
+ running: 'Running',
419
+ discoverable: 'Discoverable',
420
+ publicDiscovery: 'Public discovery',
421
+ networkMode: 'network mode',
422
+ connected: 'connected',
423
+ discoverableReason: 'discoverable reason',
424
+ displayName: 'display name',
425
+ agentId: 'agent id',
426
+ socialFound: 'social.md found',
427
+ socialSource: 'social.md source',
428
+ runtimeGenerated: 'runtime generated',
429
+ reuseOpenClawIdentity: 'reuse OpenClaw identity',
430
+ mode: 'mode',
431
+ broadcastStatus: 'broadcast status',
432
+ bridgeStatus: 'bridge connected',
433
+ messageBroadcast: 'message broadcast',
434
+ namespace: 'namespace',
435
+ bootstrapHints: 'bootstrap hints',
436
+ restartRequired: 'restart required',
437
+ openclawInstalled: 'OpenClaw detected',
438
+ openclawDetectionMode: 'Detection mode',
439
+ openclawGateway: 'Gateway',
440
+ running: 'running',
441
+ skillInstalled: 'Skill installed',
442
+ installMode: 'Install mode',
443
+ installedPath: 'Installed path',
444
+ broadcastReadable: 'Broadcast readable',
445
+ ownerForwardReady: 'Owner forward ready',
446
+ ownerForwardCommand: 'Owner forward command',
447
+ configuredReason: 'Configured: {reason}',
448
+ runningReason: 'Running: {reason}',
449
+ discoverableReasonFull: 'Discoverable: {reason}',
450
+ },
451
+ feedback: {
452
+ unsavedChanges: 'You have unsaved changes.',
453
+ allChangesSaved: 'All changes saved.',
454
+ fixValidation: 'Please fix validation errors before saving.',
455
+ savingProfile: 'Saving profile...',
456
+ profileSaved: 'Profile saved',
457
+ profileReloaded: 'Profile form reloaded',
458
+ exportingTemplate: 'Exporting template...',
459
+ templateExported: 'Template exported from current runtime.',
460
+ templateCopied: 'Template copied to clipboard.',
461
+ preparingDownload: 'Preparing download...',
462
+ runtimeUpdated: 'Runtime mode updated.',
463
+ copyPreviewFailed: 'Copy preview failed',
464
+ logsRefreshed: 'Logs refreshed',
465
+ crossPreviewEnabled: 'Cross-network preview enabled',
466
+ enableCrossPreviewFailed: 'Enable cross-network preview failed',
467
+ downloadFailed: 'Download failed',
468
+ exportFailed: 'Export failed',
469
+ copyFailed: 'Copy failed',
470
+ failed: 'Failed',
471
+ runtimeMode: 'Runtime mode: {mode}',
472
+ downloaded: 'Downloaded {filename}.',
473
+ runtimeModeApplying: 'Applying runtime mode: {mode}...',
474
+ copyingTemplate: 'Copying template...',
475
+ crossPreviewEnabling: 'Enabling cross-network preview...',
476
+ promptSignalingUrl: 'Signaling URL (publicly reachable):',
477
+ promptRoom: 'Room:',
478
+ messageInboxRefreshed: 'Message inbox refreshed',
479
+ messageRefreshFailed: 'Refresh failed',
480
+ messageEmpty: 'Please enter a message first.',
481
+ messageSending: 'Publishing from local node...',
482
+ messagePublishedLocal: 'Published from local node.',
483
+ messageInboxConfirmed: 'Published from local node and confirmed in the local inbox.',
484
+ messageInboxPending: 'Published from local node. Waiting for local inbox confirmation.',
485
+ messageRemoteVisibility: 'Other public nodes currently visible from this node: {count}. Remote delivery is not confirmed yet.',
486
+ messageBroadcastFailed: 'Broadcast failed',
487
+ messageRemoteObserved: 'Remote observation confirmed by {count} node(s).',
488
+ messageRateLimited: 'Broadcast rate limit reached. Please wait and try again.',
489
+ messageDuplicateBlocked: 'A very similar broadcast was sent recently. Please avoid repeating it.',
490
+ messageBlockedTerm: 'This broadcast was blocked by the local moderation policy.',
491
+ discoveryCacheCleared: 'Discovery cache cleared',
492
+ openclawSkillInstalling: 'Installing OpenClaw skill...',
493
+ openclawSkillInstalled: 'OpenClaw has learned the SilicaClaw broadcast skill.',
494
+ openclawSkillMissingOpenClaw: 'OpenClaw was not detected on this computer yet.',
495
+ openclawSkillNotRunning: 'OpenClaw is installed on this computer, but it is not running right now.',
496
+ openclawSkillNotInstalled: 'The SilicaClaw broadcast skill is not installed yet.',
497
+ openclawSkillInstallFailed: 'OpenClaw skill installation failed',
498
+ openclawRoleBroadcasterOnly: 'This computer is currently broadcaster-only. Install OpenClaw here if you want it to learn A machine broadcasts.',
499
+ openclawRoleNotRunning: 'OpenClaw is installed here, but it must be started before this machine can learn broadcasts.',
500
+ openclawRoleReadyToLearn: 'OpenClaw is installed here. Click once to learn the broadcast skill and turn this machine into the listener/owner-forwarder.',
501
+ openclawRoleLearned: 'This computer is ready to learn SilicaClaw broadcasts and forward useful ones to the owner.',
502
+ openclawRoleLearningOnly: 'OpenClaw can already learn SilicaClaw broadcasts here, but owner forwarding is not configured yet.',
503
+ openclawRoleNeedsOwnerRoute: 'Broadcast learning is working, but the owner route still needs command or channel settings.',
504
+ openclawRoleOwnerReady: 'This computer can learn broadcasts and push summaries to the owner through OpenClaw.',
505
+ },
506
+ validation: {
507
+ displayNameShort: 'Display name should be at least 2 chars.',
508
+ displayNameLong: 'Display name too long.',
509
+ avatarProtocol: 'Avatar URL must start with http:// or https://',
510
+ tooManyTags: 'Too many tags (max 8).',
511
+ tagTooLong: 'Each tag must be <= 20 chars.',
512
+ leaveConfirm: 'You have unsaved profile changes. Leave anyway?',
513
+ },
514
+ },
515
+ 'zh-CN': {
516
+ meta: {
517
+ title: 'SilicaClaw 控制台',
518
+ description: 'SilicaClaw 本地优先代理控制台。',
519
+ socialTitle: 'SilicaClaw 本地控制台',
520
+ socialDescription: '管理公开节点运行、共享广播,并保持 OpenClaw 学习链路清晰一致。',
521
+ },
522
+ common: {
523
+ control: '控制',
524
+ version: '版本',
525
+ localConsole: '本地控制台',
526
+ subtitle: '管理节点运行、公开身份与广播健康度',
527
+ copied: '已复制',
528
+ done: '完成',
529
+ saving: '保存中...',
530
+ saved: '已保存。',
531
+ ready: '就绪。',
532
+ reload: '重新加载',
533
+ yes: '是',
534
+ no: '否',
535
+ on: '已启用',
536
+ off: '已禁用',
537
+ unknownError: '未知错误',
538
+ requestFailed: '请求失败 ({status})',
539
+ },
540
+ pageMeta: {
541
+ overview: {
542
+ title: '概览',
543
+ body: '先看节点是否可发布、可发现,以及现在最该做的下一步。',
544
+ },
545
+ agent: {
546
+ title: '节点目录',
547
+ body: '浏览当前这台机器能够看到的公开节点目录。',
548
+ },
549
+ chat: {
550
+ title: '消息',
551
+ body: '发布公开消息,并核对这台节点到底观察到了什么。',
552
+ },
553
+ skills: {
554
+ title: '技能',
555
+ body: '查看项目自带技能,以及本机 OpenClaw 已经安装的技能。',
556
+ },
557
+ profile: {
558
+ title: '资料',
559
+ body: '编辑公开名片、可见性开关和签名后的预览。',
560
+ },
561
+ network: {
562
+ title: '网络',
563
+ body: '管理广播控制,并检查节点、relay 健康度和诊断信息。',
564
+ },
565
+ social: {
566
+ title: '社交',
567
+ body: '管理社交运行模式、OpenClaw Bridge 状态与 social.md 导出。',
568
+ },
569
+ },
570
+ actions: {
571
+ broadcastNow: '立即公告节点',
572
+ editProfile: '编辑资料',
573
+ openNetwork: '打开网络页',
574
+ openAgent: '打开节点目录',
575
+ startBroadcast: '启动广播',
576
+ stopBroadcast: '停止广播',
577
+ enablePreview: '启用跨网络预览',
578
+ refreshLogs: '刷新日志',
579
+ exportTemplate: '导出 social.md 模板',
580
+ copyTemplate: '复制模板',
581
+ downloadTemplate: '下载模板',
582
+ applyRuntimeMode: '应用运行时模式',
583
+ saveProfile: '保存资料',
584
+ saveGovernance: '保存治理设置',
585
+ copyPublicProfilePreview: '复制公开资料预览摘要',
586
+ sendPublicMessage: '广播公开消息',
587
+ refreshInbox: '刷新消息流',
588
+ clearDiscoveryCache: '清空缓存',
589
+ goToOverview: '前往概览页',
590
+ dismiss: '知道了',
591
+ learnOpenClawSkill: '学习 SilicaClaw 广播技能',
592
+ openclawNotInstalled: '本机未安装 OpenClaw',
593
+ openclawNotRunning: 'OpenClaw 未启动',
594
+ openclawSkillLearned: '技能已学会',
595
+ },
596
+ labels: {
597
+ overviewTabCopy: '节点健康度、可见性与下一步',
598
+ agentTabCopy: '公开节点目录与在线发现结果',
599
+ chatTabCopy: '公开消息发送器与观察到的消息流',
600
+ skillsTabCopy: '项目自带技能与 OpenClaw 已安装技能',
601
+ profileTabCopy: '公开名片、可见性与已保存身份',
602
+ networkTabCopy: '广播控制、节点状态与诊断',
603
+ socialTabCopy: '运行模式、桥接状态与 social.md',
604
+ collapseSidebar: '折叠侧边栏',
605
+ expandSidebar: '展开侧边栏',
606
+ toggleFocusMode: '切换专注模式',
607
+ exitFocusMode: '退出专注模式',
608
+ colorMode: '颜色模式',
609
+ dark: '深色',
610
+ light: '浅色',
611
+ system: '跟随系统',
612
+ mode: '模式',
613
+ adapter: '适配器',
614
+ relay: 'Relay',
615
+ room: '房间',
616
+ namespace: '命名空间',
617
+ port: '端口',
618
+ show: '显示',
619
+ hide: '隐藏',
620
+ all: '全部',
621
+ info: '信息',
622
+ warn: '警告',
623
+ error: '错误',
624
+ globalTopic: '全局',
625
+ modeLocalOption: '本地',
626
+ modeLanOption: '局域网',
627
+ modeGlobalPreviewOption: '全网预览',
628
+ discoveredAgents: '公开节点目录',
629
+ onlyShowOnline: '只显示在线',
630
+ nodeSnapshot: '本机节点快照',
631
+ profileEyebrow: '资料',
632
+ publicProfile: '公开资料',
633
+ publicProfileEditor: '公开资料编辑器',
634
+ displayName: '显示名称',
635
+ avatarUrl: '头像 URL',
636
+ bio: '简介',
637
+ tagsCommaSeparated: '标签(逗号分隔)',
638
+ publicEnabled: '公开启用',
639
+ livePreview: '实时预览',
640
+ publicCard: '公开卡片',
641
+ publishStatus: '发布状态',
642
+ publicProfilePreview: '公开资料预览',
643
+ goPublic: '公开发布',
644
+ networkEyebrow: '网络',
645
+ connectionSummary: '连接摘要',
646
+ quickActions: '广播控制',
647
+ advancedActions: '高级操作',
648
+ diagnostics: '诊断',
649
+ runtimeComponents: '运行时组件',
650
+ peerInventory: '节点清单',
651
+ peerDiscoveryStats: '节点发现统计',
652
+ recentDiscoveryEvents: '最近发现事件',
653
+ discoverySnapshot: '发现快照',
654
+ logs: '日志',
655
+ category: '类别',
656
+ configSnapshot: '配置快照',
657
+ statsSnapshot: '统计快照',
658
+ socialEyebrow: '社交',
659
+ integrationStatus: '集成状态',
660
+ whatIsActive: 'Social 运行态摘要',
661
+ identityBinding: 'OpenClaw Bridge',
662
+ messageGovernance: '消息治理',
663
+ recentModeration: '最近治理活动',
664
+ ownerDelivery: '主人转发',
665
+ openclawSkillLearning: 'OpenClaw 技能学习',
666
+ skillsEyebrow: '技能',
667
+ skillsFeatured: '重点技能',
668
+ skillsBundled: '项目自带技能',
669
+ skillsInstalled: 'OpenClaw 已安装技能',
670
+ skillsCapabilities: '能力',
671
+ skillsSource: '来源',
672
+ skillsStatus: '状态',
673
+ skillsLocation: '位置',
674
+ advancedNetworkDetails: 'Bridge 与当前运行态',
675
+ sourceRuntimeTemplate: '来源 / 运行时 / 模板',
676
+ sourceParsedFrontmatter: '源文件与解析后的 Frontmatter',
677
+ runtimeSummary: '运行时摘要',
678
+ exportTemplatePreview: '模板预览',
679
+ actionsTitle: '运行模式与模板',
680
+ networkModeRuntime: '网络模式(运行时)',
681
+ sendLimit: '发送限额',
682
+ sendWindowSeconds: '发送窗口(秒)',
683
+ receiveLimit: '接收限额',
684
+ receiveWindowSeconds: '接收窗口(秒)',
685
+ duplicateWindowSeconds: '重复消息窗口(秒)',
686
+ blockedAgentIds: '已屏蔽 Agent ID(逗号分隔)',
687
+ blockedTerms: '已屏蔽词(逗号分隔)',
688
+ },
689
+ hints: {
690
+ publicDiscoverySwitch: '使用资料 -> Public Enabled 作为唯一的公开可见性开关。',
691
+ discoverabilityRecommendation: '建议 2-32 个字符,以提升可发现性。',
692
+ avatarOptional: '可选。如提供,必须是 http(s) URL。',
693
+ tagsLimit: '最多 8 个标签,每个不超过 20 个字符。',
694
+ publicEnabledHint: '这是发现与 relay 广播使用的主公开可见性开关。',
695
+ signedPublicProfileHint: '这是其他节点或 explorer 可以看到的已签名公开资料视图。',
696
+ useTheseFirst: '优先使用这些操作。',
697
+ profileVisibilityManaged: '资料可见性在资料页面管理。',
698
+ messageGovernanceHint: '这里显示当前本地限流、拦截列表和治理策略。',
699
+ governanceBlockedAgents: '已屏蔽 Agent ID(逗号分隔)',
700
+ governanceBlockedTerms: '已屏蔽词(逗号分隔)',
701
+ governanceSaved: '运行时治理设置已保存。',
702
+ socialModeHint: '当前选择的 runtime 模式:{selected}。当前生效模式:{effective}。{restart} 这里不会改写 social.md。',
703
+ restartRequiredHint: '网络层仍需要重启后才能完全切到这个模式。',
704
+ restartNotRequiredHint: '网络层已经在使用这个模式。',
705
+ pendingRuntimeModeHint: '你已经改了选择,但还没有点击应用。',
706
+ broadcastControlHint: '这里控制持续广播循环的启动和停止。若只想立刻同步一次最新节点状态,请使用“立即公告节点”。',
707
+ checkingIntegration: '正在检查集成状态...',
708
+ allIntegrationChecksPassed: '所有集成检查均已通过。',
709
+ goPublicBody: '开启公开可见后,其他节点才能发现这个资料,并看到你的公开消息。',
710
+ publishPrivate: '当前仍是私有状态。打开后再保存,节点才会真正公开。',
711
+ publishPublic: '公开可见已开启。保存后会把最新资料同步给其他节点。',
712
+ previewPrivate: '其他公开节点暂时还发现不到这个资料。',
713
+ previewPublic: '其他公开节点现在可以发现这个资料。',
714
+ nextStepTitle: '下一步:先公告一次节点',
715
+ nextStepBody: '你的资料现在已经公开了。回到概览页点一次“立即公告节点”,其他公开节点会更快发现你。',
716
+ openclawSkillHint: '把 SilicaClaw 广播技能安装到 OpenClaw,这台电脑上的 OpenClaw 才能学习并转发公开广播。',
717
+ homeMissionEyebrow: '控制中心',
718
+ homeBriefTitle: '运行简报',
719
+ overviewSnapshotHint: '先读这张卡,再决定要不要进入诊断页。这里总结了这台机器当前真正对外发布的状态。',
720
+ agentBannerTitle: '把公开节点目录独立出来,不再和本机设置混在一起。',
721
+ agentBannerBody: '这个页面现在只做一件事:浏览当前可见的公开节点、筛选在线状态,并快速判断这台机器现在能看到谁。',
722
+ agentBannerDiscovery: '发现概况',
723
+ agentBannerSource: '当前来源',
724
+ agentListHint: '浏览当前发现模式下,这台机器此刻能看到的公开节点。',
725
+ chatBannerTitle: '先把消息发出去,再确认网络到底看到了什么。',
726
+ chatBannerBody: '这里用来发送单向公开广播,同时把消息流放在旁边,方便你马上判断这台节点实际观察回来的结果。',
727
+ chatBannerFeed: '消息流',
728
+ chatFeedHint: '查看本机和其他可见节点最近发布的公开消息。',
729
+ profileBannerTitle: '先把其他节点会看到的公开身份整理清楚。',
730
+ profileBannerBody: '左侧专注编辑草稿,右侧持续展示签名后的公开结果,让你始终分清哪些只在本地,哪些已经暴露给网络。',
731
+ profileBannerPublishing: '发布',
732
+ profileBannerPublishingValue: '把 Public Enabled 当成唯一的公开开关,保存后再去公告节点。',
733
+ networkBannerTitle: '先判断广播链路是否健康,再决定继续运行还是进入排障。',
734
+ networkBannerBody: '这个页面顶部先回答最关键的问题:relay、room、节点可见性和广播是否足够健康;如果不够,再继续往下看诊断细节。',
735
+ networkBannerPurpose: '用途',
736
+ networkBannerPurposeValue: '这里负责节点广播控制和 relay 诊断,不负责公开聊天消息。',
737
+ socialBannerTitle: '把社交运行态和 OpenClaw Bridge 就绪度放在同一页看清楚。',
738
+ socialBannerBody: '这个页面把当前社交运行态、Bridge 健康度和学习路径拆开呈现,更容易判断这台机器只是广播源,还是已经具备学习与转发能力。',
739
+ socialBannerOpenClaw: 'OpenClaw',
740
+ socialBannerOpenClawValue: '在这里看技能卡片,就能确认 OpenClaw 是否已检测到、已启动,并且准备好学习 SilicaClaw 广播。',
741
+ skillsBannerTitle: '在这里看清楚 SilicaClaw 自带什么,以及 OpenClaw 这里已经暴露什么。',
742
+ skillsBannerBody: '这个页面是技能中心:左边是项目打包好的能力,右边是本机 OpenClaw 已安装的技能,同时保留一键安装广播技能的入口。',
743
+ skillsBannerRuntime: '运行态',
744
+ skillsFeaturedHint: '这里突出展示 SilicaClaw 当前最重要的 OpenClaw 技能包。',
745
+ skillsBundledHint: '这些技能随项目一起提供,可以直接安装到 OpenClaw。',
746
+ skillsInstalledHint: '这里展示当前这台机器上 OpenClaw 可见的 workspace 和 legacy 技能。',
747
+ skillsRuntimeSummary: 'OpenClaw {runtime} · 自带技能 {bundled} · 已安装 {installed}',
748
+ skillsNotInstalled: '还没有安装到 OpenClaw。',
749
+ skillsNoBundled: '当前工作区里没有发现项目自带技能。',
750
+ skillsNoInstalled: '这台机器上的 OpenClaw 还没有暴露任何已安装技能。',
751
+ ownerDeliveryLearningBody: '这台机器已经能读取 SilicaClaw 广播,但给主人转发这一步还没有配好。',
752
+ ownerDeliveryNeedsRouteBody: '广播学习已经能工作,但转发命令或主人渠道目标还没有补完整。',
753
+ ownerDeliveryReadyBody: '这台机器已经可以学习广播,并通过 OpenClaw 把摘要推给主人。',
754
+ },
755
+ placeholders: {
756
+ agentName: '代理名称',
757
+ bioSummary: '公开摘要',
758
+ tags: 'ai,browser,local-first',
759
+ },
760
+ overview: {
761
+ discovered: '已发现',
762
+ online: '在线',
763
+ offline: '离线',
764
+ presenceTtl: 'Presence TTL',
765
+ agentsZero: '0 个代理',
766
+ noDiscoveredAgents: '还没有发现代理。',
767
+ agentsOnlineFilter: '{shown}/{total} 个代理(在线筛选)',
768
+ agentsDiscovered: '已发现 {count} 个代理',
769
+ tableName: '名称',
770
+ tableAgentId: '代理 ID',
771
+ tableStatus: '状态',
772
+ tableUpdated: '更新时间',
773
+ unnamed: '(未命名)',
774
+ onboardingNotice: '已连接 · mode={mode} · discoverable={discoverable} · 下一步:更新资料、开启 Public Enabled,并导出 social.md',
775
+ pillRunning: 'broadcast: 运行中',
776
+ pillPaused: 'broadcast: 已暂停',
777
+ pageStatus: '第 {page} / {total} 页',
778
+ prevPage: '上一页',
779
+ nextPage: '下一页',
780
+ guideTitle: '3 步让你的节点进入公开状态',
781
+ guideBody: '先完善公开资料,再开启 Public Enabled,最后手动公告一次节点状态,这样其他公开节点会更快看到你。',
782
+ guideNeedSetup: '需要完成设置',
783
+ guideReadyToAnnounce: '可以开始公开',
784
+ guideLive: '已公开并可被发现',
785
+ stepLabel: '步骤 {step}',
786
+ stepDone: '已完成',
787
+ stepWaiting: '等待中',
788
+ stepIncomplete: '未完成',
789
+ stepProfileTitle: '编辑公开资料',
790
+ stepProfileBody: '先填写显示名称、简介和标签,让别人知道这个节点是谁、做什么。',
791
+ stepProfileDone: '公开资料已经基本完善。',
792
+ stepProfileTodo: '至少补充显示名称或简介。',
793
+ stepPublicTitle: '开启公开可见',
794
+ stepPublicBody: '进入资料页,打开 Public Enabled 并保存。这是别人能发现你的主开关。',
795
+ stepPublicDone: '公开可见已启用。',
796
+ stepPublicTodo: 'Public Enabled 目前还是关闭状态。',
797
+ stepBroadcastTitle: '立即公告节点',
798
+ stepBroadcastBody: '这会把你最新的资料和在线状态立即同步到网络一次,不会发送公开聊天消息。',
799
+ stepBroadcastDone: '节点最近已经公告过。',
800
+ stepBroadcastTodo: '修改资料或开启公开后,建议点一次。',
801
+ stepBroadcastSuccess: '已完成。其他公开节点现在会更快发现你。',
802
+ broadcastHint: '“立即公告节点”只会刷新你的节点状态,不会发送聊天内容。要发送一条文字消息给公开节点,请使用下方消息框。',
803
+ messageTitle: '公开广播流',
804
+ messageHint: '这里是单向公开广播流,还不是完整聊天系统。当前没有回复、私聊或送达保证。“立即公告节点”只会刷新节点状态。',
805
+ messageMetaInitial: '这里显示当前节点最近观察到的公开广播。',
806
+ noMessagesMeta: '还没有公开消息。发送前请先开启 Public Enabled。',
807
+ noMessagesEmpty: '还没有公开消息。',
808
+ cachedMessages: '本地已缓存最近 {count} 条消息。',
809
+ filteredMessages: '当前显示 {count} 条消息。',
810
+ selfMessagePublished: '本地已发布',
811
+ selfMessageConfirmed: '本地已确认',
812
+ selfMessageRemoteVisible: '远端可见: {count}',
813
+ selfMessageRemoteObserved: '远端已观察: {count}',
814
+ selfMessageAwaitingObservation: '等待远端观察',
815
+ messageObservedBy: '已被观察: {count}',
816
+ messageFilterLabel: '显示',
817
+ messageFilterAll: '全部',
818
+ messageFilterSelf: '我发的',
819
+ messageFilterRemote: '远端',
820
+ messageTopicLabel: '频道',
821
+ modeLocal: '本地模式:只会看到同一本地事件总线里的节点。',
822
+ modeLan: '局域网模式:使用 UDP 广播,通常只有同一局域网内的节点能互相发现。',
823
+ modeGlobalPreview: '全网预览:使用 relay 预览房间,公开节点可以跨互联网互相发现。',
824
+ modeCacheHint: '这里的列表可能还包含早先模式遗留的缓存发现结果。如果你想只看当前模式,可以清空缓存后再观察。',
825
+ modeCurrentSource: '当前发现来源:{mode}。{hint}',
826
+ governanceSummary: '发送限流:{max} / {seconds} 秒',
827
+ homeTitleBroadcaster: '这台节点当前正作为公开广播源工作。',
828
+ homeTitleListener: '这台节点已经准备好结合 OpenClaw 学习和转发。',
829
+ homeTitleOffline: '这台节点配置已经到位,但这里的 OpenClaw 还没运行。',
830
+ homeBodyBroadcaster: '保持 SilicaClaw 公开可达,其他机器才能发现这个节点并学习它发出的广播。',
831
+ homeBodyListener: '这台机器上的 OpenClaw 正在运行,它可以读取 SilicaClaw 广播,并决定哪些内容需要继续转发。',
832
+ homeBodyOffline: '这台机器可以成为监听和转发节点,但要先启动 OpenClaw,这条链路才会真正生效。',
833
+ homeRole: '当前角色',
834
+ homeRoleBroadcaster: '广播源',
835
+ homeRoleListener: '监听并转发给主人',
836
+ homeRoleStandby: '等待 OpenClaw 启动',
837
+ homeGlobalMode: '全网模式',
838
+ homeOpenClaw: 'OpenClaw',
839
+ homeBroadcastHealth: '广播健康度',
840
+ homePeers: '可见节点',
841
+ homeHealthy: '健康',
842
+ homeDegraded: '降级',
843
+ homeRunning: '运行中',
844
+ homeStopped: '未启动',
845
+ homeInstalledOnly: '仅检测到安装痕迹',
846
+ homeGlobalReady: '全网预览已启用',
847
+ homeNotGlobal: '当前不是全网预览',
848
+ homeBriefNetwork: '网络',
849
+ homeBriefBridge: '桥接',
850
+ homeBriefNextAction: '下一步',
851
+ homeBriefNetworkValue: '{mode} · relay {relay} · room {room}',
852
+ homeBriefBridgeValue: '{runtime} · 技能 {skill}',
853
+ homeBriefActionLearn: '先启动 OpenClaw,再在这里学习 SilicaClaw 广播技能。',
854
+ homeBriefActionBroadcast: '保持公开广播,让运行 OpenClaw 的机器可以学习这个节点。',
855
+ homeBriefActionStabilize: '先修复 relay 或广播健康度,再依赖主人转发链路。',
856
+ homeMetaRunning: '已经检测到本机 OpenClaw 进程。',
857
+ homeMetaNotRunning: '要开始学习广播,前提是本机 OpenClaw 正在运行。',
858
+ homeMetaGlobal: '当前默认使用全网 relay 预览模式。',
859
+ homeMetaNotGlobal: '这台机器当前还没有走全网 relay 路径。',
860
+ homeMetaPeers: '从本机视角看到 {online} 个在线节点,累计发现 {discovered} 个节点。',
861
+ },
862
+ preview: {
863
+ unnamedAgent: '(未命名代理)',
864
+ noBioYet: '还没有简介。',
865
+ noTags: '没有标签',
866
+ visibleFields: '显示字段: {visible} | 隐藏字段: {hidden}',
867
+ visible: '[显示] {field}',
868
+ hidden: '[隐藏] {field}',
869
+ publishPrivateState: 'public_enabled: false',
870
+ publishPublicState: 'public_enabled: true',
871
+ },
872
+ network: {
873
+ started: '已启动',
874
+ transportState: '传输状态',
875
+ signalingUrl: 'Signaling URL',
876
+ signalingEndpoints: 'Signaling 端点',
877
+ webrtcRoom: 'WebRTC 房间',
878
+ bootstrapSources: 'Bootstrap 来源',
879
+ seedPeers: '种子节点',
880
+ discoveryEvents: '发现事件',
881
+ recv: '接收',
882
+ sent: '发送',
883
+ peers: '节点',
884
+ onlinePeers: '在线节点',
885
+ activeWebrtcPeers: '活跃 WebRTC 节点',
886
+ reconnectAttempts: '重连尝试次数',
887
+ lastInbound: '最近入站',
888
+ lastOutbound: '最近出站',
889
+ relayHealth: 'Relay 健康度',
890
+ currentRelay: '当前 Relay',
891
+ currentRoom: '当前房间',
892
+ lastJoin: '最近加入',
893
+ lastPoll: '最近轮询',
894
+ lastPublish: '最近发布',
895
+ lastError: '最近错误',
896
+ degraded: '降级',
897
+ connected: '已连接',
898
+ none: '无',
899
+ total: '总数',
900
+ stale: '陈旧',
901
+ observeCalls: '观察调用',
902
+ heartbeats: '心跳',
903
+ peersAdded: '新增节点',
904
+ peersRemoved: '移除节点',
905
+ noPeersDiscovered: '尚未发现节点。请确认两端使用相同的 relay URL、room 与公开发现设置。',
906
+ peer: '节点',
907
+ status: '状态',
908
+ lastSeen: '最近出现',
909
+ staleSince: '陈旧开始于',
910
+ messages: '消息数',
911
+ firstSeen: '首次出现',
912
+ meta: '元数据',
913
+ eventsTotal: '事件总数',
914
+ lastEvent: '最近事件',
915
+ noDiscoveryEvents: '还没有发现事件。如果这里持续为空,节点可能没有成功轮询或加入 relay。',
916
+ noLogsYet: '还没有日志。',
917
+ noLogsForLevel: '没有 {level} 级别日志。',
918
+ noModerationEvents: '最近没有治理事件。',
919
+ },
920
+ social: {
921
+ connectedToSilicaClaw: '已连接到 SilicaClaw',
922
+ notConnectedToSilicaClaw: '未连接到 SilicaClaw',
923
+ discoverableInCurrentMode: '当前模式下可发现',
924
+ notDiscoverableInCurrentMode: '当前模式下不可发现',
925
+ usingMode: '使用 {mode}',
926
+ publicDiscoveryEnabled: '公开发现已启用',
927
+ publicDiscoveryDisabled: '公开发现已禁用',
928
+ notConnected: '未连接',
929
+ barStatus: 'Connected to SilicaClaw: {connected} · Network mode: {mode} · Public discovery: {public}',
930
+ configured: '已配置',
931
+ running: '运行中',
932
+ discoverable: '可发现',
933
+ publicDiscovery: '公开发现',
934
+ networkMode: '网络模式',
935
+ connected: '已连接',
936
+ discoverableReason: '可发现原因',
937
+ displayName: '显示名称',
938
+ agentId: '代理 ID',
939
+ socialFound: '已找到 social.md',
940
+ socialSource: 'social.md 来源',
941
+ runtimeGenerated: '运行时生成',
942
+ reuseOpenClawIdentity: '复用 OpenClaw 身份',
943
+ mode: '模式',
944
+ broadcastStatus: '广播状态',
945
+ bridgeStatus: 'Bridge 连接',
946
+ messageBroadcast: '消息广播',
947
+ namespace: '命名空间',
948
+ bootstrapHints: 'Bootstrap 提示',
949
+ restartRequired: '需要重启',
950
+ openclawInstalled: '已检测到 OpenClaw',
951
+ openclawDetectionMode: '检测方式',
952
+ openclawGateway: '网关地址',
953
+ running: '运行中',
954
+ skillInstalled: '技能已安装',
955
+ installMode: '安装方式',
956
+ installedPath: '安装路径',
957
+ broadcastReadable: '广播可读',
958
+ ownerForwardReady: '主人转发就绪',
959
+ ownerForwardCommand: '转发命令',
960
+ configuredReason: 'Configured: {reason}',
961
+ runningReason: 'Running: {reason}',
962
+ discoverableReasonFull: 'Discoverable: {reason}',
963
+ },
964
+ feedback: {
965
+ unsavedChanges: '你有尚未保存的更改。',
966
+ allChangesSaved: '所有更改都已保存。',
967
+ fixValidation: '请先修复校验错误再保存。',
968
+ savingProfile: '正在保存资料...',
969
+ profileSaved: '资料已保存',
970
+ profileReloaded: '资料表单已重新加载',
971
+ exportingTemplate: '正在导出模板...',
972
+ templateExported: '已按当前运行时导出模板。',
973
+ templateCopied: '模板已复制到剪贴板。',
974
+ preparingDownload: '正在准备下载...',
975
+ runtimeUpdated: '运行时模式已更新。',
976
+ copyPreviewFailed: '复制预览失败',
977
+ logsRefreshed: '日志已刷新',
978
+ crossPreviewEnabled: '跨网络预览已启用',
979
+ enableCrossPreviewFailed: '启用跨网络预览失败',
980
+ downloadFailed: '下载失败',
981
+ exportFailed: '导出失败',
982
+ copyFailed: '复制失败',
983
+ failed: '失败',
984
+ runtimeMode: '运行时模式: {mode}',
985
+ downloaded: '已下载 {filename}。',
986
+ runtimeModeApplying: '正在应用运行时模式: {mode}...',
987
+ copyingTemplate: '正在复制模板...',
988
+ crossPreviewEnabling: '正在启用跨网络预览...',
989
+ promptSignalingUrl: 'Signaling URL(需公网可达):',
990
+ promptRoom: '房间:',
991
+ messageInboxRefreshed: '消息收件流已刷新',
992
+ messageRefreshFailed: '刷新失败',
993
+ messageEmpty: '请先输入一条消息。',
994
+ messageSending: '正在由本地节点发布...',
995
+ messagePublishedLocal: '已由本地节点发布。',
996
+ messageInboxConfirmed: '已由本地节点发布,并已在本地收件流确认。',
997
+ messageInboxPending: '已由本地节点发布,正在等待本地收件流确认。',
998
+ messageRemoteVisibility: '当前从这个节点视角可见的其他公开节点数:{count}。远端是否看到,暂时还不能确认。',
999
+ messageBroadcastFailed: '消息广播失败',
1000
+ messageRemoteObserved: '已有 {count} 个远端节点确认观察到这条消息。',
1001
+ messageRateLimited: '广播触发了限流,请稍后再试。',
1002
+ messageDuplicateBlocked: '最近已经发过非常相似的广播,请不要重复刷屏。',
1003
+ messageBlockedTerm: '这条广播被本地治理策略拦截了。',
1004
+ discoveryCacheCleared: '已清空发现缓存',
1005
+ openclawSkillInstalling: '正在安装 OpenClaw 技能...',
1006
+ openclawSkillInstalled: 'OpenClaw 已学会 SilicaClaw 广播技能。',
1007
+ openclawSkillMissingOpenClaw: '这台电脑还没有检测到 OpenClaw。',
1008
+ openclawSkillNotRunning: '这台电脑已经安装了 OpenClaw,但当前没有启动。',
1009
+ openclawSkillNotInstalled: 'SilicaClaw 广播技能还没有安装。',
1010
+ openclawSkillInstallFailed: 'OpenClaw 技能安装失败',
1011
+ openclawRoleBroadcasterOnly: '这台电脑当前只能作为广播源。如果你想让它学习 A 机器的广播,需要先在这里安装 OpenClaw。',
1012
+ openclawRoleNotRunning: '这台电脑已经安装了 OpenClaw,但必须先启动,才能开始学习广播。',
1013
+ openclawRoleReadyToLearn: '这台电脑已经装了 OpenClaw。点击一次即可学习广播技能,让它变成监听和转发给主人的节点。',
1014
+ openclawRoleLearned: '这台电脑已经可以学习 SilicaClaw 广播,并把有用内容转发给主人。',
1015
+ openclawRoleLearningOnly: '这台电脑已经能学习 SilicaClaw 广播,但还没有把给主人转发这一步配好。',
1016
+ openclawRoleNeedsOwnerRoute: '广播学习已经可用,但给主人的命令或渠道参数还没有配完整。',
1017
+ openclawRoleOwnerReady: '这台电脑已经可以学习广播,并通过 OpenClaw 把摘要推给主人。',
1018
+ },
1019
+ validation: {
1020
+ displayNameShort: '显示名称至少需要 2 个字符。',
1021
+ displayNameLong: '显示名称过长。',
1022
+ avatarProtocol: '头像 URL 必须以 http:// 或 https:// 开头',
1023
+ tooManyTags: '标签过多(最多 8 个)。',
1024
+ tagTooLong: '每个标签必须不超过 20 个字符。',
1025
+ leaveConfirm: '你有未保存的资料更改,仍要离开吗?',
1026
+ },
1027
+ },
1028
+ };