From Fedora Project Wiki

(Fix formating.)
m (Change "the" to "a")
Line 3: Line 3:
{{Anchor|parameters}}
{{Anchor|parameters}}
== Controlling parameters order ==
== Controlling parameters order ==
When translating, sometimes the translation of a particular string requires different parameter order. But it is usually not allowed to change them in the translated string. There is the workaround to change the order in translation, and it can be found with `info gettext` command.
When translating, sometimes the translation of a particular string requires different parameter order. But it is usually not allowed to change them in the translated string. There is a workaround to change the order in translation, and it can be found with `info gettext` command.


For example; in German, this won't work:
For example; in German, this won't work:
Line 18: Line 18:
'''Alternatives'''
'''Alternatives'''


In some cases, you may see a string that looks like "`%(var)s`". This variable can be moved within a string in any order.
In some cases, you may see a string that looks like "`%(var)s`". This is called a variable and can be moved within a string in any order.


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

Revision as of 10:55, 4 April 2020

The Fedora Localization Project - Tips for Translators

Controlling parameters order

When translating, sometimes the translation of a particular string requires different parameter order. But it is usually not allowed to change them in the translated string. There is a workaround to change the order in translation, and it can be found with info gettext command.

For example; in German, this won't work:

msgid "String '%s' has %d characters\n"

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

In order to specify the parameter order, the number with $ mark can be given as below:

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


Alternatives

In some cases, you may see a string that looks like "%(var)s". This is called a variable and can be moved within a string in any order.

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

Translated:

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

No other changes are required.