It's been awhile since I've posted and most of that has been due to being incredibly busy at work... and preparing for the release of Call of Duty Modern Warfare 2. Of course, I have to get my PS3 time here and there where I can as it has become a rarity. The work stuff has involved a major project to address globalization and localization within our entire suite of products. Silkroad technology (that's not a typo, technology is spelled with a small 't') produces a full-suite of human resource and talent management solutions and, as if it wasn't quite obvious, globalizaiton and localization is a HUGE key to playing on the world stage.
I've done localization in Flex before and it's really not a big deal. You create your properties files, compile them into your project using the command-line compiler, and deploy the resultant .swf(s). In Flex 3, Adobe introduced support for RUNTIME LOCALIZATION and styling which was a godsend. My issue, however, revolves around the whole "compilation of properties files into .swfs." On a small scale, eg having a single site or a single client, compiled resource bundles work great and are very fast... even when loaded at runtime. When you move into a product solution environment... especially one that offers the level of configuration that Silkroad offers, the standard approach to localization can get cumbersome. In my humble opinion, I think one think that sometimes detracts from Flash / Flex / Actionscript is that it can be difficult to introduce runtime, non-compiled elements into your Flash / Flex / Actionscript application... Flex especially. When you work in an environment as dynamic as ours, this can cause people to shy away from Flex as a serious solution provider in favor of something, how can I say, a little more flexible.
Consider for a moment the workflow to get your files localized. You create an English(or whatever language) version, send the files to a translator, the translator performs the translations, send back the files and then you have to go through and compile each one (imagine multiple languages) and deploy them. That's a BUNCH of WORK!!! And as developers tend to be a lazy bunch (we especially HATE tedium.), it comes up that perhaps there has to be a better way to approach (and simplify) this localiztion process. Specifically, simplifying this process across MANY clients, across MANY cultures and locales should not require that much work.
Along these lines I have a new best friend (not really, we have never met) named Robert Savage. I came across his blog while I was planning a solution to this localization issue and felt the need to look up at the sky and say a quick prayer of thanks. Robert has come up with an interesting solution to the localization issue where, instead of using compiled resource bundles, he reads in a simple .xml file that replaces the properties file. HOW ABOUT THAT?!?! What a wonderful concept! Using this approach, you can send your xml file to your translator, they send it back, and you can just drop it into a directory somewhere. No need for multiple versions of flx .swfs based on locale, no need to do any additional compilation! Robert has a couple of great posts describing the problem from his perspective and his novel solution.
You can read the posts for yourself at
http://www.savage7.com/index.php/2009/10/adobe-flex-3-load-localization-resources-at-runtime-using-xml/ and
http://www.savage7.com/index.php/2009/06/adobe-flex-3x-lack-of-support-for-localization-internationalization-i18n/. Cheers Robert!