>
 Wednesday, November 30, 2005
« MSDN Webcast: Going Global Gets Easier w... | Main | DOWNLOAD: November WinFX CTP - work with... »

In a recent exchange on this forum: http://forums.asp.net/1126817/ShowPost.aspx a few people are looking for tools to help them with the localization process. WARNING, the thread is really long, it will take you two hours to get through it!!! I have already made a lot of remarks in the forum, but it is pretty clear that although ASP.NET 2.0 has taken some of the pain away with the new tools they provided including:

  • Generation of local page resources
  • Declarative expressions that generate code to link control properties to local or shared global resources
  • ResourceManager lifetime management
  • Automatic culture selection from browser settings

...people (of course) still want and need more. I have a perspective on this that is based on my experiences, but you all may have other challenges that differ, so this blog entry is an attempt to collect feedback from you on the tools you'd like to see improved for localization of Web sites. Here's my synopsis of what is needed, and the roles that use the tool:

Improvements to developer tools (VS IDE):

  1. Help me associate control properties to local or shared resources and manage my shared resources as well if I have made those links. Currently this can be done with IDE extensibility, no tools on the market.
  2. Don't let me compile without notification that resource should be regenerated due to changes in the page. In other words, developers are concerned that the page changes might be out of sink with resources associated to the page...and not resolved because the developer forgets to generate resources again.
  3. Provide a tool to automatically (programmatically) generate resources for all pages. 
  4. Help me link a resource entry to a database field. THis would be like data binding, with a custom localization expression linking a $Resource entry to a database field, which implies I need a way to configure the connection string for design time as well. This would still look like an explicit localization expression for a shared resource, but connect to the database instead. THis can be done with extensibility but no robust solutions currently exist.
  5. Perform change management to reconcile changes to invariant resx (local or global) and make sure keys are reconciled with variant (NOTE: I don't agree that this is necessary in the IDE, I think it belongs in change management, but let's keep it here and see what people think).

Change management tools:

  1. Create a difference report for resources on check-in (VSS or VSTS or external tool that can be run against selected source files).
  2. Allow the difference reports to be reconciled from last translator shipment to the latest build (what resources were added, changed, deleted in the invariant version? reconcile this against variant resources)
  3. Pull all resx into a single file, allow translators to edit that single file, the push all translated values into appropriate individual resources again (easy, with XML, and clients have done custom work on this, no tool on the market that I know of)
  4. Pull database content and file content for translators into a localization package for editing by translators offline, then reconcile after changes are made (lots of variations here, what tools do people use today for database access besides running reports and pushing in translated values with script?)
  5. A way to manage this process and keep track of all relevant files/changes

I know this is not an exhaustive list, but it is relevant to the discussions on the thread I mention above.

Please comment or add requests in this blog entry. I speak with this team at Microsoft with some regularity, and have told them about this blog entry...and they are just a great group so they are really interested in hearing this feedback!!!

 

11/30/2005 9:02 PM ASP.NET | Globalization  | Comments [8]  |  View reactions  |  Trackback
    ON THIS PAGE
    SEARCH
    CATEGORIES
    ARCHIVES
    BLOGROLL

Designed by NUKEATION STUDIOS