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: డిఫాల్ట్ ఫాల్బ్యాక్ లోకేల్ కోడ్. ఈ ఉదాహరణలో, దాన్ని ఇంగ్లీష్ కోసం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కి పైగా భాషల్లోకి మరియు వాటి నుండి ఆటోమేటిగ్గా వేగంగా స్థానీయీకరించవచ్చు. ఇప్పుడే ప్రారంభించండి!