Last modified: 2010-09-15 08:44:00 UTC
It's not uncommon for translators to accidentally drop some printf-style formatting characters from strings, particularly things like ordered parameters: en "1$s's status on 2$s" ja "%2$s における %1$ のステータス" Here, the 's' string specifier got dropped by mistake. This should be fairly easy to detect: make sure we have the same number of params and that we're not missing any explicitly-numbered ones. We could highlight the suspicious parts and prompt the translator to correct it or accept anyway. Since this particular check is applicable only to programs using printf-style formatting from their strings, it could perhaps be applied only when using gettext (which usually is paired with lots of sprintf fun)
I'm not familiar with positional formatting characters. What is the meaning of each letter in %2$s for example? Can there be something else in their place or in addition to?
%2%s is the second parameter for a message; it's similar to $2 in MediaWiki messages. %2$s can be replaced by %s only. There's also %[n$]d for integers. Basically the gettext products need a Checker for this parameter type.