For the past several years we’ve been using the Bilara webapp for translation. This was developed in house. We’ve encountered a number of shortcomings, and decided to rebuild from scratch. We’re using a completely different tech stack (elastic/HTMX/apollo/lit). It’s taken, well, a lot longer than I had hoped!
For the past few months I’ve been working steadily on this with Hongda, our main developer. In fact we’re meeting in a few minutes. We’ve made a lot of progress, but I won’t lie, there’s still a lot of work to do. I’d love to be able to open it up for translators to try out, but it’s still not ready.
The idea is to keep all the features of the old Bilara and add a bunch of new ones. I won’t rehash the old features. But here’s some screenshots of new things.
This one shows the “notifications” in the top bar. You can subscribe to a set of translations and then get notified if there are any changes. Most commonly, this will be used for translators working from English, who will then see when the translation is changed.
Here’s the notifications page, a list of translations, and you can click to see the diff.
Settings allow you to select who you get notifications from.
Separately, you can also see various features from the dropdown menu.
Unpublished changes shows your own changes. Normally when you translate, you simply work until you’re ready, then publish. But sometimes you may forget or be unclear about what changes you’ve made. This lets you review them. It takes you to a page that’s similar to the “notifications”.
Here you can see exactly what you’ve changed and make any adjustments.
We also have an Admin panel to help set up and manage users and projects.
User management:
Project management:
And ability to create new root files and change segments. Currently this is all done by working directly with JSON files.
Okay, to the translation page, where most translators will be living. Mostly the layout is familiar to old Bilara users.
But we can do a bunch of new things. Pali lookup!
We have click to search: just click on a word in the root or translation, and it will immediately populate the search column.
Search seems a lot faster, but we’re using it locally so we’ll have to see how it works on the web. Also, we should, I hope, have eliminated the problem with ghost results in search.
Column width can be dragged to whatever you like.
Related projects can be added and removed easily, without refreshing the page.
There’s another specialized feature that’s for those doing primary translation, i.e. working directly with Pali (Brahmali and myself) or Chinese (Charles) or others. You can split or merge segments in the browser.
This is only available for primary translators who are experts in the root language. We’ve built the user management accordingly.
This has two main uses:
- It makes adding new texts much easier. You can do an initial pass at segmenting the text based on punctuation or whatever, then revise it as you go through the translation.
- It also helps to fine-tune occasional cases where texts are segmented inconsistently, i.e. where the same passage is treated as one segment in one place, and two segments in another place.
When you split, it’ll tell you to check the HTML, which may have to be manually adjusted. By default, it inserts {}. which is just “no html”.
When splitting, there’s no way for the app to know where you want it to split, so the editor must make the adjustments by hand to the root text. Typically this is done for cases where punctuation and editing are inconsistent in different places.
It’ll add a new segment, and the correct adjustments to the segment numbers will be automatically propagated in the bilara-data files.
Merging is done similarly, except normally merges can be predicted—you simply add one segment to the other.
When splits or merges are made, translators who have translated that segment will get a notification. They can adjust their translation if necessary. Normally this is not really critical.
- If a segment is split into two segments, the translation is attached to the first segment.
- If two segments are merged into one, the two segments of the translation are both in the new segment.
But anyway, it’s good to check any changes and make any adjustments.
There’ll be a bunch of other things—between writing the last paragraph and this one, I met with Hongda and he showed me some new features. And there’s still a lot of testing and refinement. But it’s coming along well.
Oh, I’ve also reviewed the color schemes for contrast and accessibility, and added a new one (aruna) just for fun. It’ll be pretty easy if users want to create their own color scheme.















