ad044 / LainTSX

WebGL implementation of the Serial Experiments Lain PSX game
GNU General Public License v3.0
479 stars 25 forks source link

'GNU gettext' as basis for translation into different languages #9

Closed GermanAizek closed 3 years ago

GermanAizek commented 3 years ago

@ad044, @elliotcraft79 Why do you not use a long-used standard for writing international applications that uses .pot (Portable Object Template) and .po (Portable Object) Reference here: https://en.wikipedia.org/wiki/Gettext#Translating

ghost commented 3 years ago

This solution would rise many problems that don't necessarily need to be this overcomplicated.

Personally I prefer the current option which is just translating .vtt's and just changing them on the fly, since its more resource efficient while the game is adapted for web browsers.

2-3 commented 3 years ago

The current way of doing things might not be perfect and going by absolute best practices for i8n. But it's simple and works very well for our case. I agree with @lelenium that using gettext would introduce unneeded complexity. It also would take quite a lot of effort and development time which is frankly better spent elsewhere.

As I see it: If we get to a point where our current implementation leads to impactful problems -- whether they be in UX or development -- then we should consider using GNU gettext or similar. But until then we gain nothing from it. And I doubt we'll ever get there, seeing how complete the game is at this point.

ghost commented 3 years ago

There is an option for more localized strings, for example the front page could be localized using a json file perhaps. Gettext would still feel unnecessary in that situation unless there's a framework for it, but that would still be an additional dependency.

Another example would be the keywords attached to a certain audio recording. Those technically could be stored as gettext, but more space and bandwidth efficient would be just another json file with them (that would also made it easy to parse through crowdin)