TacoTranslate
/
DokumentasiHarga
 
Artikel
04 Mei

Solusi terbaik untuk internasionalisasi (i18n) dalam aplikasi Next.js

Apakah Anda ingin memperluas aplikasi Next.js Anda ke pasar baru? TacoTranslate membuatnya sangat mudah untuk melokalkan proyek Next.js Anda, sehingga Anda dapat menjangkau audiens global tanpa kerepotan.

Mengapa memilih TacoTranslate untuk Next.js?

  • Integrasi Mulus: Dirancang khusus untuk aplikasi Next.js, TacoTranslate terintegrasi dengan mulus ke alur kerja Anda yang sudah ada.
  • Pengumpulan String Otomatis: Tidak perlu lagi mengelola file JSON secara manual. TacoTranslate secara otomatis mengumpulkan string dari basis kode Anda.
  • Terjemahan Berbasis AI: Manfaatkan kekuatan AI untuk menyediakan terjemahan yang akurat secara kontekstual dan sesuai dengan nada aplikasi Anda.
  • Dukungan Bahasa Instan: Tambahkan dukungan untuk bahasa baru hanya dengan satu klik, membuat aplikasi Anda dapat diakses secara global.

Cara kerjanya

Seiring dunia menjadi semakin terhubung secara global, menjadi semakin penting bagi pengembang web untuk membangun aplikasi yang dapat memenuhi kebutuhan pengguna dari berbagai negara dan budaya. Salah satu cara utama untuk mencapai ini adalah melalui internasionalisasi (i18n), yang memungkinkan Anda menyesuaikan aplikasi dengan berbagai bahasa, mata uang, dan format tanggal.

Dalam tutorial ini, kita akan menjelajahi cara menambahkan internasionalisasi ke aplikasi React Next.js Anda, dengan rendering di sisi server. TL;DR: Lihat contoh lengkap di sini.

Panduan ini untuk aplikasi Next.js yang menggunakan Pages Router.
Jika Anda menggunakan App Router, silakan lihat panduan ini sebagai gantinya.

Langkah 1: Pasang pustaka i18n

Untuk menerapkan internasionalisasi pada aplikasi Next.js Anda, kita akan terlebih dahulu memilih sebuah pustaka i18n. Ada beberapa pustaka populer, termasuk next-intl. Namun, dalam contoh ini, kita akan menggunakan TacoTranslate.

TacoTranslate secara otomatis menerjemahkan string Anda ke bahasa apa pun menggunakan AI mutakhir, dan membebaskan Anda dari pengelolaan file JSON yang membosankan.

Mari instal menggunakan npm di terminal Anda:

npm install tacotranslate

Langkah 2: Buat akun TacoTranslate gratis

Sekarang setelah modul terpasang, saatnya membuat akun TacoTranslate Anda, sebuah proyek terjemahan, dan kunci API terkait. Buat akun di sini. Gratis, dan tidak mengharuskan Anda menambahkan kartu kredit.

Di dalam antarmuka aplikasi TacoTranslate, buat sebuah proyek, dan buka tab API keys-nya. Buat satu read key, dan satu read/write key. Kami akan menyimpannya sebagai variabel lingkungan. Kunci read adalah yang kami sebut public dan kunci read/write adalah secret. Sebagai contoh, Anda bisa menambahkannya ke file .env di root proyek Anda.

.env
TACOTRANSLATE_PUBLIC_API_KEY=123456
TACOTRANSLATE_SECRET_API_KEY=789010

Pastikan untuk tidak pernah membocorkan kunci API rahasia read/write ke lingkungan produksi sisi klien.

Kami juga akan menambahkan dua variabel lingkungan lagi: TACOTRANSLATE_DEFAULT_LOCALE dan TACOTRANSLATE_ORIGIN.

  • TACOTRANSLATE_DEFAULT_LOCALE: Kode locale default sebagai cadangan. Dalam contoh ini, kita akan mengaturnya ke en untuk bahasa Inggris.
  • TACOTRANSLATE_ORIGIN: “folder” tempat teks Anda akan disimpan, seperti URL situs web Anda. Baca selengkapnya tentang origins di sini.
.env
TACOTRANSLATE_DEFAULT_LOCALE=en
TACOTRANSLATE_ORIGIN=your-website-url.com

Langkah 3: Menyiapkan TacoTranslate

Untuk mengintegrasikan TacoTranslate dengan aplikasi Anda, Anda perlu membuat klien menggunakan kunci API yang disebutkan sebelumnya. Misalnya, buat file bernama /tacotranslate-client.js.

/tacotranslate-client.js
const {default: createTacoTranslateClient} = require('tacotranslate');

const tacoTranslate = createTacoTranslateClient({
	apiKey:
		process.env.TACOTRANSLATE_SECRET_API_KEY ??
		process.env.TACOTRANSLATE_PUBLIC_API_KEY ??
		process.env.TACOTRANSLATE_API_KEY ??
		'',
	projectLocale: process.env.TACOTRANSLATE_DEFAULT_LOCALE ?? '',
});

module.exports = tacoTranslate;

Kami akan secara otomatis mendefinisikan TACOTRANSLATE_API_KEY sebentar lagi.

Membuat klien di file terpisah membuatnya lebih mudah digunakan kembali nanti. Sekarang, dengan menggunakan /pages/_app.tsx kustom, kita akan menambahkan penyedia TacoTranslate.

/pages/_app.tsx
import React from 'react';
import {type AppProps} from 'next/app';
import {type Origin, type Locale, type Localizations} from 'tacotranslate';
import TacoTranslate from 'tacotranslate/react';
import TacoTranslateHead from 'tacotranslate/next/head';
import tacoTranslate from '../tacotranslate-client';

type PageProperties = {
	origin: Origin;
	locale: Locale;
	locales: Locale[];
	localizations: Localizations;
};

export default function App({Component, pageProps}: AppProps<PageProperties>) {
	const {origin, locale, locales, localizations} = pageProps;

	return (
		<TacoTranslate
			client={tacoTranslate}
			origin={origin}
			locale={locale}
			localizations={localizations}
		>
			<TacoTranslateHead rootUrl="https://your-website.com" locales={locales} />
			<Component {...pageProps} />
		</TacoTranslate>
	);
}

Jika Anda sudah memiliki pageProps dan _app.tsx, silakan perluas definisi tersebut dengan properti dan kode yang disebutkan di atas.

Langkah 4: Menerapkan rendering sisi server

TacoTranslate mendukung rendering di sisi server untuk terjemahan Anda. Hal ini sangat meningkatkan pengalaman pengguna dengan menampilkan konten yang sudah diterjemahkan secara langsung, alih-alih menampilkan sekilas konten yang belum diterjemahkan. Selain itu, kita dapat menghindari permintaan jaringan di sisi klien, karena kita sudah memiliki semua terjemahan yang diperlukan.

Kita akan mulai dengan membuat atau memodifikasi /next.config.js.

/next.config.js
const withTacoTranslate = require('tacotranslate/next/config').default;
const tacoTranslateClient = require('./tacotranslate-client');

module.exports = async () => {
	const config = {};

	return withTacoTranslate(config, {
		client: tacoTranslateClient,
		isProduction:
			process.env.TACOTRANSLATE_ENV === 'production' ||
			process.env.VERCEL_ENV === 'production' ||
			(!(process.env.TACOTRANSLATE_ENV || process.env.VERCEL_ENV) &&
				process.env.NODE_ENV === 'production'),
	});
};

Sesuaikan pemeriksaan isProduction dengan pengaturan Anda. Jika true, TacoTranslate akan menampilkan kunci API publik. Jika kita berada di lingkungan lokal, pengujian, atau staging (isProduction is false), kita akan menggunakan kunci API rahasia read/write untuk memastikan string baru dikirim untuk diterjemahkan.

Sampai sekarang, kita hanya menyiapkan aplikasi Next.js dengan daftar bahasa yang didukung. Hal berikutnya yang akan kita lakukan adalah mengambil terjemahan untuk semua halaman Anda. Untuk melakukannya, Anda akan menggunakan salah satu getTacoTranslateStaticProps atau getTacoTranslateServerSideProps sesuai kebutuhan Anda.

Fungsi-fungsi ini menerima tiga argumen: Satu objek Next.js Static Props Context, konfigurasi untuk TacoTranslate, dan properti Next.js opsional. Perlu diperhatikan bahwa revalidate pada getTacoTranslateStaticProps disetel ke 60 secara default, sehingga terjemahan Anda tetap mutakhir.

Untuk menggunakan salah satu fungsi di sebuah halaman, anggaplah Anda memiliki berkas halaman seperti /pages/hello-world.tsx.

/pages/hello-world.tsx
import {Translate} from 'tacotranslate/react';
import getTacoTranslateStaticProps from 'tacotranslate/next/get-static-props';
import tacoTranslateClient from '../tacotranslate-client';

export async function getStaticProps(context) {
	return getTacoTranslateStaticProps(context, {client: tacoTranslateClient});
}

export default function Page() {
	return <Translate string="Hello, world!"/>;
}

Anda sekarang seharusnya dapat menggunakan komponen Translate untuk menerjemahkan teks di semua komponen React Anda.

import {Translate} from 'tacotranslate/react';

function Component() {
	return <Translate string="Hello, world!"/>
}

Langkah 5: Terapkan dan uji!

Selesai! Aplikasi Next.js Anda sekarang akan diterjemahkan secara otomatis ketika Anda menambahkan teks apa pun ke komponen Translate. Perlu dicatat bahwa hanya lingkungan dengan izin read/write pada kunci API yang akan dapat membuat teks baru untuk diterjemahkan. Kami menyarankan memiliki lingkungan staging yang tertutup dan aman di mana Anda dapat menguji aplikasi produksi Anda dengan kunci API seperti itu, menambahkan teks baru sebelum ditayangkan. Ini akan mencegah siapa pun mencuri kunci API rahasia Anda, dan berpotensi membuat proyek terjemahan Anda membengkak dengan menambahkan teks baru yang tidak terkait.

Be sure to check out the complete example over at our GitHub profile. There, you’ll also find an example of how to do this using the App Router! If you encounter any problems, feel free to reach out, and we’ll be more than happy to help.

TacoTranslate lets you automatically localize your React applications quickly to and from over 75 languages. Get started today!

Sebuah produk dari NattskiftetDibuat di Norwegia