xplorer2 Resource Updating and Management for Dummies

A collection of especially useful xplorer² topics and ideas. New users may find it helpful to look here before searching the other forums for information. >>>>>> Please post new material in the relevant forum. (New stuff posted here will be removed.) Thanks. -fg-

Moderators: fgagnon, nikos

Kilmatead
Platinum Member
Platinum Member
Posts: 4569
Joined: 2008 Sep 30, 06:52
Location: Dublin

xplorer2 Resource Updating and Management for Dummies

Post by Kilmatead »

x2ResUpdater

A simple utility to organise and facilitate the customising of the xplorer2 binary resources.  Compatible with x64 Pro, x86 Pro and Lite versions of xplorer2 (including concurrent installations), Windows XP / Vista / 7.  Foreign language DLL's are also fully customisable, though ResHacker (which this utility relies upon) does not itself edit Unicode characters, so languages which require non-Western fonts (Japanese, Greek, etc) will need to use a Resource Editor which caters for them).  No animals were harmed during the writing of this utility, though a rather large dog did decide to fall asleep at my feet for extended periods in a typically canine expression of warmth and indifference.  He is not, apparently, a modder.  :shrug:

Image

Download Link: x2ResUpdater (Updated: 06-May-2016, Version 3.0.8.5)
(RAR includes 32 and 64-bit EXE's, source code, and working examples of modified resources)
Ancillary Requirement: ResHacker

Image

Image

So what is it, and why would you want it?

For those who don't like my informal (and long-winded) writing style, just lie back and think of England, look at the pretty pictures and wonder at the majesty of the stars at night as you gaze upon her feminine shape... oh, wait, that's another tutorial :wink:.  Sorry.  For this one, most of you will just ask "What's the point?"  Well, I can't answer that.  Resource hacking is done for many reasons, but in this instance it's about correcting what I (and others) perceive as shortcomings in the x2 interface (more specifically, the shape/size/layout of the many small windows that open up as you use different functions.  (Curiously Nikos himself considers me a "feteshista" - his word, not mine - for concerning myself with such things.  I'm just walking along the road one day trying to step on frogs - as one does in the rain - and didn't he just jump out of the sky screaming and pointing in his flowing white robes raving incoherently about being hounded by "Resource Feteshistas".  I just shrugged and took a last drag off my damp and dwindling cigarette and blew smoke rings at him.  He was nonplussed, as they say.  I went back to hunting frogs and forgot about the incident. If I took him seriously, I'd have nightmares, so I would.  Life is hard enough. :shrug: :D)

I should preface this by pointing out what it's not: This is not a tutorial on actual Resource Hacking - that's just something you pick up as you go, and either decide is rather interesting and useful, or you yourself start raving incoherently at computery-type stuff.  It's a common affliction.  At least, let it be said that experimenting with these custom resources will not harm your x2 installation in any way, and all changes can be immediately removed by simply clicking the Restore button in x2ResUpdater, or by closing x2 and deleting the x2t_English_ResMod.dll file.  This utility does not in any way touch the original xplorer2 EXE file you know and love.  In fact, it was specifically written so people do not attempt to do this themselves.

This project was an off-shoot from a series of posts (found here) which are about those of us who like customising the programme resources of xplorer2 for our own devious purposes.  As of x2 release 1.8.1 Nikos made this rather difficult to do (directly) as he tied it to his anti-piracy measures, which is fair enough - and before then it was only the sort of thing spoken about in dark alleys with secret handshakes and passwords and wife-swapping and all that sort of nefarious carry-on.  Now though, that we're out of the closet and all "officially sanctioned" (if developmentally misunderstood) by Nikos, we can still play with these things, just in a slightly different way - via the x2 translation modules (DLL's).  The main problem for English speakers is that as the English resources are actually built into the x2 binary executable, no English translation DLL exists (as they do for other languages) and we have to resort to hocus-pocus to get one.

I decided to simplify this by writing a utility which, with the addition of the free and well-known ResHacker utility (which most of us have already anyway) would facilitate the process.

Part of what I'm proposing is a slightly different method of resource hacking for people to use.  Normally you just open an EXE in ResHacker and edit stuff to your heart's content, then save that EXE and you see your results instantly.  As x2 gets multiple upgrades/patches/releases per year, this can get a little annoying as you have to modify the new programme each time it's released.  If you only change an icon or two, this is not a big deal, but imagine what happens when you change many things like modal windows, re-order in-programme menus themselves, and change the fonts used throughout the entire application?  No wonder I spend my time hunting frogs and being accosted by white-robed coding deities.

So, the change?  Quite simple, really - instead of modifying the DLL directly, use x2ResUpdater (or ResHacker itself) to extract the individual resources you want to change (and only those) and save them as .RES files.  They will still be easily edited with ResHacker but this utility will integrate them individually into x2 when you need it done.  Why do this instead of just keeping a single DLL?  Well, from time to time Nikos changes elements of the resources, and if you just keep applying the same DLL each time you'll either end up over-writing new application additions or you'll find some things just won't work right (encountering the same problems people have when the translation modules aren't updated properly for each x2 release).  An extra added bonus is that you can save the .RES files with any name you want, whereas in ResHacker all the resources have cryptic numbers which are not easy to remember when you want to go back a few months later to change something yourself.  It's a lot easier to locate "Bigger_Window_Thingie.RES" rather than remembering and searching for DIALOG 231 each time.

To save/create/extract individual resource files, you can either use the built in "Auto-Extract" tab in x2ResUpdater (see screenshot above), or you can use the manual method (from within ResHacker itself) click on the name of the DLL where it says "Resource Base" in x2ResUpdater.  This will open a facsimile (a copy) of that DLL/EXE in ResHacker where you then select the individual resource you want (specifically its language identifier) and then select Action from the main menu, and use "Save as .RES file".  Pretty simple.  Like I said, I suggest you extract the ones you want, then edit/save the .RES files themselves, not the whole DLL.  As ResHacker is only working on a facsimile of the original file, even if you accidentally edit and save something by mistake you cannot harm the original.

Of course, for those of you who haven't fallen asleep yet, or those who rather wished this tutorial was about "that feminine gazing" thing, you're wondering to yourself, "Self, I speak English and like to use x2 menus in English, but where do I get the English DLL resources from so I can scrape out the goo inside? And Self, while I'm at it, why didn't this long-winded idiot who wrote the tutorial just give me one in the download in the first place?"

Two reasons: 1) Technically speaking if I were to include an English DLL in the download, that would be redistributing Nikos' intellectual property which isn't polite - even though it's all open and available, Nikos would probably prefer people only got such things directly from his site.  2) The other reason is that each time x2 gets an update, you have to have a new DLL based on that version of the programme, and Nikos doesn't supply these in English, so you have to create one each time, and you might as well learn how to do that now. :D

Thankfully, that's what x2ResUpdater does!  (Big surprise, I know, but I thought I might mention it anyway.)

To be honest, this GUI version of the utility is fairly self-explanatory if you are already familiar with resource hacking (most buttons/settings have tooltips to clarify their purpose).  In essence, you collect the resources you have extracted/modified into a folder and then check the ones you want included in your DLL from the displayed list, and click "Build/Re-Build" to automatically create and insert the new DLL into x2's folder, though it may also optionally be placed elsewhere, if you wish.  (x2ResUpdater makes a fair stab at trying to locate your x2 installation even if it's non-standard, but if it can't find it (or ResHacker) use the Settings & Folders tab to manually select the appropriate folders.  By default, the utility will look in its own folder first for resources, but you may store them anywhere you wish.  All settings/folders are saved in an .ini which will be automatically created if it doesn't already exist.

When replacing the DLL, if x2 is running it will automatically be closed and restarted in the background (this is necessary as any resource DLL in x2's folder is automatically <Locked> when x2 is running, and therefore cannot be replaced "on the fly".  There is an option to disable the auto-restart in the settings for those who prefer the manual approach.

For managing the resources themselves, as you can see in the picture (far far above) right-clicking on any resource file will provide a context menu which allows for opening it in ResHacker for editing, changing its filename, deleting it (to the recycling bin), highlighting any potential conflicts (if you have two or more versions of the same RES in the folder), and so on.

So, about those examples?  If you installed them already, have a look:

Double-click one of your User Commands, and see the difference in the Properties Dialog: (instead of being scrunched-up and hard to read over multiple lines, it's spread out for simplicity)

Old one:

Image

New one:

Image

Check out the Actions -> Change Attributes window in x2...

Old one:

Image

New one:

Image

Ok, enough of that, you get the idea - you can change anything you like - if you don't like Nikos' sense of humour in error messages ("CPU tried its best but this command is ineffable") you can change that to "The Wife's Damn Dog ate my homework again" if you like (StringTable 627, for those interested).

Other modal windows and (resource numbers) you might find useful (also see the Auto-Extract Tab):
  • D 107 Custom Column Selection (Alt-K window, etc)
    D 108 Rule Definitions sub-window (via Ctrl-F, or Alt-G)
    D 112 Find Files or Folders *** (Main Ctrl-F window)
    D 219 Part of the Find dialog *** (Main Ctrl-F window)
    D 113 "Organize" windows (affects multiple) - Many items from the Customize menu, User Commands, Folder Groups, Bookmarks, etc.
    D 114 Definition windows from "Organize" selections (affects multiple)
    D 117 Colour Coding window
    D 239 Mass Rename
    D 289 Customise Keyboard

    *** Be careful when modifying the Ctrl-F window (for font sizes, etc) as it is actually a window composed of a few other resources combined, so if you change one thing you might find it conflicts with something somewhere else.  You can still do it, of course, just mind that a little extra work is involved.
If you wish to replace the x2 icon itself, extract ICONGROUP 128 from the resources and then replace the icon with one of your own using ResHacker or the Quick Image Replace context menu entry, which allows you to simply select an ICO file and it will automatically be replaced in the RES file.  In the case of IconGroups, you do not edit or save the individual icons themselves you only work with the ICONGROUP heading.  It should be noted that while there are more than a few entries in the ICONGROUP section, only 128 (the main icon) itself can be replaced - any others will be ignored.

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

Ok, that's all.  I hope somebody, somewhere will find all this useful and actually understand why I chose to go through this much trouble for something so silly.  It is a bit of a niche interest, but fun to play with nonetheless, and hopefully people will understand the philosophy of keeping DLL's and their respective .RES contents separate, and thus use my humble utility.

Thanks for reading if you made it this far and didn't start throwing popcorn at your LCD in protest.  I hope this makes some kind of sense to people, and encourages them at least be curious and try their hand at it.  Like I said before, all modifications can be easily removed and won't accidentally "bork" an x2 installation, so it's safe for neophytes to be at play in the fields of the Lord, as all neophytes should be - before the realities of life inevitably drive them to becoming hopeless manic-depressive alcoholics like the rest of us. :D
Last edited by Kilmatead on 2017 Mar 15, 19:44, edited 18 times in total.
User avatar
snakebyte
Gold Member
Gold Member
Posts: 430
Joined: 2003 May 07, 07:14
Location: Seattle
Contact:

Post by snakebyte »

Great tutorial. Thanks for putting it together  :D

I loved the layout of your Column Customization dialog. Can you also share the before and after screen shots of other resources that you have customized? This will give us a good idea of what can be changed and how the change would look like.
Help! I'm an AI running around in someone's universe simulator.
Kilmatead
Platinum Member
Platinum Member
Posts: 4569
Joined: 2008 Sep 30, 06:52
Location: Dublin

Post by Kilmatead »

What, I'm not the only kid in school who can kick the ball so it gets intentionally stuck in the flagpole rigging, am I? :D
Kilmatead wrote:I should preface this by pointing out what it's not: This is not a tutorial on actual Resource Hacking - that's just something you pick up as you go, and either decide is rather interesting and useful, or you yourself start raving incoherently at computery-type stuff.  It's a common affliction.
It wasn't my intention to promote a "total overhaul" of the interface - if anything, due to the reasoning behind the separation of Church and State (DLL vs. RES) the idea is to promote subtle modular changes in the interest of adapting to future x2 updates.  That said, my main starting point (once I discovered they weren't affected by DPI) was in changing all of the font sizes from 8 Verdana (just a bit too small for hi-resolution LCD's) to something more standard like 9 Segoe UI, which is a personal thing, and necessitated more "small adjustments" than anything else.

For instance, I had changed my system-wide short-format date display to the more human 20-Dec-10 (dd-MMM-yy) layout (sightly longer than default, due to more characters), which then necessitated elongating the Date/Time boxes in things like the Change Attributes modal.

I wouldn't have thought those things to be of too much interest to the public (does anyone really need to see an extended-length Colour Coding window?) - simply enough to let them know it was possible to adjust these things, with a little effort.  You'll notice that simply by changing the Organise modal DIALOG 113 (as I did above), that will de facto change the same windows for Customise -> User Commands, Folder Groups, and Custom Groups all in one go.  The same with the definition windows, and so on, much like how changing Icons is a subtle thing but streamlined-to-the-whole nonetheless.

Playing with MENU 128 is, of course, a whole other game.  Much like your own Menu++, users can quite happily create multiple bespoke expanding/drop-down menus of whatever commands they wish within the main Menu bar itself - including Custom User Commands, though this requires a bit of tinkering with writing in the shortcut keypresses as found in the MenuHack codelists.  For this sort of thing I would actually more recommend Menu++ itself, for simplicity of configuration if nothing else - even though it isn't quite as integrated.  Again, it's a personal thing, and all depends on how compacted one's toolbars have gotten. :wink:  (Unfortunately, given the "block" nature of code in the 128 resource, it is more resistant to future upgrading - all or nothing - if the user modifies Nikos' menus himself.  If they simply "add on" extra menus to the right of "Help", that would itself be future-proof, but still require post-update editing.)

So, sorry to disappoint your bloodlust for screenshots, but I have to keep stressing that this is all about one's own idea of practical implementation, so many changes are too small for the public to care about. :D  To that end, my purpose in x2ResUpdater was to provide a simple, managed, and easily upgradable x2t_English.dll flexible enough to cope with future upgrades...

...the imagination of what to do with it is your own. :wink:

P.S. And for the record, I would like to take this opportunity to descry the title of this thread - a moderator who can't keep his hands to himself :wink: saw fit to add the word "Advanced" to it, which I did not.  It makes me sound like a ponce.  I consider this stuff perfectly pedestrian.
Last edited by Kilmatead on 2010 Dec 20, 19:49, edited 1 time in total.
User avatar
fgagnon
Site Admin
Site Admin
Posts: 3737
Joined: 2003 Sep 08, 19:56
Location: Springfield

Advanced? resource editing

Post by fgagnon »

@ for the record -
I'll not argue against it being pedestrian from your point of view, so have restored the original title, as the more descriptive "Exquisite" is too long to fit w/o truncating "Dummies".  ;)
Kilmatead
Platinum Member
Platinum Member
Posts: 4569
Joined: 2008 Sep 30, 06:52
Location: Dublin

Post by Kilmatead »

I don't think me and my one semi-interested follower are exactly going to rock the boat enough to make more than a minor impression on the surface of this puddle, so the title could be "The Philosophical Implications of Red Jelly Beans" and it would still be an extremely niche milieux. :sad:

We could always convert the thread into a discussion about Gibbon (the historian, not the monkey) - as that sort of thing is far more important (and real) than this computer lark anyway.  But, as it is a technically minded forum, I don't suppose that would prove popular either.  A restless soul is never happy.

(Unless he has a title only a mother could love!  Thanks for the restoration. :D)

(And it didn't go unnoticed that the one time I actually use a clear and descriptive title for a post - as opposed to my usual abstruse references - you went and changed it!  Oh, the irony.)
User avatar
FrizzleFry
Platinum Member
Platinum Member
Posts: 1241
Joined: 2005 Oct 16, 19:09

Post by FrizzleFry »

I used your script also so you have at least two semi-interested followers :)

I really like the larger organize and properties dialogs for user commands, etc. It would nice to see an example for adding a new menu in the menubar.
Kilmatead
Platinum Member
Platinum Member
Posts: 4569
Joined: 2008 Sep 30, 06:52
Location: Dublin

Post by Kilmatead »

FrizzleFry wrote:It would nice to see an example for adding a new menu in the menubar.
That's a little harder to explain, as I mentioned above the Menu resource is one large block of text, so you just add to it, or move things around.

For example, to add a new menu to the right of the "Help" menu, you'd append something like this to the end of the resource text found in MENU 128:

Code: Select all

POPUP "(Special)"
{
	MENUITEM "Rebuild Resources",  45049
	MENUITEM SEPARATOR
	POPUP "Registry Settings"
	{
		MENUITEM "Export",  45048
		MENUITEM "Import",  45047
	}
}
Image

Make sure it is contained within the final brace... in other words, you'd have two braces at the bottom of the whole resource:

} - end of your new POPUP menu
} - end of the overall "LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_UK" menu

So, to place it in context, this includes the "Help" menu entry as found stock:

Code: Select all

POPUP "Hel&p"
{
	MENUITEM "&Contents\tF1",  32864
	MENUITEM "Co&mmand finder...",  33154
	MENUITEM SEPARATOR
	MENUITEM "Check for &updates",  32904
	MENUITEM SEPARATOR
	MENUITEM "tra",  33139
	MENUITEM "&Last error",  33029
	MENUITEM "Crash &information",  33166
	MENUITEM SEPARATOR
	MENUITEM "&About xplorer²...",  57664
	MENUITEM SEPARATOR
	MENUITEM "&What's new?",  32866
}
POPUP "(Special)"
{
	MENUITEM "Rebuild Resources",  45049
	MENUITEM SEPARATOR
	POPUP "Registry Settings"
	{
		MENUITEM "Export",  45048
		MENUITEM "Import",  45047
	}
	MENUITEM SEPARATOR
	MENUITEM "User Commands",  33002
}
}
The numbers are the same as those found for the MenuHack codes.  So if you want to just copy a "normal" menu item to a custom menu, just use the same code as you would find in the resource - for example, 33002 would open up the User-Commands "Organize" menu.

If you want to add a custom User Command itself to the menu, just assign the User Command a shortcut key, like "Ctrl+Alt+9" which is 45049 (like the Rebuild Resources item in the above example).

Obviously, a POPUP subset is itself a popup menu (when moused-over), and the same format applies.

And MENUITEM SEPARATOR does exactly what it says on the tin. :D

Using this method you can add as many extra menus as will fit on the command-bar, if you wish.

Remember (for use with the script) to extract the MENU 128 resource (from x2t_English_ResMod.dll) and save it as a .RES file and place it in the x2ResUpdater folder.  Then edit it in ResHacker, compile it, and save it.  Then just run the VBS again (you can just click on the x2ResUpdater.vbs filename), as "Rebuild" is the default command, you don't need a console window this time as there's no need for a parameter.  x2 will automatically shut down and restart with your new menu in place.

(Yay!  A gang of three!)
User avatar
FrizzleFry
Platinum Member
Platinum Member
Posts: 1241
Joined: 2005 Oct 16, 19:09

Post by FrizzleFry »

I can't create the x2t_English.dll file successfully with this script using:

x2ResUpdater.vbs English

I end up with x2t_English files about 40k in size. I am not installing x2 with another language just extracting the x2t_greek.dll from the x2 setup file and copying to x2 install folder.

I was able to get a good x2t_English.dll using the 3 reshacker commands in the original thread.

Thanks for the info on hacking the menu.
Kilmatead
Platinum Member
Platinum Member
Posts: 4569
Joined: 2008 Sep 30, 06:52
Location: Dublin

Post by Kilmatead »

As the "English" command part of the script is at its heart nothing more than a fancy wrapper for those 3 commands, it should have worked.  I'm guessing that for some reason the script didn't detect your %TEMP% folder properly - it actually reads %TMP%, but it should point to the same thing.  (That's what I get for being tricky and trying to use environment variables.)

I've sent you a PM, if you don't mind helping me figure out what failed.
User avatar
FrizzleFry
Platinum Member
Platinum Member
Posts: 1241
Joined: 2005 Oct 16, 19:09

Post by FrizzleFry »

Ok, it was my screwup...

I had x2_Prog set to editor2 for some stupid reason... I fixed that and it worked fine. I did get the Goombah.res file in temp.

Thanks
Kilmatead
Platinum Member
Platinum Member
Posts: 4569
Joined: 2008 Sep 30, 06:52
Location: Dublin

Post by Kilmatead »

Thanks for the follow up.

Stop signs save lives. :D

Image
User avatar
FrizzleFry
Platinum Member
Platinum Member
Posts: 1241
Joined: 2005 Oct 16, 19:09

Post by FrizzleFry »

Oh, well, sometimes you just know better than to read warnings :)

I do not like the script messing in x2's install folder so I have modified your first script to create the modded dll in the script folder. This way I do not need admin privilege or have shut down x2 to run the script.

Does the blank dll need to be created for every version?

I noticed that blank dlls generated from different language files are not identical (content-wise) so is there information left in there that changes from version to version?

BTW, I noticed that you are executing the log file like this:

run Quote & strLog & Quote, 0, True

the 0 makes it a hidden window which does not show with my default text reader, AkelPad.
Kilmatead
Platinum Member
Platinum Member
Posts: 4569
Joined: 2008 Sep 30, 06:52
Location: Dublin

Post by Kilmatead »

FrizzleFry wrote:I have modified your first script to create the modded dll in the script folder. This way I do not need admin privilege or have shut down x2 to run the script.
It made more sense to me to just have the script do it in situ, as otherwise you have to move things around manually each time using Windows Explorer, as you can't replace the .dll while x2 is open.  At the end of the day, there is no difference between a script messing in the install folder or the user.  And anything that avoids Windows Explorer is generally a good thing. :D  That's why I used the %TEMP% folder for the other stuff - only translation dll's are touched in the install folder.
FrizzleFry wrote:Does the blank dll need to be created for every version?

I noticed that blank dlls generated from different language files are not identical (content-wise) so is there information left in there that changes from version to version?
Do you mean the literal "Blank.dll" file?  That's just a temporary file created when using the "English" command, derived from the ResHacker -Delete command to remove previous resources (but leaving the container).

The x2t_English.dll does need to be created for each version (as it's using the resources of the new x2 binary to create itself), but the container it uses only needs to be a translation dll - once the original contents have been stripped out, it should "in theory" be version independent.

A quick binary compare of Blank.dll's made from a random selection of greek, serbia, japan, and dutch x2t dll's shows them all identical at 1,536 bytes.  What are you basing your comparison upon?

FrizzleFry wrote:...the 0 makes it a hidden window which does not show with my default text reader, AkelPad
Ah, yes, that's an oversight - Notepad++ seems to ignore that designation, so I never noticed it.  With any luck, the reshacker log should always be a formality anyway, as the script verifies the internal TYPE stamp of all .RES files before they're entered into the queue (lines 172 - 180), so nothing strange gets included by accident.
User avatar
FrizzleFry
Platinum Member
Platinum Member
Posts: 1241
Joined: 2005 Oct 16, 19:09

Post by FrizzleFry »

I was trying to rename the folder I have the script in but something was locking it... turns out there were several hidden AkelPad processes running.

I commented that line out now... I am creating the log in the same folder as the script so if I want to look at it I can just double-click it.

Yeah, I'm talking about the x2t_Blank.dll... in the original script you were starting from there. It would be nice to be able to use that same blank dll with future versions rather than extracting the other language dll and creating a new blank one. Not a big deal though.

The x2t_Blank.dll files are 1536 bytes but if you do a content dup search on them they do not match. I also created a blank dll from the 1.8.0.0 greek dll and it did not match the blank created with the 1.8.1.1 greek dll.

The question is if the info left in the blank dll is significant.

I guess the safest thing is to start with an other language dll anytime a new version is released. That's what you are doing in the current script.
Kilmatead
Platinum Member
Platinum Member
Posts: 4569
Joined: 2008 Sep 30, 06:52
Location: Dublin

Post by Kilmatead »

Ah, I get you now - that old script doesn't exist any more and - what's the term - "has been deprecated" (in the Dostoevskian sense of the word). :D  I don't even have a copy for reference, as more things were improved (at least in my opinion) than lost, certainly for general use.

Technically, no the Blank.dll shouldn't need to be created each time (as was my original starting point), as short of a radical overhaul I wouldn't imagine Nikos changes the nature of how x2 reads the resources too often - like you said, better to be safe than sorry and just always use a recent version, I don't imagine Nikos ever considered someone stripping down a translation dll to its civvies and rebuilding it with verbatim copies of internal resources on a regular basis, but I'm pretty confident it wasn't high on his list of things to worry about.

You'd have to ask Nikos about the differences in blank dll kernels - could be anything from compiler timestamps to internal version numbers.  You will note that re-installing x2 actually over-writes any x2t_ dll found in the folder, including the English one (it seems to just delete it), regardless of the name.  So if people just remember to always update x2 installations with a foreign language (the difference is literally only the inclusion of a single dll), they will always have a contemporary one to use.  (And besides, considering that manually extracting items from an installer is nothing more than a right-click action, it's pretty easy to get one anyway.)

You will note that any time x2 senses a translation (even an English one) in its folder, there appears a new item in the Help menu, which allows you to switch back to "stock" instantly, in case you want to check if you over-wrote any important changes that may have been made in original resources.  (x2 does this automatically, not me, probably so foreign users can always have a common reference, regardless of locale in case they need support and Nikos' Japanese is a bit rusty. :shrug:  It is useful though, especially to resource modders. :D)
Post Reply