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

**URL:** <https://discourse.cataclysmdda.org/t/mod-suggestion-easily-turning-this-game-into-the-most-powerful-language-learning-game/28681>\
**Category:** The Lab\
**Tags:** mod, todo\
**Created:** [April 14, 2023, 6:57pm UTC](https://discourse.cataclysmdda.org/t/mod-suggestion-easily-turning-this-game-into-the-most-powerful-language-learning-game/28681 "2023-04-14T18:57:42Z")\
**Posts on this page:** 18\
**Page:** 1

<div class="post-metadata">

**Author:** ![Marcus\_Aseth](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.cataclysmdda.org/marcus_aseth/32/12345_2.png) [@Marcus\_Aseth](https://discourse.cataclysmdda.org/u/Marcus_Aseth)\
**Post date:** [April 14, 2023, 6:57pm UTC](https://discourse.cataclysmdda.org/t/mod-suggestion-easily-turning-this-game-into-the-most-powerful-language-learning-game/28681/1 "2023-04-14T18:57:42Z")

</div>

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 🙂

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 🙂 (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 🙂

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

---

<div class="post-metadata">

**Author:** ![kevin.granade](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.cataclysmdda.org/kevin.granade/32/1316_2.png) [@kevin.granade](https://discourse.cataclysmdda.org/u/kevin.granade)\
**Post date:** [April 21, 2023, 3:30pm UTC](https://discourse.cataclysmdda.org/t/mod-suggestion-easily-turning-this-game-into-the-most-powerful-language-learning-game/28681/2 "2023-04-21T15:30:29Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![Marcus\_Aseth](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.cataclysmdda.org/marcus_aseth/32/12345_2.png) [@Marcus\_Aseth](https://discourse.cataclysmdda.org/u/Marcus_Aseth)\
**Post date:** [April 21, 2023, 8:57pm UTC](https://discourse.cataclysmdda.org/t/mod-suggestion-easily-turning-this-game-into-the-most-powerful-language-learning-game/28681/3 "2023-04-21T20:57:20Z")

</div>

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

> <https://github.com/CleverRaven/Cataclysm-DDA/pull/65109>
>
> Adds to Keybind an entry called "Toggle language to English" (default assigned t…o the key "," for testing purposes). If from the game options a language different from English was selected, when using this key while playing the language will toggle between that language and English on the fly every time it is pressed.
> 
> \<!-- HOW TO USE: Under each "#### Heading" below, enter information relevant to your pull request.
> Leave the headings unless they don't apply to your PR.
> 
> Please read carefully and don't delete the comments delimited by "\< !--" and "-- \>"
> Once a pull request is submitted, automatic stylistic and consistency checks will be performed on the PR's changes.
> The results of these can be either seen under the "Files changed" section of a PR or in the check's details.
> 
> NOTE: Please grant permission for repository maintainers to edit your PR. It is EXTREMELY common for PRs to be held up due to trivial changes being requested and the author being unavailable to make them. --\>
> 
> \#### Summary
> Features "Adds a key to toggle the language to English and back on the fly while playing"
> \<!-- This section should consist of exactly one line, edit the one above.
> 1. Replace the word "Category" with one of these words: Features, Content, Interface, Mods, Balance, Bugfixes, Performance, Infrastructure, Build, I18N.
> 2. Replace the text inside the quotes with a brief description of your changes.
> Or if you don't want a changelog entry, replace the whole line with just the word "None" (with no quotes).
> For more on the meaning of each category, see:
> https://github.com/CleverRaven/Cataclysm-DDA/blob/master/doc/CHANGELOG\_GUIDELINES.md
> If approved and merged, your summary will be added to the project changelog:
> https://github.com/CleverRaven/Cataclysm-DDA/blob/master/data/changelog.txt --\>
> 
> \#### Purpose of change
> This feature is of great value to two categories of people: \*\*language learners\*\* and \*\*translators\*\*.
> \*\*・For language learner\*\* this would instantly turn the game into one of the best language learning games currently available. It's often the case a language learner can read and maybe understand all the words in a sentence but fail to put the meaning together because of the grammar, and showing them the translation would bridge that gap. The ability of comparing two languages is found in many language learning platforms, and with 180.000 string of text, adding the power to compare two versions of a text could turn this game into a very powerful language learning tool for thousands of people if not more.
> \*\*・For translators\*\*, I can tell you I was told someone in the Italian translation team was not Italian to begin with and was submitting horrible translations blatantly made using Google Translate, there is no telling to the damages already done from this individual and something similar might have already happened for the other translations as well. With this functionality when a translator spots an iffy translation all he has to do is press a key to be shown the source material, in turn pushing them towards continued improvement and polish of the translations, where otherwise they might not even have bothered to check.
> 
> \<!-- With a few sentences, describe your reasons for making this change. If it relates to an existing issue, you can link it with a # followed by the GitHub issue number, like #1234. If your pull request \*fully\* resolves an issue, include the word "Fix" or "Fixes" before the issue number, like: Fixes #xxxx
> If there is no related issue, explain here what issue, feature, or other concern you are addressing. If this is a bugfix, include steps to reproduce the original bug, so your fix can be verified. --\>
> 
> 
> 
> 
> 
> \#### Testing
> I've tested it in game without any problems, the change is simple to begin with.
> 
> 
> 
> \#### Additional context
> Here's a video of this working:
> https://vimeo.com/818041476
> 
> I consider this the first stage of this feature. It would be great if it can make it into the game as is because it adds already some value, but a problem to point out is that it is limited in the fact it only works when no menus are open. Therefore it won't do anything if you're inside the inventory or reading a weapon description, but to \*\*truly\*\* be useful and work as intended this key need to toggle the language regardless of where you are (because for example closing the inventory, toggling language and going back into inventory is cumbersome).
> Unfortunately I don't know yet how to achieve that, so my idea was to settle for this first, and after this is done and approved attempt a second improved version that works globally. Help for that would be \*\*greatly\*\* appreciated, because I have strong doubts I could tackle that alone.
> 
> 
> 
> 
> \<!--README: Cataclysm: Dark Days Ahead is released under the Creative Commons Attribution ShareAlike 3.0 license.
> The code and content of the game is free to use, modify, and redistribute for any purpose whatsoever.
> By contributing to the project you agree to the term of the license and that any contribution you make will also be covered by the same license.
> See http://creativecommons.org/licenses/by-sa/3.0/ for details. --\>

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 🙂  
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 :\

---

<div class="post-metadata">

**Author:** ![Marcus\_Aseth](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.cataclysmdda.org/marcus_aseth/32/12345_2.png) [@Marcus\_Aseth](https://discourse.cataclysmdda.org/u/Marcus_Aseth)\
**Post date:** [April 22, 2023, 3:36pm UTC](https://discourse.cataclysmdda.org/t/mod-suggestion-easily-turning-this-game-into-the-most-powerful-language-learning-game/28681/4 "2023-04-22T15:36:05Z")

</div>

I’ve done some progrss!

[![](https://vumbnail.com/820101200.jpg "Toggle language to english in CDDA - 2nd update") ](https://vimeo.com/820101200)

As the video shows, it now works across multiple menus 😃 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 🙂

---

<div class="post-metadata">

**Author:** ![wangy9451](https://avatars.discourse-cdn.com/v4/letter/w/67e7ee/32.png) [@wangy9451](https://discourse.cataclysmdda.org/u/wangy9451)\
**Post date:** [April 24, 2023, 8:27am UTC](https://discourse.cataclysmdda.org/t/mod-suggestion-easily-turning-this-game-into-the-most-powerful-language-learning-game/28681/5 "2023-04-24T08:27:24Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![Marcus\_Aseth](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.cataclysmdda.org/marcus_aseth/32/12345_2.png) [@Marcus\_Aseth](https://discourse.cataclysmdda.org/u/Marcus_Aseth)\
**Post date:** [April 24, 2023, 9:33am UTC](https://discourse.cataclysmdda.org/t/mod-suggestion-easily-turning-this-game-into-the-most-powerful-language-learning-game/28681/6 "2023-04-24T09:33:24Z")

</div>

That’s exactly what it can do 😃  
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 🙂

---

<div class="post-metadata">

**Author:** ![Marcus\_Aseth](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.cataclysmdda.org/marcus_aseth/32/12345_2.png) [@Marcus\_Aseth](https://discourse.cataclysmdda.org/u/Marcus_Aseth)\
**Post date:** [April 24, 2023, 4:39pm UTC](https://discourse.cataclysmdda.org/t/mod-suggestion-easily-turning-this-game-into-the-most-powerful-language-learning-game/28681/7 "2023-04-24T16:39:18Z")

</div>

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 😃

---

<div class="post-metadata">

**Author:** ![Marcus\_Aseth](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.cataclysmdda.org/marcus_aseth/32/12345_2.png) [@Marcus\_Aseth](https://discourse.cataclysmdda.org/u/Marcus_Aseth)\
**Post date:** [April 24, 2023, 6:45pm UTC](https://discourse.cataclysmdda.org/t/mod-suggestion-easily-turning-this-game-into-the-most-powerful-language-learning-game/28681/8 "2023-04-24T18:45:34Z")

</div>

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

[![](https://vumbnail.com/820629407.jpg "Toggle language to english - completed") ](https://vimeo.com/820629407)

---

<div class="post-metadata">

**Author:** ![wangy9451](https://avatars.discourse-cdn.com/v4/letter/w/67e7ee/32.png) [@wangy9451](https://discourse.cataclysmdda.org/u/wangy9451)\
**Post date:** [April 30, 2023, 3:52am UTC](https://discourse.cataclysmdda.org/t/mod-suggestion-easily-turning-this-game-into-the-most-powerful-language-learning-game/28681/10 "2023-04-30T03:52:18Z")

</div>

What’s wrong?  
come on!

---

<div class="post-metadata">

**Author:** ![Marcus\_Aseth](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.cataclysmdda.org/marcus_aseth/32/12345_2.png) [@Marcus\_Aseth](https://discourse.cataclysmdda.org/u/Marcus_Aseth)\
**Post date:** [April 30, 2023, 9:50am UTC](https://discourse.cataclysmdda.org/t/mod-suggestion-easily-turning-this-game-into-the-most-powerful-language-learning-game/28681/11 "2023-04-30T09:50:56Z")

</div>

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 🙂  
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 🙂

---

<div class="post-metadata">

**Author:** ![Marcus\_Aseth](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.cataclysmdda.org/marcus_aseth/32/12345_2.png) [@Marcus\_Aseth](https://discourse.cataclysmdda.org/u/Marcus_Aseth)\
**Post date:** [May 8, 2023, 5:42am UTC](https://discourse.cataclysmdda.org/t/mod-suggestion-easily-turning-this-game-into-the-most-powerful-language-learning-game/28681/12 "2023-05-08T05:42:51Z")

</div>

Great news, it has been merged! 😃  
Have fun with it 😉

---

<div class="post-metadata">

**Author:** ![wangy9451](https://avatars.discourse-cdn.com/v4/letter/w/67e7ee/32.png) [@wangy9451](https://discourse.cataclysmdda.org/u/wangy9451)\
**Post date:** [May 8, 2023, 2:17pm UTC](https://discourse.cataclysmdda.org/t/mod-suggestion-easily-turning-this-game-into-the-most-powerful-language-learning-game/28681/13 "2023-05-08T14:17:27Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![Marcus\_Aseth](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.cataclysmdda.org/marcus_aseth/32/12345_2.png) [@Marcus\_Aseth](https://discourse.cataclysmdda.org/u/Marcus_Aseth)\
**Post date:** [May 8, 2023, 8:57pm UTC](https://discourse.cataclysmdda.org/t/mod-suggestion-easily-turning-this-game-into-the-most-powerful-language-learning-game/28681/14 "2023-05-08T20:57:47Z")

</div>

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)

---

<div class="post-metadata">

**Author:** ![wangy9451](https://avatars.discourse-cdn.com/v4/letter/w/67e7ee/32.png) [@wangy9451](https://discourse.cataclysmdda.org/u/wangy9451)\
**Post date:** [May 9, 2023, 10:57am UTC](https://discourse.cataclysmdda.org/t/mod-suggestion-easily-turning-this-game-into-the-most-powerful-language-learning-game/28681/15 "2023-05-09T10:57:23Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![Marcus\_Aseth](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.cataclysmdda.org/marcus_aseth/32/12345_2.png) [@Marcus\_Aseth](https://discourse.cataclysmdda.org/u/Marcus_Aseth)\
**Post date:** [May 9, 2023, 11:00am UTC](https://discourse.cataclysmdda.org/t/mod-suggestion-easily-turning-this-game-into-the-most-powerful-language-learning-game/28681/16 "2023-05-09T11:00:50Z")

</div>

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 🙂  
If you set it to local, it will act as you described and will work only outside of menus.

---

<div class="post-metadata">

**Author:** ![wangy9451](https://avatars.discourse-cdn.com/v4/letter/w/67e7ee/32.png) [@wangy9451](https://discourse.cataclysmdda.org/u/wangy9451)\
**Post date:** [September 13, 2023, 4:51am UTC](https://discourse.cataclysmdda.org/t/mod-suggestion-easily-turning-this-game-into-the-most-powerful-language-learning-game/28681/17 "2023-09-13T04:51:04Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![Marcus\_Aseth](https://sea2.discourse-cdn.com/flex016/user_avatar/discourse.cataclysmdda.org/marcus_aseth/32/12345_2.png) [@Marcus\_Aseth](https://discourse.cataclysmdda.org/u/Marcus_Aseth)\
**Post date:** [September 13, 2023, 5:22am UTC](https://discourse.cataclysmdda.org/t/mod-suggestion-easily-turning-this-game-into-the-most-powerful-language-learning-game/28681/18 "2023-09-13T05:22:24Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![wangy9451](https://avatars.discourse-cdn.com/v4/letter/w/67e7ee/32.png) [@wangy9451](https://discourse.cataclysmdda.org/u/wangy9451)\
**Post date:** [September 17, 2023, 3:26pm UTC](https://discourse.cataclysmdda.org/t/mod-suggestion-easily-turning-this-game-into-the-most-powerful-language-learning-game/28681/19 "2023-09-17T15:26:42Z")

</div>

[https://www.reddit.com/r/cataclysmdda/comments/16l3fcm/use\_cdda\_to\_learn\_languages/](https://www.reddit.com/r/cataclysmdda/comments/16l3fcm/use_cdda_to_learn_languages/)
