Jump to content
The Dark Mod Forums
Sign in to follow this  
Hyeron

Localizations

Recommended Posts

English version:

 

 

Hi everyone.

 

First let me make this clear : I am in no way a member of, affiliated with, or paid by the TDM team. Localization is not a priority for the team at the moment, is not supported by the team at the moment, errors in translated missions are in no way their fault, well you know the drill if you come from TTLG and stuff I guess.

 

The team probably has other things to do first (or rather, they should, we're talking 1.0 here ;)). In the meantime, I'd just like to have a bit of fun with their work, as others probably would (don't the russian people here already do? :))

 

TDM is something I just hope will get the following and praises it does deserve, but it lacks localization, as some have already noticed. So why not try on the side? It may not be official, but as long as it helps the Mod get even a bit more attention...

 

My goal is to provide whatever I can to the french Thief (and now DooM³ - which in turn might become Thief) community, just for fun and to get my hands inside the cogs and quirks of TDM. So I translated the first three FMs (cheers to their authors for their kindness and patience).

 

Now I'd like to start working on the training mission - as long as the team doesn't object - and then I'd gladly mess around with the mod and publish a (probably semi-)localized version if it provides anything useful for them english illiterates out there - that is, if the team doesn't mind either. The same goes for the startpack (and I should add that it'll never be synchronized with the original version, but it might help mappers).

 

In any case I'll try to create a few documents to help wannabe translators get the hang of it - if the team doesn't mind, once again. I don't wanna mess with you fine people. Especially after what you just gave the world. ^^

 

Once again, the goal isn't to make this official in any way ; just to help the mod in one way, and the players/mappers/translators in another. If it must become official down the line, then it will. If it's supported someday, we'll have another reason to rejoice. For now, this is just best effort and good will.

 

Cheers. :)

 

Version française :

 

 

Bonjour tout le monde.

 

D'abord, soyons clairs : je ne suis pas un membre de, affilié à, ou payé par l'équipe de TDM. La localisation n'est actuellement pas une priorité pour l'équipe, n'est pas supportée par l'équipe pour le moment, les erreurs dans les missions traduites ne sont pas de leur responsabilité, bref : si vous venez de TTLG etc., vous savez déjà tout ceci.

 

L'équipe a probablement d'autres choses à faire (ou plutôt, devrait avoir autre chose à faire, on parle d'une version 1.0 là ;)). En attendant, je veux juste m'amuser un peu avec leur travail, tout comme d'autres le feraient à ma place (d'ailleurs les russes qui traînent par ici le font déjà. :))J'espère que TDM disposera du suivi et des louanges qu'il mérite, mais il manque de localisation, ainsi que certains l'ont déjà remarqué. Alors pourquoi ne pas essayer sur le côté ? Ce n'est peut-être pas officiel, mais si ça peut aider le Mod à attirer ne fût-ce qu'un peu plus d'attention...

 

Mon but est de fournir tout ce que je peux à la communauté francophone de Thief (et à présent de DooM³ - qui pourrait ensuite devenir celle de Thief), juste pour le fun et pour mettre les mains dans le cambouis et les limitations de TDM. J'ai donc traduit les trois premières FMs (merci à leurs auteurs pour leur gentillesse et leur patience).

 

J'aimerais à présent travailler sur la mission d'entraînement - si l'équipe n'y voit aucun inconvénient - puis je ferais volontiers mumuse avec le mod pour publier une version (probablement partiellement) traduite de celui-ci si cela peut servir à ceux qui ne parlent pas anglais - toujours si l'équipe n'a aucune objection. Il en va de même avec le startpack (qui ne sera probablement jamais synchronisé avec la version originale, mais qui pourrait aider les mappers).

 

Dans tous les cas, j'essaierai de créer quelques documents pour aider les apprentis-traducteurs à appréhendre la chose - encore et toujours, s'il n'y a pas d'objections de la part de l'équipe. Je ne veux pas me mettre ces fantastiques gaillards à dos - encore moins après ce qu'ils viennent de donner au monde. ^^

 

Encore une fois, le but n'est pas de faire quelque chose d'officiel ; juste d'aider le mod d'un côté, et les joueurs/mappers/traducteurs de l'autre. Si ceci doit devenir officiel un jour, ainsi soit-il. Si la localisation est supportée un jour, nous aurons une raison de plus de nous réjouir. Pour le moment, je me contenterai de faire de mon mieux et de faire preuve de bonne volonté.

 

Salutations. :)

 

 

RELEASED SO FAR, IN A NUTSHELL / LES RELEASES À CE JOUR, EN QUELQUES LIGNES -

 

THE DARK MOD :

 

The Dark Mod - unofficial french patch (patch non-officiel FR- - repack - Windows - 4shared.com

 

The Dark Mod - unofficial french patch (patch non-officiel FR) - GNU/Linux - 4shared.com

 

Modified source (source modifiée) - 4shared.com

 

Installation for GNU/Linux: stuff the .sh in your darkmod folder, mv tdm_gui01.pk4, tdm_base01.pk4, tdm_defs01.pk4, tdm_game02.pk4 and gamex86.so wherever you like, chmod +x the .sh and run it.

 

Installation pour GNU/Linux : placez le .sh dans le dossier darkmod, mv tdm_gui01.pk4, tdm_base01.pk4, tdm_defs01.pk4, tdm_game02.pk4 et gamex86.so où vous voulez par sécurité, chmod +x le .sh, et exécutez-le.

 

Backup is automated for Windows, the files will be in a "backup" folder in darkmod / La copie de sauvegarde de ces fichiers est automatisée sous Windows, les originaux se trouveront dans un sous-dossier backup de darkmod.

 

 

FMs :

 

Patently Dangerous (Brevet sur le danger) - FR - 4shared.com

 

The Crown of Penitence (La Couronne de Pénitence) - FR - 4shared.com

 

The Chalice of Kings (Le Calice des Rois) - FR - thedarkmod.com

The Outpost (L'avant-poste) - FR - thedarkmod.com

 

Training Mission (Mission d'entraînement) - FR - thedarkmod.com

 

 

The Thieves (Les Voleurs) - FR - 4shared.com

 

 

 

DARK RADIANT TUTORIALS / TUTORIELS POUR DARK RADIANT :

 

 

Fidcal's DR Beginner's Guide (Guide du débutant pour DR par Fidcal) 1 - PDF - 4shared.com

Fidcal's DR Beginner's Guide (Guide du débutant pour DR par Fidcal) 1 - ODT - 4shared.com

 

Fidcal's DR Beginner's Guide (Guide du débutant pour DR par Fidcal) 2 - PDF - 4shared.com

Fidcal's DR Beginner's Guide (Guide du débutant pour DR par Fidcal) 2 - ODT - 4shared.com

 

Fidcal's DR Beginner's Guide (Guide du débutant pour DR par Fidcal) 3 - PDF - 4shared.com - Startpack available on the wiki / Startpack disponible sur la wiki

Fidcal's DR Beginner's Guide (Guide du débutant pour DR par Fidcal) 3 - ODT - 4shared.com

 

 

 

 

TRANSLATION TUTORIALS:

 

First part - PDF version, ODT sources

 

Topics covered:

 

Unpacking a FM

Viewing, converting, editing and re-converting textures

Editing the description, release notes, texts, objectives, briefings, items of a mission

A few do's and dont's

The same topics in a nutshell for those who know their way around.


"Lie to a liar, for lies are his coin; Steal from a thief, for that is easy; lay a trap for a trickster and catch him at first attempt, but beware of an honest man"

- Arab proverb

Share this post


Link to post
Share on other sites

I can only say thanks to Hyeron's localization efforts - I'm sure this is a good thing. Although I can't make any promises, I'll try to support him in his efforts, if changes in the codebase are required (there are a number of hardcoded strings).

 

@Hyeron: if you stumble upon things that are not translatable due to hardcodedness, it's probably best to post them here, so the team can pick them up.

Share this post


Link to post
Share on other sites

Speaking of languages...

 

 

 

 

I just stumbled upon this :

 

"message_text" "To mantle on a high ledge, look at the ledge and hold jump to pull yourslef up."

 

(training_mission.map)

 

It might be nothing, but it still looks quite ugly ;)

Edited by Hyeron

"Lie to a liar, for lies are his coin; Steal from a thief, for that is easy; lay a trap for a trickster and catch him at first attempt, but beware of an honest man"

- Arab proverb

Share this post


Link to post
Share on other sites

Of course, everyone can pull up his slefs nowadays. Pulling a slef shouldn't be a problem for the average player. :D

 

*ahem*


yay seuss crease touss dome in ouss nose tair

Share this post


Link to post
Share on other sites

Okay, so translation of the (player-specific parts of the) Mod is almost complete, save for a few easy details (statistics, ...) and this :

 

There are three things that keep on eluding me and PSPad though.

 

The first one is: that blasted popup message whenever you grab some loot. I found the correct string (7215 IIRC) for "Acquired", but the rest stays carefully hidden in the shadows... So does anyone know where that "(amount) in (goods/gold/jewels)" is hidden?

 

The second is: on the shop screen, can't find that "GP" that floats everywhere on the screen... A minor annoyance, but still an annoyance... If anyone has a clue...

 

The third is: Damn, hire some fools who can't create correct backgrounds, that'd help a lot. :laugh: In other words, the backgrounds in the Settings menu are WAY too hot for my humble skills, I'm not good enough to modify them without slaughtering the images... Does anyone have l33t gimp/'toshop skills or the originals without the writings?

 

Thanks in advance for any answers. :)

Edited by Hyeron

"Lie to a liar, for lies are his coin; Steal from a thief, for that is easy; lay a trap for a trickster and catch him at first attempt, but beware of an honest man"

- Arab proverb

Share this post


Link to post
Share on other sites

I guess the parts you didn't find are hardcoded, so don't bang your head against any walls. :)

 

The background graphics are available as PSD somewhere, but this requires more thought on how to deliver these changes. The background graphics are contained in one tdm_gui01.pk4, and it seems we need to think about how to enable language packs, so to say.

 

Thanks for the effort so far, anyways.

Share this post


Link to post
Share on other sites

And another thing that breaks if one touches it : categories.

 

Renaming categories (necessary to get a completely translated version as they appear on screen) can be taken as far as changing the hotkeys relating to them... But it seems to definitely break their usefulness (e.g. a key won't open its door anymore). Reverting those changes fixed the problem, so I guess that's another thing that would have to be modified if you were to take steps towards fully localized versions. :)

 

I'll tell you if I find any other interesting stuff :)

 

 


"Lie to a liar, for lies are his coin; Steal from a thief, for that is easy; lay a trap for a trickster and catch him at first attempt, but beware of an honest man"

- Arab proverb

Share this post


Link to post
Share on other sites

 Just a quick update to say the Training Mission is now translated, and the french version is available over here.

 

Now back to the mod, then I may finally get to the tutorials and stuff. :)


"Lie to a liar, for lies are his coin; Steal from a thief, for that is easy; lay a trap for a trickster and catch him at first attempt, but beware of an honest man"

- Arab proverb

Share this post


Link to post
Share on other sites

Just a quick update to say the Training Mission is now translated, and the french version is available over here.

 

Now back to the mod, then I may finally get to the tutorials and stuff. :)

Thank you, it's featured now in our Mission Archive: http://www.mindplaces.com/darkmod/fmdetails.php?id=5

Share this post


Link to post
Share on other sites

Okay, I was able to pull off something... passable by fooling around with parchment.dds, resizing it, playing with decals and tinting it a bit... It's far, far from perfect, but it's functional. It should do the trick until someone more gifted than I am fixes it (well, one or too menus will probably look ugly in some small areas, but without those backgrounds, which I didn't find in the pk4, there's no helping that ^_^ ). I'll try to iron out those seams as much as I can.  :)

 

 

 

 

Now for my next question: what IS that font you guys used on the menus (the one used on the titles)? Couldn't find it on dafont, so... ^^

 

 


"Lie to a liar, for lies are his coin; Steal from a thief, for that is easy; lay a trap for a trickster and catch him at first attempt, but beware of an honest man"

- Arab proverb

Share this post


Link to post
Share on other sites

Damn, and it WAS on dafont. Just in a category I didn't browse.

 

Thanks a lot once again, greebo. :)

Edited by Hyeron

"Lie to a liar, for lies are his coin; Steal from a thief, for that is easy; lay a trap for a trickster and catch him at first attempt, but beware of an honest man"

- Arab proverb

Share this post


Link to post
Share on other sites

 Getting closer...

 

Now I've got a REAL problem. Well, not really, but I need a clear and comprehensive answer.

 

I'm almost done with the sources, everything is absolutely perfect, BUT.

 

I'm confronted with those good old categories. And I don't wanna mess with that if there's a risk breaking half of the untranslated missions, do I?

 

So my question is :

 

Is it possible for an FM to screw the categories by re-entering them in custom gui's if I edit them in the sources? 

 

I guess the answer is 'yes', so the question would rather be: is there any reason for someone to edit THAT? Why would an author want to edit those gui's? And what could it, in turn, break in an "original" installation?

 

 

 

 

Thanks in advance.

 

 


"Lie to a liar, for lies are his coin; Steal from a thief, for that is easy; lay a trap for a trickster and catch him at first attempt, but beware of an honest man"

- Arab proverb

Share this post


Link to post
Share on other sites

The categories need some more thought, I guess any solution you'll find (with the resources you have now) will be some sort of "hack".

 

Give us a little time to think about that, I guess our inventory code is not too far away from allowing translatable categories and names.

Share this post


Link to post
Share on other sites

Side note :First part of Fidcal's guide translated : http://www.4shared.c...4d9b/tuto1.html(thanks for the heads up, Gorath ;) )

 

I'll make the odt source available later today :)

 

 

 

 

EDIT - Completely forgot to. Here it is if anyone wants it: http://www.4shared.com/file/146996013/ab62830d/tuto1.html

 

Edited by Hyeron

"Lie to a liar, for lies are his coin; Steal from a thief, for that is easy; lay a trap for a trickster and catch him at first attempt, but beware of an honest man"

- Arab proverb

Share this post


Link to post
Share on other sites

Right.

 

Just ONE word (and 3/4 buttons) separating me from a first, full, multi-platform (unless I completely fail at compiling under Ubuntu, unlikely if Saint x86_64 doens't play tricks on me), unaccented release.

 

"Body".

 

My guess was: hardcoded. So I came, I saw

 

if( body->health > 0 )
{
 	iconName = body->spawnArgs.GetString("shouldered_name", "Body");

, I translated.

 

if( body->health > 0 )
{
iconName = body->spawnArgs.GetString("shouldered_name", "Personne inconsciente");

 

 

I deleted xgame86 from darkmod and stuffed my hacked dll in game01, as I usually do.

 

Yet I still see "Body" IG... Anyone have a clue?

Edited by Hyeron

"Lie to a liar, for lies are his coin; Steal from a thief, for that is easy; lay a trap for a trickster and catch him at first attempt, but beware of an honest man"

- Arab proverb

Share this post


Link to post
Share on other sites

For Linux, you need to put your .so file in tdm_game02.pk4.

 

Anyway, replacing the hardcoded English string with another hardcoded term of another language is not the correct way of solving this. There is the language dictionary for these purposes, which is mapping indices to strings, like #str0078 => "Body". The task here is rather to spot these hardcoded names and replace them with common->GetLanguageDict()->GetString("#str0NNN"). Once that is done, one can proceed translating the strings.english file to strings.french or other.

Share this post


Link to post
Share on other sites

Aaah, now this sounds like my idea of fun. :laugh:

 

 

I'll try to get some results that way. Let's just hope I figure out the thousand bugs I'll provoke... :rolleyes:

 

As for the .so, I know, don't worry. Just doing it all in Windows (given my job forces me to learn this odd piece of singletasking software). ;)

 

 

 

 

EDIT - Works. greebo, you're my god. Definitely. :D

 

 

 

Edited by Hyeron

"Lie to a liar, for lies are his coin; Steal from a thief, for that is easy; lay a trap for a trickster and catch him at first attempt, but beware of an honest man"

- Arab proverb

Share this post


Link to post
Share on other sites

And done. Well, kind of. This is quite hotfix-prone imho.

 

Let's just call it v0.39 for now, we're about halfway there, there are no accents and still a few ugly hacks in the source so there's still a lot of work to be done.

 

win32 version is ready, here's the download link:

 

http://www.4shared.c...9e70/setup.html

 

if someone wants it, or wants to mirror it.

 

 

 

GNU/linux version should be ready tonight, and of course I'll release the modified source too (not that it's undocumented in this very topic, but still). :)

 

Format is .exe, created with Inno Setup, and does the following :

 

* move the original pk4's and gamex86.dll in a new folder 'backup'

 

* install the translated pk4's in the folder

 

* create a group in the start menu, with uninstall option and link to the french Thief community "Ariane4ever" (chances are people downloading it already know about modetwo, and I thought it'd be wiser than letting these forums get flooded with french-speaking topics - just tell me if that's unacceptable.

 

I'll also release the script for Inno too, of course.

 

I'm thinking about releasing the linux version as a .run - people shouldn't be too confused with installation as it's the same one as the doom3 installer after all. Dependencies will be documented and stuff (I'll just quickly wubi a fresh *buntu to check 'em). How does that sound?

 

 

 

 

Thanks go to Gat for modyfing the dds's I couldn't with my humble skills, and to greebo of course for his tips on the source.

 

Next step for this is modifying the source further to use the dictionary, add accents and, if I can, sharpen the menu textures (they're quite a bit blurrier than the originals at the moment).

 

About the dictionary : I chose not to use a second .lang right now, until I have further documentation on this matter. The reason for this is that I'm unsure how things would work when someone uses a french Dark Mod on an english DooM 3 while using a french.lang (that's my situation in fact, and I'm pretty certain I'm not the only one... Belgium has three official languages - french, dutch and german. Who knows how many of us only got an english version of the original game. I'd like it to run on as many versions as possible...)

 

(a bit) technical stuff: the strings added are in the range 08*** (didn't seem to be used by either the TDM strings, greebo's (09***) or DooM's. Hope this is fine.

 

At least it's working (well, on my rig at least), time to move on and wait for feedback. :D

 

 

 

Have a nice day. :)

 

FINAL NOTE: This is still hotfix-prone, you never know what people will find when playing with it. Then again, that's the purpose of integrating a backup in the setup. ;)


"Lie to a liar, for lies are his coin; Steal from a thief, for that is easy; lay a trap for a trickster and catch him at first attempt, but beware of an honest man"

- Arab proverb

Share this post


Link to post
Share on other sites

I'd be interested in the code changes you did - keep in mind that your binaries will be broken as soon as TDM releases the next 1.01 update. So if your changes should persist, they need to go directly in our code repository.

 

Can you produce a patch of some kind so that I can look into these changes?

Share this post


Link to post
Share on other sites

I'd be interested in the code changes you did - keep in mind that your binaries will be broken as soon as TDM releases the next 1.01 update. So if your changes should persist, they need to go directly in our code repository.

 

Can you produce a patch of some kind so that I can look into these changes?

 

Sure, I know all of this already, that's why I'll publish the modified source, as well as a tutorial for wannabe translators (in the works right now), so our community can support later versions and get them translated as easily as possible (well, if you can call playing with the source "easily").

 

 

All of the strings are still hardcoded except for the shouldered_names we discussed yesterday : as I said, it's hotfix-prone, there's still a LOT of work to do. It just plain works, people can play with it as long as 1.0 is the name of the game, it's all that matters to players. I can now work a bit more "behind the scenes" and help mappers work (Fidcal's tutorial etc.).

 

Those strings are a priority NOW for sure, but as I already said, I'm just your average joe, I never messed around with source before (except for po's), so I'd rather have a working version for people to enjoy before completely breaking the code. At least people can configure and enjoy the game while I'm blowing everything up on a copy of the source. ;)

 

 


"Lie to a liar, for lies are his coin; Steal from a thief, for that is easy; lay a trap for a trickster and catch him at first attempt, but beware of an honest man"

- Arab proverb

Share this post


Link to post
Share on other sites

Right, here's the only REALLY modified code, the rest is still hardcoded, leaving the code untouched (I'll upload some zip later on :))... Question: did that break anything in your opinion? At least it worked absolutely fine in my tests.

 

// greebo: Determine which icon to display on the HUD
idStr iconName;

if( body->health > 0 )
{
iconName = idStr(common->GetLanguageDict()->GetString("#str_08000"));
}
else
{
iconName = idStr(common->GetLanguageDict()->GetString("#str_08001"));
}

(player.cpp)

 

Original code :

if( body->health > 0 )
{
iconName = body->spawnArgs.GetString("shouldered_name", "Body");
}

else
{
iconName = body->spawnArgs.GetString("shouldered_name", "Corpse");
}

 

(sorry, I'm no coder, don't even know how to create a patch except maybe with diff - and even then I'd have to read the man.:laugh: - if you have a simple tutorial, I'd be happy to oblige.)

 

The .lang is still english too... Just inserted those two between the 7000's and 9000's with "Personne inconsciente" and "Corps" for "Body" and "Corpse".

 

Another question that will arise sooner or later is: is it possible to use both languages (e.g english.lang+french.lang) side by side while taking into account the fact some non-english players will use an english version of DooM 3 and a french version of TDM over it? Guess there's already an answer out there... There's still a long road ahead.:P

 

Preparing for scons...


"Lie to a liar, for lies are his coin; Steal from a thief, for that is easy; lay a trap for a trickster and catch him at first attempt, but beware of an honest man"

- Arab proverb

Share this post


Link to post
Share on other sites

(sorry, I'm no coder, don't even know how to create a patch except maybe with diff - and even then I'd have to read the man.:laugh: - if you have a simple tutorial, I'd be happy to oblige.)

 

The easiest way is probably:

 

* install subversion, get access to our code repostitory, then use "svn diff >patch_blah_foo.txt" to produce a diff and redirect it into a file, then send this to us. (If you tested the code and it compiled and worked, you might also directly check it in).

 

If you are interested in that I am pretty sure we can give you write-access - you certainly have done more for translation than I ever have and are my hero :)

 

You can also just run "diff -ruN . >foo_blah.txt" it will do recursive (-r), do "unified" (-u) and consider new files "-N", however, if you do this you will end up with many other unrelated changes in the tree. If you modified only one file, "diff -u filenamehere.cpp >patch_foo_blah.txt" would be enough


"The reasonable man adapts himself to the world; the unreasonable one persists in trying to adapt the world to himself. Therefore, all progress depends on the unreasonable man." -- George Bernard Shaw (1856 - 1950)

 

"Remember: If the game lets you do it, it's not cheating." -- Xarax

Share this post


Link to post
Share on other sites

Another question that will arise sooner or later is: is it possible to use both languages (e.g english.lang+french.lang) side by side while taking into account the fact some non-english players will use an english version of DooM 3 and a french version of TDM over it? Guess there's already an answer out there... There's still a long road ahead.:P

 

Good question, I am German but have the English version, too. The easiest way would probably be to deliver all the .lang files, each named "string.lang" in their own PK4 and let the user swap them out (e.g. rename the lang he wants to "tdm_lang.pk4" so D3 only picks that up first).

 

But maybe greebo knows a better way?


"The reasonable man adapts himself to the world; the unreasonable one persists in trying to adapt the world to himself. Therefore, all progress depends on the unreasonable man." -- George Bernard Shaw (1856 - 1950)

 

"Remember: If the game lets you do it, it's not cheating." -- Xarax

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...