Needed: localisation fallback / default

I think this is mainly a question for @logan, but I thought I’d put it out here as it might be of more general interest. I would like to know more about Nova’s fallback / default behaviour when it comes to localisation.

For context: my two extensions are both localised into English and German (as I am native German speaker). For the first one, my solution was to put the English strings verbatim everywhere (literally into static files, and as both the index and default argument in nova.localize() calls), then use them as translation index in my strings.json. This has proven very cumbersome especially for longer strings, however: one typo corrected in the English original means my localisation breaks, and I can’t even search and replace for the string because I just nixed the original. This is just about manageable for a single translation, but I would actually like to include more (starting with French, a language I do at least speak moderately well), and this simply does not scale well enough.

So, for the second one, I picked up the time honoured tradition of UI localisation of using index strings verbatim (something like “eslint.opts.disable.description“) and putting the English strings in their own localisation table. I thought that would close the case, but re-reading the Nova documentation, I am left wondering what exactly the behaviour will be if the user has neither of the two languages in their preferred language cascade (I think macOS adds English by default, but the user can remove it in language preferences, unless I am entirely mistaken)… Will my users only see the index strings? Or does Nova fall back on English automatically?

If the latter, all is well except for the fact it should documented. If the former: consider this a request for adding a way to specify a default localisation table for an extension. As I explained above, basing translation tables on literal baseline strings does not scale well, and there is no such thing as a default argument for JSON strings.

I have some other “nice to have” wishes for localisation (for instance, for Nova to pick up a translation for the extension description, or the ability to add translated README, CHANGELOG and LICENSE files), but the fallback cascade / base localisation thing is foremost in my mind right now.


Terribly sorry to be a bother, but as this is the issue holding up my next extension update, could I trouble you for some insight, @logan?

For the record, the answer is “no, Nova does not have any localisation fallback rule”, it seems.

This sounds like a perfectly reasonable API request. I’ll mark this on our list!

1 Like