
Patrick M Doane
I find sprintf to be not powerful enough for internationalization. The specification of actual values is order dependant which may change from language to language.
not true with advanced printf's: There is one last vital consideration for output. The order of words in a sentence is different in various languages, for example, ``yellow flower'' becomes ``la flor amarilla'' en Espanbsp;nol. The differences between English and German are equally dramatic. To solve this problem, the standard printf() allows the order of the arguments to be handled in variable order in the format string. For example, if we have printf(fmt, month, date, who); we can use an fmt of %s %d is %s's birthday in English to produce ``April 26 is James's birthday'' and %3$s's geburtstag ist %2$d. %1$s in German to generate ``James's geburtstag ist 26. April.'' Notice that qualifiers like 2$ allows us to reorder the parameters to account for differing word order in different languages. (from http://www.alumni.caltech.edu/~copeland/work/i18n-b.html)
participants (1)
-
Pixel