Omer van Kloten‘s entry on Internationalization of Programming reminded me of a (possibly apocryphal) story that I was told when I started working on OLE Automation. I asked why IDispatch::GetIDsOfNames takes an LCID and was told that once-upon-a-time, the VBA team conducted an experiment in localization with VBA in Excel (which was the first application to host VBA). Apparently, they attempted to localize the entire language–keywords, function names, etc.–into French, and possibly other languages. This mean you could write code along the lines of what Omer outlines in his entry, except in French instead of Dutch.
The problem was that because VBA wasn’t exactly compiled in those days, the Excel spreadsheet that you wrote your code in now depended on having localized Excel on the machine. If you sent your spreadsheet to your colleague in New York, they couldn’t run the macros because their English Excel didn’t understand the language…
The story is true.
VBA was internationalized in Excel 5/95.
But Excel killed support for it in Excel 97, because of huge support issues and the inability to read files in other languages.
Pingback: Computer Science Teacher - Thoug
I was met with this same sad realization when I tried to write a VB2003 application in modern greek. The constant switching back and forth between greek identifiers and english keywords totally took the fun out of it. I’m still happy that VB supports unicode source but I have been wanting a localized version of the language for a while now.
With regards to the concerns about translating the framework, how about VB9 dynamic identifiers?
Really the way we visualize CIL has been a hot topic in my circle. Most of the developers I know, that care, realize that all of these languages are just syntactic sugar on top of IL and have … expressed an interest in having the editor be more like a XSLT over IL such that one could view the underlying code in the language of their choice (it’s one of the big solutions to the mixed VB/C# teams problems). Oh well, enough rambling from me 🙂
I actually wrote a compiler using Hindi keywords, and even made it "skinnable" so that keywords in other languages could be plugged in. I wrapped some framework features as "commands", such that they too could be translated.
But after using it for a while, I found that the use of keywords in another language does not offer any significant benefit to comprehension. I had some friends use it, and they came to the same conclusion. So, that project is shelved.
Makes a very cool demo though.
I think Powerpoint was the first office application using VBA, Excel came after then Access and Word.
And, I think – but i’m not sure- that for localized VBA with Excel 95, problem was from non-english to another non-english Excel. I believe, US excel could read any local.
You still have that kind of localization problem with Access XP. Using Reports or Forms, autogenerated controls’s name are localized and if you create a report in a French Access you cannot use it in a Greek Access.