Skip to content

货币显示不太一致:HKD 显示成「100.00 HKD」,而 CNY / USD 是「¥100.00」/「$100.00」 #76

Closed

Description

@motta

现象

v1.3.1 放开任意三字母货币代码之后,我试了下港币,发现同一列里的排版风格不太一致:

货币 显示
CNY ¥100.00
USD $100.00
HKD 100.00 HKD

前两个是「符号在数字前」,港币是「代码在数字后」而且没有符号。放在同一列里看着有点跳。
不确定这是不是有意这么显示的,所以先来问一下。

我看到的代码,供参考

web-admin/src/lib/format.ts:34-38

const SYMBOLS: Record<string, string> = { USD: "$", CNY: "¥", EUR: "€", GBP: "£", JPY: "¥" }

export function money(amount: number, currency: string): string {
  return `${SYMBOLS[currency] ?? ""}${amount.toFixed(2)}${SYMBOLS[currency] ? "" : ` ${currency}`}`
}

看起来是「符号表里有的走符号在前,表里没有的走代码在后」。这张表一直是 5 项,
#71 放开任意代码之后,HKD / TWD / SGD / AUD 这些都会落到后面那条分支——
所以这大概是新功能带出来的一个边角情况,不太像是特意设计的。

另外 monitor-theme-default/src/lib/format.ts 里是同一份实现,
公开页上的价格应该也是一样的显示。

期望

统一成下面任意一种都可以:

  1. 货币代码放数字前面:HKD 100.00
  2. 用 Intl.NumberFormat:HK$100.00(它的输出会随访客的地区设置变化)
  3. 货币代码放数字后面:100.00 HKD

现在的情况是 2 和 3 混着:有符号的用符号前置,没符号的用代码后置。

复现步骤

  1. 面板「节点」页 → 编辑任一节点 → 续费设置 → 货币填 HKD、价格填 100 → 保存
  2. 节点列表的价格列显示 100.00 HKD
  3. 把货币改成 CNY(或留空,默认 USD)→ 显示 ¥100.00 / $100.00

版本

hub v1.3.1,agent v1.1.0

hub 的安装方式

一键脚本(install-hub.sh)

面板的访问方式

Cloudflare 代理(橙色云朵)

出问题机器的系统

No response

日志


提交前确认

  • 已从上面的内容里去掉 token、密码,以及不想公开的 IP 和域名

Activity

  1. added a commit that references this issue on Oct 2, 2026
    d58fb1e
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions