1

我正在修补一个错误系统,我使用枚举来识别错误。枚举包含在服务器端并转换为 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)?

4

1 回答 1

1

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

zh-cn.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"];
于 2012-09-17T14:27:20.107 回答