Ah localise within the struct. Yes, may be possible. I'll check it out when I've woken up a bit.
Yes I guess I could order the strings in XConsole.ini, depending on whether #1 works or not.
Because the console is hard coded in UT.ini, when Pure is running, it actually subclasses the XConsole, rather than UTConsole. That's why the title changes (actually I over-rode that now so that it resets the title when the Console is opened - not sure if that was a good idea or not now, since it can be useful to see when the console is subclassed). When Pure subclasses the console it has the default set of functions which stops much of XConsole's new functions working. Typing commands though should always work, just not keybinds, exec functions, and things like Tick() and PostRender() etc. The same effect works with variables too. Pure only allows access to the default ones, except by typing commands that change those. There are some things that won't work while on a server, whether or not Pure is running. Like changing the chatbox colours. They will only take effect offline, but stay working when you (re)connect to a server.
Re ACE: I would really need to find out the mutate commands. I was recently working on a Nexgen ACE lookup plugin so I know how to grab HWID etc from ACE, but this only works where there is server code to replicate the variables to the client part.
For the localisation thing I think it'd be best to not automatically set locale on startup, but give the user some commands to control that. EG: 'set lang int' (for English), 'set lang est', (Spanish) and so on. I'm sure that there are people who speak other languages but would like to keep XC in English mode. Also it is possible to make custom lang settings and rewrite all your messages:
Then copy say Engine.int to Engine.cst and put in your custom messages. I doubt many people really do this though, but it can be fun to play with
Sorry, I went off on a tangent then. The only difficulty I can see may be that if the Language variable changes it would be necesary to restart UT (untested yet though).
The most important IRC script is XConsole_IRCSystemPage.uc which subclasses UBrowserIRCSystemPage. All the others are subclasses of UWIndows with no real special properties. The system page sets up the IRC link. When text or a command is typed it sends it on to the link. Since I'm using UT's link it limits some of the abilities. It is possible to send raw commands but it's seeing the raw output back from the server that is the problem. I need to check further on what can be done though. I could even have a startup option of using my custom link, which fixes the problem of people that type lines beginning with : which UT's link wipes out, among other things. But again I'd need to test the custom link with Pure, ACE etc. I know LeagueAS140 kicks for it and since Psy is no longer around I don't see any way that LAS140 can be updated to allow it.
Screenshots of Mercury Messenger. It's pretty much trying to be an MSN/pidgin clone. (Also it's in debug mode which is why I see myself in the contact list window):
Using one of the default UT themes and showing the menu:
A converation with myself (the selection colour can be cutomised. Green is a bit ugh):
Custom frame skin and background skin (animated texture):