Next.js ಅನ್ವಯಿಕೆಯಲ್ಲಿ, Pages Router ಅನ್ನು ಬಳಸುತ್ತಿದ್ದರೆ ಅಂತರರಾಷ್ಟ್ರೀಯೀಕರಣವನ್ನು ಹೇಗೆ ಅನುಷ್ಠಾನಗೊಳಿಸಬಹುದು?
ನಿಮ್ಮ React ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಹೆಚ್ಚು ಪ್ರವೇಶಸಾಧ್ಯವನ್ನಾಗಿಸಿ ಮತ್ತು ಅಂತರರಾಷ್ಟ್ರೀಯೀಕರಣ (i18n) ಮೂಲಕ ಹೊಸ ಮಾರುಕಟ್ಟೆಗಳನ್ನು ತಲುಪಿರಿ.
ಜಗತ್ತು ಹೆಚ್ಚು ಜಾಗತಿಕಗೊಳ್ಳುತ್ತಿರುವಂತೆ, 다양한 ದೇಶಗಳು ಮತ್ತು ಸಂಸ್ಕೃತಿಗಳ ಬಳಕೆದಾರರಿಗೆ ಅನುಗುಣವಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುವ ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ವೆಬ್ ಡೆವಲಪರ್ಗಳು ನಿರ್ಮಿಸುವುದು ಹೆಚ್ಚು ಮುಖ್ಯವಾಗಿದೆ. ಇದನ್ನು ಸಾಧಿಸುವ ಪ್ರಮುಖ ಮಾರ್ಗಗಳಲ್ಲಿ ಒಂದಾಗಿದೆ ಅಂತಾರಾಷ್ಟ್ರೀಯೀಕರಣ (i18n), ಇದು ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ವಿಭಿನ್ನ ಭಾಷೆಗಳು, ಕರೆನ್ಸಿಗಳು ಮತ್ತು ದಿನಾಂಕ ಸ್ವರೂಪಗಳಿಗೆ ಹೊಂದಿಸಿಕೊಳ್ಳಲು ಅನುಮತಿಸುತ್ತದೆ.
ಈ ಟ್ಯುಟೋರಿಯಲ್ನಲ್ಲಿ, ಸರ್ವರ್-ಸೈಡ್ ರೆಂಡರಿಂಗ್ನೊಂದಿಗೆ ನಿಮ್ಮ React Next.js ಅಪ್ಲಿಕೇಶನ್ಗೆ ಅಂತಾರಾಷ್ಟ್ರೀಯೀಕರಣವನ್ನು ಹೇಗೆ ಸೇರಿಸುವುದು ಎಂಬುದನ್ನು 우리는 ಪರಿಶೀಲಿಸೋಣ. TL;DR: ಇಲ್ಲಿ ಪೂರ್ಣ ಉದಾಹರಣೆಯನ್ನು ನೋಡಿ.
ಈ ಮಾರ್ಗದರ್ಶಿ Pages Router ಬಳಸುತ್ತಿರುವ Next.js ಅಪ್ಲಿಕೇಶನ್ಗಳಿಗಾಗಿ.
ನೀವು App Router ಬಳಸುತ್ತಿದ್ದರೆ, ದಯವಿಟ್ಟು ಬದಲಿಗೆ ಈ ಮಾರ್ಗದರ್ಶಿಯನ್ನು ನೋಡಿ.
ಹಂತ 1: i18n ಲೈಬ್ರರಿಯನ್ನು ಸ್ಥಾಪಿಸಿ
ನಿಮ್ಮ Next.js ಅಪ್ಲಿಕೇಶನ್ನಲ್ಲಿ ಅಂತರಾಷ್ಟ್ರೀಯೀಕರಣ (i18n) ಅನ್ನು ಅನುಷ್ಠಾನಗೊಳಿಸಲು, ಮೊದಲು ನಾವು ಒಂದು 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. ಮೂಲಗಳ ಬಗ್ಗೆ ಇನ್ನಷ್ಟು ಓದಿ.
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
ಅನ್ನು 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: ಡಿಪ್ಲಾಯ್ ಮಾಡಿ ಮತ್ತು ಪರೀಕ್ಷಿಸಿ!
ಮುಗಿಸಿಬಿಟ್ಟಿದ್ದೇವೆ! ನಿಮ್ಮ React ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಈಗ ನೀವು ಯಾವುದೇ ಸ್ಟ್ರಿಂಗ್ಗಳನ್ನು Translate
ಕಾಂಪೋನೆಂಟ್ಗೆ ಸೇರಿಸಿದಾಗ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಅನುವಾದಿಸಲಾಗುತ್ತದೆ. API ಕೀ ಮೇಲೆ read/write
ಅನುಮತಿಗಳಿರುವ ಪರಿಸರಗಳು ಮಾತ್ರ ಅನುವಾದಕ್ಕೆ ಹೊಸ ಸ್ಟ್ರಿಂಗ್ಗಳನ್ನು ರಚಿಸಬಲ್ಲವೆಂದು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ನಾವು ಶಿಫಾರಸು ಮಾಡುವುದು: ಇಂತಹ API ಕೀ ಬಳಸಿ ನಿಮ್ಮ ಪ್ರೊಡಕ್ಷನ್ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಪರೀಕ್ಷಿಸಲು ಮತ್ತು ಲೈವ್ಗೆ ಹೋಗುವ ಮೊದಲು ಹೊಸ ಸ್ಟ್ರಿಂಗ್ಗಳನ್ನು ಸೇರಿಸಲು ಮುಚ್ಚಲ್ಪಟ್ಟ ಮತ್ತು ಸುರಕ್ಷಿತ ಸ್ಟೇಜಿಂಗ್ ಪರಿಸರವನ್ನು ಹೊಂದಿಕೊಳ್ಳಿ. ಇದು ಯಾರನ್ನಾದರೂ ಯಾರನ್ನಾದರೂ ನಿಮ್ಮ ರಹಸ್ಯ API ಕೀ ಕಳವು ಮಾಡುವುದು ತಡೆಯುತ್ತದೆ, ಮತ್ತು ಸಂಬಂಧವಿಲ್ಲದ ಹೊಸ ಸ್ಟ್ರಿಂಗ್ಗಳನ್ನು ಸೇರಿಸುವ ಮೂಲಕ ನಿಮ್ಮ ಅನುವಾದ ಪ್ರಾಜೆಕ್ಟ್ ಅನ್ನು ಅನಗತ್ಯವಾಗಿ ದೊಡ್ಡದಾಗಿಸುವುದನ್ನು ತಡೆಯುತ್ತದೆ.
ನಮ್ಮ GitHub ಪ್ರೊಫೈಲ್ನಲ್ಲಿ ಸಂಪೂರ್ಣ ಉದಾಹರಣೆಯನ್ನು ಪರಿಶೀಲಿಸಿರಿ. ಅಲ್ಲಿ, ನೀವು ಇದನ್ನು App Router ಬಳಸಿ ಹೇಗೆ ಮಾಡುವುದು ಎಂಬುದರ ಒಂದು ಉದಾಹರಣೆಯನ್ನು ಕೂಡ ಕಾಣಬಹುದು! ಯಾವುದೇ ಸಮಸ್ಯೆ ಎದುರಾದರೆ, ದಯವಿಟ್ಟು ಸಂಪರ್ಕಿಸಿರಿ, ನಮ್ಮು ಸಹಾಯ ಮಾಡಲು ತುಂಬಾ ಸಂತೋಷಪಡುತ್ತೇವೆ.
TacoTranslate ನಿಮಗೆ ನಿಮ್ಮ React ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು 75ಕ್ಕಿಂತ ಹೆಚ್ಚು ಭಾಷೆಗಳಿಗೆ ಮತ್ತು ಅವುಗಳಿಂದ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ವೇಗವಾಗಿ ಸ್ಥಳೀಕರಿಸಲು ಸಾಧ್ಯವಾಗಿಸುತ್ತದೆ. ಇಂದೇ ಪ್ರಾರಂಭಿಸಿ!