trans-coord-devel
[Top][All Lists]
Advanced

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

trans-coord/gnun/server/gnun doc/web-trans.texi...


From: Pavel Kharitonov
Subject: trans-coord/gnun/server/gnun doc/web-trans.texi...
Date: Fri, 01 Feb 2013 06:01:50 +0000

CVSROOT:        /sources/trans-coord
Module name:    trans-coord
Changes by:     Pavel Kharitonov <ineiev>       13/02/01 06:01:50

Modified files:
        gnun/server/gnun/doc: web-trans.texi gnun.texi 
        gnun/server/gnun: ChangeLog 

Log message:
        Rearrange sections in a more natural way; minor documentaion updates.
        
        * doc/gnun.texi (Runtime Variables, Special Targets):
        (no-grace-items, update-localized-URLs, sync, report):
        (triggers, validate-all, PO Files, New Translation):
        (Notes Slot, Credits Slot, PO Tips, Migrating, GNU News):
        (Webmaster Tips, Validation, Comments for Translators):
        (Modifying Boilerplates, Localized URLs, Compendia, Sitemap):
        (Splitting Long Passages, languages.txt, generic.LANG.txt):
        Move one level up in the hierarchy.
        (PO Files and Team): Rename to `Team's Repository'.
        Move two levels up in the hierarchy.
        (GNUmakefile.team Variables, GNUmakefile.team Targets):
        (GNUmakefile.team and Cron): Move two levels up in the hierarchy.
        (generic.LANG.html, languages.txt, Sitemap, GNU News):
        Move from `PO Files' to `Usage'.
        * doc/web-trans.texi (Translation Managers): Remove; it should
        be a separate manual because the translators needn't read it.
        (Introduction): Remove reference to `Translation Managers'.
        Explain in more details synonyms for `co-ordinators' and
        `Translation Managers'.
        (Summary): Rename to `Translation Process'.
        (Mailing Lists): Mention team's mailing lists.
        (PO Files): Move to `Translaion Process', after `Savannah Projects'.
        (Translation Tips): Remove the node.
        (Priorities, Updating, Capitalization, Distribution Terms):
        (Terminology): Move to the beginning of `Translation Process'.
        (Terminology): Add a reference to the Translation README.
        (Migrating, SSI, CSS): Move to the end of `Translation Process'.
        (New Team): Document first steps after appointing as a
        co-ordinator (setting up mailing lists and Savannah project
        configuration).
        (Savannah Mailing Lists): Explain that the settings of the list
        are up to the team.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/trans-coord/gnun/server/gnun/doc/web-trans.texi?cvsroot=trans-coord&r1=1.50&r2=1.51
http://cvs.savannah.gnu.org/viewcvs/trans-coord/gnun/server/gnun/doc/gnun.texi?cvsroot=trans-coord&r1=1.83&r2=1.84
http://cvs.savannah.gnu.org/viewcvs/trans-coord/gnun/server/gnun/ChangeLog?cvsroot=trans-coord&r1=1.353&r2=1.354

Patches:
Index: doc/web-trans.texi
===================================================================
RCS file: /sources/trans-coord/trans-coord/gnun/server/gnun/doc/web-trans.texi,v
retrieving revision 1.50
retrieving revision 1.51
diff -u -b -r1.50 -r1.51
--- doc/web-trans.texi  31 Jan 2013 11:46:15 -0000      1.50
+++ doc/web-trans.texi  1 Feb 2013 06:01:49 -0000       1.51
@@ -52,10 +52,7 @@
 * Introduction::         Begin of the journey.
 * Members::              Information for translation team members.
 * Leaders::              Guidelines and procedures for team leaders.
-* Translation Managers:: Responsibilities of the GNU Web Translation
-                           co-ordinators.
-* Translation Tips::     Explanation of some non-obvious things.
-* Summary::              Overview.
+* Translation Process::  General guidelines and tips.
 @c * Index::
 * Copying This Manual::  The GNU Free Documentation License.
 @end menu
@@ -96,19 +93,18 @@
 describe the fundamental values of the free software movement.
 
 Translators of the @uref{http://gnu.org} website are organized in
-language teams.  Each team has one or more co-ordinators (a.k.a.
-leaders), who are responsible for the respective team.  The
+language teams.  Each team has one or more co-ordinators, who are
+responsible for the respective team; they are also referred to as
+leaders or (when multiple in a single team) co-leaders.  The
 co-ordinators participate in the Savannah @samp{trans-coord}
 organizational project, which is managed by the GNU Web Translation
-Managers.  The manual is organized in chapters that follow the
+Managers (also known as Translation Managers or web-translators).
+The manual is organized in chapters that follow the
 organizational structure of the whole translation project.
 
 If you wish to join a translation team or contribute a translation or
 two, @pxref{Members}.  If your intention is to form a translation team,
address@hidden  The chapter about the @samp{trans-coord}
-administrators (a.k.a. @dfn{GNU Translation Managers}) describes all the
-responsibilities and procedures involved in performing this duty.
address@hidden Managers}.
address@hidden
 
 @node Members
 @chapter Team Members
@@ -181,7 +177,7 @@
 two weeks), please write to @email{web-translators@@gnu.org}.
 
 For general information about the translation process,
address@hidden Tips}.
address@hidden Process}.
 
 @node Submitting
 @section How to Submit a Translation
@@ -379,7 +375,6 @@
 * Managing::            General guidelines how to manage a team.
 * Review::              How to review translations.
 * Commits::             CVS commits and best practices.
-* PO Files::            Working with PO files.
 * Savannah::            Taking advantage of Savannah.
 * Co-leaders::          Promoting members as co-leaders.
 * Reports::             Reporting team status and activity.
@@ -560,6 +555,15 @@
 www-discuss
 @end itemize
 
address@hidden
+When you are appointed the admin of the new project, please edit its
+configuration; in particular, write its description, create a mailing
+list (don't forget to subscribe yourself!), optionally add a home
+page using Web CVS repository.
+
+If you are taking over an orphaned team, Translation Managers will
+make you the owner of its mailing lists (if any).
+
 @end enumerate
 
 The whole process should not take more than two weeks or maximum a
@@ -848,105 +852,6 @@
 moderated.  If you absolutely do not desire receiving all traffic, just
 disable mail delivery in Mailman's user interface.
 
address@hidden PO Files
address@hidden Working with PO Files
address@hidden PO, editing
-
-We anticipate that some gnu.org translators will find this format odd
-or inconvenient, if they never happened to work with PO files
address@hidden www.gnu.org-specific information about editing
-PO files, @pxref{PO Files, , Working with PO Files, gnun,
-The GNUnited Nations Manual}.}.
-Don't worry, you will soon get accustomed to it.  It is the
-established format for translations in the Free World, and you should
-have no problems if you have translated software before.
-
-The most efficient way to edit a PO file is using a specialized PO
-editor, because each of them represents and treats gettext messages in
-a consistent and predictable way.  It is possible to edit a PO file
-with an ordinary plain text editor, but extra effort would be
-necessary to make it valid.  Here is a list of widely used PO editors:
-
address@hidden
address@hidden PO editors
address@hidden
-PO mode.  We recommend using GNU Emacs in PO mode, because Emacs is
-the program that is suitable for performing any task when it comes to
-maintaining the GNU Project's website.  Provided that you have GNU
-gettext installed, any @file{.po} file you visit should automatically
-switch to PO mode.  You can enable/disable it with @code{M-x po-mode
address@hidden  On some GNU/Linux distros such as gNewSense, PO mode is
-available in a separate package, @code{gettext-el}. See
address@hidden://www.gnu.org/software/gettext}.
-
address@hidden
-Gtranslator---the GNOME PO editor.  See
address@hidden://projects.gnome.org/@/gtranslator/}.
-
address@hidden
-Lokalize---the KDE 4 editor.  See
address@hidden://userbase.kde.org/@/Lokalize}.
-
address@hidden
-KBabel---the KDE 3 editor.  No longer supported, but might be
-available on some old systems.
-
address@hidden
-Poedit---another popular editor that is based on the @code{wxWidgets}
-graphical toolkit.  See @uref{http://www.poedit.net}.
-
address@hidden
-Virtaal---a relevantly new editor that supports also the XLIFF format
-and uses the Translate Toolkit API.  See
address@hidden://translate.sourceforge.net/@/wiki/@/virtaal}.
-
address@hidden
address@hidden @heresy
address@hidden Please forgive them, they don't know what they are doing...
-po.vim---ftplugin for the Vim editor.  The best option for people who
-use Vim as their editor.  See
address@hidden://www.vim.org/@/scripts/@/script.php?script_id=2530}.
address@hidden @end heresy
-
address@hidden
-Various web-based editors.
address@hidden itemize
-
address@hidden Web-based Systems
-
-An alternative way to maintain translations is to use one of the
-existing online editors.  There are plans to install a web-based system
-for managing @file{.po} files at Savannah, including online editing and
-statistics.  Until it happens, teams who wish to use this functionality
-may setup such a server on a host of their own, or use one of the
-existing free hosting platforms such as Launchpad
-(@uref{http://translations.launchpad.net}).
-
-Here is a short and probably incomplete list of such systems:
-
address@hidden
address@hidden
address@hidden://translate.sourceforge.net/@/wiki/@/pootle}
-
address@hidden
address@hidden://code.google.com/p/vertaal}
-
address@hidden
address@hidden://code.google.com/p/narro}
-
address@hidden
address@hidden://dev.launchpad.net}
-
address@hidden itemize
-
-If you decide to use such a system, please make sure that no
-translations are published in HTML format there.
-
-Note that to keep the @file{.pot} files regularly updated (assuming such
-a web-based system runs @command{msgmerge} automatically), you'll have
-to take care of the one-way regular sync from the @samp{www} CVS
-repository.
-
 @node Savannah
 @section Taking Advantage of Savannah
 
@@ -1112,7 +1017,9 @@
 Every team should have a mailing list on lists.gnu.org and use it for
 internal communications.  All active translators should be on the
 list.  The list owner should be the co-ordinator of the team.  The
-name of the list should begin with @address@hidden
+name of the list should begin with @address@hidden  The team
+co-ordinator is in the position to decide about the settings like
+being public or private.
 
 The list will make it possible for the GNU project to contact the team
 when the co-ordinator disappears; its archive will also give access to
@@ -1135,7 +1042,7 @@
 ready.  It is also convenient to update the translation (merge any
 changes from the original) while it is still under review.
 
address@hidden Files and Team, , , gnun, The GNUnited Nations Manual}, for
address@hidden's Repository, , , gnun, The GNUnited Nations Manual}, for
 more information.
 
 @strong{Remember:} A choice of a particular VCS is a sensitive
@@ -1232,623 +1139,711 @@
 (@pxref{Co-leaders}) and retire completely when she is absolutely ready
 to proceed without your further help and advice.
 
address@hidden Translation Managers
address@hidden @samp{trans-coord} Admins
-
-This chapter is not yet written.  The current admins know what to do,
-hopefully.
address@hidden Translation Process
address@hidden Translation Process
 
address@hidden Translation Tips
address@hidden Details about the Translation Process
+In general, it is expected that all participants in the translation
+process apply common sense for all of the decisions (important or not)
+they are going to take in their capacity as a manager, team leader, or
+contributing member.  Certainly, many decisions are not easy, and
+require some thought.
 
-The purpose of this chapter is to summarize some odd and not so obvious
-details about specific parts of the gnu.org website.  Most of them
-become well known as time goes by; however, practice shows that it is
-difficult to figure them out at once.
-
-Some limitations and oddities are just historical remnants from old
-habits and previous incarnations of old (inefficient) translation and
-webmastering processes.  Others are outright deficiencies
-(i.e. ``bugs''), but no one has stepped in to correct them so far.
+This manual is a work in progress---it is not set in stone, and it
+will never be finished---the ultimate goal is to constantly improve
+the translation process, and as a consequence, the documentation.
+Every participant in the process should be free to suggest
+modifications to the current procedures and suggestions how to improve
+the current state of affairs.  Ideally, they should be accompanied
+with patches to the Texinfo source, but that's not mandatory.  In any
+event, please write to @email{trans-coord-discuss@@gnu.org}---the goal
+of this list is precisely to discuss improvements of the translation
+process.
 
address@hidden The sections are sorted so that those interesting for less 
involved
address@hidden people (like occasional contributors) come first; the technical
address@hidden details tend to be at the end.
 @menu
-* Migrating::           How to migrate to the new style.
-* SSI::                 Overview of SSI #include directives.
-* CSS::                 General advice how to use CSS.
 * Priorities::          What to translate as a priority.
 * Updating::            Keeping translations current is a priority.
 * Capitalization::      To CAPITALIZE or not?
 * Distribution Terms::  Translating distribution terms.
 * Terminology::         Dealing with terminology issues.
+* Mailing Lists::       Summary of mailing lists.
+* Savannah Projects::   Projects membership.
+* PO Files::            Working with PO files.
+* Migrating::           How to migrate to the new style.
+* SSI::                 Overview of SSI #include directives.
+* CSS::                 General advice how to use CSS.
 @end menu
 
address@hidden Migrating
address@hidden Migration to the New Style
-
-Migration to the new style should be straightforward, and this is one of
-the problems GNUN set out to solve.  If you have to migrate old-style
-translations, @pxref{Migrating, , , gnun, The GNUnited Nations Manual}.
-If the old translation is HTML 2.0 (or 3.2), you still have to take care
-about the inner markup.  Overall, it is substantially easier than doing
-all of it manually.
address@hidden Priorities
address@hidden What to Translate
 
-Subsequent migrations to newer HTML standards and newer look and feel
-of the website are supposed to happen semi-automatically, although
-this manual will be updated as needed.
+The page
address@hidden://www.gnu.org/@/server/@/standards/@/translations/@/priorities.html}
+lists the most important essays to translate.  In general, articles in
+the directories @file{philosophy}, @file{gnu},
address@hidden, @file{distros},
address@hidden and @file{licenses} are important.  The others may be
+deferred for a time when a team completes most of the important
+translations, or they can be translated as a ``rest''---in translators'
+parlance this means doing something in between which is typically easier
+to handle.
 
address@hidden SSI
address@hidden Summary of SSI @code{#include}s
+You can find links automatic reports about current status of
+translations of all active teams sorted by their priority in
address@hidden://www.gnu.org/software/gnun/reports/}.  If the page for
+your team is missing there, please ask
address@hidden@@gnu.org} to add it to the cron job.
 
-The GNU Project's website uses SSI (Server Side Includes) to manage some
-common parts that are the same in many of the articles.  With the help
-of GNUN their handling should be behind the scenes, but for some of them
-manual intervention is needed.  Here is a (possibly incomplete) list of
-the @code{#include}'s used:
address@hidden not} translate articles under these directories:
 
 @table @file
address@hidden server/banner.html
-This file contains only @code{#include} directives, so the
-``translation'' should be identical, with filenames modified to have the
address@hidden extension.
address@hidden software/@var{pkg}/
+These pages are maintained by the respective @var{pkg} maintainers.
+GNUN does not support them for the time being, as they reside in
+separate repositories.  The procedures for contributing translations of
+such articles are not yet settled.
 
address@hidden server/body-include-1.html
-Contains the top menu with useful ``skip to'' links.
address@hidden brave-gnu-world
+The Brave GNU World initiative has been abandoned long time ago, and
+it's in a separate repository---thus not supported by the automatic GNUN
+build job.
 
address@hidden server/body-include-2.html
-This is the file containing the menus, the FSF widget, and any visible
-announcements made from time to time.  If a string gets ``fuzzy'' or
-``new'' here, it will appear in English in all translations, until
address@hidden/po/address@hidden is updated.  Note that
-some validation errors originate from an error in
address@hidden/address@hidden or some other template
-file.
address@hidden home.html
+There is no problem to translate this page, but don't make the mistake
+to pick it up as your first translation.  It is modified often,
+sometimes intensively, and only active team members should take that
+road.
 
address@hidden server/bottom-notes.html
-A link to the FSF page explaining how to report possible copyright
-infringements.
address@hidden server/whatsnew.html
+This is ``What's New'', also known as ``GNU's Flashes'', also known as
+``GNU News''.  It is deprecated since quite some time and translating
+it is discouraged.
address@hidden table
 
address@hidden server/footer-text.html
-This is a very short file currently containing the ``back to top'' link.
-Also translatable via GNUN.
address@hidden Updating
address@hidden Keeping Translations Current
 
address@hidden server/header.html
-The declaration that is included in literally every file.  It is
-maintained manually, as it does not make much sense to put it under
-GNUN's control (there are no translatable strings).  Remember to specify
-the proper @code{xml:lang} and @code{lang} attributes, and for RTL
-languages, the @code{dir} attribute.  For example, the file
address@hidden should contain this line:
+It is very important to keep existing translations up-to-date with the
+respective English originals.  This task should be higher priority than
+translating new articles.  We developped different means to automate
+the process of tracking outdated translations.
 
address@hidden
-<html xmlns="http://www.w3.org/@/1999/@/xhtml"; xml:lang="ar" lang="ar"
-      dir="rtl">
address@hidden example
address@hidden
address@hidden
+GNUN's @code{report} rule can help you to identify precisely which
+articles need updating; @pxref{report, , , gnun, The GNUnited Nations
+Manual}.  There is a monthly cron job which sends the output of this
+rule to each team as requested by their leaders.  If you want the
+addresses changed, please write to @email{web-translators@@gnu.org}.
 
address@hidden server/head-include-1.html
-This file (included from @file{server/header.html}) is very important:
-the encoding is defined here.  Note that it is applicable for all
-translations, so it is not possible to have different articles in
-different encodings.  Even if a specific PO file is deliberately encoded
-in another encoding, the generated HTML will contain the encoding
-declared in the @code{<meta>} element at
address@hidden/address@hidden, so browsers will obey it.
address@hidden
+The @code{gnun-report} script produces a HTML page listing detailed
+status of translations; @pxref{gnun-report, , , gnun, The GNUnited
+Nations Manual}.  A cron job commits updated reports for all active
+teams to GNUN project web repository, typically twice an hour.  The
+links to those reports are provided on
address@hidden://gnu.org/@/software/@/gnun/@/reports/}.
 
-The encoding should be UTF-8.  This is required because the English text
-in the articles serves as a replacement of the translation when the latter
-is not complete, and because all translated pages share automatically
-generated lists of translations.
address@hidden
+GNUmakefile.team provides a more detailed @code{report} target: unlike
+the output of the previous tools, it analyzes the status of files in
+team's repository as well as of those in @samp{www} repository;
address@hidden in GNUmakefile.team, , , gnun, The GNUnited
+Nations Manual}.
 
address@hidden server/html5-header.html
-This file is included in newer pages using some entities introduced
-in HTML5 draft.  We have to distinguish those pages since some features
-of HTML4 were rejected in HTML5, and our old pages don't validate
-as HTML5.
address@hidden
+GNUmakefile.team also has a means to send a further detalized reports
+to specific translators; @pxref{notify in GNUmakefile.team, , , gnun,
+The GNUnited Nations Manual}.  The notification facility takes the
+output of the @code{report} target, adds the URLs of relevant files,
+and the results are sent with attached HTML files of
+team'address@hidden differences to the translators who requested
+tracking particular files.
 
address@hidden server/html5-head-include-1.html
-Likewise, this file replaces head-include-1.html for HTML5 pages.
+The feature is supposed to be invoked via a cron job; such jobs
+already run for some teams on our server.  If you'd like GNU Web
+Translation Managers to setup a job for your team, please write to
address@hidden@@gnu.org}.
 
address@hidden server/head-include-2.html
-Imports the standard CSS, which can be overridden.  @xref{CSS}.
address@hidden itemize
 
address@hidden server/footer.html
-This is a very short and simple file (at least at the time of writing),
-containing another @code{#include} directive.  It is maintained
-manually, so just add @var{lang} to the filename, in order the localized
address@hidden@var{lang}.html} to be included.
address@hidden Capitalization
address@hidden When to CAPITALIZE
 
address@hidden server/outdated.html
-This file is automatically included in outdated translations.  It
-contains respective message with links to the English file and
-to a generated difference of the current revision of the English
-file against the most recent revision that has a complete translation.
-It is only included in articles affected by ``grace period'' because
-in those cases the outdated passages are replaced with English text,
-and it is evident without any notices that there is no complete
-and up to date translation.
+The English language has some rules for capitalization of titles,
+chapters, acronym expansions and the like.  These rules are neither
+strict nor uniform, although the gnu.org website strives to apply them
+consistently.  They do not make sense for many other languages, but
+unfortunately, many translators @emph{erroneously duplicate} the
+capitalization in their translation.
 
address@hidden server/skip-translations.html
-The text for a link to the end of the autogenerated list of
-translations.
+Examples for common (and correct) English capitalization is the title of
+the article ``Why Software Should Be Free'' or ``Free Software
+Foundation'' (FSF).  However, in languages that do not have such grammar
+rules it is wrong to write ``Dlaczego Oprogramowanie Powinno By@'c
+Wolne'' (Polish) or ``Fondation Pour Le Logiciel Libre'' (French).
 
address@hidden server/top-addendum.html
-The text saying that the page is a translation.
+Another prominent and widely spread mistake is to write your own
+language with a capital letter in the list of translations when
+languages are written beginning with a small letter according to your
+own address@hidden lists of translations are generated
+automatically.  The names of the languages are defined in a specific
+file, languages.txt (@pxref{languages.txt, , , gnun,The GNUnited
+Nations Manual}).}.  In other words, it is right to write
address@hidden or @samp{Deutsch} (because in English and German
+languages are capitalized), but not @samp{Fran@,{c}ais} or
address@hidden@^es}---write them as @samp{fran@,{c}ais} or
address@hidden@^es}, respectively.
 
address@hidden translations.include
-The list of translations for the homepage (and only the homepage).  It
-is maintained manually; in order the link to a translation to appear on
-all of the homepages, it has to be present here.
address@hidden Distribution Terms
address@hidden Distribution Terms
 
address@hidden licenses/gpl-3.0-body.html
address@hidden licenses/fdl-1.3-body.html
address@hidden @dots{}
-Some of the licenses have the text of the license itself separated in
-another file.  This serves two purposes: 1) to provide a ``standalone''
-HTML version of the license without the gnu.org style; 2) to prevent
-strings sneaking in the @file{.pot} files, as licenses have only
-unofficial translations, hosted elsewhere.  Nothing special should be
-done about these SSI directives; the files generated by GNUN include
-them verbatim as they should not be translated.
+Most www.gnu.org articles are released under the terms of
+the Creative Commons Attribution-NoDerivs 3.0 United States license.
+The exact HTML for English pages to use is:
 
address@hidden server/sidebar*.html
-These files are deprecated---they are remnants from an older design that
-lived shortly in the middle between the old classic design and the
-current one.  If all translations are successfully migrated and none of
-them includes such files, you should delete them.  You can use
address@hidden to check this.
address@hidden table
address@hidden
+This page is licensed under a <a rel="license"
+href="http://creativecommons.org/licenses/by-nd/3.0/us/";>Creative
+Commons Attribution-NoDerivs 3.0 United States License</a>.
address@hidden example
 
-The files
+Pages in other languages should translate this notice, and should link
+to a translated version of the Creative Commons license ``deed'' if it's
+available.  Creative Commons provides standard text for this in all the
+languages they support, and we should use that wording whenever
+possible.  To do that, follow these steps:
 
address@hidden Use @itemize to avoid `underfull \hbox' warnings from TeX.
address@hidden @minus
address@hidden @file{header.html}
address@hidden @file{head-include-1.html}
address@hidden @file{html5-header.html}
address@hidden @file{html5-head-include-1.html}
address@hidden @file{head-include-2.html}
address@hidden @file{banner.html}
address@hidden @file{body-include-1.html}
address@hidden @file{body-include-2.html}
address@hidden @file{bottom-notes.html}
address@hidden @file{footer.html}
address@hidden @file{footer-text.html}
address@hidden @file{skip-translations.html}
address@hidden itemize
address@hidden
address@hidden
+Check at the bottom of the English deed page to see the list of
+languages they support.  Follow the link the language that you want a
+translation for, if available.
 
-in the @file{server} sub-directory are what webmasters call ``the
-server templates''.  These files are included in almost every article,
-translated or not.  They are somewhat important, as an error made in
-translating them propagates everywhere.  The server templates, the
-homepages, and whatsnew (a.k.a. ``GNU News'') are being rebuilt by
-GNUN whenever there is a change in the original English files; the
address@hidden variable has no effect for them.  @xref{Runtime
-Variables, , , gnun, The GNUnited Nations Manual}.
address@hidden
+Follow the ``Use this license for your own work'' link near the bottom
+of the translated deed page---it's in distinct yellow text.
 
address@hidden CSS
address@hidden How to Use Custom CSS
address@hidden
+The textarea on that page provides standard HTML.  Note that we're not
+using the graphic, just the text.
 
-The CSS file @file{layout.css} gets included (with three other CSS files)
-in almost all the English articles through
address@hidden/address@hidden  However, sometimes this
-style isn't quite right for translations---many languages have much
-longer expressions, and that is natural.  To include your own CSS,
-create a file @address@hidden and add it @emph{after} the
-directive to include @file{server/address@hidden and
address@hidden the closing @code{</head>} tag in
address@hidden/address@hidden, i.e.
address@hidden itemize
+
+For example, here's the text they provide for Dutch:
 
 @example
-<!-- start of banner.bg.html -->
-<!--#include virtual="/server/head-include-2.bg.html" -->
-<link rel="stylesheet" href="/style.bg.css" media="screen" />
-</head>
+Dit werk is gelicenseerd onder een <a rel="license"
+href="http://creativecommons.org/licenses/by-nd/3.0/us/deed.nl";>
+Creative Commons Naamsvermelding-GeenAfgeleideWerken 3.0 Verenigde
+Staten licentie</a>
 @end example
 
-Override only what is necessary and looks broken in your language; do
-not invent your own style.  This is important for the consistency of the
-gnu.org website.  A typical language-specific
address@hidden@var{lang}.css} file looks like this:
+Note that the link in this text is changed to point directly to the
+Dutch language deed.  We should always link to a copy of the license
+deed that's in the same language as the page itself.
 
address@hidden
-.inner @{ max-width: 65em; @}
+Pages in languages that aren't supported by CC should prepare their
+own translation, use it consistently throughout pages translated to
+that language, and link to the English language deed.  Also, please
+write your own translation when the translation provided by CC is not
+satisfactory for some reasons---for instance, as of May, 2012, their
+German translation uses ``Content'', which is a word to use with
+caution (see
address@hidden://www.gnu.org/@/philosophy/@/words-to-avoid.en.html#Content}).
 
address@hidden:url(/graphics/topbanner.bg.png) no-repeat;@}
-#fssbox @{font-size: 50%;@}
address@hidden example
+Note that translations should @emph{not} change the jurisdiction of the
+license; they should @emph{always} link to the CC BY-ND 3.0 @emph{United
+States} license, and @emph{not} a different port like CC BY-ND 3.0
+Japan.  This is because there are substantive differences between the way
+different ports handle moral rights issues, and we prefer the specific
+terms that are in the United States license.
 
-This widens the menu and the area where the articles are displayed
-(because the menu entries are @emph{much} longer than the English
-equivalents when translated), includes a localized logo, and makes the
-font size for the FSF widget twice smaller (because in this language,
-the translations are almost twice longer and displayed truncated, which
-is undesirable).
address@hidden Terminology
address@hidden Language-specific Terminology
 
-When creating your own @address@hidden, don't forget to
-include the license notice from the @file{layout.css}, with a short
-comment.
+This is a very important topic, not yet covered by this manual.
 
-If using the default CSS style for translations does not give the
-expected good results, or there are other problems (significant or not)
-that obstruct reading and/or worsen the look from aesthetic point of
-view, please write to @email{webmasters@@gnu.org} with a description of
-the issue.  If there are several unrelated problems, send separate
-messages with appropriate explanation (which may include a demonstration
-of the bug, such as a screenshot).
+Some tips are given on
address@hidden://www.gnu.org/@/server/@/standards/@/README.translations.en.html}.
 
address@hidden
-* topbanner::           How to localize the topbanner image.
-* RTL::                 Special notes about RTL languages.
address@hidden menu
address@hidden Mailing Lists
address@hidden Related Mailing Lists
 
address@hidden topbanner
address@hidden Localizing the @file{topbanner} Image
+Here is a short summary of the mailing lists relevant to the translation
+process, and a brief description about how they relate to the various
+participants in the process.
 
-If you'd like the nice gnu image to be localized (i.e. ``GNU Operating
-System'' to appear in your native language, here are the steps:
address@hidden @email
address@hidden www-discuss@@gnu.org
+The basic discussion list of the GNU Webmasters.  All team leaders are
+required to subscribe.
 
address@hidden
address@hidden
-Copy @file{graphics/topbanner.svg} as
address@hidden/address@hidden where @var{lang} is the
-language code, as usual.  Edit the file with Inkscape or with a plain
-text editor such as GNU Emacs, translating ``GNU Operating System''.
-Then with Inkscape, save the file as
address@hidden/address@hidden (File -> Export address@hidden).
-Then open the PNG image with the GIMP and flatten it (Image -> Flatten
-Image).  Don't forget to save and @code{cvs add} the address@hidden
-advice applies to all new files, of course.}.
+This is a private mailing list.
 
address@hidden
-Create a @address@hidden at the toplevel directory, if it
-doesn't exist already.  Normally, you would need only one line in it,
-namely:
address@hidden www-commits@@gnu.org
+Commits to the @samp{www} repository are sent here.  All Translation
+Managers are required to subscribe.  It is strongly recommended that
+team leaders subscribe---in any case they should, and mail delivery can
+be disabled personally.
 
address@hidden
address@hidden:url(/graphics/address@hidden) no-repeat;@}
address@hidden example
+This is a public mailing list, so everyone can subscribe and review the
+archives.  The @samp{www} CVS repository is also public.
 
address@hidden
-If not done already for other reasons, update
address@hidden@var{lang}.html} to include the language specific
address@hidden@var{lang}.css}.  @xref{CSS}.
address@hidden enumerate
address@hidden trans-coord-discuss@@gnu.org
+The main discussion list for the GNU Web Translators.  Team leaders must
+subscribe, as errors from GNUN are mailed here.  Active team members are
+highly recommended to join as well, because the changes in general
+policies for translations are also announced and discussed here.
 
-If you feel uncomfortable manipulating images---don't despair!  Send a
-plea for help to @email{trans-coord-discuss@@gnu.org}, some people would
-be happy to help you.  Failing that, write to
address@hidden@@gnu.org}.
+This is a private mailing list.
 
address@hidden RTL
address@hidden Specific Issues Related to RTL
address@hidden trans-coord-news@@gnu.org
+This is a list for notifications about gnunews and GNUnited Nations
+releases.  It is not mandatory to subscribe to it, although the traffic
+is very low.  If you want to track only GNUN release announcements,
+subscribe to the @samp{gnun} topic via Mailman's user interface.
+Likewise, if you want to receive only @dfn{What's New} updates,
+subscribe to the @samp{whatsnew} topic.
 
-Unfortunately, the @uref{http://gnu.org} website does not have excellent
-support for RTL (right-to-left) languages, although best efforts are
-made.  If your language is in this category, make sure to:
+Automatic announcements for new gnu.org translations (provided they're
+handled by GNUN) are also delivered here.  There are separate
address@hidden@var{lang}-ann} topics for every GNUN-aware language, so it is a
+good idea to advertise this capability widely among your local
+community.  For example, if a reader wants to be informed only about new
+Spanish translations, she can just subscribe to the @samp{es-ann}
+mailing list topic.
 
address@hidden
address@hidden
-Set the attribute @code{dir="rtl"} in the @code{html} element at
address@hidden/address@hidden
+This is a public mailing list.
 
address@hidden
-You @emph{must} have a custom CSS to override some of the pre-defined
-values.  See @file{style.ar.css} and @file{style.fa.css} to understand
-how these two languages solve some of the problems.  @xref{CSS}.
address@hidden itemize
address@hidden trans-coord-devel@@gnu.org
+All development of GNUN happens here.  Commits to the @samp{trans-coord}
+repository are also sent to this list.
 
address@hidden:} Some articles contain their own @code{<style>}
-redefinitions, or style attributes in the form @code{<p
-style="@dots{}">}.  In such situations, it is quite possible that the
-general language-specific CSS does not help, and the translation of this
-specific article does not look correct.  Please write to
address@hidden@@gnu.org}; if you have a working solution that works
-for both cases---so much the better.  For general issues that affect
-your language and require a general solution, write to
address@hidden@@gnu.org} as well, precisely describing the problem.
+This is a public list, and @email{bug-gnun@@gnu.org} is an alias.
address@hidden table
 
address@hidden Priorities
address@hidden What to Translate
+Every team should also use at least one mailing list on Savannah,
address@hidden Mailing Lists}.
 
-The article
address@hidden://www.gnu.org/@/server/@/standards/@/translations/@/priorities.html}
-lists the most important essays to translate.  In general, articles in
-the directories @file{philosophy}, @file{gnu},
address@hidden, @file{distros},
address@hidden and @file{licenses} are important.  The others may be
-deferred for a time when a team completes most of the important
-translations, or they can be translated as a ``rest''---in translators'
-parlance this means doing something in between which is typically easier
-to handle.
address@hidden Savannah Projects
address@hidden Savannah Projects Membership
 
-You can find links automatic reports about current status of
-translations of all active teams sorted by their priority in
address@hidden://www.gnu.org/software/gnun/reports/}.  If the page for
-your team is missing there, please ask
address@hidden@@gnu.org} to add it to the cron job.
+Participants in the www.gnu.org translations process normally have to be
+members of the following Savannah projects, depending on the case:
 
address@hidden not} translate articles under these directories:
address@hidden @samp
address@hidden www
+The main project which hosts the @samp{gnu.org} Web repository.
+Administrators are the Chief Webmaster, entrusted webmasters and the
+Translation Manager (in order to approve leaders' applications).  All
+team leaders (and co-leaders) should be members of this project.
 
address@hidden @file
address@hidden software/@var{pkg}/
-These pages are maintained by the respective @var{pkg} maintainers.
-GNUN does not support them for the time being, as they reside in
-separate repositories.  The procedures for contributing translations of
-such articles are not yet settled.
+Note that this project has no direct relationship with translators,
+although almost anything happening in @samp{www} directly affects
+them.  The @samp{www} project is managed separately and has
+a different (entirely unrelated) process for approving contributors.
 
address@hidden brave-gnu-world
-The Brave GNU World initiative has been abandoned long time ago, and
-it's in a separate repository---thus not supported by the automatic GNUN
-build job.
address@hidden trans-coord
+An organizational project especially created for co-ordination and
+improvement of the translation process.  All team leaders are required
+to be members, as bugs reported to @email{web-translators@@gnu.org} are
+often redirected to the @samp{trans-coord} @samp{Bugs} tracker.
 
address@hidden home.html
-There is no problem to translate this page, but don't make the mistake
-to pick it up as your first translation.  It is modified often,
-sometimes intensively, and only active team members should take that
-road.
+The admins of this project are the GNU Web Translation Managers.
 
address@hidden server/whatsnew.html
-This is ``What's New'', also known as ``GNU's Flashes'', also known as
-``GNU News''.  It is deprecated since quite some time and translating
-it is discouraged.
address@hidden address@hidden
+All translation team leaders of the language @var{lang} should be
+admins of the project @address@hidden  The leaders may
+also appoint some other members as @address@hidden admins
+for team's internal reasons.
 @end table
 
address@hidden Updating
address@hidden Keeping Translations Current
address@hidden PO Files
address@hidden Working with PO Files
address@hidden PO, editing
 
-It is very important to keep existing translations up-to-date with the
-respective English originals.  This task should be higher priority than
-translating new articles.  We developped different means to automate
-the process of tracking outdated translations.
+We anticipate that some gnu.org translators will find this format odd
+or inconvenient, if they never happened to work with PO files
address@hidden www.gnu.org-specific information about editing
+PO files, @pxref{PO Files, , Working with PO Files, gnun,
+The GNUnited Nations Manual}.}.
+Don't worry, you will soon get accustomed to it.  It is the
+established format for translations in the Free World, and you should
+have no problems if you have translated software before.
+
+The most efficient way to edit a PO file is using a specialized PO
+editor, because each of them represents and treats gettext messages in
+a consistent and predictable way.  It is possible to edit a PO file
+with an ordinary plain text editor, but extra effort would be
+necessary to make it valid.  Here is a list of widely used PO editors:
 
 @itemize
address@hidden PO editors
 @item
-GNUN's @code{report} rule can help you to identify precisely which
-articles need updating; @pxref{report, , , gnun, The GNUnited Nations
-Manual}.  There is a monthly cron job which sends the output of this
-rule to each team as requested by their leaders.  If you want the
-addresses changed, please write to @email{web-translators@@gnu.org}.
+PO mode.  We recommend using GNU Emacs in PO mode, because Emacs is
+the program that is suitable for performing any task when it comes to
+maintaining the GNU Project's website.  Provided that you have GNU
+gettext installed, any @file{.po} file you visit should automatically
+switch to PO mode.  You can enable/disable it with @code{M-x po-mode
address@hidden  On some GNU/Linux distros such as gNewSense, PO mode is
+available in a separate package, @code{gettext-el}. See
address@hidden://www.gnu.org/software/gettext}.
 
 @item
-The @code{gnun-report} script produces a HTML page listing detailed
-status of translations; @pxref{gnun-report, , , gnun, The GNUnited
-Nations Manual}.  A cron job commits updated reports for all active
-teams to GNUN project web repository, typically twice an hour.  The
-links to those reports are provided on
address@hidden://gnu.org/@/software/@/gnun/@/reports/}.
+Gtranslator---the GNOME PO editor.  See
address@hidden://projects.gnome.org/@/gtranslator/}.
 
 @item
-GNUmakefile.team provides a more detailed @code{report} target: unlike
-the output of the previous tools, it analyzes the status of files in
-team's repository as well as of those in @samp{www} repository;
address@hidden in GNUmakefile.team, , , gnun, The GNUnited
-Nations Manual}.
+Lokalize---the KDE 4 editor.  See
address@hidden://userbase.kde.org/@/Lokalize}.
 
 @item
-GNUmakefile.team also has a means to send a further detalized reports
-to specific translators; @pxref{notify in GNUmakefile.team, , , gnun,
-The GNUnited Nations Manual}.  The notification facility takes the
-output of the @code{report} target, adds the URLs of relevant files,
-and the results are sent with attached HTML files of
-team'address@hidden differences to the translators who requested
-tracking particular files.
-
-The feature is supposed to be invoked via a cron job; such jobs
-already run for some teams on our server.  If you'd like GNU Web
-Translation Managers to setup a job for your team, please write to
address@hidden@@gnu.org}.
-
address@hidden itemize
-
address@hidden Capitalization
address@hidden When to CAPITALIZE
+KBabel---the KDE 3 editor.  No longer supported, but might be
+available on some old systems.
 
-The English language has some rules for capitalization of titles,
-chapters, acronym expansions and the like.  These rules are neither
-strict nor uniform, although the gnu.org website strives to apply them
-consistently.  They do not make sense for many other languages, but
-unfortunately, many translators @emph{erroneously duplicate} the
-capitalization in their translation.
address@hidden
+Poedit---another popular editor that is based on the @code{wxWidgets}
+graphical toolkit.  See @uref{http://www.poedit.net}.
 
-Examples for common (and correct) English capitalization is the title of
-the article ``Why Software Should Be Free'' or ``Free Software
-Foundation'' (FSF).  However, in languages that do not have such grammar
-rules it is wrong to write ``Dlaczego Oprogramowanie Powinno By@'c
-Wolne'' (Polish) or ``Fondation Pour Le Logiciel Libre'' (French).
address@hidden
+Virtaal---a relevantly new editor that supports also the XLIFF format
+and uses the Translate Toolkit API.  See
address@hidden://translate.sourceforge.net/@/wiki/@/virtaal}.
 
-Another prominent and widely spread mistake is to write your own
-language with a capital letter in the list of translations when
-languages are written beginning with a small letter according to your
-own address@hidden lists of translations are generated
-automatically.  The names of the languages are defined in a specific
-file, languages.txt (@pxref{languages.txt, , , gnun,The GNUnited
-Nations Manual}).}.  In other words, it is right to write
address@hidden or @samp{Deutsch} (because in English and German
-languages are capitalized), but not @samp{Fran@,{c}ais} or
address@hidden@^es}---write them as @samp{fran@,{c}ais} or
address@hidden@^es}, respectively.
address@hidden
address@hidden @heresy
address@hidden Please forgive them, they don't know what they are doing...
+po.vim---ftplugin for the Vim editor.  The best option for people who
+use Vim as their editor.  See
address@hidden://www.vim.org/@/scripts/@/script.php?script_id=2530}.
address@hidden @end heresy
 
address@hidden Distribution Terms
address@hidden Distribution Terms
address@hidden
+Various web-based editors.
address@hidden itemize
 
-Most www.gnu.org articles are released under the terms of
-the Creative Commons Attribution-NoDerivs 3.0 United States license.
-The exact HTML for English pages to use is:
address@hidden Web-based Systems
 
address@hidden
-This page is licensed under a <a rel="license"
-href="http://creativecommons.org/licenses/by-nd/3.0/us/";>Creative
-Commons Attribution-NoDerivs 3.0 United States License</a>.
address@hidden example
+An alternative way to maintain translations is to use one of the
+existing online editors.  There are plans to install a web-based system
+for managing @file{.po} files at Savannah, including online editing and
+statistics.  Until it happens, teams who wish to use this functionality
+may setup such a server on a host of their own, or use one of the
+existing free hosting platforms such as Launchpad
+(@uref{http://translations.launchpad.net}).
 
-Pages in other languages should translate this notice, and should link
-to a translated version of the Creative Commons license ``deed'' if it's
-available.  Creative Commons provides standard text for this in all the
-languages they support, and we should use that wording whenever
-possible.  To do that, follow these steps:
+Here is a short and probably incomplete list of such systems:
 
 @itemize
 @item
-Check at the bottom of the English deed page to see the list of
-languages they support.  Follow the link the language that you want a
-translation for, if available.
address@hidden://translate.sourceforge.net/@/wiki/@/pootle}
 
 @item
-Follow the ``Use this license for your own work'' link near the bottom
-of the translated deed page---it's in distinct yellow text.
address@hidden://code.google.com/p/vertaal}
 
 @item
-The textarea on that page provides standard HTML.  Note that we're not
-using the graphic, just the text.
address@hidden://code.google.com/p/narro}
+
address@hidden
address@hidden://dev.launchpad.net}
 
 @end itemize
 
-For example, here's the text they provide for Dutch:
+If you decide to use such a system, please make sure that no
+translations are published in HTML format there.
 
address@hidden
-Dit werk is gelicenseerd onder een <a rel="license"
-href="http://creativecommons.org/licenses/by-nd/3.0/us/deed.nl";>
-Creative Commons Naamsvermelding-GeenAfgeleideWerken 3.0 Verenigde
-Staten licentie</a>
address@hidden example
+Note that to keep the @file{.pot} files regularly updated (assuming such
+a web-based system runs @command{msgmerge} automatically), you'll have
+to take care of the one-way regular sync from the @samp{www} CVS
+repository.
 
-Note that the link in this text is changed to point directly to the
-Dutch language deed.  We should always link to a copy of the license
-deed that's in the same language as the page itself.
address@hidden Migrating
address@hidden Migration to the New Style
 
-Pages in languages that aren't supported by CC should prepare their
-own translation, use it consistently throughout pages translated to
-that language, and link to the English language deed.  Also, please
-write your own translation when the translation provided by CC is not
-satisfactory for some reasons---for instance, as of May, 2012, their
-German translation uses ``Content'', which is a word to use with
-caution (see
address@hidden://www.gnu.org/@/philosophy/@/words-to-avoid.en.html#Content}).
+Migration to the new style should be straightforward, and this is one of
+the problems GNUN set out to solve.  If you have to migrate old-style
+translations, @pxref{Migrating, , , gnun, The GNUnited Nations Manual}.
+If the old translation is HTML 2.0 (or 3.2), you still have to take care
+about the inner markup.  Overall, it is substantially easier than doing
+all of it manually.
 
-Note that translations should @emph{not} change the jurisdiction of the
-license; they should @emph{always} link to the CC BY-ND 3.0 @emph{United
-States} license, and @emph{not} a different port like CC BY-ND 3.0
-Japan.  This is because there are substantive differences between the way
-different ports handle moral rights issues, and we prefer the specific
-terms that are in the United States license.
+Subsequent migrations to newer HTML standards and newer look and feel
+of the website are supposed to happen semi-automatically, although
+this manual will be updated as needed.
 
address@hidden Terminology
address@hidden Language-specific Terminology
address@hidden SSI
address@hidden Summary of SSI @code{#include}s
 
-This is a very important topic, not yet covered by this manual.
+The GNU Project's website uses SSI (Server Side Includes) to manage some
+common parts that are the same in many of the articles.  With the help
+of GNUN their handling should be behind the scenes, but for some of them
+manual intervention is needed.  Here is a (possibly incomplete) list of
+the @code{#include}'s used:
 
address@hidden Summary
address@hidden Overview of the Translation Process
address@hidden @file
address@hidden server/banner.html
+This file contains only @code{#include} directives, so the
+``translation'' should be identical, with filenames modified to have the
address@hidden extension.
 
-In general, it is expected that all participants in the translation
-process apply common sense for all of the decisions (important or not)
-they are going to take in their capacity as a manager, team leader, or
-contributing member.  Certainly, many decisions are not easy, and
-require some thought.
address@hidden server/body-include-1.html
+Contains the top menu with useful ``skip to'' links.
 
-This manual is a work in progress---it is not set in stone, and it
-will never be finished---the ultimate goal is to constantly improve
-the translation process, and as a consequence, the documentation.
-Every participant in the process should be free to suggest
-modifications to the current procedures and suggestions how to improve
-the current state of affairs.  Ideally, they should be accompanied
-with patches to the Texinfo source, but that's not mandatory.  In any
-event, please write to @email{trans-coord-discuss@@gnu.org}---the goal
-of this list is precisely to discuss improvements of the translation
-process.
address@hidden server/body-include-2.html
+This is the file containing the menus, the FSF widget, and any visible
+announcements made from time to time.  If a string gets ``fuzzy'' or
+``new'' here, it will appear in English in all translations, until
address@hidden/po/address@hidden is updated.  Note that
+some validation errors originate from an error in
address@hidden/address@hidden or some other template
+file.
 
address@hidden
-* Mailing Lists::      Summary of mailing lists.
-* Savannah Projects::  Projects' membership.
address@hidden menu
address@hidden server/bottom-notes.html
+A link to the FSF page explaining how to report possible copyright
+infringements.
 
address@hidden Mailing Lists
address@hidden Related Mailing Lists
address@hidden server/footer-text.html
+This is a very short file currently containing the ``back to top'' link.
+Also translatable via GNUN.
 
-Here is a short summary of the mailing lists relevant to the translation
-process, and a brief description about how they relate to the various
-participants in the process.
address@hidden server/header.html
+The declaration that is included in literally every file.  It is
+maintained manually, as it does not make much sense to put it under
+GNUN's control (there are no translatable strings).  Remember to specify
+the proper @code{xml:lang} and @code{lang} attributes, and for RTL
+languages, the @code{dir} attribute.  For example, the file
address@hidden should contain this line:
 
address@hidden @email
address@hidden www-discuss@@gnu.org
-The basic discussion list of the GNU Webmasters.  All team leaders are
-required to subscribe.
address@hidden
+<html xmlns="http://www.w3.org/@/1999/@/xhtml"; xml:lang="ar" lang="ar"
+      dir="rtl">
address@hidden example
 
-This is a private mailing list.
address@hidden server/head-include-1.html
+This file (included from @file{server/header.html}) is very important:
+the encoding is defined here.  Note that it is applicable for all
+translations, so it is not possible to have different articles in
+different encodings.  Even if a specific PO file is deliberately encoded
+in another encoding, the generated HTML will contain the encoding
+declared in the @code{<meta>} element at
address@hidden/address@hidden, so browsers will obey it.
 
address@hidden www-commits@@gnu.org
-Commits to the @samp{www} repository are sent here.  All Translation
-Managers are required to subscribe.  It is strongly recommended that
-team leaders subscribe---in any case they should, and mail delivery can
-be disabled personally.
+The encoding should be UTF-8.  This is required because the English text
+in the articles serves as a replacement of the translation when the latter
+is not complete, and because all translated pages share automatically
+generated lists of translations.
 
-This is a public mailing list, so everyone can subscribe and review the
-archives.  The @samp{www} CVS repository is also public.
address@hidden server/html5-header.html
+This file is included in newer pages using some entities introduced
+in HTML5 draft.  We have to distinguish those pages since some features
+of HTML4 were rejected in HTML5, and our old pages don't validate
+as HTML5.
 
address@hidden trans-coord-discuss@@gnu.org
-The main discussion list for the GNU Web Translators.  Team leaders must
-subscribe, as errors from GNUN are mailed here.  Active team members are
-highly recommended to join as well, because the changes in general
-policies for translations are also announced and discussed here.
address@hidden server/html5-head-include-1.html
+Likewise, this file replaces head-include-1.html for HTML5 pages.
 
-This is a private mailing list.
address@hidden server/head-include-2.html
+Imports the standard CSS, which can be overridden.  @xref{CSS}.
 
address@hidden trans-coord-news@@gnu.org
-This is a list for notifications about gnunews and GNUnited Nations
-releases.  It is not mandatory to subscribe to it, although the traffic
-is very low.  If you want to track only GNUN release announcements,
-subscribe to the @samp{gnun} topic via Mailman's user interface.
-Likewise, if you want to receive only @dfn{What's New} updates,
-subscribe to the @samp{whatsnew} topic.
address@hidden server/footer.html
+This is a very short and simple file (at least at the time of writing),
+containing another @code{#include} directive.  It is maintained
+manually, so just add @var{lang} to the filename, in order the localized
address@hidden@var{lang}.html} to be included.
 
-Automatic announcements for new gnu.org translations (provided they're
-handled by GNUN) are also delivered here.  There are separate
address@hidden@var{lang}-ann} topics for every GNUN-aware language, so it is a
-good idea to advertise this capability widely among your local
-community.  For example, if a reader wants to be informed only about new
-Spanish translations, she can just subscribe to the @samp{es-ann}
-mailing list topic.
address@hidden server/outdated.html
+This file is automatically included in outdated translations.  It
+contains respective message with links to the English file and
+to a generated difference of the current revision of the English
+file against the most recent revision that has a complete translation.
+It is only included in articles affected by ``grace period'' because
+in those cases the outdated passages are replaced with English text,
+and it is evident without any notices that there is no complete
+and up to date translation.
 
-This is a public mailing list.
address@hidden server/skip-translations.html
+The text for a link to the end of the autogenerated list of
+translations.
 
address@hidden trans-coord-devel@@gnu.org
-All development of GNUN happens here.  Commits to the @samp{trans-coord}
-repository are also sent to this list.
address@hidden server/top-addendum.html
+The text saying that the page is a translation.
 
-This is a public list, and @email{bug-gnun@@gnu.org} is an alias.
address@hidden translations.include
+The list of translations for the homepage (and only the homepage).  It
+is maintained manually; in order the link to a translation to appear on
+all of the homepages, it has to be present here.
+
address@hidden licenses/gpl-3.0-body.html
address@hidden licenses/fdl-1.3-body.html
address@hidden @dots{}
+Some of the licenses have the text of the license itself separated in
+another file.  This serves two purposes: 1) to provide a ``standalone''
+HTML version of the license without the gnu.org style; 2) to prevent
+strings sneaking in the @file{.pot} files, as licenses have only
+unofficial translations, hosted elsewhere.  Nothing special should be
+done about these SSI directives; the files generated by GNUN include
+them verbatim as they should not be translated.
+
address@hidden server/sidebar*.html
+These files are deprecated---they are remnants from an older design that
+lived shortly in the middle between the old classic design and the
+current one.  If all translations are successfully migrated and none of
+them includes such files, you should delete them.  You can use
address@hidden to check this.
 @end table
 
address@hidden Savannah Projects
address@hidden Savannah Projects Membership
+The files
 
-Participants in the www.gnu.org translations process normally have to be
-members of the following Savannah projects, depending on the case:
address@hidden Use @itemize to avoid `underfull \hbox' warnings from TeX.
address@hidden @minus
address@hidden @file{header.html}
address@hidden @file{head-include-1.html}
address@hidden @file{html5-header.html}
address@hidden @file{html5-head-include-1.html}
address@hidden @file{head-include-2.html}
address@hidden @file{banner.html}
address@hidden @file{body-include-1.html}
address@hidden @file{body-include-2.html}
address@hidden @file{bottom-notes.html}
address@hidden @file{footer.html}
address@hidden @file{footer-text.html}
address@hidden @file{skip-translations.html}
address@hidden itemize
 
address@hidden @samp
address@hidden www
-The main project which hosts the @samp{gnu.org} Web repository.
-Administrators are the Chief Webmaster, entrusted webmasters and the
-Translation Manager (in order to approve leaders' applications).  All
-team leaders (and co-leaders) should be members of this project.
+in the @file{server} sub-directory are what webmasters call ``the
+server templates''.  These files are included in almost every article,
+translated or not.  They are somewhat important, as an error made in
+translating them propagates everywhere.  The server templates, the
+homepages, and whatsnew (a.k.a. ``GNU News'') are being rebuilt by
+GNUN whenever there is a change in the original English files; the
address@hidden variable has no effect for them.  @xref{Runtime
+Variables, , , gnun, The GNUnited Nations Manual}.
 
-Note that this project has no direct relationship with translators,
-although almost anything happening in @samp{www} directly affects
-them.  The @samp{www} project is managed separately and has
-a different (entirely unrelated) process for approving contributors.
address@hidden CSS
address@hidden How to Use Custom CSS
 
address@hidden trans-coord
-An organizational project especially created for co-ordination and
-improvement of the translation process.  All team leaders are required
-to be members, as bugs reported to @email{web-translators@@gnu.org} are
-often redirected to the @samp{trans-coord} @samp{Bugs} tracker.
+The CSS file @file{layout.css} gets included (with three other CSS files)
+in almost all the English articles through
address@hidden/address@hidden  However, sometimes this
+style isn't quite right for translations---many languages have much
+longer expressions, and that is natural.  To include your own CSS,
+create a file @address@hidden and add it @emph{after} the
+directive to include @file{server/address@hidden and
address@hidden the closing @code{</head>} tag in
address@hidden/address@hidden, i.e.
 
-The admins of this project are the GNU Web Translation Managers.
address@hidden
+<!-- start of banner.bg.html -->
+<!--#include virtual="/server/head-include-2.bg.html" -->
+<link rel="stylesheet" href="/style.bg.css" media="screen" />
+</head>
address@hidden example
+
+Override only what is necessary and looks broken in your language; do
+not invent your own style.  This is important for the consistency of the
+gnu.org website.  A typical language-specific
address@hidden@var{lang}.css} file looks like this:
+
address@hidden
+.inner @{ max-width: 65em; @}
+
address@hidden:url(/graphics/topbanner.bg.png) no-repeat;@}
+#fssbox @{font-size: 50%;@}
address@hidden example
+
+This widens the menu and the area where the articles are displayed
+(because the menu entries are @emph{much} longer than the English
+equivalents when translated), includes a localized logo, and makes the
+font size for the FSF widget twice smaller (because in this language,
+the translations are almost twice longer and displayed truncated, which
+is undesirable).
+
+When creating your own @address@hidden, don't forget to
+include the license notice from the @file{layout.css}, with a short
+comment.
+
+If using the default CSS style for translations does not give the
+expected good results, or there are other problems (significant or not)
+that obstruct reading and/or worsen the look from aesthetic point of
+view, please write to @email{webmasters@@gnu.org} with a description of
+the issue.  If there are several unrelated problems, send separate
+messages with appropriate explanation (which may include a demonstration
+of the bug, such as a screenshot).
+
address@hidden
+* topbanner::           How to localize the topbanner image.
+* RTL::                 Special notes about RTL languages.
address@hidden menu
+
address@hidden topbanner
address@hidden Localizing the @file{topbanner} Image
+
+If you'd like the nice gnu image to be localized (i.e. ``GNU Operating
+System'' to appear in your native language, here are the steps:
+
address@hidden
address@hidden
+Copy @file{graphics/topbanner.svg} as
address@hidden/address@hidden where @var{lang} is the
+language code, as usual.  Edit the file with Inkscape or with a plain
+text editor such as GNU Emacs, translating ``GNU Operating System''.
+Then with Inkscape, save the file as
address@hidden/address@hidden (File -> Export address@hidden).
+Then open the PNG image with the GIMP and flatten it (Image -> Flatten
+Image).  Don't forget to save and @code{cvs add} the address@hidden
+advice applies to all new files, of course.}.
+
address@hidden
+Create a @address@hidden at the toplevel directory, if it
+doesn't exist already.  Normally, you would need only one line in it,
+namely:
+
address@hidden
address@hidden:url(/graphics/address@hidden) no-repeat;@}
address@hidden example
+
address@hidden
+If not done already for other reasons, update
address@hidden@var{lang}.html} to include the language specific
address@hidden@var{lang}.css}.  @xref{CSS}.
address@hidden enumerate
+
+If you feel uncomfortable manipulating images---don't despair!  Send a
+plea for help to @email{trans-coord-discuss@@gnu.org}, some people would
+be happy to help you.  Failing that, write to
address@hidden@@gnu.org}.
+
address@hidden RTL
address@hidden Specific Issues Related to RTL
+
+Unfortunately, the @uref{http://gnu.org} website does not have excellent
+support for RTL (right-to-left) languages, although best efforts are
+made.  If your language is in this category, make sure to:
+
address@hidden
address@hidden
+Set the attribute @code{dir="rtl"} in the @code{html} element at
address@hidden/address@hidden
+
address@hidden
+You @emph{must} have a custom CSS to override some of the pre-defined
+values.  See @file{style.ar.css} and @file{style.fa.css} to understand
+how these two languages solve some of the problems.  @xref{CSS}.
address@hidden itemize
+
address@hidden:} Some articles contain their own @code{<style>}
+redefinitions, or style attributes in the form @code{<p
+style="@dots{}">}.  In such situations, it is quite possible that the
+general language-specific CSS does not help, and the translation of this
+specific article does not look correct.  Please write to
address@hidden@@gnu.org}; if you have a working solution that works
+for both cases---so much the better.  For general issues that affect
+your language and require a general solution, write to
address@hidden@@gnu.org} as well, precisely describing the problem.
 
address@hidden address@hidden
-All translation team leaders of the language @var{lang} should be
-admins of the project @address@hidden  The leaders may
-also appoint some other members as @address@hidden admins
-for team's internal reasons.
address@hidden table
 
 @node Copying This Manual
 @appendix GNU Free Documentation License

Index: doc/gnun.texi
===================================================================
RCS file: /sources/trans-coord/trans-coord/gnun/server/gnun/doc/gnun.texi,v
retrieving revision 1.83
retrieving revision 1.84
diff -u -b -r1.83 -r1.84
--- doc/gnun.texi       19 Jan 2013 20:45:23 -0000      1.83
+++ doc/gnun.texi       1 Feb 2013 06:01:49 -0000       1.84
@@ -54,6 +54,11 @@
 @menu
 * Introduction::        Overview of GNUnited Nations.
 * Usage::               Basic usage, invocation and tips.
+* Team's Repository::   How to maintain translations in the team's
+                          repository.
+* PO Files::            The gentle art of editing PO files.
+* Webmaster Tips::      The webmaster's guide to GNUnited Nations'
+                          galaxy.
 * Internals::           Dive into GNUN.
 * Bugs::                How to report bugs.
 * Index::
@@ -390,10 +395,15 @@
 
 @menu
 * Invoking GNUN::       How to trigger a (re)build.
+* Runtime Variables::   Variables to control the build process.
+* Special Targets::     Targets that are not built by default.
 * Main Variables::      Specifying what to build.
-* PO Files::            The gentle art of editing PO files.
-* Webmaster Tips::      The webmaster's guide to GNUnited Nations'
-                          galaxy.
+* generic.LANG.html::   Specifying information that will propagate in
+                          every translation in a certain language.
+* languages.txt::       Specifying canonical names for languages.
+* Compendia::           Using translation memory.
+* Sitemap::             Specifics of sitemap generation.
+* GNU News::            Obsolete: How to handle ``whatsnew''.
 @end menu
 
 @node Invoking GNUN
@@ -452,13 +462,8 @@
 your hypothetical tree.  (For gnu.org, that is not necessary since
 a proper @file{gnun.mk} is maintained in `www'.)
 
address@hidden
-* Runtime Variables::   Variables to control the build process.
-* Special Targets::     Targets that are not built by default.
address@hidden menu
-
 @node Runtime Variables
address@hidden Variables to Control the Build Process
address@hidden Variables to Control the Build Process
 @cindex variables
 @cindex variable, behavior
 
@@ -637,7 +642,7 @@
 @end example
 
 @node Special Targets
address@hidden Targets Specified on the Command Line
address@hidden Targets Specified on the Command Line
 
 Some targets are not built by default, because they are only useful
 under certain circumstances.  Think of them like semi-automated
@@ -656,7 +661,7 @@
 @end menu
 
 @node no-grace-items
address@hidden The @code{no-grace-items} Target
address@hidden The @code{no-grace-items} Target
 
 The @code{no-grace-items} target regenerates a limited set of articles
 that are not affected by the grace period, namely, the
@@ -667,7 +672,7 @@
 currently it is not used.
 
 @node update-localized-URLs
address@hidden The @code{update-localized-URLs} Target
address@hidden The @code{update-localized-URLs} Target
 
 The @code{update-localized-URLs} target invokes a script that
 generates the @file{localized-urls.mk} file.  This file includes the
@@ -680,7 +685,7 @@
 @c in cron jobs, raw VCS invocations are issued instead.
 @c Should we remove it? --- ineiev
 @node sync
address@hidden The @code{sync} Target
address@hidden The @code{sync} Target
 @cindex synchronization, repository
 
 The @code{sync} target has a simple task: synchronize the
@@ -720,7 +725,7 @@
 @code{VALIDATE}.
 
 @node report
address@hidden The @code{report} Target
address@hidden The @code{report} Target
 @cindex reporting
 @cindex status, translations
 
@@ -752,7 +757,7 @@
 @xref{report in GNUmakefile.team}.
 
 @node triggers
address@hidden The @code{triggers} Target
address@hidden The @code{triggers} Target
 
 This is a special target intended to be run by the automatic build after
 the main build and @emph{after} @code{cvs|svn|bzr commit}.
@@ -824,7 +829,7 @@
 things that should be ``triggered'' after the main build.
 
 @node validate-all
address@hidden The @code{validate-all} Target
address@hidden The @code{validate-all} Target
 @cindex validation
 
 The @code{validate-all} target validates all HTML pages under GNUN's
@@ -956,550 +961,184 @@
 way its translations to be maintained via GNUN.
 @end table
 
address@hidden PO Files
address@hidden Working with PO Files
address@hidden generic.LANG.html
address@hidden The @address@hidden File
address@hidden team information
address@hidden generic notice, translations
 
-This section provides GNUN-specific information about woking
-with PO files.  For general information, @pxref{PO Files, ,
-Working with PO Files, web-trans, GNU Web Translators Manual}.
+The files @file{server/gnun/address@hidden are special: if
+no such file exists for your language, an empty file will be created
+(and added to the repository if specified @code{VCS=yes}).  This file
+is optional, and should contain a short message in your native
+language, ideally providing more information about the translation
+team or where to report bugs.  For example:
 
address@hidden
-* New Translation::     How to start a new translation.
-* PO Tips::             Tips and hints for translators.
-* Migrating::           How to migrate an existing translation to a PO
-                          format under GNUN's control.
-* generic.LANG.html::   Specifying information that will propagate in
-                          every translation in a certain language.
-* languages.txt::       Specifying canonical names for languages.
-* PO Files and Team::   How to maintain translations in the team's
-                          repository.
-* Compendia::           Using translation memory.
-* Sitemap::             Specifics of sitemap generation.
-* GNU News::            Obsolete: How to handle ``whatsnew''.
address@hidden
+<p>To join the Fooish translation team, see <a
+href="http://gnu.org/@/server/@/standards/@/translations/@/foo";>the
+Foo team homepage</a>.</p>
address@hidden example
 
address@hidden menu
+The contents of @address@hidden is injected right after
+the translators' credits, if any, and before the timestamp.  It should
+be valid HTML markup.
 
address@hidden New Translation
address@hidden Starting a New Translation
address@hidden translation, new
address@hidden new translation
+When you modify this file, for example, adding a message to the
+existing empty file or changing a URL, such modification will affect
address@hidden articles of the language @var{lang} in
address@hidden@var{lang}.html}.  The next time a build occurs, all
+translations of the language code @var{lang} (i.e. all
address@hidden@var{lang}.html}, including the homepage), will be modified to
+include the contents of this special file.
 
-To start a new translation, the most simple way is to copy the
-existing POT as @address@hidden, where @var{lang} is your
-language code.  For example, to prepare for a new translation of the
-essay @uref{http://www.gnu.org/philosophy/free-sw.html}, you can
-simply do @code{cd philosophy/po; cp free-sw.pot
address@hidden and then edit the latter.  If
address@hidden does not exist it is because either the article is
-not yet ``templated'' (i.e. migrated to the new style), or the GNUN
-maintainers have not yet added it to the value of the appropriate
-variable in @file{server/gnun/gnun.mk}.  In that case, just ask them
-to do the necessary in order the POT to be generated.
address@hidden languages.txt
address@hidden The @file{languages.txt} File
 
-You could also use the @command{msginit} utility that would populate
-the PO file header with the right information, provided your
-environment is set up correctly.  @xref{msginit Invocation, ,,
-gettext, GNU gettext tools}.
+The file @file{server/gnun/languages.txt} is used when generating
+lists of translations; those lists are subsequently included in all
+translations of the article.  Every line in the file is either a
+comment (when it begins with ``#'') or a definition for a language.  A
+language is defined by three @key{TAB}-separated fields.  The first field
+defines the language suffix; it is used in file names and in texts of
+the links.  The second field is the name of the language in English;
+it is used in HTML comments.  The third field defines the name of the
+language in that language itself; it is used in texts of the links,
+and it should be in UTF-8.  For example:
 
-GNUN also provides a customized script to automatically fill more
-header fields.  @xref{gnun-init-po}.
address@hidden
+de     German  Deutsch
address@hidden example
 
-The PO file header as generated usually looks like this:
+The generated list of translations may look like this:
 
 @example
address@hidden
-# SOME DESCRIPTIVE TITLE
-# Copyright (C) YEAR Free Software Foundation, Inc.
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@@ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2008-02-06 16:25-0500\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@@ADDRESS>\n"
-"Language-Team: LANGUAGE <LL@@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=CHARSET\n"
-"Content-Transfer-Encoding: ENCODING\n"
address@hidden group
+<!-- begin translinks file -->
+<div id="translations">
+<ul class="translations-list">
+<!-- German -->
+<li><a href="/distros/screenshot.de.html">Deutsch</a>&nbsp;[de]</li>
+<!-- English -->
+<li><a href="/distros/screenshot.html">English</a>&nbsp;[en]</li>
+<!-- Polish -->
+<li><a href="/distros/screenshot.pl.html">polski</a>&nbsp;[pl]</li>
+</ul>
+</div> <!-- id="translations" -->
+<!-- end translinks file -->
 @end example
 
-You have to edit the header to match the already established
-conventions, and the rules for gnu.org translations.  For reference,
-here is a list with all fields explained:
address@hidden Compendia
address@hidden Using Compendia
address@hidden compendia
address@hidden translation memory
address@hidden exclude.pot
address@hidden compendium.pot
 
address@hidden PO headers
address@hidden @samp
address@hidden Project-Id-Version
-Add here the filename of the original article, without the
-sub-directory, like ``body-include-1.html'' or ``free-sw.html''.
+Compendium is a PO file including translations for common strings; it is
+used to fill other PO files.  @xref{Compendium, Compendium, Using
+Translation Compendia, gettext, GNU gettext tools}.  One example of such
+common strings is the footer
+text about reporting bugs and sending inquiries: when a webmaster
+updates footer texts in an article, GNUN will use compendia to
+automatically fill the translations for the new version of the strings.
 
address@hidden POT-Creation-Date
-Do not edit this field, it is already set when the POT is created.
+GNUN uses compendia located in the @file{server/gnun/compendia}
+directory of the `www' web repository.  There are two kinds of
+compendia: @address@hidden and
address@hidden@var{lang}.po}.
 
address@hidden PO-Revision-Date
-Likewise, do not edit.  This field is automatically filled in when you
-save the file with any decent PO editor.
+The first kind, @address@hidden, can be used to
+simultaneously update all occurrences of the translations of a given
+string.  Translations from this file will override the translations from
address@hidden@address@hidden  When @address@hidden is
+updated, the translations will be rebuilt.  GNUN doesn't modify this
+kind of compendia.
 
address@hidden Last-Translator
-The name and email address of the last translator who has edited the
-translation.  Pay attention that normally this is the name of a member
-of your team, it can be the translation team leader if he/she was the
-person who updated the translation.  For example:
+The second kind, @address@hidden, is updated
+automatically.  GNUN finds strings that repeat many times in POTs of
+articles and collects them in @file{compendium.pot}.  Then it checks
+all available @address@hidden@var{lang}.po} files for
+translations of those strings and generates
address@hidden@var{lang}.po}.  This file is also used to fill
+missing translations, but it doesn't override the translations from
address@hidden@address@hidden, and the strings coming from
address@hidden@var{lang}.po} are always marked as ``fuzzy'' to
+prevent propagation of translations that may be wrong in a different
+context.
 
address@hidden
-Elvis Parsley <king@@grassland.com>
address@hidden example
+When updating @file{compendium.pot}, some strings should be excluded
+even though they repeat in the POT files many times---for instance,
+GNUN slots for translators' notes.  @xref{Notes Slot}.  They are not
+real translations, this is why they are likely to be different for
+different articles.  In order to avoid including them in compendia,
+GNUN checks a specific file, @file{exclude.pot}, and when that file
+contains the string, it won't be added to @file{compendium.pot}.
 
address@hidden Language-Team
-This field should contain the mailing list on which the translation
-team can be reached---usually @address@hidden@@gnu.org}.
-Example:
address@hidden Sitemap
address@hidden Building Sitemap
address@hidden sitemap
 
address@hidden
-Czech <www-cs-general@@gnu.org>
address@hidden example
+Sitemaps differ from regular pages in two respects:
 
address@hidden MIME-Version
-Leave it like it is.
address@hidden
address@hidden
+They are typically regenerated automatically from the texts of the
+articles.
 
address@hidden Content-Type
-Usually this is @code{text/plain; charset=UTF-8}; change the charset
-accordingly.
address@hidden
+They mostly consist of links, therefore significant part of their text
+should come to translations without any changes.
 
address@hidden Content-Transfer-Encoding
-Set this to @code{8bit}.  Note that the PO file header ends with this
-field, and it should contain a newline (@samp{\n}).  Unfortunately, some
-PO editors remove the newline, which causes an unnecessary revision when
-the file is automatically modified by GNUN's rules.
address@hidden table
address@hidden enumerate
 
-Here is an example of a properly edited header:
+Also, sitemaps contain many translatable messages, so it is desirable
+to eliminate manual work where possible.
 
address@hidden
address@hidden
-# Bulgarian translation of http://www.gnu.org/philosophy/@/free-sw.html
-# Copyright (C) 2008 Free Software Foundation, Inc.
-# This file is distributed under the same license as the gnu.org article.
-# Yavor Doganov <yavor@@gnu.org>, 2008.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: free-sw.html\n"
-"POT-Creation-Date: 2008-02-06 16:25-0500\n"
-"PO-Revision-Date: 2008-02-09 15:23+0200\n"
-"Last-Translator: Yavor Doganov <yavor@@gnu.org>\n"
-"Language-Team: Bulgarian <www-bg-list@@gnu.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8-bit\n"
address@hidden group
address@hidden example
+In order to take this into account, GNUN provides the @code{sitemap}
+variable in @file{gnun.mk}.  All articles listed in @code{sitemap} are
+rebuilt using an additional compendium (when present),
address@hidden/@/gnun/@/compendia/@/address@hidden
 
-Notice the absence of the ``fuzzy'' marker; you should ``unfuzzy'' the
-header after entering the necessary information (this is done by
-simply pressing @key{TAB} in PO mode).
+Those additional compendia are supposed to be compiled outside of GNUN
+by the same tool that generates the sitemap.  It is responsibility of
+that tool to provide the compendia with reasonable translations whose
address@hidden match those generated by PO4A when processing the
+English version of the sitemap.
 
-It is recommended that you wrap all lines in the comments to be less
-than 80 lines; that looks better from a purely aesthetic point of view
-and improves the performance of @file{GNUmakefile.team}'s @code{publish}
-rule (@pxref{publish}).
 
-There are some special messages that appear in the POT and PO:
-
address@hidden @samp
address@hidden notes, translators
address@hidden translators' notes
address@hidden Slots}
address@hidden *GNUN-SLOT: TRANSLATOR'S NOTES*
-This is for translator's notes that are injected in the resulting
-translation.  @xref{Notes Slot}, for more information.  If your
-translation does not have notes, you @emph{must} translate this as a
-space:
-
address@hidden
address@hidden
-msgid "*GNUN-SLOT: TRANSLATOR'S NOTES*"
-msgstr " "
address@hidden group
address@hidden example
-
address@hidden credits, translators
address@hidden translators' credits
address@hidden *GNUN-SLOT: TRANSLATOR'S CREDITS*
-This is again optional, and should contain the name (and address) of
-the person who made the translation.  ``Translate'' this string as a
-space if you do not want your name to appear there.
address@hidden Slot}.
address@hidden table
-
address@hidden wrapping long lines
address@hidden long lines, wrap
-Most of the PO editors do not wrap long lines that inevitably appear in
address@hidden  If that happens, long lines make reading subsequent
-diffs harder, and are generally annoying for most people.  If this issue
-bothers you, you can ``normalize'' the already finished PO translation
-by executing on the command line @code{msgcat -o @var{file}.po
address@hidden, before installing it in the repository.  Either way, the
-build system will treat it is a valid PO file.
-
-For those lucky Emacs users, here is a code snippet that you can put
-in your @file{.emacs}; doing @kbd{M-x po-wrap} while in PO mode will
-wrap all long lines:
-
address@hidden
address@hidden
-(defun po-wrap ()
-  "Filter current po-mode buffer through `msgcat' tool to wrap all lines."
-  (interactive)
-  (if (eq major-mode 'po-mode)
-      (let ((tmp-file (make-temp-file "po-wrap."))
-           (tmp-buf (generate-new-buffer "*temp*")))
-       (unwind-protect
-           (progn
-             (write-region (point-min) (point-max) tmp-file nil 1)
-             (if (zerop
-                  (call-process
-                   "msgcat" nil tmp-buf t (shell-quote-argument tmp-file)))
-                 (let ((saved (point))
-                       (inhibit-read-only t))
-                   (delete-region (point-min) (point-max))
-                   (insert-buffer tmp-buf)
-                   (goto-char (min saved (point-max))))
-               (with-current-buffer tmp-buf
-                 (error (buffer-string)))))
-         (kill-buffer tmp-buf)
-         (delete-file tmp-file)))))
address@hidden group
address@hidden lisp
-
-It is highly desirable that you check if the PO file you finished
-translating (or editing) is valid, before committing it.  This is done
-by running @code{msgfmt -cv -o /dev/null @var{file}} or by simply
-pressing @kbd{V} in PO mode.  The build system automatically verifies
-each PO file when invoked with @code{VALIDATE=yes}, but you won't get a
-warm and fuzzy feeling if a stupid typo you made halts the whole update
-of all translations.  Such things happen to everyone, so it is a good
-practice to check before you actually commit.
-
address@hidden
-* Notes Slot::          How to handle translator's notes.
-* Credits Slot::        Translator's credits.
address@hidden menu
-
address@hidden Notes Slot
address@hidden The Special Slot for Translator's Notes
address@hidden notes, translators
address@hidden translators' notes
-
-Sometimes it is necessary to complement the translation of an essay
-with translator's notes.  The special message @code{*GNUN-SLOT:
-TRANSLATOR'S NOTES*} is designed to serve this purpose.  If your
-translation doesn't have notes, you should ``translate'' the
address@hidden as a space (@key{SPC})---otherwise the PO file will be
-considered incomplete, which is not what you want.  Here is an example
-how to use translators' notes in a PO file:
-
address@hidden
address@hidden
-# type: Content of: <p>
-msgid ""
-"To understand the concept, you should think of <q>free</q> "
-"as in <q>free speech,</q> not as in <q>free beer.</q>"
-msgstr ""
-"Translated message, where you want to clarify beer<sup><a "
-"href=\"#TransNote1\">1</a></sup>, presumably because the "
-"expression in your language is different"
address@hidden
address@hidden
-# type: Content of: <div>
-#. TRANSLATORS: Use space (SPC) as msgstr if you don't have notes.
-msgid "*GNUN-SLOT: TRANSLATOR'S NOTES*"
-msgstr ""
-"<h3>Translator's notes</h3>\n"
-"<ol>\n"
-"<li id=\"TransNote1\">Note clarifying the text.</li>\n"
-"</ol>\n"
address@hidden group
address@hidden example
-
-Certainly, everything in the @code{msgstr}s should be in your native
-language; we use English here in order the example to be understood by
-everyone.  If you have more notes, each subsequent one should be with
-incremented number, i.e. @samp{TransNote2}, @samp{TransNote3}, etc. and
-you have to add them as more @code{<li>} elements accordingly.
-
-Do not worry about the @code{\n} character---it is inserted
-automatically when you press @key{RET}.  It is not compulsory that
-notes start on a new line, this is the recommended way simply because
-it is easier to edit them.
-
-It is important to follow this specification, because notes will look
-consistently in all languages and will be clearly distinguishable from
-authors' footnotes, if any.  Furthermore, it would be easier to define
-a special CSS class for them, and also to convert the
-translations in other formats such as Texinfo---when these features
-are implemented.
-
address@hidden Credits Slot
address@hidden The Special Slot for Translator's Credits
address@hidden credits, translators
address@hidden translators' credits
-
-Most of the translators usually put their name under the translation,
-in the ``footer'' area.  This is entirely acceptable, since some
-readers prefer to send buggestions directly to the translator.  Also,
-giving credit where credit is due is a natural thing.
-
-Like the previous slot, you should ``translate'' it as a @key{SPC} if
-you don't want your name to appear there.
-
-Here is an example of the recommended way to specify credits:
-
address@hidden
-<b>Traduction</b>: Benjamin Drieu 
-<a href="mailto:foo@@example.org";>&lt;foo@@example.org&gt;</a>,
-2007, 2008.
address@hidden example
-
-It is highly desirable to use this form, but you may omit the email
-address or add a link to translator's noncommercial personal home page,
-provided that the translation team leader ensures that it constantly
-meets the linking criteria for gnu.org.  Please follow the FSF HTML
-Style Sheet when adding URIs or other information.
-
address@hidden PO Tips
address@hidden Useful Hints for Editing PO Files
address@hidden tips, translators
address@hidden recommendations, PO files
-
-This section contains additional explanations, some in the form of
-advices and recommendations; not all of them are strictly related to
-PO files editing.
-
address@hidden
address@hidden
-When you install a new translation of an article (that is different
-from a server template), all you need to do is to add
-your PO file in the appropriate @file{/po} sub-directory.
-
-In the next build, your @address@hidden@var{lang}.html} will be
-built and the link to it will be added to the list of translations
-and propagate to all translations, provided
-that they are under GNUN's control.
-
address@hidden
-If you don't feel comfortable editing @file{gnun.mk}, do not worry.
-Someone from the GNUN maintainers will notice and will amend
address@hidden for you, as appropriate.
-
address@hidden
-Dealing with obsolete strings.  Elements which are removed from the
-original articles appear in the PO files as ``obsolete'' strings---the
-translation is not lost, but they are marked in a special way at the
-end of the PO file.  You don't have to update a PO file if it contains
-obsolete strings---do this only if it has ``fuzzy'' or
-``untranslated'', and of course when you want to improve the existing
-translated ones.  Sometimes these obsolete strings are useful, and
-they can save time.  For example, if you anticipate that the deleted
-text may reappear some time in the future, you can preserve the string
-and hopefully it would be marked as ``fuzzy'' when this happens.
-Failing that, you can still copy it and yank it at the appropriate
-place.
-
address@hidden
-You can add comments to every message in a PO file---for example if
-you want to remember that you have to do something, or to remind you
-why this particular message is translated in a special way.  These
-comments do not appear in the generated HTML source.
-
address@hidden
-Sometimes, especially when the original message contains many links,
-it is easier to copy it to @code{msgstr} and edit the latter by
-translating the English text.  In PO mode, this is done by @kbd{C-j}.
-This is useful also for large chunks of text in @code{<pre>} elements,
-which normally you would want to preserve verbatim.
-
address@hidden
-If you translate ``Free Software Foundation, Inc.'' in your native
-language in the copyright notice, then please prepend the English name
-to the @code{<address>}; otherwise it looks awkward in most
-languages.  Example:
-
address@hidden
-# type: Content of: <div><address>
-msgid "51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA"
-msgstr ""
-"Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, "
-"Boston, MA 02110-1301, USA"
address@hidden example
-
address@hidden
-Do not use HTML entities for non-ASCII letters as in the English
-original.  They are harder to type and read.  So, if there is
address@hidden&uuml;} and this is a character from the alphabet of your
-language, just write it as @samp{@"u} directly.
-
address@hidden
-Wrapping of @code{msgstr} using @kbd{M-q} in Emacs (or other means) is
-considered harmful.  It is best to leave GNUN (or more precisely, Po4a)
-to do the wrapping---that way all generated HTML translations will have
-predictable results.  This will help tremendously for the conversion to
-other formats, like Texinfo.  Also, note that not all elements are
-wrapped by default, so deliberately wrapping the text inside the
address@hidden could lead to an invalid page or a page that is valid, but
-is rendered incorrectly by the web browser.
address@hidden itemize
-
address@hidden Migrating
address@hidden Transforming Existing Translation in PO Format
address@hidden migration, translations
address@hidden conversion of existing translations
-
-Migrating an existing translation to a PO file format is basically
-editing the header as described in the previous section, and
-populating each of the messages by copying the already translated text
-and/or markup from the existing translation in HTML format in the
-relevant message.
-
-Typically, you will visit @file{po/address@hidden (in PO mode) and
address@hidden@var{lang}.html} (in HTML mode) in another buffer.  Then you
-can copy a paragraph or an element from the latter and yank it in the
-relevant message in the former.  Be extra careful, since this is the
-time to check @emph{precisely} that the translation corresponds to the
-original.  Further changes will be reflected, but if your ``initial''
-PO file is not a 100% match, that would not necessarily mean that it
-is an improvement.  Since it is very easy to do this kind of check,
-because the relevant @code{msgid} and @code{msgstr} appear one above
-the other in the same buffer (or the similar concept in other PO
-editors), please @emph{do} perform this initial sanity check even if
-you are confident that the translation you have been yanking strings
-from is a completely up-to-date translation.
-
-There is also a semi-automatic way to produce an initial PO file.  You
-checkout the revision of the English page, @file{foo.html}, that
-corresponds to the latest revision of the translation,
address@hidden@var{lang}.html}.  Then you run @command{gnun-preconvert}
-which invokes @command{po4a-gettextize} (@xref{gnun-preconvert}.):
-
address@hidden
-gnun-preconvert foo.lang.html foo.html
address@hidden example
-
-If some passages in @address@hidden don't match the structure
-of @file{foo.html}, error messages will be displayed.  Check them,
-adjust the files and try again.  When you succeed, the result will be
-written to foo.lang.po.  After that, run
address@hidden (@xref{gnun-merge-preconverted}.):
-
address@hidden
-gnun-merge-preconverted -C compendium.lang.po foo.lang.po foo.pot
address@hidden example
-
-If you have no compendium, just omit the address@hidden
-compendium.lang.po}'' part.
-
-You get @address@hidden where all messages are marked as
-``fuzzy'' (unless you use a compendium); you still should make sure that
-the translations correspond to the original and remove those ``fuzzy''
-marks.  The script adds differences against ``previous'' @code{msgid}s to
-facilitate checking.
-
-There is no need to delete the existing HTML translation, GNUN will
-automatically overwrite it.  The only thing a translator should do is to
-commit the PO file in the repository.
-
-When an essay has been translated by several people through the years,
-it is important that this information is recorded and reflected in the
-PO file.  In the future, special targets may be added to enable the FSF
-to check who translated a particular article, and when.
-
-A recommended way to do this is as follows:
-
address@hidden
address@hidden
-# French translation of http://www.gnu.org/philosophy/@/bsd.html
-# Copyright (C) 2006, 2007, 2008 Free Software Foundation, Inc.
-# This file is distributed under the same license as the gnu.org article.
-# C@'edric Corazza <cedric.corazza@@wanadoo.fr>, 2006, 2008.
-# address@hidden Dominguez <taz@@gnu.org>, 2007.
address@hidden group
address@hidden example
-
-In this example, it is clear that C@'edric made the initial
-translation, address@hidden made some changes in 2007, and the original
-translator returned in 2008 and continued maintaining it.
-
address@hidden generic.LANG.html
address@hidden The @address@hidden File
address@hidden team information
address@hidden generic notice, translations
-
-The files @file{server/gnun/address@hidden are special: if
-no such file exists for your language, an empty file will be created
-(and added to the repository if specified @code{VCS=yes}).  This file
-is optional, and should contain a short message in your native
-language, ideally providing more information about the translation
-team or where to report bugs.  For example:
-
address@hidden
-<p>To join the Fooish translation team, see <a
-href="http://gnu.org/@/server/@/standards/@/translations/@/foo";>the
-Foo team homepage</a>.</p>
address@hidden example
-
-The contents of @address@hidden is injected right after
-the translators' credits, if any, and before the timestamp.  It should
-be valid HTML markup.
-
-When you modify this file, for example, adding a message to the
-existing empty file or changing a URL, such modification will affect
address@hidden articles of the language @var{lang} in
address@hidden@var{lang}.html}.  The next time a build occurs, all
-translations of the language code @var{lang} (i.e. all
address@hidden@var{lang}.html}, including the homepage), will be modified to
-include the contents of this special file.
-
address@hidden languages.txt
address@hidden The @file{languages.txt} File
-
-The file @file{server/gnun/languages.txt} is used when generating
-lists of translations; those lists are subsequently included in all
-translations of the article.  Every line in the file is either a
-comment (when it begins with ``#'') or a definition for a language.  A
-language is defined by three @key{TAB}-separated fields.  The first field
-defines the language suffix; it is used in file names and in texts of
-the links.  The second field is the name of the language in English;
-it is used in HTML comments.  The third field defines the name of the
-language in that language itself; it is used in texts of the links,
-and it should be in UTF-8.  For example:
address@hidden GNU News
address@hidden Special Handling for GNU News
address@hidden gnunews
address@hidden whatsnew
address@hidden gnusflashes
 
address@hidden
-de     German  Deutsch
address@hidden example
address@hidden attention:} The practice of news handling that is
+described here has been obsolete for some time now, as they are being
+fed automatically from Planet GNU (@uref{http://planet.gnu.org}).
+Nevertheless, the information below is accurate to the extent that the
+support for the old-fashioned way is still available.
 
-The generated list of translations may look like this:
+The GNU website has infrastructure for supporting ``What's New'', also
+known as ``GNU News''.  Entries are added in a special plain text
+file, @file{server/whatsnew.txt} and are used to build
address@hidden/whatsnew.include} and @file{gnusflashes.include}.  The
+former is used by @file{server/whatsnew.html}, while the latter was
+included in the homepage.
 
address@hidden
-<!-- begin translinks file -->
-<div id="translations">
-<ul class="translations-list">
-<!-- German -->
-<li><a href="/distros/screenshot.de.html">Deutsch</a>&nbsp;[de]</li>
-<!-- English -->
-<li><a href="/distros/screenshot.html">English</a>&nbsp;[en]</li>
-<!-- Polish -->
-<li><a href="/distros/screenshot.pl.html">polski</a>&nbsp;[pl]</li>
-</ul>
-</div> <!-- id="translations" -->
-<!-- end translinks file -->
address@hidden example
+GNUN has additional rules for building @file{whatsnew.pot}, which
+contains a combination of all necessary strings for
address@hidden/address@hidden,
address@hidden/address@hidden and
address@hidden@var{lang}.include}.  There is nothing unusual in this
+POT file, so it should be translated like any other.  When you commit
address@hidden@var{lang}.po}, it will be used to generate all three
+localized files.
+
+Note that localized RSS feeds are not supported on purpose, as it would
+be annoying for subscribers if new items appear in English and then once
+again translated.
 
address@hidden PO Files and Team
address@hidden Maintaining Translations in Your Team's Repository
address@hidden Team's Repository
address@hidden Maintaining Translations in Your Team's Repository
 @cindex project repository
 @cindex repository, translation project
 @cindex team maintenance
@@ -1599,7 +1238,7 @@
 @end menu
 
 @node GNUmakefile.team Variables
address@hidden Adopting @file{GNUmakefile.team} for a Specific Team
address@hidden Adopting @file{GNUmakefile.team} for a Specific Team
 
 To adjust the makefile for your team, you need to edit the next
 variables.
@@ -1682,7 +1321,7 @@
 @end table
 
 @node GNUmakefile.team Targets
address@hidden Targets in @file{GNUmakefile.team}
address@hidden Targets in @file{GNUmakefile.team}
 
 @table @code
 @item update
@@ -1746,266 +1385,625 @@
 space-separated list of translators' email addresses.  These two
 fields are mandatory.
 
address@hidden reminder period
address@hidden notification period
-The third field is the personal reminder period in days.  After that
-period the message is sent again even though its contents don't
-change.  Otherwise, the @code{notify} target only sends messages when
-something changes.  Naturally, no message is sent when no action
-is needed in the requested set of translations (unless the
address@hidden option is used).
address@hidden reminder period
address@hidden notification period
+The third field is the personal reminder period in days.  After that
+period the message is sent again even though its contents don't
+change.  Otherwise, the @code{notify} target only sends messages when
+something changes.  Naturally, no message is sent when no action
+is needed in the requested set of translations (unless the
address@hidden option is used).
+
+The team-wide default period is defined in its GNUmakefile.team using
+the @code{NOTIFICATION_PERIOD} variable.
+
+The fourth field provides comma-separated options for the report.
+Currently recognized options are:
+
address@hidden @code
address@hidden force
+Forces sending messages even when there are no files to work on.
+
address@hidden no-diffs
+Disables sending @dfn{www} vs. @address@hidden differences
+as attachments.
+
address@hidden www
+Report cases that suggest actions by the team leader, that is,
+when the translation in the team repository is full whereas
+in @dfn{www} it is incomplete or absent.
address@hidden table
+
+This is an example of @file{email-aliases}:
+
address@hidden
+alice:alice@@example.com abc@@test.net
+# Disable `dan' temporarily.
+#dan:miller@@test.by:5:no-diffs,www
+bob:brh@@invalid.tr:3
+# Note that the third field is empty; the default value for period
+# will be used.
+carol:carol@@localhost.br translator@@example.bg::no-diffs
+eve:eve@@test.gr:2:www
+frank:gnun-notifications@@example.gr:1:www,no-diffs
address@hidden example
+
+The @file{email-aliases} file should be kept privately because it
+may contain personal email addresses of people.  How to do this
+is out of scope of GNUN and this manual.
+
address@hidden format
+A convenience rule to re-wrap all files upto the standard length.  Most
+PO editors leave the @code{msgstr} as a single long line after it has
+been edited, but GNUN will automatically re-wrap the file to the standard
+line length when it is processed.  Wrapping long lines in PO files is a
+good practice as it avoids unnecessary revisions.
+
+This rule checks for all translations that have lines longer than 80,
+and runs @command{msgcat} accordingly to reformat them.  For that
+reason, it is recommended that you wrap all long lines in the comment
+fields (e.g. the file header, including the copyright statement, and any
+other comments for specific messages), because @code{make format} will
+unnecessarily invoke @command{msgcat} for any file that has a longer
+line, wherever it may occur.
+
address@hidden publish
address@hidden
+The @code{publish} rule's task is to copy all modified files to the
+official @dfn{www} repository.  It depends on the @code{format} target
+to ensure that all files are re-wrapped to the standard line length
+limit, but deliberately does not depend on @code{sync VCS=yes}.
+Usually, one would run @code{make publish} when one or a bunch of PO
+files are in a satisfactory condition to be published, and this rule is
+just a convenience to avoid multiple manual @command{cp} invocations.
+As a rule of thumb, before running this rule it is sane to run
address@hidden and correct any ``fuzzy'' messages and other problems, if
+necessary.
+
+The @code{publish} rule does not depend on @code{sync} explicitly,
+because that would be a nuisance for offline operations and basically
+unnecessary when the committer is fairly confident that there are no
+changes to (re-)merge.  A hard dependency on @code{sync} would slow down
+the operation considerably.
+
+As usual, when committing to the official repository, it is always a
+good practice to examine the output of @command{cvs diff}.
+
+Invoking @code{make publish} prints warnings and does not actually copy
+the affected file if the sub-directory in ``www'' is non-existent or the
+corresponding @file{.pot} is missing.
+
+Typically, after an editing session (whether it involves actual editing
+or just merging contributions from team members), one would do:
+
address@hidden
+$ make sync VCS=yes
+$ make publish
+$ cd @var{wwwdir}
+$ cvs up
+(Add all new translations, if any.)
+  $ cvs add @var{file} @dots{}
+$ cvs diff
+$ cvs commit -m "Some descriptive message."
address@hidden example
+
address@hidden clean
+Deletes all backup and auto-generated files.
address@hidden table
+
address@hidden VCS=yes} is the recommended command to be run periodically.
+To check the status of the translations, run @code{make report}.
+
+Feel free to replace all strings with equivalents in your native
+language and of course---do not hesitate to extend this file and
+modify it as much as you like.  If you come up with
+something interesting, it would be nice to send a message to
address@hidden@@gnu.org}, so that @file{GNUmakefile.team} gets
+updated for all teams' benefit.
+
address@hidden GNUmakefile.team and Cron
address@hidden Automatic Synchronization and Status Reports
address@hidden team maintenance, cron
address@hidden cron, team maintenance
+
+It is convenient to invoke such synchronization automatically, for
+example once every day.  If you have enabled commit notifications for
+the project's repository, any new changes will be visible for
+subscribers.  Here is an example crontab entry:
+
address@hidden
+# m h  dom mon dow   command
+@@daily              cd $HOME/projects/address@hidden; make VCS=yes
address@hidden example
+
+It is not necessary the job to be run on the team leader's machine,
+since all team members have write access to their project repository.
+
+If desired, you could set up another job to report the status of the
+translations weekly or fortnightly, for example:
+
address@hidden
+# m h  dom mon dow   command
+@@weekly             cd $HOME/projects/address@hidden; \
+                       make report | mail -s "Weekly statistics" \
+                       address@hidden@@gnu.org
address@hidden example
+
address@hidden:} Most cron implementations do not allow the character
+`\' as a line continuation character---the example shown is made that
+way for better readability.
+
address@hidden PO Files
address@hidden Working with PO Files
+
+This section provides GNUN-specific information about woking
+with PO files.  For general information, @pxref{PO Files, ,
+Working with PO Files, web-trans, GNU Web Translators Manual}.
+
address@hidden
+* New Translation::     How to start a new translation.
+* PO Tips::             Tips and hints for translators.
+* Migrating::           How to migrate an existing translation to a PO
+                          format under GNUN's control.
+
address@hidden menu
+
address@hidden New Translation
address@hidden Starting a New Translation
address@hidden translation, new
address@hidden new translation
+
+To start a new translation, the most simple way is to copy the
+existing POT as @address@hidden, where @var{lang} is your
+language code.  For example, to prepare for a new translation of the
+essay @uref{http://www.gnu.org/philosophy/free-sw.html}, you can
+simply do @code{cd philosophy/po; cp free-sw.pot
address@hidden and then edit the latter.  If
address@hidden does not exist it is because either the article is
+not yet ``templated'' (i.e. migrated to the new style), or the GNUN
+maintainers have not yet added it to the value of the appropriate
+variable in @file{server/gnun/gnun.mk}.  In that case, just ask them
+to do the necessary in order the POT to be generated.
+
+You could also use the @command{msginit} utility that would populate
+the PO file header with the right information, provided your
+environment is set up correctly.  @xref{msginit Invocation, ,,
+gettext, GNU gettext tools}.
+
+GNUN also provides a customized script to automatically fill more
+header fields.  @xref{gnun-init-po}.
+
+The PO file header as generated usually looks like this:
+
address@hidden
address@hidden
+# SOME DESCRIPTIVE TITLE
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2008-02-06 16:25-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: ENCODING\n"
address@hidden group
address@hidden example
+
+You have to edit the header to match the already established
+conventions, and the rules for gnu.org translations.  For reference,
+here is a list with all fields explained:
+
address@hidden PO headers
address@hidden @samp
address@hidden Project-Id-Version
+Add here the filename of the original article, without the
+sub-directory, like ``body-include-1.html'' or ``free-sw.html''.
+
address@hidden POT-Creation-Date
+Do not edit this field, it is already set when the POT is created.
+
address@hidden PO-Revision-Date
+Likewise, do not edit.  This field is automatically filled in when you
+save the file with any decent PO editor.
+
address@hidden Last-Translator
+The name and email address of the last translator who has edited the
+translation.  Pay attention that normally this is the name of a member
+of your team, it can be the translation team leader if he/she was the
+person who updated the translation.  For example:
+
address@hidden
+Elvis Parsley <king@@grassland.com>
address@hidden example
+
address@hidden Language-Team
+This field should contain the mailing list on which the translation
+team can be reached---usually @address@hidden@@gnu.org}.
+Example:
+
address@hidden
+Czech <www-cs-general@@gnu.org>
address@hidden example
+
address@hidden MIME-Version
+Leave it like it is.
+
address@hidden Content-Type
+Usually this is @code{text/plain; charset=UTF-8}; change the charset
+accordingly.
 
-The team-wide default period is defined in its GNUmakefile.team using
-the @code{NOTIFICATION_PERIOD} variable.
address@hidden Content-Transfer-Encoding
+Set this to @code{8bit}.  Note that the PO file header ends with this
+field, and it should contain a newline (@samp{\n}).  Unfortunately, some
+PO editors remove the newline, which causes an unnecessary revision when
+the file is automatically modified by GNUN's rules.
address@hidden table
 
-The fourth field provides comma-separated options for the report.
-Currently recognized options are:
+Here is an example of a properly edited header:
 
address@hidden @code
address@hidden force
-Forces sending messages even when there are no files to work on.
address@hidden
address@hidden
+# Bulgarian translation of http://www.gnu.org/philosophy/@/free-sw.html
+# Copyright (C) 2008 Free Software Foundation, Inc.
+# This file is distributed under the same license as the gnu.org article.
+# Yavor Doganov <yavor@@gnu.org>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: free-sw.html\n"
+"POT-Creation-Date: 2008-02-06 16:25-0500\n"
+"PO-Revision-Date: 2008-02-09 15:23+0200\n"
+"Last-Translator: Yavor Doganov <yavor@@gnu.org>\n"
+"Language-Team: Bulgarian <www-bg-list@@gnu.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8-bit\n"
address@hidden group
address@hidden example
 
address@hidden no-diffs
-Disables sending @dfn{www} vs. @address@hidden differences
-as attachments.
+Notice the absence of the ``fuzzy'' marker; you should ``unfuzzy'' the
+header after entering the necessary information (this is done by
+simply pressing @key{TAB} in PO mode).
 
address@hidden www
-Report cases that suggest actions by the team leader, that is,
-when the translation in the team repository is full whereas
-in @dfn{www} it is incomplete or absent.
address@hidden table
+It is recommended that you wrap all lines in the comments to be less
+than 80 lines; that looks better from a purely aesthetic point of view
+and improves the performance of @file{GNUmakefile.team}'s @code{publish}
+rule (@pxref{publish}).
 
-This is an example of @file{email-aliases}:
+There are some special messages that appear in the POT and PO:
+
address@hidden @samp
address@hidden notes, translators
address@hidden translators' notes
address@hidden Slots}
address@hidden *GNUN-SLOT: TRANSLATOR'S NOTES*
+This is for translator's notes that are injected in the resulting
+translation.  @xref{Notes Slot}, for more information.  If your
+translation does not have notes, you @emph{must} translate this as a
+space:
 
 @example
-alice:alice@@example.com abc@@test.net
-# Disable `dan' temporarily.
-#dan:miller@@test.by:5:no-diffs,www
-bob:brh@@invalid.tr:3
-# Note that the third field is empty; the default value for period
-# will be used.
-carol:carol@@localhost.br translator@@example.bg::no-diffs
-eve:eve@@test.gr:2:www
-frank:gnun-notifications@@example.gr:1:www,no-diffs
address@hidden
+msgid "*GNUN-SLOT: TRANSLATOR'S NOTES*"
+msgstr " "
address@hidden group
 @end example
 
-The @file{email-aliases} file should be kept privately because it
-may contain personal email addresses of people.  How to do this
-is out of scope of GNUN and this manual.
address@hidden credits, translators
address@hidden translators' credits
address@hidden *GNUN-SLOT: TRANSLATOR'S CREDITS*
+This is again optional, and should contain the name (and address) of
+the person who made the translation.  ``Translate'' this string as a
+space if you do not want your name to appear there.
address@hidden Slot}.
address@hidden table
 
address@hidden format
-A convenience rule to re-wrap all files upto the standard length.  Most
-PO editors leave the @code{msgstr} as a single long line after it has
-been edited, but GNUN will automatically re-wrap the file to the standard
-line length when it is processed.  Wrapping long lines in PO files is a
-good practice as it avoids unnecessary revisions.
address@hidden wrapping long lines
address@hidden long lines, wrap
+Most of the PO editors do not wrap long lines that inevitably appear in
address@hidden  If that happens, long lines make reading subsequent
+diffs harder, and are generally annoying for most people.  If this issue
+bothers you, you can ``normalize'' the already finished PO translation
+by executing on the command line @code{msgcat -o @var{file}.po
address@hidden, before installing it in the repository.  Either way, the
+build system will treat it is a valid PO file.
 
-This rule checks for all translations that have lines longer than 80,
-and runs @command{msgcat} accordingly to reformat them.  For that
-reason, it is recommended that you wrap all long lines in the comment
-fields (e.g. the file header, including the copyright statement, and any
-other comments for specific messages), because @code{make format} will
-unnecessarily invoke @command{msgcat} for any file that has a longer
-line, wherever it may occur.
+For those lucky Emacs users, here is a code snippet that you can put
+in your @file{.emacs}; doing @kbd{M-x po-wrap} while in PO mode will
+wrap all long lines:
 
address@hidden publish
address@hidden
-The @code{publish} rule's task is to copy all modified files to the
-official @dfn{www} repository.  It depends on the @code{format} target
-to ensure that all files are re-wrapped to the standard line length
-limit, but deliberately does not depend on @code{sync VCS=yes}.
-Usually, one would run @code{make publish} when one or a bunch of PO
-files are in a satisfactory condition to be published, and this rule is
-just a convenience to avoid multiple manual @command{cp} invocations.
-As a rule of thumb, before running this rule it is sane to run
address@hidden and correct any ``fuzzy'' messages and other problems, if
-necessary.
address@hidden
address@hidden
+(defun po-wrap ()
+  "Filter current po-mode buffer through `msgcat' tool to wrap all lines."
+  (interactive)
+  (if (eq major-mode 'po-mode)
+      (let ((tmp-file (make-temp-file "po-wrap."))
+           (tmp-buf (generate-new-buffer "*temp*")))
+       (unwind-protect
+           (progn
+             (write-region (point-min) (point-max) tmp-file nil 1)
+             (if (zerop
+                  (call-process
+                   "msgcat" nil tmp-buf t (shell-quote-argument tmp-file)))
+                 (let ((saved (point))
+                       (inhibit-read-only t))
+                   (delete-region (point-min) (point-max))
+                   (insert-buffer tmp-buf)
+                   (goto-char (min saved (point-max))))
+               (with-current-buffer tmp-buf
+                 (error (buffer-string)))))
+         (kill-buffer tmp-buf)
+         (delete-file tmp-file)))))
address@hidden group
address@hidden lisp
 
-The @code{publish} rule does not depend on @code{sync} explicitly,
-because that would be a nuisance for offline operations and basically
-unnecessary when the committer is fairly confident that there are no
-changes to (re-)merge.  A hard dependency on @code{sync} would slow down
-the operation considerably.
+It is highly desirable that you check if the PO file you finished
+translating (or editing) is valid, before committing it.  This is done
+by running @code{msgfmt -cv -o /dev/null @var{file}} or by simply
+pressing @kbd{V} in PO mode.  The build system automatically verifies
+each PO file when invoked with @code{VALIDATE=yes}, but you won't get a
+warm and fuzzy feeling if a stupid typo you made halts the whole update
+of all translations.  Such things happen to everyone, so it is a good
+practice to check before you actually commit.
 
-As usual, when committing to the official repository, it is always a
-good practice to examine the output of @command{cvs diff}.
address@hidden
+* Notes Slot::          How to handle translator's notes.
+* Credits Slot::        Translator's credits.
address@hidden menu
 
-Invoking @code{make publish} prints warnings and does not actually copy
-the affected file if the sub-directory in ``www'' is non-existent or the
-corresponding @file{.pot} is missing.
address@hidden Notes Slot
address@hidden The Special Slot for Translator's Notes
address@hidden notes, translators
address@hidden translators' notes
 
-Typically, after an editing session (whether it involves actual editing
-or just merging contributions from team members), one would do:
+Sometimes it is necessary to complement the translation of an essay
+with translator's notes.  The special message @code{*GNUN-SLOT:
+TRANSLATOR'S NOTES*} is designed to serve this purpose.  If your
+translation doesn't have notes, you should ``translate'' the
address@hidden as a space (@key{SPC})---otherwise the PO file will be
+considered incomplete, which is not what you want.  Here is an example
+how to use translators' notes in a PO file:
 
 @example
-$ make sync VCS=yes
-$ make publish
-$ cd @var{wwwdir}
-$ cvs up
-(Add all new translations, if any.)
-  $ cvs add @var{file} @dots{}
-$ cvs diff
-$ cvs commit -m "Some descriptive message."
address@hidden
+# type: Content of: <p>
+msgid ""
+"To understand the concept, you should think of <q>free</q> "
+"as in <q>free speech,</q> not as in <q>free beer.</q>"
+msgstr ""
+"Translated message, where you want to clarify beer<sup><a "
+"href=\"#TransNote1\">1</a></sup>, presumably because the "
+"expression in your language is different"
address@hidden
address@hidden
+# type: Content of: <div>
+#. TRANSLATORS: Use space (SPC) as msgstr if you don't have notes.
+msgid "*GNUN-SLOT: TRANSLATOR'S NOTES*"
+msgstr ""
+"<h3>Translator's notes</h3>\n"
+"<ol>\n"
+"<li id=\"TransNote1\">Note clarifying the text.</li>\n"
+"</ol>\n"
address@hidden group
 @end example
 
address@hidden clean
-Deletes all backup and auto-generated files.
address@hidden table
-
address@hidden VCS=yes} is the recommended command to be run periodically.
-To check the status of the translations, run @code{make report}.
+Certainly, everything in the @code{msgstr}s should be in your native
+language; we use English here in order the example to be understood by
+everyone.  If you have more notes, each subsequent one should be with
+incremented number, i.e. @samp{TransNote2}, @samp{TransNote3}, etc. and
+you have to add them as more @code{<li>} elements accordingly.
 
-Feel free to replace all strings with equivalents in your native
-language and of course---do not hesitate to extend this file and
-modify it as much as you like.  If you come up with
-something interesting, it would be nice to send a message to
address@hidden@@gnu.org}, so that @file{GNUmakefile.team} gets
-updated for all teams' benefit.
+Do not worry about the @code{\n} character---it is inserted
+automatically when you press @key{RET}.  It is not compulsory that
+notes start on a new line, this is the recommended way simply because
+it is easier to edit them.
 
address@hidden GNUmakefile.team and Cron
address@hidden Automatic Synchronization and Status Reports
address@hidden team maintenance, cron
address@hidden cron, team maintenance
+It is important to follow this specification, because notes will look
+consistently in all languages and will be clearly distinguishable from
+authors' footnotes, if any.  Furthermore, it would be easier to define
+a special CSS class for them, and also to convert the
+translations in other formats such as Texinfo---when these features
+are implemented.
 
-It is convenient to invoke such synchronization automatically, for
-example once every day.  If you have enabled commit notifications for
-the project's repository, any new changes will be visible for
-subscribers.  Here is an example crontab entry:
address@hidden Credits Slot
address@hidden The Special Slot for Translator's Credits
address@hidden credits, translators
address@hidden translators' credits
 
address@hidden
-# m h  dom mon dow   command
-@@daily              cd $HOME/projects/address@hidden; make VCS=yes
address@hidden example
+Most of the translators usually put their name under the translation,
+in the ``footer'' area.  This is entirely acceptable, since some
+readers prefer to send buggestions directly to the translator.  Also,
+giving credit where credit is due is a natural thing.
 
-It is not necessary the job to be run on the team leader's machine,
-since all team members have write access to their project repository.
+Like the previous slot, you should ``translate'' it as a @key{SPC} if
+you don't want your name to appear there.
 
-If desired, you could set up another job to report the status of the
-translations weekly or fortnightly, for example:
+Here is an example of the recommended way to specify credits:
 
 @example
-# m h  dom mon dow   command
-@@weekly             cd $HOME/projects/address@hidden; \
-                       make report | mail -s "Weekly statistics" \
-                       address@hidden@@gnu.org
+<b>Traduction</b>: Benjamin Drieu 
+<a href="mailto:foo@@example.org";>&lt;foo@@example.org&gt;</a>,
+2007, 2008.
 @end example
 
address@hidden:} Most cron implementations do not allow the character
-`\' as a line continuation character---the example shown is made that
-way for better readability.
+It is highly desirable to use this form, but you may omit the email
+address or add a link to translator's noncommercial personal home page,
+provided that the translation team leader ensures that it constantly
+meets the linking criteria for gnu.org.  Please follow the FSF HTML
+Style Sheet when adding URIs or other information.
 
address@hidden Compendia
address@hidden Using Compendia
address@hidden compendia
address@hidden translation memory
address@hidden exclude.pot
address@hidden compendium.pot
address@hidden PO Tips
address@hidden Useful Hints for Editing PO Files
address@hidden tips, translators
address@hidden recommendations, PO files
 
-Compendium is a PO file including translations for common strings; it is
-used to fill other PO files.  @xref{Compendium, Compendium, Using
-Translation Compendia, gettext, GNU gettext tools}.  One example of such
-common strings is the footer
-text about reporting bugs and sending inquiries: when a webmaster
-updates footer texts in an article, GNUN will use compendia to
-automatically fill the translations for the new version of the strings.
+This section contains additional explanations, some in the form of
+advices and recommendations; not all of them are strictly related to
+PO files editing.
 
-GNUN uses compendia located in the @file{server/gnun/compendia}
-directory of the `www' web repository.  There are two kinds of
-compendia: @address@hidden and
address@hidden@var{lang}.po}.
address@hidden
address@hidden
+When you install a new translation of an article (that is different
+from a server template), all you need to do is to add
+your PO file in the appropriate @file{/po} sub-directory.
 
-The first kind, @address@hidden, can be used to
-simultaneously update all occurrences of the translations of a given
-string.  Translations from this file will override the translations from
address@hidden@address@hidden  When @address@hidden is
-updated, the translations will be rebuilt.  GNUN doesn't modify this
-kind of compendia.
+In the next build, your @address@hidden@var{lang}.html} will be
+built and the link to it will be added to the list of translations
+and propagate to all translations, provided
+that they are under GNUN's control.
 
-The second kind, @address@hidden, is updated
-automatically.  GNUN finds strings that repeat many times in POTs of
-articles and collects them in @file{compendium.pot}.  Then it checks
-all available @address@hidden@var{lang}.po} files for
-translations of those strings and generates
address@hidden@var{lang}.po}.  This file is also used to fill
-missing translations, but it doesn't override the translations from
address@hidden@address@hidden, and the strings coming from
address@hidden@var{lang}.po} are always marked as ``fuzzy'' to
-prevent propagation of translations that may be wrong in a different
-context.
address@hidden
+If you don't feel comfortable editing @file{gnun.mk}, do not worry.
+Someone from the GNUN maintainers will notice and will amend
address@hidden for you, as appropriate.
 
-When updating @file{compendium.pot}, some strings should be excluded
-even though they repeat in the POT files many times---for instance,
-GNUN slots for translators' notes.  @xref{Notes Slot}.  They are not
-real translations, this is why they are likely to be different for
-different articles.  In order to avoid including them in compendia,
-GNUN checks a specific file, @file{exclude.pot}, and when that file
-contains the string, it won't be added to @file{compendium.pot}.
address@hidden
+Dealing with obsolete strings.  Elements which are removed from the
+original articles appear in the PO files as ``obsolete'' strings---the
+translation is not lost, but they are marked in a special way at the
+end of the PO file.  You don't have to update a PO file if it contains
+obsolete strings---do this only if it has ``fuzzy'' or
+``untranslated'', and of course when you want to improve the existing
+translated ones.  Sometimes these obsolete strings are useful, and
+they can save time.  For example, if you anticipate that the deleted
+text may reappear some time in the future, you can preserve the string
+and hopefully it would be marked as ``fuzzy'' when this happens.
+Failing that, you can still copy it and yank it at the appropriate
+place.
 
address@hidden Sitemap
address@hidden Building Sitemap
address@hidden sitemap
address@hidden
+You can add comments to every message in a PO file---for example if
+you want to remember that you have to do something, or to remind you
+why this particular message is translated in a special way.  These
+comments do not appear in the generated HTML source.
 
-Sitemaps differ from regular pages in two respects:
address@hidden
+Sometimes, especially when the original message contains many links,
+it is easier to copy it to @code{msgstr} and edit the latter by
+translating the English text.  In PO mode, this is done by @kbd{C-j}.
+This is useful also for large chunks of text in @code{<pre>} elements,
+which normally you would want to preserve verbatim.
 
address@hidden
 @item
-They are typically regenerated automatically from the texts of the
-articles.
+If you translate ``Free Software Foundation, Inc.'' in your native
+language in the copyright notice, then please prepend the English name
+to the @code{<address>}; otherwise it looks awkward in most
+languages.  Example:
+
address@hidden
+# type: Content of: <div><address>
+msgid "51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA"
+msgstr ""
+"Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, "
+"Boston, MA 02110-1301, USA"
address@hidden example
 
 @item
-They mostly consist of links, therefore significant part of their text
-should come to translations without any changes.
+Do not use HTML entities for non-ASCII letters as in the English
+original.  They are harder to type and read.  So, if there is
address@hidden&uuml;} and this is a character from the alphabet of your
+language, just write it as @samp{@"u} directly.
 
address@hidden enumerate
address@hidden
+Wrapping of @code{msgstr} using @kbd{M-q} in Emacs (or other means) is
+considered harmful.  It is best to leave GNUN (or more precisely, Po4a)
+to do the wrapping---that way all generated HTML translations will have
+predictable results.  This will help tremendously for the conversion to
+other formats, like Texinfo.  Also, note that not all elements are
+wrapped by default, so deliberately wrapping the text inside the
address@hidden could lead to an invalid page or a page that is valid, but
+is rendered incorrectly by the web browser.
address@hidden itemize
 
-Also, sitemaps contain many translatable messages, so it is desirable
-to eliminate manual work where possible.
address@hidden Migrating
address@hidden Transforming Existing Translation in PO Format
address@hidden migration, translations
address@hidden conversion of existing translations
 
-In order to take this into account, GNUN provides the @code{sitemap}
-variable in @file{gnun.mk}.  All articles listed in @code{sitemap} are
-rebuilt using an additional compendium (when present),
address@hidden/@/gnun/@/compendia/@/address@hidden
+Migrating an existing translation to a PO file format is basically
+editing the header as described in the previous section, and
+populating each of the messages by copying the already translated text
+and/or markup from the existing translation in HTML format in the
+relevant message.
 
-Those additional compendia are supposed to be compiled outside of GNUN
-by the same tool that generates the sitemap.  It is responsibility of
-that tool to provide the compendia with reasonable translations whose
address@hidden match those generated by PO4A when processing the
-English version of the sitemap.
+Typically, you will visit @file{po/address@hidden (in PO mode) and
address@hidden@var{lang}.html} (in HTML mode) in another buffer.  Then you
+can copy a paragraph or an element from the latter and yank it in the
+relevant message in the former.  Be extra careful, since this is the
+time to check @emph{precisely} that the translation corresponds to the
+original.  Further changes will be reflected, but if your ``initial''
+PO file is not a 100% match, that would not necessarily mean that it
+is an improvement.  Since it is very easy to do this kind of check,
+because the relevant @code{msgid} and @code{msgstr} appear one above
+the other in the same buffer (or the similar concept in other PO
+editors), please @emph{do} perform this initial sanity check even if
+you are confident that the translation you have been yanking strings
+from is a completely up-to-date translation.
 
address@hidden GNU News
address@hidden Special Handling for GNU News
address@hidden gnunews
address@hidden whatsnew
address@hidden gnusflashes
+There is also a semi-automatic way to produce an initial PO file.  You
+checkout the revision of the English page, @file{foo.html}, that
+corresponds to the latest revision of the translation,
address@hidden@var{lang}.html}.  Then you run @command{gnun-preconvert}
+which invokes @command{po4a-gettextize} (@xref{gnun-preconvert}.):
 
address@hidden attention:} The practice of news handling that is
-described here has been obsolete for some time now, as they are being
-fed automatically from Planet GNU (@uref{http://planet.gnu.org}).
-Nevertheless, the information below is accurate to the extent that the
-support for the old-fashioned way is still available.
address@hidden
+gnun-preconvert foo.lang.html foo.html
address@hidden example
 
-The GNU website has infrastructure for supporting ``What's New'', also
-known as ``GNU News''.  Entries are added in a special plain text
-file, @file{server/whatsnew.txt} and are used to build
address@hidden/whatsnew.include} and @file{gnusflashes.include}.  The
-former is used by @file{server/whatsnew.html}, while the latter was
-included in the homepage.
+If some passages in @address@hidden don't match the structure
+of @file{foo.html}, error messages will be displayed.  Check them,
+adjust the files and try again.  When you succeed, the result will be
+written to foo.lang.po.  After that, run
address@hidden (@xref{gnun-merge-preconverted}.):
 
-GNUN has additional rules for building @file{whatsnew.pot}, which
-contains a combination of all necessary strings for
address@hidden/address@hidden,
address@hidden/address@hidden and
address@hidden@var{lang}.include}.  There is nothing unusual in this
-POT file, so it should be translated like any other.  When you commit
address@hidden@var{lang}.po}, it will be used to generate all three
-localized files.
address@hidden
+gnun-merge-preconverted -C compendium.lang.po foo.lang.po foo.pot
address@hidden example
 
-Note that localized RSS feeds are not supported on purpose, as it would
-be annoying for subscribers if new items appear in English and then once
-again translated.
+If you have no compendium, just omit the address@hidden
+compendium.lang.po}'' part.
+
+You get @address@hidden where all messages are marked as
+``fuzzy'' (unless you use a compendium); you still should make sure that
+the translations correspond to the original and remove those ``fuzzy''
+marks.  The script adds differences against ``previous'' @code{msgid}s to
+facilitate checking.
+
+There is no need to delete the existing HTML translation, GNUN will
+automatically overwrite it.  The only thing a translator should do is to
+commit the PO file in the repository.
+
+When an essay has been translated by several people through the years,
+it is important that this information is recorded and reflected in the
+PO file.  In the future, special targets may be added to enable the FSF
+to check who translated a particular article, and when.
+
+A recommended way to do this is as follows:
+
address@hidden
address@hidden
+# French translation of http://www.gnu.org/philosophy/@/bsd.html
+# Copyright (C) 2006, 2007, 2008 Free Software Foundation, Inc.
+# This file is distributed under the same license as the gnu.org article.
+# C@'edric Corazza <cedric.corazza@@wanadoo.fr>, 2006, 2008.
+# address@hidden Dominguez <taz@@gnu.org>, 2007.
address@hidden group
address@hidden example
+
+In this example, it is clear that C@'edric made the initial
+translation, address@hidden made some changes in 2007, and the original
+translator returned in 2008 and continued maintaining it.
 
 @node Webmaster Tips
address@hidden Tips and Hints for Webmasters
address@hidden Tips and Hints for Webmasters
 @cindex tips, webmasters
 @cindex webmaster tips
 
@@ -2034,7 +2032,7 @@
 @end menu
 
 @node Validation
address@hidden Validation
address@hidden Validation
 @cindex validation
 
 The script @command{gnun-validate-html} is useful for webmasters who
@@ -2049,7 +2047,7 @@
 @xref{gnun-validate-html}, for more information.
 
 @node Comments for Translators
address@hidden Comments for Translators
address@hidden Comments for Translators
 @cindex comments for translators
 
 @c Emacs Lisp code goes here...
@@ -2079,7 +2077,7 @@
 unnecessarily indent the comment in the POT.
 
 @node Modifying Boilerplates
address@hidden Modifying Boilerplates
address@hidden Modifying Boilerplates
 @cindex boilerplates
 
 @strong{Warning:} Any significant structural diversion from
@@ -2091,7 +2089,7 @@
 our sandbox first, to ensure a smooth transition.
 
 @node Localized URLs
address@hidden Localized URLs
address@hidden Localized URLs
 @cindex localized URLs
 
 Some articles may contain diagrams or other images with English text
@@ -2124,7 +2122,7 @@
 (typically, in SVG format).
 
 @node Splitting Long Passages
address@hidden Splitting Long Passages
address@hidden Splitting Long Passages
 @cindex long passages, avoiding
 @cindex conventional separator for strings
 

Index: ChangeLog
===================================================================
RCS file: /sources/trans-coord/trans-coord/gnun/server/gnun/ChangeLog,v
retrieving revision 1.353
retrieving revision 1.354
diff -u -b -r1.353 -r1.354
--- ChangeLog   31 Jan 2013 11:46:16 -0000      1.353
+++ ChangeLog   1 Feb 2013 06:01:50 -0000       1.354
@@ -1,3 +1,44 @@
+2013-02-01  Pavel Kharitonov  <address@hidden>
+
+       Rearrange sections in a more natural way; minor documentaion
+       updates.
+       
+       * doc/gnun.texi (Runtime Variables, Special Targets):
+       (no-grace-items, update-localized-URLs, sync, report):
+       (triggers, validate-all, PO Files, New Translation):
+       (Notes Slot, Credits Slot, PO Tips, Migrating, GNU News):
+       (Webmaster Tips, Validation, Comments for Translators):
+       (Modifying Boilerplates, Localized URLs, Compendia, Sitemap):
+       (Splitting Long Passages, languages.txt, generic.LANG.txt):
+       Move one level up in the hierarchy.
+       (PO Files and Team): Rename to `Team's Repository'.
+       Move two levels up in the hierarchy.
+       (GNUmakefile.team Variables, GNUmakefile.team Targets):
+       (GNUmakefile.team and Cron): Move two levels up in the
+       hierarchy.
+       (generic.LANG.html, languages.txt, Sitemap, GNU News):
+       Move from `PO Files' to `Usage'.
+       * doc/web-trans.texi (Translation Managers): Remove; it should
+       be a separate manual because the translators needn't read it.
+       (Introduction): Remove reference to `Translation Managers'.
+       Explain in more details synonyms for `co-ordinators' and
+       `Translation Managers'.
+       (Summary): Rename to `Translation Process'.
+       (Mailing Lists): Mention team's mailing lists.
+       (PO Files): Move to `Translaion Process', after
+       `Savannah Projects'.
+       (Translation Tips): Remove the node.
+       (Priorities, Updating, Capitalization, Distribution Terms):
+       (Terminology): Move to the beginning of `Translation Process'.
+       (Terminology): Add a reference to the Translation README.
+       (Migrating, SSI, CSS): Move to the end of
+       `Translation Process'.
+       (New Team): Document first steps after appointing as a
+       co-ordinator (setting up mailing lists and Savannah project
+       configuration).
+       (Savannah Mailing Lists): Explain that the settings of the list
+       are up to the team.
+
 2013-01-31  Pavel Kharitonov  <address@hidden>
 
        * GNUmakefile (validate-all): Limit the maximum number



reply via email to

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