[Top][All Lists]

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

branch master updated: website: Add post on translating the website.

From: Florian Pelz
Subject: branch master updated: website: Add post on translating the website.
Date: Wed, 20 Jan 2021 05:56:17 -0500

This is an automated email from the git hooks/post-receive script.

pelzflorian pushed a commit to branch master
in repository guix-artwork.

The following commit(s) were added to refs/heads/master by this push:
     new 749eb34  website: Add post on translating the website.
749eb34 is described below

commit 749eb345f5530d4b865c1465461537fac40f25ae
Author: Florian Pelz <>
AuthorDate: Wed Jan 20 10:30:32 2021 +0100

    website: Add post on translating the website.
    * website/posts/ New file.
 .../posts/   | 143 +++++++++++++++++++++
 1 file changed, 143 insertions(+)

diff --git a/website/posts/ 
new file mode 100644
index 0000000..73d2724
--- /dev/null
+++ b/website/posts/
@@ -0,0 +1,143 @@
+title: Adding translations to Guix’ website
+date: 2021-01-20 12:00
+author: Florian Pelz
+tags: Community
+As part of [GNU](, Guix aims to bring freedom to
+computer users all over the world, no matter the languages they
+(prefer to) speak.  For example, Guix users asking for
+[help]( can expect an answer even if they do
+so in languages other than English.
+We also offer translated software for people more comfortable with a
+language other than English.  Thanks to many people who contribute
+translations, GNU Guix and the packages it distributes can be used in
+various languages, which we value greatly.  We are happy to announce
+that Guix’ website can now be translated in the same manner.  If you
+want to get a glimpse on how the translation process works, first from
+a translator’s, then from a programmer’s perspective, read on.
+The process for translators is kept simple.  Like lots of other free
+software packages, Guix uses
+[GNU Gettext]( for its
+translations, with which translatable strings are extracted from the
+source code to so-called PO files.  If this is new to you, the magic
+behind the translation process is best understood by taking a look at
+one of them.
+[Download]( a PO
+file for your language [at the Fedora Weblate
+Even though PO files are text files, changes should not be made with a
+text editor but with PO editing software.  Weblate integrates PO
+editing functionality.  Alternatively, translators can use any of
+various free-software tools for filling in translations, of which
+[Poedit]( is one example, and (after logging in)
+[upload]( the
+changed file.  There also is a [special PO editing
+mode]( for users of
+[GNU Emacs](  Over time
+translators find out what software they are happy with and what
+features they need.
+Help with translations is much appreciated.  Since Guix integrates
+with the wider free software ecosystem, if you intend to become a
+translator, it is worth taking a look at the styleguides and the work
+of other translators.  You will find some [at your language’s team at
+the Translation Project (TP)](
+So much for the translation of ordinary source code.  With
+[Po4a](, we can also use Gettext’s tooling to
+translate Guix’ [manual]( and
+[cookbook](  But all this was not true
+of its web presence.  That’s why after a [lengthy
+process,]( the website of
+GNU Guix has undergone an update.  It now supports translation into
+other languages.  Such support is known as internationalization
+Guix’ website is written in a variant of HTML (in which web pages are
+usually written) that integrates better with the [Scheme programming
+language](  Instead of XML tags, we use
+This allows web authors to mix code and text.  It looks like this:
+  (h2 "On packaging")
+  (p
+   "Packages are "
+   (a (@ (href ,(manual-url "Defining-Packages.html"))) "defined")
+   " as native "
+   (a (@ (href ,(gnu-url "software/guile"))) "Guile")
+   " modules."))
+However, this mixing makes it more difficult to extract the strings to
+be translated.  We therefore cannot take the same approach as
+[](, which uses a software package called
+[GNUnited Nations]( to extract from
+pure HTML mark-up.  Translators are not always coders and we would
+prefer to show them only the textual part, like this:
+msgid "Packages are <1>defined</1> as native <2>Guile</2> modules."
+Our new, custom i18n system does this.  The website authors need to
+mark translatable expressions in the same way ordinary strings are
+[usually marked in Guile Scheme
+  ,(G_ `(h2 "On packaging"))
+  ;; TRANSLATORS: Defining Packages is a section name
+  ;; in the English (en) manual.
+  ,(G_ `(p
+         "Packages are "
+         ,(G_ (manual-href "defined" (G_ "en") (G_ "Defining-Packages.html")))
+         " as native "
+         ,(G_ `(a (@ (href ,(gnu-url "software/guile"))) "Guile"))
+         " modules.")))
+Translators can arbitrarily change the ordering:
+#. TRANSLATORS: Defining Packages is a section name
+#. in the English (en) manual.
+#: apps/base/templates/about.scm:64
+msgid "Packages are 
<1>defined<1.1>en</1.1><1.2>Defining-Packages.html</1.2></1> as native 
<2>Guile</2> modules."
+msgstr "Pakete werden als reine <2>Guile</2>-Module 
+Details are [documented
+We hope it strikes the right balance between simplicity for the
+website’s developers and translator comfort.  Still missing is a way
+to translate blog posts like the one you are reading here.
+With ideas for and by a more diverse community, we can look forward to
+a bright multi-lingual future.  Please get in touch with [your
+language’s team]( or [us Guix
+developers]( if you want to help make
+Guix’ website available in your language as well!
+#### About GNU Guix
+[GNU Guix]( is a transactional package manager and
+an advanced distribution of the GNU system that [respects user
+Guix can be used on top of any system running the Hurd or the Linux
+kernel, or it can be used as a standalone operating system distribution
+for i686, x86_64, ARMv7, and AArch64 machines.
+In addition to standard package management features, Guix supports
+transactional upgrades and roll-backs, unprivileged package management,
+per-user profiles, and garbage collection.  When used as a standalone
+GNU/Linux distribution, Guix offers a declarative, stateless approach to
+operating system configuration management.  Guix is highly customizable
+and hackable through [Guile](
+programming interfaces and extensions to the
+[Scheme]( language.

reply via email to

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