Daichi Kawahata wrote: > I might help you. If you mentioned the following case, there is > no problem. A msgfmt compiles de.po ignoring this strings.
Ah, I see. If I understand correctly, non-matching format strings are silently discarded (if tagged "fuzzy"). I've looked at the created gtk-gnutella.mo and those strings actually don't appear in it. > #: src/ui/gtk/settings.c:1095 > #, fuzzy, c-format > msgid "%u/%u host (%u%%)" > msgstr "%v/%u (%P%%)" > But a compilation was successfully even if the following case, > it's something wrong. Sure, the C compiler never sees these strings and can't complain and technically C compilers don't have to check format strings. That's simply a GCC feature. It's not invalid C, you're simply provoking undefined behaviour (which includes crashes but this is the least problem). I've noticed that by adding "fuzzy" as above to the item all warnings are suppressed even for C format strings. This item could be problematic. Fortunately, it's not used as format string so it can't cause trouble. #: src/ui/gtk/gtk2/search_cb.c:899 #, fuzzy msgid "Query queued..." msgstr "%u in Warteschlange" However, it seems that gettext ignores it. When using the German translation, the English string is used. The German translation actually appears in gtk-gnutella.mo but the original English string doesn't. This item is not tagged as c-format string and it's not used as such, it's a pure string. I guess this is rather an accident caused by automagically merging/updating de.po. The equivalent appears in all other PO files except ja.po in which it's correctly translated. -- Christian
pgp3bbIILOBsL.pgp
Description: PGP signature
