તમારી Next.js એપ્લિકેશન્સમાં સરળ આંતરરાષ્ટ્રીયકરણ (i18n) કેવી રીતે લાગુ કરવું તે શીખો અને વૈશ્વિક પ્રેક્ષકો સુધી પહોંચો. આ માર્ગદર્શિકામાં રાઉટિંગ, સામગ્રી અનુવાદ અને શ્રેષ્ઠ પદ્ધતિઓનો સમાવેશ છે.
Next.js આંતરરાષ્ટ્રીયકરણ: વૈશ્વિક પ્રેક્ષકો માટે બહુભાષી એપ્સનું નિર્માણ
આજના આંતરજોડાણવાળી દુનિયામાં, વૈશ્વિક પ્રેક્ષકોને ધ્યાનમાં રાખીને એપ્લિકેશન્સ બનાવવી એ હવે લક્ઝરી નથી – તે એક આવશ્યકતા છે. Next.js, એક શક્તિશાળી રિએક્ટ ફ્રેમવર્ક, આંતરરાષ્ટ્રીયકરણ (i18n) લાગુ કરવા માટે મજબૂત સુવિધાઓ પૂરી પાડે છે, જે તમને બહુભાષી એપ્લિકેશન્સ બનાવવાની મંજૂરી આપે છે જે વિશ્વભરના વપરાશકર્તાઓને સ્થાનિક અનુભવ પૂરો પાડે છે. આ વ્યાપક માર્ગદર્શિકા તમને આંતરરાષ્ટ્રીયકૃત Next.js એપ્લિકેશન્સ બનાવવા માટેના આવશ્યક ખ્યાલો, તકનીકો અને શ્રેષ્ઠ પદ્ધતિઓ દ્વારા માર્ગદર્શન આપશે.
આંતરરાષ્ટ્રીયકરણ અને સ્થાનીયકરણને સમજવું
Next.js i18n ની વિગતોમાં ઊંડા ઉતરતા પહેલાં, ચાલો મુખ્ય શબ્દો સ્પષ્ટ કરીએ:
- આંતરરાષ્ટ્રીયકરણ (i18n): કોઈ એપ્લિકેશનને એવી રીતે ડિઝાઇન અને વિકસિત કરવાની પ્રક્રિયા જેથી તેને એન્જિનિયરિંગ ફેરફારોની જરૂર વગર વિવિધ ભાષાઓ અને પ્રદેશોમાં સરળતાથી અપનાવી શકાય. આમાં ટેક્સ્ટ, ફોર્મેટિંગ અને અન્ય લોકેલ-વિશિષ્ટ તત્વોને અલગ કરવાનો સમાવેશ થાય છે.
- સ્થાનીયકરણ (l10n): કોઈ એપ્લિકેશનને ચોક્કસ ભાષા અને પ્રદેશ માટે અનુકૂલિત કરવાની પ્રક્રિયા. આમાં ટેક્સ્ટનું ભાષાંતર કરવું, તારીખ અને સમયના ફોર્મેટ, ચલણના પ્રતીકો અને વધુને સમાયોજિત કરવાનો સમાવેશ થાય છે.
મૂળભૂત રીતે, i18n તમારી એપ્લિકેશનને સ્થાનીયકરણ માટે તૈયાર કરે છે. મુખ્ય કોડમાંથી ભાષા-આધારિત તત્વોને અલગ કરીને, તમે વિવિધ બજારો માટે એપ્લિકેશનને સ્થાનિક બનાવવાનું સરળ બનાવો છો.
Next.js માં આંતરરાષ્ટ્રીયકરણ શા માટે લાગુ કરવું?
તમારી Next.js એપ્લિકેશનમાં i18n લાગુ કરવાથી અસંખ્ય લાભો મળે છે:
- વિસ્તૃત પહોંચ: વપરાશકર્તાઓને તેમની પસંદગીની ભાષામાં સામગ્રી પ્રદાન કરીને વ્યાપક પ્રેક્ષકો સુધી પહોંચો.
- સુધારેલ વપરાશકર્તા અનુભવ: વિવિધ પ્રદેશોના વપરાશકર્તાઓ માટે વધુ વ્યક્તિગત અને આકર્ષક અનુભવ પ્રદાન કરો.
- ઉન્નત SEO: ચોક્કસ ભૌગોલિક પ્રદેશોને લક્ષ્યાંકિત કરતી સ્થાનિક સામગ્રી પ્રદાન કરીને સર્ચ એન્જિન ઓપ્ટિમાઇઝેશન (SEO) માં સુધારો કરો.
- વધારેલ રૂપાંતરણ: વપરાશકર્તાની મૂળ ભાષામાં માહિતી પ્રસ્તુત કરીને, વિશ્વાસ અને સમજને પ્રોત્સાહન આપીને રૂપાંતરણમાં વધારો કરો.
- વૈશ્વિક બ્રાન્ડ હાજરી: સમાવેશીતા પ્રત્યે પ્રતિબદ્ધતા દર્શાવીને અને વિવિધ પ્રેક્ષકોને પૂરી પાડીને મજબૂત વૈશ્વિક બ્રાન્ડ હાજરી સ્થાપિત કરો.
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 આપમેળે રૂટ્સને લોકેલ સાથે પ્રીફિક્સ કરે છે. ઉદાહરણ તરીકે, જો તમારી પાસે /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. અનુવાદ લાઇબ્રેરીનો ઉપયોગ
કેટલીક જાવાસ્ક્રીપ્ટ લાઇબ્રેરીઓ તમારા રિએક્ટ કમ્પોનન્ટ્સમાં કન્ટેન્ટ ટ્રાન્સલેશનને સુવ્યવસ્થિત કરે છે.
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'],
},
// અન્ય રૂપરેખાંકન
}
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
: નક્કી કરે છે કે Next.jsgetStaticPaths
માં વ્યાખ્યાયિત ન થયેલા પાથને કેવી રીતે હેન્ડલ કરે છે.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 બે લોકપ્રિય લાઇબ્રેરીઓ છે જે મદદરૂપ છે.
- સંખ્યા અને ચલણ ફોર્મેટિંગનું સંચાલન કરો: વપરાશકર્તાના લોકેલના આધારે સંખ્યાઓ અને ચલણ પ્રતીકોને યોગ્ય રીતે ફોર્મેટ કરો.
- SEO ને ઓપ્ટિમાઇઝ કરો: સર્ચ એન્જિનને તમારી સામગ્રીને યોગ્ય રીતે ઇન્ડેક્સ કરવામાં મદદ કરવા માટે ભાષા-વિશિષ્ટ મેટા ટૅગ્સ (
hreflang
) નો ઉપયોગ કરો. તમારા URL માં ભાષા કોડ્સ શામેલ કરો. - વપરાશકર્તા અનુભવને પ્રાથમિકતા આપો: વપરાશકર્તાઓને ભાષાઓ વચ્ચે સ્વિચ કરવા માટે સ્પષ્ટ અને સાહજિક રીત પ્રદાન કરો. બ્રાઉઝર સેટિંગ્સના આધારે સ્વચાલિત ભાષા શોધ ઓફર કરવાનું વિચારો.
- અપડેટ રહો: નવીનતમ સુવિધાઓ અને સુરક્ષા પેચોનો લાભ લેવા માટે તમારું Next.js સંસ્કરણ અને i18n લાઇબ્રેરીઓને અપ-ટુ-ડેટ રાખો.
- ઍક્સેસિબિલિટી (a11y) નો વિચાર કરો: ખાતરી કરો કે તમારી અનુવાદિત સામગ્રી વિકલાંગ વપરાશકર્તાઓ માટે સુલભ છે. છબીઓ માટે વૈકલ્પિક ટેક્સ્ટ પ્રદાન કરો અને યોગ્ય ARIA એટ્રિબ્યુટ્સનો ઉપયોગ કરો. પરીક્ષણ કરવા માટે સ્ક્રીન રીડર્સનો ઉપયોગ કરો.
આંતરરાષ્ટ્રીયકૃત વેબસાઇટ્સ માટે SEO વિચારણાઓ
સર્ચ એન્જિન માટે તમારી આંતરરાષ્ટ્રીયકૃત વેબસાઇટને ઓપ્ટિમાઇઝ કરવું એ વિશ્વભરમાંથી ઓર્ગેનિક ટ્રાફિક લાવવા માટે આવશ્યક છે. અહીં કેટલીક મુખ્ય SEO શ્રેષ્ઠ પદ્ધતિઓ છે:
hreflang
ટૅગ્સ: સર્ચ એન્જિનને તમારી સામગ્રીની ભાષા અને પ્રાદેશિક ભિન્નતા વિશે જણાવવા માટે તમારા HTML ના<head>
માંhreflang
ટૅગ્સ લાગુ કરો. આ SEO માટે નિર્ણાયક છે. ઉદાહરણ તરીકે:<link rel="alternate" hreflang="en" href="https://example.com/en/" />
અને<link rel="alternate" hreflang="es" href="https://example.com/es/" />
- ભાષા-વિશિષ્ટ URLs: તમારા 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 ના મૂળભૂત સિદ્ધાંતોમાં નિપુણતા મેળવવી એ એક મૂલ્યવાન કૌશલ્ય છે જે આજના વૈશ્વિક વિકાસ પરિદ્રશ્યમાં તમારું મૂલ્ય વધારશે.