Error in Translation: "'msgstr' is not a valid C format string, unlike 'msgid'. Reason: In the directive number 1, the character ' ' is not a valid conversion specifier."

Asked by JL

Translating a string I got this error twice:
'msgstr' is not a valid C format string, unlike 'msgid'. Reason: In the directive number 1, the character ' ' is not a valid conversion specifier.

The texts below is found in:
https://translations.launchpad.net/ubuntu/hirsute/+source/exiv2/+pots/exiv2
String numbers:
5059 and 6065

The English text was:
The ratio of the area of the point-radius (decimalLatitude, decimalLongitude, coordinateUncertaintyInMeters) to the area of the true (original, or most specific) spatial representation of the Location. Legal values are 0, greater than or equal to 1, or undefined. A value of 1 is an exact match or 100% overlap. A value of 0 should be used if the given point-radius does not completely contain the original representation. The pointRadiusSpatialFit is undefined (and should be left blank) if the original representation is a point without uncertainty and the given georeference is not that same point (without uncertainty). If both the original and the given georeference are the same point, the pointRadiusSpatialFit is 1.

and

The ratio of the area of the footprint (footprintWKT) to the area of the true (original, or most specific) spatial representation of the Location. Legal values are 0, greater than or equal to 1, or undefined. A value of 1 is an exact match or 100% overlap. A value of 0 should be used if the given footprint does not completely contain the original representation. The footprintSpatialFit is undefined (and should be left blank) if the original representation is a point and the given georeference is not that same point. If both the original and the given georeference are the same point, the footprintSpatialFit is 1.

My translations was:

A proporção da área do raio do ponto (Latitude decimal, Longitude decimal, Incerteza de Coordenada em Metros) e a área da representação espacial verdadeira (original ou mais específica) do Local. Os valores legais são 0, maior ou igual a 1 ou indefinido. Um valor de 1 é uma correspondência exata ou sobreposição de 100%. Um valor de 0 deve ser usado se o raio do ponto fornecido não contiver completamente a representação original. O Ajuste Espacial do Raio do Ponto é indefinido (e deve ser deixado em branco) se a representação original for um ponto sem incerteza e a georreferencia fornecida não for o mesmo ponto (sem incerteza). Se o original e a georreferencia fornecida forem o mesmo ponto, o Ajuste Espacial do Raio do Ponto será 1.

and

A proporção da área da pegada (pista WKT) para a área da representação espacial verdadeira (original ou mais específica) do Local. Os valores legais são 0, maior ou igual a 1 ou indefinido. Um valor de 1 é uma correspondência exata ou sobreposição de 100%. Um valor de 0 deve ser usado se a pista fornecida não contiver completamente a representação original. O Ajuste Espacial da pista é indefinido (e deve ser deixado em branco) se a representação original for um ponto e a georreferencia fornecida não for o mesmo ponto. Se o original e a georreferencia fornecida forem o mesmo ponto, o Ajuste Espacial da pista será 1.

I believe that it must be a special character or a group or characters (for ex. %) in this sentence that trigger the error message.
I've tried to have a space between the % and the dot (.) (ex. % .); a space between the number (100), the % (ex. 100 %.) and a space between the number (100), the % and the dot (.) (ex. 100 % .) But none of that helps.

What can I do to make the translation according to the English text and not receive error message?

Question information

Language:
English Edit question
Status:
Solved
For:
Launchpad itself Edit question
Assignee:
No assignee Edit question
Solved by:
Colin Watson
Solved:
Last query:
Last reply:
Revision history for this message
Best Colin Watson (cjwatson) said :
#1

This is a bug in the POT file. I've filed https://github.com/Exiv2/exiv2/pull/1908 upstream to explain and correct it (as well as https://github.com/Exiv2/exiv2/pull/1907 to correct what I believe to be some bitrot in their localization infrastructure).

I don't really know what to suggest in the meantime, as it may not be possible to translate this string reasonably without gettext complaining that the format string directives don't match. (You can reproduce this locally by running something like "msgfmt -o /dev/null --check-format pt.po".) With the POT file the way it is, the only way to construct a working translation seems to be if the "%" character is followed by "o" (perhaps with a space in between), which may not be reasonable in Portuguese.

You could file a bug on the Ubuntu exiv2 package asking for the POT file to be corrected, which might be possible. (The result of applying my patches in this particular case would be that the flags in those translations change from "#, c-format" to "#, no-c-format".)

Revision history for this message
JL (jl2414) said :
#2

I think the best is to wait until the programmers find a way to solve the bug.
This two strings are not in so big hurry to be translated.
Me or someone else will try to translate it later.
At that time there will be a solution for sure.
Thanks a lot for your efforts!

Revision history for this message
JL (jl2414) said :
#3

Thanks Colin Watson, that solved my question.