React Academy · Oppitunti

useTranslation-hookin käyttäminen

Korvatkaa kovakoodatut merkkijonot t()-kutsuilla ja järjestäkää käännösten JSON-tiedostot.

Oppitunti 2/413 vaihetta

useTranslation-hookin käyttäminen on ilmainen React Academy-oppitunti CoddyKitissä. Tämä on oppitunti 2/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu React Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. React Academy-kurssilla on yhteensä 4 oppituntia.

Tervetuloa

Tässä oppitunnissa käytätte useTranslation-hookia t()-funktion käyttämiseen, käännätte komponenttien merkkijonoja ja järjestätte JSON-käännöstiedostot nimiavaruuksien mukaan.

useTranslation-hook

Kutsukaa useTranslation()-funktiota komponentin sisällä saadaksenne `t`-käännösfunktion ja `i18n`-instanssin. Välittäkää nimiavaruuden nimi, jos käytätte nimiavaruuksiin jaettuja käännöksiä.
import { useTranslation } from 'react-i18next';

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

Käännösavainten perusteet

Luokaa kullekin kielelle ja nimiavaruudelle oma JSON-tiedosto. Avaimet ovat pisteellä käytettäviä merkkijonoja. Yksitasoiset avaimet ovat yksinkertaisia, kun taas sisäkkäiset avaimet käyttävät piste-merkintää.
// public/locales/en/common.json
{
  "app_title": "My App",
  "nav": {
    "home": "Home",
    "about": "About"
  }
}

Piste-merkintää käyttävät avaimet

Käyttäkää sisäkkäisiä avaimia piste-merkinnällä t()-funktiossa: `t('nav.home')` lukee JSON-tiedostosta kohdan `nav -> home`.
const { t } = useTranslation('common');
return <a href="/">{t('nav.home')}</a>;

Oletusnimiavaruus

Määrittäkää `defaultNS` i18n:n alustuksessa, jolloin voitte kutsua useTranslation()-funktiota ilman argumentteja ja avaimet ratkaistaan automaattisesti oletusnimiavaruudesta.
i18n.init({ defaultNS: 'common', ... });

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

Useiden nimiavaruuksien käyttäminen

Välittäkää useTranslation-funktiolle taulukko, jotta voitte käyttää useita nimiavaruuksia. Lisätkää avaimen eteen nimiavaruus ja kaksoispiste.
const { t } = useTranslation(['common', 'auth']);

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

Trans-komponentti JSX-sisällölle

Kun käännetty merkkijono sisältää HTML:ää tai React-komponentteja, käyttäkää Trans-komponenttia. Se tukee paikanhaltijoita, jotka yhdistetään React-komponentteihin.
import { Trans } from 'react-i18next';

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

Käännöstiedostojen rakenne

Järjestäkää JSON-tiedostot muotoon `public/locales/{lang}/{ns}.json`. Pitäkää avaimet semanttisina ja ryhmiteltyinä ominaisuuden mukaan. Välttäkää syvästi sisäkkäisiä avaimia — kaksi tasoa riittää yleensä.
public/
  locales/
    en/
      common.json
      auth.json
      dashboard.json
    tr/
      common.json
      auth.json

Kielen vaihtaminen suorituksen aikana

Käyttäkää `i18n.changeLanguage(lng)`-funktiota aktiivisen kielen vaihtamiseen ohjelmallisesti. UseTranslation-hookia käyttävät React-komponentit hahmonnetaan automaattisesti uudelleen.
const { i18n } = useTranslation();

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

Aktiivisen kielen tunnistaminen

Lukekaa `i18n.language`, jotta saatte nykyisen aktiivisen lokaalin. Voitte käyttää sitä lipun näyttämiseen tai aktiivisen kielipainikkeen korostamiseen.
const { i18n } = useTranslation();
return <p>Current lang: {i18n.language}</p>;

Pikatarkistus

Miten käytätte sisäkkäistä käännösavainta 'nav.home' 'common'-nimiavaruudesta?

Kertaus

useTranslation antaa käyttöön t()-funktion. Järjestäkää avaimet nimiavaruuksien JSON-tiedostoihin. Käyttäkää sisäkkäisille avaimille piste-merkintää. Vaihtakaa kieli i18n.changeLanguage-funktiolla. Käyttäkää Trans-komponenttia merkkijonoille, jotka sisältävät JSX:ää.

Seuraavaksi

Seuraava oppitunti: **Monikkomuodot ja interpolointi** — käsittelette lukumäärään perustuvia monikkomuotoja ja lisäätte käännettyihin merkkijonoihin dynaamisia arvoja.
Aloita maksutta

Opi React tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
88
Oppitunnit
324

Usein kysytyt kysymykset

Onko oppitunti ”useTranslation-hookin käyttäminen” ilmainen?

Kyllä – oppitunnin ”useTranslation-hookin käyttäminen” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko React Academy-kurssin, päivitä CoddyKit PROhon. React Academy-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”useTranslation-hookin käyttäminen”?

Korvatkaa kovakoodatut merkkijonot t()-kutsuilla ja järjestäkää käännösten JSON-tiedostot. Harjoittelet React Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni React Academy-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin React Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/4.

Kuinka kauan ”useTranslation-hookin käyttäminen”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä React Academy-oppitunnilla?

Kyllä. Jokainen React Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. react-i18nextin käyttöönotto
  2. useTranslation-hookin käyttäminen
  3. Monikkomuodot ja interpolointi
  4. Kielivalitsin ja käännösten lazy-lataus
← Takaisin: React Academy