This is an interesting case, I also managed some sites in similar locales, were people use a mix of English and local languages in the same sentences. (although most of the search would be in local language, just some terms in English)
What we did, is we used both language version for certain keywords in the title, description and headings.
If the subject of the page is blue widget, we might use:
blue widget local language version ([Blue widget english])
This seemed to serve us well, we would rank and get traffic for both terms.
Some people may ask why we didn't have separate pages for the different languages (as posed in the comments), and actually we did have the choice, you could select English or local language setting. However it was implemented in such a way it used dynamic serving on the single URL, the default being local language which is the only one google could see. (non seo friendly)
We proposed using a correct multiple language page set up, but it would be a big undertaking, a huge change to the platform, so it needed a good ROI. However, when looking at the data for how many people clicked the button to switch to English, it was very small,and the search demand in Google for English key terms was also very small. So the site was never updated to use separate language URLs, as the ROI wasn't there.
However your case is a bit different, where the entire search is in English, but you say they want to read it in Sinhala.
In this case even using separate URLs might not be the best option
- If they search in English, land on English page, but then have to switch language, they may bounce.
- Using separate language URLs, it means you local language pages will most likely not rank for English search terms, so you wont get the traffic anyway.
However, having your pages in just local languages with English or English mix titles, I would have thought they will have trouble ranking for pure English search terms any? However, you say it's getting traffic doing this now?
I might do some testing, you certainly have the traffic to test and if you have large amounts pages, or new content you could create, I might make 3 test groups.
A. Group of pages keep doing what you are doing (non-English+English mix meta data)
B. Group of pages using multiple page set up for different languages. (using correct hreflang set up)
C. Group of pages with a mix of local and English content (I mean the entire content, not just meta data). So you have a translated transcript. I mention this, as I think it would be an interesting test to do, and I saw a site doing it recently but cant find it now.
Or you could do nothing, carry on what you are doing, if you see performance drop and you suspect because of this, then do something about it.