Мне нужно создать программное обеспечение, которое должно работать на нескольких платформах * nix (Linux, AIX,...).
Мне нужно обработать интернационализацию, и мои строки перевода имеют следующий вид:
"Hi %1, you are %2." // English
"Vous êtes %2, bonjour %1 !" // French
Здесь %1 укажите имя и %2 для другого слова. Я могу изменить формат, это не проблема.
Я попытался использовать printf(), но вы не можете указать порядок параметров, просто укажите их типы.
"Hi %s, you are %s"
"Vous êtes %s, bonjour %s !"
Теперь нет способа узнать, какой параметр использовать для замены %s: printf() использует только первый, затем следующий.
Есть ли альтернатива printf(), которая имеет дело с этим?
Примечание: gettext() не является параметром.