Paras ratkaisu Next.js-sovellusten kansainvälistämiseen (i18n)
Haluatko laajentaa Next.js-sovellustasi uusille markkinoille? TacoTranslate tekee Next.js-projektisi lokalisoimisesta uskomattoman helppoa, jolloin voit tavoittaa maailmanlaajaisen yleisön ilman vaivaa.
Miksi valita TacoTranslate Next.js:lle?
- Saumaton integrointi: Suunniteltu erityisesti Next.js-sovelluksia varten, TacoTranslate integroituu vaivattomasti olemassa olevaan työnkulkuusi.
- Automaattinen merkkijonojen keruu: Ei enää JSON-tiedostojen manuaalista hallintaa. TacoTranslate kerää merkkijonot automaattisesti koodipohjastasi.
- Tekoälyn voimin tehdyt käännökset: Hyödynnä tekoälyn voimaa tarjotaksesi kontekstuaalisesti tarkkoja käännöksiä, jotka sopivat sovelluksesi sävyyn.
- Välitön kielituki: Lisää tuki uusille kielille yhdellä napsautuksella, jolloin sovelluksesi on saatavilla maailmanlaajuisesti.
Miten se toimii
Maailman globalisoituessa yhä enemmän on verkkokehittäjille entistä tärkeämpää rakentaa sovelluksia, jotka palvelevat eri maiden ja kulttuurien käyttäjiä. 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ä opetusohjelmassa tutustumme siihen, miten lisäät kansainvälistämisen React Next.js -sovellukseesi palvelinpuolen renderöinnillä. TL;DR: Katso koko esimerkki tästä.
Tämä opas koskee Next.js-sovelluksia, jotka käyttävät Pages Router.
Jos käytät App Router, tutustu sen sijaan tähän oppaaseen.
Vaihe 1: Asenna i18n-kirjasto
Kansainvälistämisen (i18n) toteuttamiseksi Next.js-sovelluksessasi valitsemme ensin i18n-kirjaston. Saatavilla on useita suosittuja kirjastoja, kuten next-intl. Tässä esimerkissä käytämme kuitenkin TacoTranslate.
TacoTranslate kääntää merkkijonosi automaattisesti mihin tahansa kieleen nykyaikaisen tekoälyn avulla ja vapauttaa sinut JSON-tiedostojen työläästä hallinnasta.
Asennetaan se terminaalissasi käyttämällä npm:
npm install tacotranslateVaihe 2: Luo ilmainen TacoTranslate-tili
Nyt kun olet asentanut moduulin, on aika luoda TacoTranslate-tilisi, käännösprojekti ja siihen liittyvät API-avaimet. Luo tili täältä. Se on ilmaista, eikä edellytä 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-avain on se, jota kutsumme public:ksi, ja read/write-avain on secret. Esimerkiksi voit lisätä ne projektisi juureen olevaan .env‑tiedostoon.
TACOTRANSLATE_PUBLIC_API_KEY=123456
TACOTRANSLATE_SECRET_API_KEY=789010Varmista, 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 fallback-lokaalikoodi. Tässä esimerkissä asetamme sen arvoksien(englanti).TACOTRANSLATE_ORIGIN: "Kansio", johon merkkijonosi tallennetaan, esimerkiksi verkkosivustosi URL-osoite. Lue lisää originista täältä.
TACOTRANSLATE_DEFAULT_LOCALE=en
TACOTRANSLATE_ORIGIN=your-website-url.comVaihe 3: TacoTranslaten määrittäminen
TacoTranslaten integroimiseksi sovellukseesi sinun täytyy luoda asiakas käyttämällä aiemmin annettuja API-avaimia. Esimerkiksi luo tiedosto nimeltä /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äärittelemme TACOTRANSLATE_API_KEY automaattisesti pian.
Clientin luominen erilliseen tiedostoon tekee sen myöhemmän uudelleenkäytön helpommaksi. Nyt, käyttäen mukautettua /pages/_app.tsx, lisäämme TacoTranslate providerin.
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ääritelmää yllä olevilla ominaisuuksilla ja koodilla.
Vaihe 4: Palvelinpuolen renderöinnin toteuttaminen
TacoTranslate mahdollistaa käännösten palvelinpuolen renderöinnin. Tämä parantaa käyttäjäkokemusta merkittävästi näyttämällä käännetyn sisällön välittömästi sen sijaan, että ensin näkyisi hetken 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.
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.
Tähän mennessä olemme määrittäneet Next.js-sovellukselle vain luettelon tuetuista kielistä. Seuraavaksi haemme käännökset kaikille sivuillesi. Tätä varten käytät joko getTacoTranslateStaticProps tai getTacoTranslateServerSideProps tarpeidesi mukaan.
Nämä funktiot ottavat kolme argumenttia: yhden Next.js Static Props Context -objektin, TacoTranslate-konfiguraation ja valinnaisia Next.js-ominaisuuksia. Huomaa, että revalidate getTacoTranslateStaticProps-ssa on oletusarvoisesti asetettu arvoksi 60, jotta käännöksesi pysyvät ajan tasalla.
Käyttääksesi jompaa kumpaa funktiota sivulla, oletetaan, että sinulla on sivutiedosto, kuten /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!"/>;
}Nyt voit käyttää 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, joilla API-avaimella on read/write -oikeudet, voivat luoda uusia käännettäviä merkkijonoja. Suosittelemme pitämään suljetun ja suojatun staging-ympäristön, 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, asiaankuulumattomia 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!