At Praxium Labs we build this for Nepali businesses every month; this is the field-tested version. Localising a mobile app to Nepali is not just translation. Layout breaks, font weights look wrong, dates confuse, numbers stop being recognisable — the details add up to "this app was clearly built for someone else" if done carelessly.
Fonts
- Noto Sans Devanagari — Google's reference font; comprehensive, slightly clinical
- Mukta — popular in Nepali web/mobile; warmer feel
- Hind — designed for Devanagari + Latin pairing; clean bilingual look
- Annapurna SIL — designed with Nepali language usage specifically in mind
- Bundling: subset fonts to your character set; typical full Devanagari font is 200+ KB, subset version 40-80 KB
Layout and line height
- Devanagari has tall ascenders (शिरोरेखा, the horizontal line above letters) — lines need more vertical space than English
- Default line-height of 1.5-1.7 for body text
- Button height should accommodate vowel marks above and below — typically 48 dp minimum (44 dp standard for English)
- Avoid very small text — Devanagari character distinguishability drops below 14 sp
Numbers and dates
- Numbers: Arabic numerals (1, 2, 3) are universal in Nepali daily use. Devanagari numerals (१, २, ३) are formal / traditional — offer as setting
- Currency: "रू" or "NPR" before the amount; comma-separated thousands (Indian-style: 1,00,000 or Western-style: 100,000 — pick one and stick to it; Western-style increasingly common)
- Dates: default Bikram Sambat (the Nepali calendar). Always provide toggle to AD for international users and for business with foreign clients
- Time format: 12-hour with AM/PM is conventional in Nepali UX; 24-hour for business / military / aviation contexts
Pronouns and honorifics
- Choose tone consistently: "तपाई" (formal "you") for most consumer apps; "तिमी" (informal) only for explicitly youth-oriented products
- "हजुर" (respectful affirmative) in confirmations — feels native, but only for products with a customer-service / hospitality feel
- First-person plural ("हाम्रो", "we"): warmer than third-person institutional voice
Content guidelines
- Never auto-translate — write Nepali natively. Auto-translated text reads obviously machine-generated to native speakers
- Concise: Nepali tends to be ~20% longer than English. Account for it in fixed-width UI (buttons, labels)
- Avoid English borrowing in formal contexts (banking, government) where Nepali equivalents exist. Tech contexts comfortable with English loanwords ("नेटवर्क", "अपडेट")
- Currency / measurement / address conventions: match Nepali norms — kg, kilometre, NPR, full Nepali addresses
Testing with native speakers
No amount of process replaces user testing with native Nepali speakers across age groups. Common issues caught only in testing: button text that fits English but overflows in Nepali; honorific tone mismatched to user expectation; date pickers defaulting to Gregorian when Nepali Bikram Sambat is more natural for the context.
String externalisation
Every user-visible string in your app must be in a localisation file, not hardcoded in code. Flutter: l10n with ARB files. React Native: i18next or react-intl. Native iOS / Android: built-in localisation systems. Set up linting that fails CI when hardcoded strings appear in UI code — catches drift early. For broader Devanagari font and rendering considerations, see our Devanagari web guide.
Layout for Devanagari
- Line height — Devanagari uses more vertical space than Latin. Bump line-height by 10-15% when displaying Nepali text
- Font fallback chain — primary Devanagari font, then system fallback (Noto Sans Devanagari on Android, .SF Devanagari on iOS)
- Text-input fields — test that Devanagari users can type via Nepali keyboard, Google Indic keyboard, or transliteration
- Mixed-language strings — "Tap शुरू बटन" — handle font fallback gracefully so the Devanagari character does not render as a square
- Numbers — convention varies; default to Western Arabic numerals (1, 2, 3) even in Nepali strings; Devanagari numerals (१, २, ३) for traditional / older audience
Frequently asked questions
Do Flutter / React Native handle Devanagari well?
Yes — both render Devanagari correctly out of the box with appropriate fonts. No special configuration is needed beyond supplying a Devanagari-capable font.
Should I default to Nepali or English?
Detect from device locale; respect user override prominently in settings. For Nepal-targeted apps, default to Nepali if device locale is set to Nepali; for international-facing apps default to English.
How long does localisation take?
Adding Nepali to an existing English app: 3-6 weeks for translation + UI adjustment + testing. Building bilingual from start adds ~15-25% to project timeline.
What about other Nepali scripts (Maithili, Bhojpuri)?
Most use Devanagari script with vocabulary differences. Standard Nepali (Devanagari) is widely understood; specific localisation is rarely worth the cost for SMEs.
How do I find a good Nepali translator?
Avoid bulk translation services. For consumer-facing apps, find a Nepali copywriter (not just translator) who understands product UX. Rates: NPR 5-15 per English word for high-quality copywriting.
How do I QA Devanagari rendering across devices?
Test on at least 3 Android versions (latest, latest-2, oldest you support) and 2 iOS versions. Test on a low-end Tecno / Itel — older device fonts vary considerably. Capture screenshots of every screen in Nepali; eyeball for layout breaks.
Can I auto-translate strings?
For initial draft only; human review is mandatory. Auto-translated UI feels cheap and trains users to distrust your app. Budget for a real Nepali UX writer.
Who can build this in Nepal?
Praxium Labs — Nepal's AI and automation consultancy, based in Lalitpur — designs and builds the systems described in this guide for Nepali businesses and for international teams hiring from Nepal. Start a project or see all services.