On Thu, Jul 18, 2019 at 06:59:32PM +0200, Ricardo Wurmus wrote: > > pelzflorian (Florian Pelz) <pelzflor...@pelzflorian.de> writes: > > > I think msgctxts could help with fragmentation, as I would > > prefer format strings with msgctxt over HTML-that-is-not-SHTML with > > itstool (I may misunderstand itstool though). > > I don’t understand. itstool operates on plain old XML fragments. >
At first I thought of plain HTML strings, but it surely was a misunderstanding. I now get the impression itstool is something like Glade’s <https://pelzflorian.de/git/gui-prog-gtk/tree/bin/copyshop/src/ui/menu.ui>. I suppose it is a wrong impression again? > What’s the desired workflow? Something like (li (b "Liberating.") " Guix is an advanced distribution of the " ,(link-yellow #:label "GNU operating system" #:url (gnu-url "gnu/about-gnu.html")) " developed by the " ,(link-yellow #:label "GNU Project" #:url (gnu-url)) "—which respects the " ,(link-yellow #:label "freedom of computer users" #:url (gnu-url "distros/free-system-distribution-guidelines.html")) ". ") could be something like (li (b ,(G_ "Liberating.")) ,(I_ " Guix is an advanced distribution of the <gnu-url-link path='gnu/about-gnu.html'>GNU operating system</link> developed by the <gnu-url-link>GNU Project </gnu-url-link>—which respects the <gnu-url-link path='distros/free-system-distribution-guidelines.html'> freedom of computer users</gnu-url-link>. " `(gnu-url-link . ,(lambda* (content #:key (path "")) (link-yellow #:label content #:url (gnu-url path)))))) or could be format strings like sirgazil’s code (li (b ,(G_ "Liberating.")) ,(I_ " Guix is an advanced distribution of the ~GNU OS~ developed by the ~PROJECT~—which respects the ~FREEDOM~. " (link-yellow #:label (G_ "GNU operating system") #:url (gnu-url "gnu/about-gnu.html")) (link-yellow #:label (G_ "GNU Project") #:url (gnu-url)) (link-yellow #:label (G_ "freedom of computer users") #:url (gnu-url "distros/free-system-distribution-guidelines.html")))) with the po file containing #: apps/base/templates/home.scm:42 msgid "" " Guix is an advanced\n" "distribution of the ~GNU OS~ developed\n" "by the ~PROJECT~—which respects the\n" "~FREEDOM~. " msgstr "" "Guix ist eine vom ~PROJECT~ entwickelte," "fortgeschrittene Distribution des ~GNU OS~" " — die die ~FREEDOM~ respektiert." #: apps/base/templates/home.scm:47 msgid "GNU operating system" msgstr "GNU-Betriebssystems" #: apps/base/templates/home.scm:50 msgid "GNU Project" msgstr "GNU-Projekt" #: apps/base/templates/home.scm:50 msgid "freedom of computer users" msgstr "Freiheit, wie man seinen Rechner benutzt," Format strings yield fragmented PO files, which is why it might be better to use them with a msgctxt/pgettext. For example, "GNU operating system" may need different translations and grammatical cases in different places on the website. Without pgettext, this approach does not work, it seems. Another option I would like the most is using a custom PO file writer and MO file reader that generates a single msgid directly from the original nested s-expression. Such a procedure seems nice to use, but complicated to implement. Regards, Florian