On Sat, Dec 14, 2002 at 01:27:21AM +0100, Josip Rodin wrote: > On Sat, Dec 14, 2002 at 01:12:31AM +0100, Denis Barbier wrote: > > > Right, doc/manuals.defs (line 119) is the intended sentence. > > > I found that %s is substituted by fixed (not variable) text. > > > I don't know the reason. > > > > See Josip's answer to my commit, he thinks that markup should > > be avoided in PO files because this is error prone. This is > > debatable, it is true that quotes and other special characters > > are harmful under certain circumstances. > > No, I was not referring to that -- I was referring to translators who > fuck things up.
Oh sorry, I misunderstood your point. > For example, translate the link or the name of the program. Ok, this is why I insert a comment just above, which appears in PO files. > IMO the right fix here is to implement the $ stuff in perl's %s so that we > can use it like we can use it in C programs, but hey... There is an alternative, but I am afraid it will cause trouble, this is why I did not mention it before. In mp4h 1.3.0, there is a new <printf> tag which recognizes the $ stuff, so we could replace <: printf "..." $foo, $bar :> by <printf "..." foo bar /> But the problem is that %1 and %2 are special, they are replaced by macro attributes when it is expanded. So you cannot write <define-tag foo><printf "%2$s %1$s" foo bar /></define-tag> because %1 and %2 are replaced as soon as <foo> is encountered, before <printf> is expanded. This is why I believe that multiple %s should really be avoided. Denis

