Skip to content

Commit b901452

Browse files
committed
refactor(ui): align QSO terminology with operators
1 parent 4231669 commit b901452

30 files changed

Lines changed: 292 additions & 282 deletions

File tree

docs/plugin-system.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -293,6 +293,16 @@ Hook 应尽快返回。耗时 I/O 应显式 `await`、处理失败,并允许 i
293293

294294
strategy 必须实现完整 v2 runtime:
295295

296+
术语边界:
297+
298+
- `slot` 表示 FT4/FT8 的物理收发时隙或 Host UI 扩展位置。
299+
- `TX1``TX6` 是可选择的 Tx 消息,不应在用户界面称为“槽”。
300+
- `stream` 表示同一操作员内独立推进的并行 QSO;协议实现内部可以使用 `lane`
301+
- `frame` 表示 Host 一次原子提交的物理混音发射,可以包含多个 QSO stream。
302+
303+
`StrategyRuntimeSlot``setSlotContent()` 是兼容既有插件保留的 API 名称;新插件的
304+
用户可见文案必须使用“Tx 消息”,不要继续扩散旧称。
305+
296306
```ts
297307
import {
298308
definePlugin,

packages/builtin-plugins/src/assisted-qso-queue/locales/en.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"pluginDescription": "Queue selected targets and direct callers while using the standard FT8/FT4 QSO flow",
44
"strategyOverview": "Assisted Queue",
55
"strategyOverviewDesc": "Double-click a target in the message list to add it manually. Reliable direct callers join automatically, and the queue works each target using the standard FT8/FT4 QSO flow.",
6-
"parallelStreams": "TX slots",
7-
"parallelStreamsDesc": "Number of standard FT8/FT4 TX slots to use at once. Defaults to 1 TX slot and supports up to 3.",
6+
"parallelStreams": "Concurrent QSOs",
7+
"parallelStreamsDesc": "Maximum standard FT8/FT4 QSOs to work at once. Defaults to 1 and supports up to 3.",
88
"actionRetry": "Retry", "actionRemove": "Remove"
99
}

packages/builtin-plugins/src/assisted-qso-queue/locales/ja.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"pluginDescription": "選択した相手局と直接呼び出した局を標準 FT8/FT4 QSO 手順で順番に処理します",
44
"strategyOverview": "アシストキューの説明",
55
"strategyOverviewDesc": "メッセージ一覧の相手局をダブルクリックすると手動で追加できます。信頼できる直接呼び出しは自動で追加され、標準 FT8/FT4 手順で順番に交信します。",
6-
"parallelStreams": "送信スロット数",
7-
"parallelStreamsDesc": "同時に使用する標準 FT8/FT4 送信スロット数です。既定値は1スロット、最大3スロットです",
6+
"parallelStreams": "同時QSO数",
7+
"parallelStreamsDesc": "同時に進める標準 FT8/FT4 QSO の上限です。既定値は1、最大3です",
88
"actionRetry": "再試行", "actionRemove": "削除"
99
}

packages/builtin-plugins/src/assisted-qso-queue/locales/zh.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"pluginDescription": "手选目标与直接来呼自动入队,使用标准 FT8/FT4 通联流程依次处理",
44
"strategyOverview": "辅助队列说明",
55
"strategyOverviewDesc": "双击消息列表中的目标可手动入队,可靠的直接来呼会自动入队;队列按当前交互进度依次使用标准 FT8/FT4 流程通联。",
6-
"parallelStreams": "通联槽数",
7-
"parallelStreamsDesc": "同时使用的标准 FT8/FT4 通联槽数量;默认 1 ,最多 3 ",
6+
"parallelStreams": "同时通联数",
7+
"parallelStreamsDesc": "最多同时处理多少个标准 FT8/FT4 QSO;默认 1 ,最多 3 ",
88
"actionRetry": "重试", "actionRemove": "移除"
99
}

packages/builtin-plugins/src/standard-qso/locales/en.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
{
22
"pluginName": "Standard QSO",
3-
"pluginDescription": "Built-in FT8/FT4 standard QSO strategy",
4-
"strategyOverview": "Strategy Overview",
5-
"strategyOverviewDesc": "This strategy plugin drives the standard FT8/FT4 QSO flow, including answering others' CQ, automatic target picking, timeout handling, and retry behavior.",
3+
"pluginDescription": "Built-in standard FT8/FT4 QSO mode",
4+
"strategyOverview": "Mode overview",
5+
"strategyOverviewDesc": "This QSO mode follows the standard FT8/FT4 flow, including answering others' CQ, automatic target selection, timeout handling, and retry behavior.",
66
"autoReplyToCQ": "Answer others' CQ",
77
"autoReplyToCQDesc": "While listening, automatically choose and call eligible stations calling CQ. This setting does not mean starting your own CQ.",
88
"autoReplyToDirectCallWhenStopped": "Answer direct calls while idle",

packages/builtin-plugins/src/standard-qso/locales/ja.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
{
22
"pluginName": "標準交信",
3-
"pluginDescription": "FT8/FT4標準交信ストラテジーを内蔵",
4-
"strategyOverview": "戦略の説明",
5-
"strategyOverviewDesc": "このポリシー プラグインは、他局の CQ への応答、自動選局、タイムアウトと再試行動作の制御など、標準の FT8/FT4 交信プロセスを担当します",
3+
"pluginDescription": "標準 FT8/FT4 交信モードを内蔵",
4+
"strategyOverview": "モードの説明",
5+
"strategyOverviewDesc": "この交信モードは、他局の CQ への応答、自動選局、タイムアウトと再試行を含む標準 FT8/FT4 交信手順を進めます",
66
"autoReplyToCQ": "他局の CQ に自動応答",
77
"autoReplyToCQDesc": "受信中に条件に合う他局の CQ を見つけたら、自動で相手局を選んで呼び出します。この設定は自局から CQ を開始する意味ではありません。",
88
"autoReplyToDirectCallWhenStopped": "停止待機中も直呼びに応答",

packages/builtin-plugins/src/standard-qso/locales/zh.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
{
22
"pluginName": "标准通联",
3-
"pluginDescription": "内置 FT8/FT4 标准通联策略",
4-
"strategyOverview": "策略说明",
5-
"strategyOverviewDesc": "该策略插件负责标准 FT8/FT4 通联流程,包括回应他人 CQ、自动选台以及控制超时与重试行为。",
3+
"pluginDescription": "内置 FT8/FT4 标准通联模式",
4+
"strategyOverview": "模式说明",
5+
"strategyOverviewDesc": "该通联模式负责标准 FT8/FT4 流程,包括回应他人 CQ、自动选台以及控制超时与重试行为。",
66
"autoReplyToCQ": "自动回应他人 CQ",
77
"autoReplyToCQDesc": "守听时收到符合条件的他人 CQ,会自动选择目标并呼叫;这个开关不代表主动发起自己的 CQ。",
88
"autoReplyToDirectCallWhenStopped": "停发待机时回应直呼",

packages/builtin-plugins/src/ww-digi/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -599,7 +599,7 @@ export const wwDigiStrategyPlugin = definePlugin({
599599
name: BUILTIN_WW_DIGI_PLUGIN_NAME,
600600
version: '1.0.0',
601601
type: 'strategy',
602-
description: 'WW Digi FT8/FT4 contest strategy with manually authorized parallel QSOs',
602+
description: 'WW Digi FT8/FT4 contest mode with operator-selected parallel QSOs',
603603
strategyFeatures: {
604604
targetQueue: 1,
605605
parallelTargetQueue: 1,
Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
{
2-
"strategyOverview": "WW Digi contest",
3-
"strategyOverviewDesc": "One operator action may start a bounded CQ search and up to three parallel QSOs. Overflow callers require row authorization.",
4-
"contestYear": "Contest year",
5-
"contestYearDesc": "WW Digi edition used to isolate the contest log and submission period.",
6-
"parallelStreams": "TX slots",
7-
"parallelStreamsDesc": "Number of active WW Digi TX slots. Defaults to 1 TX slot and supports up to 3.",
2+
"strategyOverview": "WW Digi contest mode",
3+
"strategyOverviewDesc": "With no stations waiting, turning on TX starts repeated CQ. Up to three replies can be worked at once; additional callers remain in the list until you choose Call.",
4+
"contestYear": "Contest edition",
5+
"contestYearDesc": "Select the WW Digi event year and submission period.",
6+
"parallelStreams": "Concurrent QSOs",
7+
"parallelStreamsDesc": "Maximum WW Digi QSOs to work at once. Defaults to 1 and supports up to 3.",
88
"stateWaitRGrid": "Send grid",
99
"stateWaitRr73": "Send R + grid",
1010
"stateWaitStandardFinal": "Send R report",
1111
"stateSendRr73": "Send RR73",
12-
"maxAttempts": "Retry limit",
13-
"maxAttemptsDesc": "Maximum unanswered transmissions per target.",
14-
"location": "Cabrillo location",
12+
"maxAttempts": "Maximum calls per station",
13+
"maxAttemptsDesc": "Maximum transmissions while calling one station without a reply.",
14+
"location": "Entry location (LOCATION)",
1515
"locationDesc": "ARRL/RAC section for US/Canada; other stations default to DX.",
1616
"categoryBand": "Entry band",
1717
"categoryBandDesc": "All contacts remain in the submitted log.",
@@ -22,38 +22,38 @@
2222
"operators": "Operators", "operatorsDesc": "Comma-separated operator callsigns required for MULTI-OP.",
2323
"transmitterId": "Current transmitter", "transmitterIdDesc": "Default Cabrillo transmitter ID for new QSOs (0 or 1).",
2424
"contestLogTitle": "WW Digi log",
25-
"contestNewCallsign": "New call",
26-
"contestNewGridField": "New field",
25+
"contestNewCallsign": "New on band",
26+
"contestNewGridField": "New multiplier",
2727
"actionOpenContestSettings": "Open contest settings",
2828
"transmitBlockedSetupUnconfirmed": "Confirm this contest edition before transmitting",
29-
"transmitBlockedLedgerUnhealthy": "The contest ledger needs attention",
29+
"transmitBlockedLedgerUnhealthy": "The contest log needs attention",
3030
"attentionContestSetupRequired": "Contest settings are not confirmed",
3131
"attentionContestSetupRequiredDesc": "Receive-only operation remains available. Confirm the callsign, grid and category before transmitting.",
32-
"attentionContestLedgerUnhealthy": "Contest ledger needs attention",
32+
"attentionContestLedgerUnhealthy": "Contest log needs attention",
3333
"attentionContestLedgerUnhealthyDesc": "The contest log is unavailable. Transmission remains blocked until it recovers.",
34-
"cqMaxAttempts": "CQ attempt limit", "cqMaxAttemptsDesc": "Physically completed unanswered CQs before TX stops.",
35-
"cqSelectionPolicy": "CQ caller selection", "cqSelectionPolicyDesc": "How callers are selected when replies exceed available TX slots.",
34+
"cqMaxAttempts": "Maximum unanswered CQs", "cqMaxAttemptsDesc": "Stop TX after this many consecutive CQs receive no reply.",
35+
"cqSelectionPolicy": "Priority for multiple callers", "cqSelectionPolicyDesc": "Selection order when more stations reply than can be worked at once.",
3636
"selectionFIRST": "First decoded", "selectionMAX_DISTANCE": "Maximum distance", "selectionMAX_SNR": "Highest SNR", "selectionMIN_SNR": "Lowest SNR",
37-
"authorizedStaleReceiveCycles": "Authorization freshness", "authorizedStaleReceiveCyclesDesc": "Unheard receive cycles before an authorized target becomes stale.",
38-
"final-retry": "Post-completion watch",
37+
"authorizedStaleReceiveCycles": "Pause when unheard", "authorizedStaleReceiveCyclesDesc": "Receive cycles without hearing a selected station before calls to it are paused.",
38+
"final-retry": "Waiting for confirmation",
3939
"actionPause": "Pause", "actionResume": "Resume", "actionSetFrequency": "TX frequency",
4040
"actionResetFrequency": "Use automatic frequency", "actionAlternateMessage": "Alternate message",
41-
"actionAlternateMessageDesc": "Validate an alternate FT8/FT4 message before authorizing this target.",
41+
"actionAlternateMessageDesc": "Confirm that the alternate FT8/FT4 message can be sent, then call this station again.",
4242
"actionLogCurrent": "Log current QSO", "actionEndQso": "End QSO", "actionRetry": "Retry",
43-
"actionLater": "Later", "actionReauthorize": "Authorize again", "actionSend73": "Send 73 once",
44-
"actionAuthorize": "Authorize", "actionAuthorizeDupe": "Authorize dupe", "actionRevokeAuthorization": "Revoke authorization",
45-
"actionResendRr73": "Resend RR73", "actionFinishRecovery": "Finish recovery",
43+
"actionLater": "Later", "actionReauthorize": "Call again", "actionSend73": "Send 73 once",
44+
"actionAuthorize": "Call", "actionAuthorizeDupe": "Call anyway", "actionRevokeAuthorization": "Deselect",
45+
"actionResendRr73": "Resend RR73", "actionFinishRecovery": "Stop waiting",
4646
"attentionRepeatedRr73": "RR73 repeated", "attentionRepeatedRr73Desc": "The other station may be waiting for your 73.",
4747
"attentionRepeatedExchange": "Exchange repeated", "attentionRepeatedExchangeDesc": "The other station may not have received your RR73. It will not be resent until you explicitly choose that action.",
48-
"attentionRecoveryObserving": "Watching for a final retry", "attentionRecoveryObservingDesc": "This slot only observes and will not transmit automatically. Explicitly choose a recovery action if another message is requested.",
48+
"attentionRecoveryObserving": "Waiting for the other station", "attentionRecoveryObservingDesc": "This QSO continues listening without transmitting automatically. Choose the appropriate action if the other station requests another message.",
4949
"attentionCqCalling": "Calling CQ", "attentionCqCallingDesc": "Completed CQ {{current}} of {{total}}.",
5050
"attentionCqCollecting": "Collecting replies", "attentionCqCollectingDesc": "{{count}} caller(s) detected in this receive slot.",
5151
"attentionCqNoResponse": "No CQ reply", "attentionCqNoResponseDesc": "TX stopped after {{count}} unanswered CQs.",
52-
"attentionCandidatesAwaitingAuthorization": "Candidates need authorization", "attentionCandidatesAwaitingAuthorizationDesc": "TX stopped with {{count}} unapproved candidate(s).",
53-
"attentionAuthorizationsInvalid": "Authorized targets unavailable", "attentionAuthorizationsInvalidDesc": "TX stopped after {{count}} authorized target(s) became unavailable.",
54-
"attentionSessionComplete": "Operation complete", "attentionSessionCompleteDesc": "Authorized work is complete and TX has stopped.",
55-
"confirmAuthorizeDupe": "Authorize this duplicate QSO?", "confirmAuthorizeDupeDesc": "This same-band FT4/FT8 contact will score zero.",
52+
"attentionCandidatesAwaitingAuthorization": "Stations waiting for selection", "attentionCandidatesAwaitingAuthorizationDesc": "TX stopped with {{count}} caller(s) still waiting for selection.",
53+
"attentionAuthorizationsInvalid": "Selected stations not recently heard", "attentionAuthorizationsInvalidDesc": "TX stopped after {{count}} selected station(s) were not heard recently.",
54+
"attentionSessionComplete": "Operation complete", "attentionSessionCompleteDesc": "All selected stations have been handled and TX has stopped.",
55+
"confirmAuthorizeDupe": "Call this duplicate anyway?", "confirmAuthorizeDupeDesc": "This same-band FT4/FT8 contact will score zero.",
5656
"confirmLogCurrent": "Log with current information?", "confirmLogCurrentDesc": "The directed exchange will be recorded now.",
5757
"confirmLogCurrentMissingGrid": "The missing grid will be submitted as ZZ00.",
58-
"confirmEndQso": "End this QSO?", "confirmEndQsoDesc": "The active lane will be released."
58+
"confirmEndQso": "End this QSO?", "confirmEndQsoDesc": "This QSO will be ended."
5959
}

0 commit comments

Comments
 (0)