This is a bit unrelated to this thread’s purpose but still about i18n which I’ve been thinking for a while now. As somebody who have worked on many PRs involving localization, there are a couple gripes I have with our current localization system and some possible ideas for streamlining it.
I find our current way of adding new localizable strings a little too convoluted, specifically the way we have to manually fill new entries in en.po after extracting SOURCE_STRING
texts (the translation identifiers). I’ve seen how Godot does localization, it seems they don’t even have an en.po file, the source string for English is the actual string itself! I think this is far more efficient and the benefit to this method is that we don’t have to do double work when adding new texts on the UI.
The next thing that bothers me is having to update the localization in every PR that touches localizable texts, this not only bloat many PRs but is the source of many merge conflicts to date, I know that this is to self-enforce up-to-date localizations and make a maintainer’s live easier but it gets tiring for PR makers. I think we could optimize a lot of this work by just doing the update maybe once every week, maybe have a bot that do that which also detects localization changes so it wouldn’t open redundant PRs. This kind of relates to the first point in that no manual en string addition will be needed.
This would be a massive overhaul and something would need to be done with existing translations in Weblate so I don’t expect something like this would be worked on anytime soon, but those were key points I feel could be improved upon as a regular contributor. Overall I think a refactor of the current system will be a worthy investment.