Open Nightinggale opened 4 years ago
IMO translating should be as easy as possible for volunteers. Also it should be as easy as possible for the team to manage translations. A look into crowdsourcing platforms for translations might be interesting.
I checked for CrowdIn ( https://crowdin.com/pricing ) and Transifex ( https://www.transifex.com/pricing/ ) and found out, that both offer their services for free to non-commercial open source projects.
In my view there are pros and cons of using a translation platform. Pros:
Cons:
IMO the pros are really big and outweigh the cons (which might be not small too), as I believe the intersection of people who are interested in translating for fun, who have basic knowledge about git and who search github for a suitable project is very small. On the other hand, if a volunteer pops up here, it would be easy to ask her/him to join the translation project on the platform and that person might be even happy to do so, because of the tools those platforms provide.
If using a translation platform is an option to the team, this might also have an impact on how the language data structure, you are propsing to modify, should look like for best compatibility and easiest integration of languages into the mod.
I am against crowdsourcing platforms. I personally have been offered their help in translation by people who:
but @Nightinggale proposal is very good.
If we are to add support for multiple languages, we better figure out a way for translators to add and maintain those languages without making it really complicated regarding adding the strings to the git repository.
One approach would be to support subfolders in the Text xml folder. Each subfolder should then contain precisely one language. This allows each of those folders to be a standalone git repository with a standalone permission setup. This will keep the git log clean and avoid translators (intentionally or not) from touching non-translation stuff. Also it avoids the issue where two languages updates the translation for the same line and then causes a git conflict.
We can make the language repositories git submodules if we want, but to keep it simple, maybe they shouldn't be as that will make the setup easier for git novices.
The DLL file would need updating to read subfolders. It should read the regular files first and then the subfolders, overwriting any string, which then has a new translation. In the end all the read strings should be forwarded to the exe and untranslated strings should appear in a log.
Any untranslated string should still appear in English ingame. Otherwise we will break the translations whenever they are missing even a single string.
Some feature to push new strings into translations would be nice. It shouldn't be a hassle to manually add strings whenever a new English string is added.