Intermediatei18n25 daq18-apr, 2026

Statik saytlar uchun i18n — 5 lokal

CMSsiz slash-yo'l lokalizatsiyasi: lug'atlar, dinamik [locale] yo'llar, hreflang va beshta tilni sinxronda saqlash.

Arxitektura

/en/blog/hello    ← standart lokal, baribir prefiksli (alohida holdan tozaroq)
/ru/blog/hello
/zh/blog/hello
/ja/blog/hello
/de/blog/hello

Uch harakatlanuvchi qism:

  1. Lug’atlar — har lokal uchun bitta JSON, bir xil shakl, Record<Locale, typeof en> sifatida tiplangan, shunda kalit siljiganda TypeScript baqiradi.
  2. Dinamik yo’llarsrc/pages/[locale]/... va har lokalni qaytaradigan getStaticPaths().
  3. Kontent qaytarilishi — postlarni bir marta en/da yozing, tarjimalar yetguncha har lokal ostida render qiling.

Sizni qutqaradigan tip hiylasi

export type Locale = "en" | "ru" | "zh" | "ja" | "de";
const dictionaries: Record<Locale, typeof en> = { en, ru, zh, ja, de };

typeof en — bu sxema. en.jsonga kalit qo’shing va qolgan to’rt lug’at yetib borguncha build sinadi.

Headni unutmang

Har lokal uchun <link rel="alternate" hreflang="..."> va x-default, har sahifa uchun canonical hamda Astro.urldan olingan yo’llar. Qidiruv tizimlari zerikarli santexnikani mukofotlaydi.