guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Website translation


From: pelzflorian (Florian Pelz)
Subject: Re: Website translation
Date: Thu, 18 Jul 2019 22:28:31 +0200
User-agent: NeoMutt/20180716

On Thu, Jul 18, 2019 at 06:59:32PM +0200, Ricardo Wurmus wrote:
> 
> pelzflorian (Florian Pelz) <address@hidden> 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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]