Supabase i18n

The Supabase components reference translation keys under the ra-supabase.* namespace. Each key has an inline English fallback via translate(key, { _: '...' }), so loading translations is optional.

For translated UIs, merge raSupabaseEnglishMessages / raSupabaseFrenchMessages into your i18n provider:

import polyglotI18nProvider from "ra-i18n-polyglot";
import englishMessages from "ra-language-english";
import frenchMessages from "ra-language-french";
import {
  raSupabaseEnglishMessages,
  raSupabaseFrenchMessages,
} from "@/components/supabase";
 
const messages = {
  en: { ...englishMessages, ...raSupabaseEnglishMessages },
  fr: { ...frenchMessages, ...raSupabaseFrenchMessages },
};
 
export const i18nProvider = polyglotI18nProvider(
  (locale) => messages[locale],
  "en",
  [
    { name: "en", value: "English" },
    { name: "fr", value: "Français" },
  ],
);

<AdminGuesser> uses defaultSupabaseI18nProvider (English-only with Supabase keys) by default.

Translation keys

  • ra-supabase.auth.email — "Email"
  • ra-supabase.auth.confirm_password — "Confirm password"
  • ra-supabase.auth.sign_in_with — "Sign in with %{provider}"
  • ra-supabase.auth.forgot_password — "Forgot password?"
  • ra-supabase.auth.reset_password — "Reset password"
  • ra-supabase.auth.password_reset — confirmation toast after reset request
  • ra-supabase.auth.missing_tokens — set-password error when URL tokens are absent
  • ra-supabase.auth.back_to_login — "Back to login"
  • ra-supabase.reset_password.forgot_password — title on the reset page
  • ra-supabase.reset_password.forgot_password_details — body text
  • ra-supabase.set_password.new_password — "Choose your password"
  • ra-supabase.validation.password_mismatch — validation error