I have spent the past two days investigating which technology I will use to support translations of text strings (as part of an overall internationalization migration) for an archaic (VC6) Windows desktop application (with MFC) that is being migrated to Visual Studio 2013 at the same time that it is being internationalized.
I have all but decided to use GetText to implement text (string) translations (given the availability of Poedit, Eazy Po, and perhaps other tools; at least Poedit also includes a build of
xgettext for Windows, and I suspect Eazy Po does as well).
I will not go into the pros and cons that I identified for these two technologies, because that is not directly relevant to my question. Suffice it to say that GetText seems clearly better, in my opinion.
There is only one area of comparison between these two technologies that I do not yet understand to my satisfaction. Specifically, I have little sense of whether
gettext (perhaps wrapped by Boost.Locale) is at all standard practice for translating Windows desktop applications in C++.
Specifically: If I were to learn that 99% of all Windows desktop applications written in C++ in the year 2014 (seemingly industry-wide) used the Microsoft-recommended "MUI"-based technology for string (text) translations, I would likely decide to engage in another day or two's worth of careful investigation just to be certain I didn't miss something. But if even 5% or 10% (or more) used a
gettext-based technology, I would be satisfied with that and I would move ahead and use
gettext myself without feeling a need for any further investigation.
I have been unable to find any statistics regarding how common the use of
gettext is for string translations for Windows desktop applications, in comparison with the Microsoft-recommended "MUI"-based approach.
(Related note: I did a search on my development machine for
*.po files, and I found only a handful of applications using either type of resource file; but the GetText-related
*.po applications are more common, at least on my machine. Interestingly, even some Microsoft applications use
I would appreciate a response from someone with experience in the area of internationalizing Windows desktop applications: Is the use of
gettext (and derivative) approaches, vs. the MUI approach, for Windows desktop applications, thoroughly non-standard? I'd just like to know if I'm really doing something out of the ordinary here - not that I won't go ahead and do it anyways :)