【发布时间】:2012-09-09 18:14:12
【问题描述】:
我正在修改一个错误系统,我使用枚举来识别错误。枚举包含在服务器端并转换为 JS 对象,但我不知道在哪里保存错误消息。
错误枚举
public enum MyError
{
InvalidThingFormat = 1001,
AllowedThingsExceeded = 1002
}
生成的 JavaScript“枚举”
var MyError= {InvalidThingFormat :1001,AllowedThingsExceeded:1002};
然后做检查
switch(data.error) {
case MyError.InvalidThingFormat:
alert("Format validation failed");
break;
// etc.
}
到目前为止,我喜欢这种感觉,但我不喜欢硬编码的错误消息;那么我将把人类可读错误消息的本地化/国际化放在哪里呢?
是否还应该有一个后端翻译集,我在 JS 中推出,或者翻译应该只在 JS 端,由其他方法处理?代码会是什么样子; Error.GetMessage(MyError.AllowedThingsExceeded)?
【问题讨论】:
-
从 JS 的角度来看,我更希望将错误消息与代表您的错误的 json 一起返回。数字代码对客户端重要吗?
-
我相信一个常见的模式是将每个本地化存储在一个单独的文件中,并在必要时包含它。因此,您无需在错误处理方法中使用硬编码消息,而是从在单独脚本中设置的对象中查找值。
-
最终我只是按照@Jørgen 的建议做了。对于嵌入到 JS 中的翻译,我只是决定将它们存储在资源文件中,并直接在其中生成带有翻译的 JS。这可能是缓存的问题,但我并不在意。
标签: c# javascript error-handling translation