If you need to translate a rather large software system, (For example System ESS from IndustriMatematik.) you will end up spending rather large amounts of money every time you do a translation.
Therefore: translate as much as possible with reused old translations. Make a decision on how much quality trade off you can take to cut the costs. More reuse means less cost and worse quality. A certain degree of reuse is always possible with maximum quality. See TranslationsReuseMeansQualityTradeOff? for further discussion.
I am thinking about putting together a SoftwareTranslationPatternLanguage? if there are people around with some known uses at hand. It may be that this is a new area in which case there will be no pattern language but perhaps a nice discussion about the related problems.
Please give some examples of a large system needing to be translated more than once. My experience includes only a few cases of doing it even once! Thanks!
Sure, we are doing that with our business system. We have a department that administers translations. It has been translated into 12(?) languages and every new release is translated to needing upgrading customers. This is the only example I know of but would like to share experiences with others in the same situation and perhaps mine some patterns from that common experience.
My role is that of project leader for developing reuse tools for the version recently released. The main task is to program logic to reuse as much translations as possible. I am told that a translation of the entire system to one new language cost $200000.
I am uncertain as to what you mean by translating a system into 12 languages. Previously, I knew people who talked about putting all externally visible strings into files, so that all the strings in the files could be translated at one go, and the program source code would not have to change at all. When they did that, there was no pattern language to write, and no program logic involved.It sounds as though you are doing something different, but I can't figure out what. Can you clarify? --AlistairCockburn
I will do my best to clarify. Maybe some questions about the problem may help?
If a string is used more than once in a system, should it be translated only once or once for each occurrence? Sometimes the translation of a string depend on the context.
Suppose it is possible to reuse translations from previous releases. Can we reuse throughout the entire system or can we only reuse the translation of the very same occurrence in the old system? If we reuse though out the system we may find the wrong translation in some cases.
If we don't care about the context, how will we treat the alternative translations that need to be entered?
Our answers have been that we can't care about the context because we have no cheap way to inform the translators of the context. (Translators typically charge per word when using their own tool and per hour when using other tools. Figure which is more expensive....) So we reuse through out the entire system with some exceptions. We count on some failed translations that will eventually come back as bug reports from the customer. That is the quality trade off we make. --FredrikRubensson
Are you translating between natural languages or doing something like the ShlaerMellorMethod?
Between natural languages. From English to whatever.
Maybe you should provide your translators with a translation memory. This allows reuse without *forcing* it, which is very silly as you can't predict which strings will be constant across all languages. http://laxstrom.name/blag/tag/translation-memory/
or for the disabled or functionally challenged:
Between what it is to what is perceived by those who can not see or those who can not hear, or those who can not hear or see, or those who cannot move but either hear/see, or do not hear, do not see, or nearly impossible those who do not hear, see or move.''