0Pricing
React Academy · Pelajaran

Menggunakan Hook useTranslation

Ganti string yang ditulis langsung dengan pemanggilan t() dan tata file JSON terjemahan.

Menggunakan Hook useTranslation adalah pelajaran React Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar React Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus React Academy mencakup 4 pelajaran total.

Selamat Datang

Dalam pelajaran ini, Anda akan menggunakan fungsi useTranslation untuk mengakses fungsi t(), menerjemahkan teks dalam komponen, dan menata berkas JSON terjemahan berdasarkan ruang nama.

Fungsi useTranslation

Panggil useTranslation() di dalam komponen untuk mendapatkan fungsi terjemahan `t` dan instans `i18n`. Berikan nama ruang nama jika Anda menggunakan terjemahan dengan ruang nama.
import { useTranslation } from 'react-i18next';

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

Kunci Terjemahan Dasar

Buat satu berkas JSON untuk setiap bahasa dan ruang nama. Kunci berupa teks yang dapat diakses dengan notasi titik. Kunci datar bersifat sederhana, sedangkan kunci bertingkat menggunakan notasi titik.
// public/locales/en/common.json
{
  "app_title": "My App",
  "nav": {
    "home": "Home",
    "about": "About"
  }
}

Kunci dengan Notasi Titik

Akses kunci bertingkat dengan notasi titik dalam fungsi t(): `t('nav.home')` membaca `nav -> home` dari JSON.
const { t } = useTranslation('common');
return <a href="/">{t('nav.home')}</a>;

Ruang Nama Bawaan

Konfigurasikan `defaultNS` dalam inisialisasi i18n agar Anda dapat memanggil useTranslation() tanpa argumen dan kunci secara otomatis mengarah ke ruang nama bawaan.
i18n.init({ defaultNS: 'common', ... });

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

Mengakses Beberapa Ruang Nama

Berikan array ke useTranslation untuk mengakses beberapa ruang nama. Awali kunci dengan nama ruang nama, lalu tanda titik dua.
const { t } = useTranslation(['common', 'auth']);

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

Komponen Trans untuk Konten JSX

Jika teks terjemahan berisi HTML atau komponen React, gunakan komponen Trans. Komponen ini mendukung placeholder yang dipetakan ke komponen React.
import { Trans } from 'react-i18next';

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

Struktur Berkas Terjemahan

Tata berkas JSON sebagai `public/locales/{lang}/{ns}.json`. Gunakan kunci yang bermakna dan kelompokkan berdasarkan fitur. Hindari kunci yang bertingkat terlalu dalam — biasanya 2 tingkat sudah cukup.
public/
  locales/
    en/
      common.json
      auth.json
      dashboard.json
    tr/
      common.json
      auth.json

Mengubah Bahasa Saat Aplikasi Berjalan

Gunakan `i18n.changeLanguage(lng)` untuk mengganti bahasa aktif secara terprogram. Komponen React yang menggunakan useTranslation akan dirender ulang secara otomatis.
const { i18n } = useTranslation();

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

Mendeteksi Bahasa Aktif

Baca `i18n.language` untuk mendapatkan lokal aktif saat ini. Gunakan nilai tersebut untuk menampilkan ikon bendera atau menyorot tombol bahasa yang sedang aktif.
const { i18n } = useTranslation();
return <p>Current lang: {i18n.language}</p>;

Pemeriksaan Singkat

Bagaimana cara mengakses kunci terjemahan bertingkat 'nav.home' dari ruang nama 'common'?

Ringkasan

useTranslation memberi Anda fungsi t(). Tata kunci dalam berkas JSON ruang nama. Gunakan notasi titik untuk kunci bertingkat. Ganti bahasa dengan i18n.changeLanguage. Gunakan komponen Trans untuk teks yang berisi JSX.

Selanjutnya

Pelajaran berikutnya: **Bentuk Jamak dan Interpolasi** — Anda akan menangani bentuk jamak berdasarkan jumlah dan menyisipkan nilai dinamis ke dalam teks terjemahan.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Menggunakan Hook useTranslation” gratis?

Ya — teks lengkap “Menggunakan Hook useTranslation” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus React Academy, upgrade ke CoddyKit PRO. Kursus React Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Menggunakan Hook useTranslation”?

Ganti string yang ditulis langsung dengan pemanggilan t() dan tata file JSON terjemahan. Kamu berlatih React Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai React Academy?

Tidak diperlukan pengalaman sebelumnya. React Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.

Berapa lama pelajaran “Menggunakan Hook useTranslation” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran React Academy ini?

Ya. Setiap pelajaran React Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Menyiapkan react-i18next
  2. Menggunakan Hook useTranslation
  3. Bentuk Jamak & Interpolasi
  4. Pengalih Bahasa & Pemuatan Terjemahan Malas
← Kembali ke React Academy