Welcome to Community Server Sign in | Join | Help

Keith Pleas on Globalization/L10N

Courtesy of INETA, Keith Pleas came and gave a talk on globalization/localization at the NYC user's group last night. Learned a couple of useful things (ildasm's /adv command-line switch enables a few more menu items--although make mine Reflector, thanks :), not necessarily about i18n/l10n. Then again, I did that daily for almost six years, I didn't expect to get a lot of new info [1]. But I did want to find out one thing: what's really going on under-the-hood with a satellite assembly resources at runtime.

Keith said during the talk that pulling culture-specific resources via a ResourceManager isn't cached but that working with a ResourceSet was. This seemed wierd to me, so I asked about it afterward, and I think we agreed that it the runtime was most likely keeping things memory resident after first call. I probably should look into it further or verify it. Really what I wanted to know is what the overhead of actually bringing a ResourceManager into the equation to manage which culture's resources get retrieved (versus doing the simplest thing that would work and loading up a hash of my own design--Paul Wilson has an example of this, and you can make the argument that ResourceManagers are overkill for the typical 5-language ASP.NET site).

Anyway, it was worth the trip uptown in the heat, and there was only one problem. It's the same problem that keeps me from getting motivated to go to more user group events: Mr. Smarty in the back row. It's usually a different guy from month to month, tonight the same guy way way in the back asked like 4 halting questions that actually weren't questions just churlish little attempts to show that he knew a lot, possibly even more in his own mind, than the speaker. Questions along the lines of “that can't be right, that's the wrong language-culture combo abbreviation, it's zh-CHS, why did you, Keith Pleas, decide that should be included as a culture name?“.

Yes, good sir, you win a prize for catching that Microsoft juiced the list of ISO 3166 country codes slightly [2]. It's not much of a prize, however, because Keith was there teaching the basics to people who had, for the most part, never heard of ildasm or the fusion loader. Actually, now that I think of it, since this made the speaker pause, go far afield trying to satisfy you with a response (when a simple “man are you smart or what“ would probably have quickly done the trick)--since it basically just eats into the scheduled program, particurlarly when repeated four times, the prize you've won isn't really a prize at all. I'm signing you up for two complimentary tickets to the Punch-In-Your-Face Tour 2003 (in case it doesn't sink in the first time).

The point is, don't be this guy. Even if you're in a talk that's below your level of particular knowledge, look for the parts where you can learn something, don't hijack the presenter's time to try and feed your own ego and thereby justify your presence. If you have more involved questions, ask them afterward--follow up by email even.

Argh. This is why I don't go to the user group that often; there's always a couple guys with some inner score to settle, or so it seems. But next month's Jeffrey Richter, so pretty much have to go; besides I think the peanut gallery will get a lot quieter if he digs deep into garbage collection.

[1] Keith also had a lot of cool sample code and some batch files to streamline resource compilation. They're available on the web, I hope I'm not in trouble and that wasn't some super secret NYC .NET Dev perk or something.

[2] Yes, there are some additions to the ISO 639/3166 combinations, they've been there for three years. My understanding from when I used to care more about this kind of thing was that the additions were made in the 3166 space and that this was done mainly in instances where there was only a single 639 language code representing what were really multiple languages. There's more than one Chinese so zh along doesn't get it done in terms of identifying a neutral culture. So you need zh-CHT to represent Traditional, whereas with languages with a 1:1 639 mapping, you can just use the language code for the neutral culture--i.e., de = German, fr = French, etc. Same thing goes for the multiple flavors of Azeri, Serbian and good old Uzbek. Call me the next time you're localizing into Azeri.

Published Friday, August 22, 2003 12:58 AM by grant

Comments

No Comments
Anonymous comments are disabled