ಜಾಗತಿಕ ಪ್ರೇಕ್ಷಕರನ್ನು ತಲುಪಲು ನಿಮ್ಮ Next.js ಅಪ್ಲಿಕೇಶನ್ಗಳಲ್ಲಿ ಅಂತರಾಷ್ಟ್ರೀಕರಣವನ್ನು (i18n) ಹೇಗೆ ಕಾರ್ಯಗತಗೊಳಿಸಬೇಕು ಎಂಬುದನ್ನು ತಿಳಿಯಿರಿ. ರೂಟಿಂಗ್, ವಿಷಯ ಅನುವಾದ ಮತ್ತು ಉತ್ತಮ ಅಭ್ಯಾಸಗಳನ್ನು ಒಳಗೊಂಡಿದೆ.
Next.js ಅಂತರಾಷ್ಟ್ರೀಕರಣ: ಜಾಗತಿಕ ಪ್ರೇಕ್ಷಕರಿಗಾಗಿ ಬಹು-ಭಾಷಾ ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ನಿರ್ಮಿಸುವುದು
ಇಂದಿನ ಪರಸ್ಪರ ಸಂಪರ್ಕಿತ ಜಗತ್ತಿನಲ್ಲಿ, ಜಾಗತಿಕ ಪ್ರೇಕ್ಷಕರಿಗೆ ಸೇವೆ ಸಲ್ಲಿಸುವ ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ನಿರ್ಮಿಸುವುದು ಇನ್ನು ಮುಂದೆ ಐಷಾರಾಮಿಯಾಗಿಲ್ಲ – ಅದೊಂದು ಅಗತ್ಯವಾಗಿದೆ. Next.js, ಒಂದು ಶಕ್ತಿಯುತ ರಿಯಾಕ್ಟ್ ಫ್ರೇಮ್ವರ್ಕ್, ಅಂತರಾಷ್ಟ್ರೀಕರಣವನ್ನು (i18n) ಕಾರ್ಯಗತಗೊಳಿಸಲು ದೃಢವಾದ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ, ಇದು ವಿಶ್ವಾದ್ಯಂತ ಬಳಕೆದಾರರಿಗೆ ಸ್ಥಳೀಯ ಅನುಭವವನ್ನು ನೀಡುವ ಬಹು-ಭಾಷಾ ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ರಚಿಸಲು ನಿಮಗೆ ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. ಈ ಸಮಗ್ರ ಮಾರ್ಗದರ್ಶಿ ಅಂತರಾಷ್ಟ್ರೀಕೃತ Next.js ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ನಿರ್ಮಿಸಲು ಅಗತ್ಯವಾದ ಪರಿಕಲ್ಪನೆಗಳು, ತಂತ್ರಗಳು ಮತ್ತು ಉತ್ತಮ ಅಭ್ಯಾಸಗಳ ಮೂಲಕ ನಿಮ್ಮನ್ನು ಕರೆದೊಯ್ಯುತ್ತದೆ.
ಅಂತರಾಷ್ಟ್ರೀಕರಣ ಮತ್ತು ಸ್ಥಳೀಕರಣವನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು
Next.js i18n ನ ನಿರ್ದಿಷ್ಟತೆಗಳಿಗೆ ಧುಮುಕುವ ಮೊದಲು, ಪ್ರಮುಖ ಪದಗಳನ್ನು ಸ್ಪಷ್ಟಪಡಿಸೋಣ:
- ಅಂತರಾಷ್ಟ್ರೀಕರಣ (i18n): ಇಂಜಿನಿಯರಿಂಗ್ ಬದಲಾವಣೆಗಳ ಅಗತ್ಯವಿಲ್ಲದೆ ವಿವಿಧ ಭಾಷೆಗಳು ಮತ್ತು ಪ್ರದೇಶಗಳಿಗೆ ಸುಲಭವಾಗಿ ಅಳವಡಿಸಿಕೊಳ್ಳಬಹುದಾದ ರೀತಿಯಲ್ಲಿ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ವಿನ್ಯಾಸಗೊಳಿಸುವ ಮತ್ತು ಅಭಿವೃದ್ಧಿಪಡಿಸುವ ಪ್ರಕ್ರಿಯೆ. ಇದು ಪಠ್ಯ, ಫಾರ್ಮ್ಯಾಟಿಂಗ್ ಮತ್ತು ಇತರ ಸ್ಥಳ-ನಿರ್ದಿಷ್ಟ ಅಂಶಗಳನ್ನು ಅಮೂರ್ತಗೊಳಿಸುವುದನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ.
- ಸ್ಥಳೀಕರಣ (l10n): ನಿರ್ದಿಷ್ಟ ಭಾಷೆ ಮತ್ತು ಪ್ರದೇಶಕ್ಕೆ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಅಳವಡಿಸುವ ಪ್ರಕ್ರಿಯೆ. ಇದು ಪಠ್ಯವನ್ನು ಅನುವಾದಿಸುವುದು, ದಿನಾಂಕ ಮತ್ತು ಸಮಯದ ಸ್ವರೂಪಗಳನ್ನು ಸರಿಹೊಂದಿಸುವುದು, ಕರೆನ್ಸಿ ಚಿಹ್ನೆಗಳು ಮತ್ತು ಹೆಚ್ಚಿನದನ್ನು ಒಳಗೊಂಡಿದೆ.
ಮೂಲಭೂತವಾಗಿ, i18n ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಸ್ಥಳೀಕರಣಕ್ಕಾಗಿ ಸಿದ್ಧಪಡಿಸುತ್ತದೆ. ಕೋರ್ ಕೋಡ್ನಿಂದ ಭಾಷೆ-ಅವಲಂಬಿತ ಅಂಶಗಳನ್ನು ಬೇರ್ಪಡಿಸುವ ಮೂಲಕ, ವಿವಿಧ ಮಾರುಕಟ್ಟೆಗಳಿಗೆ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಸ್ಥಳೀಕರಿಸುವುದನ್ನು ನೀವು ಸುಲಭಗೊಳಿಸುತ್ತೀರಿ.
Next.js ನಲ್ಲಿ ಅಂತರಾಷ್ಟ್ರೀಕರಣವನ್ನು ಏಕೆ ಕಾರ್ಯಗತಗೊಳಿಸಬೇಕು?
ನಿಮ್ಮ Next.js ಅಪ್ಲಿಕೇಶನ್ನಲ್ಲಿ i18n ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವುದರಿಂದ ಹಲವಾರು ಪ್ರಯೋಜನಗಳಿವೆ:
- ವಿಸ್ತೃತ ವ್ಯಾಪ್ತಿ: ಬಳಕೆದಾರರ ಆದ್ಯತೆಯ ಭಾಷೆಯಲ್ಲಿ ವಿಷಯವನ್ನು ಒದಗಿಸುವ ಮೂಲಕ ವಿಶಾಲ ಪ್ರೇಕ್ಷಕರನ್ನು ತಲುಪಿ.
- ಸುಧಾರಿತ ಬಳಕೆದಾರ ಅನುಭವ: ವಿವಿಧ ಪ್ರದೇಶಗಳಲ್ಲಿನ ಬಳಕೆದಾರರಿಗೆ ಹೆಚ್ಚು ವೈಯಕ್ತಿಕಗೊಳಿಸಿದ ಮತ್ತು ಆಕರ್ಷಕವಾದ ಅನುಭವವನ್ನು ನೀಡಿ.
- ವರ್ಧಿತ ಎಸ್ಇಒ: ನಿರ್ದಿಷ್ಟ ಭೌಗೋಳಿಕ ಪ್ರದೇಶಗಳನ್ನು ಗುರಿಯಾಗಿಸುವ ಸ್ಥಳೀಯ ವಿಷಯವನ್ನು ಒದಗಿಸುವ ಮೂಲಕ ಸರ್ಚ್ ಇಂಜಿನ್ ಆಪ್ಟಿಮೈಸೇಶನ್ (ಎಸ್ಇಒ) ಅನ್ನು ಸುಧಾರಿಸಿ.
- ಹೆಚ್ಚಿದ ಪರಿವರ್ತನೆಗಳು: ಬಳಕೆದಾರರ ಸ್ಥಳೀಯ ಭಾಷೆಯಲ್ಲಿ ಮಾಹಿತಿಯನ್ನು ಪ್ರಸ್ತುತಪಡಿಸುವ ಮೂಲಕ ಪರಿವರ್ತನೆಗಳನ್ನು ಹೆಚ್ಚಿಸಿ, ನಂಬಿಕೆ ಮತ್ತು ತಿಳುವಳಿಕೆಯನ್ನು ಬೆಳೆಸಿಕೊಳ್ಳಿ.
- ಜಾಗತಿಕ ಬ್ರ್ಯಾಂಡ್ ಉಪಸ್ಥಿತಿ: ಒಳಗೊಳ್ಳುವಿಕೆಗೆ ಬದ್ಧತೆಯನ್ನು ಪ್ರದರ್ಶಿಸುವ ಮೂಲಕ ಮತ್ತು ವೈವಿಧ್ಯಮಯ ಪ್ರೇಕ್ಷಕರಿಗೆ ಸೇವೆ ಸಲ್ಲಿಸುವ ಮೂಲಕ ಬಲವಾದ ಜಾಗತಿಕ ಬ್ರ್ಯಾಂಡ್ ಉಪಸ್ಥಿತಿಯನ್ನು ಸ್ಥಾಪಿಸಿ.
Next.js i18n ವೈಶಿಷ್ಟ್ಯಗಳು ಮತ್ತು ಕಾನ್ಫಿಗರೇಶನ್
Next.js ತನ್ನ ರೂಟಿಂಗ್ ಮತ್ತು ವಿಷಯ ನಿರ್ವಹಣಾ ವೈಶಿಷ್ಟ್ಯಗಳ ಮೂಲಕ i18n ಗೆ ಅಂತರ್ನಿರ್ಮಿತ ಬೆಂಬಲವನ್ನು ನೀಡುತ್ತದೆ. ಪ್ರಮುಖ ವೈಶಿಷ್ಟ್ಯಗಳ ವಿವರಣೆ ಹೀಗಿದೆ:
1. next.config.js ನಲ್ಲಿ i18n ಅನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡುವುದು
i18n ಗಾಗಿ ಕೋರ್ ಕಾನ್ಫಿಗರೇಶನ್ next.config.js
ಫೈಲ್ನಲ್ಲಿದೆ. ಇಲ್ಲೊಂದು ಉದಾಹರಣೆ ಇದೆ:
/** @type {import('next').NextConfig} */
const nextConfig = {
i18n: {
locales: ['en', 'es', 'fr'], // ಬೆಂಬಲಿತ ಲೋಕೇಲ್ಗಳ (ಭಾಷಾ ಕೋಡ್ಗಳು) ಒಂದು ಶ್ರೇಣಿ
defaultLocale: 'en', // ಬಳಸಬೇಕಾದ ಡೀಫಾಲ್ಟ್ ಲೋಕೇಲ್
localeDetection: true, // ಬ್ರೌಸರ್ ಸೆಟ್ಟಿಂಗ್ಗಳ ಆಧಾರದ ಮೇಲೆ ಸ್ವಯಂಚಾಲಿತ ಲೋಕೇಲ್ ಪತ್ತೆಹಚ್ಚುವಿಕೆಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ/ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿ (ಐಚ್ಛಿಕ)
// domains: [
// {
// domain: 'example.com',
// defaultLocale: 'en',
// },
// {
// domain: 'example.es',
// defaultLocale: 'es',
// },
// ],
},
}
module.exports = nextConfig;
ವಿವರಣೆ:
locales
: ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ನಿಂದ ಬೆಂಬಲಿತವಾಗಿರುವ ಭಾಷೆಗಳ ಭಾಷಾ ಕೋಡ್ಗಳನ್ನು (ಉದಾ. ಇಂಗ್ಲಿಷ್ಗೆ'en'
, ಸ್ಪ್ಯಾನಿಷ್ಗೆ'es'
, ಫ್ರೆಂಚ್ಗೆ'fr'
) ಒಳಗೊಂಡಿರುವ ಒಂದು ಶ್ರೇಣಿ. ಸ್ಥಿರತೆಗಾಗಿ ISO 639-1 ಭಾಷಾ ಕೋಡ್ಗಳನ್ನು ಅನುಸರಿಸುವುದನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ.defaultLocale
: ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ ಬಳಸುವ ಡೀಫಾಲ್ಟ್ ಭಾಷೆ. URL ನಲ್ಲಿ ಬೇರೆ ಯಾವುದೇ ಭಾಷೆಯನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸದಿದ್ದರೆ ಅಥವಾ ಬಳಕೆದಾರರ ಬ್ರೌಸರ್ ಸೆಟ್ಟಿಂಗ್ಗಳಿಂದ ಪತ್ತೆಯಾಗದಿದ್ದರೆ ಪ್ರದರ್ಶಿಸಲಾಗುವ ಭಾಷೆ ಇದಾಗಿದೆ. ನಿಮ್ಮ ಪ್ರಾಥಮಿಕ ಗುರಿ ಪ್ರೇಕ್ಷಕರನ್ನು ಪ್ರತಿನಿಧಿಸುವ ಭಾಷೆಯನ್ನು ಆರಿಸಿ.localeDetection
: ಬಳಕೆದಾರರ ಬ್ರೌಸರ್ ಸೆಟ್ಟಿಂಗ್ಗಳ ಆಧಾರದ ಮೇಲೆ Next.js ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಬಳಕೆದಾರರ ಆದ್ಯತೆಯ ಭಾಷೆಯನ್ನು ಪತ್ತೆಹಚ್ಚುತ್ತದೆಯೇ ಎಂಬುದನ್ನು ನಿಯಂತ್ರಿಸುವ ಒಂದು ಬೂಲಿಯನ್ ಮೌಲ್ಯ. ಇದನ್ನುtrue
ಗೆ ಹೊಂದಿಸಿದರೆ, Next.js ಬಳಕೆದಾರರನ್ನು ನಿಮ್ಮ ಸೈಟ್ನ ಸೂಕ್ತ ಭಾಷೆಯ ಆವೃತ್ತಿಗೆ ಮರುನಿರ್ದೇಶಿಸಲು ಪ್ರಯತ್ನಿಸುತ್ತದೆ.domains
(ಐಚ್ಛಿಕ): ನಿರ್ದಿಷ್ಟ ಡೊಮೇನ್ಗಳೊಂದಿಗೆ ಲೋಕೇಲ್ಗಳನ್ನು ಸಂಯೋಜಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುವ ಒಂದು ಶ್ರೇಣಿ. ನೀವು ವಿವಿಧ ಭಾಷೆಗಳಿಗೆ ಪ್ರತ್ಯೇಕ ಡೊಮೇನ್ಗಳನ್ನು ಹೊಂದಿದ್ದರೆ ಇದು ಉಪಯುಕ್ತವಾಗಿದೆ (ಉದಾ., ಇಂಗ್ಲಿಷ್ಗೆexample.com
, ಸ್ಪ್ಯಾನಿಷ್ಗೆexample.es
).
2. ಲೋಕೇಲ್ ಪೂರ್ವಪ್ರತ್ಯಯಗಳೊಂದಿಗೆ ರೂಟಿಂಗ್
Next.js ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಮಾರ್ಗಗಳನ್ನು (routes) ಲೋಕೇಲ್ನೊಂದಿಗೆ ಪೂರ್ವಪ್ರತ್ಯಯ ಮಾಡುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, ನೀವು /about
ನಲ್ಲಿ ಪುಟವನ್ನು ಹೊಂದಿದ್ದರೆ ಮತ್ತು ಲೋಕೇಲ್ 'es' (ಸ್ಪ್ಯಾನಿಷ್) ಆಗಿದ್ದರೆ, URL /es/about
ಆಗುತ್ತದೆ. ಇದು ಪುಟಗಳ ವಿವಿಧ ಭಾಷೆಯ ಆವೃತ್ತಿಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ ಮತ್ತು ಪ್ರತಿ ಲೋಕೇಲ್ಗೆ ವಿಷಯವನ್ನು ಇಂಡೆಕ್ಸ್ ಮಾಡಲು ಸರ್ಚ್ ಇಂಜಿನ್ಗಳಿಗೆ ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. ಫ್ರೇಮ್ವರ್ಕ್ ನಿಮಗಾಗಿ ಮರುನಿರ್ದೇಶನ ಮತ್ತು ರೂಟಿಂಗ್ ಅನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ.
3. useRouter
ಹುಕ್ ಅನ್ನು ಬಳಸುವುದು
next/router
ನಿಂದ useRouter
ಹುಕ್ ಪ್ರಸ್ತುತ ಲೋಕೇಲ್ ಮತ್ತು ಇತರ ರೂಟಿಂಗ್ ಮಾಹಿತಿಗೆ ಪ್ರವೇಶವನ್ನು ಒದಗಿಸುತ್ತದೆ.
import { useRouter } from 'next/router';
function MyComponent() {
const router = useRouter();
const { locale, locales, defaultLocale } = router;
return (
ಪ್ರಸ್ತುತ ಲೋಕೇಲ್: {locale}
ಲಭ್ಯವಿರುವ ಲೋಕೇಲ್ಗಳು: {locales.join(', ')}
ಡೀಫಾಲ್ಟ್ ಲೋಕೇಲ್: {defaultLocale}
);
}
export default MyComponent;
router
ಆಬ್ಜೆಕ್ಟ್ ಈ ಕೆಳಗಿನ ಪ್ರಮುಖ ಗುಣಲಕ್ಷಣಗಳನ್ನು ನೀಡುತ್ತದೆ:
locale
: ಪ್ರಸ್ತುತ ಆಯ್ಕೆಮಾಡಿದ ಲೋಕೇಲ್ (ಉದಾ. 'en', 'es', 'fr').locales
:next.config.js
ನಲ್ಲಿ ವ್ಯಾಖ್ಯಾನಿಸಲಾದ ಎಲ್ಲಾ ಬೆಂಬಲಿತ ಲೋಕೇಲ್ಗಳ ಒಂದು ಶ್ರೇಣಿ.defaultLocale
:next.config.js
ನಲ್ಲಿ ಹೊಂದಿಸಲಾದ ಡೀಫಾಲ್ಟ್ ಲೋಕೇಲ್.asPath
: ಬ್ರೌಸರ್ನಲ್ಲಿ ಪ್ರದರ್ಶಿಸಲಾದ ಮಾರ್ಗ, ಲೋಕೇಲ್ ಪೂರ್ವಪ್ರತ್ಯಯ ಸೇರಿದಂತೆ (ಉದಾ.,/es/about
).pathname
: ಲೋಕೇಲ್ ಪೂರ್ವಪ್ರತ್ಯಯವಿಲ್ಲದ ಮಾರ್ಗ (ಉದಾ.,/about
).
ವಿಷಯ ಅನುವಾದ ತಂತ್ರಗಳು
ಒಮ್ಮೆ ನೀವು ನಿಮ್ಮ Next.js ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು i18n ಗಾಗಿ ಕಾನ್ಫಿಗರ್ ಮಾಡಿದ ನಂತರ, ನಿಮ್ಮ ವಿಷಯವನ್ನು ಅನುವಾದಿಸಲು ನೀವು ತಂತ್ರಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಬೇಕಾಗುತ್ತದೆ. ಇಲ್ಲಿ ಹಲವಾರು ಜನಪ್ರಿಯ ವಿಧಾನಗಳಿವೆ:
1. ಮೀಸಲಾದ ಅನುವಾದ ನಿರ್ವಹಣಾ ವ್ಯವಸ್ಥೆ (TMS) ಬಳಸುವುದು
ಅನೇಕ ಭಾಷೆಗಳೊಂದಿಗೆ ದೊಡ್ಡ ಪ್ರಮಾಣದ ಯೋಜನೆಗಳಿಗೆ, TMS ಅನ್ನು ಹೆಚ್ಚು ಶಿಫಾರಸು ಮಾಡಲಾಗಿದೆ. ಜನಪ್ರಿಯ ಆಯ್ಕೆಗಳು ಸೇರಿವೆ:
- Phrase: Next.js ಸೇರಿದಂತೆ ವಿವಿಧ ಪ್ಲಾಟ್ಫಾರ್ಮ್ಗಳಿಗೆ ಏಕೀಕರಣಗಳೊಂದಿಗೆ ಕ್ಲೌಡ್-ಆಧಾರಿತ TMS. ಸಹಯೋಗದ ವೈಶಿಷ್ಟ್ಯಗಳು ಮತ್ತು ಸ್ವಯಂಚಾಲಿತ ಕೆಲಸದ ಹರಿವುಗಳನ್ನು ನೀಡುತ್ತದೆ.
- Localize: ವ್ಯಾಪಕ ಶ್ರೇಣಿಯ ಫೈಲ್ ಫಾರ್ಮ್ಯಾಟ್ಗಳನ್ನು ಬೆಂಬಲಿಸುವ ಮತ್ತು ಅನುವಾದ ನಿರ್ವಹಣಾ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಒದಗಿಸುವ ಮತ್ತೊಂದು ಕ್ಲೌಡ್-ಆಧಾರಿತ TMS.
- Crowdin: ಓಪನ್-ಸೋರ್ಸ್ ಸಮುದಾಯದಲ್ಲಿ ಬಹಳ ಜನಪ್ರಿಯವಾಗಿರುವ ಒಂದು ಶಕ್ತಿಯುತ TMS, ಮತ್ತು Next.js ನೊಂದಿಗೆ ಚೆನ್ನಾಗಿ ಸಂಯೋಜನೆಗೊಳ್ಳುತ್ತದೆ, ತಂಡಗಳಿಗೆ ವಿಷಯವನ್ನು ಸಮರ್ಥವಾಗಿ ಅನುವಾದಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ.
ಪ್ರಯೋಜನಗಳು:
- ಕೇಂದ್ರೀಕೃತ ಅನುವಾದ ನಿರ್ವಹಣೆ.
- ಅನುವಾದಕರಿಗೆ ಸಹಯೋಗದ ವೈಶಿಷ್ಟ್ಯಗಳು.
- ಅನುವಾದದ ಕೆಲಸದ ಹರಿವಿನ ಯಾಂತ್ರೀಕರಣ.
- ನಿಮ್ಮ ಅಭಿವೃದ್ಧಿ ಕೆಲಸದ ಹರಿವಿನೊಂದಿಗೆ ಏಕೀಕರಣ.
2. JSON ಅನುವಾದ ಫೈಲ್ಗಳನ್ನು ರಚಿಸುವುದು
ಸಣ್ಣ ಯೋಜನೆಗಳಿಗೆ, ಅನುವಾದಗಳನ್ನು ಸಂಗ್ರಹಿಸಲು JSON ಫೈಲ್ಗಳನ್ನು ಬಳಸುವುದು ಸರಳ ಮತ್ತು ಪರಿಣಾಮಕಾರಿ ವಿಧಾನವಾಗಿದೆ.
ಉದಾಹರಣೆ ಡೈರೆಕ್ಟರಿ ರಚನೆ:
/src
├── locales
│ ├── en.json
│ └── es.json
├── components
│ └── MyComponent.js
└── pages
└── index.js
ಉದಾಹರಣೆ en.json
:
{
"greeting": "Hello, world!",
"welcomeMessage": "Welcome to our website."
}
ಉದಾಹರಣೆ es.json
:
{
"greeting": "¡Hola, mundo!",
"welcomeMessage": "Bienvenido a nuestro sitio web."
}
ಉದಾಹರಣೆ MyComponent.js
:
import { useRouter } from 'next/router';
import en from '../locales/en.json';
import es from '../locales/es.json';
function MyComponent() {
const { locale } = useRouter();
const t = locale === 'es' ? es : en;
return (
{t.greeting}
{t.welcomeMessage}
);
}
export default MyComponent;
ಈ ವಿಧಾನವು ನಮ್ಯತೆಯನ್ನು ಒದಗಿಸುತ್ತದೆ ಮತ್ತು ಸಣ್ಣ ಯೋಜನೆಗಳಿಗೆ ನೇರವಾಗಿರುತ್ತದೆ. ಇದನ್ನು ನವೀಕರಿಸಲು ಮತ್ತು ನಿರ್ವಹಿಸಲು ಸಾಮಾನ್ಯವಾಗಿ ಸುಲಭವಾಗಿದೆ.
3. ಅನುವಾದ ಲೈಬ್ರರಿ ಬಳಸುವುದು
ಹಲವಾರು JavaScript ಲೈಬ್ರರಿಗಳು ನಿಮ್ಮ ರಿಯಾಕ್ಟ್ ಕಾಂಪೊನೆಂಟ್ಗಳಲ್ಲಿ ವಿಷಯ ಅನುವಾದವನ್ನು ಸುಗಮಗೊಳಿಸುತ್ತವೆ.
next-i18next
: Next.js ಗಾಗಿ ವಿಶೇಷವಾಗಿ ವಿನ್ಯಾಸಗೊಳಿಸಲಾದ ಜನಪ್ರಿಯ ಲೈಬ್ರರಿ. ಇದು ಫ್ರೇಮ್ವರ್ಕ್ನೊಂದಿಗೆ ಚೆನ್ನಾಗಿ ಸಂಯೋಜನೆಗೊಳ್ಳುತ್ತದೆ ಮತ್ತು ಸರ್ವರ್-ಸೈಡ್ ರೆಂಡರಿಂಗ್ (SSR) ಮತ್ತು ಕ್ಲೈಂಟ್-ಸೈಡ್ ಅನುವಾದದಂತಹ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ.react-i18next
: ರಿಯಾಕ್ಟ್ಗಾಗಿ ಸಾಮಾನ್ಯ-ಉದ್ದೇಶದ i18n ಲೈಬ್ರರಿ. ನೀವು ಇದನ್ನು ನಿಮ್ಮ Next.js ಅಪ್ಲಿಕೇಶನ್ಗಳಲ್ಲಿ ಬಳಸಬಹುದು, ಆದರೂ ಇದಕ್ಕೆnext-i18next
ಗೆ ಹೋಲಿಸಿದರೆ ಹೆಚ್ಚಿನ ಕಾನ್ಫಿಗರೇಶನ್ ಅಗತ್ಯವಿರಬಹುದು.
next-i18next
ನೊಂದಿಗೆ ಉದಾಹರಣೆ (ಅನುಸ್ಥಾಪನೆ: npm install next-i18next i18next react-i18next
):
i18n ಕಾನ್ಫಿಗರೇಶನ್ ಫೈಲ್ ಅನ್ನು ರಚಿಸಿ (ಉದಾ., ನಿಮ್ಮ ರೂಟ್ ಡೈರೆಕ್ಟರಿಯಲ್ಲಿ i18n.js
):
// i18n.js
import { createServerSideHelpers } from 'next-i18next'
import { i18n } from './next-i18next.config'
export function initI18next(req, res, namespaces = ['common']) {
const helpers = createServerSideHelpers(
req,
res,
i18n,
namespaces
)
return helpers
}
export { appWithTranslation } from 'next-i18next'
export { i18n }
next-i18next ಗಾಗಿ ನಿಮ್ಮ Next.js ಕಾನ್ಫಿಗರೇಶನ್ ಅನ್ನು ರಚಿಸಿ.
// next-i18next.config.js
const { i18n } = require('./next-i18next.config');
/** @type {import('next').NextConfig} */
const nextConfig = {
reactStrictMode: true,
i18n: {
defaultLocale: 'en',
locales: ['en', 'es', 'fr'],
},
// other configuration
}
module.exports = nextConfig
ನಿಮ್ಮ _app.js
ಗೆ ಕಾನ್ಫಿಗರೇಶನ್ ಮತ್ತು ಅನುವಾದ ಆಮದನ್ನು ಸೇರಿಸಿ:
import { appWithTranslation } from 'next-i18next';
import '../styles/globals.css';
function MyApp({ Component, pageProps }) {
return ;
}
export default appWithTranslation(MyApp);
ಒಂದು ಫೋಲ್ಡರ್ ರಚಿಸಿ ಮತ್ತು ನಿಮ್ಮ ಅನುವಾದಗಳಿಗಾಗಿ ಲೋಕೇಲ್ಗಳೊಂದಿಗೆ ಅದನ್ನು ಭರ್ತಿ ಮಾಡಿ.
/public
└── locales
├── en
│ └── common.json
├── es
│ └── common.json
└── fr
└── common.json
ಉದಾಹರಣೆ en/common.json:
{
"greeting": "Hello, world!",
"welcomeMessage": "Welcome to our website."
}
ಕಾಂಪೊನೆಂಟ್ನಲ್ಲಿ ಅನುವಾದವನ್ನು ಬಳಸುವುದು:
import { useTranslation } from 'next-i18next';
function MyComponent() {
const { t } = useTranslation('common');
return (
{t('greeting')}
{t('welcomeMessage')}
);
}
export default MyComponent;
ಈ ಉದಾಹರಣೆಯು ಪ್ರಸ್ತುತ ಲೋಕೇಲ್ ಆಧಾರದ ಮೇಲೆ ಅನುವಾದಗಳನ್ನು ಹಿಂಪಡೆಯಲು useTranslation
ಹುಕ್ ಅನ್ನು ಬಳಸುತ್ತದೆ.
ಡೈನಾಮಿಕ್ ರೂಟ್ಗಳು ಮತ್ತು ಸ್ಟ್ಯಾಟಿಕ್ ಸೈಟ್ ಜನರೇಷನ್ (SSG) ಅನ್ನು ನಿರ್ವಹಿಸುವುದು
ಡೈನಾಮಿಕ್ ರೂಟ್ಗಳು (ಉದಾ., ಬ್ಲಾಗ್ ಪೋಸ್ಟ್ಗಳು, ಉತ್ಪನ್ನ ಪುಟಗಳು) ಮತ್ತು ಸ್ಟ್ಯಾಟಿಕ್ ಸೈಟ್ ಜನರೇಷನ್ (SSG) ನೊಂದಿಗೆ ವ್ಯವಹರಿಸುವಾಗ ಅಂತರಾಷ್ಟ್ರೀಕರಣವು ಹೆಚ್ಚು ಸಂಕೀರ್ಣವಾಗುತ್ತದೆ.
1. ಡೈನಾಮಿಕ್ ರೂಟ್ಗಳು (ಉದಾ., /blog/[slug])
ಡೈನಾಮಿಕ್ ರೂಟ್ಗಳಿಗಾಗಿ, getStaticPaths
ಬಳಸಿ ಬಿಲ್ಡ್ ಸಮಯದಲ್ಲಿ ಪ್ರತಿ ಲೋಕೇಲ್ಗೆ ಸರಿಯಾದ ಮಾರ್ಗಗಳನ್ನು ನೀವು ರಚಿಸಬೇಕಾಗುತ್ತದೆ. ಈ ಫಂಕ್ಷನ್ Next.js ಪೂರ್ವ-ರೆಂಡರ್ ಮಾಡಬೇಕಾದ ಮಾರ್ಗಗಳ ಶ್ರೇಣಿಯನ್ನು ಹಿಂತಿರುಗಿಸುತ್ತದೆ.
export async function getStaticPaths() {
const paths = [];
const locales = ['en', 'es', 'fr'];
const posts = await fetchPosts(); // ಬ್ಲಾಗ್ ಪೋಸ್ಟ್ ಡೇಟಾವನ್ನು ಪಡೆದುಕೊಳ್ಳಿ
posts.forEach(post => {
locales.forEach(locale => {
paths.push({
params: {
slug: post.slug,
},
locale,
});
});
});
return {
paths,
fallback: false, // ಅಥವಾ ನೀವು ಲೋಡಿಂಗ್ ಸ್ಥಿತಿಯನ್ನು ತೋರಿಸಲು ಬಯಸಿದರೆ 'blocking'
};
}
export async function getStaticProps({ params, locale }) {
const post = await getPostBySlug(params.slug, locale);
return {
props: {
post,
},
};
}
ವಿವರಣೆ:
getStaticPaths
: ಈ ಫಂಕ್ಷನ್ ನಿಮ್ಮ ಬ್ಲಾಗ್ ಪೋಸ್ಟ್ಗಳ ಮೂಲಕ ಪುನರಾವರ್ತಿಸುತ್ತದೆ ಮತ್ತು ಪ್ರತಿ ಪೋಸ್ಟ್ ಮತ್ತು ಪ್ರತಿ ಲೋಕೇಲ್ಗೆ ಒಂದು ಮಾರ್ಗವನ್ನು ಉತ್ಪಾದಿಸುತ್ತದೆ.params
ಆಬ್ಜೆಕ್ಟ್ ರೂಟ್ ಪ್ಯಾರಾಮೀಟರ್ಗಳನ್ನು (ಉದಾ., ಬ್ಲಾಗ್ ಪೋಸ್ಟ್ನ ಸ್ಲಗ್) ಒಳಗೊಂಡಿದೆ.locale
: ಈ ಪ್ಯಾರಾಮೀಟರ್ ಪ್ರಸ್ತುತ ಲೋಕೇಲ್ ಅನ್ನು ಒದಗಿಸುತ್ತದೆ, ನಿರ್ದಿಷ್ಟ ಲೋಕೇಲ್ಗಾಗಿ ಅನುವಾದಿತ ವಿಷಯವನ್ನು ಪಡೆದುಕೊಳ್ಳಲು ನಿಮಗೆ ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ.fallback
:getStaticPaths
ನಲ್ಲಿ ವ್ಯಾಖ್ಯಾನಿಸದ ಮಾರ್ಗಗಳನ್ನು Next.js ಹೇಗೆ ನಿರ್ವಹಿಸುತ್ತದೆ ಎಂಬುದನ್ನು ನಿರ್ಧರಿಸುತ್ತದೆ.fallback: false
ವ್ಯಾಖ್ಯಾನಿಸದ ಮಾರ್ಗಗಳಿಗಾಗಿ 404 ಪುಟಗಳನ್ನು ಉತ್ಪಾದಿಸುತ್ತದೆ.fallback: 'blocking'
ಬೇಡಿಕೆಯ ಮೇರೆಗೆ ಪುಟಗಳನ್ನು ಪೂರ್ವ-ರೆಂಡರ್ ಮಾಡುತ್ತದೆ.
2. getStaticProps
ನೊಂದಿಗೆ ಸ್ಟ್ಯಾಟಿಕ್ ಸೈಟ್ ಜನರೇಷನ್ (SSG)
getStaticProps
ನಲ್ಲಿ, ನೀವು locale
ಪ್ಯಾರಾಮೀಟರ್ ಆಧಾರದ ಮೇಲೆ ಅನುವಾದಿತ ವಿಷಯವನ್ನು ಪಡೆದುಕೊಳ್ಳಬಹುದು.
export async function getStaticProps({ params, locale }) {
// ಲೋಕೇಲ್ ಮತ್ತು ಪ್ಯಾರಾಮೀಟರ್ಗಳ ಆಧಾರದ ಮೇಲೆ ವಿಷಯವನ್ನು ಪಡೆದುಕೊಳ್ಳಿ
const { post } = await getPostBySlug(params.slug, locale);
return {
props: {
post,
},
};
}
getPostBySlug
ಫಂಕ್ಷನ್ ನೀಡಿದ ಸ್ಲಗ್ ಮತ್ತು ಲೋಕೇಲ್ಗಾಗಿ ಅನುವಾದಿತ ವಿಷಯವನ್ನು ಪಡೆದುಕೊಳ್ಳಬೇಕು, ಅದನ್ನು ನಿಮ್ಮ ಅನುವಾದ ಫೈಲ್ಗಳು, ಡೇಟಾಬೇಸ್ ಅಥವಾ CMS ನಿಂದ ಹಿಂಪಡೆಯಬಹುದು.
3. getServerSideProps
ನೊಂದಿಗೆ ಸರ್ವರ್-ಸೈಡ್ ರೆಂಡರಿಂಗ್ (SSR)
ವಿನಂತಿಯ ಸಮಯದಲ್ಲಿ ಪಡೆದುಕೊಳ್ಳಬೇಕಾದ ವಿಷಯಕ್ಕಾಗಿ, getServerSideProps
ಬಳಸಿ. ವಿಷಯವು ಆಗಾಗ್ಗೆ ಬದಲಾಗುತ್ತಿದ್ದರೆ ಅಥವಾ ಪ್ರತಿ ಬಳಕೆದಾರರಿಗೆ ವೈಯಕ್ತೀಕರಿಸಿದ್ದರೆ ಇದು ಉಪಯುಕ್ತವಾಗಿದೆ.
export async function getServerSideProps({ params, locale, req, res }) {
// ಲೋಕೇಲ್ ಮತ್ತು ಪ್ಯಾರಾಮೀಟರ್ಗಳ ಆಧಾರದ ಮೇಲೆ ಡೇಟಾವನ್ನು ಪಡೆದುಕೊಳ್ಳಿ (ಉದಾ., ಡೇಟಾಬೇಸ್ನಿಂದ)
const data = await fetchData(params.slug, locale);
return {
props: {
data,
},
};
}
Next.js ಅಂತರಾಷ್ಟ್ರೀಕರಣಕ್ಕಾಗಿ ಉತ್ತಮ ಅಭ್ಯಾಸಗಳು
ಈ ಉತ್ತಮ ಅಭ್ಯಾಸಗಳನ್ನು ಅನುಸರಿಸುವುದರಿಂದ ದೃಢವಾದ, ನಿರ್ವಹಿಸಬಲ್ಲ ಮತ್ತು ಬಳಕೆದಾರ ಸ್ನೇಹಿ ಬಹು-ಭಾಷಾ ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ನಿರ್ಮಿಸಲು ನಿಮಗೆ ಸಹಾಯ ಮಾಡುತ್ತದೆ:
- ಬೇಗನೆ ಯೋಜಿಸಿ: ನಿಮ್ಮ ಯೋಜನೆಯ ಆರಂಭದಿಂದಲೇ ಅಂತರಾಷ್ಟ್ರೀಕರಣವನ್ನು ಪರಿಗಣಿಸಿ. ಅದನ್ನು ನಂತರ ಅಳವಡಿಸುವುದಕ್ಕಿಂತ ಮುಂಚಿತವಾಗಿ ಕಾರ್ಯಗತಗೊಳಿಸುವುದು ತುಂಬಾ ಸುಲಭ.
- ವಿಷಯವನ್ನು ಕೋಡ್ನಿಂದ ಪ್ರತ್ಯೇಕಿಸಿ: ಎಲ್ಲಾ ಅನುವಾದಿಸಬಹುದಾದ ಪಠ್ಯವನ್ನು ಪ್ರತ್ಯೇಕ ಫೈಲ್ಗಳಲ್ಲಿ (ಉದಾ., JSON ಫೈಲ್ಗಳು ಅಥವಾ TMS) ಸಂಗ್ರಹಿಸಿ ಮತ್ತು ನಿಮ್ಮ ಕಾಂಪೊನೆಂಟ್ಗಳಲ್ಲಿ ನೇರವಾಗಿ ಪಠ್ಯವನ್ನು ಹಾರ್ಡ್ಕೋಡ್ ಮಾಡುವುದನ್ನು ತಪ್ಪಿಸಿ.
- ಅನುವಾದ ನಿರ್ವಹಣಾ ವ್ಯವಸ್ಥೆ (TMS) ಬಳಸಿ: ದೊಡ್ಡ ಯೋಜನೆಗಳಿಗಾಗಿ, TMS ಅನುವಾದ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಸುಗಮಗೊಳಿಸುತ್ತದೆ ಮತ್ತು ಸಹಯೋಗವನ್ನು ಸುಧಾರಿಸುತ್ತದೆ.
- ಸಂಪೂರ್ಣವಾಗಿ ಪರೀಕ್ಷಿಸಿ: ನಿಖರವಾದ ಅನುವಾದಗಳು, ಸರಿಯಾದ ಫಾರ್ಮ್ಯಾಟಿಂಗ್ ಮತ್ತು ವಿವಿಧ ಬ್ರೌಸರ್ಗಳು ಮತ್ತು ಸಾಧನಗಳಲ್ಲಿ ಸರಿಯಾದ ರೆಂಡರಿಂಗ್ ಅನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಎಲ್ಲಾ ಬೆಂಬಲಿತ ಭಾಷೆಗಳಲ್ಲಿ ಪರೀಕ್ಷಿಸಿ. ಎಮ್ಯುಲೇಟರ್ಗಳ ಬದಲು ನೈಜ ಸಾಧನಗಳಲ್ಲಿ ಪರೀಕ್ಷಿಸಿ.
- ಬಲದಿಂದ ಎಡಕ್ಕೆ (RTL) ಭಾಷೆಗಳನ್ನು ಪರಿಗಣಿಸಿ: ನೀವು ಅರೇಬಿಕ್ ಅಥವಾ ಹೀಬ್ರೂ ನಂತಹ ಭಾಷೆಗಳನ್ನು ಬೆಂಬಲಿಸಿದರೆ, ನಿಮ್ಮ ವಿನ್ಯಾಸ ಮತ್ತು ಲೇಔಟ್ ಬಲದಿಂದ ಎಡಕ್ಕೆ ಪಠ್ಯ ದಿಕ್ಕನ್ನು ಸರಿಹೊಂದಿಸುತ್ತದೆ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ. Next.js ಇದನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ನಿರ್ವಹಿಸುವುದಿಲ್ಲ, ಆದ್ದರಿಂದ CSS ಅಥವಾ ಇತರ ಪರಿಹಾರಗಳು ಅಗತ್ಯವಿದೆ.
- ದಿನಾಂಕ ಮತ್ತು ಸಮಯ ಫಾರ್ಮ್ಯಾಟಿಂಗ್ ಅನ್ನು ನಿರ್ವಹಿಸಿ: ಬಳಕೆದಾರರ ಲೋಕೇಲ್ ಪ್ರಕಾರ ದಿನಾಂಕಗಳು ಮತ್ತು ಸಮಯಗಳನ್ನು ಫಾರ್ಮ್ಯಾಟ್ ಮಾಡಲು ಲೈಬ್ರರಿಗಳು ಅಥವಾ ಅಂತರ್ನಿರ್ಮಿತ ಫಂಕ್ಷನ್ಗಳನ್ನು ಬಳಸಿ. Moment.js ಮತ್ತು date-fns ಎರಡು ಜನಪ್ರಿಯ ಸಹಾಯಕ ಲೈಬ್ರರಿಗಳಾಗಿವೆ.
- ಸಂಖ್ಯೆ ಮತ್ತು ಕರೆನ್ಸಿ ಫಾರ್ಮ್ಯಾಟಿಂಗ್ ಅನ್ನು ನಿರ್ವಹಿಸಿ: ಬಳಕೆದಾರರ ಲೋಕೇಲ್ ಆಧಾರದ ಮೇಲೆ ಸಂಖ್ಯೆಗಳು ಮತ್ತು ಕರೆನ್ಸಿ ಚಿಹ್ನೆಗಳನ್ನು ಸರಿಯಾಗಿ ಫಾರ್ಮ್ಯಾಟ್ ಮಾಡಿ.
- ಎಸ್ಇಒ ಅನ್ನು ಆಪ್ಟಿಮೈಜ್ ಮಾಡಿ: ನಿಮ್ಮ ವಿಷಯವನ್ನು ಸರ್ಚ್ ಇಂಜಿನ್ಗಳು ಸರಿಯಾಗಿ ಇಂಡೆಕ್ಸ್ ಮಾಡಲು ಸಹಾಯ ಮಾಡಲು ಭಾಷೆ-ನಿರ್ದಿಷ್ಟ ಮೆಟಾ ಟ್ಯಾಗ್ಗಳನ್ನು (
hreflang
) ಬಳಸಿ. ನಿಮ್ಮ URL ಗಳಲ್ಲಿ ಭಾಷಾ ಕೋಡ್ಗಳನ್ನು ಸೇರಿಸಿ. - ಬಳಕೆದಾರರ ಅನುಭವಕ್ಕೆ ಆದ್ಯತೆ ನೀಡಿ: ಬಳಕೆದಾರರಿಗೆ ಭಾಷೆಗಳ ನಡುವೆ ಬದಲಾಯಿಸಲು ಸ್ಪಷ್ಟ ಮತ್ತು ಅರ್ಥಗರ್ಭಿತ ಮಾರ್ಗವನ್ನು ಒದಗಿಸಿ. ಬ್ರೌಸರ್ ಸೆಟ್ಟಿಂಗ್ಗಳ ಆಧಾರದ ಮೇಲೆ ಸ್ವಯಂಚಾಲಿತ ಭಾಷಾ ಪತ್ತೆಹಚ್ಚುವಿಕೆಯನ್ನು ನೀಡಲು ಪರಿಗಣಿಸಿ.
- ನವೀಕೃತವಾಗಿರಿ: ಇತ್ತೀಚಿನ ವೈಶಿಷ್ಟ್ಯಗಳು ಮತ್ತು ಭದ್ರತಾ ಪ್ಯಾಚ್ಗಳಿಂದ ಪ್ರಯೋಜನ ಪಡೆಯಲು ನಿಮ್ಮ Next.js ಆವೃತ್ತಿ ಮತ್ತು i18n ಲೈಬ್ರರಿಗಳನ್ನು ನವೀಕೃತವಾಗಿರಿಸಿ.
- ಪ್ರವೇಶಸಾಧ್ಯತೆಯನ್ನು (a11y) ಪರಿಗಣಿಸಿ: ನಿಮ್ಮ ಅನುವಾದಿತ ವಿಷಯವು ಅಂಗವಿಕಲ ಬಳಕೆದಾರರಿಗೆ ಪ್ರವೇಶಿಸಬಹುದೆಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ. ಚಿತ್ರಗಳಿಗೆ ಪರ್ಯಾಯ ಪಠ್ಯವನ್ನು ಒದಗಿಸಿ ಮತ್ತು ಸೂಕ್ತವಾದ ARIA ಗುಣಲಕ್ಷಣಗಳನ್ನು ಬಳಸಿ. ಪರೀಕ್ಷಿಸಲು ಸ್ಕ್ರೀನ್ ರೀಡರ್ಗಳನ್ನು ಬಳಸಿ.
ಅಂತರಾಷ್ಟ್ರೀಕೃತ ವೆಬ್ಸೈಟ್ಗಳಿಗೆ ಎಸ್ಇಒ ಪರಿಗಣನೆಗಳು
ವಿಶ್ವಾದ್ಯಂತ ಸಾವಯವ ದಟ್ಟಣೆಯನ್ನು ಹೆಚ್ಚಿಸಲು ನಿಮ್ಮ ಅಂತರಾಷ್ಟ್ರೀಕೃತ ವೆಬ್ಸೈಟ್ ಅನ್ನು ಸರ್ಚ್ ಇಂಜಿನ್ಗಳಿಗಾಗಿ ಆಪ್ಟಿಮೈಜ್ ಮಾಡುವುದು ಅತ್ಯಗತ್ಯ. ಇಲ್ಲಿ ಕೆಲವು ಪ್ರಮುಖ ಎಸ್ಇಒ ಉತ್ತಮ ಅಭ್ಯಾಸಗಳಿವೆ:
hreflang
ಟ್ಯಾಗ್ಗಳು: ನಿಮ್ಮ ವಿಷಯದ ಭಾಷೆ ಮತ್ತು ಪ್ರಾದೇಶಿಕ ವ್ಯತ್ಯಾಸಗಳ ಬಗ್ಗೆ ಸರ್ಚ್ ಇಂಜಿನ್ಗಳಿಗೆ ತಿಳಿಸಲು ನಿಮ್ಮ HTML ನ<head>
ನಲ್ಲಿhreflang
ಟ್ಯಾಗ್ಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಿ. ಇದು ಎಸ್ಇಒಗೆ ನಿರ್ಣಾಯಕವಾಗಿದೆ. ಉದಾಹರಣೆಗೆ:<link rel="alternate" hreflang="en" href="https://example.com/en/" />
ಮತ್ತು<link rel="alternate" hreflang="es" href="https://example.com/es/" />
- ಭಾಷೆ-ನಿರ್ದಿಷ್ಟ URL ಗಳು: ನಿಮ್ಮ URL ಗಳಲ್ಲಿ ಭಾಷಾ ಕೋಡ್ಗಳನ್ನು ಬಳಸಿ (ಉದಾ.,
/en/about
,/es/acerca-de
). ಇದು ಬಳಕೆದಾರರು ಮತ್ತು ಸರ್ಚ್ ಇಂಜಿನ್ಗಳಿಗೆ ವಿಷಯದ ಭಾಷೆಯನ್ನು ಸ್ಪಷ್ಟವಾಗಿ ಸೂಚಿಸುತ್ತದೆ. - ಸ್ಥಳೀಯ ವಿಷಯ: ನಿಮ್ಮ ವಿಷಯವನ್ನು ನಿಖರವಾಗಿ ಮತ್ತು ಸ್ವಾಭಾವಿಕವಾಗಿ ಅನುವಾದಿಸಿ. ಯಂತ್ರ ಅನುವಾದಗಳನ್ನು ಸ್ಥಳೀಯ ಭಾಷಿಕರಿಂದ ಪರಿಶೀಲಿಸಬೇಕು.
- ಸ್ಥಳೀಯ ಮೆಟಾ ವಿವರಣೆಗಳು ಮತ್ತು ಶೀರ್ಷಿಕೆಗಳು: ಹುಡುಕಾಟ ಫಲಿತಾಂಶಗಳಲ್ಲಿ ಕ್ಲಿಕ್-ಥ್ರೂ ದರಗಳನ್ನು ಸುಧಾರಿಸಲು ಪ್ರತಿ ಭಾಷೆಗೆ ವಿಶಿಷ್ಟ ಮತ್ತು ಆಕರ್ಷಕ ಮೆಟಾ ವಿವರಣೆಗಳು ಮತ್ತು ಶೀರ್ಷಿಕೆಗಳನ್ನು ಬರೆಯಿರಿ.
- XML ಸೈಟ್ಮ್ಯಾಪ್ಗಳು: ನಿಮ್ಮ ಪುಟಗಳ ಎಲ್ಲಾ ಭಾಷಾ ವ್ಯತ್ಯಾಸಗಳನ್ನು ಒಳಗೊಂಡಿರುವ XML ಸೈಟ್ಮ್ಯಾಪ್ಗಳನ್ನು ರಚಿಸಿ ಮತ್ತು ಸಲ್ಲಿಸಿ.
- ಆಂತರಿಕ ಲಿಂಕಿಂಗ್: ನಿಮ್ಮ ವಿಷಯದ ಭಾಷಾ ಆವೃತ್ತಿಗಳ ನಡುವೆ ಸೂಕ್ತವಾದ ಆಂತರಿಕ ಲಿಂಕ್ಗಳನ್ನು ಬಳಸಿ.
- ದೇಶ-ನಿರ್ದಿಷ್ಟ ಕೀವರ್ಡ್ ಸಂಶೋಧನೆ: ಪ್ರತಿ ಪ್ರದೇಶದಲ್ಲಿ ಬಳಕೆದಾರರು ಹುಡುಕುತ್ತಿರುವ ಪದಗಳನ್ನು ಗುರುತಿಸಲು ಪ್ರತಿ ಭಾಷೆಯಲ್ಲಿ ಕೀವರ್ಡ್ ಸಂಶೋಧನೆ ನಡೆಸಿ.
ಉದಾಹರಣೆ: ಸರಳ ಬಹು-ಭಾಷಾ ಬ್ಲಾಗ್ ನಿರ್ಮಿಸುವುದು
Next.js ಬಳಸಿ ಬಹು-ಭಾಷಾ ಬ್ಲಾಗ್ನ ಸರಳೀಕೃತ ಉದಾಹರಣೆಯನ್ನು ರಚಿಸೋಣ. ಇದು ಮೇಲೆ ಚರ್ಚಿಸಲಾದ ಪರಿಕಲ್ಪನೆಗಳನ್ನು ಹೇಗೆ ಅನ್ವಯಿಸಬೇಕು ಎಂಬುದರ ಹೆಚ್ಚು ಸ್ಪಷ್ಟವಾದ ವಿವರಣೆಯನ್ನು ಒದಗಿಸುತ್ತದೆ.
1. ಪ್ರಾಜೆಕ್ಟ್ ಸೆಟಪ್
ಹೊಸ Next.js ಪ್ರಾಜೆಕ್ಟ್ ರಚಿಸಿ:
npx create-next-app my-multi-lang-blog
cd my-multi-lang-blog
2. i18n ಅನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಿ (next.config.js
)
/** @type {import('next').NextConfig} */
const nextConfig = {
reactStrictMode: true,
i18n: {
locales: ['en', 'es', 'fr'],
defaultLocale: 'en',
},
}
module.exports = nextConfig
3. ಅನುವಾದ ಫೈಲ್ಗಳನ್ನು ರಚಿಸಿ
ರೂಟ್ ಡೈರೆಕ್ಟರಿಯಲ್ಲಿ locales
ಫೋಲ್ಡರ್ ರಚಿಸಿ ಮತ್ತು ಈ ಕೆಳಗಿನ JSON ಫೈಲ್ಗಳನ್ನು ಸೇರಿಸಿ:
locales/en.json
:
{
"title": "Welcome to My Blog",
"postTitle": "My First Post",
"postContent": "This is the content of my first blog post."
}
locales/es.json
:
{
"title": "Bienvenido a mi Blog",
"postTitle": "Mi Primer Post",
"postContent": "Este es el contenido de mi primer publicación de blog."
}
locales/fr.json
:
{
"title": "Bienvenue sur Mon Blog",
"postTitle": "Mon Premier Article",
"postContent": "Ceci est le contenu de mon premier article de blog."
}
4. ಬ್ಲಾಗ್ ಪೋಸ್ಟ್ ಕಾಂಪೊನೆಂಟ್ ರಚಿಸಿ (ಉದಾ., components/BlogPost.js
)
import { useRouter } from 'next/router';
import en from '../locales/en.json';
import es from '../locales/es.json';
import fr from '../locales/fr.json';
function BlogPost() {
const router = useRouter();
const { locale } = router;
let translations;
switch (locale) {
case 'es':
translations = es;
break;
case 'fr':
translations = fr;
break;
default:
translations = en;
}
return (
{translations.postTitle}
{translations.postContent}
);
}
export default BlogPost;
5. ಸೂಚ್ಯಂಕ ಪುಟವನ್ನು ರಚಿಸಿ (pages/index.js
)
import { useRouter } from 'next/router';
import BlogPost from '../components/BlogPost';
import en from '../locales/en.json';
import es from '../locales/es.json';
import fr from '../locales/fr.json';
function HomePage() {
const router = useRouter();
const { locale, locales } = router;
let translations;
switch (locale) {
case 'es':
translations = es;
break;
case 'fr':
translations = fr;
break;
default:
translations = en;
}
return (
);
}
export default HomePage;
ಈ ಸರಳೀಕೃತ ಉದಾಹರಣೆಯು Next.js ಅಂತರಾಷ್ಟ್ರೀಕರಣದ ಮೂಲಭೂತ ತತ್ವಗಳನ್ನು ಪ್ರದರ್ಶಿಸುತ್ತದೆ. ಡೈನಾಮಿಕ್ ರೂಟ್ಗಳು ಮತ್ತು ಅನುವಾದ ನಿರ್ವಹಣಾ ವ್ಯವಸ್ಥೆಗಳೊಂದಿಗೆ ಏಕೀಕರಣದಂತಹ ಹೆಚ್ಚು ಸಂಕೀರ್ಣ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಸೇರಿಸಲು ನೀವು ಈ ಮೂಲಭೂತ ಚೌಕಟ್ಟನ್ನು ವಿಸ್ತರಿಸಬಹುದು. ಮೇಲಿನ ಲಿಂಕ್ಗಳನ್ನು Link
ಕಾಂಪೊನೆಂಟ್ನೊಂದಿಗೆ ಸುಧಾರಿಸಲು ಮತ್ತು ಸೂಕ್ತವಾದ locale
ಗುಣಲಕ್ಷಣವನ್ನು ಸೇರಿಸಲು ಪರಿಗಣಿಸಿ.
6. ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ರನ್ ಮಾಡಿ
ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಇದರೊಂದಿಗೆ ರನ್ ಮಾಡಿ:
npm run dev
ಈಗ ನೀವು ನಿಮ್ಮ ಬ್ಲಾಗ್ ಅನ್ನು http://localhost:3000
(ಇಂಗ್ಲಿಷ್), http://localhost:3000/es
(ಸ್ಪ್ಯಾನಿಷ್), ಮತ್ತು http://localhost:3000/fr
(ಫ್ರೆಂಚ್) ನಲ್ಲಿ ಪ್ರವೇಶಿಸಬಹುದು. ಆಯ್ಕೆಮಾಡಿದ ಲೋಕೇಲ್ ಆಧಾರದ ಮೇಲೆ ಶೀರ್ಷಿಕೆ ಮತ್ತು ಬ್ಲಾಗ್ ಪೋಸ್ಟ್ ವಿಷಯವನ್ನು ಅನುವಾದಿಸಿರುವುದನ್ನು ನೀವು ನೋಡಬೇಕು.
ತೀರ್ಮಾನ
Next.js ನಿಮ್ಮ ವೆಬ್ ಅಪ್ಲಿಕೇಶನ್ಗಳಲ್ಲಿ ಅಂತರಾಷ್ಟ್ರೀಕರಣವನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲು ಸಮಗ್ರ ವೈಶಿಷ್ಟ್ಯಗಳ ಗುಂಪನ್ನು ಒದಗಿಸುತ್ತದೆ. ಈ ಮಾರ್ಗದರ್ಶಿಯಲ್ಲಿ ವಿವರಿಸಿರುವ ತತ್ವಗಳು ಮತ್ತು ತಂತ್ರಗಳನ್ನು ಅನುಸರಿಸುವ ಮೂಲಕ, ನೀವು ವಿಶ್ವಾದ್ಯಂತ ಬಳಕೆದಾರರಿಗೆ ಸ್ಥಳೀಯ ಅನುಭವಗಳನ್ನು ನೀಡುವ ಬಹು-ಭಾಷಾ ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ರಚಿಸಬಹುದು. ನಿಮ್ಮ i18n ತಂತ್ರವನ್ನು ಮುಂಚಿತವಾಗಿ ಯೋಜಿಸಲು, ನಿಮ್ಮ ಅಗತ್ಯಗಳಿಗೆ ಸರಿಯಾದ ಅನುವಾದ ವಿಧಾನವನ್ನು ಆಯ್ಕೆ ಮಾಡಲು ಮತ್ತು ಬಳಕೆದಾರರ ಅನುಭವಕ್ಕೆ ಆದ್ಯತೆ ನೀಡಲು ಮರೆಯದಿರಿ. ಎಚ್ಚರಿಕೆಯ ಯೋಜನೆ ಮತ್ತು ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆಯೊಂದಿಗೆ, ನೀವು ಜಾಗತಿಕ ಪ್ರೇಕ್ಷಕರೊಂದಿಗೆ ಪ್ರತಿಧ್ವನಿಸುವ ಮತ್ತು ಬೆಳವಣಿಗೆಗೆ ಹೊಸ ಅವಕಾಶಗಳನ್ನು ತೆರೆಯುವ ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ನಿರ್ಮಿಸಬಹುದು. ನಿರಂತರ ಕಲಿಕೆ, ಇತ್ತೀಚಿನ ಬಿಡುಗಡೆಗಳು ಮತ್ತು ಉತ್ತಮ ಅಭ್ಯಾಸಗಳೊಂದಿಗೆ ನವೀಕೃತವಾಗಿರುವುದು ನಿಮ್ಮ ಉಪಕರಣಗಳು ಮತ್ತು ತಂತ್ರಜ್ಞಾನಗಳನ್ನು ಪರಿಣಾಮಕಾರಿಯಾಗಿ ಬಳಸಿಕೊಳ್ಳುವುದನ್ನು ಖಚಿತಪಡಿಸುತ್ತದೆ.
ತಂತ್ರಜ್ಞಾನ ಮುಂದುವರೆದಂತೆ, ಹೆಚ್ಚು ಸುಧಾರಿತ i18n ವೈಶಿಷ್ಟ್ಯಗಳು ಹೊರಹೊಮ್ಮುವುದನ್ನು ನಿರೀಕ್ಷಿಸಿ. ವಿವಿಧ ಸಂಸ್ಕೃತಿಗಳು ಮತ್ತು ಭಾಷಾ ಗುಂಪುಗಳಲ್ಲಿನ ಬಳಕೆದಾರರನ್ನು ತಲುಪುವ ಸಾಮರ್ಥ್ಯವು ವಿಶ್ವಾದ್ಯಂತ ಅಪ್ಲಿಕೇಶನ್ ಡೆವಲಪರ್ಗಳಿಗೆ ಪ್ರಮುಖ ಆದ್ಯತೆಯಾಗಿ ಉಳಿಯುತ್ತದೆ. ಆದ್ದರಿಂದ, i18n ನ ಮೂಲಭೂತ ಅಂಶಗಳನ್ನು ಕರಗತ ಮಾಡಿಕೊಳ್ಳುವುದು ಇಂದಿನ ಜಾಗತಿಕ ಅಭಿವೃದ್ಧಿ ಭೂದೃಶ್ಯದಲ್ಲಿ ನಿಮ್ಮ ಮೌಲ್ಯವನ್ನು ಹೆಚ್ಚಿಸುವ ಒಂದು ಅಮೂಲ್ಯವಾದ ಕೌಶಲ್ಯವಾಗಿದೆ.