I’ve just read this blog post and while I’m keen to encourage localisation of web application and anything that makes it easier, I’m curious as to why Jason feels the need to say that localisation is “hopelessly broken in ASP.NET” and you have to do all the localisation by hand, for every control. There’s no comments feature on his blog, which is why I’m commenting here.

I’d agree that localisation in ASP.NET isn’t perfect; the server code has to have the additional meta resource keys, and you have to wrap all text to be localised, but this doesn’t have to be done by hand. Visual Studio will automatically parse the page, adding the meta resource keys to all controls that are localisable and creating the resource file for you. Yes it’s an XML file, but Visual Studio has an editor for it, and there are other tools I’ve seen that allow editing of resource files, so it’s not like you have to hand edit the XML. It’s obviously harder if you need an external person to do the translation, but not that much harder.

The other issue I have is Jason says:

In practice, it's so much extra work that nobody actually does it. That, my friends, is the reason you hardly ever see any multi-language websites written with ASP.NET.

That’s a really sweeping statement and completely misses the point. Most people don’t do localisation because they don’t care; English is their major language, a language spoken by the majority of the people they target their site to, so it’s just not relevant. It’s also a much bigger issue than just the text on the page, with database text (eg product descriptions, etc) requiring the same treatment, support for right-to-left languages, etc.; those, I’d agree, are areas where ASP.NET’s localisation falls down.

In the spirit of fairness, I too admit to not having localised many sites, but those I have done have been done very quickly. Yes you have to process each page, which is a burden, but a relatively small one since Visual Studio does it for you. I have a fairly large application to localise soon and it will take me a while to go through all of the pages, but the real effort of what I need to do is support right-to-left languages, so it’s not just the text that needs changing, but the entire site layout. That though, is another issue.

Jason’s idea is sensible in some areas, in that if you code from scratch using his method, then localisation is simply a matter of the source text, so you don’t need to touch your site at all. Likewise, I could have done the same with every site I’ve done, using the built-in features. Jason’s method might fit you better if you’re in the MVC space or have come from another framework.

I don’t wish to be negative about this Jason; please continue to localise sites and to push localisation as a good thing to do. Use whatever method is suitable. But don’t discourage people from using the built-in methods when the tools provide some great features; let’s tell everyone all the methods available, give guidance on the pros and cons of each and let them pick the best for their needs.