I was reading up on adding localization to a Godot game, because it’d be nice even for English to store really long pieces of text somewhere else than the Godot scene files.
There are two main approaches csv and gettext. The CSV method seems to be the simpler of the two, requiring just a CSV file where all the translations are put into. However, that’s also a limitation as PRs doing different translations would cause merge conflict hell and probably limit how well fans could make translations.
gettext is different in that it has one file per translation so no conflicts like that, but to properly generate the files and update translations you need to install the gettext tools (though there seem to also be online translation services that support gettext). One additional future benefit with this approach is that it would be possible to write a script that automatically extracts all the translatable strings from the game, though that might be a bit hard to make for C# source code.
There is already at least one in-progress translation that uses the csv method:
Though it seems to be on-pause currently (at least on Github).
So I think we should go for the gettext style translations, making the automated tool for creating the translation template can be left for later.