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

Орчуулга

Долоон хэл, гурван давхарга, нэг үүсгэгч. frontend/lib/i18n ба frontend/scripts/i18n-translate.mjs-ийн кодоос уншиж бичигдсэн.

Баримтын төв


Долоон хэл

Монгол + НҮБ-ын албан ёсны зургаан хэл (араб, хятад, англи, франц, орос, испани). Монгол нь эх сурвалж, бусад нь орчуулга.

Жагсаалт нь дур зоргоор биш, олон улсын байгууллагуудын хэрэглэдэг жишигт тулгуурласан — тиймээс найм дахь хэл нэмэх нь файл нэмэх биш, бодлого өөрчлөх ажил.

Бүтээгдэхүүний танилцуулга долоон хэлээр бүрэн байдаг. Техникийн баримт бүр долоон хувилбартай байх албагүй.

Гурван давхарга

Давхарга Хаана Хэрхэн шалгагдах
Цөмийн толь lib/i18n/core.ts Компиляцын үед — TranslationKey
Аппын толь registerDictionary(appId, …) Ажиллах үед — энгийн мөр
Overlay lib/i18n/locales/<хэл>/ Дутуу түлхүүр англи руу унана

Цөмийн түлхүүрийн үсгийн алдаа нь build алдаа хэвээр. Аппын түлхүүр нь мөр — өөр репод амьдардаг апп энэ репогийн мэддэггүй үгсийг өгдөг тул өөр байх аргагүй. t() хоёуланг нь авна.

Өмнө нь толь нь index.tsx дотор 25 import, 25 spread-ээс баригддаг нэг объект байсан ба хажууд нь тус бүр ~1381 мөртэй таван overlay файл байв. Апп нэмэх нь тэднийг бүгдийг засахыг шаарддаг байсан — хүн бүр дундын толь хүссэндээ биш, аппын үгс очих өөр газар байгаагүйд.

Бүртгэлийн дараалал хамаагүй: t() нь хайлт бүрд бүртгэлээс уншдаг, нэгтгэсэн объектыг барьж авдаггүй.

Үүсгэгч

npm run i18n:translate -- --locale fr           # юу өөрчлөгдөхийг харуулна
npm run i18n:translate -- --locale fr --write   # locales/fr.ts бичнэ

Платформ Gemini-тэй аль хэдийн ярьдаг (copilot, орчуулгын панель); энэ нь тэр л загварыг интерфэйс дээрээ, хүсэлт бүрд биш build-ийн үед хэрэглэж байгаа хэрэг. Хүсэлт бүрд орчуулах нь дэлгэц бүр дээр латенси, мөнгө төлж, зочилсон болгонд арай өөр үг авна гэсэн үг.

Гурван дүрэм:

  1. Хэзээ ч дарж бичихгүй. Зөвхөн overlay-д дутуу түлхүүрүүд илгээгдэнэ — хүний засвар үүрд үлдэнэ, дахин ажиллуулах нь үргэлж аюулгүй.
  2. Placeholder зохиохгүй. {name} зэрэг нь гаралт дээр шалгагдаж, алдсан эсвэл нэрийг нь өөрчилсөн орчуулга хаягдана — таарахаа больсон placeholder нь хэрэглэгчид шууд хаалт болж харагдана.
  3. Техникийн нэрсэд хүрэхгүй — tenant, RBAC, OAuth2, eID, SKU, e-Barimt зэрэг нь бүтээгдэхүүний үгсийн сан, зохиол биш.

Гаралт нь ноорог. Интерфэйсийн машин орчуулга нь хянахад хангалттай сайн, уншаагүйгээр гаргахад тохиромжгүй байх хангалттай олон удаа буруу байдаг — overlay бүрийн толгойд ч тэгж бичигдсэн.

Хуудасны хэл

Monгол агуулгатай хуудсыг <html lang="en"> гэж зарлавал Chrome түүнийг автоматаар «орчуулж», брэндийн нэрийг ч өөрчилнө. Хэлээ зөв зарлана.