Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
RestlessRodent

ReMooD Internationalization Help Request

Recommended Posts

ReMooD supports internationalization via Unicode, however translators are needed and help would be appreciated. If you would like to help, you may contact me or you can just translate and send me the text file. The specification is defined at http://remood.svn.sourceforge.net/viewvc/remood/trunk/doc/editing.htm#unicodelang. Please note that ReMooD does not support PKZips. Place your localization inside of a WAD file then launch ReMooD with -file yourwad.wad followed by -lang which matches your translation (ex: enus). I suggest you use http://remood.svn.sourceforge.net/viewvc/remood/trunk/wad/lumps/loc_enus.lmp as a base for your translation (contains all of the strings).

Please note that if a character does not exist in ReMooD it will be replaced with 0xFFFD or � (automatically when the character is drawn). You will need to create the graphic for the character, or you could contact me and request that I create such character provided you give me the Unicode identification.

Thanks for your help.

Share this post


Link to post

On a side note, one of the things on my "to do" list for a while has been to start a cross-source port i18n project. It should be possible to do with a dehacked patch for the strings and a WAD file for the graphics, similar to what I did with british.wad. I actually put some stuff together for the graphics part of it a while back, but never got round to progressing it any further. It would be interesting to see how many people would be interested in contributing translations.

Share this post


Link to post
fraggle said:

It would be interesting to see how many people would be interested in contributing translations.

I'd estimate that number to be quite low, honestly. Doom isn't a text-intensive game: I would understand an internationalization effort for something like Ultima Underworld 2, but Doom? The language is pretty simple and can be mostly ignored. Even people who don't speak English and didn't learn it at school already know what "new game", "save game", "load game" mean.

Further, it's just weird. For example, ZDoom supports internationalization too, and features French and Italian language lumps. (Could have a lot more as well, they just need contributors to make and complete them.) But playing in French or in Italian means not getting the messages and texts I'm familiar with. If the two barons at the end of E1M8 are not "the big badasses", something is wrong. Maybe I'm just a purist on this point rather than the rest.

Share this post


Link to post

Same here. I really feel no need to play with German texts. Maybe that's a result of German localizations often being on the bad side so I tend to avoid them in general - even for newer games.

I think it's a telling sign that the French and Italian texts in ZDoom are not up to date and there's no other languages.

And the string table based text handling in ACS is still waiting for its first user...

Share this post


Link to post
Never_Again said:

And after the head honchos had their say, here is $.02 from a prospective localization contributor.
I was intrigued by this thread at first, but seeing that it targeted a Legacy-based port and the sheer amount of work to be done, I thought "naah". If it was something any port could use, as fraggle suggested, or at least the more popular ones, like (G)ZDoom, prBoom-plus and Doomsday, it might be worth the trouble. But after reading Gez's succintly-put points ("the big badasses" - bullseye!) I must concur that this seems like just so much waste of time and resources.


ANY other port can implement this and can be compatible with each other. ReMooD is in Unicode (up to UTF-16 anyway, UTF-32 is planned) which means you can use any character and not just the 7/8-bit ASCII characters. I can see where you are coming from with the "big badasses", but what if you don't know English, what does it mean to you? Also, these translations are not just game text, story lines, and such, it is everything. Also if you know what printf is, you will know about %s, %i, and such. If you were to use Dehacked strings you will be limited to that ordering, however with this method you use $#. This means you can "blah $1 blah $2" turn into "meh $2 $1 meh" and even "$1 $1 bah" instead of "in order to make this string work we need $1 first and $2 second so we must change the wording to mean what we mean but take up more space.". Also, for Dehacked between all versions of Doom, you are limited to ASCII and replacing only a small subset of characters, you could use UTF-8 but anything above 7-bit ASCII will just be garbled text on ports that do not support it. Alot of the Doom strings are the same and can be represented between different source ports. It's also improper to remove accents and marks on characters, because "año" which is year, becomes "ano" which is anus/asshole, so unless you mean "One anus/asshole later, the demonic forces invaded" it won't be a problem unless the Demons invaded the UAC because they are all assholes.

EDIT: Also these localizations are client side only, so in network and demo environments you don't need whichever dehacked lump (if it's forced or not, usually it is forced) and if it is forced, you are forced to play in a language you don't understand.

EDIT: The Dehacked method is also not viable in the long run.

Share this post


Link to post

Internationalization & localization is something we've been planning as part of the 2.0 architectural overhaul in Doomsday. Although it would potentially allow for the game strings to be translated this is not the primary motivation for implementing it. From our POV, of much more value is the possibility to translate everything else, UI text, help strings etc.

IMO using DEH patches for this is simply not practical. Similarly I don't particularly like the method used in ReMood. The method used in Zdoom is better but its still not suitable for what we want.

You can see how we plan to handle this in the Doomsday i18n/UI text proposal.

Share this post


Link to post
Graf Zahl said:

Same here. I really feel no need to play with German texts. Maybe that's a result of German localizations often being on the bad side so I tend to avoid them in general - even for newer games.

I think it's a telling sign that the French and Italian texts in ZDoom are not up to date and there's no other languages.

And the string table based text handling in ACS is still waiting for its first user...

Agreed. I do however appreciate the Swedish letter support in Zdoom. Though I admit I'm not sure if and how much it relates to this though. But still.

Share this post


Link to post
GhostlyDeath said:

ReMooD is in Unicode (up to UTF-16 anyway, UTF-32 is planned) which means you can use any character and not just the 7/8-bit ASCII characters.

Any characters?
You can render Chinese and Arabic text (to name a few) ??

I tend to think simply using Latin1 encoding (and making that work well) is much more practical than Unicode.

BTW, EDGE supports quite a few languages, the Swedish one is probably very good because one of our developers was Swedish. The strings are stored (in EDGE 1.34) in this file: doom_ddf/language.ldf

Share this post


Link to post

Interesting that he'd spend time on something like that, I don't know anyone in Sweden who use Swedish translations even in the odd rare cases where they are available. (Except for windows though. But that's mostly for families with children.)

For example. My brother borrowed Syndicate Wars from me, and he saw the Swedish option in the game. And he just had to try it. (I suggested that he didn't waste his time with that as I had already tried it years ago) It was hilarious because it was horribly silly and then he had to reinstall the game just to get the English version. The dark spooky cyberpunk game became totally ridiculous. :p

Share this post


Link to post

The dehacked route might not be practical, but it would still be nice to have a cross-port effort to do this, rather than focussing on a single port.

Rather than defining an entirely new format, it is probably best to reuse the gettext .po format that is already widely used. I've created a project on LaunchPad and uploaded a file containing the strings from Doom. The file has to be approved first, unfortunately, but once it's done, it should be possible to submit translations through the website.

Share this post


Link to post

ReMooD stores the "C" Locale in unicode (via wchar_t*) in dstrings.c. Currently lines are printed via CONS_PrintfUL(UInt32, const wchar_t*, ...) but I plan on moving it's code to another function and having that function call the new function.

The changing of '%'s to '$'s fixes a major security flaw in the DeHackEd and such. Also, gettext causes the same problem as every translation submitted MUST match the printf statement otherwise the game will fail. If a statement is changed then all translations must change. The % order problem would exist still also.

---------------------------

To DaniJ, your UI Text idea requires an internet connection and only lists help items though it may be expanded to actual strings. In ReMooD everything down to console messages are translated as if the game written in that language, hence why there will be possibly up to 1500 strings in the far future (there's currently 851 and the string library is only partly complete).

---------------------------

andrewj said:

Any characters?
You can render Chinese and Arabic text (to name a few) ??

I tend to think simply using Latin1 encoding (and making that work well) is much more practical than Unicode.

BTW, EDGE supports quite a few languages, the Swedish one is probably very good because one of our developers was Swedish. The strings are stored (in EDGE 1.34) in this file: doom_ddf/language.ldf


Any character between 0x0020 and 0xFFFD in Unicode can be renderered as long as the glpyh exists in said font. Virtual characters that are merged characters aren't supported yet, i'll have to figure out how to work with them. There is right to left support, but it is manual as of r988 and doesn't do the desired action when a right to left marker was placed in. Before this version is released however it will be automatic so you may use Hebrew and such.

-------------------------

Never_Again said:
I was intrigued by this thread at first, but seeing that it targeted a Legacy-based port and the sheer amount of work to be done, I thought "naah". If it was something any port could use, as fraggle suggested, or at least the more popular ones, like (G)ZDoom, prBoom-plus and Doomsday, it might be worth the trouble.


As I've said before, any port can use this provided they implement it. This thread is the first public mention of such feature in ReMooD and how it works. Also popularity is an opinion. Also, what does it matter if ReMooD is Legacy based? Doom Legacy doesn't support any new stuff ReMooD supports but ReMooD supports Doom Legacy stuff.

-------------------------

Any other ports may implement this at their discretion, ReMooD is GPL so you could just copy and paste the code (provided your source port is GPL compatible). Another thing is that if other ports do decide to implement this then all strings will be available to all other ports, hence if you translate for one port, you translate for all of them. I believe that ReMooD is the first to offer Unicode (I havn't heard of any other ports that do it [in game, not a launcher]). This is an opportunity for others to play the game in their native language.

Everything was planned down to how the characters would be represented in WADs and such, the format was balanced out to determine which method would be the best for translation into other languages.

This feature was designed to be spread.

-------------------------

But, I'm asking for help of others in translating ReMooD (and others who implement this) which is why this topic was created.

Share this post


Link to post
GhostlyDeath said:

This feature was designed to be spread.



It won't happen. If there was some need for localization we'd already have it. Just look at ZDoom: The option has been there forever but nobody uses it.

Share this post


Link to post
GhostlyDeath said:

To DaniJ, your UI Text idea requires an internet connection and only lists help items though it may be expanded to actual strings.

No it does not require an internet connection because distrib packages will bundle a copy of the cache at build time. An internet connection is only required if the user subsequently wishes to update.

In ReMooD everything down to console messages are translated as if the game written in that language, hence why there will be possibly up to 1500 strings in the far future (there's currently 851 and the string library is only partly complete).

As I said, this is precisely the reason why we have been planning to do the same in Doomsday, hence the proposal I linked to, in which this use is covered.

My own opinion is that I fail to see the benefit in adopting a crossport standard for i18n.

If we are only to consider simple game string translations, then perhaps agreeing a set of extensions/enhancements to DEH patches for this purpose would be OK.

However using the same solution for everything else just won't happen AFAIC.

Share this post


Link to post
DaniJ said:

If we are only to consider simple game string translations, then perhaps agreeing a set of extensions/enhancements to DEH patches for this purpose would be OK.



Doesn't this already exist in BEX?

ZDoom's LANGUAGE is just an extension of this system, btw.

What I don't like about ReMooD's method is that it requires another WAD namespace. Aside from that it doesn't look much different from ZDoom's method which stores the language identifier in the text file itself instead of the file name.

Share this post


Link to post
Graf Zahl said:

It won't happen. If there was some need for localization we'd already have it. Just look at ZDoom: The option has been there forever but nobody uses it.


Maybe they did not know of such feature? Usually the cases with features they said they would use are that they don't know exist (i've seen it happen everywhere) or such feature of such port(s) does not meet such expectations. Doom had English and French for a very long time but it was compile time. Also, internationalization is fairly limited without Unicode, it would be like writting an essay (in English) without using the letters a and e (and not cheating with 'v'ry , 'nd, and &).

-------

And again for the DEH patches, it is truly not viable. The EXEs and close relatives only support the display of 62 (or 61) unique characters. These characters are from '!' to '_' inclusive. Accented characters could only be represented by modifying actual game characters which would impede on other lines of text possible in game chat from other players. Also, anything beyond accent stripped western languages cannot be done without causing a huge mess (your DEH files would also look like "asuhdfasuhbfhsdofuah" too which would make it very hacky and very dirty). You could use UTF-8, but that would break in every single port and version of EXE.

-------

Any source port wishing to follow only needs to understand Unicode and the format of the specification, the code can work any way it wants. It was designed to localize any format that can be localized and is viable to localize (not just text strings, you could localize console variables but then those wouldn't work if you change languages). Also for backwards and forwards compatibility between past and future complient ports on and after 11/27/2009.

--------

Graf Zahl also said:

What I don't like about ReMooD's method is that it requires another WAD namespace. Aside from that it doesn't look much different from ZDoom's method which stores the language identifier in the text file itself instead of the file name.


The namespace markers are WAD organization and for ease of autodetection by ReMooD (in the hunt for localizations within WAD files). If you use PKZips, you should be splitting off localizations anyway (hence /language/). ReMooD doesn't care if you specify a localization that isn't between LC_START and LC_END (Initially, I never thought of using markers but I did so to ease in organization and scope narrowing), however the name scheme of LOC_llcc is required. Also, let's say you have 100 translations, which would take faster? Looking for "jaja" in the filename or opening every single file and searching all of it for "jaja" (there could be multiple languages per file)?

Share this post


Link to post
GhostlyDeath said:

Maybe they did not know of such feature? Usually the cases with features they said they would use are that they don't know exist...

When localisation was added to Zdoom there were a number of calls for people to contribute translations. One or two were done and other half-hearted attempts were made. The subject of language support does come up on the Zdoom forum every now and again but, I think it would be fair to say, the reaction has been apathetic at best. Simply put, it would seem that most people don't care enough about it for it to be popular.

In fact, IIRC, there was a time when Zdoom would read the system language setting and try and apply localisation based on that (if it was available for the language in question). I'm sure you can imagine, there were a number of posts from people asking how to turn it off.

Share this post


Link to post
Enjay said:

When localisation was added to Zdoom there were a number of calls for people to contribute translations. One or two were done and other half-hearted attempts were made. The subject of language support does come up on the Zdoom forum every now and again but, I think it would be fair to say, the reaction has been apathetic at best. Simply put, it would seem that most people don't care enough about it for it to be popular.

In fact, IIRC, there was a time when Zdoom would read the system language setting and try and apply localisation based on that (if it was available for the language in question). I'm sure you can imagine, there were a number of posts from people asking how to turn it off.


Well, I thought about that but I thought no. I was thinking of a menu that that lists all of them with your language auto selected but not actually chosen (the "C" Language would still be in use).

Share this post


Link to post
Enjay said:

In fact, IIRC, there was a time when Zdoom would read the system language setting and try and apply localisation based on that (if it was available for the language in question).

It still does so.

Share this post


Link to post

Nobody outside France and Italy (and a few other territories) will ever notice considering the lack of translations.

I know I'd complain if ZDoom started throwing German texts at me. :D

Share this post


Link to post

EE will be remaining 7-bit ASCII. We use characters > 127 for text rendering control purposes :P

Share this post


Link to post

Nah... if it supports Double Bytes Characters Set(DBCS) like Chinese(Traditional & Simplified) and Japanese, it would be cool but I think the problems like Graf Zahl said still happens - not many people cares.

I was wonder if ZDoom supports localization for DBCS language, but I think it won't happens ever due it needs a lot of works... :(

Share this post


Link to post
playerlin said:

I was wonder if ZDoom supports localization for DBCS language, but I think it won't happens ever due it needs a lot of works... :(


No. And it never will. If it ever decided to support an extended character set it'd be UTF-8 so that it can handle all characters with only one encoding.

Share this post


Link to post

Since this topic IS on the subject on ReMooD I have a curious question to ask: Will ReMooD ever support Joystick and/or controllers at some point in the future?

As for my language skills, I'm sorry to say that I don't know anything else besides English.

Share this post


Link to post
Graf Zahl said:

No. And it never will. If it ever decided to support an extended character set it'd be UTF-8 so that it can handle all characters with only one encoding.

Agreed, UTF-8 is the only sensible Unicode encoding format, at least when developing C/C++ applications (and probably in general). If you read about UTF-8, it really is an outstandingly clever piece of design. I particularly like how 99.9% of existing C code will just work with UTF-8 without any changes at all.

Share this post


Link to post
Philnemba said:

Since this topic IS on the subject on ReMooD I have a curious question to ask: Will ReMooD ever support Joystick and/or controllers at some point in the future?


Eventually, once I get around to doing it, very busy.

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×