Skip to content

Traditional Mongolian

Traditional vertical Mongolian is required at launch. Copy meanings were owner-approved on 2026-09-12, Compare corrected on September 13, exit actions approved on September 14, and Settings/review-empty spellings corrected on September 15. Migrated MenkLetter, Z52 glyphs, and spoken forms still need native-reader and device review. Changed wording returns to draft; prior approval does not transfer.

Source and rendering

  • All interface source, including operation names and accessibility templates, lives in MyangatKids/DesignSystem/AppCopy.swift; Operation.swift owns only arithmetic identity and symbols. Preserve the exact rows and placeholders in the copy inventory.
  • MongolianVerticalText converts one complete MenkLetter visual run directly to Z52 through pinned MongolConvertSwift v0.7.1. Render generated shape code only with bundled Z52 Tsagaan (default), Qimed, or Agola fonts; never persist it as copy or expose it to accessibility.
  • MongolianTextBlock splits ordinary-space-separated words into complete runs arranged as left-to-right columns. U+202F narrow no-break space attaches suffixes to the preceding run. Preserve variation selectors, controls, punctuation, placeholders, and {...} literal horizontal runs exactly.
  • Mongolian reads top-to-bottom, later columns left-to-right. Never rotate SwiftUI Text, reverse strings, convert individual letters, reconstruct source from Z52, or apply synthetic bold, tracking, or character-level animation.
  • Equations, Arabic numerals, operators, answer controls, progress, dates, filenames, and legal names stay horizontal and upright. Dates use numeric forms and 24-hour time, not device-language month names. Optional number words replace only selected question/answer values, with complete words side by side and operators unchanged.

Layout and interaction

DESIGN.md defines visual tokens; these are starting sizes, not permission to clip joining words:

  • Operation labels: about 27 pt; primary Practice labels: 27–30 pt; compact/utility labels: 20–26 pt. Default numeric equations use 64 pt, answers 44 pt. Scale semantically with Dynamic Type and fit each block at one shared scale.
  • Measure complete runs. Increase available height, wrap columns, or scroll before shrinking text. Never break inside a word. Full paragraph pagination, selection, and editing are not implemented.
  • Prefer 12–16 pt phone margins and roughly 880 pt maximum iPad content width. Use available width, not device-model checks. Standard screens aim to fit one task; short windows and accessibility sizes retain scrolling. Do not lock orientation.
  • Touch targets must be at least 44×44 pt, preferably 56 pt, with 8 pt separation where practical. State needs symbols, outlines, or semantic selection—not color alone.
  • Setup keeps operation/comparison choices equally sized; accessibility layouts may wrap. Root tabs may be icon-only but require complete Mongolian accessibility labels. Calendars and summaries retain upright counts, dates, and distinct outcome categories.
  • Practice keeps all four arithmetic choices or three relation choices. Correct answers advance; mistakes retain the question. Help and answer feedback open a separate dismissible explanation page, never an automatic wide-screen solution or duplicate explanation tile. Closing preserves state; guided answers wait for Next/Finish. Exit offers Keep, Drop, and Resume.
  • Question/answer number words are independent, default off, and available for ranges ending at or below 100; buged defaults on. In-round controls share the persisted Settings preferences. Font names render in their own typefaces without extra arithmetic previews or horizontal captions. Privacy rows remain noninteractive.
  • Respect Dynamic Type, Reduce Motion/Transparency, Increase Contrast, and safe areas. Keep mathematical models exact and horizontal; system animal emoji are provisional, not approved cultural artwork.

Accessibility and release review

Expose whole semantic MenkLetter phrases with mn-Mong, never generated Z52. Speech spacing replaces attached suffix separators and strips horizontal-run braces. Keep icons decorative inside labeled controls; visual transforms must not shrink accessibility frames. Use truthful approved labels, announce outcomes once, and avoid unnecessary focus movement. A language identifier does not guarantee a suitable VoiceOver voice.

Before release, review the smallest supported phone, a large phone, and a physical iPad in portrait, landscape, larger text, and resizable windows:

  • Native-reader approval of spelling, school terminology, number grammar, controls, suffixes, punctuation, glyphs, and spoken templates
  • Isolated/initial/medial/final reference forms, long joined words, and every selectable font after cold launch and switching
  • No clipping, reversed columns/equations, missing placeholders, or undersized controls
  • Arabic and number-word values with upright operators; accurate work mats and all outcome distinctions
  • VoiceOver, Switch Control, keyboard access, contrast settings, Reduce Motion/Transparency, and offline operation

Simulator checks alone are insufficient. Preserve bundled font/converter licenses and third-party design-reference notices; legal text stays verbatim and horizontal. Future Cyrillic support must be a separate horizontal mn-Cyrl resource, never a traditional-script fallback. See Implementation for current behavior and verification.

Comments

Comments are public and posting requires a GitHub account. Parents, guardians, and educators: do not share children's or other personal information.