概要
本記事では、SupabaseとFlutterを使用した開発において、
認証認可周りのエラーメッセージを日本語に翻訳する関数(translateError)を紹介します。
サンプルコード
// 英語のエラーメッセージを日本語に翻訳する関数
String translateError(String errorMessage) {
const errorTranslations = {
// エラーメッセージとその日本語訳
'email rate limit exceeded': 'メールの送信制限を超えました。しばらく待ってから再試行してください。',
'email_not_confirmed': 'メールアドレスが確認されていません。確認メールをチェックしてください。',
'Email not confirmed': 'メールアドレスが確認されていません。確認メールをチェックしてください。',
'over_email_send_rate_limit': 'メールの送信制限を超えました。しばらく待ってから再試行してください。',
'email_already_in_use': 'このメールアドレスはすでに使用されています。',
'invalid_email': 'メールアドレスが無効です。正しい形式を使用してください。',
'missing email or phone': 'ログインに必要な項目が入力されていません。',
'Anonymous sign-ins are disabled': 'ログインに失敗しました。',
'User already registered': 'このユーザーは既に登録されています。',
'Invalid login credentials': 'ログイン情報が誤っています。',
'Password should be at least 6 characters': 'パスワードは6文字以上である必要があります。',
'validation_failed': '入力内容の検証に失敗しました。',
};
for (var errorKey in errorTranslations.keys) {
if (errorMessage.contains(errorKey)) {
return errorTranslations[errorKey]!;
}
}
return 'エラー: $errorMessage';
}
結果
下記の様に日本語に翻訳されている事が確認できる。
その他コード
ログイン処理やサインアップ処理が出来るサンプルコードは下記です、
GitHub にアップしてますので、必要な方は確認してください。
自分のリポジトリにフォークしてクローンしていただいたあと、Supabase の
APIキー(anon key)と SupabaseプロジェクトURL を main.dart に記載していただければすぐに使える状態になります。
詳細は README を確認してください。