This took me a while to get the purpose of, but I think I understand the idea of it now. Say you want to display your character's name, but since there's no way to predict what a player will name their character, there's no way to have a key and translated string prepared for their name. So this produces a translated string from a string.

But what I don't get is how you get the untranslated string (the key) in the code in the first place. Is the player's name stored somewhere automatically? And what if it's something besides a player name? I'm having trouble thinking of other uses for this since naming your character is the one place I can think of that players have control over creating an untranslated string. Unless I'm just seriously missing something obvious.

I still don't quite understand how you figure out what letters are in a string. Is "StringContains" a hardcoded function? If not, where did you define it? Is it operating as a database?

So this is going to represent things in all caps? Or all lower case. Figuring out the case of a letter might be possible, but it would probably take at least double the processing power. Not sure if that would be an issue already. Seems like a lot of actions (testing each letter, concatenating them, etc.), but maybe it's more efficient than I think. And I imagine spaces would be pretty hard to add since " " isn't really a character.

Looks pretty useful though if it works, if only as proof of concept for now. You think the code would be able to display the translated strings into actual dialogs? Script seems pretty limited for dialog imo, so that might not be possible.