
后端一个数据对象中包含十几个英文属性和值,但在前端要用中文给用户展示。
目前我能想到的是后端加一个属性对象,然后传给前端的对象的属性都用该对象描述。 举个例子
原始数据格式
"riskLevel": "low"
修改后的格式
"riskLevel": { "label": "风险等级", "value": "low" }
属性对象
public class Porperty<T> { private String label; private T value; }
请教 V 友还有哪些比较好的方式
1 wzdsfl Jun 24, 2024 我们这采取的方案就走一个接口叫 CommonEnum ,把所有的字段/值的中文映射放在这 { "riskLevel":"风险等级", "low":"低", } |
2 azure233 Jun 24, 2024 如果字段多或者考虑扩展性的话 写一个字典服务 简单点实现就使用 enum 然后写个接口将 enum 转成 map 返给前端 |
3 |
4 KagurazakaNyaa Jun 24, 2024 可以考虑单独留个 i18n 接口,传 key 和 lang 进去回 text 回来 |
5 fciasth Jun 24, 2024 @MapppingColumn(enumName = "riskLevelEnum") private Byte riskLevel; private String riskLevelName; 自定义注解+切面+反射,每次 response 返回的时候去处理,获取注解上的常量 map ,然后利用反射设置对应的值给中文字段(固定格式,例如:xxxName 或 xxxStr ) |
6 suyuyu Jun 24, 2024 我司后台就这样返了 {"风险等级":"low"} |
7 davin Jun 25, 2024 根据请求头 Accept-Language = 'zh' 给前端中文的: { "riskLevel": { "label": "风险等级", "value": "低" } } 如果 Accept-Language = 'en' 给前端英文的: { "riskLevel": { "label": "Risk Level", "value": "Low" } } 同时方便以后扩展,如果以后有了法文、德文什么的也不怕。 |
8 steelshadow39 OP @davin 学到了,非常感谢 |