Changelog
=========

3.0c1 (2008-10-04)
------------------

    - Fixed major bug introduced in the kupu changes. We didn't include
      cpt pages anymore.
      [hannosch]

    - Updated the table output with some styling tips from limi.
      [hannosch]

    - Added a new -t option to the list command. This will output a simple
      HTML page with some colored progress bars instead of the simple text
      listing.
      [hannosch, limi]

    - Ripped out the long unmaintained chart and combinedchart commands.
      Added a new list command instead, which shows the translation status
      in a simple listing.
      [hannosch]

3.0b4 (2008-04-26)
------------------

    - Updated documentation.
      [hannosch]

    - Fixed parsing of projects without any i18n in page templates. It is
      sufficient to have i18n in Python files or in GS profiles.
      [naro] 

    - Added special handling of some more entities to please kupu.
      [hannosch]

    - Applied kupu-i18nextract-sa-diff.patch from kupu to be able to rebuild
      the kupu pot files from xsl and html files.
      [hannosch]

    - Normalize path separators in references to `/` on all platforms.
      [hannosch]

    - Reverted undocumented c58402, which broke in presence of Unicode strings.
      [hannosch]

    - Strip the computer specific base folder from generated references.
      [hannosch]

    - On most errors, show the error and a very short help message,
      instead of the complete doc string of the file.
      [maurits]


3.0b3 (2007-09-01)
------------------

    - Stripped some more trailing whitespace. Fixed recursive algorithm for
      i18n domain extraction.
      [hannosch]

    - Fixed some bugs in the GenericSetup extraction handler. Messages defined
      on the root node will now be extracted as well. The message texts are
      stripped from beginning and trailing whitespace.
      [hannosch]


3.0b2 (2007-06-05)
------------------

    - No longer replace &hellip; and &mdash; with simple ASCII equivalents, but
      use proper Unicode characters, properly representing these HTML entities.
      [hannosch]

    - Fixed some minor bugs found while rebuilding the Plone pot files.
      [hannosch]

    - Added basic Unicode support to the MessageCatalog class.
      [hannosch]

    - Fixed comment handling in the merge command.
      [hannosch]

    - Made gdchart dependency for the combinedchart command optional. Instead
      you only get a textual listing right now.
      [hannosch]

    - Quote new lines in the default comment properly.
      [hannosch]

    - Added support for extracting i18n:attributes from GenericSetup profiles.
      [hannosch]

    - Added a new basic GenericSetup profile extractor, which automatically
      extracts messages marked with i18n:translate.
      [hannosch]

    - Added back support for specifying multiple folders to be searched in the
      rebuilt-pot command.
      [hannosch]

    - Added new --exclude argument to the rebuilt-pot command, which lets you
      specify a whitespace delimited list of files that should not be included
      in the message extraction.
      [hannosch]

    - Added automatic replace from '&#8230;' to '...'.
      [hannosch]


3.0b1 (2007-03-01)
------------------

    - Fixed bug in mixing different catalogs into one. It wouldn't respect the
      default value of messages extracted from Python code. Also don't extract
      messages from translate and utranslate functions anymore, because they
      have a different call signature.
      [hannosch]

    - Whitespace fix for filename filter.
      [sunew]

    - Improved the regular expression used in find_untranslated, so that it
      also matches tags beginning with capital letters.
      [kclarks]

    - Removed custom TAL parser. Use the one from zope.tal.talgettext instead.
      [hannosch]

    - Integrate extract.py and interfaces.py from zope.app.locales. Got rid of
      our own version of TokenEater and the whole pystrings.py file.
      [hannosch]


2.1.1 (2006-10-28)
------------------

    - Use entry_points console_scripts from setuptools to install the main
      script. This should generate an executable file on Windows platforms.
      [hannosch]

    - Removed some unused test files.
      [hannosch]

    - Corrected the package information in the setup.py. Figured out how to
      use find_packages() with the correct arguments.
      [hannosch]


2.1 (2006-09-22)
----------------

    - Refactored the package source code layout to comply to the usual best
      practices.
      [hannosch]

    - Added framework classifiers to the package metadata.
      [hannosch]

    - Some small refinements to setup.py. i18ndude is now registered in the
      Cheese Shop and you can get the current development version just by
      typing 'easy_install i18ndude' :)
      [hannosch] 

    - Egg enabled i18ndude. The next release will be available as an egg. If you
      are in a development environment you might want to reinstall i18ndude by
      using 'python setup.py develop' instead of 'python setup.py install' now,
      so you don't have to do this whenever something changes in SVN :)
      [hannosch]

    - Sorted textual output of the combinedchart option by language code.
      [hannosch]

    - Clarified the 'already exists with different text' message by providing
      the location of the original text as well.
      [hannosch]

    - Removed the 'Assuming rendered msgid' warning messages. These only clutter
      the logs but don't provide any real value.
      [hannosch]

    - Fixed tests, so they can be run with the normal Zope testrunner.
      [hannosch]

    - Disabled external namespace validation for find-untranslated so you can
      run it without network access and results in a major speed increase.
      Thx to Chuck Bearden for the patch. This closes
      http://plone.org/products/i18ndude/i18ndudetracker/1
      [hannosch, encolpe]

    - Remove the 'addPortalMessage' again from the list of python functions
      whose argument should be translated. We do these with proper MessageID's
      now.
      [hannosch]

    - Exclude folders named 'tests' from subfolder scanning. Page templates and
      Python code from tests shouldn't be scanned for i18n tags.
      [hannosch]

    - Fix the broken admix option.
      [hannosch]

    - Update the usage info to reflect the removal of the silent option.
      [hannosch, frisi]

    - Fixed yet another issue regarding whitespace and provided test for it.
      [hannosch, Tuttle]

    - Change output of references's containing '//' to conform to the poEdit
      format.
      [hannosch]

    - Change output of msgstr's containing newline codes (\n) to conform to the
      gettext standard and specifically the poEdit format.
      [hannosch]

    - Don't add fuzzy status to empty messages anymore.
      [hannosch]


2.0 (2005-10-09)
----------------

    - Removed two unsupported scripts, if you have used them please tell me
      [hannosch]

    - Refactored sync option into function of catalog.py and wrote test for it.
      Fixing a bug along the way and did some code cleanup.
      [hannosch]

    - Added option to specify title of chart explicitly
      [hannosch]

    - Added combinedchart option, which is used to build the overview charts
      on plone.org for a comprehensive view on the status of translations.
      [hannosch]

    - Removed the extract literals feature. If anybody needs it, please speak up.
      [hannosch]

    - Updated visualisation.py to handle new internal catalog format.
      Provided basic test for it.
      [hannosch]

    - Added new feature to PTReader. For msgid's which are already in the
      catalog, check if the msgstr matches or provide an error message.
      [hannosch]

    - Fixed another issue regarding missing whitespace and provided test for it
      [hannosch, Tuttle]

    - POWriter generates new default comments instead of the old original
      comments. POParser automatically converts existing original comments
      (# Original: "") or Zope3-style default comments (# Default: "") at the
      reading step to new default comments (#. Default: "").

    - PTReader now doesn't extracts any excerpts anymore.
      [hannosch]

    - Removed the silent option on rebuilt, merge and sync completly. The
      addition of the added- and removed-sections lead to an incorrect format.
      Use a normal diff tool if you are really interessted in this information.
      [hannosch]

    - PYReader now extracts the line numbers of messages and writes these at
      the end of the reference seperated with a ':'
      [hannosch]

    - The catalog's add method doesn't adds duplicate references or automatic
      comments anymore. Test were updated to reflect new behaviour.
      [hannosch]

    - Fixed handling of normal comments in PT- and PYReader.
      [hannosch]

    - Always add a blank line as the last line on po's, as poEdit does it
      [hannosch]

    - Adjusted Python parsing tests to cover the current behaviour. Added XXX
      comments where it is wrong
      [hannosch]

    - Fixed an issue with an unnecessary whitespace and provided test for it
      [hannosch, Tuttle]

    - Based all of catalog.py on the new MessageEntry class.
      Rewrote POWriter to use new gettext standard conform output.
      [hannosch]


1.0 (2005-09-02)
----------------

    - This is the last release with old-stlye output formatting and command line
      options. The next release will be incompatible in many ways, so update
      with care.
      [hannosch]

    - Cleaned up docs and removed some stale files
      [hannosch]

    - untranslated.py: fixed handling of new i18n:attributes with trailing
      semicolon as introduced by myself ;) thx to xaNz for pointing me to it
      [hannosch]

    - Added a new MessageEntry class to base the MessageCatalog on, added new
      default_comment constant, reformated the Changelog as HISTORY.txt
      [hannosch]

    - Fixed path handling in tests and wrote tests for PYParser
      [deo]

    - Adjusted tests to pass on new behaviour of 'unneeded literal msgids'
      now getting added and warning shown
      [hannosch]

    - Instead of only showing a warning about 'unneeded literal msgids'
      these get added now
      [tuttle]

    - move the utils.py from PloneTranslations here, Removed ## X more comments
      [hannosch]

    - Preserve special ## comments, added tests for special comments,
      started PageTemplate parsing tests
      [hannosch]

    - added test for po file writing and allowed filenames without excerpt
      (lines starting with #: without corresponding #. lines)
      [hannosch]

    - added test infrastructure and tests for po file parsing
      [hannosch]

    - Fix an issue in merge option when trying to merge two files
      [hannosch]


0.6 (2005-07-04)
----------------

    - tagged and released 0.6
      [batlogg]

    - pystring: add 'addPortalMessage' to the list of python functions whose
      argument should be translated. This allows to catch the new-style portal-
      messages in Plone 2.1 to be automagically extracted
      [hannosch]


0.5 (2005-06-14)
----------------

    - tagged and released 0.5
      [batlogg]

    - as html-entities in msgstr's are bad, don't provide them in the original
      comments. this has confused translators.
      [hannosch]

    - untranslated.py: Added a new handler available through a command line
      switch, generally ignore text in script and style tags
      [hannosch]

    - Fixed whitespace error in generation of #, fuzzy comments
      [hannosch]

    - i18ndude now takes a second pot to merge in the merge and rebuild-pot
      commands, this is useful if you have both a manual.pot and a generated.pot
      [hannosch]

    - catalog.py (MessageCatalog) added a new method addToSameFileName() which
      adds in a msgid but adds the excerpt to an existing filename occurrence
      This is used in i18ngenerator.py of PloneTranslations to add in actions
      like "Edit" as msgids and adds all types these are definied to the same
      occurrence rather than generating a new one for each type
      [hannosch]

    - catalog.py (POWriter.write) takes a new argument noMoreComments that
      supresses the "## xx More..." comments
      [hannosch]

    - Also fill in the Original comments when parsing i18n:attributes
      This allows for efficient handling of named i18n:attributes
      [hannosch]

    - Refactored the English Translation stuff and renamed it to Original
      [hannosch]

    - When syncing po-files the old and new original comments are compared and
      the msgid is set to fuzzy if these aren't the same, meaning the msgid has
      changed and needs some verification
      [hannosch]

    - Added optional allcomments argument and get_original() method
      These are used in the latest PloneTranslations tests to compare
      the original value of a msgid with the msgstr
      [hannosch]

    - Set chart width to 1000px. Plone has too many translations ;)
      [hannosch]

    - Included a new option to scan python scripts for messages.
      Currently it looks for the _(), translate() and uranslate()
      functions. It is based on pygettext.py from Python and some
      ideas taken from Zope's extract.py.
      [hannosch]

    - catalog.py (POWriter._print_entry): Added a second # to "English
      translation" lines so that those lines don't get written out twice.
      Which happens because we try to preserve comments.
      [dn]


0.4 (2005-05-08)
----------------

    - Moved from cvs.sf.net to svn.plone.org. History was NOT migrated
      check http://cvs.sf.net/viewcvs.py/plone-i18n/i18ndude for older 
      revisions.
      [batlogg]

    - Older entries can be found in the ChangeLog.
