流星国际化的错误(Meteor errors internationalization)

2019-10-20 06:44发布

我试图通过实施国际化刚刚国际化 ,并能正常工作至今。

问题是我还使用帐户密码和特别Meteor.loginWithPassword(user, password, [callback])

在登录错误,回调有一个错误的对象,基本上是这样的:

{
    details: undefined,
    error: 403,
    errorType: "Meteor.Error",
    message: "User not found [403]",
    reason: "User not found"
}

我认为错误代码是独一无二的,与这样的国际化配置文件去:

i18n.map 'fr_FR',
  login:
    signin: 'S\'authentifier'
  errors:
    403: 'L\'utilisateur n\'existe pas'

所以,我可以这样调用它:

Session.set "error", i18n("errors." + err.error)

但实际上,不管有什么错误,用户没有发现或密码不正确,错误代码是不是唯一的:

{
    details: undefined,
    error: 403,
    errorType: "Meteor.Error",
    message: "Incorrect password [403]",
    reason: "Incorrect password"
}

因为我不考虑检查一个字符串值真正一致的,我怎么能differenciate两者兼而有之?

我怎么会去实现与流星内置登录国际化?

Answer 1:

403这里是不是为特定错误流星数,而是一个HTTP状态代码 。 相同的代码可通过不同的错误造成的。

由于错误的唯一区别对象,您得到的是reasonmessage ,你需要使用其中一个设立国际码。 他们不应该改变流星版本之间的太多了,所以你应该罚款这种解决方案。

i18n.map 'fr_FR',
  login:
    signin: 'S\'authentifier'
  errors:
    403:
      'Incorrect password': 'Le password est incorrectu'
      'User not found': 'L\'utilisateur n\'existe pas'

啊,不用担心, loginsigninerrors403在内部表示为字符串为好,所以没有什么在这样的解决方案不一致。



文章来源: Meteor errors internationalization