React Academy · Lekcja

Konfiguracja react-i18next

Instalacja i konfiguracja i18next z wykrywaniem języka oraz dzieleniem przestrzeni nazw.

Lekcja 1 z 413 kroki

Konfiguracja react-i18next to bezpłatna lekcja React Academy na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej React Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs React Academy zawiera 4 lekcji w sumie.

Witamy

W tej lekcji zainstalują i skonfigurują Państwo react-i18next wraz z wykrywaniem języka i podziałem na przestrzenie nazw, aby dodać obsługę wielu języków do aplikacji React.

Instalowanie zależności

Należy zainstalować i18next i react-i18next. Opcjonalnie można dodać i18next-browser-languagedetector do automatycznego wykrywania ustawień regionalnych oraz i18next-http-backend do ładowania tłumaczeń przez HTTP.
npm install i18next react-i18next
npm install i18next-browser-languagedetector i18next-http-backend

Tworzenie i18n.js

Należy utworzyć plik `i18n.js`, który inicjalizuje i18next. Wywołanie `i18n.use(...)` służy do dodawania wtyczek, a `.init({...})` — do przekazania konfiguracji.
import i18n from 'i18next';
import { initReactI18next } from 'react-i18next';
import LanguageDetector from 'i18next-browser-languagedetector';

i18n
  .use(LanguageDetector)
  .use(initReactI18next)
  .init({
    fallbackLng: 'en',
    resources: { en: { translation: {} }, tr: { translation: {} } },
    interpolation: { escapeValue: false },
  });

export default i18n;

Importowanie i18n w main.jsx

Plik inicjalizujący i18n należy zaimportować PRZED wyrenderowaniem aplikacji. Dzięki temu i18n będzie gotowe, zanim dowolny komponent wywoła useTranslation.
import './i18n'; // must be before App
import { StrictMode } from 'react';
import { createRoot } from 'react-dom/client';
import App from './App';

createRoot(document.getElementById('root')).render(
  <StrictMode><App /></StrictMode>
);

Przestrzenie nazw

Przestrzenie nazw dzielą tłumaczenia na logiczne grupy (np. „common”, „auth”, „dashboard”). Każda przestrzeń nazw jest osobnym plikiem JSON ładowanym na żądanie, co zmniejsza początkowy rozmiar pakietu.
resources: {
  en: {
    common: { save: 'Save', cancel: 'Cancel' },
    auth: { login: 'Log in', logout: 'Log out' },
  }
}

Wykrywanie języka

Wtyczka LanguageDetector odczytuje preferowany język użytkownika z przeglądarki (navigator.language), localStorage lub parametrów zapytania URL. Automatycznie ustawia aktywny język przy pierwszym ładowaniu.

Ładowanie tłumaczeń z folderu public

Należy przechowywać tłumaczenia jako pliki JSON w `public/locales/{lang}/{ns}.json`. Wtyczkę backendu należy skonfigurować tak, aby ładowała je w czasie działania, dzięki czemu dodanie nowego języka nie wymaga zmian w kodzie.
import Backend from 'i18next-http-backend';

i18n.use(Backend).init({
  backend: {
    loadPath: '/locales/{{lng}}/{{ns}}.json',
  },
});

I18nextProvider (opcjonalnie)

I18nextProvider opakowuje aplikację, aby udostępnić instancję i18n za pośrednictwem kontekstu. W react-i18next v11+ i przy użyciu wtyczki initReactI18next jest to opcjonalne — hook odczytuje globalną instancję i18n bezpośrednio.

Sprawdzanie inicjalizacji w komponentach

i18next ładuje tłumaczenia asynchronicznie. Należy użyć właściwości `ready` z useTranslation albo sprawdzić `i18n.isInitialized` przed wyrenderowaniem tekstu, aby uniknąć wyświetlania kluczy tłumaczeń.
const { t, ready } = useTranslation();
if (!ready) return null;

DevTools i obsługa brakujących kluczy

W środowisku deweloperskim należy ustawić `saveMissing: true`, aby zapisywać brakujące klucze tłumaczeń w konsoli. Ułatwia to szybkie znajdowanie nieprzetłumaczonych ciągów tekstowych.
i18n.init({ saveMissing: true,
  missingKeyHandler: (lng, ns, key) => console.warn('Missing:', key) });

Szybkie sprawdzenie

Dlaczego plik inicjalizujący i18n trzeba zaimportować przed wyrenderowaniem aplikacji React?

Podsumowanie

Należy zainstalować i18next + react-i18next, utworzyć i18n.js z wtyczkami i konfiguracją init, zaimportować go przed renderowaniem oraz uporządkować tłumaczenia w przestrzeniach nazw. Do ładowania plików tłumaczeń w czasie działania należy użyć http-backend.

Następnie

Następna lekcja: **Używanie hooka useTranslation** — zastąpią Państwo wpisane na stałe ciągi znaków wywołaniami t() i uporządkują pliki tłumaczeń JSON.
Bezpłatny start

Ucz się React dzięki korepetycjom AI — za darmo

Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.

Kursy
88
Lekcje
324

Często zadawane pytania

Czy lekcja „Konfiguracja react-i18next” jest bezpłatna?

Tak — pełny tekst „Konfiguracja react-i18next” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu React Academy, przejdź na CoddyKit PRO. Kurs React Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Konfiguracja react-i18next”?

Instalacja i konfiguracja i18next z wykrywaniem języka oraz dzieleniem przestrzeni nazw. Ćwiczysz React Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć React Academy?

Nie wymagamy żadnego doświadczenia. React Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.

Ile czasu zajmuje lekcja „Konfiguracja react-i18next”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji React Academy?

Tak. Każda lekcja React Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Konfiguracja react-i18next
  2. Używanie hooka useTranslation
  3. Liczba mnoga i interpolacja
  4. Przełącznik języka i leniwe ładowanie tłumaczeń
← Powrót do React Academy