作者:yjdnvb | 来源:互联网 | 2023-02-10 18:50
在视图中显示Firebase错误消息(error.message)会导致英语错误说明(例如,对于身份验证错误,如果用户凭据包含错误).
您将如何以不同语言显示消息(最佳情况:使用手机语言)?
1> Frederiko Ce..:
现在这是不可能的。我建议使用错误代码(error.code),它是唯一的错误代码,您可以使用它来创建一些东西来将此错误代码绑定到您自己的文本/语言。Firebase文档上有一个可用的页面,其中列出了可能会帮助您解决这些错误的代码。查看以下链接:https: //firebase.google.com/docs/reference/js/firebase.auth.Auth
https://firebase.google.com/docs/reference/js/firebase.auth.Error
https:/ /firebase.google.com/docs/auth/admin/errors?hl=zh-CN
编辑:为解决此问题,我已将其自己翻译成(我的语言为PT-BR)并通过以下步骤实现(在TypeScript中):
我创建了一个接口来保存字符串的索引数组:
export interface MessagesIndex {
[index: string]: string;
}
然后在某些UI或错误服务中,我已将此变量声明为上述接口:
params = {
'invalid-argument': 'Erro: Um argumento inválido foi fornecido.',
'invalid-disabled-field': 'Erro: O valor fornecido para a
propriedade de usuário é inválido.',
/* ADD HERE THE OTHERs IDs AND THE CORRESPONDING MESSAGEs */
} as MessagesIndex;
之后,我创建了一个函数,可以通过给定的代码(来自Firebase)打印该函数,请记住进行拆分,因为error.code
属性类似于“ auth / error-id”,而我们仅需使用“ error-id”,如果找不到错误代码,则可以返回一些“未知错误”并打印error.code
,如果需要:
public printErrorByCode(code: string): string {
code = code.split('/')[1];
if (this.params[code]) {
return (this.params[code]);
} else {
return ('Ocorreu algum erro desconhecido! \n Codigo erro: ' + code);
}
}
这不是最好的代码,但希望对您有所帮助!