kprobst
kprobst

Reputation: 16651

Strategies for localizing large amounts of text in .NET applications

I'm working on an fairly large ASP application that will be fully localized. I'm using the standard named resx approach in satellite assemblies, with fallbacks (that is, es-MX, es-CL and fallback common to es and so on).

Not only will there be probably hundreds (if not a thousand or more!) of different strings; in some places the amount of text that needs to be stored as resource can be long, to the tune of a few paragraphs.

I'm guessing it will be a royal pain to manage these strings in the Visual Studio editor, not to mention the fact that the people who will do some of the translations won't have access to VS in the first place.

How do you folks that work on localized apps manage this type of thing? Any advice and pointers would be appreciated.

Upvotes: 13

Views: 2078

Answers (5)

juFo
juFo

Reputation: 18567

use the free Resource Translation Helper tool ( http://www.winking.be/resource-translation-helper ).

  1. backup your data
  2. Add a location and select your project folder containing the .resx files
  3. say where you want to store the .xls file (this creates also another xml file containing the mappings, don't delete that file).

give the Excel file to your translators, let them update the languages

  1. after translating import the .xls file again to the folder

Works just fine!

Upvotes: 1

Greg
Greg

Reputation: 16680

I started a project that had a small localization effort (4 languages, about a dozen pages) that grew into a much larger localization effort (9 languages, 40+ pages).

The resx file model is starting to be a huge PITA. Adding the new files for a language is painful. Adding the new files for a new page is painful. Moving functionality between pages is painful.

A database-driven approach would probably be better, although I haven't tried it to be sure.

Edit: As for working with translators, I use Zeta Resource Editor to export/import the translation to/from a spreadsheet.

Upvotes: 1

Eduardo Molteni
Eduardo Molteni

Reputation: 39413

If you decide to go DB, check out this article: Creating a Data Driven ASP.NET Localization Resource Provider and Editor by Rick Strahl and then download it for free

If you decide to still using resx, you can use Zeta Resource Editor to mitigate the pain.

Upvotes: 7

Davidson Sousa
Davidson Sousa

Reputation: 1353

I honestly don't know about the limitations of the resx files but, if there are some, you can do the following:

Create a table into the database which contains the translated texts. Then you would have to cache the loaded translated text when the website would be accessed.

Such approach would also help with the translation team, which doesn't have access to Visual Studio. The only problem I visualize is the creation of an extra WebApp which would allow the translation team to translate the texts. But still, it would be something simple.

In case you can't use the database for that, some XML files could do the job for you.

EDIT: I just found another alternative but using .txt files. That can also help you.

Upvotes: 3

Emond
Emond

Reputation: 50672

If there is so much content it looks more like a problem that should be attacked/would be solved by a Content Management System.

Upvotes: 1

Related Questions