Ingame texts translation
Ingame texts translation
Hello (I was away for some months, but didn't forget on you!)
I am interested in the modification of any of the texts in the game - either to create a translation of the help or of the game settings into my language or to customize the annoying ingame messages for example. (I mean, I'm quite pissed of too long and badly readable msgs like "Alarik's minigun turned n][c][o into a lucky piece of meat". I'm gonna change it into something like Alarik --[minigun]--> n][c][o )
Okey. How to do that? I was looking a bit around in the forums, but haven't found much similar topics..
I found out, that some of the texts are written just as the plaintext in the .int files in my unrealtournament/system directory.
Is there anything I should aware of? Or something I should take care of? Anyway, I need to find out first some basic things like if the game supports special characters from my language (Czech) or if the translation can be longer than the original text..
Step two. Are all of the texts placed only in those easily modified .int files? I saw that programs which even don't have their texts placed in files as plaintext, can be translated too. The texts can be modified by utilities like ResHack etc..
So if you have any idea, opinion or anything else to contribute, I will gladly read that.
Thanks.
I am interested in the modification of any of the texts in the game - either to create a translation of the help or of the game settings into my language or to customize the annoying ingame messages for example. (I mean, I'm quite pissed of too long and badly readable msgs like "Alarik's minigun turned n][c][o into a lucky piece of meat". I'm gonna change it into something like Alarik --[minigun]--> n][c][o )
Okey. How to do that? I was looking a bit around in the forums, but haven't found much similar topics..
I found out, that some of the texts are written just as the plaintext in the .int files in my unrealtournament/system directory.
Is there anything I should aware of? Or something I should take care of? Anyway, I need to find out first some basic things like if the game supports special characters from my language (Czech) or if the translation can be longer than the original text..
Step two. Are all of the texts placed only in those easily modified .int files? I saw that programs which even don't have their texts placed in files as plaintext, can be translated too. The texts can be modified by utilities like ResHack etc..
So if you have any idea, opinion or anything else to contribute, I will gladly read that.
Thanks.
nicio
Re: Ingame texts translation
btw, I also heard, that the polite translator always reads the EULA (does UT have also some?) and looks for program modification and translation permission or writes an email to creator and asks for permission..
But I have no idea whom to write - "Hello, Epic developers, does your email still work? Do you remember the UT you created years ago? I would like to.."
But I have no idea whom to write - "Hello, Epic developers, does your email still work? Do you remember the UT you created years ago? I would like to.."
nicio
- Feralidragon
- Godlike
- Posts: 5493
- Joined: Wed Feb 27, 2008 6:24 pm
- Personal rank: Work In Progress
- Location: Liandri
Re: Ingame texts translation
You can translate it, it's a "modification" after all, plus they give direct suport for multilanguage afaik (and yes, they have a EULA, I have read it and I didn't found anything that could affect translations).
The following are just assumptions of mine, so it's better for more people to reply to either confirm or correct me in some way:
.int files are just the "common" type, I think if you want to do something in your language, you just have to copy a file .int and change that copied file extension to your country extension (in your case I guess it's .cz), and then translate its content.
Then I think the game can recognize the .cz files if you set the game language to such.
Again, I am not sure about this though, I am not aware if this is the right procedure and where you can change your language, but I do know the game has suport for multilanguage (hence the need to make all the string variables in a new mod "localized", so they can be translated, something some modders don't bother to do making their mods impossible to translate unfortunatelly).
Either ways, it's better for you to wait for replies from someone who knows more about UT translations.
The following are just assumptions of mine, so it's better for more people to reply to either confirm or correct me in some way:
.int files are just the "common" type, I think if you want to do something in your language, you just have to copy a file .int and change that copied file extension to your country extension (in your case I guess it's .cz), and then translate its content.
Then I think the game can recognize the .cz files if you set the game language to such.
Again, I am not sure about this though, I am not aware if this is the right procedure and where you can change your language, but I do know the game has suport for multilanguage (hence the need to make all the string variables in a new mod "localized", so they can be translated, something some modders don't bother to do making their mods impossible to translate unfortunatelly).
Either ways, it's better for you to wait for replies from someone who knows more about UT translations.
- EvilGrins
- Godlike
- Posts: 9698
- Joined: Thu Jun 30, 2011 8:12 pm
- Personal rank: God of Fudge
- Location: Palo Alto, CA
- Contact:
Re: Ingame texts translation
Have you tried interpretive dance? Pig-latin?
Kidding!
Kidding!
http://unreal-games.livejournal.com/
Smilies · viewtopic.php?f=8&t=13758medor wrote:Replace Skaarj with EvilGrins
Re: Ingame texts translation
That sounds great!Feralidragon wrote:.int files are just the "common" type, I think if you want to do something in your language, you just have to copy a file .int and change that copied file extension to your country extension (in your case I guess it's .cz), and then translate its content.
Then I think the game can recognize the .cz files if you set the game language to such.
I was afraid that I would have to make a backup of all the original .int files and then modify them and..
But the idea that I can just switch between the translations in some .ini file, sounds pretty comfortable and - looks true. I haven't found any information about the UT99 (why the hell there are no language packs for UT99 in the internet?), but in some forums there was a guide for newer UTs and it worked similarly.
First of all, I found out that there is a line "Language=int" in files Default.ini and UnrealTournament.ini.
So I simply tried to change them to "Language=cze" (but I guess that there can be any word - don't think UT has a list of countries hidden somewhere..), then copied all the .int files and renamed them into *.cze.
And the result?
As everything in UT, it's not that easy.
I modified some ingame texts there, but no change appeared in game. So I removed the .int files and let only those .cze files be there. And UT just ignored them. Menu disappeared and some other things were screwed.
(For those who will also try that - menu and all is OK till you start deeper exploring it. Crash came in my case when accessed Preferences and pressed Esc - closed them. Aware, that putting back the original files isn't enough to put the UT back into work - I had to access the Preferences and press Esc again. Such a magic. )
OK, menu was screwed, but - the game texts, helps etc. still worked! I was like WTF? UT ignores the .cze files but uses the content from them? No. When I removed all the .cze files (so there were no language files, neither .int nor .cze), UT still worked properly and the same as before. Some menus disappeared, but I played a game with no problems and with all the texts. Because, OMG, most of the texts are copied in the .u files.
And I ask - for god's sake, why? And more, if you do nothing else than just modifying the original .int file, the UT will ignore the modification and will use the version from the .u file. So I wonder what are the .int files for. They seem pretty useless. (?)
So the translation looks a bit more complicated.
I would like to know if there is just some more settings in some .ini file that makes it work more user-friendly or I will have to modify all the binary .u files with some hex editor..
Thanks anyone if you know more about it and sorry for such a long post
nicio
- Feralidragon
- Godlike
- Posts: 5493
- Joined: Wed Feb 27, 2008 6:24 pm
- Personal rank: Work In Progress
- Location: Liandri
Re: Ingame texts translation
Absolutelly all the text needs to be defined beforehand in .u files, that's the origin of all the text since they are all string variables within the .u files, by removing ints you just remove the engine knowledgement about mutators, gametypes, players, etc, but everything which does not rely on .int public settings, will be get from those .u files indeed.
Either ways, just took 2 minutes making a small search on google, and I found this:
http://wiki.beyondunreal.com/Legacy:INT ... n_Sections
And I could made it actually work in the next 2 minutes, so I will explain how to do it:
1 - Change the language in the UnrealTournament.ini: unreal [Engine.Engine], there's Language=int, change it to the extension your translation files will have (which you already did: Language=cze, so we will use cze as an example here);
2 - Copy (NOT move) all the int files to another seperate folder (just to organize);
3 - Change their extensions to your extension (in this case .int to.cze), but be sure to NOT change the name (if it was Botpack.int, it shall be Botpack.cze now, NOT something like MyBotpack.cze or Botpack_cze.cze, nor anything like that).
4 - Now, start translating the texts in the Description field ONLY, but do not remove any line.
5 - For other kinds of translations (weapon descriptions for example, viewable in the menu Weapons from the main menu), you will have to know the variables which hold the text in the .u file.
For example, the pulsegun:
The class of the pulsegun is PulseGun;
The package is Botpack;
The variable containing the weapon description is called WeaponDescription.
So you go to the .cze respective, in this case the Botpack.cze, and you add the following lines to the very bottom of the file:
Of course, that text is just a placeholder for your actual translation.
6 - After making the needed .cze files (or another country extension), you copy them to the System itself, and once you start UT you should see the whole or part of the game translated.
NOTE: Do NOT remove the .int files from there, they should stay.
NOTE 2: When the game doesn't find a particular .cze file, it will look for the .int one instead, and if it doesn't find any, mutators and menus may be not there anymore and any text will be retrieved from the .u file.
I hope this helps now (this time I am not assuming, this time I already had my "hands in the dirt" so it should work this way).
Either ways, just took 2 minutes making a small search on google, and I found this:
http://wiki.beyondunreal.com/Legacy:INT ... n_Sections
And I could made it actually work in the next 2 minutes, so I will explain how to do it:
1 - Change the language in the UnrealTournament.ini: unreal [Engine.Engine], there's Language=int, change it to the extension your translation files will have (which you already did: Language=cze, so we will use cze as an example here);
2 - Copy (NOT move) all the int files to another seperate folder (just to organize);
3 - Change their extensions to your extension (in this case .int to.cze), but be sure to NOT change the name (if it was Botpack.int, it shall be Botpack.cze now, NOT something like MyBotpack.cze or Botpack_cze.cze, nor anything like that).
4 - Now, start translating the texts in the Description field ONLY, but do not remove any line.
5 - For other kinds of translations (weapon descriptions for example, viewable in the menu Weapons from the main menu), you will have to know the variables which hold the text in the .u file.
For example, the pulsegun:
The class of the pulsegun is PulseGun;
The package is Botpack;
The variable containing the weapon description is called WeaponDescription.
So you go to the .cze respective, in this case the Botpack.cze, and you add the following lines to the very bottom of the file:
Code: Select all
[PulseGun]
WeaponDescription="Classification: This weapon pwns with its green beam"
6 - After making the needed .cze files (or another country extension), you copy them to the System itself, and once you start UT you should see the whole or part of the game translated.
NOTE: Do NOT remove the .int files from there, they should stay.
NOTE 2: When the game doesn't find a particular .cze file, it will look for the .int one instead, and if it doesn't find any, mutators and menus may be not there anymore and any text will be retrieved from the .u file.
I hope this helps now (this time I am not assuming, this time I already had my "hands in the dirt" so it should work this way).
Re: Ingame texts translation
Now I see that I really need to find some more time and explore deeper how UT works and what is his structure, because I will keep getting stuck on these basic incomprehensions otherwise.Feralidragon wrote:Absolutelly all the text needs to be defined beforehand in .u files, that's the origin of all the text since they are all string variables within the .u files, by removing ints you just remove the engine knowledgement about mutators, gametypes, players, etc, but everything which does not rely on .int public settings, will be get from those .u files indeed.
And that link to BeyondUnreal looks like a great opportunity to start..
To your guide:
Steps 1 - 3 are evident and I did them so also first time I tried that.
But I may imagined the process of translation too easily - I thought that I can just open the UnrealI.cze for example and there lines:
Code: Select all
[FlakCannon]
PickupMessage=You got the Flak Cannon
ItemName=Flak Cannon
DeathMessage=%o was ripped to shreds by %k's %w.
Code: Select all
[FlakCannon]
PickupMessage=You got the Flak Cannon
ItemName=Flak Cannon
DeathMessage=%k --[ %w ]--> %o.
As I said, I may not hurry with modifying files that I barely understand structure of, and rather make a small insight into the UT inside. I am a bit into coding so I hope it will not be.. unbeatable. The only pity is, that there is no such a book as "An official Epic games comprehensive guide of the UT code", just some individual texts that people are trying to collect from the dying websites..
PS.: I will be away for some days from tomorrow, but then I will take some time to try to understand the whole thing about the variables etc. I will then respond if your guide worked for me.
Thanks for all the help that you wrote here!
nicio
- rohitggarg
- Adept
- Posts: 400
- Joined: Wed Mar 12, 2008 7:18 am
- Personal rank: The name is Bu||et
- Location: India
- Contact:
Re: Ingame texts translation
Well.. I think I got the idea,
Just try putting that into Botpack.cze for a change. The reason might be the package which contains FlakCannon class. The fact could be, Unreal1 package has all the weapons that were present in the earlier version of UT, now things have changed a little bit(if I am correct).
Ferali to comment more...
Just try putting that into Botpack.cze for a change. The reason might be the package which contains FlakCannon class. The fact could be, Unreal1 package has all the weapons that were present in the earlier version of UT, now things have changed a little bit(if I am correct).
Ferali to comment more...
- Feralidragon
- Godlike
- Posts: 5493
- Joined: Wed Feb 27, 2008 6:24 pm
- Personal rank: Work In Progress
- Location: Liandri
Re: Ingame texts translation
Well, like rohitggarg said, FlakCannon class is an UnrealI package class, not BotPack class.
The UT version of the flakcannon is called: UT_FlakCannon
Since some UT weapons are pretty much Unreal remakes, and since the class would end with the same name, they added the "UT_" prefix to the class names.
The following are the UT classes for weapons you should use:
ChainSaw
Enforcer
DoubleEnforcer
ImpactHammer
Minigun2
PulseGun
Ripper
ShockRifle
SuperShockRifle
SniperRifle
Translocator
UT_BioRifle
UT_Eightball
UT_FlakCannon
WarHeadLauncher
Also, although in the wiki they show the translation text without double quotes, I strongly advice to not do it that way, it's actually a very bad practise, since many worldwide systems use/need double quotes in strings, so even if a file doesn't need them, you should add them anyway if it works as well, and as you can see the original int files also have double quotes in all its "descriptions".
So do NOT do this:
PickupMessage=You got the Flak Cannon
Do this instead:
PickupMessage="You got the Flak Cannon"
For instance, in a worldwide used web language like PHP, translation files (.mo and .po files) require double quotes to work properlly, JSON needs double quoting as well, and in most of the high-level languages in the world (C++, Java, PHP, etc), new lines (\n), carriage returns (\r) and even tabs (\t) are only escaped as such when double quoting them: "\n".
For instance, in the weapon description, you need to use \n chars to indicate a new line, let's see the PulseGun for instance:
The UT version of the flakcannon is called: UT_FlakCannon
Since some UT weapons are pretty much Unreal remakes, and since the class would end with the same name, they added the "UT_" prefix to the class names.
The following are the UT classes for weapons you should use:
ChainSaw
Enforcer
DoubleEnforcer
ImpactHammer
Minigun2
PulseGun
Ripper
ShockRifle
SuperShockRifle
SniperRifle
Translocator
UT_BioRifle
UT_Eightball
UT_FlakCannon
WarHeadLauncher
Also, although in the wiki they show the translation text without double quotes, I strongly advice to not do it that way, it's actually a very bad practise, since many worldwide systems use/need double quotes in strings, so even if a file doesn't need them, you should add them anyway if it works as well, and as you can see the original int files also have double quotes in all its "descriptions".
So do NOT do this:
PickupMessage=You got the Flak Cannon
Do this instead:
PickupMessage="You got the Flak Cannon"
For instance, in a worldwide used web language like PHP, translation files (.mo and .po files) require double quotes to work properlly, JSON needs double quoting as well, and in most of the high-level languages in the world (C++, Java, PHP, etc), new lines (\n), carriage returns (\r) and even tabs (\t) are only escaped as such when double quoting them: "\n".
For instance, in the weapon description, you need to use \n chars to indicate a new line, let's see the PulseGun for instance:
Code: Select all
WeaponDescription="Classification: Plasma Rifle\n\nPrimary Fire: Medium sized, fast moving plasma balls are fired at a fast rate of fire.\n\nSecondary Fire: A bolt of green lightning is expelled for 100 meters, which will shock all opponents.\n\nTechniques: Firing and keeping the secondary fire's lightning on an opponent will melt them in seconds."
Re: Ingame texts translation
(I'm finally back to my PC)
I roughly know that stuff about unreal1 remakes and, that UT version of flak cannon is called UT_FlakCannon, but I was thinking this way:
Just to explain that FlakCannon vs. UT_FlakCannon misunderstanding.
I have so much more to reply to your other ideas and advices, but need just a bit more time to go through them, so don't worry.
First of all I should explain my idea again, because there happened to be a tiny misunderstanding.Feralidragon wrote:FlakCannon class is an UnrealI package class, not BotPack class.
The UT version of the flakcannon is called: UT_FlakCannon.
I roughly know that stuff about unreal1 remakes and, that UT version of flak cannon is called UT_FlakCannon, but I was thinking this way:
- There is some string appearing during the game: n][c][o was ripped to shreds by Alarik's Flak Cannon.
- I decided to change that string so I was looking for any file that contains the string "was ripped to shreds".
- I found out, that among all the INT files there is only one which contains that string and it's the UnrealI.int file, which I mentioned above.
- This is the only appearance of that string among the int files.
Code: Select all
[FlakCannon] PickupMessage=You got the Flak Cannon ItemName=Flak Cannon DeathMessage=%o was ripped to shreds by %k's %w.
--
btw, the flak cannon itself with some lines appears also in UnrealShare.int and looks like this:(why the hell are the lines same in both files?), but no "was ripped to shreds" is here this time so thats not in our focus.Code: Select all
[FlakCannon] PickupMessage=You got the Flak Cannon ItemName=Flak Cannon
Just to explain that FlakCannon vs. UT_FlakCannon misunderstanding.
I have so much more to reply to your other ideas and advices, but need just a bit more time to go through them, so don't worry.
nicio
Re: Ingame texts translation
See this listing of Botpack.int here:
http://doemsa.wordpress.com/2010/03/03/ ... -messages/
Here you find the lines
So if you add with changed text (%o = victim / %k = killer / %w = weapon)
to your Botpack.int file, you get the desired text in your UT.
I use this in UnrealTournament.ini
and change the texts as needed in my Botpack.int and it works.
http://doemsa.wordpress.com/2010/03/03/ ... -messages/
Here you find the lines
Code: Select all
[UT_FlakCannon]
DeathMessage=%o was ripped to shreds by %k's %w.
WeaponDescription=Classification: Heavy Shrapnel\n\nPrimary Fire: White hot chunks of scrap metal are sprayed forth, shotgun style.\n\nSecondary Fire: A grenade full of shrapnel is lobbed at the enemy.\n\nTechniques: The Flak Cannon is far more useful in close range combat situations.
PickupMessage=You got the Flak Cannon.
ItemName=Flak Cannon
Code: Select all
[UT_FlakCannon]
DeathMessage=*whatever text with %o,%k,%w*
I use this in UnrealTournament.ini
Code: Select all
[Engine.Engine]
....
Language=int
Re: Ingame texts translation
Okay, now srsly, WTF?!?doemsa.wordpress.com wrote:Now the complete default list of Botpack.int:
Why my Botpack.int file looks totally different from the default one, listed in that site? This is how my Botpack.int looks like.
I never deleted anything there, if I recall correctly.
Can I ask any of you to show me how your Botpack.int file looks like?
nicio
Re: Ingame texts translation
LOL
it just shows you what you can change there.
Why should all this be in your normal Botpack.int as the classes know their defaults?
Better start adding & changing what you desire.
it just shows you what you can change there.
Why should all this be in your normal Botpack.int as the classes know their defaults?
Better start adding & changing what you desire.
Re: Ingame texts translation
medor wrote:custom ur botpack.int messages http://unrealtournament.99.free.fr/foru ... f=10&t=501
Re: Ingame texts translation
Eh, now I look like a total newb, huh?Cemini wrote:LOL
it just shows you what you can change there.
Sry, at first I just expected, that "translating" means changing the original strings into my language, so I couldn't understand why in UT it means adding some new lines into some botpack and letting the original strings untouched..
Anyway, thx for help. I also found some link and they explain it the same as you. So I will rather stop thinking about how the heck the UT actually works and finally try some translating.
nicio