Mod Suggestion: Easily turning this game into the most powerful language learning game

I should start by saying I don’t have the programming knowledge to make this into a reality, so I’m only suggesting the idea to make this to you guys :slight_smile:

So, essentially I’m working at the italian translation right now (only just started, 350 strings in and 58.000 to go but I plant to keep going) and I’ve also been studying japanese for 10 years and moderator of a discord japanese study server with thousands of users, I like innovative ways to learn a language and now I see the great potential CDDA has for this.
The feature was already found in an old MMORPG called Guild Wars, essentially you could set the language say to Japanese, and then by simply holding a key (I believe was either CTRL or ALT) the text of the game would instantly revert to English until the release of the key.
You know how many time someone reading a blob of text in japanese understand all the single words but can’t quite put together the meaning because of the grammar, and quickly seeying the corresponding english would be all that was needed to finally piece it all together?!
This would turn what with other games would be a tedious 10 min digression search on the internet in a simple button click.
This would make for an already extremely deep game filled with text into a very powerful and close to perfect language learning game/tool, and not only I would use it in my study but also point N2 level japanese learners to it :slightly_smiling_face: (N2 level still probably the entry point because of the lack of furigana)

As far as I know, this is something no other game currently offers and might become a huge avenue for CDDA to get popularity among all the language learners across the world, and it’s only a button away :slight_smile:

Let me know what you think of this idea, and if you’re willing to make it happen :slight_smile:


I’m not in a position to implement this, but technically speaking is very doable. The base game already has all of the English text loaded so all you would need to do is add an option to our translating functions to toggle them of with a setting and then redraw the current screen.

There would be complications I’m not thinking of for sure, but in broad strokes it sounds feasible.

I’ve done it few days ago and is ready to be merged :smiley:

Unfortunately in it’s current state it works outside of menus only, so one would need to close the inventory or exit the crafting menu for example - but for translator is still way better than having to cycle language from the options :slight_smile:
The problem I’ve encountered to it working on every menu is that, for what I’ve managed to understand, in order to registre a key to show in the keybind you need to associate it (register with) a specific context.
And so I’ve registered my keybind under the DEFAULTMODE context, but this way my keybind won’t operate in the INVENTORY context and every other menu context :\

I’ve done some progrss!

As the video shows, it now works across multiple menus :smiley: Need to figure out how to access the player inventory through “g” to try and redraw the items entries
Anyone who wants to contribute to this is welcme :slight_smile:

For non-English users, is there a function to temporarily switch the English to other languages?

My native language is Traditional Chinese, but I want to learn English and contribute to the translation in the future.

That’s exactly what it can do :smiley:
Essentially when you set the game to a language other than English, that language gets recorded and when you press the binded key it goes from that language to English and back. So it can do “Traditional Chinese ↔ English” as well.
Also good news, now it refresh correctly inventory and crafting menu when the key is pressed, only one left to figure out is the refreshing of the “item info” panel and the PR will be complete :slight_smile:

1 Like

Good news, I’ve covered all the menus that previously didn’t worked including item info and compare menu, I consider this finished and is waiting for a good samaritan to merge it :smiley:

1 Like

final video of it working pretty much on every panel that matter :slight_smile:


What’s wrong?
come on!

I don’t think anything is wrong, the PR is completed but it might simply take time for people to review 250 lines of code and make sure all is in order, so I would say at least two weeks is a fair wait before wondering if anything is wrong :slight_smile:
There is also the fact this might not be the most exciting modification to the game for vast majority of people, so probably some luck is required in having someone with merge rights that has also interest in this change.
But I’ve got a plan B - if after two weeks this appears to be getting ignored and forgotten, I’ll make a slimmer PR with only 60 lines of code instead of 250. That’s achieved by removing the functionality from the crafting menu and item_info menu, but the primary goal is to get it into the game, and then I can add those functionality back in with following PR in smaller pieces :slight_smile:


Great news, it has been merged! :smiley:
Have fun with it :wink:

1 Like

Only the main screen can be switched, what about the others?

It works in game when no other menus are open, in Inventory, Examining an Item, Comparing an Item, in the Building Menu, in the Crafting Menu, in the Character Info menu, and probably few other places, but those are the major ones.
The game log windows unfortunately doesn’t translate the old text when you switch the language because that is text that gets stored previously in only one language.
I might do a second PR that store the log in the two languages used by this option so the log can be switched as well, but it would be a bit far in the future since now I’m busy translating the game in my native language.

Quick explanation on how to use it:

1 . From Keybinds, add a global keybind to “Toggle language to English”
2 . From the option menu, change the language to something other than English
3 . Use the keybind in game to toggle between choosen language and English

(it will work either if the game starts in a language other than english, or if the language is changed from option to something other than english)

1 Like

The mod itself is not as easy to use as the demo video. The only interface I can switch languages ​​is the main operation interface. Character status, inventory and crafting menus cannot switch languages. This is probably a mistake.
But I tested both on windows and android, and on android I don’t know what triggers the other introductions to switch smoothly.

Have you set a global keybind, right? As opposed to a local one.

I’ve just downloaded and tested the latest experimental and it works perfectly, as in the video.
It might also be the translation you’re using doesn’t have those strings translated yet, so despite you pressing the key the text would stay in english.
Although you mentioned Chinese, and that’s almost complete, so that’s probably not the case.
Check that keybind is set as global :slight_smile:
If you set it to local, it will act as you described and will work only outside of menus.

1 Like

Do you need my money to help you? Because I think this function needs to be improved, or I may look for someone with experience in this area.

What kind of improvement do you have in mind?
Anyway I went back learning modeling / 3d graphics in the hope to turn it into a job and earn from it, so I don’t think I’ll be able to work on this in the foreseeable future

1 Like