引言
网上关于国际化的讨论和教程大多是vue和react等前端框架的,那么对于express这样的后端框架,如何去国际化?
后端也需要国际化?
是的,后端也需要。常见的情况如下:
- 动态的错误提示
- 导出Excel的表头
- 其他一些需要动态展示或生成的内容
后端国际化相对前端有什么不同?
- 前端一般是一个网站显示同一种语言。
- 后端则每次响应可能是不同的语言。
该怎么实现?
这里以express为例
1、创建一个实例
            
            
              ts
              
              
            
          
          import { createI18nSafe} from "soon-i18n"
export const { yiLocales } = createI18nSafe(
  { lang: "zh", fallbacks: ["en"] },
  {
    zh: {
      hello:(username:string)=> `欢迎 ${username} 登录!`
    }, en: {
      hello: (username:string)=> ` ${username} , welcome `
    }
  }, //全局定义的locales,按需要可不定义
)2、在请求中使用
            
            
              ts
              
              
            
          
          import { yiLocales } from "../i18n"
app.post("/login", async (req, res) => {
  const lang = req.headers["lang"] as 'en' ?? "en"
  const t = yiLocales(lang,
    {
      zh: { err: '用户名或密码输入错误' },
      en: { err: 'Username or password is error.' }
    } //局部定义的locales,按需要可不定义
   )
  //如成功时返回欢迎 (全局定义的信息)
  res.json({ msg: t('hello', req.body.username) })
  //失败时返回错误 (局部定义的信息)
  res.json({ msg: t('err') })
  })支持一下
热情地欢迎各位兄弟姐妹的大力支持!
github: github.com/leafio?tab=...
期待至少一个项目能达成1000个star
期待至少一个npm能达成每周1000次下载
- Soon-Admin TS全栈后台管理系统
- 前端vue3版:soon-admin-vue3
- 前端react版:soon-admin-react-nextjs
- 后端express:soon-admin-express
 
- soon-mock 一键生成增删查改,有ui的json-server,可js自定义逻辑
- soon-tools 分层级JSON转TS类型,有网页版、npm、exe三种方式使用
- soon-i18n 类型安全的函数式i18n库,支持vue3、react、solid、svelte
- soon-storage 对于localStorage的类型安全封装
- soon-fetch 不到3K的组合式请求库
- react-vmodel 多层级objcet双向绑定,像vue一样简单