From 47b80d3ec9c493f455510985b70295c8d7bef9ec Mon Sep 17 00:00:00 2001 From: Haozhe Wu Date: Thu, 15 Oct 2026 17:23:05 +0800 Subject: [PATCH] fix(ui): describe editable model budgets on runtime page --- frontend/src/i18n/locales/ar.json | 6 +++--- frontend/src/i18n/locales/de.json | 6 +++--- frontend/src/i18n/locales/en.json | 6 +++--- frontend/src/i18n/locales/es.json | 6 +++--- frontend/src/i18n/locales/fa.json | 6 +++--- frontend/src/i18n/locales/id.json | 6 +++--- frontend/src/i18n/locales/ja.json | 6 +++--- frontend/src/i18n/locales/ko.json | 6 +++--- frontend/src/i18n/locales/pt-BR.json | 6 +++--- frontend/src/i18n/locales/tr.json | 6 +++--- frontend/src/i18n/locales/zh-CN.json | 6 +++--- frontend/src/pages/Runtime.tsx | 2 +- 12 files changed, 34 insertions(+), 34 deletions(-) diff --git a/frontend/src/i18n/locales/ar.json b/frontend/src/i18n/locales/ar.json index 1be1c3e3..eadb9335 100644 --- a/frontend/src/i18n/locales/ar.json +++ b/frontend/src/i18n/locales/ar.json @@ -69,8 +69,8 @@ "runtime": { "monitorBadge": "مراقبة التداول", "title": "حالة التشغيل الحي / الورقي", - "subtitlePre": "حالة للقراءة فقط من", - "subtitlePost": ". لا تُصرح هذه الصفحة للموصلات، ولا تُشغّل المُشغّلات أو تُوقفها، ولا تُرسل أوامر أو تلغيها، ولا تُغيّر التفويض.", + "subtitlePre": "راجع حالة اتصال الموصلات وتفويضات التداول ونشاط المُشغّل.", + "subtitlePost": " يمكن تعديل وتيرة قرارات النموذج وحدود الإنفاق عندما يكون المُشغّل متوقفًا.", "refresh": "تحديث", "unavailableTitle": "حالة التشغيل غير متاحة", "unavailableHint": "اعتبر وقت تشغيل الموصل غير متاح حتى يوفّر الخادم لقطة حالة حالية.", @@ -110,7 +110,7 @@ "riskHalted": "المخاطر موقوفة", "riskHaltedDesc": "تم تشغيل قاطع الخطر لملف التعريف هذا. اعتبر وقت تشغيل الموصل متوقفًا حتى تُمسح الحالة.", "riskActive": "قيد التشغيل", - "riskActiveDesc": "المُشغّل نشط ويوجد تفويض غير منتهي الصلاحية. تظل هذه الصفحة للقراءة فقط.", + "riskActiveDesc": "المُشغّل نشط وتفويض التداول لم تنتهِ صلاحيته.", "riskIdle": "جاهز لكن خامل", "riskIdleDesc": "التفويض والصلاحية موجودان، لكن المُشغّل ليس نشطًا.", "riskDormant": "خامل", diff --git a/frontend/src/i18n/locales/de.json b/frontend/src/i18n/locales/de.json index 95ce7a55..20cedce5 100644 --- a/frontend/src/i18n/locales/de.json +++ b/frontend/src/i18n/locales/de.json @@ -74,8 +74,8 @@ "runtime": { "monitorBadge": "Runtime-Monitor", "title": "Live-/Paper-Runtime-Status", - "subtitlePre": "Schreibgeschützter Status von", - "subtitlePost": ". Diese Seite autorisiert keine Konnektoren, startet oder stoppt keine Runner, übermittelt oder storniert keine Orders und ändert keine Mandate.", + "subtitlePre": "Prüfen Sie den Verbindungsstatus, Handelsmandate und die Aktivität des Runners.", + "subtitlePost": " Bei gestopptem Runner können Sie die Häufigkeit der Modellentscheidungen und Ausgabenlimits ändern.", "refresh": "Aktualisieren", "unavailableTitle": "Runtime-Status nicht verfügbar", "unavailableHint": "Behandeln Sie die Connector-Runtime als nicht verfügbar, bis das Backend einen aktuellen Status-Snapshot liefert.", @@ -115,7 +115,7 @@ "riskHalted": "Risiko gestoppt", "riskHaltedDesc": "Die Notabschaltung ist für dieses Profil ausgelöst. Behandeln Sie die Connector-Runtime als gestoppt, bis der Status sich klärt.", "riskActive": "Runtime aktiv", - "riskActiveDesc": "Der Runner läuft und ein nicht abgelaufenes Mandat ist vorhanden. Diese Seite bleibt rein schreibgeschützt.", + "riskActiveDesc": "Der Runner läuft und sein Handelsmandat ist noch gültig.", "riskIdle": "Bereit, aber inaktiv", "riskIdleDesc": "Autorisierung und Mandat sind vorhanden, aber der Runner läuft nicht.", "riskDormant": "Inaktiv", diff --git a/frontend/src/i18n/locales/en.json b/frontend/src/i18n/locales/en.json index be93e6bf..bc70317a 100644 --- a/frontend/src/i18n/locales/en.json +++ b/frontend/src/i18n/locales/en.json @@ -74,8 +74,8 @@ "runtime": { "monitorBadge": "Runtime Monitor", "title": "Live / Paper Runtime Status", - "subtitlePre": "Read-only status from", - "subtitlePost": ". This page does not authorize connectors, start runners, stop runners, submit orders, cancel orders, or change mandates.", + "subtitlePre": "Review connector health, trading mandates and runner activity.", + "subtitlePost": " Model cadence and spending limits can be edited while the runner is stopped.", "refresh": "Refresh", "unavailableTitle": "Runtime status unavailable", "unavailableHint": "Treat connector runtime as unavailable until the backend provides a current status snapshot.", @@ -115,7 +115,7 @@ "riskHalted": "risk halted", "riskHaltedDesc": "The kill switch is tripped for this profile. Treat connector runtime as stopped until status clears.", "riskActive": "runtime active", - "riskActiveDesc": "Runner is alive and an unexpired mandate is present. This page is still read-only status only.", + "riskActiveDesc": "The runner is alive and its trading mandate has not expired.", "riskIdle": "ready but idle", "riskIdleDesc": "Authorization and mandate are present, but the runner is not alive.", "riskDormant": "dormant", diff --git a/frontend/src/i18n/locales/es.json b/frontend/src/i18n/locales/es.json index f662c405..23823753 100644 --- a/frontend/src/i18n/locales/es.json +++ b/frontend/src/i18n/locales/es.json @@ -74,8 +74,8 @@ "runtime": { "monitorBadge": "Monitor de Runtime", "title": "Estado del Runtime en vivo / demo", - "subtitlePre": "Estado de solo lectura de", - "subtitlePost": ". Esta página no autoriza conectores, ni inicia ni detiene ejecutores, ni envía o cancela órdenes, ni cambia mandatos.", + "subtitlePre": "Consulta el estado de los conectores, los mandatos de negociación y la actividad del ejecutor.", + "subtitlePost": " Puedes editar la frecuencia de las decisiones del modelo y los límites de gasto cuando el ejecutor esté detenido.", "refresh": "Actualizar", "unavailableTitle": "Estado del runtime no disponible", "unavailableHint": "Trata el runtime del conector como no disponible hasta que el backend entregue un estado actual.", @@ -115,7 +115,7 @@ "riskHalted": "riesgo detenido", "riskHaltedDesc": "El interruptor de emergencia está activado para este perfil. Trata el runtime del conector como detenido hasta que el estado se despeje.", "riskActive": "runtime activo", - "riskActiveDesc": "El ejecutor está activo y hay un mandato vigente. Esta página sigue siendo solo de estado, de solo lectura.", + "riskActiveDesc": "El ejecutor está activo y su mandato de negociación sigue vigente.", "riskIdle": "listo pero inactivo", "riskIdleDesc": "Hay autorización y mandato presentes, pero el ejecutor no está activo.", "riskDormant": "inactivo", diff --git a/frontend/src/i18n/locales/fa.json b/frontend/src/i18n/locales/fa.json index 2eb78162..25041dee 100644 --- a/frontend/src/i18n/locales/fa.json +++ b/frontend/src/i18n/locales/fa.json @@ -74,8 +74,8 @@ "runtime": { "monitorBadge": "مانیتور ران‌تایم", "title": "وضعیت زنده / شبیه‌سازی (Paper)", - "subtitlePre": "وضعیت فقط‌خواندنی از", - "subtitlePost": ". این صفحه کانکتورها را مجاز نمی‌کند، رانرها را راه‌اندازی یا متوقف نمی‌کند، سفارش ثبت یا لغو نمی‌کند و ماندیت را تغییر نمی‌دهد.", + "subtitlePre": "وضعیت اتصال کانکتورها، مجوزهای معاملاتی و فعالیت رانر را بررسی کنید.", + "subtitlePost": " هنگامی که رانر متوقف است، می‌توانید فاصله تصمیم‌های مدل و سقف هزینه را تغییر دهید.", "refresh": "بازخوانی", "unavailableTitle": "وضعیت ران‌تایم در دسترس نیست", "unavailableHint": "تا زمانی که بک‌اند وضعیت به‌روزی ارائه ندهد، ران‌تایم کانکتور را غیرقابل‌اعتماد فرض کنید.", @@ -115,7 +115,7 @@ "riskHalted": "ریسک متوقف", "riskHaltedDesc": "کلید قطع برای این پروفایل فعال شده است. تا پاک‌شدن وضعیت، ران‌تایم کانکتور را متوقف فرض کنید.", "riskActive": "ران‌تایم فعال", - "riskActiveDesc": "رانر زنده است و ماندیت منقضی‌نشده‌ای وجود دارد. این صفحه همچنان فقط وضعیتِ فقط‌خواندنی است.", + "riskActiveDesc": "رانر فعال است و مجوز معاملاتی آن هنوز اعتبار دارد.", "riskIdle": "آماده اما بیکار", "riskIdleDesc": "مجوز و ماندیت موجودند، اما رانر زنده نیست.", "riskDormant": "غیرفعال", diff --git a/frontend/src/i18n/locales/id.json b/frontend/src/i18n/locales/id.json index 52c0e7c0..7d741569 100644 --- a/frontend/src/i18n/locales/id.json +++ b/frontend/src/i18n/locales/id.json @@ -74,8 +74,8 @@ "runtime": { "monitorBadge": "Monitor Runtime", "title": "Status Runtime Live / Paper", - "subtitlePre": "Status read-only dari", - "subtitlePost": ". Halaman ini tidak mengotorisasi connector, menjalankan Runner, menghentikan Runner, mengirim order, membatalkan order, atau mengubah mandat.", + "subtitlePre": "Lihat status konektor, mandat perdagangan, dan aktivitas Runner.", + "subtitlePost": " Frekuensi keputusan model dan batas pengeluaran dapat diubah saat Runner berhenti.", "refresh": "Segarkan", "unavailableTitle": "Status runtime tidak tersedia", "unavailableHint": "Anggap runtime connector tidak tersedia sampai backend memberikan snapshot status terbaru.", @@ -115,7 +115,7 @@ "riskHalted": "risiko dihentikan", "riskHaltedDesc": "Penghentian darurat aktif untuk profil ini. Anggap runtime connector berhenti sampai status kembali normal.", "riskActive": "runtime aktif", - "riskActiveDesc": "Runner aktif dan terdapat mandat yang belum kedaluwarsa. Halaman ini tetap hanya menampilkan status read-only.", + "riskActiveDesc": "Runner aktif dan mandat perdagangannya masih berlaku.", "riskIdle": "siap tetapi idle", "riskIdleDesc": "Otorisasi dan mandat tersedia, tetapi Runner tidak aktif.", "riskDormant": "tidak aktif", diff --git a/frontend/src/i18n/locales/ja.json b/frontend/src/i18n/locales/ja.json index 421b8e6f..dea9cc26 100644 --- a/frontend/src/i18n/locales/ja.json +++ b/frontend/src/i18n/locales/ja.json @@ -69,8 +69,8 @@ "runtime": { "monitorBadge": "取引モニター", "title": "ライブ / ペーパー稼働状況", - "subtitlePre": "次からの読み取り専用状態:", - "subtitlePost": "。このページではコネクタの認可、Runner の起動/停止、注文の送信/取消、mandate の変更は行いません。", + "subtitlePre": "コネクタの接続状態、取引マンデート、ランナーの稼働状況を確認できます。", + "subtitlePost": "ランナー停止中は、モデルの判断間隔と利用上限を変更できます。", "refresh": "更新", "unavailableTitle": "稼働状況を取得できません", "unavailableHint": "バックエンドが現在の状態スナップショットを提供するまで、コネクタは利用不可として扱ってください。", @@ -110,7 +110,7 @@ "riskHalted": "リスク停止", "riskHaltedDesc": "このプロファイルではキルスイッチが作動しています。状態がクリアされるまでコネクタは停止中として扱ってください。", "riskActive": "稼働中", - "riskActiveDesc": "ランナーが稼働中で、有効期限内のマンデートが存在します。このページは引き続き読み取り専用です。", + "riskActiveDesc": "ランナーが稼働中で、取引マンデートは有効期限内です。", "riskIdle": "準備完了(アイドル)", "riskIdleDesc": "認可とマンデートは存在しますが、ランナーは稼働していません。", "riskDormant": "休止状態", diff --git a/frontend/src/i18n/locales/ko.json b/frontend/src/i18n/locales/ko.json index a2b5eede..0f8ad6ae 100644 --- a/frontend/src/i18n/locales/ko.json +++ b/frontend/src/i18n/locales/ko.json @@ -69,8 +69,8 @@ "runtime": { "monitorBadge": "거래 모니터", "title": "실거래 / 페이퍼 운영 상태", - "subtitlePre": "읽기 전용 상태 소스:", - "subtitlePost": ". 이 페이지는 커넥터 인증, 러너 시작/중지, 주문 제출/취소, mandate 변경을 수행하지 않습니다.", + "subtitlePre": "커넥터 연결, 거래 mandate 및 러너 활동 상태를 확인합니다.", + "subtitlePost": " 러너가 중지된 동안 모델 판단 주기와 사용 한도를 변경할 수 있습니다.", "refresh": "새로 고침", "unavailableTitle": "운영 상태를 사용할 수 없음", "unavailableHint": "백엔드가 현재 상태 스냅샷을 제공할 때까지 커넥터를 사용 불가로 간주하세요.", @@ -110,7 +110,7 @@ "riskHalted": "리스크 정지", "riskHaltedDesc": "이 프로필의 킬 스위치가 작동했습니다. 상태가 해제될 때까지 커넥터를 정지된 것으로 간주하세요.", "riskActive": "운영 중", - "riskActiveDesc": "러너가 활성 상태이고 만료되지 않은 mandate가 있습니다. 이 페이지는 여전히 읽기 전용입니다.", + "riskActiveDesc": "러너가 활성 상태이고 거래 mandate가 유효합니다.", "riskIdle": "준비됨(유휴)", "riskIdleDesc": "인증과 mandate가 모두 존재하지만 러너는 활성 상태가 아닙니다.", "riskDormant": "휴면", diff --git a/frontend/src/i18n/locales/pt-BR.json b/frontend/src/i18n/locales/pt-BR.json index d4fb466b..cbe45438 100644 --- a/frontend/src/i18n/locales/pt-BR.json +++ b/frontend/src/i18n/locales/pt-BR.json @@ -74,8 +74,8 @@ "runtime": { "monitorBadge": "Monitor de Runtime", "title": "Status do Runtime ao vivo / simulado", - "subtitlePre": "Status somente leitura de", - "subtitlePost": ". Esta página não autoriza conectores, iniciar ou interromper executores, enviar ou cancelar ordens, nem alterar mandatos.", + "subtitlePre": "Consulte o estado dos conectores, os mandatos de negociação e a atividade do executor.", + "subtitlePost": " É possível editar a frequência das decisões do modelo e os limites de gastos enquanto o executor estiver parado.", "refresh": "Atualizar", "unavailableTitle": "Status do runtime indisponível", "unavailableHint": "Trate o runtime do conector como indisponível até que o backend forneça um instantâneo do status atual.", @@ -115,7 +115,7 @@ "riskHalted": "risco interrompido", "riskHaltedDesc": "O kill switch está acionado para este perfil. Trate o runtime do conector como interrompido até que o status seja liberado.", "riskActive": "runtime ativo", - "riskActiveDesc": "O executor está ativo e há um mandato não expirado. Esta página continua sendo somente de status e leitura.", + "riskActiveDesc": "O executor está ativo e seu mandato de negociação ainda é válido.", "riskIdle": "pronto, mas ocioso", "riskIdleDesc": "A autorização e o mandato estão presentes, mas o executor não está ativo.", "riskDormant": "inativo", diff --git a/frontend/src/i18n/locales/tr.json b/frontend/src/i18n/locales/tr.json index 31f93a4f..fd7a8e59 100644 --- a/frontend/src/i18n/locales/tr.json +++ b/frontend/src/i18n/locales/tr.json @@ -40,8 +40,8 @@ "runtime": { "monitorBadge": "Çalışma durumu izleyicisi", "title": "Canlı / deneme işlem durumu", - "subtitlePre": "Salt okunur durum kaynağı:", - "subtitlePost": ". Bu sayfa bağlantıları yetkilendirmez, çalıştırıcıları başlatmaz veya durdurmaz, emir göndermez veya iptal etmez, yetki sınırlarını değiştirmez.", + "subtitlePre": "Bağlantı durumunu, işlem yetkilerini ve çalıştırıcı etkinliğini inceleyin.", + "subtitlePost": " Çalıştırıcı durmuşken model karar sıklığını ve harcama sınırlarını düzenleyebilirsiniz.", "refresh": "Yenile", "unavailableTitle": "Çalışma durumu alınamıyor", "unavailableHint": "Arka uç güncel durum görüntüsü sağlayana kadar bağlantının kullanılamadığını varsayın.", @@ -81,7 +81,7 @@ "riskHalted": "risk nedeniyle durdu", "riskHaltedDesc": "Bu profilin acil durdurma anahtarı etkin. Durum düzelene kadar bağlantının durduğunu varsayın.", "riskActive": "çalışma etkin", - "riskActiveDesc": "Çalıştırıcı etkin ve süresi dolmamış bir işlem yetkisi mevcut. Bu sayfa yine de yalnızca salt okunur durum gösterir.", + "riskActiveDesc": "Çalıştırıcı etkin ve işlem yetkisi hâlâ geçerli.", "riskIdle": "hazır ancak boşta", "riskIdleDesc": "Yetkilendirme ve işlem yetkisi mevcut ancak çalıştırıcı etkin değil.", "riskDormant": "etkin değil", diff --git a/frontend/src/i18n/locales/zh-CN.json b/frontend/src/i18n/locales/zh-CN.json index fe82d13d..ff8e1cdf 100644 --- a/frontend/src/i18n/locales/zh-CN.json +++ b/frontend/src/i18n/locales/zh-CN.json @@ -69,8 +69,8 @@ "runtime": { "monitorBadge": "交易监控", "title": "实盘 / 模拟运行状态", - "subtitlePre": "只读状态,来自", - "subtitlePost": "。本页面不会授权连接器、启动或停止执行程序、提交或撤销订单,也不会修改交易授权(mandate)。", + "subtitlePre": "查看券商连接、交易授权和执行程序状态。", + "subtitlePost": "执行程序停止时,可修改模型决策频率和费用限制。", "refresh": "刷新", "unavailableTitle": "运行状态不可用", "unavailableHint": "在后端提供最新状态快照前,请将连接器视为不可用。", @@ -110,7 +110,7 @@ "riskHalted": "风险熔断", "riskHaltedDesc": "该档案的熔断开关已触发。在状态恢复前请将连接器视为已停止。", "riskActive": "运行中", - "riskActiveDesc": "执行程序存活且存在未过期的交易授权(mandate)。本页面仍仅为只读状态。", + "riskActiveDesc": "执行程序存活,且交易授权仍在有效期内。", "riskIdle": "就绪但空闲", "riskIdleDesc": "授权与交易授权(mandate)均存在,但执行程序未存活。", "riskDormant": "休眠", diff --git a/frontend/src/pages/Runtime.tsx b/frontend/src/pages/Runtime.tsx index 8f5e325b..a4924505 100644 --- a/frontend/src/pages/Runtime.tsx +++ b/frontend/src/pages/Runtime.tsx @@ -96,7 +96,7 @@ export function Runtime() {

{t("runtime.title")}

- {t("runtime.subtitlePre")} /live/status + {t("runtime.subtitlePre")} {t("runtime.subtitlePost")}