1. First case: WIMS modules

A translator's nightmare

Not very long time ago, in the mythical time of hackers and geeks, programs were like this

	
	#if #TARGET (posdec2) || #TARGET (reldec2)
	#if #TARGET (posdec2)
	\title{Positive decimals II}
	\text{size=60x30}
	\integer{lim=4}
	#else
	\title{Relative decimals II}
	\text{size=65x30}
	\integer{lim=8}
	#define ADDNEG 1
	#endif
	\text{data1=wims(values \randint(19)+x/10 for x=1 to 9)}
	\text{data2=wims(values \randint(199)/10+x/100 for x=1 to 9)}
	\text{data=\data1[1..\lim],\data2[1..\lim]}
	#endif

	\text{name=number}
	\text{Name=Number} 
	
      

What's wrong here?

Problems:

  • What has to be translated? (1) hard to tell code from text and no extraction of strings to translate (would it be so difficult to write \text{Name="Number"}, with old simple double quotes?). (2) We had problems even finding out which files were source and which were generated from these. But a translator's mistake makes the module useless!

  • The source has to be ‘compiled’ by the translator in order to check the translation

  • No reusability if a new version

  • No reusability of somebody else's work

  • No specialised tools

  • How to organize a team?

[Note] Our trick: use modtool

At least it tells you the files that must be translated and compiles them.


		Modtool used to translate
		WIMS