Агуулгыг алгасах

Олон хэл (i18n)

Экосистемийн бүтээгдэхүүн ба баримт нь олон хэлээр үйлчилдэг. Энэ хуудас нь хэлний бодлого, техникийн хэрэгжүүлэлтийг тайлбарлана.

Хэлний бодлого

Түвшин Хэл
Заавал Монгол (mn) · English (en)
Гол бүтээгдэхүүнд + 中文 (zh) · Русский (ru)
Экосистемийн түвшний баримтад Монгол + НҮБ-ын зургаан албан ёсны хэл

Монгол нь үндсэн хэл — эх бичвэр Монголоор бичигдэж, бусад руу орчуулагдана.

НҮБ-ын зургаан албан ёсны хэл гэдэг нь: العربية (ar) · 中文 (zh) · English (en) · Français (fr) · Русский (ru) · Español (es). Энэ сайт (экосистемийн түвшний баримт) нь Монгол дээр нэмээд тэдгээр зургааг, нийт долоон хэлээр үйлчилнэ.

Яагаад яг эдгээр хэл вэ?

Экосистемийн түвшний баримтын уншигч нь зөвхөн дотоод хөгжүүлэгч биш — олон улсын түнш, донор байгууллага, стандартын байгууллага, гадаадын интеграторууд ч багтана. НҮБ-ын зургаан хэл нь дэлхийн хамрах хүрээ хамгийн өргөнтэй, аль нэг улсад давуу байдал үүсгэдэггүй төвийг сахисан сонголт.

Тухайн платформын гүн техникийн баримт (endpoint схем, SDK лавлах) нь энэ бодлогод хамаарахгүй — тэдгээр нь репо-дотроо MN + EN хэвээр.

Бүтээгдэхүүн дэх i18n

Апп-ууд хэрэглэгчийн хэлийг дараах дарааллаар тодорхойлно:

  1. Хэрэглэгчийн тохиргоо (профайлд хадгалагдсан),
  2. Browser-ийн Accept-Language,
  3. Үндсэн хэл (mn).

AI туслах нь хэрэглэгчийн хэлээр хариулна — асуулт ямар хэлээр ирсэн, түүгээрээ.

Хоёр давхар толь

Толь бичиг нь хоёр газар байрладаг бөгөөд хилийг нь ойлгох нь чухал:

Толь Хаана Хэмжээ
Дундын — нэвтрэлт, цэс, админ, eID @gerege/ui-core 846 түлхүүр × 7 хэл
Платформын — тухайн салбарын нэр томьёо lib/<platform>I18n.ts Платформ бүрт өөр, ихэвчлэн 2–4 хэл

Дүрэм: дундын толь нь дундын гадаргууг л мэднэ. Хэтэвчийн IBAN/хуулга, хөгжүүлэгчийн порталын API каталог, Ring-ийн бизнес-процессийн нэр томьёо — эдгээр нь аппын өөрийн толинд байрлана.

Шалтгаан нь өртөг: Ring-ийн 1,104 нэр томьёог дундын толинд хийвэл kiosk, POS, хэтэвч бүгд түүнийг үүрэх бөгөөд хэл нэмэх бүрд тэр өртөг долоо дахин нэмэгдэнэ.

Платформын толь нь орчуулаагүй хэлэнд англи руу уналт хийнэ — иймд интерфэйс долоон хэлтэй байхад маркетингийн текст, салбарын нэр томьёо цөөн хэлтэй байж болно.

Интерфэйсийн хэл ≠ агуулгын хэл

Толь бичгийг дөрвөөс долоо болгоход Record<Lang, …> гэж бичсэн газар бүр тасарсан: landing-ийн маркетингийн текст, API каталогийн тайлбар — эдгээрийг хүн бичдэг тул интерфэйстэй адил тэлдэггүй. Тийм газарт хэлний олонлогоо LANDING_LANGS мэтээр ил зарлана.

Баримтын i18n

Репо бүрийн баримтын сайт нь MkDocs Material + mkdocs-static-i18n ашиглана.

Suffix бүтэц

Файлын нэрэнд хэлний код нэмж орчуулна:

docs/
├── index.md        ← Монгол (үндсэн)
├── index.ar.md     ← العربية
├── index.zh.md     ← 中文
├── index.en.md     ← English
├── index.fr.md     ← Français
├── index.ru.md     ← Русский
└── index.es.md     ← Español

Тохиргоо:

plugins:
  - i18n:
      docs_structure: suffix
      fallback_to_default: true
      reconfigure_material: true
      reconfigure_search: true
      languages:
        - locale: mn
          default: true
          name: Монгол
          build: true
        - locale: en
          name: English
          build: true
        - locale: ar
          name: العربية
          build: true
        # … zh · fr · ru · es мөн адил

Үндсэн хэл нь сайтын үндэс (/) дээр, бусад нь дэд зам (/en/, /ar/, /zh/, /fr/, /ru/, /es/) дээр build хийгдэнэ.

Fallback

fallback_to_default: true — орчуулагдаагүй хуудас нь үндсэн хэлний агуулгаа харуулна. Тиймээс орчуулга дутуу байсан ч сайт бүтэн ажиллана, 404 гарахгүй.

Энэ нь практик шийдэл: баримт байнга нэмэгддэг, орчуулга хойно явдаг. Бүх хуудсыг зэрэг орчуулах хүртэл хүлээх нь баримтыг нийтлэхгүй байхтай адил.

Цэсний нэрс нь файлын агуулгад биш, mkdocs.yml-д байдаг тул локал бүрд тусад нь орчуулна:

        - locale: en
          nav_translations:
            Архитектур: Architecture
            Платформууд: Platforms
        - locale: ar
          nav_translations:
            Архитектур: البنية المعمارية
            Платформууд: المنصّات

Шинэ хуудас нэмэхэд nav_translations-ыг зургаан локал бүрд нэмэхээ мартвал тэр цэсний бичиг Монголоороо үлдэнэ — build унахгүй тул зөвхөн нүдээр л илэрнэ.

Баруунаас зүүн бичиг (RTL)

العربية нь баруунаас зүүн уншигддаг. Material нь ar локалыг таниад <html dir="rtl"> тавьж, цэс, гарчиг, хүснэгтийн урсгалыг өөрөө эргүүлнэ — тусад нь direction заах шаардлагагүй.

Гэхдээ код блок ба ASCII диаграм нь RTL-д ч зүүнээс баруун хэвээр үлдэнэ. Энэ нь зөв: техникийн тэмдэглэгээ (URL, команд, YAML) чиглэл солиход утга нь эвдэрнэ.

Кирилл гарчгийн anchor

Стандарт slugify нь кирилл үсгийг хаядаг

Python-Markdown-ийн үндсэн toc slugify нь ASCII бус тэмдэгтийг устгадаг. Үүний улмаас ## Танилт гарчиг нь хоосон id авч, хуудас доторх холбоос (#танилт) ажиллахгүй болно.

Шийдэл — unicode хадгалдаг slugify ашиглах:

markdown_extensions:
  - toc:
      permalink: true
      slugify: !!python/object/apply:pymdownx.slugs.slugify {kwds: {case: lower}}

Энэ сайт мөн адил тохируулагдсан.

Орчуулгын дараалал

Шинэ баримт нэмэхэд:

  1. Монголоор эх бичвэрийг бич — эх сурвалж үргэлж Монгол.
  2. Strict build-ээр Монгол хувилбарыг тогтворжуул (холбоос, anchor шалгагдана).
  3. Дараа нь зургаан хэл рүү нэг дор орчуул. Нэг хуудсыг хэсэгчлэн орчуулж орхивол хэлүүд хооронд агуулга зөрнө.

Нэг хуудсыг бүх хэлээр нь дуусга

Хэлээр нь биш, хуудсаар нь ажиллах нь дээр: нэг баримтыг зургаан хэл рүү зэрэг хөрвүүлэх үед нэр томьёо, бүтэц, хүснэгтийн мөр бүгд ижил үлддэг. Эсрэгээр «эхлээд бүх хуудсыг англиар» гэж явбал хожим орчуулагдсан хэлүүд нь аль хэдийн өөрчлөгдсөн эх бичвэрийг барих болно.

Юуг орчуулж, юуг орчуулахгүй вэ

Орчуулна Орчуулахгүй — байгаагаар нь
Урсгал бичвэр, гарчиг, хүснэгтийн утга Домэйн нэр (sso.gerege.mn)
Тайлбар, анхааруулга, зөвлөмж Репо-гийн нэр (template-gerege-mn)
Диаграм доторх тайлбар шошго Код, YAML, команд, endpoint зам
Хүснэгтийн толгой Бүтээгдэхүүний нэр (eID Mongolia, G-Sign)
Төлөвийн шошгын текст Стандартын нэр (OIDC, PKCE, RFC 3161)

Файлын нэр ба хавтасны бүтэц хэзээ ч орчуулагдахгүйplatforms/sso.ru.md байна, платформы/sso.md биш. Ингэснээр хэл хооронд шилжихэд URL-ийн зам ижил хэвээр үлдэж, гүн холбоос ажилласаар байна.

Энэ сайтын төлөв

Экосистемийн түвшний баримтын бүх хуудас долоон хэлээр бэлэн:

Локал Хэл Зам Төлөв
mn Монгол (үндсэн) / ✅ бүрэн
ar العربية /ar/ ✅ бүрэн
zh 中文 /zh/ ✅ бүрэн
en English /en/ ✅ бүрэн
fr Français /fr/ ✅ бүрэн
ru Русский /ru/ ✅ бүрэн
es Español /es/ ✅ бүрэн

fallback_to_default нь идэвхтэй хэвээр — шинэ хуудас нэмэгдээд орчуулга нь хойно явсан үед тэр хуудас Монгол эхээ харуулна, сайт бүтэн ажиллана.

Алдаа, эвгүй хэллэг олбол репо руу PR илгээнэ үү — дэлгэрэнгүйг Энэ баримтын платформ хуудаснаас.