I have to create a software that must work on several *nix platforms (Linux, AIX, ...).
I need to handle internationalization and my translation strings are in the following form:
"Hi %1, you are %2." // English
"Vous êtes %2, bonjour %1 !" // French
Here %1 stand for the name, and %2 for another word. I may change the format, that's not an issue.
I tried to use printf() but you cannot specify the order of the parameters, you just specify their types.
"Hi %s, you are %s"
"Vous êtes %s, bonjour %s !"
Now there is no way to know which parameter to use for replacement of %s: printf() just uses the first one, then the next.
Is there any alternative to printf() that deals with this ?
Note: gettext() is not an option.