Zum Inhalt springen
Remix & Hydrogen i18n

Remix- und Hydrogen-i18n für Storefronts und routengetriebene Apps

Mit Better I18N halten Sie serverseitig gerenderten Sprachstatus, lokalisierte Storefront-Inhalte und suchrelevante Routen in einem Workflow im Einklang.

Setup

Get started in 3 steps

Install the app-side SDK

Verwenden Sie das Provider-basierte SDK in Ihrer Remix- oder Hydrogen-App, damit übersetzte Inhalte über Routenmodule hinweg geteilt werden können.

terminal
npm install @better-i18n/use-intl use-intl

Sprache auf dem Server auflösen

Lesen Sie die Sprache aus dem Request, den Routenparametern oder dem Storefront-Kontext und übergeben Sie sie an das Root Ihrer App.

app/root.tsx
export async function loader({ request }: LoaderFunctionArgs) {
  const locale = resolveLocaleFromRequest(request);

  return json({ locale });
}

Provider in der Root-Route hydrieren

Geben Sie die Sprache einmal an, damit verschachtelte Routen, Produktseiten und die Warenkorb-UI dieselbe Übersetzungsquelle nutzen.

app/root.tsx
export default function App() {
  const { locale } = useLoaderData<typeof loader>();

  return (
    <BetterI18nProvider project="your-org/your-storefront" locale={locale}>
      <Outlet />
    </BetterI18nProvider>
  );
}
Capabilities

Warum Better I18N mit Remix und Hydrogen einsetzen?

Serverseitig geladene Sprachauflösung, die zu Remix-Loadern und Hydrogen-Storefront-Abläufen passt
Gut geeignet für SEO-relevante Kategorie-, Produkt- und Inhaltsseiten
Ein einziger Übersetzungs-Workflow für Storefront-UI, Kontoseiten und Marketing-Routen
Unterstützt routenbasierte Sprachstrategien ohne fragile Dateiduplikate
Entwickler können lokalisierte Storefront-Updates ausliefern, ohne auf ein Redeploy warten zu müssen
Hält Vergleichs- und Kaufabsicht-Inhalte im Einklang mit den Seiten zur Produktlokalisierung
Example

Route-level locale wiring

Ein Provider-basiertes Setup, das zu loader-getriebenen Frameworks und Storefront-Routenbäumen passt.

import { BetterI18nProvider, useTranslations } from '@better-i18n/use-intl';

export async function loader({ request }: LoaderFunctionArgs) {
  return json({
    locale: resolveLocaleFromRequest(request),
  });
}

function ProductHero() {
  const t = useTranslations('product');
  return <h1>{t('title')}</h1>;
}

export default function App() {
  const { locale } = useLoaderData<typeof loader>();

  return (
    <BetterI18nProvider project="your-org/your-storefront" locale={locale}>
      <ProductHero />
      <Outlet />
    </BetterI18nProvider>
  );
}

Other frameworks

Get started

Lokalisierte Storefronts ausliefern, ohne zersplitterte Workflows

Halten Sie serverseitige Sprachauflösung, Produktinhalte und Kaufabsicht-Seiten in einem einzigen Lokalisierungssystem.