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 ఉపయోగించి మీ స్ట్రింగ్స్ను ఏ భాషకైనా స్వయంచాలకంగా అనువదిస్తుంది, మరియు JSON ఫైళ్ల కష్టసాధ్యమైన నిర్వహణ నుంచి మిమ్మల్ని విముక్తి చేస్తుంది.
ఇదిని మీ టెర్మినల్లో npm ఉపయోగించి ఇన్స్టాల్ చేద్దాం:
npm install tacotranslateStep 2: ఉచిత TacoTranslate ఖాతా సృష్టించండి
మాడ్యూల్ ఇన్స్టాల్ చేసుకున్న తర్వాత, ఇప్పుడు మీ TacoTranslate ఖాతా, ఒక అనువాద ప్రాజెక్టు మరియు సంబంధిత API కీలు సృష్టించాల్సిన సమయం వచ్చింది. ఇక్కడ ఖాతా సృష్టించండి. ఇది ఉచితం, మరియు క్రెడిట్ కార్డ్ జోడించాల్సిన అవసరం లేదు.
TacoTranslate అప్లికేషన్ UIలో ఒక ప్రాజెక్ట్ను సృష్టించి, దాని API కీస్ ట్యాబ్కి వెళ్లండి. ఒక read కీ మరియు ఒక read/write కీ సృష్టించండి. వాటిని మేము ఎన్విరాన్మెంట్ వేరియబుల్స్గా సేవ్ చేస్తాము. 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 లక్షణాలు. గమనించండి: getTacoTranslateStaticProps పై revalidate డిఫాల్ట్గా 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కి పైగా భాషలలోకి మరియు వాటినుంచి ఆటోమేటిక్గా, వేగంగా స్థానికీకరించగలదు. ఇప్పుడే ప్రారంభించండి!