views:

31

answers:

2

Hello,

In process of internationalizing our .NET applications we stumbled to the fact that there is a lot of room for human error. Most popular is that a string is present in neutral culture resource file, but is not in culture-specific resource file. So, at runtime a neutral string gets loaded (which has been written by a programmer, not by a technical writer, and can be too geeky for an end user). These error are easily missed by QA, so I'm is search of an automated tool with these key features:

  • For a given project, it should check presence of culture-specific resource files for each neutral resource file. Target cultures and resx file exclusions should be customizable.
  • For every pair of neutral/culture-specific resource files it should check that "important" entries from neutral file are all present in culture-specific file (I should be able to specify which entries are "important" with some mask or regular expression on a string id)
  • MSBuild integration would be nice (verification must be done at every build), at least I should be able to run it from command line.
  • Tool should be free, as i'm unlikely to convince the management to pay for it :)

Quick search did not yield any useful results (it seems that most companies use specialized tools to produce satellite localization assemblies, not complite them along with code). If anyone uses such a tool please let me know, or am I better off writing one myself?

+1  A: 

Have you tried using FxCop? I am not sure if it has detection for this error class, but is sure does many other from globalization area.

Paweł Dyda
Tried it, but it seems I would still have to write a custom rule (which can't be easily configured). Thanks for the hint anyway.
Chriso
+1  A: 

I don't know if there are any tools that match all your criteria. However, if you use ReSharper, starting from version 5, it does have an internationalization assistance pack that includes culture hierarchy inspections. For example, if you do have a data item in your neutral culture that is not overridden in a specific culture, ReSharper will warn you about that and copy the data item to culture-specific files (it won't translate it for you, or course)

ReSharper for .NET app internationalization in Visual Studio

Apart from this and other internationalization-driven inspections, ReSharper provides an overview of resx file structure, helps you quickly navigate between different culture hierarchy nodes, find usages of resource items, and, most importantly, extract strings from your source code (C#, ASP.NET, HTML) to resource files.

That's only a small fraction of overall ReSharper functionality that is generally very useful for .NET development in Visual Studio.

gorohoroh