Translations / wording issues

Started by Grey DeMonstr, November 26, 2021, 08:36:42 AM

Grey DeMonstr

Good day. I'm playing Cryofall on russian language, and sometimes I see either untranslated strings (mostly error messages when placing objects / working with plants / etc), or just grammarly incorrect phrases / typos.

It there any way to contribute to the project translations?

Thanks.

ai_enabled

Hello!

QuoteI see either untranslated strings (mostly error messages when placing objects / working with plants / etc)
This happens when the server sends an error message. All messages from the server are always in English due to how it's implemented. Usually, the client performs the same check and shows a proper error message, but sometimes it sends a command (e.g. "place a floor there") that is not valid on the server by the time it arrives there (e.g. you've moved the cursor around and there is a repeated command to place a floor at the same tile). So you see this non-localized error message.

QuoteIt there any way to contribute to the project translations?
Feel free to send me a PM with your findings (the screenshots are not necessary but may help to figure out where exactly the text is displayed). Over the years, a significant number of typos and mistakes were fixed thanks to the community feedback!

Regards!


Grey DeMonstr

Thanks, will send as soon as meet something next time.

PS Error messages from the server side can be translated. The simpliest (though not the best way in perspective) is to change server reply api, so it will contain not only error text but also some error code. When the next client update is released, it can utilize error code to display the localized message. More stable and supportable way is to make server code translatable. In this case the client can send own locale to the server in the request header (or once when the session is established).

ai_enabled

#3
Regarding the error message. We've quite a complex and probably unique system regarding localization. The whole game code (Github repo (https://github.com/AtomicTorchStudio/CryoFall) is compiled right on the client-side and the localized strings are simply injected in place of the original text. So technically the code doesn't work with any localization management, everything is already localized to the user's language on the compilation stage. It both saves performance and makes programming a bit easier (localization is always a pain).
Unfortunately, this approach doesn't allow us to have anything else besides a single language (of course, English) on the server's side.
Reworking everything to assign IDs manually would be Sisyphean labor as we have hundreds of string entries that can be passed as errors. We have some ideas how we can rework this and both have proper server-side logging and client-side localization of incoming errors but so far it's unlikely that we will have time to work on this fairly rare corner case. And as this issue is usually related to the construction tasks only when you place something in batches (like wall blueprints and floor) we will probably just find a simple workaround only for this case. We've already done this in some cases by reworking remote methods to provide an enum value instead of the raw string in the result.

Regards!

Grey DeMonstr

Never have a thought you game is opensourced :) Then should I simply create pull requests in case of localization issues? :)

Your translation approach is kinda interesting, will think about it. Now it makes much more sense.

ai_enabled

The localization is sourced from a private Crowdin project which is managed by our publisher and has professional translation team for each language. The pull request to CryoFall GitHub repository is not the appropriate way to fix the translation issues. We need to manually provide the translation mistakes report and suggested changes to Crowdin project and (once everything is verified) import the localization files into the game repository.

Regards!

Grey DeMonstr