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 requestra-supabase.auth.missing_tokens— set-password error when URL tokens are absentra-supabase.auth.back_to_login— "Back to login"ra-supabase.reset_password.forgot_password— title on the reset pagera-supabase.reset_password.forgot_password_details— body textra-supabase.set_password.new_password— "Choose your password"ra-supabase.validation.password_mismatch— validation error