我正在修改一个错误系统,我使用枚举来识别错误。枚举包含在服务器端并转换为 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)
?
最佳答案
您将有几个 javascript 文件,每个文件都根据其本地化名称进行命名。浏览器:
en-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"];
关于c# - 使用枚举从后端到前端(javascript)进行错误处理,我在哪里放置翻译?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12460793/