使用枚举从后端到前端(javascript)的错误处理,我在哪里放置翻译?

时间:2012-09-17 13:54:54

标签: c# javascript error-handling translation

我正在修补错误系统,我使用枚举来识别错误。枚举包含在服务器端并转换为JS对象,但我不知道在哪里保留我的错误消息。

错误枚举

public enum MyError
{
    InvalidThingFormat = 1001,
    AllowedThingsExceeded = 1002
}

生成JavaScript“enum”

var MyError= {InvalidThingFormat :1001,AllowedThingsExceeded:1002};

并按照

进行检查
switch(data.error) {
    case MyError.InvalidThingFormat:
        alert("Format validation failed");
        break;
    // etc.
}

到目前为止,我喜欢这种感觉,但我不喜欢硬编码的错误消息;那么我将把我的本地化/国际化的人类可读错误信息放在哪里?

是否还应该在JS中推出后端翻译集,或者翻译是否仅在JS方面,由其他方法处理?代码会是什么样的; Error.GetMessage(MyError.AllowedThingsExceeded)

1 个答案:

答案 0 :(得分:1)

你会有几个javascript文件,每个文件都以其本地化命名。 IE:

烯us.js:

var ErrorMessages = {
    "1001" : "Invalid thing",
    "1002" : "Too many things."
};

es-mx.js :(注意,我其实不懂西班牙语)

var ErrorMessages = {
    "1001" : "Cosa no válido",
    "1002" : "Demasiadas cosas"
};

等等。

因此,您将en-us.js作为默认值,然后包括适当的本地化。

然后您可以这样使用它:

 var errMsg = ErrorMessages[MyError.InvalidThingFormat];

 var errMsg = ErrorMessages["1001"];