A lot of Sri Lankan businesses serve two audiences at once: customers who are more comfortable in Sinhala, and customers, partners or overseas visitors who expect English. A bilingual website handles both — but only if it's built for two languages from the start, rather than having a second language bolted on later.
When we built the Adhyathmika Bhikshun website, a blog and resource site for a community of spiritual monks, every page had to exist in both English and Sinhala: teachings, video guides, the donations page and the blog itself. These are the decisions that mattered most.
Give each language its own URL
The simplest way to "translate" a site is a button that swaps the text on the same page. It's also the worst for search engines and for sharing. If both languages live at the same address, Google only ever sees one of them, and someone who shares a link can't be sure which language the other person will get.
Instead, give each language its own address — for example / for English and /si/ for Sinhala — and link them together with hreflang tags so search engines know the two pages are translations of each other. Each version can then rank on its own for searches in that language.
Use real Unicode Sinhala fonts
Older Sinhala websites often used "legacy" fonts that map Sinhala letters onto English characters. They look right on screen, but the underlying text is gibberish: it can't be searched, copied properly, read by screen readers or indexed by Google.
Always use Unicode Sinhala text with a proper web font. Good free options include Noto Sans Sinhala, Noto Serif Sinhala, Abhaya Libre and Yaldevi. Pair them with your English typeface so headings and body text feel like the same brand in both languages.
Design for different line lengths and heights
The same sentence rarely takes up the same space in two languages. Sinhala vowel signs also sit above and below the main letters, so lines need more vertical breathing room than English.
In practice that means:
- a slightly larger line height for Sinhala body text,
- buttons and navigation that can grow without breaking,
- headings that are allowed to wrap onto two lines,
- never baking text into images, where it can't be translated.
Checking every page in both languages during design — not after launch — saves a lot of rework.
Make the language switcher obvious
Put the switcher where people look first: the top of the page, and again in the mobile menu. Write each option in its own language and script — English and සිංහල — so a visitor recognises their language even if they can't read the other one. Avoid flags: a language isn't a country, and Sinhala and English are both spoken far beyond one flag.
When someone switches, take them to the same page in the other language, not back to the home page.
Translate the invisible parts too
Page titles, meta descriptions, image alt text, form labels, error messages and confirmation emails all need translating. These are easy to miss because you don't see them while browsing, but they're exactly what appears in Google results and in a customer's inbox.
Plan who writes and updates each language
Machine translation is a useful starting point, but it struggles with tone, religious and cultural terms, and anything that needs to sound natural. Have a fluent person review every page. Then agree who will update each language later: a site where the Sinhala version is three months behind the English one quietly loses trust.
If you're planning a site in Sinhala, Tamil or another language alongside English, we're happy to talk it through — get in touch.