Орчуулга¶
Долоон хэл, гурван давхарга, нэг үүсгэгч. 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-ийн үед хэрэглэж байгаа хэрэг. Хүсэлт бүрд орчуулах нь дэлгэц бүр дээр латенси, мөнгө төлж, зочилсон болгонд арай өөр үг авна гэсэн үг.
Гурван дүрэм:
- Хэзээ ч дарж бичихгүй. Зөвхөн overlay-д дутуу түлхүүрүүд илгээгдэнэ — хүний засвар үүрд үлдэнэ, дахин ажиллуулах нь үргэлж аюулгүй.
- Placeholder зохиохгүй.
{name}зэрэг нь гаралт дээр шалгагдаж, алдсан эсвэл нэрийг нь өөрчилсөн орчуулга хаягдана — таарахаа больсон placeholder нь хэрэглэгчид шууд хаалт болж харагдана. - Техникийн нэрсэд хүрэхгүй — tenant, RBAC, OAuth2, eID, SKU, e-Barimt зэрэг нь бүтээгдэхүүний үгсийн сан, зохиол биш.
Гаралт нь ноорог. Интерфэйсийн машин орчуулга нь хянахад хангалттай сайн, уншаагүйгээр гаргахад тохиромжгүй байх хангалттай олон удаа буруу байдаг — overlay бүрийн толгойд ч тэгж бичигдсэн.
Хуудасны хэл¶
Monгол агуулгатай хуудсыг <html lang="en"> гэж зарлавал Chrome түүнийг
автоматаар «орчуулж», брэндийн нэрийг ч өөрчилнө. Хэлээ зөв зарлана.