当前位置: 首页 > 知识库问答 >
问题:

前端或后端api错误消息的国际化?

弘志勇
2023-03-14
{
    "errorCode": "1111",
    "message": "Error occurred: some error message",
    "developerMessage": "message for developer"
}

错误响应还可以包含字段验证错误的可选列表。问题是我们应该在哪里进行用户错误消息的翻译?后端应该根据请求的区域设置返回已经翻译过的消息,还是前端应该使用errorCode及其i18n机制。我们在后端(Springi18n支撑)和前端(角平移)都有i18n机构。

最佳实践是什么?每种方法的利弊是什么?任何建议都很感激。

共有1个答案

龙默
2023-03-14

我会通过把所有东西都本地化来做到这一点。后端将发送ID,客户端应用程序将其转换为本地化文本。

好处:

  • 为所有内容翻译的单一来源-按钮、工具提示等和错误消息
  • 格式支持-您可能需要将消息的某些部分加粗/clickable/etc,这需要在前端完成
  • 仅客户端验证-针对相同错误的客户端验证错误消息应与服务器端验证错误消息相同(对于后端本地化,最终可能会重复某些翻译)
  • 语言不可知测试是可能的
  • 语言不可知的后端是可能的-不需要仅仅为了翻译而在后端上设置区域设置
  • 与尽可能接近客户端的本地化一般建议同步
  • 消除了以后进行更多后端翻译的动机
    null
 类似资料:
  • 我有一个小要求写标准化国际化javax.validation错误消息在这种格式 @NotNull私有字符串名称; @最大(10)个私人年龄; 那么在这种情况下,错误消息应该作为 “字段名不为空” “现场年龄不大于或等于10” 如何以更动态的方式实现这一点,而不是在注释中对消息或变量名称进行硬编码。

  • 1面: 206状态码底层原理,分片上传原理 csp底层原理,具体怎么设置 图片怎么转cancas,canvas转图片 ssr优缺点,实现的具体过程 路由懒加载原理,是不是所有import()都会分出一个文件,这个文件以什么形式存在,什么时间点下载什么时候解析。import()分包是谁实现的,是脚手架还是打包工具 事件循环输出题 算法:一个数组里有一堆数字,拼接得到一个最大的数字 2面 vue23区

  • 全程1h 自我介绍 项目拷打30min 大文件上传怎么实现 webpack的loader,plugin 用过哪些loader webpack构建打包流程 讲下monorepo vue父子组件传值 vue响应式原理 浏览器缓存 this指向 call、bind、apply 手撕: 节流 二叉树中序遍历 我还是太菜了,算法还得多练 项目拷打的时候说到promise.allsettled,给自己埋了坑,

  • 后端项目国际化时区问题如何处理? 用户购买会员 有效期一个月 这个时候不同时区的用户看到的时间不一样。前端应该如何处理 后端应该如何计算呢 求有经验的大佬指点 utc时间 但是不是很懂 需要前端怎么配合

  • 请问后端 api 返回的错误信息一般你怎么规定? message 是用中文还是英文, 还是其他的标志, 还有加自定义 code么?

  • 介绍项目,项目难点 项目如何做的国际化,如何动态做国际化 有没有什么优化的经历 页面居中的方式 介绍flex布局,flex布局的优点 介绍position, position:absolute的场景 http状态码,单独问了301 302/ 307 308 js手写一个ajax请求 cookie localstorage sessionstorage的区别 cookie的属性