(added alternatve part) |
(Fix formating.) |
||
Line 3: | Line 3: | ||
{{Anchor|parameters}} | {{Anchor|parameters}} | ||
== Controlling parameters order == | == Controlling parameters order == | ||
When translating, | 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. | ||
For example in German, | For example; in German, this won't work: | ||
`msgid "String '%s' has %d characters\n"` | |||
`msgstr "%d Zeichen lang ist die Zeichenkette '%s'\n"` | |||
<code>msgstr "%2$d Zeichen lang ist die Zeichenkette | In order to specify the parameter order, the number with $ mark can be given as below: | ||
<code>msgstr "%2$d Zeichen lang ist die Zeichenkette '%1$s'\n"</code> | |||
'''Alternatives''' | '''Alternatives''' | ||
In some cases, you may see a string that looks like " | In some cases, you may see a string that looks like "`%(var)s`". This variable 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. | No other changes are required. | ||
[[Category:Localization]] | [[Category:Localization]] |
Revision as of 10:53, 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 the 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 variable 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.