Translation or localization

Started by MasterMatt, November 15, 2024, 11:16:42 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

MasterMatt

Hello,

Thank you very much for this project!

I was wondering, is it possible to define another language than English? I used to play it in French, back in the days. As a developer, I can help to integrate this into this NeoLemmix.

∫tan x dx

Hi MasterMatt, and welcome to the forums! :)

Support for other languages sounds like a great idea! Although a concern I have is that many level packs have custom intro/outro texts which wouldn't be feasible to translate. A screen might end up with a strange mix of French and English text.

WillLem

Out of interest, which aspects of the game were translated into French originally? For example, did the level titles still appear in English or were those translated to French?

I can imagine it being easy enough to add some translations of the various menus and generic preview/postview texts; in fact, individual packs can already do this to some extent.

Delphi might also have some built-in language support that could be called upon for translating things like dialogs/menus, that's also probably worth investigating.

namida

Not going to happen as an official feature for two reasons.

Firstly because I'm trying to wrap up NL development at this point.

Secondly, because NL's text rendering (except in the Windows style dialogs) do not support most characters outside of basic ASCII. This is more a concern for languages that use non-Latin scripts but also means accented vowels etc aren't supported currently.

It is possible that a community-made fork may choose to add such features, though.
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

WillLem

Quote from: namida on November 15, 2024, 11:14:55 PMaccented vowels etc aren't supported currently.

It is possible that a community-made fork may choose to add such features, though.

Assuming we go ahead with a community edition (currently likely), these characters can be added to the menu/panel font strings easily enough, but what might not be quite so easy is matching each of them to the relevant inputted character. That's something I'll probably need a bit of help with.

I'd also suggest that we start with English, French and German as supported languages. We could then add more on a request basis if needed.

I do wonder if it'll be necessary to manually add every language program-wide, or whether Delphi has built-in translation libraries that can handle stuff like dialogs, menus, etc...? For screens using the .png fonts (preview/postview, etc), I imagine those will need to be done manually, but it should be easy enough to achieve that; the text files would carry $ENGLISH, $FRENCH and $GERMAN sections to be parsed from depending on user's language selection.

namida

Delphi likely does have tools for this, but how well they work with non-Windows dialogs would be another matter. It may be easier to roll something custom in NL's case.

Matching the font entries to the right character index should be fairly trivial. The hard (or rather, tedious) part will be making the character graphics.

I would argue for German as a good first language to aim for too. German is probably the second most common language in the Lemmings community after English, so it would both be valuable to a large number of users and there should be plenty of people who can help with the translation. Korean would be a good target too - although not many are on this site, there is a sizeable Korean Lemmings community too - but that will be a much, much more time consuming task than German due to how Korean glyphs work in computers. It may be easier, when we get to non-Latin characters, to start with a language that still uses a simple straightforward alphabet (such as Greek or a language that uses Cyrillic).
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

∫tan x dx

I think one potential issue is that NeoLemmix is entirely data driven. There are comparatively few hard-coded strings in the engine that could be localised.
Even if support for different languages was added, this still doesn't update the text of existing levels and level packs. These will only have access to English text, and so no other language translations will exist.

A lemmings pack can contains meny instances of custom text:
- Main menu message ticker (including any custom graphics that pack might use)
- Level pre/post view messages
- Level title, pack name and author
- Level completion screen messages

These level packs will not have any support for translations into other languages. Support for this feature will require a change to both the level file format and the level pack format.

At any rate, the current engine limitations have not stopped users from creating level packs with non-English text. See https://www.lemmingsforums.net/index.php?topic=5206 for an example!  :)

MasterMatt

Quote from: namida on November 15, 2024, 11:14:55 PMSecondly, because NL's text rendering (except in the Windows style dialogs) do not support most characters outside of basic ASCII. This is more a concern for languages that use non-Latin scripts but also means accented vowels etc aren't supported currently.

That's unfortunate. French or German can still be read with regular ASCII, even if accented vowels are missing, like "é" for "e". But I do understand for Japanese or other languages this is not an acceptable solution.