GCA 5 is now officially available!
Details are on the SJGames forums here: https://forums.sjgames.com/showthread.php?p=2415473#post2415473
GCA 5 is now officially available!
Details are on the SJGames forums here: https://forums.sjgames.com/showthread.php?p=2415473#post2415473
Hi Armin! Is there an easy way to translate and localizate GCA5 UI and libraries? GURPS is still a important player in Brazilian RPG scene (where it was officially released translated to brazilian portuguese), and we lack translations in such softwares like yours.
Hello! I’m afraid there is not an easy way to translate or localize GCA5 at this time. I *do* plan to work on that over time, when I’m not in this early rush of fixing things. The systems available for making localizations are very cumbersome and annoying to use, so I gave up quickly when I tried using them for a while. While I will be taking a new look at the standard way to do it (with resource files), I may still find that frustration with it, and then may work on a different system to allow for changing the UI instead.
Note that I probably will *not* be able to allow for changing the decimal and thousands separators, because the internal workings of GCA require a known and consistent style, so that’s likely going to have to stay in the US style. There may also be issues in allowing different names for some traits, but hopefully I’ll be able to genericize that so that the data files can be translated–although the tag names can not change, as those are mostly fixed functions of how GCA operates.
TLDR: Not now, but I’ll be working on it, and it may not be entirely satisfactory based on exactly what you want to do.
Two thoughts from a localizer (and apologies if this was all obvious to you):
1) You might look at leverage the system API for the numeric format. It can return the value of each separator for comparisons where needed.
2) Reousrce files are fairly easy to localize with the right tools. The biggest problem is when the resulting translation takes up more space than was allowed for the English. Their big advantage is once the upfront investment is done, they open up doing any LTR separate character (non-glyph) language with a couple of days.
Happy to try to help if that seems useful.
(The reply below seems a little ranty now that I read it back. Please be assured I am not upset, and it might just read that way. I’m just trying to explain how things worked out as they did. I really do appreciate your comment!)
Thanks for your thoughts. Right off the top, if you’re aware of a good Resource Editor for all the text, that would be nice. (I’m currently using Visual Studio 2010 and that editor isn’t exactly great. It’s possible that the ones included in newer Visual Studios are better; I’ll find out as I work to move up to something newer over the next little while. I have them–I just don’t like change.)
1) There are actually a number of issues with localization of number handling that cascade into a giant mess. For example, one issue isn’t that Windows localizes fractional numbers, it’s that it does so *and* we have no way of knowing what locale the *source value* may be from. Instead, Windows always localizes the same way. So, you have a lot of data that is a mix of text and numbers (there are tons of formulas used in GCA), and Windows doesn’t know that they were written in a US locale, so it converts them based on the Brazil locale, and suddenly you have a completely different result than expected–or it crashes because a number is suddenly not-a-number. To deal with that, you have to be willing and able to flag every single instance of a (fractional) number as a number and what locale it is from (or at the least how it handles decimals). Now, instead of a simple formula, you also have to include a function-like reference for each number included. It gets horrific fast! And that’s just for one slice of functionality. And that need applies both to data files, and saved data.
Basically because the vast majority of GCA’s data, both in source files and internally, is in tags, which are strings of text, the conversion to and from text causes a ton of problems with localization, and is a giant mess. Trying to get a number out of a tag, or process a tag to do math on it: localized conversion of numbers happens. Try to save a value back to a tag or a portion of a tag: localized conversion happens.
If I’d had any idea of the real challenges involved in handling mixed-data across international locales, I could have tried various things to help mitigate it, probably including something like tagging numeric values with info on how to read them as numbers. But I had no idea of the years of frustration it would bring, that resulted in my finally locking things at US-standards. I’m also pretty sure that without those years of frustration, I’d have not been complete enough in my attempts.
2) Resource files. The problem I have here is that I have thousands of text strings in GCA. Dialogs are chock full of them, of course, and are what most people think about. However, there are also tons of messages that GCA generates in various ways.
To use a Resource file for all that content, every single one of those needs to have a named string entry, and I have to use that name to apply the value to where it’s going. So, just for the hundreds and hundreds of values that are typed directly into the UI elements to display on screen, I have to also type a name and that string into the Resource editor, then have to write code to have the dialog go through every UI element, get the Resource by name, and apply the Resource value to the element. Something that took me a few seconds to apply to the screen now takes a minute.
And that’s *just* for the UI, there’s also every other bit of text that GCA spits out from other code. Do you see how I quickly became frustrated and gave up on that? It took me over 10 years to write GCA5 already! So that’s why it’s not easily localizable right now, and why I have to go back and do it later, and why that’s so very, very daunting. Yes, doing it as I went would have been the best choice, but we would still be waiting for GCA5 today.
And, while I do other things, I’m *also* trying to improve access and usability for screen readers. Many elements in GCA are effectively invisible to a screen-reader, and I’m working to improve those. A large number of those accessibility captions will also need entries in the Resource file.