[Debian-l10n-commits] r1409 - in /translate-toolkit/branches/upstream/current: ./ translate/ translate/doc/user/ translate/filters/ translate/lang/ translate/misc/ translate/share/ translate/storage/ translate/tools/

nekral-guest at users.alioth.debian.org nekral-guest at users.alioth.debian.org
Sat Oct 11 15:16:00 UTC 2008


Author: nekral-guest
Date: Sat Oct 11 15:15:59 2008
New Revision: 1409

URL: http://svn.debian.org/wsvn/?sc=1&rev=1409
Log:
[svn-upgrade] Integrating new upstream version, translate-toolkit (1.2.0)

Added:
    translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-poterminology_stopword_file.html
    translate-toolkit/branches/upstream/current/translate/share/
    translate-toolkit/branches/upstream/current/translate/share/stoplist-en
Modified:
    translate-toolkit/branches/upstream/current/PKG-INFO
    translate-toolkit/branches/upstream/current/setup.py
    translate-toolkit/branches/upstream/current/translate/ChangeLog
    translate-toolkit/branches/upstream/current/translate/__version__.py
    translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-cleanup_translator_comments.html
    translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-creating_a_terminology_list_from_your_existing_translations.html
    translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-features.html
    translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-formats.html
    translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-index.html
    translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-installation.html
    translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-pocommentclean.html
    translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-pocompendium.html
    translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-poen.html
    translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-pomigrate2.html
    translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-popuretext.html
    translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-poreencode.html
    translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-porestructure.html
    translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-posegment.html
    translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-posplit.html
    translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-poterminology.html
    translate-toolkit/branches/upstream/current/translate/filters/checks.py
    translate-toolkit/branches/upstream/current/translate/filters/spelling.py
    translate-toolkit/branches/upstream/current/translate/lang/data.py
    translate-toolkit/branches/upstream/current/translate/misc/optrecurse.py
    translate-toolkit/branches/upstream/current/translate/storage/base.py
    translate-toolkit/branches/upstream/current/translate/storage/mo.py
    translate-toolkit/branches/upstream/current/translate/storage/qm.py
    translate-toolkit/branches/upstream/current/translate/storage/qph.py
    translate-toolkit/branches/upstream/current/translate/storage/statsdb.py
    translate-toolkit/branches/upstream/current/translate/storage/ts2.py
    translate-toolkit/branches/upstream/current/translate/storage/txt.py
    translate-toolkit/branches/upstream/current/translate/tools/pocount.py
    translate-toolkit/branches/upstream/current/translate/tools/pogrep.py

Modified: translate-toolkit/branches/upstream/current/PKG-INFO
URL: http://svn.debian.org/wsvn/translate-toolkit/branches/upstream/current/PKG-INFO?rev=1409&op=diff
==============================================================================
--- translate-toolkit/branches/upstream/current/PKG-INFO (original)
+++ translate-toolkit/branches/upstream/current/PKG-INFO Sat Oct 11 15:15:59 2008
@@ -1,6 +1,6 @@
 Metadata-Version: 1.0
 Name: translate-toolkit
-Version: 1.2.0-rc1
+Version: 1.2.0
 Summary: The Translate Toolkit is a Python package that assists in localization of software.
 Home-page: http://translate.sourceforge.net/wiki/toolkit/index
 Author: Translate.org.za

Modified: translate-toolkit/branches/upstream/current/setup.py
URL: http://svn.debian.org/wsvn/translate-toolkit/branches/upstream/current/setup.py?rev=1409&op=diff
==============================================================================
--- translate-toolkit/branches/upstream/current/setup.py (original)
+++ translate-toolkit/branches/upstream/current/setup.py Sat Oct 11 15:15:59 2008
@@ -19,6 +19,7 @@
 
 join = os.path.join
 
+PRETTY_NAME = 'Translate Toolkit'
 translateversion = __version__.ver
 
 packagesdir = distutils.sysconfig.get_python_lib()
@@ -128,7 +129,7 @@
             compilecommand = _winreg.QueryValue(compile_key, "")
             compile_key.Close()
         except:
-            compilecommand = "compil32.exe"
+            compilecommand = 'compil32.exe "%1"'
         return compilecommand
 
     def chop(self, pathname):
@@ -139,7 +140,7 @@
     def create(self, pathname=None):
         """creates the InnoSetup script"""
         if pathname is None:
-          self.pathname = os.path.join(self.dist_dir, self.name + os.extsep + "iss")
+          self.pathname = os.path.join(self.dist_dir, self.name + os.extsep + "iss").replace(' ', '_')
         else:
           self.pathname = pathname
 # See http://www.jrsoftware.org/isfaq.php for more InnoSetup config options.
@@ -209,7 +210,7 @@
         install_scripts = self.install_script
         if isinstance(install_scripts, (str, unicode)):
             install_scripts = [install_scripts]
-        script = InnoScript(self.distribution.metadata.name, lib_dir, dist_dir, exe_files, self.lib_files, version=self.distribution.metadata.version, install_scripts=install_scripts)
+        script = InnoScript(PRETTY_NAME, lib_dir, dist_dir, exe_files, self.lib_files, version=self.distribution.metadata.version, install_scripts=install_scripts)
         print "*** creating the inno setup script***"
         script.create()
         print "*** compiling the inno setup script***"
@@ -285,6 +286,7 @@
     print >>file, "include %s" % scriptname
   print >> file, "# include our documentation"
   print >> file, "graft translate/doc"
+  print >> file, "graft translate/share"
   # wordlist, portal are in the source tree but unconnected to the python code
   print >>file, "prune wordlist"
   print >>file, "prune spelling"

Modified: translate-toolkit/branches/upstream/current/translate/ChangeLog
URL: http://svn.debian.org/wsvn/translate-toolkit/branches/upstream/current/translate/ChangeLog?rev=1409&op=diff
==============================================================================
--- translate-toolkit/branches/upstream/current/translate/ChangeLog (original)
+++ translate-toolkit/branches/upstream/current/translate/ChangeLog Sat Oct 11 15:15:59 2008
@@ -1,3 +1,2069 @@
+2008-10-06 12:37  friedelwolff
+
+	* CREDITS: Credit Miklos for work on version control
+
+2008-10-06 10:14  friedelwolff
+
+	* filters/checks.py: Make 100% sure the xliff imported
+	  successfully. Pofilter should now work correctly when lxml is not
+	  installed.
+
+2008-10-06 10:12  friedelwolff
+
+	* filters/checks.py: Deal properly with unicode arguments to
+	  exceptions, even for Python 2.3 that doesn't have .args
+
+2008-10-06 09:55  friedelwolff
+
+	* filters/spelling.py: Force the multistring to unicode to avoid
+	  problems with Python 2.3 and enchant
+
+2008-10-05 22:34  dwaynebailey
+
+	* storage/ts2.py: Add mimetype for .ts
+
+2008-10-04 13:12  friedelwolff
+
+	* storage/base.py: Add a default 'Name' field for the store (to be
+	  overridden) and document all store-level variables
+
+2008-10-04 13:11  dwaynebailey
+
+	* storage/mo.py: Improve docstring. Point to the Gettext
+	  information on MO and say something
+	  about hashing.
+
+2008-10-04 13:08  friedelwolff
+
+	* storage/base.py, storage/mo.py, storage/qm.py: Use a variable
+	  _binary in the store to indicate if file access should be binary
+	  (non-binary by default, overridden for mo and qm). This fixes bug
+	  538.
+
+2008-10-03 11:53  winterstream
+
+	* storage/statsdb.py: The stats database code checks to see whether
+	  the database
+	  version matches the current toolkit build and deletes the
+	  database if it does not.
+	  
+	  If however the database is empty, this cannot be verified.
+	  
+	  The database layout needs to be fixed though. We'll do that
+	  later. This patch should fix things in the mean time.
+
+2008-10-02 22:40  friedelwolff
+
+	* filters/checks.py: Cast multistring to plain unicode to simplify
+	  things. Ensure failures have unicode messages. Fix incorrectly
+	  ordered parameters
+
+2008-10-02 12:13  friedelwolff
+
+	* storage/qph.py: Remove methods that override methods that work
+	  fine in the parent class. This fixes bug 533.
+
+2008-10-02 12:12  friedelwolff
+
+	* storage/ts2.py: Ensure source and target is always unicode
+
+2008-10-01 08:56  dwaynebailey
+
+	* tools/pogrep.py: Catch strings(source/target) that are None and
+	  don't try to search them.
+
+2008-10-01 08:54  dwaynebailey
+
+	* lang/data.py: unicodedata.normalize does not accept None so make
+	  sure we catch this.
+
+2008-10-01 08:52  dwaynebailey
+
+	* storage/txt.py: Actually use the encoding that we supply in
+	  __init__
+
+2008-09-30 20:21  dwaynebailey
+
+	* misc/optrecurse.py, tools/pocount.py: Exclude GIT, Mercurial and
+	  Bazaar RCS special directories
+
+2008-09-30 20:17  dwaynebailey
+
+	* tools/pocount.py: Ignore Mercurial and GIT hidden directories.
+
+2008-09-30 19:42  dupuy
+
+	* share/stoplist-en: remove second "second" from comment
+	  add 'th' to ordinal number part of regex to ignore/exclude 4th
+	  19th 100th
+
+2008-09-30 17:26  dupuy
+
+	* share/stoplist-en: better comments for regexes
+
+2008-09-30 09:43  dupuy
+
+	* tools/poterminology.py: fix proper handling of default stoplist
+	  with no -S options that was broken by
+	  r8553 (I botched the split-up of the poterminology into
+	  "orthogonal" patches)
+
+2008-09-30 07:26  dupuy
+
+	* tools/poterminology.py: change default case mapping behavior to
+	  -F/--fold-titlecase
+	  add new -C/--preserve-case mapping behavior for old default
+	  multiple -C/-F/-I options can now be given, the last one wins
+
+2008-09-30 07:19  dupuy
+
+	* tools/poterminology.py: add new -u/--update argument; file is
+	  used for both input and output
+	  (currently "-u XXX" is mostly equivalent to "-i XXX -o XXX" but
+	  this can
+	  be made smarter later on; for now, -u argument does not increase
+	  default
+	  --inputs-needed to 2) -- only one of -u/-o can be used in any
+	  command line
+	  refuse to overwrite existing output file implicitly specified by
+	  freestanding
+	  arguments; this provides protection against shell wildcard
+	  expansion accidents
+
+2008-09-30 07:06  dupuy
+
+	* share/stoplist-en: minor adjustments to default stoplist:
+	  enhanced self-documenting comments
+	  use new case mapping directive to enable title-case folding
+	  allow phrases with 'ad' (e.g. 'ad hoc')
+	  ignore phrases with 'eg' 'qv' 'vs' 'would'
+
+2008-09-30 07:01  dupuy
+
+	* tools/poterminology.py: support specification of multiple
+	  stoplist files
+	  enhance format of stoplist file to include case mapping directive
+	  (for upper-/title-/lower-case mapping of words before stoplist
+	  comparison)
+
+2008-09-29 21:15  friedelwolff
+
+	* storage/poheader.py: Indicate the correct position in the header
+	  for the new 'Language' field
+
+2008-09-29 19:04  friedelwolff
+
+	* storage/ts2.py: Work around the default output options to align
+	  better with Qt .ts defaults. +DOCTYPE, -XML decleration
+
+2008-09-29 17:24  friedelwolff
+
+	* lang/fr.py: Correct the case where URIs were incorrectly spaced
+	  for punctuation translation (' ://' -> '://')
+
+2008-09-29 17:23  friedelwolff
+
+	* lang/test_fr.py: Test that URIs are not spaced incorrectly due to
+	  punctuation translation
+
+2008-09-29 17:21  friedelwolff
+
+	* lang/common.py: Add a note about plural defaults
+
+2008-09-29 17:20  friedelwolff
+
+	* lang/common.py: Minor tweak for punctuation translation at the
+	  end of text. This fixes ellipses for Chinese.
+
+2008-09-29 17:16  friedelwolff
+
+	* lang/test_zh.py: Test some more cases with full stops (.) and
+	  ellipses (...)
+
+2008-09-29 15:04  friedelwolff
+
+	* storage/pocommon.py: Add another MIME type
+	  'text/x-gettext-translation' as that is currently used by other
+	  apps in the ~/.recently_used.xbel
+
+2008-09-29 14:01  friedelwolff
+
+	* storage/mo.py: Return an empty unicode instead of normal string
+
+2008-09-29 08:28  friedelwolff
+
+	* storage/ts2.py: Return an empty unicode instead of normal string
+
+2008-09-29 08:27  friedelwolff
+
+	* storage/ts2.py: Fix incorrect variable name
+
+2008-09-29 08:18  friedelwolff
+
+	* storage/qph.py: Return an empty unicode instead of normal string
+
+2008-09-27 09:19  dwaynebailey
+
+	* tools/poswap.py: docstring: use literal blocks
+
+2008-09-27 09:15  dwaynebailey
+
+	* search/indexing/CommonIndexer.py: docstring: add @raise, various
+	  indent fixes
+
+2008-09-27 09:11  dwaynebailey
+
+	* search/indexing/PyLuceneIndexer.py: docstring: add @riase,
+	  correct list and add some links
+
+2008-09-27 09:08  dwaynebailey
+
+	* search/indexing/PyLuceneIndexer1.py: docstring: create list and
+	  add links
+
+2008-09-27 09:02  dwaynebailey
+
+	* search/indexing/XapianIndexer.py: docstring: fix some varibales
+	  incorrectly names, indentation and add @raise
+
+2008-09-27 08:58  dwaynebailey
+
+	* search/indexing/__init__.py: docstring: use @raise markup and add
+	  a link
+
+2008-09-27 08:46  dwaynebailey
+
+	* search/lshtein.py: docstring: fix indentation and list
+
+2008-09-27 08:42  dwaynebailey
+
+	* lang/common.py, lang/data.py: docstring: format and layout fixes
+
+2008-09-27 08:35  dwaynebailey
+
+	* storage/html.py: docstring: convert some examples to literals
+
+2008-09-27 08:33  dwaynebailey
+
+	* storage/cpo.py: docstring: fix indentation and return values
+
+2008-09-27 08:30  dwaynebailey
+
+	* storage/lisa.py: docstring: fix reference links
+
+2008-09-27 08:25  dwaynebailey
+
+	* storage/lisa.py: docstring fixes
+
+2008-09-27 08:22  dwaynebailey
+
+	* storage/properties.py: docstring: Fix epydoc rendering issues and
+	  escaping
+
+2008-09-27 08:10  dwaynebailey
+
+	* storage/statsdb.py: docstring: Indent correctly and remove stale
+	  documentation
+
+2008-09-27 08:07  dwaynebailey
+
+	* storage/test_wordfast.py: Fix docstring indentation
+
+2008-09-27 08:05  dwaynebailey
+
+	* storage/versioncontrol/__init__.py: epoydoc cleanups
+
+2008-09-27 07:59  dwaynebailey
+
+	* storage/wordfast.py: Add explanation of Wordfast tools base on MS
+	  Word
+
+2008-09-27 07:57  dwaynebailey
+
+	* storage/wordfast.py: Add section on encoding
+
+2008-09-27 07:53  dwaynebailey
+
+	* storage/wordfast.py: Document UTF-16 tab constant
+
+2008-09-27 07:52  dwaynebailey
+
+	* storage/wordfast.py: Add many cross reference to the actual
+	  functions
+
+2008-09-27 07:40  dwaynebailey
+
+	* storage/wordfast.py: Fix _char_to_wf docstring
+
+2008-09-27 07:35  dwaynebailey
+
+	* storage/wordfast.py: Add implementation docstring
+
+2008-09-27 07:15  dwaynebailey
+
+	* storage/ical.py: Add docstring
+
+2008-09-27 06:56  dwaynebailey
+
+	* storage/ical.py: Fix misnamed variable
+
+2008-09-26 14:22  dwaynebailey
+
+	* README: Add notes about vobject for ical2po
+	  Add ical2po and ini2po to the list of converters
+
+2008-09-24 20:27  friedelwolff
+
+	* storage/poheader.py: Add accessors to manipulate the
+	  targetlanguage of a poheader implementation. This feature will
+	  appear in gettext 0.18.
+
+2008-09-24 20:25  friedelwolff
+
+	* storage/poheader.py: When updating a header with plural
+	  information, add the Plural-Forms entry if it is not yet there
+
+2008-09-24 16:16  friedelwolff
+
+	* storage/test_ts2.py: Unit tests for the new ts2.py
+
+2008-09-24 14:27  dwaynebailey
+
+	* convert/ical2po, convert/ical2po.py, convert/po2ical,
+	  convert/po2ical.py, storage/ical.py: Add iCalendar conversion
+	  support:
+	  * This uses the vobject library to access .ics files.
+	  * We only process relevant text properties in VEVENT objects.
+	  We could process other entries but why?
+	  * vobject should be >= 0.6.5
+	  
+	  On a positive note, these where implemented based on ini.py
+	  and the limited amount that needed to be implemented for
+	  ical.py and po2ical/ical2po highlighted that we are close
+	  to making this generic enough that by simply adding a format
+	  we get a converter at not extra cost.
+	  
+	  Happy localising of Calendars!
+
+2008-09-22 16:44  friedelwolff
+
+	* lang/test_or.py: Test that a country code doesn't mix up the
+	  factory in the case of special codes (python reserved words)
+
+2008-09-22 14:11  sumpfralle
+
+	* storage/versioncontrol/bzr.py, storage/versioncontrol/hg.py,
+	  storage/versioncontrol/svn.py: adding version dependencies for
+	  the "author" attribute:
+	  * svn: since v1.5
+	  * bzr: sinve v0.91
+	  * cvs: not supported
+	  * darcs: at least since v1.09 according to changelog (this
+	  version is in debian
+	  stable - thus a check does not seem to be important)
+	  * git: since v1.4.3 (this is way older than the package in debian
+	  stable, thus
+	  a check should not be necessary)
+	  * hg: since v1.0
+
+2008-09-21 12:55  dwaynebailey
+
+	* storage/qph.py: Return an empty string if the unit is
+	  untranslated
+
+2008-09-21 12:47  dwaynebailey
+
+	* storage/ts2.py: Return an empty string if the translation is
+	  empty
+
+2008-09-21 02:11  dwaynebailey
+
+	* storage/ts2.py: Manage empty context name
+
+2008-09-21 01:19  dwaynebailey
+
+	* storage/factory.py, storage/qph.py: Add .qph - Qt Phrase Book
+	  support based on ts2
+
+2008-09-20 23:48  dwaynebailey
+
+	* storage/ts2.py: Fixes to get plural entries working in virtaal:
+	  * Add list of languages and plural forms, include reference to
+	  source. This might be better placed
+	  in lang/data.py but since it is hard coded for all of Qt this is
+	  probably a better spot.
+	  * Implement getsource: this allows us to force the source into a
+	  multistring, in .ts the source
+	  will always be a single entry never multiple as in PO. With this
+	  the generic hasplural will work
+	  * Add decorators for source and target, seems we get the parent
+	  ones if not added
+	  * Add nplural fuction to find the language and return the number
+	  of plural forms
+	  * Retrieve the nplural value if we are editing a .ts store.
+
+2008-09-20 20:34  friedelwolff
+
+	* storage/factory.py: Add format support for detecting .ts content
+
+2008-09-20 20:20  friedelwolff
+
+	* storage/factory.py: Add support for ts2 as ts
+
+2008-09-20 20:14  friedelwolff
+
+	* storage/ts2.py: Initial support for new Qt linguist (.ts) files
+
+2008-09-20 13:29  dwaynebailey
+
+	* convert/po2dtd.py: Update copyright dates
+
+2008-09-20 10:26  dwaynebailey
+
+	* storage/benchmark.py: Remove unused imports
+
+2008-09-20 09:02  dwaynebailey
+
+	* storage/benchmark.py: s/profile/cProfile/
+
+2008-09-19 21:40  friedelwolff
+
+	* storage/lisa.py: Ensure that we return unicode strings when
+	  dealing using xpath("string()")
+
+2008-09-19 21:39  friedelwolff
+
+	* tools/test_pogrep.py: Bring in something non-ASCII for better
+	  testing
+
+2008-09-19 15:32  friedelwolff
+
+	* __version__.py: Version 1.2.0-rc1
+
+2008-09-19 14:59  winterstream
+
+	* storage/pypo.py: quote.extractstr is called very often. The
+	  underlying function is
+	  quite heavyweight and adds quite a bit of runtime overhead.
+	  
+	  And yet, all we need is to find the left " (the quote) and the
+	  right
+	  " in a string and to return a string with the quotes intact. This
+	  is done much faster as done in the new little extractstr
+	  implementation
+	  in pypo.py.
+
+2008-09-19 14:56  winterstream
+
+	* __version__.py, storage/statsdb.py: 1. Change the members 'keys'
+	  and 'values' in Record to 'record_keys'
+	  and 'record_values', so as to avoid confusion with the methods
+	  named 'keys' and 'values'.
+	  
+	  2. Added the callback compute_derived_values to Record, so that
+	  it
+	  can compute values which are derived from its other values and
+	  keep these up to date. The class FileTotals makes use of this;
+	  the method FileTotals._compute_derived_values computes values for
+	  "total", "totalsourcewords" and "review" from the values
+	  retrieved
+	  from the database.
+	  
+	  3. Renamed OTHER to UNTRANSLATED.
+	  
+	  4. Renamed Record.db_repr to Record.as_string_for_db.
+	  
+	  5. Updated get_unit_stats to retrieve targetwords from the
+	  database,
+	  since FileTotals now also requires this value.
+	  
+	  6. Changed the values stored inside the database.
+	  
+	  7. Bumped up the toolkit build number.
+
+2008-09-19 14:44  winterstream
+
+	* storage/statsdb.py: If we bump up the toolkit's version number,
+	  we delete the current stats
+	  cache database, if it has an old version number.
+	  
+	  This is not ideal and in the future, we'll probably name stats
+	  cache
+	  database files differently as we change the database layout, so
+	  that
+	  multiple versions of the toolkit software will be able to
+	  coexist.
+
+2008-09-19 10:32  friedelwolff
+
+	* tools/poterminology.py: +Link to wiki in poterminology's
+	  docstring (and therefore also --help text)
+
+2008-09-15 20:27  dwaynebailey
+
+	* storage/benchmark.py: Benchmark the creation of files
+
+2008-09-15 10:56  friedelwolff
+
+	* storage/xliff.py: Add an accessor for the file tag's date
+	  attribute
+
+2008-09-15 10:53  friedelwolff
+
+	* filters/test_checks.py: Test that purepunc won't barf on numeric
+	  translation with stupid GNOME context markers
+
+2008-09-15 10:51  friedelwolff
+
+	* filters/test_checks.py: Ensure that we fail if a translation
+	  contains two accelerators
+
+2008-09-15 10:51  friedelwolff
+
+	* filters/checks.py: Rewrite radically to simplify and optimise.
+	  Correct the incorrect use of decoration.ispurepunctuation
+
+2008-09-15 10:46  friedelwolff
+
+	* filters/decoration.py: ispurepunctuation() should not be true for
+	  numeric strings. Rewrite in more modern style.
+
+2008-09-15 06:41  friedelwolff
+
+	* filters/checks.py: All messages must be unicode (check line 114)
+
+2008-09-12 06:48  dwaynebailey
+
+	* storage/qm.py: Raise and error if our file is to short
+
+2008-09-12 05:03  dwaynebailey
+
+	* storage/mo.py: No need to declare self.units inheritted from
+	  base.py
+
+2008-09-12 04:23  dwaynebailey
+
+	* storage/benchmark.py: Remove all the Pootle stuff
+	  Make the script format agnostic
+	  Allow command line to specify which storage format you want to
+	  profile
+
+2008-09-12 04:18  dwaynebailey
+
+	* storage/benchmark.py: Copy old benchmarking script from Pootle
+
+2008-09-11 11:41  dwaynebailey
+
+	* lang/data.py: Add Kyrgyz
+
+2008-09-08 12:59  winterstream
+
+	* storage/statsdb.py: _cacheunitstats adds stats totals, so we
+	  should only subtract the
+	  value of the old stats in recacheunit.
+
+2008-09-03 19:42  winterstream
+
+	* storage/statsdb.py: Added file_fails_test which does a quick test
+	  to determine whether
+	  any units in a file fail the test passed in the name parameter.
+	  
+	  Since file_fails_test also needs to ensure that file checks have
+	  been run before doing its work, the common code from filechecks
+	  was factored out so that both file_fails_test and filechecks can
+	  use it.
+
+2008-09-03 19:38  winterstream
+
+	* storage/statsdb.py: Store the file totals in the database. This
+	  uses a simple
+	  ORM scheme and will soon be replaced by something better
+	  (from Mozilla).
+	  
+	  Storing the totals in the database should help to fix some
+	  of the out-of-date stats problems that we had.
+
+2008-08-28 16:11  friedelwolff
+
+	* tools/poconflicts.py: Ensure that there is still some source
+	  string left after self.flatten(). If there is nothing left (for a
+	  string such as '...' we probably want to ignore it anyway.
+
+2008-08-28 06:29  dwaynebailey
+
+	* filters/pofilter.py: Do user expansion of input filename to allow
+	  ~ expansion to user home directory.
+
+2008-08-27 09:33  dwaynebailey
+
+	* README: Don't forget Windows RC file support
+
+2008-08-27 08:10  friedelwolff
+
+	* README: Some updates - supported formats +poterminology, etc.
+
+2008-08-26 15:14  friedelwolff
+
+	* __version__.py: Version 1.2-beta2
+
+2008-08-26 14:57  friedelwolff
+
+	* search/indexing/test_indexers.py: Adapt import to new module name
+
+2008-08-26 14:55  friedelwolff
+
+	* search/indexing/test_indexers.py: Adapt import to new module name
+
+2008-08-26 14:54  dwaynebailey
+
+	* convert/po2oo.py, convert/xliff2oo.py: Allow .sdf files as
+	  templates and output for onefile OOo conversion. Fixes bug 487
+
+2008-08-26 14:53  friedelwolff
+
+	* search/indexing: Restore translate/search/indexer of revision
+	  8187 at translate/search/indexing to maintain version history
+
+2008-08-26 14:50  friedelwolff
+
+	* search/indexer: Remove directories in incorrect state after
+	  directory rename git-svn (version history was discarded)
+
+2008-08-26 14:49  friedelwolff
+
+	* search/indexing: Remove directories in incorrect state after
+	  directory rename git-svn (version history was discarded)
+
+2008-08-26 14:44  friedelwolff
+
+	* search/indexing/CommonIndexer.py,
+	  search/indexing/PyLuceneIndexer.py,
+	  search/indexing/PyLuceneIndexer1.py,
+	  search/indexing/XapianIndexer.py, search/indexing/__init__.py,
+	  search/indexing/test_indexers.py: Remove files that were
+	  incorrectly added by git-svn (version history was discarded)
+
+2008-08-26 14:37  winterstream
+
+	* search/indexer/CommonIndexer.py,
+	  search/indexer/PyLuceneIndexer.py,
+	  search/indexer/PyLuceneIndexer1.py,
+	  search/indexer/XapianIndexer.py, search/indexer/__init__.py,
+	  search/indexer/test_indexers.py, search/indexing,
+	  search/indexing/CommonIndexer.py,
+	  search/indexing/PyLuceneIndexer.py,
+	  search/indexing/PyLuceneIndexer1.py,
+	  search/indexing/XapianIndexer.py, search/indexing/__init__.py,
+	  search/indexing/test_indexers.py: Rename the module named indexer
+	  to indexing.
+
+2008-08-26 08:09  winterstream
+
+	* misc/quote.py: dict.fromkeys(lst).keys() is equal to lst, but
+	  slower! So we'll just substitute
+	  and gain speed!
+
+2008-08-25 22:31  sumpfralle
+
+	* storage/versioncontrol/__init__.py,
+	  storage/versioncontrol/cvs.py, storage/versioncontrol/git.py,
+	  storage/versioncontrol/git_old.py: versioncontrol interface:
+	  * simplify chdir to specific working directories for different
+	  VCS
+	  (based on a patch of Wynand Winterbach)
+	  * remove obsolete "git_old" module
+
+2008-08-25 15:41  dwaynebailey
+
+	* storage/properties.py: Revert r7983 seems those docs just went
+	  and disappeared
+
+2008-08-25 15:37  walter_l
+
+	* storage/test_mo.py: Commented out a test-case, because the
+	  hash-size is different compared to gettext,
+	  since we're not counting untranslated units.
+
+2008-08-25 15:35  walter_l
+
+	* storage/mo.py: Applied sumpfralle's patch
+	  (http://bugs.locamotion.org/attachment.cgi?id=214&action=view) to
+	  use
+	  prime numbers in hashing .mo files.
+
+2008-08-25 15:34  friedelwolff
+
+	* CREDITS: Credit Walter Leibbrandt and Wynand Winterbach
+
+2008-08-25 11:24  walter_l
+
+	* storage/test_mo.py: Fixed .mo test to anticipate the fact that
+	  pocompile ignores empty .po files.
+
+2008-08-25 10:58  walter_l
+
+	* storage/test_mo.py: Cosmetic changes - removed unnecessary
+	  trailing spaces.
+
+2008-08-22 16:40  winterstream
+
+	* storage/statsdb.py: filetotals should return an empty dictionary
+	  if it fails to compute
+	  the stats for a file. This is what pocount expects, since
+	  otherwise
+	  pocount reports stats for non-translation files.
+
+2008-08-21 15:32  friedelwolff
+
+	* __version__.py: up the build number
+
+2008-08-21 15:05  friedelwolff
+
+	* misc/progressbar.py: Fix the example code to run
+
+2008-08-20 15:34  friedelwolff
+
+	* __version__.py: Version 1.2-beta1
+
+2008-08-20 11:36  friedelwolff
+
+	* storage/mo.py: Fix indentation, typo, stale comment about not
+	  support hash tables
+
+2008-08-20 10:56  friedelwolff
+
+	* convert/pot2po.py: Increase the length of translations considered
+	  for reuse from the old PO file (this does not affect the limits
+	  of the TM macher). This mostly fixes bug 346.
+
+2008-08-19 14:51  friedelwolff
+
+	* storage/statsdb.py: Remove the use of collections.defaultdict
+	  (only available from Python 2.5)
+
+2008-08-19 09:43  friedelwolff
+
+	* tools/poterminology.py: Support pot files
+
+2008-08-15 15:51  walter_l
+
+	* tools/poterminology.py: Set stopwords-en to be loaded by default
+	  in poterminology.py unless -S was specified.
+
+2008-08-15 14:54  walter_l
+
+	* share, share/stoplist-en: Added translate/share and included its
+	  content as data files in setup.py.
+
+2008-08-15 12:38  winterstream
+
+	* storage/statsdb.py: Renamed emptystats to emptyfiletotals so that
+	  there is symmetry in the
+	  naming of the functions which return empty stats structures.
+	  
+	  Let emptyfilechecks return a defaultdict so that other code won't
+	  fail
+	  when trying to access tests which are non-existant.
+	  
+	  Finally, directorytotals - which was never used - was removed.
+
+2008-08-15 11:28  friedelwolff
+
+	* search/match.py: Make matcher a new-style class
+
+2008-08-15 10:38  friedelwolff
+
+	* convert/test_po2xliff.py: Rewrite the testing for the approved
+	  attribute slightly to also work with left out attributes (meaning
+	  'no' - not approved)
+
+2008-08-15 10:37  friedelwolff
+
+	* storage/xliff.py: Don't set the approved attribute unnecessarily.
+	  Before this could add an approved=no where there was nothing
+	  before (defaulting to no according to the XLIFF specification)
+
+2008-08-14 23:36  sumpfralle
+
+	* search/indexer/CommonIndexer.py, search/indexer/test_indexers.py:
+	  add support for multiple terms in a field (given as a list)
+
+2008-08-14 23:31  sumpfralle
+
+	* search/indexer/CommonIndexer.py,
+	  search/indexer/PyLuceneIndexer.py,
+	  search/indexer/PyLuceneIndexer1.py,
+	  search/indexer/XapianIndexer.py, search/indexer/test_indexers.py:
+	  add support for unicode terms and a corresponding test
+
+2008-08-14 14:33  friedelwolff
+
+	* TESTING: Some notes for testing. See bug 475 for the inspiration.
+
+2008-08-14 14:28  friedelwolff
+
+	* CREDITS: Expand Alexander Dupuy's activities
+
+2008-08-14 14:10  friedelwolff
+
+	* filters/checks.py: [Contributed by Alexander Dupuy] Fix
+	  runtests() for testing from __main__.
+
+2008-08-14 14:05  friedelwolff
+
+	* filters/checks.py: [Contributed by Alexander Dupuy] Be more
+	  lenient in the simplecaps test. This fixes the currently failing
+	  test.
+
+2008-08-14 14:02  friedelwolff
+
+	* filters/checks.py, filters/test_checks.py: [Contributed by
+	  Alexder Dupuy] Support omitting format specifiers in plural form
+	  translations. Check bug 475.
+
+2008-08-14 13:57  friedelwolff
+
+	* filters/checks.py: Only support unicode.isupper since input must
+	  be unicode strings
+
+2008-08-12 11:36  friedelwolff
+
+	* filters/checks.py: [Contributed by Alexader Dupuy] Return the
+	  correct filterresult if a test failed without filtermessages
+	  (when no FilterFailure) is raised). See bug 345 for more detail.
+
+2008-08-12 11:33  friedelwolff
+
+	* filters/test_checks.py: Augment the spellcheck test to more
+	  deliberately show what we want. The test broke if you happened to
+	  have 'Mozilla' in your personal wordlist for aspell for Afrikaans
+	  where you execute the tests.
+
+2008-08-08 15:55  dwaynebailey
+
+	* storage/wordfast.py: Python <2.5 needs us to be more specific
+	  about the dialect options. The missing requirements
+	  are now added which should prevent failure in factory.py.
+
+2008-08-06 13:33  dwaynebailey
+
+	* storage/wordfast.py: Add a Wordfast CSV dialect. This solves bug
+	  #472.
+	  * Wordfast now correctly handles the roundtripping of quoted
+	  characters.
+	  * It also sorts out a newline issue.
+
+2008-08-05 10:05  dwaynebailey
+
+	* tests/xliff_conformance/test_xliff_conformance.py: Ensure we can
+	  run the test from outside of the test directory
+
+2008-08-04 18:09  dwaynebailey
+
+	* storage/properties.py: Update reference to .properties
+	  specification
+
+2008-08-04 18:06  dwaynebailey
+
+	* storage/dtd.py: Check the DTD file for validity by parsing it
+	  returing __str__
+
+2008-08-04 10:35  winterstream
+
+	* tests/xliff_conformance/test_xliff_conformance.py: Schema
+	  validation is now done with lxml's facilities instead of by
+	  invoking
+	  xmllint.
+
+2008-08-04 10:26  winterstream
+
+	* storage/xliff.py: Modified the XLIFF output to conform to the
+	  XLIFF 1.1 schema.
+
+2008-08-04 10:02  dwaynebailey
+
+	* storage/lisa.py, storage/xliff.py: Fix FutureWarning error by
+	  using: if elem is not None
+
+2008-08-04 09:14  winterstream
+
+	* tests/xliff_conformance/af-pootle.po,
+	  tests/xliff_conformance/test_xliff_conformance.py: Added a test
+	  to check the output of po2xliff. Sadly, it currently fails,
+	  which means that we're outputtting invalid XLIFF files.
+
+2008-08-04 09:02  winterstream
+
+	* tests, tests/xliff_conformance,
+	  tests/xliff_conformance/en-US.sdf,
+	  tests/xliff_conformance/test_xliff_conformance.py,
+	  tests/xliff_conformance/xliff-core-1.1.xsd: Added a basic
+	  functional test to ensure that our tools produce valid
+	  XLIFF 1.1 files.
+	  
+	  Currently, there is only one test, which uses oo2xliff to convert
+	  an
+	  OpenOffice.org SDF file to a set of XLIFF files. xmllint then
+	  checks
+	  each of these files against the XLIFF 1.1 Schema.
+
+2008-08-04 08:57  dwaynebailey
+
+	* tools/podebug.py: Create class methods that will return available
+	  rewrite functions and ignore rules. Adapt optparse section to use
+	  these functions.
+
+2008-08-04 08:54  dwaynebailey
+
+	* tools/podebug.py: Add Unicode rewrite style. This converts all
+	  plain ASCII chars to characters in the Unicode range that look
+	  the same as the ASCII. This would allow a translator or
+	  programmer to build a test translation that can validate the use
+	  of Unicode characters in translated strings.
+
+2008-07-24 20:11  friedelwolff
+
+	* lang/data.py: [Contributed by Suresh Chandrasekharan] Move the
+	  language matching code from Pootle to the toolkit
+
+2008-07-23 17:09  sumpfralle
+
+	* storage/versioncontrol/svn.py: [Contributed by Daniel Schafer]
+	  add versioned svn property "translate:author"
+
+2008-07-21 00:35  sumpfralle
+
+	* storage/versioncontrol/__init__.py,
+	  storage/versioncontrol/bzr.py, storage/versioncontrol/cvs.py,
+	  storage/versioncontrol/darcs.py, storage/versioncontrol/git.py,
+	  storage/versioncontrol/git_old.py, storage/versioncontrol/hg.py,
+	  storage/versioncontrol/svn.py: add support for the 'author' tag
+	  to various revision control systems (contributed by Miklos Vajna)
+
+2008-07-18 12:40  winterstream
+
+	* storage/statsdb.py: Added a default field to emptystats()
+
+2008-07-17 17:46  winterstream
+
+	* storage/test_statsdb.py: Updated the statsdb test to reflect the
+	  change in the database layout
+
+2008-07-17 17:45  winterstream
+
+	* storage/statsdb.py: Added these functions to allow users of the
+	  stats code to
+	  use default values for the various stats functions. This
+	  is useful if an error is raised when
+
+2008-07-17 17:44  winterstream
+
+	* storage/statsdb.py: Removed the HORRIBLE hack whereby one could
+	  pass parameters to the stats
+	  code in order to get it not to throw an exception.
+	  
+	  I ought to have my coding licence revoked. But at least until
+	  then, I
+	  can try to restore my karma by restoring the code to a better
+	  state.
+	  
+	  So anyway, if you call one of the stats functions on a
+	  non-existant or
+	  illegal file, it's your responsibility to deal with the
+	  exceptions
+	  that might pop out.
+
+2008-07-17 17:43  winterstream
+
+	* storage/statsdb.py: Simplified the stats handling code related to
+	  suggestion files.
+	  
+	  If a user modifies a suggestion file without using our tools,
+	  she simply has to ask the toolkit to recompute the stats (and
+	  this will only affect the has-suggestion test). If she doesn't
+	  the toolkit will have out-of-date suggestion stats, but that's
+	  okay.
+
+2008-07-17 17:43  winterstream
+
+	* storage/statsdb.py: Instead of storing a Python tuple in the
+	  database, simply store
+	  the data into two separate columns.
+
+2008-07-17 17:12  dwaynebailey
+
+	* tools/podebug.py: Add Mock Swedish rewrite style
+
+2008-07-17 16:57  dwaynebailey
+
+	* storage/factory.py, storage/mo.py, storage/pocommon.py,
+	  storage/tbx.py, storage/tmx.py, storage/wordfast.py,
+	  storage/xliff.py: Implent a function to return all known
+	  multilingual formats, their extensions and mimetypes
+	  Add names to formats (to be localised sometime in the future)
+	  Add missing extensions and mimetypes
+	  Remove knowledge for formats from virtaal
+
+2008-07-17 14:53  friedelwolff
+
+	* storage/base.py: Keep a reference in unit._store to the
+	  containing translation store. Provide accessors in the unit class
+	  that enables us to access the source and target language of the
+	  containing document.
+
+2008-07-17 14:21  friedelwolff
+
+	* storage/cpo.py: Provide access to the libgettextpo version and
+	  use this to enable workarounds
+	  for bugs related to notes in certain libgettextpo versions.
+	  
+	  [Contributed by George Yoshikazu Kussumoto as part of GSoC2008]
+
+2008-07-17 13:01  friedelwolff
+
+	* storage/lisa.py: Inherit base.py's addunit() instead of
+	  duplicating some of it here
+
+2008-07-17 12:58  friedelwolff
+
+	* storage/lisa.py: Reword parameter in setsource to text to align
+	  more with settarget()
+
+2008-07-17 08:42  sumpfralle
+
+	* storage/versioncontrol/bzr.py: fix typo in bzr module
+
+2008-07-17 08:32  friedelwolff
+
+	* storage/base.py: Initialise .sourcelanguage and .targetlanguage
+	  to None. They are mostly not yet used anyway.
+
+2008-07-17 08:09  friedelwolff
+
+	* convert/oo2po.py, convert/oo2xliff.py: Set the source and target
+	  language of the output files
+
+2008-07-17 08:07  friedelwolff
+
+	* convert/oo2xliff.py: Merge in changes in handling of the input
+	  filename from oo2po.py
+
+2008-07-17 08:02  friedelwolff
+
+	* convert/oo2xliff.py: Merge in changes in error messages from
+	  oo2po.py
+
+2008-07-17 07:58  friedelwolff
+
+	* tools/pogrep.py: Typo in variable names
+
+2008-07-17 07:55  friedelwolff
+
+	* tools/pogrep.py: Set the source and target language of the
+	  filtered file for the sake of formats where this matters.
+
+2008-07-17 07:51  friedelwolff
+
+	* filters/pofilter.py: Set the source and target language of the
+	  filtered file for the sake of formats where this matters.
+
+2008-07-17 07:44  friedelwolff
+
+	* storage/base.py, storage/lisa.py: Move .setsourcelanguage() and
+	  .settargetlanguage() from lisa.py to base.py
+
+2008-07-17 07:41  friedelwolff
+
+	* storage/lisa.py: Add a parameter to .addunit() to indicate if the
+	  unit needs to be added to the XML structure
+
+2008-07-17 07:40  friedelwolff
+
+	* storage/lisa.py: +Helper fucntion to get the xml:lang attribute
+	  of an lxml node
+
+2008-07-17 07:38  friedelwolff
+
+	* storage/test_mo.py: Rewrite file access for proper functioning
+	  with py.test. +More debugging information.
+
+2008-07-14 09:33  winterstream
+
+	* storage/base.py, storage/csvl10n.py, storage/mo.py,
+	  storage/pocommon.py, storage/qm.py, storage/tbx.py,
+	  storage/tmx.py, storage/wordfast.py, storage/xliff.py: Added
+	  mimetype and file extension information for the stores.
+
+2008-07-11 17:31  friedelwolff
+
+	* CREDITS: Credit Alexander Dupuy, Danschafer and Geoffrey
+	  Hutchison
+
+2008-07-11 17:16  danschafer
+
+	* convert/test_html2po.py, storage/html.py: Modifications to
+	  html.py and test_html2po.py related to PHP parsing; see
+	  https://bugzilla.mozilla.org/show_bug.cgi?id=437342
+
+2008-07-04 03:37  sumpfralle
+
+	* storage/versioncontrol/git.py, storage/versioncontrol/git_old.py:
+	  for git v1.5.2 (and below): chdir to the directory of the target
+	  file before executing git
+
+2008-07-04 02:16  sumpfralle
+
+	* storage/versioncontrol/__init__.py: catch OSError (e.g.
+	  executable not found) when using "subprocess" for execution -
+	  this simplifies error handling for all RCS modules
+
+2008-07-04 02:00  sumpfralle
+
+	* storage/versioncontrol/__init__.py,
+	  storage/versioncontrol/git.py, storage/versioncontrol/git_old.py:
+	  add "git_old" (unfinished) to the repository
+	  add version checks for the two available git modules
+
+2008-07-04 01:37  sumpfralle
+
+	* storage/versioncontrol/bzr.py, storage/versioncontrol/cvs.py,
+	  storage/versioncontrol/darcs.py, storage/versioncontrol/git.py,
+	  storage/versioncontrol/hg.py, storage/versioncontrol/svn.py: fix
+	  misleading variable name
+
+2008-07-04 01:32  sumpfralle
+
+	* storage/versioncontrol/__init__.py,
+	  storage/versioncontrol/bzr.py, storage/versioncontrol/cvs.py,
+	  storage/versioncontrol/darcs.py, storage/versioncontrol/git.py,
+	  storage/versioncontrol/hg.py, storage/versioncontrol/svn.py: add
+	  "is_available" function to all version control modules
+	  (this allows separate modules for different versions of an RCS
+	  client)
+	  
+	  This change should also speed up version control handling in
+	  general, since
+	  version control systems that are not installed (-> no local
+	  client available)
+	  are ignored after initialization.
+
+2008-07-04 01:04  sumpfralle
+
+	* storage/versioncontrol/__init__.py: small improvements of the
+	  version control systems handling:
+	  - fix improper except statement (exceptions tuple instead of a
+	  list)
+	  - avoid lists as default parameter values
+	  - add function for collecting the list of available version
+	  control systems
+	  - print the list of available VCS if __init__.py is executed
+	  without parameters
+
+2008-07-02 23:48  sumpfralle
+
+	* storage/versioncontrol/git.py: fix git support for v1.5.3 (or
+	  higher) by setting "--work-tree"
+	  this patch was contributed by Miklos Vajna
+
+2008-07-01 20:08  winterstream
+
+	* storage/statsdb.py: Improved the mod_info storage scheme to store
+	  a tuple of the mtime and size of a file
+	  instead of the truly ugly integer scheme that I cooked up in what
+	  could only have been
+	  the result of too many hours of coding (and hence the concomitant
+	  loss of reason).
+
+2008-07-01 20:06  winterstream
+
+	* storage/statsdb.py: _getfileid of a directory will raise an
+	  AssertionError. We
+	  deal with this by adding AssertionError to the list of
+	  exceptions caught in _getfileid.
+
+2008-06-24 13:11  winterstream
+
+	* storage/test_mo.py: Added a test to ensure that the output of
+	  msgfmt and pocompile are identical for
+	  files of 1, 2, 3, 4 and 5 units.
+
+2008-06-23 12:49  winterstream
+
+	* storage/statsdb.py: Modified get_mod_info to raise an exception
+	  when it is passed a directory.
+
+2008-06-23 12:47  winterstream
+
+	* storage/base.py, storage/pypo.py, storage/statsdb.py: Added some
+	  robustness to the stasistics code to handle corrupt files.
+	  The boolean parameter errors_return_empty can be passed to a
+	  number
+	  of the methods in Statdb; if errors_return_empty is true, then
+	  they
+	  will not raise exceptions, but instead return empty or zero
+	  values.
+	  
+	  Created a ParseError exception which should be raised by parsers
+	  which
+	  run into parsing problems. So far, only pypo.py does this (and in
+	  a
+	  somewhat rudimentary way).
+
+2008-06-21 23:14  sumpfralle
+
+	* storage/test_base.py: revert r7643 - the comment was obsolete due
+	  to the previous commit r7635
+	  sorry for the noise!
+
+2008-06-21 11:18  sumpfralle
+
+	* storage/test_base.py: test_tmx: add a comment regarding a failed
+	  test
+
+2008-06-21 10:50  sumpfralle
+
+	* convert/po2html.py: po2html: add comment for failed test
+
+2008-06-21 10:17  sumpfralle
+
+	* convert/test_dtd2po.py: added comment to a failed test
+
+2008-06-21 09:43  sumpfralle
+
+	* search/indexer/XapianIndexer.py, search/indexer/test_indexers.py:
+	  remove references to obsolete xapian (v0.x) interface
+
+2008-06-21 09:42  sumpfralle
+
+	* search/indexer/__init__.py: fix unsafe use of a default argument
+
+2008-06-20 23:13  sumpfralle
+
+	* misc/zipfileext.py: fix test for python2.5
+
+2008-06-20 22:43  sumpfralle
+
+	* storage/test_directory.py: fix tests: directory
+
+2008-06-20 22:30  sumpfralle
+
+	* storage/cpo.py: add comments
+	  add a note regarding a difference between the pypo and the cpo
+	  implementation
+
+2008-06-20 18:32  friedelwolff
+
+	* storage/test_tmx.py: Leave the target out entirely to satisfy the
+	  expectations of test_base.py. This fixes the last broken test.
+
+2008-06-20 18:30  friedelwolff
+
+	* storage/test_tmx.py: Leave the target segment empty to satisfy
+	  the expectations of test_base.py. This fixes a broken test.
+
+2008-06-20 17:38  walter_l
+
+	* storage/mo.py: Attempt to fix bug #326 based on the gettext
+	  source.
+
+2008-06-20 16:05  sumpfralle
+
+	* storage/cpo.py, storage/test_po.py: ignore notes without
+	  non-space characters (Closes: #417)
+
+2008-06-20 15:54  sumpfralle
+
+	* storage/cpo.py: fixed: the first character of each note was
+	  cutted - this should only happen for a space character
+
+2008-06-20 14:18  friedelwolff
+
+	* filters/checks.py: Fix an issue introduced in commit 7623 - don't
+	  raise FilterFailure with an empty list of messages.
+
+2008-06-20 14:15  sumpfralle
+
+	* storage/versioncontrol/git.py: add comment for git version
+	  requirement (Closes: #347)
+
+2008-06-20 13:47  friedelwolff
+
+	* filters/checks.py: [Contributed by Nicolas François] Test all
+	  plural forms of a plural unit, even if some errors occurred in
+	  the first form. Combine all messages into one FilterFailure which
+	  is propagated up. This completely fixes bug 345.
+
+2008-06-20 13:01  friedelwolff
+
+	* filters/checks.py: [Contributed by Nicolas François] Test all
+	  plural forms of a plural unit, even if some errors occurred in
+	  the first form. Combine all messages into one FilterFailure which
+	  is propagated up. This completely fixes bug 345.
+
+2008-06-20 12:14  friedelwolff
+
+	* filters/checks.py: Convert each plural form to unicode before
+	  passing to individual tests. This fixes the worst part of bug
+	  122. More to come.
+
+2008-06-20 11:30  walter_l
+
+	* storage/poheader.py, storage/test_poheader.py: Moved
+	  translate.storage.poheader.poheader.tzstring() out of its parent
+	  class to
+	  translate.storage.poheader.tzstring() (directly to the poheader
+	  sub-module).
+	  The function does not use the class or an instance, anyway.
+
+2008-06-20 09:21  walter_l
+
+	* filters/checks.py, filters/test_checks.py: Replaced usage of
+	  exception.message with exception.args[0], which is equivalent
+	  within this commit's context.
+	  
+	  This fixes bug 424.
+
+2008-06-19 23:28  sumpfralle
+
+	* search/indexer/test_indexers.py: indexer: adapted tests for new
+	  directory layout
+
+2008-06-19 20:52  sumpfralle
+
+	* search/indexer/CommonIndexer.py,
+	  search/indexer/PyLuceneIndexer.py,
+	  search/indexer/XapianIndexer.py, search/indexer/__init__.py: use
+	  different sub-directories for databases of different indexing
+	  engines
+	  rename the indexing directory from ".poindex-PROJECT-LANGUAGE" to
+	  ".translation_index"
+	  note for UPGRADING: you have to remove old indexing directories
+	  manually
+	  
+	  these changes are meant to ease migrations from one indexing
+	  engine to another and to
+	  allow different indexing engines to be on the same server
+
+2008-06-18 14:12  winterstream
+
+	* filters/checks.py: Moved the results_cache clearing code to the
+	  appropriate method. It should
+	  afterall be in the run_filters method of the base class.
+
+2008-06-14 09:20  friedelwolff
+
+	* search/indexer/__init__.py: Merge new indexing work from
+	  translate-search-indexer-generic-merging branch. A total rewrite
+	  of __init__ unrelated to the previous implementation.
+
+2008-06-14 09:18  friedelwolff
+
+	* search/indexer/__init__.py: Remove old indexing code inherited
+	  from jToolkit.
+
+2008-06-14 09:15  friedelwolff
+
+	* search/indexer/XapianIndexer.py: Merge new indexing work from
+	  translate-search-indexer-generic-merging branch. Trying to
+	  maintain the version history by copying.
+
+2008-06-14 09:15  friedelwolff
+
+	* search/indexer/test_indexers.py: Merge new indexing work from
+	  translate-search-indexer-generic-merging branch. Trying to
+	  maintain the version history by copying.
+
+2008-06-14 09:14  friedelwolff
+
+	* search/indexer/PyLuceneIndexer.py: Merge new indexing work from
+	  translate-search-indexer-generic-merging branch. Trying to
+	  maintain the version history by copying.
+
+2008-06-14 09:14  friedelwolff
+
+	* search/indexer/PyLuceneIndexer1.py: Merge new indexing work from
+	  translate-search-indexer-generic-merging branch. Trying to
+	  maintain the version history by copying.
+
+2008-06-14 09:13  friedelwolff
+
+	* search/indexer/CommonIndexer.py: Merge new indexing work from
+	  translate-search-indexer-generic-merging branch. Trying to
+	  maintain the version history by copying.
+
+2008-06-12 13:09  friedelwolff
+
+	* __version__.py: Version 1.2-alpha3
+
+2008-06-12 11:12  friedelwolff
+
+	* lang/common.py: Ensure that the sentence iterator works if passed
+	  None (possible with some translation formats)
+
+2008-06-12 10:46  friedelwolff
+
+	* storage/tmx.py: Implement .copy() for the TMX translation unit.
+	  This fixes bug 414.
+
+2008-06-12 09:34  friedelwolff
+
+	* storage/pypo.py: While we don't have an encoding for processing a
+	  header, let's decode it as ASCII while ignoring errors. We redo
+	  it later properly, so this is just to get the initial encoding.
+
+2008-06-12 09:32  friedelwolff
+
+	* storage/test_poheader.py: Remove failing test for Cordoba,
+	  Argentina - probably a dailight savings issue, or something.
+	  Probably not so interesting while the others all pass.
+
+2008-06-11 13:29  friedelwolff
+
+	* README: Explain Windows installation better
+
+2008-06-11 10:28  friedelwolff
+
+	* misc/_csv.c, misc/csv.py, storage/csvl10n.py: Remove old CSV
+	  modules that are part of Python since version 2.3 (the minimum we
+	  support). Adapt improts.
+
+2008-06-10 08:46  friedelwolff
+
+	* lang/common.py: Trim some docstrings to sane widths
+
+2008-06-09 16:44  winterstream
+
+	* filters/checks.py: A number of methods in UnitChecker were called
+	  very, very frequently
+	  and this contributed a lot to the running time of checks.
+	  
+	  Now, the results of a number of these methods are memoized (by
+	  the
+	  decorator cache_results). The cached results are cleared every
+	  time
+	  that TranslationChecker.run_test is called.
+	  
+	  On a small OpenOffice project, this has sliced the computation
+	  time
+	  of stats quite a lot and it should never result in a slow-down.
+	  
+	  Note that the decorator is deliberately specialized to accept
+	  only
+	  single argument methods. This is to avoid the runtime cost of
+	  unpacking
+	  arbitrary numbers of parameters.
+
+2008-06-09 12:35  winterstream
+
+	* filters/decoration.py, filters/test_checks.py: An underscore is a
+	  valid variable name character. filtermarkedvariables did not
+	  allow
+	  for this. The current code would work for variable names with
+	  underscores, if these
+	  variables were the last tokens in the string; the unit tests
+	  happened only to have
+	  tested this case, which made them pass.
+	  
+	  The fix is simple: simply add a check for the underscore
+	  character.
+	  
+	  Also added unit tests to cover this bug.
+
+2008-06-09 12:25  winterstream
+
+	* storage/pypo.py: Read the first unit from a po file without
+	  decoding the characters;
+	  that is, everything is read into a Python str type. Then check to
+	  see if there is a header; if there is, then try to determine the
+	  file encoding from that and set the file encoding. Otherwise,
+	  leave
+	  the file encoding at the default (UTF-8).
+	  
+	  Then, decode the file contents and restart the parsing.
+	  
+	  Originally, the parser would assume a UTF-8 encoding until it hit
+	  a Content-Type declaration which specified the file encoding.
+	  Only
+	  then would it change the decoding scheme.
+	  
+	  This worked fine for non-UTF-8 files which contained only ASCII
+	  characters in the header (which appeared before the Content-Type
+	  declaration), but raised an exception if any non-ASCII characters
+	  appeared there, since a UTF decoding error occured.
+	  
+	  This patch both simplifies the original code and fixed this bug.
+
+2008-06-09 12:21  winterstream
+
+	* storage/pypo.py: Po parsing now works directly with an array of
+	  lines. The previous
+	  version split the entire file contents into an array of lines,
+	  only
+	  to join subarrays into strings, which it would pass to the unit
+	  parser,
+	  which in its turn would split the strings into arrays of lines.
+	  This
+	  inefficiency was remedied by simply factoring out the line array
+	  handling code of the unit parsing code and calling that directly
+	  on the main array of lines (from the file parsing method).
+
+2008-06-06 14:25  dwaynebailey
+
+	* filters/checks.py, filters/test_checks.py: Make all error
+	  messages Unicode.
+	  Adapt test and remove function that convert Unicode error
+	  messages
+
+2008-06-06 09:24  winterstream
+
+	* storage/test_statsdb.py: Added some tests for StatsDB.
+
+2008-06-06 09:23  winterstream
+
+	* storage/statsdb.py: StatsDb._getstoredfileid could return None.
+	  This was a problem in methods which
+	  used _getstoredfileid, since some expected the return value not
+	  to be None.
+	  
+	  It turns out that there is no use for a None return value. So if
+	  there is no
+	  stored fileid, then we simply generate it with cachestore. Since
+	  we're not just
+	  returning stored fileids, _getstoredfileid was renamed to
+	  _getfileid. Naturally,
+	  those methods that handled the case where None was returned could
+	  have that code
+	  removed.
+
+2008-06-06 09:23  winterstream
+
+	* storage/statsdb.py: Originally, statsdb compared the mtime of a
+	  file to the mtime it had stored in the DB to see whether the file
+	  changed.
+	  
+	  On some file systems, mtime only has one second resolution, which
+	  means
+	  that if a file changes quickly enough after the statsdb has
+	  stored its
+	  mtime, the statsdb won't realize that the file has changed, and
+	  it will
+	  therefore supply incorrect stats about the file.
+	  
+	  In order for this to be ameliorated, we now also take the file
+	  size into
+	  account and we store a value which contains mtime bits as well as
+	  file
+	  size bits into the database. The only files which can now slip
+	  past the
+	  system are files which are modified soon enough and which retain
+	  their
+	  sizes. And honestly, such files, if they are valid translation
+	  files,
+	  are so unlikely to contain significant changes which maintain the
+	  file
+	  size that they can be ignored.
+
+2008-06-06 09:22  winterstream
+
+	* storage/poheader.py: Change poheader to a new-style class.
+
+2008-06-05 17:10  friedelwolff
+
+	* convert/test_ts2po.py: Add new commandline option
+
+2008-06-05 16:18  friedelwolff
+
+	* storage/poheader.py: Fix dictionary used as function argument.
+	  This fixes the broken test in test_pomerge.
+
+2008-06-05 16:15  friedelwolff
+
+	* tools/poterminology.py: Some small, mostly cosmetic changes
+
+2008-06-05 14:13  friedelwolff
+
+	* convert/ts2po.py: Handle duplicates properly [contributed by
+	  Geoffrey Hutchison]
+
+2008-06-05 08:18  dwaynebailey
+
+	* filters/test_checks.py: Add ability to validate that is we fail
+	  or fail_serious that the error message is correct.
+	  If the message is not correct we will still fail, also added
+	  tests to exercise this new path in both type.
+
+2008-06-04 18:56  dwaynebailey
+
+	* filters/checks.py, filters/test_checks.py: Don't spellcheck
+	  notranslatewords
+
+2008-06-04 11:43  friedelwolff
+
+	* filters/checks.py, filters/spelling.py: Improve the error
+	  checking in the case of absent checkers or absent dictionaries
+	  for specific languages
+
+2008-06-03 09:34  walter_l
+
+	* storage/cpo.py: One of two commits for bug 350's fix (other
+	  commit will be for Pootle).
+	  Use of the tempfile module has replaced the use of os.tmpnam(),
+	  which is apparently insecure.
+
+2008-06-02 13:44  friedelwolff
+
+	* storage/poheader.py: When merging headers in .mergeheaders(),
+	  take into account that the Plural-Forms header might not be there
+
+2008-05-30 18:36  dwaynebailey
+
+	* filters/checks.py: Initialise lang data first
+
+2008-05-30 18:35  dwaynebailey
+
+	* filters/checks.py: Fix brokeness
+
+2008-05-30 18:32  dwaynebailey
+
+	* filters/checks.py: Cleanup CheckerConfig initialisation by
+	  creating a method to initialise paramaters that can be set to a
+	  default value if none is supplied
+
+2008-05-30 18:30  dwaynebailey
+
+	* filters/checks.py: Cleanup CheckerConfig initialisation by
+	  creating a method to initialise lists
+
+2008-05-26 20:33  dwaynebailey
+
+	* misc/wStringIO.py: Fix indentation
+
+2008-05-26 20:32  dwaynebailey
+
+	* misc/test_zipfileext.py: Fix indentation
+
+2008-05-26 20:29  dwaynebailey
+
+	* misc/progressbar.py: Fix indentation
+
+2008-05-26 20:25  dwaynebailey
+
+	* misc/test_quote.py: Fix indentation
+
+2008-05-26 20:18  dwaynebailey
+
+	* misc/xmlwrapper.py: Fix whitespace indentation
+
+2008-05-26 20:14  dwaynebailey
+
+	* misc/quote.py: Fix some broken whitespace
+
+2008-05-26 20:11  dwaynebailey
+
+	* misc/optrecurse.py: Fix remaining whitespace issues
+
+2008-05-26 16:41  dwaynebailey
+
+	* filters/helpers.py: Remove isalnum_u - unused
+
+2008-05-26 10:52  friedelwolff
+
+	* search/match.py: Small cleanups and comments. A small improvement
+	  for the case where we already have MAX_CANDIDATES candidates
+	  (likely in some cases with pot2po where MAX_CANDIDATES==1, for
+	  example).
+
+2008-05-26 10:42  friedelwolff
+
+	* search/match.py: Replace the code that searches for the starting
+	  position of the search range with a binary search. Thisgives a
+	  noticable performance increase for a large TM.
+
+2008-05-26 09:54  winterstream
+
+	* storage/statsdb.py: Pootle requires a way to determine
+	  precomputed property values PER UNIT
+	  (as opposed to StatsCache.filestats which supplies only sets of
+	  unit
+	  indices which correspond to given properties). This is necessary
+	  for
+	  example, if one wants to compute the source word count of a unit.
+	  
+	  For this reason, StatsCache.unitstats was added to supply arrays
+	  which
+	  map unit indices to property values. This may therefore return
+	  dictionaries
+	  such as
+	  { 'sourcewordcount': [4, 1, 10, 20],
+	  'targetwordcount': [0, 0, 0, 0] }
+	  indicating that the source word count of unit 0 is 4, unit 1 is
+	  1, etc.
+	  and that the target word counts for all units are 0.
+
+2008-05-26 07:54  friedelwolff
+
+	* search/lshtein.py: Remove assert - gives small performance
+	  improvement, and we might end up doing these things with
+	  decorators later
+
+2008-05-23 13:33  dwaynebailey
+
+	* filters/checks.py, filters/helpers.py, filters/prefilters.py,
+	  filters/test_checks.py: Allow proper filtering of accelerators
+	  for test such as spell checking
+	  Adapted filteraccelerators to take an option paramater containing
+	  valid accelerators
+	  Changed multifilter to allow it to take other arguments that it
+	  would pass to the filter function
+	  Bug 395 has been raised to audit the use of filteraccelerators
+	  and perhaps change its behaviour to simply remove all
+	  accelerators not just valid accelerators.
+
+2008-05-22 07:51  dwaynebailey
+
+	* filters/checks.py, filters/decoration.py, filters/prefilters.py,
+	  filters/test_checks.py, filters/test_decoration.py,
+	  lang/common.py, lang/fi.py: Fixes bug 289
+	  Adds the concept of an validaccel list and checks found
+	  accelerators against this list.
+	  By default validaccel is None in which case the old codepath is
+	  followed, languages
+	  must override this setting to get language specific lists of
+	  acceptable characters.
+
+2008-05-15 15:59  friedelwolff
+
+	* misc/dictutils.py, misc/optrecurse.py, misc/quote.py,
+	  misc/xmlwrapper.py: Change spacing convention on inhouse files to
+	  be four spaces instead of two
+
+2008-05-15 15:23  friedelwolff
+
+	* storage/pypo.py: Remove possibility of joining with linebreaks in
+	  unquotefrompo(). Adapt last user to not use it.
+
+2008-05-14 08:50  friedelwolff
+
+	* filters/test_checks.py: Test some Vietnamese quoting issues that
+	  we didn't handle before
+
+2008-05-14 08:45  friedelwolff
+
+	* lang/fr.py: Implement punctuation translation for 'single' and
+	  `weird single' quoting -> French guillemets (« »)
+
+2008-05-14 08:42  friedelwolff
+
+	* lang/test_fr.py: Lots of more tests for French quoting,
+	  espacially 'single' and `weird single' quoting
+
+2008-05-14 08:37  friedelwolff
+
+	* lang/test_vi.py: Test Vietnamese quoting more by including
+	  'single' and `weird single' quoting in the tests
+
+2008-05-12 22:42  dwaynebailey
+
+	* filters/prefilters.py, filters/test_prefilters.py: Add tests for
+	  removekdecomments and assert input is unicode
+
+2008-05-12 10:18  friedelwolff
+
+	* filters/prefilters.py: Simplify filterwordswithpunctuation() -
+	  this fixes the failing unit test
+
+2008-05-12 09:06  friedelwolff
+
+	* storage/ts.py: Mention that the the currently supported .ts
+	  format is not the newest
+
+2008-05-12 09:04  friedelwolff
+
+	* lang/test_vi.py: Update tests to new punctuation spacing rules as
+	  explained by Clytie Siddall
+
+2008-05-12 09:02  friedelwolff
+
+	* lang/af.py, lang/am.py, lang/ar.py, lang/el.py, lang/fa.py,
+	  lang/fr.py, lang/he.py, lang/hy.py, lang/ja.py, lang/km.py,
+	  lang/ko.py, lang/ml.py, lang/ur.py, lang/vi.py, lang/zh.py:
+	  Removed unnecessary declerations of code, fullname, nplurals and
+	  pluralequation in the language modules. Also remove some unused
+	  imports.
+
+2008-05-11 23:53  dwaynebailey
+
+	* filters/decoration.py, filters/test_decoration.py: Add test for
+	  isvalidaccelerator
+
+2008-05-11 23:36  dwaynebailey
+
+	* filters/test_decoration.py: Add tests for getfunction()
+
+2008-05-11 23:28  dwaynebailey
+
+	* filters/test_decoration.py: Test getnumbers function
+
+2008-05-11 23:28  dwaynebailey
+
+	* filters/test_decoration.py: Test all sorts of spaces
+
+2008-05-11 22:43  dwaynebailey
+
+	* filters/checks.py: Spell checking is only in unicode because of
+	  earlier forceunicode so drop unicode checking and adapt message
+	  creation to be all unicode.
+
+2008-05-11 20:08  dwaynebailey
+
+	* filters/checks.py: Remove unicode manipulation from
+	  notranslatewords check. All tests are forced to unicode by
+	  forceunicode function so no asserts have been added.
+
+2008-05-11 20:03  dwaynebailey
+
+	* filters/autocorrect.py, filters/test_autocorrect.py: Remove old
+	  correct() which only did Unicode -> Str manipulations.
+	  Rename simplecorrect() -> correct() and only accept unicode
+	  strings.
+	  Change tests.
+
+2008-05-11 19:57  dwaynebailey
+
+	* filters/prefilters.py, filters/test_prefilters.py: Make
+	  filterwordwithpunctuation only work with Unicode strings
+
+2008-05-09 11:07  friedelwolff
+
+	* lang/vi.py: Rewrite punctuation transformation to not space '?',
+	  reuse the new fr.py code correctly
+
+2008-05-09 11:04  friedelwolff
+
+	* lang/fr.py: Factor out the guillemets transformation into a
+	  separate function for better reuse
+
+2008-05-09 10:45  friedelwolff
+
+	* lang/common.py, lang/factory.py: Move to using objects
+	  instantiated as singletons (per language)
+
+2008-05-09 09:58  friedelwolff
+
+	* storage/statsdb.py: Mark the _caches class variable as private
+
+2008-05-09 08:10  friedelwolff
+
+	* filters/decoration.py: Simplify getnumbers() to only work with
+	  unicode
+
+2008-05-05 14:19  friedelwolff
+
+	* filters/test_checks.py: Add failing test for endpunc in
+	  Vietnamese
+
+2008-05-05 14:18  friedelwolff
+
+	* filters/test_checks.py: Add a failing test for test_singlequoting
+
+2008-05-05 14:01  friedelwolff
+
+	* filters/checks.py: Add some TODO notes to improve the acronyms
+	  test
+
+2008-05-02 09:06  friedelwolff
+
+	* storage/tmx.py: Implement .istranslatable()
+
+2008-05-02 09:05  friedelwolff
+
+	* storage/tmx.py: Implement .getid()
+
+2008-05-02 08:04  friedelwolff
+
+	* convert/pot2po.py: Test that the inputpot actually has units
+	  before using them
+
+2008-05-02 08:03  friedelwolff
+
+	* convert/pot2po.py: Refactor code slightly to make direct use of
+	  previously created stores possible
+
+2008-05-02 07:14  friedelwolff
+
+	* storage/statsdb.py: Fix typo in comment
+
+2008-04-22 14:53  friedelwolff
+
+	* __version__.py: 1.2-alpha2
+
+2008-04-22 14:51  friedelwolff
+
+	* storage/oo.py: Add rules for handling <ref> and <references>
+	  found in OOo 3.0 translations
+
+2008-04-21 11:43  friedelwolff
+
+	* storage/wordfast.py: Fix epydoc type statement
+
+2008-04-18 08:37  dwaynebailey
+
+	* __version__.py: Well we're not really beta ready so lets be a
+	  little more honest and make this alpha.
+
+2008-04-18 08:16  dwaynebailey
+
+	* __version__.py: Up the version number for a release.
+
+2008-04-17 16:02  friedelwolff
+
+	* storage/mo.py: Fix wrongly encoded character in comments
+
+2008-04-14 07:37  dwaynebailey
+
+	* storage/rc.py: Manage -1 named enties properly by using the
+	  source text with spaces escaped with underscore
+
+2008-04-14 07:35  dwaynebailey
+
+	* storage/rc.py: Handle:
+	  * space at end of STRINGTABLE entities
+	  * A L"string" entry
+
+2008-04-14 07:32  dwaynebailey
+
+	* convert/po2rc.py: Add --lang and --sublang options to deal with
+	  the LANGUAGE entry
+
+2008-04-14 07:29  dwaynebailey
+
+	* convert/rc2po.py: Add 'nls' as an input format
+
+2008-04-14 06:15  friedelwolff
+
+	* storage/poheader.py: Ensure that Content-Type and
+	  Content-Transfer-Encoding is always set to sane values after a
+	  call to updateheader()
+
+2008-04-10 07:03  dwaynebailey
+
+	* convert/dtd2po.py, convert/html2po.py, convert/odf2po.py,
+	  convert/oo2po.py, convert/oo2xliff.py, convert/po2dtd.py,
+	  convert/po2html.py, convert/poreplace.py,
+	  convert/test_convert.py, convert/test_dtd2po.py,
+	  convert/test_html2po.py, convert/test_moz2po.py,
+	  convert/test_mozfunny2prop.py, convert/test_odf2po.py,
+	  convert/test_oo2po.py, convert/test_php2po.py,
+	  convert/test_po2dtd.py, convert/test_po2moz.py,
+	  convert/test_pot2po.py, convert/test_prop2po.py,
+	  convert/ts2po.py, convert/txt2po.py, convert/xliff2po.py,
+	  search/lshtein.py, search/match.py, storage/csvl10n.py,
+	  storage/dtd.py, storage/lisa.py, storage/poxliff.py,
+	  storage/pypo.py, storage/test_monolingual.py, storage/test_po.py,
+	  storage/test_pypo.py, storage/test_zipfile.py, storage/ts.py,
+	  tools/test_pocount.py, tools/test_pomerge.py: Fix indentation.
+	  All except misc/ now follow 4 space convention.
+
+2008-04-10 06:57  dwaynebailey
+
+	* convert/test_po2ts.py: Add test for --context option
+
+2008-04-09 12:58  dwaynebailey
+
+	* convert/roundtrip-OOo: Actually download the OOo SDF files in the
+	  roundtrip test.
+
+2008-04-06 19:34  dwaynebailey
+
+	* convert/rc2po.py: Add --charset option to rc2po. Defaults to
+	  cp1252, the default codepage
+	  for English.
+
+2008-04-06 19:31  dwaynebailey
+
+	* convert/po2rc.py: Add --charset output option to allow user to
+	  choose the output encoding, defaults to utf-8
+
+2008-04-06 19:27  dwaynebailey
+
+	* convert/po2rc.py, storage/rc.py: Store the actual match object
+	  with a unit
+	  Convert matches by replacing the value in the match with the
+	  translation, then replacing
+	  the actual match in the original text with the new string.
+	  Implemnt #pragma to ensure that the output rc can be in UTF-8
+
+2008-04-06 19:21  dwaynebailey
+
+	* storage/rc.py: After second language section drop all remaining
+	  blocks.
+
+2008-04-06 19:19  dwaynebailey
+
+	* storage/rc.py: Catch comments within DIALOG item names.
+
+2008-04-06 19:17  dwaynebailey
+
+	* storage/rc.py: Add escping for Python to RC conversion.
+
+2008-04-04 04:33  dwaynebailey
+
+	* convert/po2rc.py: Properly instantiate the rc store.
+
+2008-04-04 04:32  dwaynebailey
+
+	* convert/test_oo2po.py: Test for roundtripping OOo whitespace.
+	  Disabled for now because of some oo class issues.
+
+2008-04-03 06:58  friedelwolff
+
+	* tools/poterminology, tools/poterminology.py: [Contributed by
+	  Alexander Dupuy] poterminology: a terminology extraction tool
+	  with several options
+
+2008-04-02 15:21  dwaynebailey
+
+	* __init__.py: Fix hyperlink
+
+2008-03-28 14:18  dwaynebailey
+
+	* convert/test_po2dtd.py: Add test for bug 351
+
+2008-03-28 12:49  dwaynebailey
+
+	* convert/po2rc, convert/po2rc.py, convert/rc2po, convert/rc2po.py,
+	  storage/rc.py: Add rc2po implementation:
+	  * rc2po works well
+	  * po2rc is not complete (i.e. it doesn't work at all)
+
+2008-03-28 12:01  dwaynebailey
+
+	* convert/po2ini.py: Remove unused import
+
+2008-03-28 03:10  sumpfralle
+
+	* storage/versioncontrol/__init__.py, storage/versioncontrol/hg.py:
+	  added mercurial (hg) versioncontrol support (contributed by
+	  Miklos Vajna)
+
+2008-03-27 13:04  friedelwolff
+
+	* CREDITS: Credit Torsten Martinsen. Remove reference to cvs.
+
+2008-03-27 13:00  friedelwolff
+
+	* convert/po2ts.py: [Contributed by Torsten Martinsen] Add
+	  --context parameter to specify explicit context instead of
+	  obtaining it from the location (#:) comments. See bug 294.
+
+2008-03-27 07:18  friedelwolff
+
+	* README: Rewrite bug reporting section, pointing to the wiki
+
+2008-03-26 09:52  friedelwolff
+
+	* ChangeLog: Update Changelog before release of 1.1.1
+
 2008-03-18 21:26  friedelwolff
 
 	* lang/data.py: Correct plural information for Hungarian

Modified: translate-toolkit/branches/upstream/current/translate/__version__.py
URL: http://svn.debian.org/wsvn/translate-toolkit/branches/upstream/current/translate/__version__.py?rev=1409&op=diff
==============================================================================
--- translate-toolkit/branches/upstream/current/translate/__version__.py (original)
+++ translate-toolkit/branches/upstream/current/translate/__version__.py Sat Oct 11 15:15:59 2008
@@ -1,5 +1,5 @@
 #!/usr/bin/env python
 # -*- coding: utf-8 -*-
 """this file contains the version of translate"""
-ver = "1.2.0-rc1"
+ver = "1.2.0"
 build = 12001

Modified: translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-cleanup_translator_comments.html
URL: http://svn.debian.org/wsvn/translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-cleanup_translator_comments.html?rev=1409&op=diff
==============================================================================
--- translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-cleanup_translator_comments.html (original)
+++ translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-cleanup_translator_comments.html Sat Oct 11 15:15:59 2008
@@ -19,7 +19,7 @@
 
 <p>
 
-Translate Toolkit 1.1 saw source comments being concerted to developer comments instead of translator comments.
+Translate Toolkit 1.1 saw source comments being converted to developer comments instead of translator comments.
 </p>
 
 <p>

Modified: translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-creating_a_terminology_list_from_your_existing_translations.html
URL: http://svn.debian.org/wsvn/translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-creating_a_terminology_list_from_your_existing_translations.html?rev=1409&op=diff
==============================================================================
--- translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-creating_a_terminology_list_from_your_existing_translations.html (original)
+++ translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-creating_a_terminology_list_from_your_existing_translations.html Sat Oct 11 15:15:59 2008
@@ -27,7 +27,7 @@
 </p>
 
 <p>
-With existing translations you have embedded a list of valid translation.  This example will help you to extract the terms.  It is only the first step you will need to review the terms and must not regard this as a complete list.  ANd of course you would want to take your corrections and feed them back into the original translations.
+With existing translations you have embedded a list of valid translation.  This example will help you to extract the terms.  It is only the first step you will need to review the terms and must not regard this as a complete list.  And of course you would want to take your corrections and feed them back into the original translations.
 </p>
 
 </div>
@@ -37,7 +37,7 @@
 
 <p>
 
-These are the steps that we will undertake
+This describes a multi-stage process for extracting terminology from translation files.  It is provided for historical interest and completeness, but you will probably find that using <a href="toolkit-poterminology.html" class="wikilink1" title="toolkit-poterminology.html">poterminology</a> is easier and will give better results than following this process.
 
 </p>
 <ol>
@@ -54,7 +54,7 @@
 </ol>
 
 </div>
-<!-- SECTION "Quick Overview" [781-1136] -->
+<!-- SECTION "Quick Overview" [781-1363] -->
 <h2><a name="get_short_phrases_from_the_current_translations" id="get_short_phrases_from_the_current_translations">Get short phrases from the current translations</a></h2>
 <div class="level2">
 
@@ -71,7 +71,7 @@
 </p>
 
 </div>
-<!-- SECTION "Get short phrases from the current translations" [1137-1749] -->
+<!-- SECTION "Get short phrases from the current translations" [1364-1976] -->
 <h2><a name="remove_any_translations_with_issues" id="remove_any_translations_with_issues">Remove any translations with issues</a></h2>
 <div class="level2">
 
@@ -95,7 +95,7 @@
 </ul>
 
 </div>
-<!-- SECTION "Remove any translations with issues" [1750-2302] -->
+<!-- SECTION "Remove any translations with issues" [1977-2529] -->
 <h2><a name="create_a_compendium" id="create_a_compendium">Create a compendium</a></h2>
 <div class="level2">
 
@@ -116,7 +116,7 @@
 </p>
 
 </div>
-<!-- SECTION "Create a compendium" [2303-2789] -->
+<!-- SECTION "Create a compendium" [2530-3016] -->
 <h2><a name="split_the_file" id="split_the_file">Split the file</a></h2>
 <div class="level2">
 
@@ -148,7 +148,7 @@
 </p>
 
 </div>
-<!-- SECTION "Split the file" [2790-3301] -->
+<!-- SECTION "Split the file" [3017-3528] -->
 <h2><a name="dealing_with_the_fuzzies" id="dealing_with_the_fuzzies">Dealing with the fuzzies</a></h2>
 <div class="level2">
 
@@ -195,7 +195,7 @@
 </p>
 
 </div>
-<!-- SECTION "Dealing with the fuzzies" [3302-4720] -->
+<!-- SECTION "Dealing with the fuzzies" [3529-4947] -->
 <h2><a name="put_it_back_together_again" id="put_it_back_together_again">Put it back together again</a></h2>
 <div class="level2">
 <pre class="code">msgcat zulu-gnome-glossary-translated.po zulu-gnome-glossary-conflicts.po > zulu-gnome-glossary.po</pre>
@@ -206,7 +206,7 @@
 </p>
 
 </div>
-<!-- SECTION "Put it back together again" [4721-4951] -->
+<!-- SECTION "Put it back together again" [4948-5178] -->
 <h2><a name="create_other_formats" id="create_other_formats">Create other formats</a></h2>
 <div class="level2">
 
@@ -236,11 +236,11 @@
 </p>
 
 <p>
-<img src="images/smileys/fixme.gif" align="middle" alt="FIXME" /> here are scripts to archive that.
-</p>
-
-</div>
-<!-- SECTION "Create other formats" [4952-5564] -->
+<img src="images/smileys/fixme.gif" align="middle" alt="FIXME" /> need scripts to generate these formats.
+</p>
+
+</div>
+<!-- SECTION "Create other formats" [5179-5797] -->
 <h1><a name="the_work_has_only_just_begun" id="the_work_has_only_just_begun">The work has only just begun</a></h1>
 <div class="level1">
 
@@ -259,5 +259,5 @@
 </p>
 
 </div>
-<!-- SECTION "The work has only just begun" [5565-] --></body>
+<!-- SECTION "The work has only just begun" [5798-] --></body>
 </html>

Modified: translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-features.html
URL: http://svn.debian.org/wsvn/translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-features.html?rev=1409&op=diff
==============================================================================
--- translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-features.html (original)
+++ translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-features.html Sat Oct 11 15:15:59 2008
@@ -25,9 +25,11 @@
 </li>
 <li class="level2"><div class="li"> Mozilla: .properties, <acronym title="Document Type Definition">DTD</acronym>, <acronym title="Extensible HyperText Markup Language">XHTML</acronym>, .inc, .ini, etc</div>
 </li>
-<li class="level2"><div class="li"> Others: Comma Separated Value, <acronym title="Translation Memory eXchange">TMX</acronym>, <acronym title="XML Localization Interchange File Format">XLIFF</acronym>, <acronym title="TermBase eXchange">TBX</acronym>, php, WordFast TXT, Qt .ts, txt</div>
+<li class="level2"><div class="li"> Others: Comma Separated Value, <acronym title="Translation Memory eXchange">TMX</acronym>, <acronym title="XML Localization Interchange File Format">XLIFF</acronym>, <acronym title="TermBase eXchange">TBX</acronym>, php, WordFast TXT, Qt .ts, txt, .ini, Windows .rc, ical</div>
 </li>
 </ul>
+</li>
+<li class="level1"><div class="li"> File access through the powerful <acronym title="Application Programming Interface">API</acronym> in all the above formats, as well as .qph, .qm, .mo</div>
 </li>
 <li class="level1"><div class="li"> Output <strong>VALID target file</strong> types.  We make sure that your output files (eg .properties) contain all comments from the original file and preserves the layout of the original as far as possible.  If your <acronym title="Gettext Portable Object">PO</acronym> entry is marked as fuzzy we use the English text, not your half complete translation.  The converters for OpenOffice.org and Mozilla formats will also perform simple checks and corrections to make sure you have none of those hard to find localisation bugs.</div>
 </li>
@@ -47,6 +49,12 @@
 </li>
 </ul>
 
+<p>
+
+The Translate Toolkit is also a <strong>powerful <acronym title="Application Programming Interface">API</acronym></strong> for writing translation and localisation tools, already used by our own and several other projects. See the <a href="developers-index.html" class="wikilink1" title="developers-index.html">developers</a> section for more information.
+
+</p>
+
 </div>
 </body>
 </html>

Modified: translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-formats.html
URL: http://svn.debian.org/wsvn/translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-formats.html?rev=1409&op=diff
==============================================================================
--- translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-formats.html (original)
+++ translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-formats.html Sat Oct 11 15:15:59 2008
@@ -110,7 +110,7 @@
 
 </div>
 <!-- SECTION "Machine readable formats" [1120-1204] -->
-<h2><a name="in_developement" id="in_developement">In developement</a></h2>
+<h2><a name="in_development" id="in_development">In development</a></h2>
 <div class="level2">
 <ul>
 <li class="level1"><div class="li"> <a href="http://en.wikipedia.org/wiki/OpenDocument" class="interwiki iw_wp" title="http://en.wikipedia.org/wiki/OpenDocument">OpenDocument</a> Format: ODT, ODS and ODP (We have an old sxw converter)</div>
@@ -120,7 +120,7 @@
 </ul>
 
 </div>
-<!-- SECTION "In developement" [1205-1326] -->
+<!-- SECTION "In development" [1205-1325] -->
 <h2><a name="unsupported_formats" id="unsupported_formats">Unsupported formats</a></h2>
 <div class="level2">
 
@@ -132,7 +132,11 @@
 <ul>
 <li class="level1"><div class="li"> Wordfast: glossary</div>
 </li>
-<li class="level1"><div class="li"> <a href="ftp://ftp.apple.com/developer/Tool_Chest/Localization_Tools/AppleGlot/AppleGlot_3.2_UsersGuide.pdf" class="urlextern" title="ftp://ftp.apple.com/developer/Tool_Chest/Localization_Tools/AppleGlot/AppleGlot_3.2_UsersGuide.pdf">AppleGlot</a> - Bug <a href="http://bugs.locamotion.org/show_bug.cgi?id=371" class="interwiki iw_bug" title="http://bugs.locamotion.org/show_bug.cgi?id=371">371</a> most likely relates to this.</div>
+<li class="level1"><div class="li"> <a href="ftp://ftp.apple.com/developer/Tool_Chest/Localization_Tools/AppleGlot/AppleGlot_3.2_UsersGuide.pdf" class="urlextern" title="ftp://ftp.apple.com/developer/Tool_Chest/Localization_Tools/AppleGlot/AppleGlot_3.2_UsersGuide.pdf">AppleGlot</a> </div>
+<ul>
+<li class="level2"><div class="li"> MacOS .strings file localization - Bug <a href="http://bugs.locamotion.org/show_bug.cgi?id=371" class="interwiki iw_bug" title="http://bugs.locamotion.org/show_bug.cgi?id=371">371</a> relates to this.</div>
+</li>
+</ul>
 </li>
 <li class="level1"><div class="li"> Adobe FrameMaker's Maker Interchange Format - <a href="http://help.adobe.com/en_US/FrameMaker/8.0/mif_reference.pdf" class="urlextern" title="http://help.adobe.com/en_US/FrameMaker/8.0/mif_reference.pdf">MIF</a> (See also <a href="http://lino.sourceforge.net/src/100.html" class="urlextern" title="http://lino.sourceforge.net/src/100.html">python-gendoc</a>, and <a href="http://search.cpan.org/~rst/FrameMaker-MifTree-0.075/lib/FrameMaker/MifTree.pm" class="urlextern" title="http://search.cpan.org/~rst/FrameMaker-MifTree-0.075/lib/FrameMaker/MifTree.pm">Perl MIF module</a>)</div>
 </li>
@@ -187,7 +191,7 @@
 </ul>
 
 </div>
-<!-- SECTION "Unsupported formats" [1327-3694] -->
+<!-- SECTION "Unsupported formats" [1326-3721] -->
 <h2><a name="unlikely_to_be_supported" id="unlikely_to_be_supported">Unlikely to be supported</a></h2>
 <div class="level2">
 
@@ -202,5 +206,5 @@
 </ul>
 
 </div>
-<!-- SECTION "Unlikely to be supported" [3695-] --></body>
+<!-- SECTION "Unlikely to be supported" [3722-] --></body>
 </html>

Modified: translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-index.html
URL: http://svn.debian.org/wsvn/translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-index.html?rev=1409&op=diff
==============================================================================
--- translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-index.html (original)
+++ translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-index.html Sat Oct 11 15:15:59 2008
@@ -19,7 +19,7 @@
 
 <p>
 
-The Translate Toolkit is designed by localisers for localisers.  Its aim is to make your localisation easier and of higher quality.
+The Translate Toolkit is a collection of useful tools for localisation, and a powerful <acronym title="Application Programming Interface">API</acronym> for programmers of localisation tools. It is designed by localisers for localisers.  Its aim is to make your localisation easier and of higher quality.
 </p>
 
 <p>
@@ -37,11 +37,11 @@
 
 <p>
 These documents are maintained in the wiki at <a href="http://translate.sourceforge.net/wiki/toolkit/index" class="urlextern" title="http://translate.sourceforge.net/wiki/toolkit/index">http://translate.sourceforge.net/wiki/toolkit/index</a>
-If you want the latest version or want to make changes please consult the wiki.
-</p>
-
-</div>
-<!-- SECTION "The Translate Toolkit" [1-1125] -->
+If you want the latest version or want to make changes, please consult the wiki.
+</p>
+
+</div>
+<!-- SECTION "The Translate Toolkit" [1-1237] -->
 <h1><a name="quick_start" id="quick_start">Quick Start</a></h1>
 <div class="level1">
 <ul>
@@ -64,7 +64,7 @@
 </ul>
 
 </div>
-<!-- SECTION "Quick Start" [1126-1329] -->
+<!-- SECTION "Quick Start" [1238-1441] -->
 <h1><a name="use_cases" id="use_cases">Use Cases</a></h1>
 <div class="level1">
 <ul>
@@ -93,7 +93,7 @@
 </ul>
 
 </div>
-<!-- SECTION "Use Cases" [1330-2170] -->
+<!-- SECTION "Use Cases" [1442-2282] -->
 <h1><a name="converters" id="converters">Converters</a></h1>
 <div class="level1">
 
@@ -148,7 +148,7 @@
 </ul>
 
 </div>
-<!-- SECTION "Converters" [2171-3626] -->
+<!-- SECTION "Converters" [2283-3738] -->
 <h1><a name="tools" id="tools">Tools</a></h1>
 <div class="level1">
 
@@ -158,7 +158,7 @@
 </p>
 
 </div>
-<!-- SECTION "Tools" [3627-3709] -->
+<!-- SECTION "Tools" [3739-3821] -->
 <h3><a name="quality_assurance" id="quality_assurance">Quality Assurance</a></h3>
 <div class="level3">
 
@@ -180,7 +180,7 @@
 </ul>
 
 </div>
-<!-- SECTION "Quality Assurance" [3710-4211] -->
+<!-- SECTION "Quality Assurance" [3822-4323] -->
 <h3><a name="other_tools" id="other_tools">Other tools</a></h3>
 <div class="level3">
 <ul>
@@ -203,7 +203,7 @@
 </ul>
 
 </div>
-<!-- SECTION "Other tools" [4212-5047] -->
+<!-- SECTION "Other tools" [4324-5159] -->
 <h1><a name="scripts" id="scripts">Scripts</a></h1>
 <div class="level1">
 
@@ -224,7 +224,7 @@
 </li>
 <li class="level1"><div class="li"> <a href="toolkit-poen.html" class="wikilink1" title="toolkit-poen.html">poen</a> - Initialises <acronym title="Gettext Portable Object Template">POT</acronym> files to English translations</div>
 </li>
-<li class="level1"><div class="li"> <a href="toolkit-poglossary.html" class="wikilink1" title="toolkit-poglossary.html">poglossary</a> - (obsolete - rather use <a href="toolkit-poterminology.html" class="wikilink1" title="toolkit-poterminology.html">poterminology</a>) Create a glossary of terms from existing po translations</div>
+<li class="level1"><div class="li"> <a href="toolkit-poglossary.html" class="wikilink1" title="toolkit-poglossary.html">poglossary</a> - (obsolete; use <a href="toolkit-poterminology.html" class="wikilink1" title="toolkit-poterminology.html">poterminology</a> instead) Create a glossary of terms from existing po translations</div>
 </li>
 <li class="level1"><div class="li"> <a href="toolkit-pomigrate2.html" class="wikilink1" title="toolkit-pomigrate2.html">pomigrate2</a> - Migrate older <acronym title="Gettext Portable Object">PO</acronym> files to new <acronym title="Gettext Portable Object Template">POT</acronym> files</div>
 </li>
@@ -237,5 +237,5 @@
 </ul>
 
 </div>
-<!-- SECTION "Scripts" [5048-] --></body>
+<!-- SECTION "Scripts" [5160-] --></body>
 </html>

Modified: translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-installation.html
URL: http://svn.debian.org/wsvn/translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-installation.html?rev=1409&op=diff
==============================================================================
--- translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-installation.html (original)
+++ translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-installation.html Sat Oct 11 15:15:59 2008
@@ -153,10 +153,10 @@
 
 or, running the tools from the source directory
 </p>
-<pre class="code bash"><pre class="code bash">./setupath <span class="re3"># Only needed the first time</span>
-. setpath  <span class="re3"># Do this once <span class="kw1">for</span> a session</span></pre></pre>
+<pre class="code bash">.<span class="sy0">/</span>setuppath <span class="co0"># Only needed the first time</span>
+. setpath  <span class="co0"># Do this once for a session</span></pre>
 </div>
-<!-- SECTION "Installing from Subversion" [2585-3266] -->
+<!-- SECTION "Installing from Subversion" [2585-3267] -->
 <h2><a name="verify_installed_version" id="verify_installed_version">Verify installed version</a></h2>
 <div class="level2">
 
@@ -169,5 +169,5 @@
 moz2po 1.1.0</pre>
 
 </div>
-<!-- SECTION "Verify installed version" [3267-] --></body>
+<!-- SECTION "Verify installed version" [3268-] --></body>
 </html>

Modified: translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-pocommentclean.html
URL: http://svn.debian.org/wsvn/translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-pocommentclean.html?rev=1409&op=diff
==============================================================================
--- translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-pocommentclean.html (original)
+++ translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-pocommentclean.html Sat Oct 11 15:15:59 2008
@@ -32,17 +32,7 @@
 </ul>
 
 </div>
-<!-- SECTION "Prerequisites" [113-156] -->
-<h2><a name="latest_version" id="latest_version">Latest Version</a></h2>
-<div class="level2">
-
-<p>
-
-pocommentclean is not currently distributed as part of the toolkit.  You can get the <a href="http://translate.svn.sourceforge.net/viewvc/*checkout*/translate/src/trunk/tools/pocommentclean" class="urlextern" title="http://translate.svn.sourceforge.net/viewvc/*checkout*/translate/src/trunk/tools/pocommentclean">latest version from Subversion</a>
-</p>
-
-</div>
-<!-- SECTION "Latest Version" [157-401] -->
+<!-- SECTION "Prerequisites" [113-158] -->
 <h2><a name="usage" id="usage">Usage</a></h2>
 <div class="level2">
 
@@ -71,7 +61,7 @@
 </table>
 
 </div>
-<!-- SECTION "Usage" [402-624] -->
+<!-- SECTION "Usage" [159-381] -->
 <h2><a name="operation" id="operation">Operation</a></h2>
 <div class="level2">
 
@@ -81,7 +71,7 @@
 </p>
 
 </div>
-<!-- SECTION "Operation" [625-862] -->
+<!-- SECTION "Operation" [382-619] -->
 <h2><a name="bugs" id="bugs">Bugs</a></h2>
 <div class="level2">
 
@@ -92,5 +82,5 @@
 </p>
 
 </div>
-<!-- SECTION "Bugs" [863-] --></body>
+<!-- SECTION "Bugs" [620-] --></body>
 </html>

Modified: translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-pocompendium.html
URL: http://svn.debian.org/wsvn/translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-pocompendium.html?rev=1409&op=diff
==============================================================================
--- translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-pocompendium.html (original)
+++ translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-pocompendium.html Sat Oct 11 15:15:59 2008
@@ -45,17 +45,7 @@
 </ul>
 
 </div>
-<!-- SECTION "Prerequisites" [236-459] -->
-<h2><a name="latest_version" id="latest_version">Latest Version</a></h2>
-<div class="level2">
-
-<p>
-
-pocompendium is not currently distributed as part of the toolkit.  You can get the <a href="http://translate.svn.sourceforge.net/viewvc/*checkout*/translate/src//trunk/tools/pocompendium" class="interwiki iw_svn" title="http://translate.svn.sourceforge.net/viewvc/*checkout*/translate/src//trunk/tools/pocompendium">latest version from Subversion</a>
-</p>
-
-</div>
-<!-- SECTION "Latest Version" [460-636] -->
+<!-- SECTION "Prerequisites" [236-461] -->
 <h2><a name="usage" id="usage">Usage</a></h2>
 <div class="level2">
 <pre class="code">pocompendium [options] output.po <-d po-directory(ies)|po-file(s)></pre>
@@ -102,7 +92,7 @@
 </table>
 
 </div>
-<!-- SECTION "Usage" [637-1435] -->
+<!-- SECTION "Usage" [462-1260] -->
 <h2><a name="examples" id="examples">Examples</a></h2>
 <div class="level2">
 <ol>
@@ -115,7 +105,7 @@
 </ol>
 
 </div>
-<!-- SECTION "Examples" [1436-2319] -->
+<!-- SECTION "Examples" [1261-2144] -->
 <h2><a name="narrowing_results" id="narrowing_results">Narrowing Results</a></h2>
 <div class="level2">
 
@@ -129,7 +119,7 @@
 </p>
 
 </div>
-<!-- SECTION "Narrowing Results" [2320-2756] -->
+<!-- SECTION "Narrowing Results" [2145-2581] -->
 <h2><a name="operation" id="operation">Operation</a></h2>
 <div class="level2">
 
@@ -142,7 +132,7 @@
 </p>
 
 </div>
-<!-- SECTION "Operation" [2757-3087] -->
+<!-- SECTION "Operation" [2582-2912] -->
 <h2><a name="bugs" id="bugs">Bugs</a></h2>
 <div class="level2">
 
@@ -153,5 +143,5 @@
 </p>
 
 </div>
-<!-- SECTION "Bugs" [3088-] --></body>
+<!-- SECTION "Bugs" [2913-] --></body>
 </html>

Modified: translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-poen.html
URL: http://svn.debian.org/wsvn/translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-poen.html?rev=1409&op=diff
==============================================================================
--- translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-poen.html (original)
+++ translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-poen.html Sat Oct 11 15:15:59 2008
@@ -37,17 +37,7 @@
 </p>
 
 </div>
-<!-- SECTION "Prerequisites" [296-336] -->
-<h2><a name="latest_version" id="latest_version">Latest Version</a></h2>
-<div class="level2">
-
-<p>
-
-poen is not currently distributed as part of the toolkit.  You can get the <a href="http://translate.svn.sourceforge.net/viewvc/*checkout*/translate/src/trunk/tools/poen" class="urlextern" title="http://translate.svn.sourceforge.net/viewvc/*checkout*/translate/src/trunk/tools/poen">latest version from Subversion</a>
-</p>
-
-</div>
-<!-- SECTION "Latest Version" [337-562] -->
+<!-- SECTION "Prerequisites" [296-338] -->
 <h2><a name="usage" id="usage">Usage</a></h2>
 <div class="level2">
 <pre class="code">poen [options] <pot> <en></pre>
@@ -80,7 +70,7 @@
 </table>
 
 </div>
-<!-- SECTION "Usage" [563-922] -->
+<!-- SECTION "Usage" [339-698] -->
 <h2><a name="bugs" id="bugs">Bugs</a></h2>
 <div class="level2">
 
@@ -91,5 +81,5 @@
 </p>
 
 </div>
-<!-- SECTION "Bugs" [923-] --></body>
+<!-- SECTION "Bugs" [699-] --></body>
 </html>

Modified: translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-pomigrate2.html
URL: http://svn.debian.org/wsvn/translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-pomigrate2.html?rev=1409&op=diff
==============================================================================
--- translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-pomigrate2.html (original)
+++ translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-pomigrate2.html Sat Oct 11 15:15:59 2008
@@ -45,17 +45,7 @@
 </ul>
 
 </div>
-<!-- SECTION "Prerequisites" [310-410] -->
-<h2><a name="latest_version" id="latest_version">Latest Version</a></h2>
-<div class="level2">
-
-<p>
-
-pomigrate2 is not currently distributed as part of the toolkit.  You can get the <a href="http://translate.svn.sourceforge.net/viewvc/*checkout*/translate/src/trunk/tools/pomigrate2" class="interwiki iw_svn" title="http://translate.svn.sourceforge.net/viewvc/*checkout*/translate/src/trunk/tools/pomigrate2">latest version from Subversion</a>
-</p>
-
-</div>
-<!-- SECTION "Latest Version" [411-582] -->
+<!-- SECTION "Prerequisites" [310-412] -->
 <h2><a name="usage" id="usage">Usage</a></h2>
 <div class="level2">
 
@@ -108,7 +98,7 @@
 </table>
 
 </div>
-<!-- SECTION "Usage" [583-1417] -->
+<!-- SECTION "Usage" [413-1247] -->
 <h2><a name="operation" id="operation">Operation</a></h2>
 <div class="level2">
 
@@ -134,7 +124,7 @@
 </p>
 
 </div>
-<!-- SECTION "Operation" [1418-2315] -->
+<!-- SECTION "Operation" [1248-2145] -->
 <h2><a name="bugs" id="bugs">Bugs</a></h2>
 <div class="level2">
 
@@ -145,5 +135,5 @@
 </p>
 
 </div>
-<!-- SECTION "Bugs" [2316-] --></body>
+<!-- SECTION "Bugs" [2146-] --></body>
 </html>

Modified: translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-popuretext.html
URL: http://svn.debian.org/wsvn/translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-popuretext.html?rev=1409&op=diff
==============================================================================
--- translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-popuretext.html (original)
+++ translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-popuretext.html Sat Oct 11 15:15:59 2008
@@ -37,17 +37,7 @@
 </p>
 
 </div>
-<!-- SECTION "Prerequisites" [358-398] -->
-<h2><a name="latest_version" id="latest_version">Latest Version</a></h2>
-<div class="level2">
-
-<p>
-
-popuretext is not currently distributed as part of the toolkit.  You can get the <a href="http://translate.svn.sourceforge.net/viewvc/*checkout*/translate/src/trunk/tools/popuretext" class="urlextern" title="http://translate.svn.sourceforge.net/viewvc/*checkout*/translate/src/trunk/tools/popuretext">latest version from Subversion</a>
-</p>
-
-</div>
-<!-- SECTION "Latest Version" [399-635] -->
+<!-- SECTION "Prerequisites" [358-400] -->
 <h2><a name="usage" id="usage">Usage</a></h2>
 <div class="level2">
 <pre class="code">popuretext <pot-dir> <file.txt> [accelerator]</pre>
@@ -70,7 +60,7 @@
 </table>
 
 </div>
-<!-- SECTION "Usage" [636-891] -->
+<!-- SECTION "Usage" [401-656] -->
 <h2><a name="bugs" id="bugs">Bugs</a></h2>
 <div class="level2">
 
@@ -81,5 +71,5 @@
 </p>
 
 </div>
-<!-- SECTION "Bugs" [892-] --></body>
+<!-- SECTION "Bugs" [657-] --></body>
 </html>

Modified: translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-poreencode.html
URL: http://svn.debian.org/wsvn/translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-poreencode.html?rev=1409&op=diff
==============================================================================
--- translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-poreencode.html (original)
+++ translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-poreencode.html Sat Oct 11 15:15:59 2008
@@ -33,17 +33,7 @@
 </p>
 
 </div>
-<!-- SECTION "Prerequisites" [106-146] -->
-<h2><a name="latest_version" id="latest_version">Latest Version</a></h2>
-<div class="level2">
-
-<p>
-
-poreencode is not currently distributed as part of the toolkit.  You can get the <a href="http://translate.svn.sourceforge.net/viewvc/*checkout*/translate/src/trunk/tools/poreencode" class="urlextern" title="http://translate.svn.sourceforge.net/viewvc/*checkout*/translate/src/trunk/tools/poreencode">latest version from Subversion</a>
-</p>
-
-</div>
-<!-- SECTION "Latest Version" [147-383] -->
+<!-- SECTION "Prerequisites" [106-148] -->
 <h2><a name="usage" id="usage">Usage</a></h2>
 <div class="level2">
 <pre class="code">poreencode <encoding> <PO directory></pre>
@@ -69,7 +59,7 @@
 </p>
 
 </div>
-<!-- SECTION "Usage" [384-704] -->
+<!-- SECTION "Usage" [149-469] -->
 <h2><a name="operation" id="operation">Operation</a></h2>
 <div class="level2">
 
@@ -81,7 +71,7 @@
 </p>
 
 </div>
-<!-- SECTION "Operation" [705-948] -->
+<!-- SECTION "Operation" [470-713] -->
 <h2><a name="bugs" id="bugs">Bugs</a></h2>
 <div class="level2">
 
@@ -95,5 +85,5 @@
 </p>
 
 </div>
-<!-- SECTION "Bugs" [949-] --></body>
+<!-- SECTION "Bugs" [714-] --></body>
 </html>

Modified: translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-porestructure.html
URL: http://svn.debian.org/wsvn/translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-porestructure.html?rev=1409&op=diff
==============================================================================
--- translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-porestructure.html (original)
+++ translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-porestructure.html Sat Oct 11 15:15:59 2008
@@ -87,11 +87,11 @@
 
 <p>
 
-See the examples for <a href="toolkit-poconflicts.html#examples" class="wikilink1" title="toolkit-poconflicts.html">examples</a> for the complete process using poconflict, porestructure, and pomerge.
+The documentation for poconflicts has <a href="toolkit-poconflicts.html#examples" class="wikilink1" title="toolkit-poconflicts.html">examples</a> for the complete process using poconflict, porestructure, and pomerge.
 </p>
 
 </div>
-<!-- SECTION "Examples" [1567-1706] -->
+<!-- SECTION "Examples" [1567-1723] -->
 <h2><a name="bugs" id="bugs">Bugs</a></h2>
 <div class="level2">
 
@@ -102,5 +102,5 @@
 </p>
 
 </div>
-<!-- SECTION "Bugs" [1707-] --></body>
+<!-- SECTION "Bugs" [1724-] --></body>
 </html>

Modified: translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-posegment.html
URL: http://svn.debian.org/wsvn/translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-posegment.html?rev=1409&op=diff
==============================================================================
--- translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-posegment.html (original)
+++ translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-posegment.html Sat Oct 11 15:15:59 2008
@@ -19,15 +19,15 @@
 
 <p>
 
-Take a Gettext <acronym title="Gettext Portable Object">PO</acronym> or <acronym title="XML Localization Interchange File Format">XLIFF</acronym> file and segment the entries outputting a new file that has been segmented.
+posegment takes a Gettext <acronym title="Gettext Portable Object">PO</acronym> or <acronym title="XML Localization Interchange File Format">XLIFF</acronym> file and segments the entries, generating a new file with revised and smaller translation units.
 </p>
 
 <p>
-This is useful for the creation of a file that can be used as a Translation Memeory as you should then be able to get better matching for as you will have exposed translated sentences that might occur elsewhere in your work.
+This is useful for the creation of a file that can be used as a Translation Memory (e.g. when using <a href="pootle-updatetm.html" class="wikilink1" title="pootle-updatetm.html">updatetm</a> to create translation memory for Pootle) as you should get better matching after you have exposed translated sentences that might occur elsewhere in your work.
 </p>
 
 </div>
-<!-- SECTION "posegment" [1-356] -->
+<!-- SECTION "posegment" [1-443] -->
 <h2><a name="usage" id="usage">Usage</a></h2>
 <div class="level2">
 <pre class="code">posegment [options] <input> <segmented></pre>
@@ -92,7 +92,7 @@
 </table>
 
 </div>
-<!-- SECTION "Usage" [357-1493] -->
+<!-- SECTION "Usage" [444-1580] -->
 <h2><a name="examples" id="examples">Examples</a></h2>
 <div class="level2">
 
@@ -120,7 +120,7 @@
 </p>
 
 </div>
-<!-- SECTION "Examples" [1494-2077] -->
+<!-- SECTION "Examples" [1581-2164] -->
 <h2><a name="issues" id="issues">Issues</a></h2>
 <div class="level2">
 <ul>
@@ -133,5 +133,5 @@
 </ul>
 
 </div>
-<!-- SECTION "Issues" [2078-] --></body>
+<!-- SECTION "Issues" [2165-] --></body>
 </html>

Modified: translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-posplit.html
URL: http://svn.debian.org/wsvn/translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-posplit.html?rev=1409&op=diff
==============================================================================
--- translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-posplit.html (original)
+++ translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-posplit.html Sat Oct 11 15:15:59 2008
@@ -35,17 +35,7 @@
 </p>
 
 </div>
-<!-- SECTION "Prerequisites" [227-268] -->
-<h2><a name="latest_version" id="latest_version">Latest Version</a></h2>
-<div class="level2">
-
-<p>
-
-posplit is not currently distributed as part of the toolkit.  You can get the <a href="http://translate.svn.sourceforge.net/viewvc/*checkout*/translate/src/trunk/tools/posplit" class="interwiki iw_svn" title="http://translate.svn.sourceforge.net/viewvc/*checkout*/translate/src/trunk/tools/posplit">latest version from Subversion</a>
-</p>
-
-</div>
-<!-- SECTION "Latest Version" [269-434] -->
+<!-- SECTION "Prerequisites" [227-270] -->
 <h2><a name="usage" id="usage">Usage</a></h2>
 <div class="level2">
 <pre class="code">posplit ./file.po</pre>
@@ -62,7 +52,7 @@
 </table>
 
 </div>
-<!-- SECTION "Usage" [435-541] -->
+<!-- SECTION "Usage" [271-377] -->
 <h2><a name="bugs" id="bugs">Bugs</a></h2>
 <div class="level2">
 
@@ -73,5 +63,5 @@
 </p>
 
 </div>
-<!-- SECTION "Bugs" [542-] --></body>
+<!-- SECTION "Bugs" [378-] --></body>
 </html>

Modified: translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-poterminology.html
URL: http://svn.debian.org/wsvn/translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-poterminology.html?rev=1409&op=diff
==============================================================================
--- translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-poterminology.html (original)
+++ translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-poterminology.html Sat Oct 11 15:15:59 2008
@@ -19,11 +19,19 @@
 
 <p>
 
-Take Gettext <acronym title="Gettext Portable Object">PO</acronym> files and extracts potential terminology.
-</p>
-
-<p>
-This is useful as a first step before you translate as it allows you to define key terminology in your language for the target application.
+poterminology takes Gettext <acronym title="Gettext Portable Object">PO</acronym>/<acronym title="Gettext Portable Object Template">POT</acronym> files and extracts potential terminology.
+</p>
+
+<p>
+This is useful as a first step before translating a new project (or an existing project into a new target language) as it allows you to define key terminology for consistency in translations.  The resulting terminology <acronym title="Gettext Portable Object">PO</acronym> files can be used by Pootle to provide suggestions while translating.
+</p>
+
+<p>
+Generally, all the input files should have the same source language, and either be <acronym title="Gettext Portable Object Template">POT</acronym> files (with no translations) or <acronym title="Gettext Portable Object">PO</acronym> files with translations to the same target language.
+</p>
+
+<p>
+The more separate <acronym title="Gettext Portable Object">PO</acronym> files you use to generate terminology, the better your results will be, but poterminology can be used with just a single input file.
 </p>
 
 <p>
@@ -32,7 +40,7 @@
 </p>
 
 </div>
-<!-- SECTION "poterminology" [1-257] -->
+<!-- SECTION "poterminology" [1-759] -->
 <h2><a name="usage" id="usage">Usage</a></h2>
 <div class="level2">
 <pre class="code">poterminology [options] <input> <terminology></pre>
@@ -71,98 +79,284 @@
 		<td class="col0 leftalign"> <a href="toolkit-errorlevel_errorlevel.html" class="wikilink1" title="toolkit-errorlevel_errorlevel.html">--errorlevel=ERRORLEVEL</a>  </td><td class="col1 leftalign"> show errorlevel as: none, message, exception, traceback  </td>
 	</tr>
 	<tr class="row5">
-		<td class="col0 leftalign"> -iINPUT, --input=INPUT   </td><td class="col1 leftalign"> read from INPUT in pot format  </td>
+		<td class="col0 leftalign"> -i INPUT, --input=INPUT   </td><td class="col1 leftalign"> read from INPUT in pot, po formats  </td>
 	</tr>
 	<tr class="row6">
-		<td class="col0 leftalign"> -xEXCLUDE, --exclude=EXCLUDE  </td><td class="col1 leftalign"> exclude names matching EXCLUDE from input paths  </td>
+		<td class="col0 leftalign"> -x EXCLUDE, --exclude=EXCLUDE  </td><td class="col1 leftalign"> exclude names matching EXCLUDE from input paths  </td>
 	</tr>
 	<tr class="row7">
-		<td class="col0 leftalign"> -oOUTPUT, --output=OUTPUT     </td><td class="col1 leftalign"> write to OUTPUT in po, pot formats  </td>
+		<td class="col0 leftalign"> -o OUTPUT, --output=OUTPUT     </td><td class="col1 leftalign"> write to OUTPUT in po, pot formats  </td>
 	</tr>
 	<tr class="row8">
+		<td class="col0 leftalign"> -u UPDATEFILE, --update=UPDATEFILE  </td><td class="col1"> update terminology in UPDATEFILE </td>
+	</tr>
+	<tr class="row9">
 		<td class="col0 leftalign"> <a href="toolkit-psyco_mode.html" class="wikilink1" title="toolkit-psyco_mode.html">--psyco=MODE</a>         </td><td class="col1 leftalign"> use psyco to speed up the operation, modes: none, full, profile  </td>
 	</tr>
-	<tr class="row9">
-		<td class="col0 leftalign"> -I, --ignore-case    </td><td class="col1 leftalign"> make all terms lowercase  </td>
-	</tr>
 	<tr class="row10">
-		<td class="col0 leftalign"> -F, --fold-titlecase  </td><td class="col1 leftalign"> fold “Title Case” to lowercase   </td>
+		<td class="col0 leftalign"> -S STOPFILE, --stopword-list=STOPFILE  </td><td class="col1"> read stopword (term exclusion) list from STOPFILE (default site-packages/translate/share/stoplist-en) </td>
 	</tr>
 	<tr class="row11">
+		<td class="col0 leftalign"> -F, --fold-titlecase  </td><td class="col1 leftalign"> fold “Title Case” to lowercase (default)  </td>
+	</tr>
+	<tr class="row12">
+		<td class="col0 leftalign"> -C, --preserve-case   </td><td class="col1 leftalign"> preserve all uppercase/lowercase  </td>
+	</tr>
+	<tr class="row13">
+		<td class="col0 leftalign"> -I, --ignore-case     </td><td class="col1 leftalign"> make all terms lowercase  </td>
+	</tr>
+	<tr class="row14">
 		<td class="col0"> --accelerator=ACCELERATORS </td><td class="col1 leftalign"> ignores the given accelerator characters when matching  </td>
 	</tr>
-	<tr class="row12">
+	<tr class="row15">
 		<td class="col0 leftalign"> -t LENGTH, --term-words=LENGTH  </td><td class="col1 leftalign"> generate terms of up to LENGTH words (default 3)  </td>
 	</tr>
-	<tr class="row13">
-		<td class="col0 leftalign"> --inputs-needed=MIN   </td><td class="col1 leftalign"> omit terms appearing in less than MIN input files (default 1 - 2 if multiple input files)  </td>
-	</tr>
-	<tr class="row14">
+	<tr class="row16">
+		<td class="col0 leftalign"> --inputs-needed=MIN   </td><td class="col1 leftalign"> omit terms appearing in less than MIN input files (default 2, or 1 if only one input file)  </td>
+	</tr>
+	<tr class="row17">
 		<td class="col0 leftalign"> --fullmsg-needed=MIN  </td><td class="col1 leftalign"> omit full message terms appearing in less than MIN different messages (default 1)  </td>
 	</tr>
-	<tr class="row15">
+	<tr class="row18">
 		<td class="col0 leftalign"> --substr-needed=MIN   </td><td class="col1 leftalign"> omit substring-only terms appearing in less than MIN different messages (default 2)  </td>
 	</tr>
-	<tr class="row16">
+	<tr class="row19">
 		<td class="col0 leftalign"> --locs-needed=MIN     </td><td class="col1 leftalign"> omit terms appearing in less than MIN different original source files (default 2)  </td>
 	</tr>
-	<tr class="row17">
+	<tr class="row20">
 		<td class="col0 leftalign"> --sort=ORDER          </td><td class="col1 leftalign"> output sort order(s): frequency, dictionary, length (default is all orders in the above priority)  </td>
 	</tr>
-	<tr class="row18">
-		<td class="col0 leftalign"> -S FILENAME, --stopword-list=FILENAME  </td><td class="col1 leftalign"> name of file containing stopword list  </td>
-	</tr>
-	<tr class="row19">
+	<tr class="row21">
 		<td class="col0 leftalign"> --source-language=LANG  </td><td class="col1 leftalign"> the source language code (default 'en')  </td>
 	</tr>
-	<tr class="row20">
+	<tr class="row22">
 		<td class="col0 leftalign"> -v, --invert          </td><td class="col1 leftalign"> invert the source and target languages for terminology  </td>
 	</tr>
 </table>
 
 </div>
-<!-- SECTION "Usage" [258-2261] -->
+<!-- SECTION "Usage" [760-2982] -->
 <h2><a name="examples" id="examples">Examples</a></h2>
 <div class="level2">
 
 <p>
 
-<img src="images/smileys/fixme.gif" align="middle" alt="FIXME" />: All of the following needs fixing
-</p>
-
-<p>
-You want to reuse all of your Pidgin translations in another Instant Messenger:
-
-</p>
-<pre class="code">posegment pidgin-af.po pidgin-af-segmented.po</pre>
-
-<p>
-
-Now all of our Pidgin translation are available, segmented at a sentence level, to be used as a Translation Memory for our other translation work.
-</p>
-
-<p>
-You can do the same at a project level.  Here we want to segment all of our OpenOffice.org translation work, a few hundred files:
-
-</p>
-<pre class="code">posegment af/ af-segmented/</pre>
-
-<p>
-
-We start with all our files in <code>af</code> which are now duplicated in <code>af-segmented</code> except files are now fully segmented.
-</p>
-
-</div>
-<!-- SECTION "Examples" [2262-2887] -->
+You want to generate a terminology file for Pootle that will be used to   provide suggestions for translating Pootle itself:
+
+</p>
+<pre class="code">poterminology Pootle/po/pootle/templates/*.pot .</pre>
+
+<p>
+
+This results in a <code>./pootle-terminology.pot</code> output file with 23 terms (from “file” to “does not exist”) - without any translations.
+</p>
+
+<p>
+The default output file can be added to a Pootle project to provide <a href="pootle-terminology_matching.html" class="wikilink1" title="pootle-terminology_matching.html">terminology matching</a> suggestions for that project; alternately a special Terminology project can be used and it will provide terminology suggestions for all projects that do not have a pootle-terminology.po file.
+</p>
+
+<p>
+Generating a terminology file containing automatically extracted translations is possible as well, by using <acronym title="Gettext Portable Object">PO</acronym> files with translations for the input files:
+
+</p>
+<pre class="code">poterminology Pootle/po/pootle/fi/*.po --output fi/pootle-terminology.po --sort dictionary</pre>
+
+<p>
+
+Using <acronym title="Gettext Portable Object">PO</acronym> files with Finnish translations, you get an output file that contains the same 23 terms, with translations of eight terms - one (“login”) is fuzzy due to slightly different translations in jToolkit and Pootle.  The file is sorted in alphabetical order (by source term, not translated term), which can be useful when comparing different terminology files.
+</p>
+
+<p>
+Even though there is no translation of Pootle into Kinyarwanda, you can use the Gnome UI terminology <acronym title="Gettext Portable Object">PO</acronym> file as a source for translations; in order to extract only the terms common to jToolkit and Pootle this command includes the <acronym title="Gettext Portable Object Template">POT</acronym> output from the first step above (which is redundant) and require terms to appear in three different input sources:
+
+</p>
+<pre class="code">poterminology Pootle/po/pootle/templates/*.pot pootle-terminology.pot \
+  Pootle/po/terminology/rw/gnome/rw.po --inputs-needed=3 -o terminology/rw.po</pre>
+
+<p>
+
+Of the 23 terms, 16 have Kinyarwanda translations extracted from the Gnome UI terminology.
+</p>
+
+<p>
+For a language like Spanish, with both Pootle translations and Gnome terminology available, 18 translations (2 fuzzy) are generated by the following command, which initializes the terminology file from the <acronym title="Gettext Portable Object Template">POT</acronym> output from the first step, and then uses --update to specify that the pootle-es.po file is to be used both for input and output:
+
+</p>
+<pre class="code">cp pootle-terminology.pot glossary-es.po; 
+poterminology --inputs=3 --update glossary-es.po \
+  Pootle/po/pootle/es/*.po Pootle/po/terminology/es/gnome/es.po</pre>
+
+</div>
+<!-- SECTION "Examples" [2983-5331] -->
+<h3><a name="reduced_terminology_glossaries" id="reduced_terminology_glossaries">Reduced terminology glossaries</a></h3>
+<div class="level3">
+
+<p>
+
+If you want to generate a terminology file containing only single words,  not phrases, you can use -t/--term-words to control this.  If your input files are very large and/or you have a lot of input files, and you are finding that poterminology is taking too much time and memory to run, reducing the phrase size from the default value of 3 can be helpful.
+</p>
+
+<p>
+For example, running poterminology on the subversion trunk with the default phrase size can take quite some time and may not even complete on a small-memory system, but with --term-words=1 the initial number of terms is reduced by half, and the thresholding process can complete:
+
+</p>
+<pre class="code">poterminology --progress=none -t 1 translate</pre>
+<pre class="code">1297 terms from 64039 units in 216 files
+254 terms after thresholding
+254 terms after subphrase reduction</pre>
+
+<p>
+
+The first line of output indicates the number of input files and translation units (messages), with the number of unique terms present after removing C and Python format specifiers (e.g. %d), <acronym title="Extensible Markup Language">XML</acronym>/<acronym title="HyperText Markup Language">HTML</acronym> <elements> and &entities; and performing stoplist elimination.
+</p>
+
+<p>
+The second line gives the number of terms remaining after applying threshold filtering (discussed in more detail below) to eliminate terms that are not sufficiently “common” in the input files.
+</p>
+
+<p>
+The third line gives the number of terms remaining after eliminating subphrases that did not occur independently.  In this case, since the term-words limit is 1, there are no subphrases and so the number is the same as on the second line.
+</p>
+
+<p>
+However, in the first example above (generating terminology for Pootle itself), the term “not exist” passes the stoplist and threshold filters, but all occurrences of this term also contained the term “does not exist” which also passes the stoplist and threshold filters.  Given this duplication, the shorter phrase is eliminated in favor of the longer one, resulting in 23 terms (out of 25 that pass the threshold filters).
+</p>
+
+</div>
+<!-- SECTION "Reduced terminology glossaries" [5332-7299] -->
+<h2><a name="reducing_output_terminology_with_thresholding_options" id="reducing_output_terminology_with_thresholding_options">Reducing output terminology with thresholding options</a></h2>
+<div class="level2">
+
+<p>
+
+Depending on the size and number of the source files, and the desired scope of the output terminology file, there are several thresholding filters that can be adjusted to allow fewer or more terms in the output file.  We have seen above how one (--inputs-needed) can be used to require that terms be present in multiple input files, but there are also other thresholds that can be adjusted to control the size of the output terminology file.
+
+</p>
+<ul>
+<li class="level1"><div class="li"> --inputs-needed</div>
+</li>
+</ul>
+
+<p>
+
+This is the most flexible and powerful thresholding control.  The default value is 2, unless only one input file (not counting an --update argument) is provided, in which case the threshold is 1 to avoid filtering out all terms and generating an empty output terminology file.
+</p>
+
+<p>
+By copying input files and providing them multiple times as inputs, you can even achieve “weighted” thresholding, so that for example, all terms in one original input file will pass thresholding, while other files may be filtered.  A simple version of this technique was used above to incorporate translations from the Gnome terminology <acronym title="Gettext Portable Object">PO</acronym> files without having it affect the terms that passed the threshold filters. 
+
+</p>
+<ul>
+<li class="level1"><div class="li"> --locs-needed</div>
+</li>
+</ul>
+
+<p>
+
+Rather than requiring that a term appear in multiple input <acronym title="Gettext Portable Object">PO</acronym> or <acronym title="Gettext Portable Object Template">POT</acronym> files, this requires that it have been present in multiple source code files, as evidenced by location comments in the <acronym title="Gettext Portable Object">PO</acronym>/<acronym title="Gettext Portable Object Template">POT</acronym> sources.
+</p>
+
+<p>
+This threshold can be helpful in eliminating over-specialized terminology that you don't want when multiple <acronym title="Gettext Portable Object">PO</acronym>/<acronym title="Gettext Portable Object Template">POT</acronym> files are generated from the same sources (via included header or library files).
+</p>
+
+<p>
+Note that some <acronym title="Gettext Portable Object">PO</acronym>/<acronym title="Gettext Portable Object Template">POT</acronym> files have function names rather than source file names in the location comments; in this case the threshold will be on multiple functions, which may need to be set higher to be effective.
+</p>
+
+<p>
+Not all <acronym title="Gettext Portable Object">PO</acronym>/<acronym title="Gettext Portable Object Template">POT</acronym> files contain proper location comments.  If your input files don't have (good) location comments and the output terminology file is reduced to zero or very few entries by thresholding, you may need to override the default value for this threshold and set it to 1, which disables this check.
+</p>
+
+<p>
+The setting of the --locs-needed comment has another effect, which is that location comments in the output terminology file will be limited to twice that number; a location comment indicating the number of additional locations not specified will be added instead of the omitted locations.
+
+</p>
+<ul>
+<li class="level1"><div class="li"> --fullmsg-needed</div>
+</li>
+</ul>
+<ul>
+<li class="level1"><div class="li"> --substr-needed</div>
+</li>
+</ul>
+
+<p>
+
+These two thresholds specify the number of different translation units (messages) in which a term must appear; they both work in the same way, but the first one applies to terms which appear as complete translation units in one or more of the source files (full message terms), and the second one to all other terms (substring terms).  Note that translations are extracted only for full message terms; poterminology cannot identify the corresponding substring in a translation.
+</p>
+
+<p>
+If you are working with a single input file without useful location comments, increasing these thresholds may be the only way to effectively reduce the output terminology.  Generally, you should increase the --substr-needed threshold first, as the full message terms are more likely to be useful terminology.
+</p>
+
+</div>
+<!-- SECTION "Reducing output terminology with thresholding options" [7300-10589] -->
+<h2><a name="stop_word_files" id="stop_word_files">Stop word files</a></h2>
+<div class="level2">
+
+<p>
+
+Much of the power of poterminology in generating useful terminology files is due to the default stop word file that it uses.  This file contains words and regular expressions that poterminology will ignore when generating terms, so that the output terminology doesn't have tons of useless entries like “the 16” or “Z”.
+</p>
+
+<p>
+In most cases, the default stop word list will work well, but you may want to replace it with your own version, or possibly just supplement or override certain entries.  The default <a href="toolkit-poterminology_stopword_file.html" class="wikilink1" title="toolkit-poterminology_stopword_file.html">poterminology stopword file</a> contains comments that describe the syntax and operation of these files.
+</p>
+
+<p>
+If you want to completely replace the stopword list (for example, if your source language is French rather than English) you could do it with a command like this:
+
+</p>
+<pre class="code">poterminology --stopword-list=stoplist-fr logiciel/ -o glossaire.po</pre>
+
+<p>
+
+If you merely want to modify the standard stopword list with your own additions and overrides, you must explicitly specify the default list first:
+
+</p>
+<pre class="code">poterminology -S /usr/lib/python2.5/site-packages/translate/share/stoplist-en \
+  -S my-stoplist po/ -o terminology.po</pre>
+
+<p>
+
+You can use poterminology --help to see the default stopword list pathname, which may differ from the one shown above.
+</p>
+
+<p>
+Note that if you are using multiple stopword list files, as in the above, they will all be subject to the same case mapping (fold “Title Case” to lower case by default) - if you specify a different case mapping in the second file it will override the mapping for all the stopword list files.
+</p>
+
+</div>
+<!-- SECTION "Stop word files" [10590-12147] -->
 <h2><a name="issues" id="issues">Issues</a></h2>
 <div class="level2">
 
 <p>
 
-None known
-
-</p>
-
-</div>
-<!-- SECTION "Issues" [2888-] --></body>
+When using terminology files generated by poterminology as input, a plethora of translator comments marked with (poterminology) may be generated, with the number of these increasing on each iteration.  You may wish to run <a href="toolkit-pocommentclean.html" class="wikilink1" title="toolkit-pocommentclean.html">pocommentclean</a> (or a slightly modified version of it which only removes (poterminology) comments) on the input and/or output files, especially since translator comments are displayed as tooltips by Pootle (thankfully, they are truncated at a few dozen characters).
+</p>
+
+<p>
+Currently, any translation items using plural forms will be entirely ignored for terminology extraction.  The singular form for the item should be used, but this is not yet implemented (it is tracked as bug <a href="http://bugs.locamotion.org/show_bug.cgi?id=532" class="interwiki iw_bug" title="http://bugs.locamotion.org/show_bug.cgi?id=532">532</a>).
+</p>
+
+<p>
+Terms containing only words that are ignored individually, but not excluded from phrases (e.g. “you are you”) may be generated by poterminology, but aren't generally useful.  Adding a new threshold option --nonstop-needed could allow these to be suppressed.
+</p>
+
+<p>
+Pootle ignores parenthetical comments in source text when performing terminology matching; this allows for terms like “scan (verb)” and “scan (noun)” to both be provided as suggestions for a message containing “scan.”  poterminology does not provide any special handling for these, but it could use them to provide better handling of different translations for a single term.  This would be an improvement over the current approach, which marks the term fuzzy and includes all variants, with location information in {} braces in the automatically extracted translation.
+</p>
+
+<p>
+Currently, message context information (<acronym title="Gettext Portable Object">PO</acronym> msgctxt) is not used in any way; this could provide an additional source of information for distinguishing variants of the same term.
+</p>
+
+<p>
+A single execution of poterminology can only perform automatic translation extraction for a single target language - having the ability to handle all target languages in one run would allow a single command to generate all terminology for an entire project.  Additionally, this could provide even more information for identifying variant terms by comparing the number of target languages that have variant translations.
+</p>
+
+</div>
+<!-- SECTION "Issues" [12148-] --></body>
 </html>

Added: translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-poterminology_stopword_file.html
URL: http://svn.debian.org/wsvn/translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-poterminology_stopword_file.html?rev=1409&op=file
==============================================================================
--- translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-poterminology_stopword_file.html (added)
+++ translate-toolkit/branches/upstream/current/translate/doc/user/toolkit-poterminology_stopword_file.html Sat Oct 11 15:15:59 2008
@@ -1,0 +1,231 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+<head>
+  <title></title>
+  <link rel="stylesheet" media="screen" type="text/css" href="./style.css" />
+  <link rel="stylesheet" media="screen" type="text/css" href="./design.css" />
+  <link rel="stylesheet" media="print" type="text/css" href="./print.css" />
+
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+</head>
+<body>
+<a href=.>start</a></br>
+
+
+
+<h1><a name="stopword_file_format" id="stopword_file_format">Stopword file format</a></h1>
+<div class="level1">
+
+<p>
+
+The default stopword file for <a href="toolkit-poterminology.html" class="wikilink1" title="toolkit-poterminology.html">poterminology</a> describes the syntax of these files and provides a good default for most applications using English source text.  You can find the location of the default stopword file by looking at the output of poterminology --help, or using the following command:
+
+</p>
+<pre class="code">poterminology --manpage | sed -n '/STOPFILE/s/.*(\(.*\)).*/\1/p'</pre>
+
+<p>
+
+<p><div class="noteclassic">New in v1.2
+</div></p>
+</p>
+
+</div>
+<!-- SECTION "Stopword file format" [1-430] -->
+<h2><a name="overview" id="overview">Overview</a></h2>
+<div class="level2">
+
+<p>
+
+The basic syntax of this file is line-oriented, with the first character of each line determining its function.  The order of the lines is generally not significant (with one exception noted below), and the selection of function characters was made so that an <acronym title="American Standard Code for Information Interchange">ASCII</acronym> sort of the file would leave it in a generally logical order (except for comment lines).
+</p>
+
+<p>
+Apart from comment lines (which begin with '#') and empty lines (which are also ignored), there are three general types of lines, which may appear in any order:
+
+</p>
+<ul>
+<li class="level1"><div class="li"> case mapping specifiers</div>
+</li>
+</ul>
+<ul>
+<li class="level1"><div class="li"> stoplist regular expressions</div>
+</li>
+</ul>
+<ul>
+<li class="level1"><div class="li"> stoplist words</div>
+</li>
+</ul>
+
+</div>
+<!-- SECTION "Overview" [431-1053] -->
+<h3><a name="case_mapping_specifiers" id="case_mapping_specifiers">Case mapping specifiers</a></h3>
+<div class="level3">
+
+<p>
+
+A line beginning with a '<strong>!</strong>' specifies upper-/lower-case mapping for words or phrases before comparison with this stoplist (no mapping is applied to the words or regular expressions in this file, only to the source messages).  The second character on this line must be one of the following:
+
+</p>
+<ul>
+<li class="level1"><div class="li"> <strong>C</strong> no uppercase / lowercase mapping is performed</div>
+</li>
+<li class="level1"><div class="li"> <strong>F</strong> 'Title Case” words / terms are folded to lower case (default)</div>
+</li>
+<li class="level1"><div class="li"> <strong>I</strong> all words are mapped to lowercase</div>
+</li>
+</ul>
+
+<p>
+
+These correspond to the equivalent --preserve-case / --fold-titlecase / --ignore-case options to poterminology, but are completely independent and only apply to stoplist matching.  You can run poterminology with -I to map all terms to lowercase, and if the case mapping specifier in the stopword file is '<strong>!C</strong>' a stoplist with “pootle” in it will not prevent a term containing “Pootle” from passing the stoplist (and then being mapped to “pootle”).
+</p>
+
+<p>
+There should only be one case mapping specifier in a stoplist file; if more than one are present, the last one will take precedence over the others, and its mapping will apply to all entries.  If multiple stoplist files are used, the last case mapping specifier processed will apply to all entries <strong>in all files</strong>.
+</p>
+
+</div>
+<!-- SECTION "Case mapping specifiers" [1054-2325] -->
+<h3><a name="stoplist_regular_expressions" id="stoplist_regular_expressions">Stoplist regular expressions</a></h3>
+<div class="level3">
+
+<p>
+
+Lines beginning with a '<strong>/</strong>' are regular expression patterns - any word that matches will be ignored by itself, and any phrase containing it will be excluded as well.  The regular expression consists of all characters on the line following the initial '/' - these are extended regular expressions, so grouping, alternation, and such are available.
+</p>
+
+<p>
+Regular expression patterns are only checked if the word itself does not appear in the stoplist file as a word entry.  The regular expression patterns are always applied to individual words, not phrases, and must match the entire word (i.e. they are anchored both at the start and end).
+</p>
+
+<p>
+Use regular expressions sparingly, as evaluating them for every word in the source files can be expensive.  In addition to stoplist regular expressions, poterminology has precompiled patterns for C and Python format specifiers (e.g. %d) and <acronym title="Extensible Markup Language">XML</acronym>/<acronym title="HyperText Markup Language">HTML</acronym> <elements> and &entities; - these are removed before stoplist processing and it is not possible to override this. 
+</p>
+
+</div>
+<!-- SECTION "Stoplist regular expressions" [2326-3370] -->
+<h3><a name="stoplist_words" id="stoplist_words">Stoplist words</a></h3>
+<div class="level3">
+
+<p>
+
+All other lines should begin with one of the following characters, which indicate whether the word should be <strong>ignored</strong> (as a word alone), <strong>disregarded</strong> in a phrase (i.e. a phrase containing it is allowed, and the word does not count against the --term-words length limit), or any phrase containing it should be <strong>excluded</strong>.
+
+</p>
+<ul>
+<li class="level1"><div class="li"> <strong>+</strong> allow word alone, allow phrases containing it</div>
+</li>
+<li class="level1"><div class="li"> <strong>:</strong> allow word alone, disregarded (for --term-word-length) inside phrase</div>
+</li>
+<li class="level1"><div class="li"> <strong><</strong> allow word alone, but exclude any phrase containing it</div>
+</li>
+<li class="level1"><div class="li"> <strong>=</strong> ignore word alone, but allow phrases containing it</div>
+</li>
+<li class="level1"><div class="li"> <strong>></strong> ignore word alone, disregarded (for --term-word-length) inside phrase</div>
+</li>
+<li class="level1"><div class="li"> <strong>@</strong> ignore word alone, and exclude any phrase containing it</div>
+</li>
+</ul>
+
+<p>
+
+Generally '+' is only needed for exceptions to regular expression patterns, but it may also be used to override an entry in a previous stoplist if you are using multiple stoplists.
+</p>
+
+<p>
+Note that if a word appears multiple times in a stoplist file with different function characters preceding it, the <em class="u">last entry will take precedence</em> over the others.  This is the only exception to the general rule that order is not important in stopword files. 
+</p>
+
+</div>
+<!-- SECTION "Stoplist words" [3371-4581] -->
+<h2><a name="default_file_example" id="default_file_example">Default file example</a></h2>
+<div class="level2">
+<pre class="code"># apply title-case folding to words before comparing with this stoplist
+!F</pre>
+
+<p>
+
+The fold-titlecase setting is the default, even if it were not explicitly specified.  This allows capitalized words at the start of a sentence (e.g. “Who”) to match a stopword “who” but allows acronyms like WHO (World Health Organization) to be included in the terminology.  If you are using poterminology with source files that contain large amounts of ALL UPPERCASE TEXT you may find the ignore-case setting to be preferable. 
+
+</p>
+<pre class="code"># override regex match below for phrases with 'no'
++no</pre>
+
+<p>
+
+The regular expression /..? below would normally match the word 'no' and both ignore it as a term and exclude any phrases containing it.  The above will allow it to appear as a term and in phrases.
+
+</p>
+<pre class="code"># ignore all one or two-character words (unless =word appears below)
+/..?
+# ignore words with parenthesis, typically function() calls and the like
+/.*\(.*
+# ignore numbers, both cardinal (e.g. 1,234.0) and ordinal (e.g. 1st, 22nd)
+/[0-9,.]+(st|nd|rd|th)?</pre>
+
+<p>
+
+These regular expressions ignore a lot of uninteresting terms that are typically code or other things that shouldn't be translated anyhow.  There are many exceptions to the one or two-character word pattern in the default stoplist file, not only with = like '=in' but also '+no' and ':on' and '<ok' and '>of'.
+
+</p>
+<pre class="code"># allow these words by themselves and don't count against length for phrases
+:off
+:on</pre>
+
+<p>
+
+These prepositions are common as button text and thus useful to have as terms; they also form an important part of phrases so are disregarded for term word count to allow for slightly longer phrases including them.
+
+</p>
+<pre class="code"># allow these words by themselves, but ignore any phrases containing them
+<first
+<hello
+<last</pre>
+
+<p>
+
+These are words that are worth including in a terminology, as they are common in applications, but which aren't generally part of idiomatic phrases.
+
+</p>
+<pre class="code"># ignore these words by themselves, but allow phrases containing them
+=able
+=about
+=actually
+=ad
+=as
+=at</pre>
+
+<p>
+
+This is the largest category of stoplist words, and these are all just rather common words.  The purpose of a terminology list is to provide specific translation suggestions for the harder words or phrases, not provide a general dictionary, so these words are not of interest by themselves, but may well be part of an interesting phrase.
+
+</p>
+<pre class="code"># ignore these words by themselves, but allow phrases containing them,   and
+# don't count against length for phrases
+#
+# (possible additions to this list for multi-lingual text: >di >el >le)
+#
+>a
+>an
+>and</pre>
+
+<p>
+
+These very common words aren't of interest by themselves, but often form an important part of phrases so are disregarded for term word count to allow for slightly longer phrases including them.
+
+</p>
+<pre class="code"># ignore these words and any phrases containing them
+ at ain't
+ at aint
+ at al
+ at are</pre>
+
+<p>
+
+These are “junk” words that are not only uninteresting by themselves, they generally do not contribute anything to the phrases containing them.
+</p>
+
+</div>
+<!-- SECTION "Default file example" [4582-] --></body>
+</html>

Modified: translate-toolkit/branches/upstream/current/translate/filters/checks.py
URL: http://svn.debian.org/wsvn/translate-toolkit/branches/upstream/current/translate/filters/checks.py?rev=1409&op=diff
==============================================================================
--- translate-toolkit/branches/upstream/current/translate/filters/checks.py (original)
+++ translate-toolkit/branches/upstream/current/translate/filters/checks.py Sat Oct 11 15:15:59 2008
@@ -43,6 +43,10 @@
     from translate.storage import xliff
 except ImportError, e:
     xliff = None
+# The import of xliff fail silently in the absence of lxml if another module
+# already tried to import it unsuccessfully, so let's make 100% sure:
+if not hasattr(xliff, "xliffunit"):
+    xliff = None
 import re
 
 # These are some regular expressions that are compiled for use in some tests
@@ -112,7 +116,11 @@
         if not isinstance(messages, list):
             messages = [messages]
         assert isinstance(messages[0], unicode)  # Assumption: all of same type
-        Exception.__init__(self, u", ".join(messages))
+        joined = u", ".join(messages)
+        Exception.__init__(self, joined)
+        # Python 2.3 doesn't have .args
+        if not hasattr(self, "args"):
+            self.args = joined
 
 class SeriousFilterFailure(FilterFailure):
     """This exception signals that a Filter didn't pass, and the bad translation 
@@ -360,11 +368,11 @@
             filterresult = True
             for pluralform in unit.target.strings:
                 try:
-                    if not test(self.str1, pluralform):
+                    if not test(self.str1, unicode(pluralform)):
                         filterresult = False
                 except FilterFailure, e:
                     filterresult = False
-                    filtermessages.append( str(e).decode('utf-8') )
+                    filtermessages.append( unicode(e.args) )
             if not filterresult and filtermessages:
                 raise FilterFailure(filtermessages)
             else:
@@ -757,9 +765,9 @@
             if word1 != "--" and word1.startswith("--") and word1[-1].isalnum():
                 parts = word1.split("=")
                 if not parts[0] in str2:
-                    raise FilterFailure("The option %s does not occur or is translated in the translation." % parts[0]) 
+                    raise FilterFailure(u"The option %s does not occur or is translated in the translation." % parts[0]) 
                 if len(parts) > 1 and parts[1] in str2:
-                    raise FilterFailure("The parameter %(param)s in option %(option)s is not translated." % {"param": parts[0], "option": parts[1]})
+                    raise FilterFailure(u"The parameter %(param)s in option %(option)s is not translated." % {"param": parts[1], "option": parts[0]})
         return True
 
     def startcaps(self, str1, str2):

Modified: translate-toolkit/branches/upstream/current/translate/filters/spelling.py
URL: http://svn.debian.org/wsvn/translate-toolkit/branches/upstream/current/translate/filters/spelling.py?rev=1409&op=diff
==============================================================================
--- translate-toolkit/branches/upstream/current/translate/filters/spelling.py (original)
+++ translate-toolkit/branches/upstream/current/translate/filters/spelling.py Sat Oct 11 15:15:59 2008
@@ -42,7 +42,7 @@
         if not checkers[lang]:
             return
         spellchecker = checkers[lang]
-        spellchecker.set_text(text)
+        spellchecker.set_text(unicode(text))
         for err in spellchecker:
             yield err.word, err.wordpos, err.suggest()
 

Modified: translate-toolkit/branches/upstream/current/translate/lang/data.py
URL: http://svn.debian.org/wsvn/translate-toolkit/branches/upstream/current/translate/lang/data.py?rev=1409&op=diff
==============================================================================
--- translate-toolkit/branches/upstream/current/translate/lang/data.py (original)
+++ translate-toolkit/branches/upstream/current/translate/lang/data.py Sat Oct 11 15:15:59 2008
@@ -193,7 +193,10 @@
        @param normal_form: NFC (default), NFD, NFCK, NFDK
        @return: Normalized string
     """
-    return unicodedata.normalize(normal_form, string)
+    if string is None:
+        return None
+    else:
+        return unicodedata.normalize(normal_form, string)
 
 def forceunicode(string):
     """Helper method to ensure that the parameter becomes unicode if not yet"""

Modified: translate-toolkit/branches/upstream/current/translate/misc/optrecurse.py
URL: http://svn.debian.org/wsvn/translate-toolkit/branches/upstream/current/translate/misc/optrecurse.py?rev=1409&op=diff
==============================================================================
--- translate-toolkit/branches/upstream/current/translate/misc/optrecurse.py (original)
+++ translate-toolkit/branches/upstream/current/translate/misc/optrecurse.py Sat Oct 11 15:15:59 2008
@@ -260,7 +260,7 @@
         inputoption.required = True
         self.define_option(inputoption)
         excludeoption = optparse.Option("-x", "--exclude", dest="exclude", action="append",
-                type="string", default=["CVS", ".svn", "_darcs"], metavar="EXCLUDE",
+                type="string", default=["CVS", ".svn", "_darcs", ".git", ".hg", ".bzr"], metavar="EXCLUDE",
                 help="exclude names matching EXCLUDE from input paths")
         self.define_option(excludeoption)
         outputformathelp = self.getformathelp(outputformats)

Added: translate-toolkit/branches/upstream/current/translate/share/stoplist-en
URL: http://svn.debian.org/wsvn/translate-toolkit/branches/upstream/current/translate/share/stoplist-en?rev=1409&op=file
==============================================================================
--- translate-toolkit/branches/upstream/current/translate/share/stoplist-en (added)
+++ translate-toolkit/branches/upstream/current/translate/share/stoplist-en Sat Oct 11 15:15:59 2008
@@ -1,0 +1,860 @@
+#
+# Stoplist of common English words to exclude from terminology
+#
+# Lines beginning with a '#' are comments; empty lines are ignored
+#
+# A line beginning with a '!' specifies upper- / lower-case mapping for words
+# or phrases before comparison with this stoplist (no mapping is applied to
+# the words or regex in this file, only to the source messages).  The second
+# character on this line must be one of the following:
+#
+# 'C' no uppercase / lowercase mapping is performed
+# 'F' 'Title Case" words / terms are folded to lower case (default)
+# 'I' all words are mapped to lowercase 
+#
+# (note that this uppercase / lowercase mapping is independent of -F/-C/-I
+#  arguments for case sensitivity provided to poterminology itself)
+#
+# Lines beginning with a '/' are regex patterns - any word that matches will
+# be ignored by itself, and any phrase containing it will be ignored as well
+# (note, regex patterns will NOT be checked if an exact word match is found,
+# and regex patterns are always applied to individual words, not phrases)
+#
+# All other lines should begin with one of the following characters, which
+# indicate whether the word should be ignored (as a word alone), disregarded
+# in a phrase (i.e. phrase containing it is allowed, and word does not count
+# against --term-word-length limit), or any phrase containing it should be
+# ignored. (Note: use of '+' is only needed for exceptions to regex patterns.)
+#
+# '+' allow word alone, allow phrases containing it (regardless of regex match)
+# ':' allow word alone, disregarded (for --term-word-length) inside phrase
+# '<' allow word alone, but ignore any phrase containing it
+# '=' ignore word alone, but allow phrases containing it
+# '>' ignore word alone, disregarded (for --term-word-length) inside phrase
+# '@' ignore word alone, and ignore any phrase containing it
+#
+
+# apply title-case folding to words before comparing with this stoplist
+!F
+
+# override regex match below for phrases with 'no'
++no
+
+# ignore all one or two-character words (unless =word appears below)
+/..?
+# ignore words with parenthesis, typically function() calls and the like
+/.*\(.*
+# ignore numbers, both cardinal (e.g. 1,234.0) and ordinal (e.g. 1st, 22nd)
+/[0-9,.]+(st|nd|rd|th)?
+
+# allow these words by themselves and don't count against length for phrases
+:off
+:on
+
+# allow these words by themselves, but ignore any phrases containing them
+<first
+<hello
+<last
+<next
+<ok
+<second
+<welcome
+<yes
+
+# ignore these words by themselves, but allow phrases containing them
+=able
+=about
+=above
+=according
+=accordingly
+=across
+=actually
+=ad
+=after
+=afterwards
+=again
+=against
+=all
+=allow
+=allowing
+=allows
+=almost
+=alone
+=along
+=already
+=also
+=although
+=always
+=am
+=among
+=amongst
+=another
+=any
+=anybody
+=anyhow
+=anyone
+=anything
+=anyway
+=anyways
+=anywhere
+=apart
+=appear
+=approach
+=appropriate
+=area
+=areas
+=around
+=as
+=aside
+=ask
+=asking
+=aspects
+=associated
+=at
+=available
+=away
+=awfully
+=backed
+=backing
+=backs
+=based
+=became
+=because
+=become
+=becomes
+=becoming
+=before
+=beforehand
+=began
+=behind
+=being
+=beings
+=believe
+=below
+=beside
+=besides
+=best
+=better
+=between
+=beyond
+=big
+=both
+=brief
+=briefly
+=called
+=came
+=case
+=cases
+=cause
+=causes
+=certain
+=certainly
+=changes
+=clear
+=clearly
+=co
+=com
+=come
+=comes
+=concerned
+=concerning
+=consequently
+=consider
+=considered
+=considering
+=contain
+=containing
+=contains
+=corresponding
+=course
+=current
+=currently
+=definitely
+=degree
+=degrees
+=described
+=describes
+=despite
+=did
+=differ
+=different
+=differently
+=difficult
+=directly
+=discussed
+=discusses
+=doing
+=done
+=down
+=downed
+=downing
+=downs
+=downwards
+=during
+=each
+=early
+=easily
+=easy
+=edu
+=effects
+=either
+=else
+=elsewhere
+=end
+=ended
+=ending
+=ends
+=enough
+=entirely
+=especially
+=etc
+=even
+=evenly
+=ever
+=everybody
+=everyone
+=everything
+=everywhere
+=ex
+=exactly
+=examined
+=examines
+=example
+=excellent
+=face
+=faces
+=fact
+=facts
+=far
+=felt
+=few
+=find
+=finds
+=followed
+=following
+=follows
+=former
+=formerly
+=forth
+=full
+=fully
+=further
+=furthered
+=furthering
+=furthermore
+=furthers
+=gave
+=general
+=generally
+=get
+=gets
+=getting
+=give
+=given
+=gives
+=go
+=goes
+=going
+=gone
+=good
+=goods
+=got
+=gotten
+=great
+=greater
+=greatest
+=group
+=grouping
+=groups
+=happens
+=hardly
+=having
+=hence
+=her
+=hereafter
+=hi
+=high
+=highest
+=him
+=his
+=hopefully
+=how
+=however
+=ignored
+=immediate
+=importance
+=important
+=in
+=inasmuch
+=inc
+=include
+=included
+=includes
+=including
+=increased
+=increasing
+=indeed
+=indicate
+=indicated
+=indicates
+=inner
+=insofar
+=instead
+=interest
+=interested
+=interesting
+=interests
+=into
+=inward
+=itself
+=just
+=keep
+=keeps
+=kept
+=kind
+=kinds
+=knew
+=know
+=known
+=knows
+=lack
+=large
+=largely
+=lately
+=later
+=latest
+=latterly
+=less
+=lest
+=let
+=let's
+=like
+=liked
+=likely
+=little
+=long
+=longer
+=longest
+=look
+=looking
+=looks
+=low
+=ltd
+=made
+=mainly
+=maintains
+=major
+=make
+=makes
+=making
+=man
+=many
+=maybe
+=me
+=mean
+=means
+=member
+=members
+=men
+=mm
+=mr
+=mrs
+=ms
+=my
+=myself
+=name
+=near
+=nearly
+=necessary
+=need
+=needed
+=needing
+=needs
+=nevertheless
+=new
+=newer
+=newest
+=nobody
+=non
+=none
+=noone
+=normally
+=not
+=nothing
+=novel
+=now
+=nowhere
+=number
+=numbers
+=oh
+=okay
+=old
+=older
+=oldest
+=ones
+=onto
+=open
+=opened
+=opening
+=opens
+=order
+=ordered
+=ordering
+=orders
+=org
+=otherwise
+=ought
+=our
+=ourselves
+=out
+=outlined
+=outlines
+=outside
+=over
+=overall
+=own
+=part
+=parted
+=particular
+=particularly
+=parting
+=parts
+=per
+=place
+=placed
+=places
+=please
+=plus
+=point
+=pointed
+=pointing
+=points
+=possible
+=present
+=presented
+=presenting
+=presents
+=presumably
+=probably
+=problem
+=problems
+=provide
+=provided
+=provides
+=providing
+=put
+=puts
+=quickly
+=quite
+=really
+=reasonably
+=regarding
+=regardless
+=regards
+=relatively
+=require
+=required
+=requires
+=respectively
+=result
+=results
+=right
+=room
+=rooms
+=s
+=said
+=saw
+=say
+=saying
+=says
+=see
+=seeing
+=seen
+=sees
+=self
+=selves
+=sensible
+=sent
+=serious
+=seriously
+=set
+=shall
+=show
+=showed
+=showing
+=shows
+=side
+=sides
+=similar
+=simply
+=simulation
+=small
+=smaller
+=smallest
+=soon
+=sorry
+=specified
+=specify
+=specifying
+=state
+=states
+=sub
+=suggest
+=suggested
+=suggestions
+=suggests
+=sure
+=take
+=taken
+=tell
+=tends
+=thank
+=thanks
+=theirs
+=thence
+=thereupon
+=thing
+=things
+=think
+=thinks
+=thorough
+=thoroughly
+=thought
+=thoughts
+=took
+=toward
+=towards
+=tried
+=tries
+=truly
+=try
+=trying
+=turn
+=turned
+=turning
+=turns
+=type
+=types
+=un
+=under
+=undertaken
+=unfortunately
+=unless
+=unlikely
+=until
+=unto
+=up
+=upon
+=us
+=use
+=used
+=useful
+=uses
+=using
+=value
+=various
+=via
+=viz
+=w
+=want
+=wanted
+=wanting
+=wants
+=way
+=ways
+=well
+=wells
+=went
+=whatever
+=when
+=whence
+=whenever
+=where
+=whereafter
+=whereas
+=whereby
+=wherein
+=whereupon
+=wherever
+=whither
+=whoever
+=whole
+=whom
+=whose
+=why
+=wide
+=willing
+=wish
+=with
+=within
+=without
+=wonder
+=work
+=worked
+=working
+=works
+=year
+=years
+=yet
+=you
+=young
+=younger
+=youngest
+=your
+=yourself
+=yourselves
+
+# ignore these words by themselves, but allow phrases containing them, and
+# don't count against length for phrases
+#
+# (possible additions to this list for multi-lingual text: >di >el >le)
+#
+>a
+>an
+>and
+>by
+>de
+>do
+>does
+>en
+>for
+>from
+>la
+>of
+>the
+>to
+>und
+
+# ignore these words and any phrases containing them
+ at ain't
+ at aint
+ at al
+ at are
+ at aren't
+ at be
+ at been
+ at but
+ at can
+ at can't
+ at cannot
+ at cant
+ at could
+ at couldn't
+ at couldnt
+ at didn't
+ at didnt
+ at doesn't
+ at doesnt
+ at don
+ at don't
+ at dont
+ at eg
+ at eight
+ at eighteen
+ at eighth
+ at eighty
+ at eleven
+ at et
+ at every
+ at except
+ at fifteen
+ at fifth
+ at fifty
+ at five
+ at four
+ at fourteen
+ at fourth
+ at fourty
+ at had
+ at hadn't
+ at has
+ at hasn't
+ at have
+ at haven't
+ at he
+ at he's
+ at here
+ at here's
+ at hers
+ at herself
+ at hes
+ at himself
+ at hundred
+ at i'd
+ at i'll
+ at i'm
+ at i've
+ at ie
+ at if
+ at ii
+ at iii
+ at is
+ at isn't
+ at isnt
+ at it
+ at it'd
+ at it'll
+ at it's
+ at its
+ at iv
+ at ix
+ at latter
+ at least
+ at made
+ at may
+ at meanwhile
+ at merely
+ at might
+ at more
+ at moreover
+ at most
+ at mostly
+ at much
+ at must
+ at namely
+ at nd
+ at neither
+ at never
+ at nine
+ at nineteen
+ at ninety
+ at ninth
+ at nor
+ at obviously
+ at often
+ at once
+ at one
+ at only
+ at or
+ at other
+ at others
+ at ours
+ at perhaps
+ at qv
+ at rather
+ at rd
+ at re
+ at same
+ at secondly
+ at seconds
+ at seem
+ at seemed
+ at seeming
+ at seems
+ at seven
+ at seventeen
+ at seventh
+ at seventy
+ at several
+ at she
+ at should
+ at shouldn't
+ at shouldnt
+ at since
+ at six
+ at sixteen
+ at sixth
+ at sixty
+ at so
+ at some
+ at somebody
+ at somehow
+ at someone
+ at something
+ at sometime
+ at sometimes
+ at somewhat
+ at somewhere
+ at st
+ at still
+ at such
+ at th
+ at than
+ at that
+ at that's
+ at thats
+ at their
+ at them
+ at themselves
+ at then
+ at there
+ at there's
+ at thereafter
+ at thereby
+ at therefore
+ at theres
+ at theres
+ at these
+ at they
+ at they'd
+ at they'll
+ at they're
+ at they've
+ at third
+ at thirteen
+ at thirty
+ at this
+ at those
+ at though
+ at three
+ at through
+ at throughout
+ at thru
+ at thus
+ at together
+ at too
+ at twelve
+ at twenty
+ at twice
+ at two
+ at usually
+ at very
+ at vi
+ at vii
+ at viii
+ at vs
+ at was
+ at wasn't
+ at wasnt
+ at we
+ at we'd
+ at we'll
+ at we're
+ at we've
+ at were
+ at weren't
+ at werent
+ at what
+ at what's
+ at whats
+ at where's
+ at whether
+ at which
+ at while
+ at who
+ at who's
+ at will
+ at won't
+ at wont
+ at would
+ at wouldn't
+ at wouldnt
+ at www
+ at xi
+ at xii
+ at xiii
+ at xiv
+ at xix
+ at xv
+ at xvi
+ at xvii
+ at xviii
+ at xx
+ at xxi
+ at you'd
+ at you'll
+ at you're
+ at you've
+ at yours
+ at zero
+

Modified: translate-toolkit/branches/upstream/current/translate/storage/base.py
URL: http://svn.debian.org/wsvn/translate-toolkit/branches/upstream/current/translate/storage/base.py?rev=1409&op=diff
==============================================================================
--- translate-toolkit/branches/upstream/current/translate/storage/base.py (original)
+++ translate-toolkit/branches/upstream/current/translate/storage/base.py Sat Oct 11 15:15:59 2008
@@ -319,8 +319,15 @@
     """Base class for stores for multiple translation units of type UnitClass."""
 
     UnitClass = TranslationUnit
+    """The class of units that will be instantiated and used by this class"""
+    Name = "Base translation store"
+    """The human usable name of this store type"""
     Mimetypes = None
+    """A list of MIME types associated with this store type"""
     Extensions = None
+    """A list of file extentions associated with this store type"""
+    _binary = False
+    """Indicates whether a file should be accessed as a binary file."""
 
     def __init__(self, unitclass=None):
         """Constructs a blank TranslationStore."""
@@ -467,7 +474,10 @@
     def savefile(self, storefile):
         """Writes the string representation to the given file (or filename)."""
         if isinstance(storefile, basestring):
-            storefile = open(storefile, "w")
+            mode = 'w'
+            if self._binary:
+                mode = 'wb'
+            storefile = open(storefile, mode)
         self.fileobj = storefile
         self._assignname()
         storestring = str(self)
@@ -477,24 +487,30 @@
     def save(self):
         """Save to the file that data was originally read from, if available."""
         fileobj = getattr(self, "fileobj", None)
+        mode = 'w'
+        if self._binary:
+            mode = 'wb'
         if not fileobj:
             filename = getattr(self, "filename", None)
             if filename:
-                fileobj = file(filename, "w")
+                fileobj = file(filename, mode)
         else:
             fileobj.close()
             filename = getattr(fileobj, "name", getattr(fileobj, "filename", None))
             if not filename:
                 raise ValueError("No file or filename to save to")
-            fileobj = fileobj.__class__(filename, "w")
+            fileobj = fileobj.__class__(filename, mode)
         self.savefile(fileobj)
 
     def parsefile(cls, storefile):
         """Reads the given file (or opens the given filename) and parses back to an object."""
 
+        mode = 'r'
+        if cls._binary:
+            mode = 'rb'
         if isinstance(storefile, basestring):
-            storefile = open(storefile, "r")
-        mode = getattr(storefile, "mode", "r")
+            storefile = open(storefile, mode)
+        mode = getattr(storefile, "mode", mode)
         #For some reason GzipFile returns 1, so we have to test for that here
         if mode == 1 or "r" in mode:
             storestring = storefile.read()

Modified: translate-toolkit/branches/upstream/current/translate/storage/mo.py
URL: http://svn.debian.org/wsvn/translate-toolkit/branches/upstream/current/translate/storage/mo.py?rev=1409&op=diff
==============================================================================
--- translate-toolkit/branches/upstream/current/translate/storage/mo.py (original)
+++ translate-toolkit/branches/upstream/current/translate/storage/mo.py Sat Oct 11 15:15:59 2008
@@ -30,11 +30,15 @@
 
 """Module for parsing Gettext .mo files for translation.
 
-The coding of .mo files was produced from documentation in Gettext 0.16 and 
-from observation and testing of existing .mo files in the wild.
-
-The class does not implement any of the hashing componets of Gettext.  This 
-will probably make the output file slower in some instances.
+The coding of .mo files was produced from U{Gettext documentation
+<http://www.gnu.org/software/gettext/manual/gettext.html#MO-Files>},
+Pythons msgfmt.py and by observing and testing existing .mo files in the wild.
+
+The hash algorithm is implemented for MO files, this should result in 
+faster access of the MO file.  The hash is optional for Gettext
+and is not needed for reading or writing MO files, in this implementation
+it is always on and does produce sometimes different results to Gettext
+in very small files.
 """
 
 from translate.storage import base
@@ -123,6 +127,8 @@
     Name = "Gettext MO file"
     Mimetypes  = ["application/x-gettext-catalog", "application/x-mo"]
     Extensions = ["mo", "gmo"]
+    _binary = True
+
     def __init__(self, inputfile=None, unitclass=mounit):
         self.UnitClass = unitclass
         base.TranslationStore.__init__(self, unitclass=unitclass)

Modified: translate-toolkit/branches/upstream/current/translate/storage/qm.py
URL: http://svn.debian.org/wsvn/translate-toolkit/branches/upstream/current/translate/storage/qm.py?rev=1409&op=diff
==============================================================================
--- translate-toolkit/branches/upstream/current/translate/storage/qm.py (original)
+++ translate-toolkit/branches/upstream/current/translate/storage/qm.py Sat Oct 11 15:15:59 2008
@@ -64,6 +64,7 @@
     UnitClass = qmunit
     Mimetypes  = ["application/x-qm"]
     Extensions = ["qm"]
+    _binary = True
     def __init__(self, inputfile=None, unitclass=qmunit):
         self.UnitClass = unitclass
         base.TranslationStore.__init__(self, unitclass=unitclass)

Modified: translate-toolkit/branches/upstream/current/translate/storage/qph.py
URL: http://svn.debian.org/wsvn/translate-toolkit/branches/upstream/current/translate/storage/qph.py?rev=1409&op=diff
==============================================================================
--- translate-toolkit/branches/upstream/current/translate/storage/qph.py (original)
+++ translate-toolkit/branches/upstream/current/translate/storage/qph.py Sat Oct 11 15:15:59 2008
@@ -30,7 +30,6 @@
 """
 
 from translate.storage import lisa
-from translate.misc.multistring import multistring
 from lxml import etree
 
 class QphUnit(lisa.LISAunit):
@@ -59,20 +58,6 @@
         def not_none(node):
             return not node is None
         return filter(not_none, [self._getsourcenode(), self._gettargetnode()])
-
-    def settarget(self, text):
-        #Firstly deal with reinitialising to None or setting to identical string
-        if self.gettarget() == text:
-            return
-        self._gettargetnode().text = text
-
-    def gettarget(self):
-        targetnode = self._gettargetnode()
-        if targetnode is None:
-            etree.SubElement(self.xmlelement, self.namespaced("target"))
-            return None
-        return targetnode.text or u""
-    target = property(gettarget, settarget)
 
     def addnote(self, text, origin=None):
         """Add a note specifically in a "definition" tag"""

Modified: translate-toolkit/branches/upstream/current/translate/storage/statsdb.py
URL: http://svn.debian.org/wsvn/translate-toolkit/branches/upstream/current/translate/storage/statsdb.py?rev=1409&op=diff
==============================================================================
--- translate-toolkit/branches/upstream/current/translate/storage/statsdb.py (original)
+++ translate-toolkit/branches/upstream/current/translate/storage/statsdb.py Sat Oct 11 15:15:59 2008
@@ -237,11 +237,12 @@
                 try:
                     cache.cur.execute("""SELECT toolkitbuild FROM files""")
                     val = cache.cur.fetchone()
-                    if val is not None:
-                        if val[0] < toolkitversion.build:
-                            del cache
-                            os.unlink(statsfile)
-                            return True
+                    # If the database is empty, we have no idea whether its layout
+                    # is correct, so we might as well delete it.
+                    if val is None or val[0] < toolkitversion.build:
+                        del cache
+                        os.unlink(statsfile)
+                        return True
                     return False
                 except dbapi2.OperationalError:
                     return False

Modified: translate-toolkit/branches/upstream/current/translate/storage/ts2.py
URL: http://svn.debian.org/wsvn/translate-toolkit/branches/upstream/current/translate/storage/ts2.py?rev=1409&op=diff
==============================================================================
--- translate-toolkit/branches/upstream/current/translate/storage/ts2.py (original)
+++ translate-toolkit/branches/upstream/current/translate/storage/ts2.py Sat Oct 11 15:15:59 2008
@@ -36,6 +36,7 @@
 
 from translate.storage import lisa
 from translate.misc.multistring import multistring
+from translate.lang import data
 from lxml import etree
 
 # TODO: handle translation types
@@ -98,7 +99,7 @@
         if self.hasplural():
             return multistring([sourcenode.text])
         else:
-            return sourcenode.text
+            return data.forceunicode(sourcenode.text)
     source = property(getsource, lisa.LISAunit.setsource)
 
     def settarget(self, text):
@@ -129,7 +130,7 @@
             numerus_nodes = targetnode.findall(self.namespaced("numerusform"))
             return multistring([node.text for node in numerus_nodes])
         else:
-            return targetnode.text or u""
+            return data.forceunicode(targetnode.text) or u""
     target = property(gettarget, settarget)
 
     def hasplural(self):
@@ -228,7 +229,7 @@
     """Class representing a XLIFF file store."""
     UnitClass = tsunit
     Name = "Qt Linguist Translation File"
-    Mimetypes  = ["Qt Linguist Translation File"]
+    Mimetypes  = ["application/x-linguist"]
     Extensions = ["ts"]
     rootNode = "TS"
     # We will switch out .body to fit with the context we are working on

Modified: translate-toolkit/branches/upstream/current/translate/storage/txt.py
URL: http://svn.debian.org/wsvn/translate-toolkit/branches/upstream/current/translate/storage/txt.py?rev=1409&op=diff
==============================================================================
--- translate-toolkit/branches/upstream/current/translate/storage/txt.py (original)
+++ translate-toolkit/branches/upstream/current/translate/storage/txt.py Sat Oct 11 15:15:59 2008
@@ -103,7 +103,7 @@
         if inputfile is not None:
             txtsrc = inputfile.readlines()
             self.parse(txtsrc)
-        self.encoding = "utf-8"
+        self.encoding = encoding
 
     def parse(self, lines):
         """Read in text lines and create txtunits from the blocks of text"""

Modified: translate-toolkit/branches/upstream/current/translate/tools/pocount.py
URL: http://svn.debian.org/wsvn/translate-toolkit/branches/upstream/current/translate/tools/pocount.py?rev=1409&op=diff
==============================================================================
--- translate-toolkit/branches/upstream/current/translate/tools/pocount.py (original)
+++ translate-toolkit/branches/upstream/current/translate/tools/pocount.py Sat Oct 11 15:15:59 2008
@@ -172,7 +172,7 @@
 
     def handledir(self, dirname):
         path, name = os.path.split(dirname)
-        if name in ["CVS", ".svn", "_darcs"]:
+        if name in ["CVS", ".svn", "_darcs", ".git", ".hg", ".bzr"]:
             return
         entries = os.listdir(dirname)
         self.handlefiles(dirname, entries)

Modified: translate-toolkit/branches/upstream/current/translate/tools/pogrep.py
URL: http://svn.debian.org/wsvn/translate-toolkit/branches/upstream/current/translate/tools/pogrep.py?rev=1409&op=diff
==============================================================================
--- translate-toolkit/branches/upstream/current/translate/tools/pogrep.py (original)
+++ translate-toolkit/branches/upstream/current/translate/tools/pogrep.py Sat Oct 11 15:15:59 2008
@@ -66,6 +66,8 @@
         self.includeheader = includeheader
 
     def matches(self, teststr):
+        if teststr is None:
+            return False
         teststr = data.normalize(teststr)
         if self.ignorecase:
             teststr = teststr.lower()




More information about the Debian-l10n-commits mailing list