TerryCavanagh / VVVVVV

The source code to VVVVVV! http://thelettervsixtim.es/
Other
6.94k stars 556 forks source link

Mixed languages in custom levels #1070

Closed ffaf1 closed 7 months ago

ffaf1 commented 9 months ago

To reproduce:

Expected: if the level is in English, I expect every string to be English, it was a bit weird to have a single bit in Italian.

TerryCavanagh commented 9 months ago

Ohhh

That's kind of a good point, I guess? I can see how it'd be a little jarring. Still, it feels bad to just switch to English, especially when lots of the UI stuff is translated...

Yeah, I dunno what to do here.

Daaaav commented 9 months ago

This is working as intended - there's a distinction between the interface language and the level's language, and "You have found a lost crewmate!" is an interface string. In fact, we don't even associate any specific language with custom levels for several reasons, just which font should be used.

Should it be changed so in English levels all the interface text is in English no matter who plays it, and if a level is set to be Italian by the level creator, all the interface text is in Italian for everyone? I don't know. The pause menu probably ought to be in your own language. I see it more like how I have all my software in my own language, even social media platforms, while I may only use them to talk to other people in English. So I don't expect the platform to say "sent 5 minutes ago", "Copy Message Text" or "Person is typing..." in English just because the content inside it is in English. And custom levels are basically user-generated content.

ffaf1 commented 9 months ago

Q: does — or will — the level data include a language string (“the story is narrated in $LANG language”)?

Daaaav commented 9 months ago

No, we only store the font selection, which can be changed by the level creator. So all languages that use the original 8x8 font (so all except Chinese, Japanese and Korean) are stored the same way.

One of the reasons for this is that level creators would probably neglect to change the language, or not know it's an option. That way you would get a lot of "Spanish" levels in English, "French" levels in English, and so on, any time people want to make levels in English for an international audience. And if we use that setting to change any interface text (like "found a lost crewmate") then other people would unexpectedly see that in a language they don't speak. (And someone may not want to reveal which country they're from). I wanted to avoid people thinking they had to change their entire game's language to English in order to make an English level. (Conversely, if English is the default language for any level, anyone who wants to make a level in their own language may find some text not being translated...)

ffaf1 commented 9 months ago

I see.

I am not fond of the “your browser UI is in Italian, but the toot you read are in English” metaphor: this is a string inside a game, not a menu option, it has the effect — small but present effect — to break immersion.

If there is no plan to add a language stored in the level data, this issue can be closed.