GNUnited Nations TODO List				-*-outline-*-

* Present bugs

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

** A testsuite is missing.
   Po4a 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.

** 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.

* Non-essential

** 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.

** 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.
   When the .pot of a new article is 'cvs add'-ed, it would be nice to
   generate messages for trans-coord-news.  Currently, it is not
   feasible 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.
