GNUnited Nations TODO List				-*-outline-*-

* Present bugs

** The current implementation of the gnusflashes.LANG.include rule does not 
   take into account that not all items should appear as GNU's
   flashes.  This should be rewritten, and checks must be performed in
   order only news which are marked with an asterisk (*) in
   whatsnew.txt propagate in the generated file(s).

** The regexp in the gnusflashes.%.include rule
   for grep is not ideal -- it doesn't include the SGI item, because
   for some reason it appears on three lines:
   <dd>
       <a href="http:/fsf.org....
   </dd>

** Items are not in alphabetical order in articles like
   gnu/gnu-user-groups.LANG.html or
   philosophy/words-to-avoid.LANG.html.

** `gnun-validate-html' works only from the root of the repository.

** A testsuite is missing.
   Po4a, m4, and eventually gettext are prone to introduce regressions
   in GNUN.  An extensive testsuite should be developed, which must
   include a diff of a test data built with an old tool and a new one.

** Remove special characters in @node's.
   Some characters as period (`.') confuse Texinfo when they appear in
   nodes' names, and xref'ing them looks extremely ugly in Info.

* General (when bugs are fixed)

** The documentation is not complete, and should be improved.

** Experiment with msgmerge's `--previous' option and make it the
   default, if feasible.  Requires gettext >= 0.16.
   This option will be useless, especially with long paragraphs.
   We could possibly involve wdiff so that the `previous' msgid is a
   wdiff between the previous and the current.  That way, translators
   won't lose much time identifying the changes.

** Write a script that will itself invoke $(MAKE), log all output in a
   file and cvs commit everything ought to be committed.  Deal with SSH
   woes in order the whole operation to be performed automatically.
   NOTE: Isn't this already implemented in a different way?

* Expected problems

** RTL.

** Complicated articles like /philosophy/eldred-amicus.

** Problems with ``'.
   Some articles may contain ` legitimately, and gnun-validate-html
   will spit an m4 error.

* Non-essential

** Implement Hg and Git support for GNUmakefile.team.

** Implement a `report' target that would be language specific and will
   output the state of all files for a language team, and extended
   `full-report' that will check the activity of all teams for a
   certain period.  For language teams, a `msgfmt --statistics'-similar
   output would be sufficient, as a start (probably omiting files that
   are 100% complete).  (This could be done with a script too.)
   (Partially done.)

** When commiting automated changes, find a way to generate meaningful
   CVS log entries, describing the changes.  Something like:

  ,----
  | Atomatically generated commit message by GNUnited Nations.
  | 
  | * po/home.pot: $(actual log entry of home.shtml used by the $webmaster).
  | * philosophy/bdk.fa.html: Adding Farsi translation # or whatever the
  |    			  	 	 	       # Persian leader
  | 						       # wrote while
  | 						       # commiting the
  | 						       # PO file
  | * gnu/linux-and-gnu.bg.html: Impoved foo (Closes: bug #1234).
  `----

  Possible implementation is this: When a file is modified, an extra
  command will append the cvs log message from the original file.
  Upon successful make && commit, this log file will be deleted.  In
  case of failure, it will not be deleted so that the accumulated
  messages will be used in the next run.

** Figure out how to "inject" a language-specific warning, possibly
   from /server/gnun/outdated.xx.html that will be displayed when the
   page has 20% (or more) messages untranslated.  We have to think
   also about a deprecation plan for all gnu.org translated pages, and
   whether this software can help sorting all issues out.  Idea: We
   can use the comment <!-- Automatically generated... --> to add a
   fake #include directive, which will tell Apache that this page is
   OK, but in its absence will direct to a separate page (like 404)
   with a a notice that the translation is very outdated and
   links/options like 1) Visit the English article; 2) Visit the
   translation anyway; 3) Help the Foo translation team; 4) Whatever
   we decide.

** PO mode a bit unsuitable for HTML translations.
   The window that gets opened when you hit <RET> on a msgstr in PO
   mode is in Fundamental mode, which leads to many typos that stem
   from the fact that font lock for HTML is not available.  Ideally,
   we should find a way to provide a custom code to override PO mode's
   default behaviour.  Perhaps even a simple facility to convert a
   standard PO header as generated by Po4a to the recommended format,
   plus probably other useful things that would save purely mechanical
   work.

** Implement notifications for new articles and translations.
   When the .pot of a new article is 'cvs add'-ed, or a fresh
   .LANG.html, it would be nice to generate messages for
   trans-coord-news.  They can include a Keywords: header, so it would
   be possible to use Mailman's topic feature to subscribe for
   specific notifications.  This could be widely advertised if it
   works well.  Currently, it is not feasible for articles until most
   of the present become listed at gnun.mk.

** Internationalization.

** Implement `pedantic' validation.
   This could possibly check if all header fields (comments included)
   are filled in properly, and should probably be developed hand in
   hand with the `fsf-report' target.  This kind of validation could
   check for a valid Last-Translator field and would send mails as
   reminders both to the team address and the last translator, without
   failing the build.

** Emacs interface to gnun-validate-html.
   Write an Emacs function, enabling webmasters to validate the
   current buffer.

** BOM stripping.
   Apparently some translators use poor editors (or more likely, poor
   editors in conjunction with Windows) so a BOM is sneakily added.
   This renders the PO file invalid, and all .LANG.html invalid if
   header.LANG.html contains a BOM (since po4a 0.34 adds an empty new
   line at the beginning of the file).
   Would be nice to handle this unpleasant case automatically rather
   than fixing the faulty files manually.
