GNUnited Nations NEWS - User visible changes.

* Changes in GNUnited Nations 1.2 (2021-12-12)

** When validating HTML, SSI variable expansion is closer to Apache behavior.
   The 'var' attribute of #set and #echo, 'file' / 'virtual' attribute
   of #include are substituted.  Output of unassigned variables depends on
   the directive (empty in #set, '(none)' in #echo, unexpanded in #if).
   The variable with empty name is allowed.  Escape characters are processed more
   realistically.

* Changes in GNUnited Nations 1.1 (2021-09-10)

** When reporting unGNUNified translations, 'reports-summary' target
   in GNUmakefile doesn't output a line when a team has no unGNUNified
   translations.

** make-prototype.awk was modified to allow arbitrary attributes in div#footer.

** gnun-validate-html in the verbose mode adds line numbers to the expanded HTML
   in the error message.

** When validating as HTML5, obsolete attributes are not allowed any more;
   the 'role' attribute is added to <div>, <ul>, <ol>, <dl>, <dt>, <form>;
   %focus is included in global attributes; 'aria-labelledby' and
   'aria-describedby' are added to global attributes.

** Bugs fixed in 1.1

*** The 'configure' script didn't output 'no' in summary when no PO4A
    was installed.

*** 'gnun-report' didn't list untranslated optional templates.

*** The 'label' attribute of <track> wasn't translated.

* Changes in GNUnited Nations 1.0 (2020-06-20)

** In translation lists, language code comes before language name,
   ending spaces move into <span>.

** <label> is treated as a block element.

** In HTML5 validation, the 'crossorigin' attribute is added to
   media elements.

** Per-directory compendia include optional templates.

** gnun-link-diff takes into account CC BY links "localized" per
   https://www.gnu.org/s/trans-coord/w/Distribution-Terms.html

** sync target of GNUmakefile.team ignores whole header msgstr.

** Bugs fixed in 1.0

*** sync target of GNUmakefile.team made many unneeded changes
    in PO files.

*** Per-directory compendia weren't validated before using them.

*** `add-fuzzy-diff` wasn't applied to per-directory compendia.

* Changes in GNUnited Nations 0.12 (2018-12-20)

** New experimental feature: per-directory compendia.  See
   https://www.gnu.org/s/trans-coord/g/Per_002dDirectory-Templates.html

** GRACE doesn't define grace period in days any more: any defined
   value specify an unlimited period.

** no-validate-articles isn't supported any more.

** In `sort-linguas', Telugu was added.

** gnun-init-po fills the `Language:' field of PO header.

** New script, gnun-link-diff.  See
   https://www.gnu.org/s/trans-coord/g/gnun_002dlink_002ddiff.html

** configure script detects GNU sed-4.3-specific bug and issues
   a warning; all configuration warnings are printed
   after outputting results.

** Bugs fixed in 0.12.

*** Many configure variables like WDIFF and UUENCODE weren't
    actually taken into account.

* Changes in GNUnited Nations 0.11 (2016-10-08)

** Optional templates are reported as lower priority even when located
   in `important' directories.

** New experimental feature, sorting lists.  See
   https://www.gnu.org/s/trans-coord/g/Sorting-Lists.html

** www.gnu.org URLs in many places are replaced with the HTTPS version.

** In `configure', a workaround for less precise versions
   of `date' is added.

** `gnun-clear-previous' is removed; it has never been really used.

** Bugs fixed in 0.11.

*** `gnun-validate-html' didn't work with bash versions that don't
    support set -o pipefail.

*** The script updating localized urls didn't work since 0.9.

*** `configure' didn't detect old versions of xmllint adequately.

*** Many utilities didn't work when mktemp had no -t option.

* Changes in GNUnited Nations 0.10 (2015-11-07)

** Support for po4a versions < 0.37 is dropped.

** `gnun-validate-html' supports groups of regular expressions
   as Apache variables when expanding SSI (when gawk is used).

** GNUmakefile doesn't break builds when encounters a PO for
   a language absent in TEMPLATE_LINGUAS; such POs are ignored.

** GNUmakefile.team is made more suitable for parallel builds;

** In GNUmakefile.team, the `update' was split into
   `update-www' and `update-team'; the repositories are updated
   unconditionally (previously, they were only updated when VCS=yes).

** Bugs fixed in 0.10.

*** In SSI expansion, `gnun-validate-html' wrongly assumed that double
    quotes were removed when evaluating #if directives.

*** In SSI expansion, `gnun-validate-html' wrongly unquoted regular
    expressions in directives like <!--#if expr="a = /'a'/" -->

*** `gnun-add-fuzzy-diff' didn't work correctly when no input file
    was given.

*** `gnun-report' was broken.

*** `gnun-diff-po' didn't work with awks that don't
    recognize the `[:space:]' class in their regular expressions.

*** GNUmakefile didn't insert SSI variables for outdated notices
    correctly.

*** The default target in GNUmakefile.team was made more suitable
    for parallel builds.

* Changes in GNUnited Nations 0.9 (2014-05-22)

** Apache variables are inserted at the beginning of the generated
   HTML file.

** `make-prototype.awk' was modified to enclose translator's notes
   in `<div class="translators-notes">' rather than in
   `<div style="font-size: small;">'; the `<p>' element preceeding
   translator's credits may have attributes.

** An initial testsuite was added.

** Command line parsers for `gnun-init-po',
   `gnun-merge-preconverted', `gnun-preconvert',
   `gnun-report', `gnun-validate-html', `update-localized-urls' were
   rewritten to accept file names mixed with options like
   GNU coreutils do, and joint options like `-hv'; also, those
   utilities now uniformly accept `-h' and `-v' as shortcuts
   for `--help' and `--version'.

** `gnun-merge-preconverted' now accepts the `--disable-diffs'
   option.

** `gnun-diff-po' now accepts a directory as the second argument.

** Bugs fixed in 0.9.

*** In GNUmakefile, the `<style>' elements could wrap, which
    broke long generated contents strings.

*** `gnun-validate-html' didn't work with awks that don't
    recognize `\>' in their regular expressions.

*** <span class="gnun-split"></span> didn't work in templates.

*** The GNUN tag (<gnun>) weren't eliminated correctly when
    it appeared in a line more than once; this limited
    usage of the <span class="gnun-split"></span> feature.

*** `gnun-diff-po' and `gnun-report' didn't use valid identifiers
    as function names (worked with bash-4.1, didn't work
    with bash-3.2).

*** In GNUmakefile.team, the `all', `sync', `notify' and `report'
    targets were broken.

* Changes in GNUnited Nations 0.8 (2013-12-31)

*** `msgattrib --previous' is used when available.

*** The maximum number of reports against invalid articles
    in `validate-all' is limited.

*** The format of `no-grace-articles' and `no-validate-articles' was
    simplified and unified with `extra-templates'.

*** GNUmakefile supports sitemaps.

*** The support of whatsnew is dropped.

*** The differences of comments were added to the tables generated
    with `gnun-diff-po'.

*** New option in `gnun-diff-po' not to output strings that don't
    differ: `--no-common'.

*** New option in `gnun-validate-html' to specify emulated Apache
    variables: `--apache-vars'.

*** The support of `sync' target in GNUmakefile is dropped.

*** The `generic.LANG.html' files are replaced with SSI, which
    enabled GNUN to avoid intermediate *.m4 files.

*** New variable in gnun.mk, `localized-ssis'; the list of
    localized SSIs is now completely defined via variables
    from gnun.mk.

** Portability improvements

*** GNUN can now use `uuencode' when `base64' is unavailable.

*** Awk implementations other than GNU Awk are supported (GNU Awk
    is still highly recommended).

*** `diff', `touch', `grep' don't need to be GNU any more (this
    dependency was undocumented).

*** Configuration variables for `bash', `mail', `mktemp', `xmllint'
    were added, which makes it possible to have those programs in
    custom locations.

** Bugs fixed in 0.8.

*** `gnun-diff-po' didn't process empty comments correctly.

*** `gnun-diff-po' didn't highlight the differences in the messages
    whose whole translations were removed or added.

*** The `publish' target in GNUmakefile.team was broken.

*** The optional templates were not taken into account
    in GNUmakefile.team.

*** The difference detection for PO files was improved
    in GNUmakefile.team.

*** HTML tags in comments were able to confuse GNUN when it
    was extracting titles of the articles to announce.

*** `gnun-validate-html' didn't handle empty included files
    correctly.

*** In GNUmakefile, localized URLs substitution didn't work
    for articles from the root directory.

* Changes in GNUnited Nations 0.7 (2012-12-27)

** GNUmakefile.team enhancements:

*** The `report' target provides more details.

*** Initial implementation of notifications.  See
    http://gnu.org/s/trans-coord/manual/gnun/html_node/GNUmakefile_002eteam-Targets.html

*** The priorities.mk file from the `www' working copy is used;
    no separate file is needed.

*** `gnun-add-fuzzy-diff' is used when available unless it is disabled.

** VALIDATE=yes is assumed by default in GNUmakefile. See
   http://gnu.org/s/trans-coord/manual/gnun/html_node/Runtime-Variables.html

** The rules for home and primeval templates are not hardcoded
   any more.  The home page is defined as a no-grace `root' page,
   the templates are declared in the `extra-templates' variable.

** New scripts:

*** `gnun-diff-po'
    Generates differences between revisions of a PO file
    in HTML format.  For more details, see the manual
    http://gnu.org/s/trans-coord/manual/gnun/html_node/gnun_002ddiff_002dpo.html

*** `gnun-report'
    Generates per-team reports about status of translations
    in HTML format.  For more details, see the manual
    http://gnu.org/s/trans-coord/manual/gnun/html_node/gnun_002dreport.html

** GNUN doesn't depend on Guile any more.

** <span class="gnun-split"></span> is used as a separator to split
   long strings of the original files.

** New variable in gnun.mk: `optional-templates'.  It is used for low
   priority SSI templates; it won't generate empty PO files, so
   the scripts reporting outdated translations won't take them into
   account unless the team decides to commit a translation.

   Since the POTs of the optional templates have the `.pot.opt'
   extention, the `gnun-init-po' script assumes that the POT file name
   may end on either `.pot' or `.pot.opt'.

** When the out-of-date notice is added to the translation,
   the `OUTDATED_SINCE' SSI variable indicates when the translation
   became obsolete.

** The `report' and `reports-summary' targets will also report
   the translations that should be converted to PO files.

** Bugs fixed in 0.7.

*** Parallel builds are supported again (must have been broken since 0.5).

*** The `report' target didn't take into account the subdirectories of
    `important' directories.

*** The `validate-all' target didn't validate the home pages.

*** When deciding whether the translation is up-to-date, it was not
    taken into account that the name of the article may include
    `fuzzy' or `untranslated'.

*** `gnun-preconvert' didn't work with HTML files from the working copy
    because they are not well-formed HTML due to using SSI.

*** `gnun-validate-html' didn't expand some nested conditional statements
    correctly.

*** Files in the `dtd' directory are now explicitly said to be an external
    library as per
    http://gnu.org/prep/maintain/html_node/FSF_002dCopyrighted-Package.html

*** When extracting article's title for the announcement, look
    for `<title>' when there is no `<h2>' in the file.

* Changes in GNUnited Nations 0.6 (2012-06-28)

** New target in GNUmakefile: `validate-all'.
   The target is used to validate all files under GNUN control.  It is
   needed because changing an included file like a header or the footer
   doesn't trigger validation of all pages that include those files,
   even though such changes may make them invalid.

** New script to initialize PO files: `gnun-init-po'.
   This script is intended for creating new translations;
   it initializes a PO file and fills some fields in the header
   with values customized for www.gnu.org.  See
   http://gnu.org/s/trans-coord/manual/gnun/gnun.html#gnun_002dinit_002dpo

** New scripts to facilitate migration to PO format: `gnun-preconvert' and
   `gnun-merge-preconverted'.  These are shortcuts for PO4A and gettext
   tools invocations used to semi-automatically convert HTML translations
   to PO files.  See
   http://www.gnu.org/software/trans-coord/manual/gnun/gnun.html#Migrating

** SSI conditional directives are interpreted rather than treated as
   comments when validating pages.

** Variables defined in `priorities.mk' are used to sort the reported
   translations by priority as defined in
   http://gnu.org/s/trans-coord/manual/web-trans/web-trans.html#Priorities

** Support compendia.  See
   http://www.gnu.org/software/trans-coord/manual/gnun/gnun.html#Compendia

** Bugs fixed in 0.6.

*** `extra-templates' didn't work with files from the topmost directory.
    Fixing this bug enables localization of /planetfeeds.html.

*** When adding language suffix to the URLs of localized templates,
    the full string is checked, not just the end of it.

*** When a PO file was initially committed, GNUN committed
    the translation even if it was not complete; now incomplete
    translations are only committed when GRACE is over.

*** GNUN committed HTML files even when they were invalid.

*** When the title didn't fit into single line, it weren't extracted
    correctly for announcements.

*** `gnun-validate-html' didn't report failure when some SSI files
    were missing.

*** Files with differences to latest full translations weren't
    generated correctly and weren't added to VCS.

* Changes in GNUnited Nations 0.5 (2012-01-30)

** Multivews support.
   Support for www.gnu.org Multivews naming conventions is available
   by default.  Use the new `configure' option --disable-multiviews to
   switch it off.

** New runtime variable: `OUTDATED-GRACE'.
   Defines the grace period for out-of-date marks.

** New variables in gnun.mk:

*** `FUZZY_DIFF_LINGUAS'
    Defines the languages for which PO files should be postprocessed
    to add comments with wdiffs to previous msgids of fuzzy diffs.

*** `extra-templates'
    Adds flexibility to the set of templates.

** New script `gnun-add-fuzzy-diff'
   Adds comments with wdiffs to previous msgids.  Useful when it is
   hard to determine a small change in a large paragraph; the new
   variable `FUZZY_DIFF_LINGUAS' takes care to process all
   translations of a given language automatically.

** Support for localized URLs.
   GNUN replaces links to selected images with their localized
   versions when available.

** Links to translations are generated outside of `make-prototype'
   based on presence of translations rather than copied from
   the English file.  They are included via SSI rather than pasted
   into the file; `make-prototype' is always used in --home mode.

** UTF-8 encoding is assumed when processing the input files.
   This permits using non-ASCII characters in English articles.

** New template file: outdated.html; its translations are
   automatically included in the HTML files of outdated translations.

** Enhancements to `gnun-validate-html':

*** The script recognizes HTML5 pages and validates them
    against a custom DTD; this should eliminate the need for
    the variable `no-validate-articles'.

*** New option: `--root'
    Allows `gnun-validate-html' to be invoked from arbitrary directory.

*** New option: `--expand-to'
    Save the expanded HTML in a file.

** GNU Bzr is a supported VCS.

** New GNUmakefile.team targets: format, publish, clean.
   Please refer to the manual for details.

** GNUmakefile.team supports Git repositories.

** New configuration file: gnun.conf.
   The definitions of the `*-addr' variables are moved to this file,
   which is installed in sysconfdir.

** Automatic email announcements of new translations.
   With ANNOUNCE=yes (enabled in the official GNUN build), email
   notifications for new translations are delivered to the address
   defined in the `ann-addr' variable (trans-coord-news@gnu.org for
   the official instance).  Separate Mailman topics are available per
   language, so it is possible to track only new translations for a
   particular language (or several user-selected languages), avoiding
   mail traffic that is not of interest.

   For more details, see the manuals ('(gnun)Runtime Variables' and
   '(web-trans)Mailing Lists') and/or the homepage.

** Eliminate the dependency on m4.
   GNUN only used single feature of the macro processor, and other
   features of m4 conflicted with GNUN's purposes.

** Bugs fixed in 0.5.

*** GRACE period counts from the first incomplete translation.
    In older versions it was measured from the latest update
    of the POT file.

*** Completeness of translations is determined via `msgfmt --statistics'
    rather than `grep "^#, fuzzy"'; the latter let new English passages
    penetrate into translations.

*** `gnun-validate-html' once again properly supports nested
    SSI directives, including `virtual' and `file' type, absolute
    and relative paths, with different quotes (CGI includes are
    still unsupported).

*** `validate-html-notify' uses `gnun-validate-html' from $(bindir)
    rather than first found in $(PATH).

* Changes in GNUnited Nations 0.4 (2009-11-11)

** New script `gnun-clear-previous'.
   This is a simple wrapper around `msgattrib', for those who find it
   hard to remember the correct options.  It currently deletes all
   msgid's marked as "previous", which is usually done right after the
   translation has been updated.

** GNUmakefile.team and gnun.mk are installed as examples.
   To make life easier for those who use the package on multi-user
   hosts (where it is installed by the sysadmin in a system-wide
   location) and for binary packaging's sake, these two files are now
   installed at $(docdir)/examples
   (i.e. /usr/local/share/doc/gnun/examples with the default prefix).

** GNUmakefile.team supports Mercurial (Hg) repositories.

** Subversion is a supported VCS along with CVS.
   VCS=yes automatically detects the VCS to use, choosing between CVS
   and Subversion (in that order).  This is useful for other sites
   that are maintained with Subversion, such as windows7sins.org.

** Bugs fixed in 0.4.

*** `gnun-validate-html' properly supports nested SSI directives.
    As a bonus, it can validate now plain XHTML files with no SSI
    #include statements.

*** Adapt to the new layout of the gnu.org server templates.

* Changes in GNUnited Nations 0.3.1 (2009-08-02)

** GNUmakefile.team supports GNU Bzr repositories.

** New variable `no-validate-articles'.
   HTML validation is skipped for articles defined in this variable
   even if VALIDATE=yes.  This was specifically implemented to
   workaround the lack of support of HTML 5 in `gnun-validate-html'.
   Use it with extreme caution and only when necessary (i.e. when the
   article is HTML 5), as skipping the HTML validation step may easily
   lead to other errors.

** Bugs fixed in 0.3.1.

*** Fix unintentional regression in `msgmerge --previous' behavior.
    The announced functionality in 0.3 about `previous' strings was
    not implemented properly, since the `msgmerge' modifications were
    overwritten by another invocation in all the rules, intended to
    fix unrelated bug.

* Changes in GNUnited Nations 0.3 (2009-05-24)

** GNU gettext >= 0.16 is required for `msgmerge --previous' support.
   This feature copies the entire old string above the new `msgid',
   enabling translators to compare what precisely changed in the
   original.  Currently, it is not very useful for large messages as
   it is hard to detect a small change in a long paragraph.  Po4a 0.36
   comes with an example script `compare-msgids.pl' which can be used
   to print the differences in wdiff format.  A separate GNUN program
   with better output is planned for the very near future.

** Improved configuration.
   The `configure' tests have been improved, and a short summary with
   enabled/disabled features is printed at the end.

** Notifications are sent about errors during POT generation.
   If NOTIFY is enabled, errors from the .pot files generation are
   mailed to `web-addr' (i.e. www-discuss for the official build).
   Usually they are about non-ASCII characters in the original .html.

** GNUmakefile.team supports GNU Arch repositories.

** Bugs fixed in 0.3.

*** Empty .LANG.html files are no longer committed.
    In previous releases, an empty .LANG.html was committed when
      1) The newly added .LANG.po does not pass PO validation, or
      2) The translation was based on an old version of the .pot,
         so msgmerge introduced "fuzzy" strings in the .LANG.po prior
         to the generation of the HTML translation.

    The behavior now is the following: 1) The build halts with an
    error and a message is sent (if NOTIFY is enabled) while no .html
    file is created; 2) The value of GRACE is ignored, so the
    resulting .LANG.html contains English text.  This proved to be a
    better alternative than an empty file which may remain unnoticed
    by the translator during the whole GRACE period.

*** PO files for the homepage and whatsnew are always msgmerge'd.
    Previously, only PO files for ordinary articles were updated
    unconditionally prior to HTML generation, to cater for the case
    when a translator commits a "complete" translation but it's not
    actually complete as the PO file is based on an old POT.  Now this
    is done for the homepage and whatsnew (aka "gnunews") and as a
    consequence, fuzzy strings are always marked as such.

* Changes in GNUnited Nations 0.2 (2009-02-13)

** GNUmakefile.team supports Subversion repositories.

** GNUmakefile and config.mk are installed in $(pkgdatadir).
   As both files have to be present in the `www' working copy,
   installing them in a standard location helps with installations on
   multi-user hosts, where every user can copy them without
   downloading the tarball.  Upgrades can become easier if you install
   a symlink pointing to the actual files, e.g.

   ln -s /usr/local/share/gnun/config.mk /path/to/www/server/gnun/

   and likewise for GNUmakefile.  Assuming next GNUN releases are
   always installed with the same --prefix, `make report', etc. will
   use the latest version without the need to copy them manually every
   time.

** New web-translators manual.
   The new manual (web-trans.texi) describes the whole (revamped)
   translation process and is the canonical documentation for
   web-translators at all levels (managers, team leaders, team
   members, volunteers).  It is still incomplete and is designed never
   to be completed: the translation process should evolve, and its
   documentation ought to follow accordingly.

   The files at http://gnu.org/server/standards/translations/ will be
   removed soon; they are obsolete since quite some time.  The
   standard entry point for new volunteers README.translations.html
   will also be revised.

** Bugs fixed in 0.2.

*** Parallel (-jN) build fix.
    A carelessly crafted recipe in `article-pot-rules' lead to a race
    condition where two separate make jobs ran the same commands for
    .proto and .translinks files simultaneously, particularly when the
    targets meant to be built in the current GNUN run were only a few.
    The result was invalid .LANG.html as the pseudo-element <gnun> was
    inserted twice around the `Date' RCS keyword, and subsequently
    only one occurrence of it was stripped out.

* Changes in GNUnited Nations 0.1 (2008-12-06)

** Initial release.


-----

Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015,
  2016, 2017, 2018, 2019, 2020, 2021 Free Software Foundation, Inc.

This file is part of GNUnited Nations.

GNUnited Nations is free software: you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.

GNUnited Nations is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with GNUnited Nations.  If not, see <https://www.gnu.org/licenses/>.

Local Variables:
mode: outline
End:
