Firebaseエラーメッセージ(error.message)をビューに表示すると、エラーの説明が英語になります(たとえば、ユーザーの資格情報にエラーが含まれている場合、認証エラーの場合)。
さまざまな言語でメッセージをどのように表示しますか(最良のケース:電話の言語で)?
これは現在不可能です。私がお勧めするのは、一意のエラーコードであるエラーコード(error.code)を使用することです。このコードを使用すると、このエラーコードを独自のテキスト/言語にバインドできます。 Firebaseのドキュメントには、その際に役立つ可能性のあるエラーコードのリストが掲載されたページがあります。次のリンクを確認してください: https://firebase.google.com/docs/reference/js/firebase.auth.Authhttps://firebase.google.com/docs/reference /js/firebase.auth.Errorhttps://firebase.google.com/docs/auth/admin/errors?hl=en
編集:これを解決するために、自分で翻訳し(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);
}
}
それは最高のコードではありませんが、それが役に立てば幸いです!
Firebaseのエラーメッセージはアプリケーションデベロッパーを対象としているため、英語のみです。ドキュメントを提供するのと同じ言語で提供したいのですが、ユーザーのすべての言語をカバーすることは決してありません。
したがって、コード内のエラーを検出し、問題を検査できる中央システムにエラーを記録してから、ローカライズされたエラーメッセージをユーザーに表示する必要があります。
私の知る限り、Angularで標準化する方法はありません。ただし、存在する場合、Firebaseとは無関係です。
エラーを短くする必要があったときに、次のことを行いました。
const firebaseErrors = {
'auth/user-not-found': 'No user corresponding to this email',
'auth/email-already-in-use': 'The email address is already in use',
}; // list of firebase error codes to alternate error messages
次に、必要な場所で
catch (error) {
throw firebaseErrors[error.code] || error.message,
}