For direct access use https://forums.oldunreal.com
It's been quite a while since oldunreal had an overhaul, but we are moving to another server which require some updates and changes. The biggest change is the migration of our old reliable YaBB forum to phpBB. This system expects you to login with your username and old password known from YaBB.
If you experience any problems there is also the usual "password forgotten" function. Don't forget to clear your browser cache!
If you have any further concerns feel free to contact me: Smirftsch@oldunreal.com

English conversion help (script?)

Ask UnrealEd 1 mapping related questions, or give hints, tips and tricks
User avatar
gopostal
OldUnreal Member
Posts: 1007
Joined: Thu Jul 31, 2008 9:29 pm

English conversion help (script?)

Post by gopostal »

So I have this really weird map series I downloaded and is running on my server. It's a long series of maps that begins with 01Escape, 02Village, 03Temple and looks to end somewhere around map 47.

Anyway it's a delicious mix of styles even within each map, really eclectic and oftentimes bizarre. I've spent the last few evenings exploring a bit among them and it's exploration at it's finest.

My issue is that there are *hundreds* of translator events, triggers, etc and they are all in Czech. I'm missing a huge amount of the backstory as well as in-map direction clues.

My question(s): has anyone created a way to deal with conversion that doesn't mean spending hours per map converting one-at-a-time? Is there a way to scrape all the selected text from an .unr file into a text file like notepad? If such a tool does not exist I might consider making one. I'd really like to enjoy these maps fully.

I know how to open a map with tools like UTPT and get the needed actor values. Instead I'm looking if anyone has ever tried to automate this process. If not this could be a major project to undertake, and that's even if I can find a decent Czech conversion software that won't destroy the meanings. 

Edit: OK, I did find a partial conversion at Bob's site. That's a good start, but it's not very well done. I think I'm going to redo it if I can find help with the conversions.
Last edited by gopostal on Sat Aug 30, 2014 1:20 pm, edited 1 time in total.
I don't want to give the end away
but we're all going to die one day
User avatar
SFJake
OldUnreal Member
Posts: 252
Joined: Sun Aug 15, 2010 4:31 pm

Re: English conversion help (script?)

Post by SFJake »

So you're talking about Redeem Your Space.

The subject of translating it was seen before and I do wish someone did it.

I tried to translate it with the help of translation software and logic... it did not go far. Its probably not even written perfectly in that language in the first place, meaning translating it without knowledge of the language is pretty much impossible. At the best of my efforts, the effort didn't just lack a bit of the feeling, I barely could even guess what he meant sometimes.

Its really not that difficult to get all the translator events and the few other texts manually. The real job is really just to translate them.

So the real problem is just, who can translate them?
SFJake Center -
Unreal Nightmare - http://sfjake.byethost7.com/unrealnmproject.html
User avatar
gopostal
OldUnreal Member
Posts: 1007
Joined: Thu Jul 31, 2008 9:29 pm

Re: English conversion help (script?)

Post by gopostal »

I'm going to do this since I have next week off. I've found several efforts for it already but this will be an entire conversion.

Do you think it would be completely improper to just remake all the maps? I want to do an entire English conversion as well as remove the useless wormhole sections. I will not alter the maps or anything, I just want to make them coop friendly.

Any Czech speakers out there that will translate for pizza?
I don't want to give the end away
but we're all going to die one day
AlCapowned
OldUnreal Member
Posts: 202
Joined: Tue Dec 22, 2009 3:53 pm

Re: English conversion help (script?)

Post by AlCapowned »

I think Leo(T.C.K.) at least did a partial translation already, you should ask him about it.
User avatar
gopostal
OldUnreal Member
Posts: 1007
Joined: Thu Jul 31, 2008 9:29 pm

Re: English conversion help (script?)

Post by gopostal »

I actually spoke to him first about this since I knew he had worked on it.

I've pulled a selection of the messages and ran them through Google translate as well as several other free online converters. Google seems to do the best but it still misses words here and there. In order to get this thing done whole and finished in a coherent manner I think I'll convert what I can then fill in the blanks with the same style Paci was using in his stuff.

It doesn't make sense to convert this in partial English. It's going to need restated. For instance one of the translated events reads:
My Log: I was awakened from hibernation, but what's going on? Alarm is triggered. Something had to crash into the ship, or from us by someone Rise? I should have a look around
Checking the translation alternatives lets me understand what Rise is supposed to mean so I'd rewrite this as
My Log: I awoke from hibernation to an alarm. Did something crash into the ship or is someone awake? I should have a look around
Doing it like this is probably more than I'd ever do to someone else's work without direct permission but RYS is a special case. So many people want this done and multiple servers would use it. Unless anyone has strong objections I'm going to do it.

BTW are there any map errors that need addressed? I've played about half the maps so far and nothing glaring jumped out but in honesty I was using my mover commander to open doors here and there.
Last edited by gopostal on Sun Aug 31, 2014 1:28 am, edited 1 time in total.
I don't want to give the end away
but we're all going to die one day
User avatar
Masterkent
OldUnreal Member
Posts: 1469
Joined: Fri Apr 05, 2013 12:41 pm

Re: English conversion help (script?)

Post by Masterkent »

Do you think it would be completely improper to just remake all the maps?
If I decided to introduce minor changes in some maps, modification of the original packages would be the last option that I would consider. When I fixed various defects related to Operation Na Pali maps, I used scripts (included in mutator) for almost everything I wanted to change; the only exception was 1 map with broken lighting that caused clients to crash - I had to rebuild it. At different moments I released 16 revisions of the mutator, and all updates were very small in size (the latest one has about 138 kib).

For localization purposes, however, I would first consider the built-in means provided by Unreal. For a given map MapName.unr you can create file MapName.int that would look like

Code: Select all

[LevelInfo0]
Title=International title

[TranslatorEvent0]
Message=International message
Hint=International hint

[TranslatorEvent1]
Message=Another international message
in order to override the original strings.

If you can't find a ready tool for extracting translator messages, you could log them via simple script shown below:

Code: Select all

class LocalizationLogger expands Mutator;

function PostBeginPlay()
{
      LogLevelInfo();
      LogLevelSpecialEvents();
      LogLevelTranslatorEvents();
}

function Tick(float DeltaTime)
{
      SwitchToNextLevel();
}

function bool IsNonDefaultVar(Actor A, string PropertyName)
{
      local string ClassName;

      if (ClassIsChildOf(A.class, class'LevelInfo'))
            ClassName = string(class'LevelInfo');
      else if (ClassIsChildOf(A.class, class'SpecialEvent'))
            ClassName = string(class'SpecialEvent');
      else if (ClassIsChildOf(A.class, class'TranslatorEvent'))
            ClassName = string(class'TranslatorEvent');
      else
            ClassName = string(A.class);
            
      return A.GetPropertyText(PropertyName) != ConsoleCommand("Get" @ ClassName @ PropertyName);
}

function LogLocalized(string S)
{
      log("****" @ S, 'Localized_string');
}

function LogPropertyVar(Actor A, string PropertyName)
{
      if (IsNonDefaultVar(A, PropertyName))
            LogLocalized(PropertyName $ "=" $ A.GetPropertyText(PropertyName));
}

function LogLevelInfo()
{
      if (IsNonDefaultVar(Level, "LevelEnterText") ||
            IsNonDefaultVar(Level, "IdealPlayerCount") ||
            IsNonDefaultVar(Level, "Title"))
      {
            LogLocalized("[" $ Level.name $ "]");
            LogPropertyVar(Level, "LevelEnterText");
            LogPropertyVar(Level, "IdealPlayerCount");
            LogPropertyVar(Level, "Title");
            LogLocalized("");
      }
}

function LogLevelSpecialEvents()
{
      local SpecialEvent A;

      foreach AllActors(class'SpecialEvent', A)
      {
            if (IsNonDefaultVar(A, "DamageString") ||
                  IsNonDefaultVar(A, "Message"))
            {
                  LogLocalized("[" $ A.Name $ "]");
                  LogPropertyVar(A, "DamageString");
                  LogPropertyVar(A, "Message");
                  LogLocalized("");
            }
      }
}

function LogLevelTranslatorEvents()
{
      local TranslatorEvent A;

      foreach AllActors(class'TranslatorEvent', A)
      {
            if (IsNonDefaultVar(A, "Message") ||
                  IsNonDefaultVar(A, "Hint") ||
                  IsNonDefaultVar(A, "M_HintMessage") ||
                  IsNonDefaultVar(A, "M_NewMessage") ||
                  IsNonDefaultVar(A, "M_TransMessage"))
            {
                  LogLocalized("[" $ A.Name $ "]");
                  LogPropertyVar(A, "Message");
                  LogPropertyVar(A, "Hint");
                  LogPropertyVar(A, "M_HintMessage");
                  LogPropertyVar(A, "M_NewMessage");
                  LogPropertyVar(A, "M_TransMessage");
                  LogLocalized("");
            }
      }
}

function SwitchToNextLevel()
{
      local Teleporter Telep;

      foreach AllActors(class'Teleporter', Telep)
            if (InStr(Telep.URL, "/") > 0 || InStr(Telep.URL, "#") > 0)
            {
                  Level.ServerTravel(Telep.URL, false);
                  return;
            }
}
Compile it to make LocalizationLogger.u, then in game use command "open FirstMapOfTheCampaign?mutator=LocalizationLogger.LocalizationLogger". If the campaign constitutes a linear sequence of levels, then the script should log strings related to every map one by one.

The log file will contain lines like

Code: Select all

Localized_string: **** [LevelInfo0]
Localized_string: **** Title=Some title
Localized_string: **** 
Localized_string: **** [TranslatorEvent0]
Localized_string: **** Message=Some message
Localized_string: **** Hint=Some hint
Localized_string: **** 
Localized_string: **** [TranslatorEvent1]
Localized_string: **** Message=Another message
"Localized_string: **** " can be removed via the "find-and-replace" thing supported by any normal text editor, so you can easy get

Code: Select all

[LevelInfo0]
Title=Some title

[TranslatorEvent0]
Message=Some message
Hint=Some hint

[TranslatorEvent1]
Message=Another message
And now you need to translate the text somehow.
Any Czech speakers out there that will translate for pizza?
You could try to ask Nikola on [url=http://www.newbiesplayground.net/dogforum//viewtopic.php?f=3&t=3144]newbiesplayground.net[/url]. She maintains (or used to?) this localization project:

[url=http://www.oldunreal.com/wiki/index.php?title=English_.int_(RYS)]http://www.oldunreal.com/wiki/index.php?title=English_.int_(RYS)[/url]
Last edited by Masterkent on Sun Aug 31, 2014 12:50 pm, edited 1 time in total.
User avatar
gopostal
OldUnreal Member
Posts: 1007
Joined: Thu Jul 31, 2008 9:29 pm

Re: English conversion help (script?)

Post by gopostal »

I cannot thank you enough MasterKent, that's precisely what I wanted to use for this. It will be an easy matter to translate in chunks and should make it fairly easy to rescript this in the author's theme and voice.

I'll do this via mutator then but I'm going to add some optional functionality to it that the server admin can decide on. I've noticed that the maps need some extra playerstarts and I want to add the ability to skip the wormholes. They interrupt the game flow too many times and it's when most people leave the maps on my server.

Does anyone else know of anything that needs addressed for this? I'm going to begin work today.

Thanks again MK. You demonstrate why OldUnreal and it's community is the reason I still play this old ass game  ;)

Update: This worked flawlessly. I now have everything in a singular text file that I can begin scrubbing clean to translate.

I posted the compiled mod with a quick readme:
http://s000.tinyupload.com/index.php?file_id=00056305125208553611

Enjoy anyone that wants to read the story of a map series without having to play the entire thing. With minimal effort you get a nice (mostly linear) text file of the thing. This is AWESOME :)

Second update:
Towards the end of the file I'm seeing this

Code: Select all

Warning: Failed to load '48Epilogue': Can't find file '48Epilogue'
Warning: Failed to load 'Level None.MyLevel': Can't find file '48Epilogue'
A quick google doesn't show anything. Was this a mistake?
Last edited by gopostal on Sun Aug 31, 2014 2:03 pm, edited 1 time in total.
I don't want to give the end away
but we're all going to die one day
User avatar
Masterkent
OldUnreal Member
Posts: 1469
Joined: Fri Apr 05, 2013 12:41 pm

Re: English conversion help (script?)

Post by Masterkent »

I've noticed that the maps need some extra playerstarts and I want to add the ability to skip the wormholes.
Such things should be easy to do. Any actor included in the current map can be accessed via the following helper-function

Code: Select all

function Actor GetMapActor(string ActorName)
{
    return Actor(DynamicLoadObject(Level.outer.name $ "." $ ActorName, class'Actor', true));
}
The result can be casted to a suitable subclass of Engine.Actor if necessary:

Code: Select all

function EliminatePlayerStart(string ActorName)
{
    local PlayerStart A;
    A = PlayerStart(FindMapActor(ActorName));
    A.bSinglePlayerStart = false;
    A.bCoopStart = false;
}
By default, Engine.PlayerStart actors have bStatic == true, such actors cannot be dynamically spawned or removed. In order to eliminate an existing start point we can disable the corresponding PlayerStart (but not destroy it entirely); in order to create a new start point, we can use a custom subclass of Engine.PlayerStart such that its bStatic == false.
Update: This worked flawlessly. I now have everything in a singular text file that I can begin scrubbing clean to translate.
Unfortunately, the script above cannot be considered as a comprehensive extractor of strings that are subject to localization (sorry, I should note this before). I covered some basic cases with LevelInfo, SpecialEvents and TranslatorEvents, but there are other standard classes that contain string variables declared as localized, e.g. Engine.ZoneInfo and Engine.Trigger.

The following variant offers better coverage than the prior one, but, in theory, it still may skip something important. If you want to make a really comprehensive translation, you cannot 100% rely solely on this method.

Code: Select all

class LocalizationLogger expands Mutator;

function PostBeginPlay()
{
      LogLevelName();
      LogLevelInfo();
      LogLevelSpecialEvents();
      LogLevelTranslatorEvents();
      LogLevelTriggers();
      LogLevelZones();
}

function Tick(float DeltaTime)
{
      SwitchToNextLevel();
}

function bool IsNonDefaultVar(Actor A, string PropertyName)
{
      local string ClassName;

      if (ClassIsChildOf(A.class, class'LevelInfo'))
            ClassName = string(class'LevelInfo');
      else if (ClassIsChildOf(A.class, class'SpecialEvent'))
            ClassName = string(class'SpecialEvent');
      else if (ClassIsChildOf(A.class, class'TranslatorEvent'))
            ClassName = string(class'TranslatorEvent');
      else if (ClassIsChildOf(A.class, class'Trigger'))
            ClassName = string(class'Trigger');
      else if (ClassIsChildOf(A.class, class'ZoneInfo'))
            ClassName = string(class'ZoneInfo');
      else
            ClassName = string(A.class);
            
      return A.GetPropertyText(PropertyName) != ConsoleCommand("Get" @ ClassName @ PropertyName);
}

function LogLocalized(string S)
{
      log("****" @ S, 'Localized_string');
}

function LogPropertyVar(Actor A, string PropertyName)
{
      if (IsNonDefaultVar(A, PropertyName))
            LogLocalized(PropertyName $ "=" $ A.GetPropertyText(PropertyName));
}

function LogLevelName()
{
      log("Map:" @ Level.outer.name);
      log("============================================================");
}

function LogLevelInfo()
{
      if (IsNonDefaultVar(Level, "DamageString") ||
            IsNonDefaultVar(Level, "LevelEnterText") ||
            IsNonDefaultVar(Level, "IdealPlayerCount") ||
            IsNonDefaultVar(Level, "Title"))
      {
            LogLocalized("[" $ Level.name $ "]");
            LogPropertyVar(Level, "DamageString");
            LogPropertyVar(Level, "LevelEnterText");
            LogPropertyVar(Level, "IdealPlayerCount");
            LogPropertyVar(Level, "Title");
            LogLocalized("");
      }
}

function LogLevelSpecialEvents()
{
      local SpecialEvent A;

      foreach AllActors(class'SpecialEvent', A)
      {
            if (IsNonDefaultVar(A, "DamageString") ||
                  IsNonDefaultVar(A, "Message"))
            {
                  LogLocalized("[" $ A.Name $ "]");
                  LogPropertyVar(A, "DamageString");
                  LogPropertyVar(A, "Message");
                  LogLocalized("");
            }
      }
}

function LogLevelTranslatorEvents()
{
      local TranslatorEvent A;

      foreach AllActors(class'TranslatorEvent', A)
      {
            if (IsNonDefaultVar(A, "Message") ||
                  IsNonDefaultVar(A, "Hint") ||
                  IsNonDefaultVar(A, "M_HintMessage") ||
                  IsNonDefaultVar(A, "M_NewMessage") ||
                  IsNonDefaultVar(A, "M_TransMessage"))
            {
                  LogLocalized("[" $ A.Name $ "]");
                  LogPropertyVar(A, "Message");
                  LogPropertyVar(A, "Hint");
                  LogPropertyVar(A, "M_HintMessage");
                  LogPropertyVar(A, "M_NewMessage");
                  LogPropertyVar(A, "M_TransMessage");
                  LogLocalized("");
            }
      }
}

function LogLevelTriggers()
{
      local Trigger A;

      foreach AllActors(class'Trigger', A)
      {
            if (IsNonDefaultVar(A, "Message"))
            {
                  LogLocalized("[" $ A.Name $ "]");
                  LogPropertyVar(A, "Message");
                  LogLocalized("");
            }
      }
}

function LogLevelZones()
{
      local ZoneInfo A;

      foreach AllActors(class'ZoneInfo', A)
      {
            if (A == Level)
                  continue;
            if (IsNonDefaultVar(A, "DamageString"))
            {
                  LogLocalized("[" $ A.Name $ "]");
                  LogPropertyVar(A, "DamageString");
                  LogLocalized("");
            }
      }      
}

function SwitchToNextLevel()
{
      local Teleporter Telep;

      foreach AllActors(class'Teleporter', Telep)
            if (InStr(Telep.URL, "/") > 0 || InStr(Telep.URL, "#") > 0)
            {
                  Level.ServerTravel(Telep.URL, false);
                  return;
            }
}
Last edited by Masterkent on Sun Aug 31, 2014 7:20 pm, edited 1 time in total.
User avatar
gopostal
OldUnreal Member
Posts: 1007
Joined: Thu Jul 31, 2008 9:29 pm

Re: English conversion help (script?)

Post by gopostal »

This is 'good enough' for a language translation. Looking at the cleaned up logfile I'm guessing there is around 1800 lines of text to translate and rewrite. I'm fully aware some stuff will be missed but this will get the pack fully playable and understandable. I'll open a "missed translation" page when I get this much done to catch anything that slipped past. I'd guess a good English version of this pack would bring a decent deal of renewed interest in it and get a bunch of playthroughs. Hopefully that would translate (I see what I did there) into feedback so this is done right.

I've gotten the first map completely done and I'm currently writing the wrapper for the server mutator's functionality. I've tested the first map and the replacement text works just fine. Off we go! :)
[img]http://i59.tinypic.com/rh72h3.jpg[/img]

Do the server admins here want me to post source code as-I-go or wait until it's done?
Last edited by gopostal on Mon Sep 01, 2014 4:01 am, edited 1 time in total.
I don't want to give the end away
but we're all going to die one day
User avatar
.:..:
OldUnreal Member
Posts: 1637
Joined: Tue Aug 16, 2005 4:35 am

Re: English conversion help (script?)

Post by .:..: »

Btw, if you have 227 installed you can also run: UCC.exe DumpInt

That will automatically generate an .int file for the map for all localized text.
1823223D2A33224B0 wrote:...and now im stuck trying to fix everything you broke for the next 227 release xD :P
(ಠ_ಠ)
User avatar
gopostal
OldUnreal Member
Posts: 1007
Joined: Thu Jul 31, 2008 9:29 pm

Re: English conversion help (script?)

Post by gopostal »

NOW you tell me ;) Thank you for that Dots, I'll double check I'm not missing anything.

Finished the third map a few minutes ago. Now the entire thing is making good sense. Even for words that mess up in translation I still feel pretty confident I'm getting it right. This is going to take a while but it's getting a little faster as I understand Paci's storyline better.
I don't want to give the end away
but we're all going to die one day
User avatar
gopostal
OldUnreal Member
Posts: 1007
Joined: Thu Jul 31, 2008 9:29 pm

Re: English conversion help (script?)

Post by gopostal »

I'm sorry to self-reply but I have a question that I cannot find an answer for.

I'm 10 maps in on the translation. The story is making good sense, enough that I've went back several times to clarify earlier edits. I even have a notebook with the timeline, people, ships, etc to keep it all straight. Oh, and I know a bit of Czech now too :)

Oh, my question....Well I'm getting nervous. I built my mod replacing these lines using CheckReplacment (as I've always done for this sort of thing). It won't be long until there is over 1000 lines in that function and I'm nowhere near 1/4th of the way. If this were you guys would you nest the replacements? Currently I have them like this:

Code: Select all

function bool CheckReplacement(Actor Other, out byte bSuperRelevant)
{
   local SpecialEvent SE;
   local TranslatorEvent TE;

   SE = SpecialEvent(Other);
   TE = TranslatorEvent(Other);
   
// Intro map
      if ( string(SE) ~= "00Intro.SpecialEvent1" )
            SE.Message= "In the 21st century tension between world powers was rising...";
      if ( string(SE) ~= "00Intro.SpecialEvent2" )
            SE.Message= "Until the outbursts of hatred got out of control.";
and so on...

My concern is that it will lag on server load if it has to iterate so many lines. Is this a valid concern and should I nest them with a map name check to bypass sections? I've never approached anywhere near this many lines in a class so I just don't know the way to go.
Last edited by gopostal on Wed Sep 03, 2014 2:41 pm, edited 1 time in total.
I don't want to give the end away
but we're all going to die one day
User avatar
Masterkent
OldUnreal Member
Posts: 1469
Joined: Fri Apr 05, 2013 12:41 pm

Re: English conversion help (script?)

Post by Masterkent »

Code: Select all

function bool CheckReplacement(Actor Other, out byte bSuperRelevant)
{
   local SpecialEvent SE;
   local TranslatorEvent TE;

   SE = SpecialEvent(Other);
   TE = TranslatorEvent(Other);
   
// Intro map
      if ( string(SE) ~= "00Intro.SpecialEvent1" )
            SE.Message= "In the 21st century tension between world powers was rising...";
      if ( string(SE) ~= "00Intro.SpecialEvent2" )
            SE.Message= "Until the outbursts of hatred got out of control.";
Such a code doesn't look optimal definitely. I would use something like this:

Code: Select all

// the mutator's PostBeginPlay
function PostBeginPlay()
{
      FixMaps();
      // and possibly anything else
}

function FixMaps()
{
      if (outer.name == '00Intro')
            FixMap_00Intro();
      else if (outer.name == '01Escape')
            FixMap_01Escape();
      // and so on...
}

function FixMap_00Intro()
{
      SetSpecialEventMessage("SpecialEvent1", "In the 21st century tension between world powers was rising...");
      SetSpecialEventMessage("SpecialEvent2", "Until the outbursts of hatred got out of control.");
      // and so on...
}

function Actor GetMapActor(string ActorName)
{
      return Actor(DynamicLoadObject(outer.name $ "." $ ActorName, class'Actor', true));
}

function SetSpecialEventMessage(string ActorName, string Message)
{
      local SpecialEvent A;
      A = SpecialEvent(GetMapActor(ActorName));
      if (A == none)
      {
            log("Error: SpecialEvent actor" @ ActorName @ "is not found");
            return;
      }
      A.Message = Message;
}
User avatar
gopostal
OldUnreal Member
Posts: 1007
Joined: Thu Jul 31, 2008 9:29 pm

Re: English conversion help (script?)

Post by gopostal »

Roger that. I will nest the checks when I finish the translations. Thanks for that!
I don't want to give the end away
but we're all going to die one day
User avatar
gopostal
OldUnreal Member
Posts: 1007
Joined: Thu Jul 31, 2008 9:29 pm

Re: English conversion help (script?)

Post by gopostal »

Just wanted to post an update that I'm still going with this. I've translated up to map 26 so far. Thanks to MasterKent's code posts I was able to script replacements that won't lag the server and work just fine.
I added a couple of things that can be selected via an ini file. First, the mod can add these everywhere there is a translator event:
[img]http://i62.tinypic.com/2vs145d.jpg[/img]

[img]http://i60.tinypic.com/2hzu3k4.jpg[/img]
It's just a simple spinning "!" symbol. It's very handy for finding all the storyline parts (and it's a very rich storyline for being told like it's done via tweets). Also I added bSkipWormholes to the ini file so it just jumps from map to map. A question on that...here is the code I'm using:

Code: Select all

if (bSkipWormholes)
      {
            SkipWormholes("Teleporter0", "25LostPalace#");
      }
Do I need to add the #pod?peer to the end? Not sure what those switches do.

Still to do is add the extra playerstarts. I'll get those tonight or tomorrow.

I hate to ask but does someone want to proof my translations for spelling errors/etc? I'm not kidding, you get cross-eyed as hell after doing them for a couple of hours. I want them to read right though and that's been a little tough to do. My primary goal has been to maintain Paci's voice but say it in a way that makes sense to English speakers and also stay within the character limit. Another person's view would be nice if you have the time.

btw, that moment when 1000 lines of code in a single class compiles...
[img]http://i62.photobucket.com/albums/h83/chrislovesmarielle/1269987981601.jpg[/img]
Last edited by gopostal on Fri Sep 05, 2014 4:28 pm, edited 1 time in total.
I don't want to give the end away
but we're all going to die one day
User avatar
BobIsUnreal
OldUnreal Member
Posts: 806
Joined: Mon Apr 12, 2010 12:34 am

Re: English conversion help (script?)

Post by BobIsUnreal »

you know i missed this entire thread becuase ... well i am not going to try to reasson why rss and email notifations both failed. but i know you were working on this cuase you told me.

as you know i did a partail attempt at the same thing many years ago and lost intrest anyhow i cant think of that many map specific *issues* other then that in queen that the mover and earthquake at the player start should be disabled becuase they can block the start.

Also important to note from above is that even if you disable the playerstarts flags , Certian mods wont even check it at all and try to spawn there anyway. ther was other fixes i did but most are there mfor convenince or cosmetic purposes.

when i did it i kept it serveride so i could update it ass needed without downloads.

since your mutator is already client side , you could just check the client variable lang and get there int localization so you dont force english on anyone.

anyhow if you want to shoot me the mod and sources that' be cool
User avatar
gopostal
OldUnreal Member
Posts: 1007
Joined: Thu Jul 31, 2008 9:29 pm

Re: English conversion help (script?)

Post by gopostal »

Sent it to you. I'm at map 45 right now. It's going slow because the last maps have exponentially more events to translate. I'll finish the normal maps by tomorrow and do the bonus ones through next week. I hope to get this out to everyone by next weekend.

If you know of fixes that you'd do you can let me know. I'll add them in and also add ini switches so the admins can decide for themselves if they want them.
I don't want to give the end away
but we're all going to die one day
User avatar
BobIsUnreal
OldUnreal Member
Posts: 806
Joined: Mon Apr 12, 2010 12:34 am

Re: English conversion help (script?)

Post by BobIsUnreal »

off topic a bit , but your project inspired me and my friends to start a related project
Image
Time to build paci's awsomeness  in minecraft!

we do love paci maps
Last edited by BobIsUnreal on Mon Sep 08, 2014 12:16 am, edited 1 time in total.
User avatar
gopostal
OldUnreal Member
Posts: 1007
Joined: Thu Jul 31, 2008 9:29 pm

Re: English conversion help (script?)

Post by gopostal »

I resist playing minecraft because I think I could get completely lost to reality once I got going. Everything about that game appeals to me.

I spoke to Paci directly and he blessed this project. I linked him to this thread and the one at UnrealSP so I'm pretty sure he's smiling at your picture :)

I finished all the translations too. I'm going to do a second pass through them, add a couple of optional mapfixes to the ini, then release it for people to try later this week. Someone already approached me about doing a repack of the entire series but I'd really like to do a full play-through looking at all the translations before I call it done. I'm sure there are changes to be made.

BTW Bob my OCD kicked in full force and I straightened your RYS code (no changes, just lined up). If you ever go to update it I'll send you a neat version ;)
I don't want to give the end away
but we're all going to die one day

Return to “UnrealEd, the editor for Unreal up to version  226”