From Fedora Project Wiki

Controlling parameters order

Ao traduzir, algumas vezes a tradução de uma string específica requer ordem de parâmetro diferente. Mas geralmente não é permitido alterá-los na string traduzida. Existe uma solução alternativa para alterar a ordem na tradução e pode ser encontrada com o comando info gettext.

Por exemplo, em alemão, isso não funcionaria:

msgid "String '%s' has %d characters\n"
msgstr "%d Zeichen lang ist die Zeichenkette '%s'\n"

Para especificar a ordem dos parâmetros, o número com a marca $ pode ser fornecido como abaixo:

msgstr "%2$d Zeichen lang ist die Zeichenkette '%1$s'\n"


Alternativas

Em alguns casos, você pode ver uma string semelhante a %(var)s. Isso é chamado de variável e pode ser movido dentro de uma sequência em qualquer ordem.

msgid "String '%(str)s' has %(char)s characters\n"

Traduzida:

msgstr "%(char)s Zeichen lang ist die Zeichenkette '%(str)s'\n"

Nenhuma alteração mais é necessária.