You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于用户选择的语言切换天气应用中预定义的日期变量?

多语言切换实现方案

核心逻辑是把所有语言的静态文本抽离为统一配置对象,通过用户传入的语言标识动态读取对应资源,无需修改核心日期拼接逻辑:

// 多语言静态配置,新增语言直接在此处添加即可
const langConfig = {
  en: {
    months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
    days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
    needOrdinalSuffix: true // 控制是否显示st/nd/rd/th后缀
  },
  akan: {
    months: ["Ɔpɛpɔn", "Ɔgyefoɔ", "Ɔbɛnem", "Oforisuo", "Kotonimma", "Ayɛwohomumɔ", "Kitawonsa", "Ɔsanaa", "Ɛbɔ", "Ahinime", "Obubuo", "Ɔpɛnimma"],
    days: ["Kwasiada", "Jowada", "Benada", "Wukuada", "Yawóada", "Fiada", "Memeneda"],
    needOrdinalSuffix: true
  },
  hausa: {
    months: ["Janairu", "Faburairu", "Maris", "Afirilu", "Mayu", "Yuni", "Yuli", "Agusta", "Satumba", "Oktoba", "Nuwamba", "Disamba"],
    days: ["lahadi", "litinin", "Talata", "laraba", "Alhamis", "Jumma", "Asabar"],
    needOrdinalSuffix: true
  }
}

// 新增lang入参,为用户选择的语言标识,默认 fallback 到英语
const dateBuilder = (d, lang = 'en') => {
  // 读取对应语言配置,不支持的语言默认用英语
  const { months, days, needOrdinalSuffix } = langConfig[lang] || langConfig.en;

  let day = days[d.getDay()];
  let date = d.getDate();
  let sup = "";
  let month = months[d.getMonth()];
  let year = d.getFullYear();

  // 根据配置判断是否需要生成序数词后缀
  if (needOrdinalSuffix) {
    if (date == 1 || date == 21 || date ==31) {
      sup = "st";
    } else if (date == 2 || date == 22) {
      sup = "nd";
    } else if (date == 3 || date == 23) {
      sup = "rd";
    } else {
      sup = "th";
    }
  }

  return `${day} ${date}${sup ? ' ' + sup : ''} ${month} ${year}`
}

使用示例

// 英语日期
console.log(dateBuilder(new Date(), 'en'))
// 阿坎语日期
console.log(dateBuilder(new Date(), 'akan'))
// 豪萨语日期
console.log(dateBuilder(new Date(), 'hausa'))

后续扩展说明

  • 新增支持语言只需在langConfig中添加对应语言的配置项即可,不需要修改核心日期处理逻辑
  • 若某类语言不需要序数词后缀,将对应配置的needOrdinalSuffix设为false即可
  • 可根据业务需求扩展更多配置项,比如日期拼接格式、不同语言的序数词规则等

内容的提问来源于stack exchange,提问作者StaFa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 22:42:00