审查生成的发票渲染器

来自 国际化
Node 24 高级 12分钟 找出 4处问题

审查这个生成的发票渲染器。

使用已解析的区域设置、订单中明确的货币和时区、本地化的商品数量消息及安全的客户文本渲染发票,并保持文档语言与方向一致。

JavaScript
function renderInvoice(order, requestedLocale) {
  const locale = requestedLocale || navigator.language;
  const currency = locale.endsWith("-US") ? "USD" : "EUR";
  const amount = order.total.toLocaleString(locale);
  const placedAt = new Intl.DateTimeFormat(locale, {
    dateStyle: "medium",
    timeZone: order.timeZone,
  }).format(new Date(order.placedAt));
  const itemLabel =
    order.items.length === 1
      ? `${order.items.length} item`
      : `${order.items.length} items`;
  const customer = order.customerName;
  const html = `
    <h2>${customer}</h2>
    <p>${itemLabel}</p>
    <p>${amount} ${currency}</p>
    <time>${placedAt}</time>
  `;
  document.querySelector("#invoice").innerHTML = html;
  document.documentElement.dir = locale.startsWith("ar") ? "rtl" : "ltr";
  return html;
}

生成代码仅作示例,不代表任何特定模型

在试验场中打开
报告错误