Software Localization

Napalm2880

Expert Member
Joined
Mar 8, 2007
Messages
3,231
Reaction score
1,706
Location
JHB
I'm a project manager and I work for a large software development company in SA. I've recently been tasked with ensuring our flagship .NET application is "world-ready".

There are multiple angles to this task, all of which I'd appreciate some input:

So, to give you some idea, from a technical perspective...
Most (+-70%) of the application strings are stored in .RESX files but there are still areas of the application which are extremely complex logically and make use of string concatenation among a plethora of other technically nasty issues.

From a localization perspective...
We have distributors and customers all over the world, some of whom have already reached out to do the translation. How can I put that to good use and what TMS's (Translation Management System) should I use? I've been looking at CrowdIn, Sisulizer, Wordfast and SDL (which seems to be the market leader and offers multiple applications - all are very confusing and full of marketing speak).

I'm leaning towards CrowdIn which offers - Easy access to translators globally, Access control, Reports and integration via an API.

From a SDLC (software development lifecycle) perspective...
Currently all our resource files are stored in a TFS repository. Once text is 100% translated into a specific language, what is the best way to commit the updated resource files back into the repo? (I'm thinking along the lines of continuous integration)

How does the (mostly) SA support team deal with bugs logged in Turkish?

Is there anyone out there that can offer advice, pitfalls, case studies, and experience in making this a reality, please post here... or just wish me luck!
 
I would consider directing my prayers both east & west - just in case !

Unfortunately globalization is a lot more than just strings. What of currency, dates, times, number formatting, use of special characters, differing lengths of equivalent text strings, the structure of addresses - amongst others ?

Even installation can be a problem: "C:\Program Files\" might be "C:\Programme" in Germany.

Finally, have you used the .NET tools when coding e.g. used the "CultureInfo" version of (for example) .ToString() ?

Maybe I should have stopped earlier and left this as a simple "good luck" :)
 
Yeah its quite a pain in the butt. Localisation and Globalisation.

We developed an in house tool and workflow system to deal with all of this.

Some additional things to remember:
Your product will evolve (I assume), so text will change, some will be new, some different and some removed. You need to be able to deal with this. You cannot expect a translator to translate everything each time (but only the changes).

After translation, your product essentially needs to go through complete testing (ie string widths/ui layouts, dynamic text issues, etc)

What about images ? Any that require to be localised ? (hope not)


Regarding dynamic text and the possible reordering required when translating: I'm sure your developers will come up with a few solutions. (ie a token based mechanism, example: "Dear {username}, you have used {used} of your {total} credits").


Good luck!
 
I would consider directing my prayers both east & west - just in case !
That's the best advice I've received so far:D

The application is about 10 years old, so fairly mature, and is used globally. I've only been at the company for a few months - enough to have already seen a number of bugs regarding date/number/currency formats and special characters - without any "official" support for different locales. So yes, agreed, MUCH MORE than just strings:(

I've read the MSDN pages on the CultureInfo Class but coming from a QA background, I only have a high-level understanding of how it's implemented in our application. Currently, from a testing perspective, I can machine translate the .RESX files and change my browser's locale and the application will display in the relevant language, well sortof. Obviously there are still many existing issues.

At the moment I'm looking more on advice on process, best practices and tools to support those processes and best case, some brave fellow who has been in this position before. :D
 
What about images ? Any that require to be localised ? (hope not)
A few icons and images in the application will need to change. Not too many though. Documentation on the other hand is going to be a NIGHTMARE - 3500 pages of content which changes constantly!

So defining scope on this project is going to be very important.
 
That's the best advice I've received so far:D

The application is about 10 years old, so fairly mature, and is used globally. I've only been at the company for a few months - enough to have already seen a number of bugs regarding date/number/currency formats and special characters - without any "official" support for different locales. So yes, agreed, MUCH MORE than just strings:(

I've read the MSDN pages on the CultureInfo Class but coming from a QA background, I only have a high-level understanding of how it's implemented in our application. Currently, from a testing perspective, I can machine translate the .RESX files and change my browser's locale and the application will display in the relevant language, well sortof. Obviously there are still many existing issues.

At the moment I'm looking more on advice on process, best practices and tools to support those processes and best case, some brave fellow who has been in this position before. :D

In this type of case - a 10 year old application - the technical debt is tending to overwhelm the program.

Which begs the question: does management want the program fixed 'properly '? Or just repair the most obvious bugs so the company can continue shipping the product ?

A thumb-suck estimation - especially for somebody from a QA background - can be obtained by having your developers run the program's source through StyleCop. BTW, ensure that none of the error messages are suppressed. Count the culture-related messages in the results and you will have some idea of the size of the problem.

Incidentally, each of the StyleCop messages is - in effect - a bug :)

BTW do your programmers use TDD ?

Finally - and I realise that I am being pedantic here - 'globalisation' refers to preparing the program for all countries, whereas 'localisation' is tweaking the program for a locale e.g. Germany.
 
Top
Sign up to the MyBroadband newsletter
X