TacoTranslate
/
DokumentaatioHinnoittelu
 
Artikkeli
04.5.

Paras ratkaisu kansainvälistämiseen (i18n) Next.js-sovelluksissa

Haluatko laajentaa Next.js-sovellustasi uusille markkinoille? TacoTranslate tekee Next.js-projektisi lokalisoimisesta uskomattoman helppoa, jolloin voit tavoittaa maailmanlaajuisen yleisön ilman vaivaa.

Miksi valita TacoTranslate Next.js:lle?

  • Saumaton integrointi: Suunniteltu erityisesti Next.js-sovelluksille, TacoTranslate integroituu vaivattomasti olemassa olevaan työnkulkuusi.
  • Automaattinen merkkijonojen keruu: Ei enää JSON-tiedostojen manuaalista hallintaa. TacoTranslate kerää merkkijonot automaattisesti koodipohjastasi.
  • Tekoälypohjaiset käännökset: Hyödynnä tekoälyn voimaa tuottaaksesi kontekstuaalisesti tarkkoja käännöksiä, jotka sopivat sovelluksesi sävyyn.
  • Välitön kielituki: Lisää tuki uusille kielille yhdellä napsautuksella, jolloin sovelluksesi on maailmanlaajuisesti käytettävissä.

Miten se toimii

Maailman globalisoituessa on yhä tärkeämpää, että verkkokehittäjät rakentavat sovelluksia, jotka pystyvät palvelemaan käyttäjiä eri maista ja kulttuureista. Yksi keskeisistä tavoista saavuttaa tämä on kansainvälistäminen (i18n), jonka avulla voit mukauttaa sovelluksesi eri kielille, valuutoille ja päivämäärämuodoille.

Tässä opetusohjeessa käymme läpi, miten lisäät kansainvälistämisen React Next.js -sovellukseesi käyttäen palvelinpuolen renderöintiä. TL;DR: Katso koko esimerkki täältä.

Tämä opas on tarkoitettu Next.js‑sovelluksille, jotka käyttävät Pages Router.
Jos käytät App Router, katso sen sijaan tämä opas.

Vaihe 1: Asenna i18n-kirjasto

Kansainvälistämisen toteuttamiseksi Next.js-sovellukseesi valitsemme ensin i18n-kirjaston. On olemassa useita suosittuja kirjastoja, mukaan lukien next-intl. Tässä esimerkissä kuitenkin käytämme TacoTranslate.

TacoTranslate kääntää merkkijonosi automaattisesti mihin tahansa kieleen huipputason tekoälyn avulla ja vapauttaa sinut JSON-tiedostojen työläästä hallinnasta.

Asennetaan se käyttämällä npm terminaalissasi:

npm install tacotranslate

Vaihe 2: Luo ilmainen TacoTranslate-tili

Nyt kun olet asentanut moduulin, on aika luoda TacoTranslate-tili, käännösprojekti ja niihin liittyvät API-avaimet. Luo tili täältä. Se on ilmaista, eikä vaadi luottokortin lisäämistä.

TacoTranslate-sovelluksen käyttöliittymässä luo projekti ja siirry sen API-avaimet-välilehdelle. Luo yksi read avain ja yksi read/write avain. Tallennamme ne ympäristömuuttujiin. read avainta kutsumme public:ksi ja read/write avainta kutsumme secret:ksi. Esimerkiksi voit lisätä ne projektisi juureen olevaan .env tiedostoon.

.env
TACOTRANSLATE_PUBLIC_API_KEY=123456
TACOTRANSLATE_SECRET_API_KEY=789010

Varmista, ettet koskaan vuoda salaista read/write API-avainta asiakaspuolen tuotantoympäristöihin.

Lisäämme myös kaksi muuta ympäristömuuttujaa: TACOTRANSLATE_DEFAULT_LOCALE ja TACOTRANSLATE_ORIGIN.

  • TACOTRANSLATE_DEFAULT_LOCALE: Oletusarvoinen varakielen tunnus. Tässä esimerkissä asetamme sen arvoon en (englanti).
  • TACOTRANSLATE_ORIGIN: Se "kansio", johon merkkijonosi tallennetaan, esimerkiksi verkkosivustosi URL-osoite. Lue lisätietoja originista täältä.
.env
TACOTRANSLATE_DEFAULT_LOCALE=en
TACOTRANSLATE_ORIGIN=your-website-url.com

Vaihe 3: TacoTranslate-palvelun käyttöönotto

Jotta voit integroida TacoTranslaten sovellukseesi, sinun täytyy luoda client käyttäen aiemmin annettuja API-avaimia. Esimerkiksi luo tiedosto nimeltä /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;

Määritämme TACOTRANSLATE_API_KEY automaattisesti pian.

Clientin luominen erilliseen tiedostoon tekee sen myöhemmän käytön helpommaksi. Nyt käyttäen mukautettua /pages/_app.tsx, lisäämme TacoTranslate providerin.

/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>
	);
}

Jos sinulla on jo mukautetut pageProps ja _app.tsx, laajenna määrittelyä yllä olevien ominaisuuksien ja koodin mukaisesti.

Vaihe 4: Palvelinpuolen renderöinnin toteuttaminen

TacoTranslate mahdollistaa käännösten palvelinpuolen renderöinnin. Tämä parantaa merkittävästi käyttäjäkokemusta, koska käännetty sisältö näytetään välittömästi sen sijaan, että ensin näkyisi kääntämätöntä sisältöä. Lisäksi voimme ohittaa asiakaspuolen verkkopyynnöt, koska meillä on jo kaikki tarvitsemamme käännökset.

Aloitamme luomalla tai muokkaamalla /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'),
	});
};

Muokkaa isProduction-tarkistusta vastaamaan asetuksiasi. Jos true, TacoTranslate näyttää julkisen API-avaimen. Jos olemme paikallisessa, testaus- tai staging-ympäristössä (isProduction is false), käytämme salaista read/write API-avainta varmistaaksemme, että uudet merkkijonot lähetetään käännöstä varten.

Toistaiseksi olemme määrittäneet Next.js-sovelluksellesi vain luettelon tuetuista kielistä. Seuraavaksi haemme käännökset kaikille sivuillesi. Tätä varten käytät vaatimustesi mukaan joko getTacoTranslateStaticProps tai getTacoTranslateServerSideProps.

Nämä funktiot ottavat kolme argumenttia: yhden Next.js Static Props Context -objektin, TacoTranslate-konfiguraation ja valinnaiset Next.js-ominaisuudet. Huomaa, että getTacoTranslateStaticPropsin revalidate on oletuksena asetettu arvoon 60, jotta käännöksesi pysyvät ajan tasalla.

Jos haluat käyttää jompaakumpaa funktiota sivulla, oletetaan, että sinulla on sivutiedosto, esimerkiksi /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!"/>;
}

Sinun pitäisi nyt pystyä käyttämään Translate komponenttia kääntääksesi merkkijonoja kaikissa React-komponenteissasi.

import {Translate} from 'tacotranslate/react';

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

Vaihe 5: Ota käyttöön ja testaa!

Olemme valmiit! Next.js-sovelluksesi käännetään nyt automaattisesti, kun lisäät merkkijonoja Translate -komponenttiin. Huomaa, että vain ympäristöt, joiden API-avaimella on read/write -oikeudet, pystyvät luomaan uusia käännettäviä merkkijonoja. Suosittelemme suljettua ja suojattua staging-ympäristöä, jossa voit testata tuotantosovellustasi tällaisella API-avaimella ja lisätä uusia merkkijonoja ennen julkaisua. Tämä estää ketään varastamasta salaista API-avaintasi ja mahdollisesti paisuttamasta käännösprojektiasi lisäämällä uusia, ei-liittyviä merkkijonoja.

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!

Tuote yritykseltä NattskiftetValmistettu Norjassa