React Academy · leksjon

Bruke useTranslation-hooken

Erstatt hardkodede strenger med t()-kall og organiser JSON-filer for oversettelser.

Leksjon 2 av 413 trinn

Bruke useTranslation-hooken er en gratis leksjon i React Academy på CoddyKit. Dette er leksjon 2 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i React Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i React Academy inneholder totalt 4 leksjoner.

Velkommen

I denne leksjonen skal du bruke useTranslation-hooken for å få tilgang til t()-funksjonen, oversette strenger i komponenter og organisere JSON-filer for oversettelser etter navnerom.

useTranslation-hooken

Kall useTranslation() inne i en komponent for å få oversettelsesfunksjonen `t` og `i18n`-instansen. Oppgi navnet på navnerommet hvis du bruker oversettelser med navnerom.
import { useTranslation } from 'react-i18next';

function Header() {
  const { t } = useTranslation('common');
  return <h1>{t('app_title')}</h1>;
}

Grunnleggende oversettelsesnøkler

Opprett én JSON-fil for hvert språk og navnerom. Nøkler er strenger som kan nås med punktnotasjon. Flate nøkler er enkle, mens nøstede nøkler bruker punktnotasjon.
// public/locales/en/common.json
{
  "app_title": "My App",
  "nav": {
    "home": "Home",
    "about": "About"
  }
}

Nøkler med punktnotasjon

Få tilgang til nøstede nøkler med punktnotasjon i t()-funksjonen: `t('nav.home')` leser `nav -> home` fra JSON-filen.
const { t } = useTranslation('common');
return <a href="/">{t('nav.home')}</a>;

Standardnavnerom

Konfigurer et `defaultNS` i i18n-initialiseringen, slik at du kan kalle useTranslation() uten argumenter og nøkler automatisk slås opp i standardnavnerommet.
i18n.init({ defaultNS: 'common', ... });

// No namespace argument needed
const { t } = useTranslation();
t('app_title'); // resolves in 'common'

Tilgang til flere navnerom

Send en array til useTranslation for å få tilgang til flere navnerom. Sett navnerommet foran nøklene, etterfulgt av et kolon.
const { t } = useTranslation(['common', 'auth']);

t('common:app_title');
t('auth:login');

Trans-komponenten for JSX-innhold

Når en oversatt streng inneholder HTML eller React-komponenter, bruker du Trans-komponenten. Den støtter plassholdere som kobles til React-komponenter.
import { Trans } from 'react-i18next';

// JSON: "tos": "Read our <1>Terms</1>"
<Trans i18nKey="tos">
  Read our <a href="/terms">Terms</a>
</Trans>

Struktur for oversettelsesfiler

Organiser JSON-filer som `public/locales/{lang}/{ns}.json`. Hold nøklene semantiske og grupper dem etter funksjonalitet. Unngå svært dypt nøstede nøkler — to nivåer er som regel nok.
public/
  locales/
    en/
      common.json
      auth.json
      dashboard.json
    tr/
      common.json
      auth.json

Bytte språk under kjøring

Bruk `i18n.changeLanguage(lng)` for å bytte aktivt språk programmatisk. React-komponenter som bruker useTranslation, gjengis automatisk på nytt.
const { i18n } = useTranslation();

<button onClick={() => i18n.changeLanguage('tr')}>Turkish</button>

Finne det aktive språket

Les `i18n.language` for å hente gjeldende aktiv lokalitet. Bruk den til å vise et flagg eller fremheve knappen for det aktive språket.
const { i18n } = useTranslation();
return <p>Current lang: {i18n.language}</p>;

Hurtigsjekk

Hvordan får du tilgang til den nøstede oversettelsesnøkkelen 'nav.home' i navnerommet 'common'?

Oppsummering

useTranslation gir deg t()-funksjonen. Organiser nøkler i JSON-filer for navnerom. Bruk punktnotasjon for nøstede nøkler. Bytt språk med i18n.changeLanguage. Bruk Trans-komponenten for strenger som inneholder JSX.

Neste

Neste leksjon: **Flertallsformer og interpolering** — du vil håndtere flertallsformer basert på antall og sette inn dynamiske verdier i oversatte strenger.
Gratis å komme i gang

Lær deg React med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
88
Leksjoner
324

Ofte stilte spørsmål

Er leksjonen «Bruke useTranslation-hooken» gratis?

Ja – hele teksten i «Bruke useTranslation-hooken» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av React Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i React Academy inneholder totalt 4 leksjoner.

Hva lærer jeg i «Bruke useTranslation-hooken»?

Erstatt hardkodede strenger med t()-kall og organiser JSON-filer for oversettelser. Du øver på React Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med React Academy?

Ingen tidligere erfaring er nødvendig. React Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 2 av 4.

Hvor lang tid tar leksjonen «Bruke useTranslation-hooken»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne React Academy-leksjonen?

Ja. Alle React Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Sette opp react-i18next
  2. Bruke useTranslation-hooken
  3. Flertallsformer og interpolering
  4. Språkvelger og lazy-loading av oversettelser
← Tilbake til React Academy