Next.js అప్లికేషన్లో Pages Router ఉపయోగిస్తున్నప్పుడు అంతర్జాతీయీకరణను ఎలా అమలు చేయాలి
మీ React అప్లికేషన్ను మరింత అందుబాటులో ఉంచి, అంతర్జాతీయీకరణ (i18n) ద్వారా కొత్త మార్కెట్లను చేరుకోండి.
ప్రపంచం మరింత గ్లోబలైగానే, వివిధ దేశాలు మరియు సంస్కృతుల వినియోగదారులకు అనుగుణంగా అప్లికేషన్లు రూపొందించడం వెబ్ డెవలపర్లకు మరింత కీలకంగా మారుతుంది. దీనిని సాధించడానికి ప్రధాన మార్గాల్లో ఒకటి అంతర్జాతీయీకరణ (i18n), ఇది మీ అప్లికేషన్ను వివిధ భాషలు, కరెన్సీలు మరియు తేదీ ఫార్మాట్లకు అనుగుణంగా మార్చుకోవడానికి అనుమతిస్తుంది.
ఈ పాఠంలో, సర్వర్-సైడ్ రెండరింగ్తో మీ React Next.js అప్లికేషన్లో అంతర్జాతీయీకరణను ఎలా జోడించాలో మనం పరిశీలిస్తాం. TL;DR: పూర్తి ఉదాహరణను ఇక్కడ చూడండి.
ఈ మార్గదర్శకం Pages Router ఉపయోగిస్తున్న Next.js అప్లికేషన్లకు సంబంధించినది.
మీరు App Router ఉపయోగిస్తున్నట్లయితే, దయచేసి దీని బదులుగా ఈ మార్గదర్శకాన్ని చూడండి.
దశ 1: i18n లైబ్రరీని ఇన్స్టాల్ చేయండి
మీ Next.js అప్లికేషన్లో అంతర్జాతీయీకరణను అమలు చేయడానికి, మేము మొదట ఒక i18n లైబ్రరీని ఎంచుకుంటాం. కొన్ని ప్రాచుర్యమైన లైబ్రరీలు ఉన్నాయి, వాటిలో next-intl. అయినప్పటికీ, ఈ ఉదాహరణలో మేము TacoTranslate ను ఉపయోగించబోతున్నాం.
TacoTranslate ఆధునిక AIను ఉపయోగించి మీ స్ట్రింగ్స్ను ANY భాషకు ఆటోమేటిగ్గా అనువదిస్తుంది, మరియు JSON ఫైళ్ల నిర్వహణ అనే విసుగుతో కూడిన పనిని మీ నుండి తీసుకుంటుంది.
దీనిని మీ టెర్మినల్లో npm ఉపయోగించి ఇన్స్టాల్ చేయుకుందాం:
npm install tacotranslateదశ 2: ఉచిత TacoTranslate ఖాతాను సృష్టించండి
మోడ్యూల్ ఇన్స్టాల్ చేసుకున్న తర్వాత, ఇప్పుడు మీ TacoTranslate ఖాతా, ఒక అనువాద ప్రాజెక్ట్ మరియు సంబంధిత API కీలు సృష్టించాల్సిన సమయం వచ్చింది. ఇక్కడ ఖాతా సృష్టించండి. ఇది ఉచితం, మరియు మీకు క్రెడిట్ కార్డు జోడించాల్సిన అవసరం లేదు.
TacoTranslate అప్లికేషన్ UIలో ఒక ప్రాజెక్ట్ సృష్టించి దాని API keys టాబ్కి వెళ్లండి. ఒక read కీ మరియు ఒక read/write కీ సృష్టించండి. మేము వాటిని environment variablesగా సేవ్ చేస్తాము. read కీని మేము public అని పిలుస్తాము మరియు read/write కీని secret అని పిలుస్తాము. ఉదాహరణకు, మీరు వాటిని మీ ప్రాజెక్ట్ మూలంలో ఉన్న .env ఫైల్లో జోడించవచ్చు.
TACOTRANSLATE_PUBLIC_API_KEY=123456
TACOTRANSLATE_SECRET_API_KEY=789010గోప్యమైన read/write API కీని క్లయింట్-సైడ్ ప్రొడక్షన్ వాతావరణాలలో ఎప్పుడూ లీక్ చేయకూడదు.
మేము ఇంకా రెండు ఎన్విరాన్మెంట్ వేరియబుల్స్ కూడా జోడిస్తాము: TACOTRANSLATE_DEFAULT_LOCALE మరియు TACOTRANSLATE_ORIGIN.
TACOTRANSLATE_DEFAULT_LOCALE: డిఫాల్ట్ ఫాల్బ్యాక్ లోకేల్ కోడ్. ఈ ఉదాహరణలో, మేము దీన్నిen(ఇంగ్లీష్) గా సెట్ చేస్తాము.TACOTRANSLATE_ORIGIN: మీ స్ట్రింగ్స్ నిల్వ చేయబడే “ఫోల్డర్”, ఉదాహరణకు మీ వెబ్సైట్ యొక్క URL. మూలాల గురించి ఇక్కడ మరింత చదవండి.
TACOTRANSLATE_DEFAULT_LOCALE=en
TACOTRANSLATE_ORIGIN=your-website-url.comదశ 3: TacoTranslateను సెట్ చేయడం
TacoTranslateను మీ అప్లికేషన్లోకి సమ్మిళితం చేయడానికి, మీరు ముందుగా పొందిన API కీలు ఉపయోగించి ఒక క్లయింట్ను సృష్టించాల్సి ఉంటుంది. ఉదాహరణకు, /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;మేము త్వరలో TACOTRANSLATE_API_KEYను స్వయంచాలకంగా నిర్వచిస్తాము.
క్లయింట్ను వేరే ఫైల్లో ఉంచితే తర్వాత మళ్లీ ఉపయోగించడం సులభమవుతుంది. ఇప్పుడు, ఒక కస్టమ్ /pages/_app.tsxను ఉపయోగించి, మేము TacoTranslate ప్రొవైడర్ను జోడిస్తాము.
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>
);
}మీకు ఇప్పటికే అనుకూలీకరించిన pageProps మరియు _app.tsx ఉంటే, దయచేసి పైన ఇచ్చిన ప్రాపర్టీలు మరియు కోడ్ను నిర్వచనంలో చేర్చండి.
దశ 4: సర్వర్-సైడ్ రెండరింగ్ను అమలు చేయడం
TacoTranslate మీ అనువాదాల కోసం సర్వర్-సైడ్ రెండరింగ్ను అనుమతిస్తుంది. ఇది వినియోగదారుల అనుభవాన్ని గణనీయంగా మెరుగుపరుస్తుంది, ఎందుకంటే ముందుగా అనువదించని కంటెంట్ ఒక చిన్న ఫ్లాష్లా కనిపించే బదులుగా అనువదించబడిన సమాచారాన్ని తక్షణం చూపిస్తుంది. అదనంగా, అవసరమైన అన్ని అనువాదాలు మన వద్ద ఇప్పటికే ఉన్నందున క్లయింట్-సైడ్ నుంచి నెట్వర్క్ అభ్యర్థనలను దాటవేయవచ్చు.
మనం /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'),
});
};మీ సెటప్కు అనుగుణంగా isProduction చెక్ను మార్చండి. true అయితే, TacoTranslate పబ్లిక్ API కీని ప్రదర్శిస్తుంది. మనం స్థానిక, టెస్ట్ లేదా స్టేజింగ్ వాతావరణంలో ఉన్నప్పుడు (isProduction is false) కొత్త స్ట్రింగ్లు అనువాదానికి పంపబడేటట్లు నిర్ధారించేందుకు మేము రహస్య read/write API కీని ఉపయోగిస్తాము.
ఇప్పటి వరకు, మేము Next.js అప్లికేషన్ను మద్దతు ఉన్న భాషల జాబితాతో మాత్రమే సెటప్ చేసాము. తదుపరి, మేము మీ అన్ని పేజీల కోసం అనువాదాలను పొందుతాము. అది చేయడానికి, మీ అవసరాల ఆధారంగా మీరు getTacoTranslateStaticProps లేదా getTacoTranslateServerSideProps ఉపయోగిస్తారు.
ఈ ఫంక్షన్లు మూడు ఆర్గ్యుమెంట్లను తీసుకుంటాయి: ఒక Next.js Static Props Context ఆబ్జెక్ట్, TacoTranslate కోసం కాన్ఫిగరేషన్, మరియు ఐచ్ఛిక Next.js ప్రాపర్టీలు. గమనించండి: revalidate on getTacoTranslateStaticProps డిఫాల్ట్గా 60 గా సెట్ చేయబడింది, కాబట్టి మీ అనువాదాలు అప్డేట్గా ఉంటాయి.
పేజీలో ఏ ఫంక్షన్ను ఉపయోగించాలంటే, ఉదాహరణకు మీ దగ్గర ఇలా ఒక పేజీ ఫైల్ ఉందని అనుకుందాం: /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!"/>;
}ఇప్పుడు మీరు మీ అన్ని React కంపోనెంట్లలోని స్ట్రింగులను అనువదించడానికి Translate కంపోనెంట్ను ఉపయోగించగలరు.
import {Translate} from 'tacotranslate/react';
function Component() {
return <Translate string="Hello, world!"/>
}దశ 5: డిప్లాయ్ చేయండి మరియు పరీక్షించండి!
మేము పూర్తి చేసాము! మీరు Translate కంపోనెంట్లో ఏవైనా స్ట్రింగ్లు జోడించినప్పుడే, మీ React అప్లికేషన్ ఇప్పుడు స్వయంచాలకంగా అనువదించబడుతుంది. గమనించండి: API కీపై read/write అనుమతులు ఉన్న వాతావరణాలే అనువదించవలసిన కొత్త స్ట్రింగ్లను సృష్టించగలవు. లైవ్కు వెళ్లేముందు కొత్త స్ట్రింగ్లను జోడిస్తూ, ఆ రకమైన API కీతో మీ ప్రొడక్షన్ అప్లికేషన్ను పరీక్షించడానికి బంద్ చేసి, సురక్షితమైన స్టేజింగ్ వాతావరణం కలిగి ఉండాలని మేము సిఫార్సు చేస్తాము. ఇది ఎవరైనా ఎవరైనా మీ గుప్త API కీని దొంగిలించకుండా నివారిస్తుంది, అలాగే కొత్త, అసంబంధిత స్ట్రింగ్లను జోడించడం ద్వారా మీ అనువాద ప్రాజెక్ట్ను అవసరంగా పెద్దదిగా మారకుండా కూడా నివారిస్తుంది.
మా GitHub ప్రొఫైలులోని పూర్తి ఉదాహరణను తప్పక చూడండి. అక్కడ, మీరు App Router ఉపయోగించి దీన్ని ఎలా చేయాలో ఒక ఉదాహరణను కూడా కనుగొనవచ్చు! ఎలాంటి సమస్యలు ఎదురైనా, దయచేసి మాకు సంప్రదించండి, మేము సంతోషంగా సహాయం చేస్తాము.
TacoTranslate మీ React అప్లికేషన్లను 75కిపైగా భాషలకు మరియు వాటినుండి స్వయంచాలకంగా త్వరగా స్థానీయీకరించగలదు. ఇప్పుడే ప్రారంభించండి!