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 tacotranslate
దశ 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
: డిఫాల్ట్ fallback లోకల్ కోడ్. ఈ ఉదాహరణలో ఇంగ్లీష్ కోసం దీన్నిen
గా సెట్ చేస్తాం.TACOTRANSLATE_ORIGIN
: మీ స్ట్రింగ్స్ నిల్వ చేయబడే “ఫోల్డర్”, ఉదాహరణకి మీ వెబ్సైట్ URL. ఇక్కడ Origins గురించి మరింత చదవండి.
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: డిప్లాయ్ చేసి పరీక్షించండి!
పూర్తయింది! మీ React అప్లికేషన్లో Translate
కంపోనెంట్లో మీరు ఏదైనా స్ట్రింగ్లు జోడించినప్పుడు అవి ఇప్పుడు స్వయంచాలకంగా అనువదించబడతాయి. గమనించండి: API కీలో read/write
అనుమతులు ఉన్న పర్యావరణాలే అనువాదాల కోసం కొత్త స్ట్రింగ్లను సృష్టించగలవు. ప్రొడక్షన్కు లైవ్కి వెళ్లే ముందు అలాంటి API కీతో మీ ప్రొడక్షన్ అప్లికేషన్ను పరీక్షించేందుకు మూసి, భద్రపరిచిన స్టేజింగ్ వాతావరణాన్ని ఉండటాన్ని మేము సిఫారసు చేస్తాము. ఇది ఎవరైనా ఎవరైనా మీ గోప్యమైన API కీని దొంగిలించుకోవడం నివారిస్తూ, కొత్త, సంబంధం లేని స్ట్రింగ్లు జోడించడం ద్వారా మీ అనువాద ప్రాజెక్ట్ను అనవసరంగా పెద్దదిగా అవ్వకుండా నిరోధిస్తుంది.
దయచేసి మా GitHub ప్రొఫైల్లో ఉన్న పూర్తి ఉదాహరణను చూడండి. అక్కడ, మీరు App Router ఉపయోగించి దీన్ని ఎలా చేయాలో ఒక ఉదాహరణను కూడా కనుగొంటారు! ఏదైనా సమస్యలు ఎదురైనా, సంకోచించకుండా మాకు సంప్రదించండి, మేము మీకు సహాయం చేయడానికి చాల ఆనందంగా ఉంటాం.
TacoTranslate మీ React అప్లికేషన్లను 75కి పైగా భాషలకు మరియు వాటినుండి స్వయంచాలకంగా త్వరగా స్థానీకరించడానికి వీలుగా చేస్తుంది. ఇప్పుడే ప్రారంభించండి!