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 కంటే ఎక్కువ భాషలకు మరియు వాటి నుండి ఆటోమేటిక్గా త్వరగా స్థానీకరించడానికి అనుమతిస్తుంది. ఈ రోజు ప్రారంభించండి!