Modified get_mod_info to raise an exception when it is passed a directory.
[translate_toolkit.git] / ChangeLog
blob0ee34aa886fec5ed9beead6f861fa53bbdeb030d
1 2008-03-18 21:26  friedelwolff
3         * lang/data.py: Correct plural information for Hungarian
5 2008-03-18 14:27  friedelwolff
7         * __version__.py: Version 1.1.1
9 2008-03-18 12:01  friedelwolff
11         * search/indexer/__init__.py: Disable support for lucene 2.3 while
12           we don't yet support it.
14 2008-03-17 07:44  dwaynebailey
16         * tools/podebug.py: Break "ignore" rules into application soecific
17           rules. Add all infrastructure to
18           allow a user to specify which ignore rules to apply. Implement
19           ignore rules
20           for Mozilla.
22 2008-03-14 16:57  dwaynebailey
24         * tools/podebug.py: Fix getattr to work when we don't have any
25           rewritestyle.
27 2008-03-14 15:20  dwaynebailey
29         * tools/podebug.py: Cleaner use of getattr
31 2008-03-14 13:31  dwaynebailey
33         * tools/podebug.py: Add a 'blank' rewrite style. This will simply
34           remove the translations from a PO file.
36 2008-03-14 12:52  friedelwolff
38         * lang/test_ar.py: Test Arabic (ar) punctuation translation and
39           sentence segmentation
41 2008-03-14 12:50  friedelwolff
43         * lang/test_am.py: Test Amharic (am) punctuation translation and
44           sentence segmentation
46 2008-03-14 12:48  friedelwolff
48         * lang/ml.py: Basic support for Malayalam (disabling case-related
49           tests)
51 2008-03-14 12:38  friedelwolff
53         * lang/ur.py: Update copyright date and remove comments inherited
54           from fa.py
56 2008-03-13 14:21  friedelwolff
58         * lang/ur.py: Basic support for Urdu (punctuation)
60 2008-03-13 12:39  friedelwolff
62         * storage/base.py: Simplify TranslationStore.isempty() - hopefully
63           a small performance improvement
65 2008-03-13 09:39  friedelwolff
67         * setup.py: Install pocommentclean
69 2008-03-13 08:56  friedelwolff
71         * storage/cpo.py: Temporarily disable freeing the memory - this
72           still causes segmentation faults. The current code will leak
73           memory, but mostly works and leaves things available for somebody
74           to finish this development work.
76 2008-03-13 08:06  larskr
78         * search/indexer/__init__.py: change the version check from
79           "PYLUCENE_VERSION" to "VERSION" (tested for v1.9, v.2.2 and
80           v.2.3)
81           support for PyLucene v2.3 added (the module name changed)
82           print warning and skip loading for PyLucene v2.3.0/1 - these
83           versions cause a segmentation fault
85 2008-03-12 21:12  dwaynebailey
87         * filters/pofilter.py: Improve doc string
89 2008-03-12 21:07  dwaynebailey
91         * tools/pocompile.py, tools/poconflicts.py, tools/pocount.py,
92           tools/podebug.py, tools/pogrep.py, tools/pomerge.py,
93           tools/porestructure.py, tools/posegment.py, tools/poswap.py:
94           Update doc strings for better manpage creation. Added wiki URLs
95           for all docs.
97 2008-03-12 20:53  friedelwolff
99         * CREDITS: Credit Lars Kruse
101 2008-03-12 20:42  dwaynebailey
103         * misc/optrecurse.py: Fixe a typo in the first (commented line) of
104           the generated manpages, eliminates
105           some error message from generated documentation. Patch
106           contributed by Nicolas FRANCOIS.
108 2008-03-12 13:36  dwaynebailey
110         * convert/roundtrip-OOo: Add a roundtrip scrip that will download
111           and test rountrip. If you see any lines following
112           the analysis phase then there are issues that need to be fixed.
113           No lines means we're A OK.
115 2008-03-12 13:34  dwaynebailey
117         * convert/po2oo.py, convert/test_po2oo.py: Handle entities that are
118           just spaces correctly. This should fix ' ' non-breaking space and
119           friends.
120           A test is included but it is disabled becuase of issues in pypo
121           chain (isempty, isblank, isblankmsgstr)
123 2008-03-12 11:50  friedelwolff
125         * storage/oo.py: Add '<empty>' as an exception for escaping in
126           helpcontent
128 2008-03-12 11:47  friedelwolff
130         * convert/test_po2oo.py: Test for special non-escaped string with
131           '<empty>' from OOo300DEVm2, reported by Kevin Scannell
133 2008-03-11 11:27  dwaynebailey
135         * convert/test_dtd2po.py, storage/dtd.py: Fix so that multiline
136           entries can end on '[space]> if needed.
138 2008-03-05 14:13  friedelwolff
140         * storage/lisa.py: Force writing out an XML decleration. This fixes
141           bug 344 and restores compatibility with at least OmegaT and WF.
143 2008-03-03 13:18  friedelwolff
145         * search/match.py: Revert r7040 that broke comments migration
146           inpot2po. Add comment explaining the problem.
148 2008-02-29 13:08  friedelwolff
150         * __version__.py: Version 1.1.1rc4
152 2008-02-29 08:31  friedelwolff
154         * search/match.py: Add all notes to TM matches (this shows #.
155           comments from the terminology project in the tooltips of Pootle
156           terminology matches, for example)
158 2008-02-29 07:40  friedelwolff
160         * convert/pot2po.py: Test that the template PO file actually has
161           any units before trying to use them
163 2008-02-29 07:37  friedelwolff
165         * search/indexer/__init__.py: Update code to work both with
166           PyLucene 1 and 2. Contributed by Nicolas François and Lars Kruse.
168 2008-02-18 11:08  friedelwolff
170         * storage/oo.py: Rather allow spaces only before the '/' in self
171           closing tags
173 2008-02-18 10:10  friedelwolff
175         * filters/checks.py: Attempt to continue as meaningfully as
176           possible when lxml is not installed
178 2008-02-18 09:24  friedelwolff
180         * __version__.py: Version 1.1.1rc3
182 2008-02-18 09:22  friedelwolff
184         * storage/oo.py: Allow more liberal spacing around properties and
185           closing tags for helpcontent tags
187 2008-02-18 09:21  friedelwolff
189         * convert/oo2po.py: Improve error message on missing languages
191 2008-02-18 09:20  friedelwolff
193         * convert/test_po2oo.py: Test escaping of helpcontent with unusual
194           spacing around properties and closing tags
196 2008-02-18 07:43  friedelwolff
198         * convert/po2oo.py, convert/xliff2oo.py: Don't add lines
199           corresponding to untranslated units. (basically a revert of
200           revision 6863)
202 2008-02-15 14:40  friedelwolff
204         * storage/cpo.py: Reenable the code to free memory. Fix it by
205           setting the references to None
207 2008-02-15 13:57  friedelwolff
209         * storage/cpo.py, storage/pypo.py, storage/test_po.py: Don't take
210           plurals into consideration for pounit.getid().
211           
212           Gettext does not consider the plural to determine duplicates,
213           only
214           the msgid. For generation of .mo files, we might want to use the
215           plural
216           code to generate the entry for the hash table, but for now, it is
217           commented out for conformance to duplicate detection in gettext.
219 2008-02-15 13:45  friedelwolff
221         * storage/cpo.py: Ensure that pounit.getid() never returns None
223 2008-02-15 13:44  friedelwolff
225         * storage/cpo.py: Rewrite pounit.isheader() to work with non-ascii
226           msgids
228 2008-02-15 13:43  friedelwolff
230         * storage/test_po.py: Test pounit.isheader()
232 2008-02-15 13:42  friedelwolff
234         * storage/test_po.py: More uniform testing in test_id(). +Header
235           test.
237 2008-02-15 09:39  friedelwolff
239         * storage/cpo.py: Raise exceptions on on all gettext PO errors, not
240           just fatal ones. Now we should fail on format errors, etc. This
241           closes bug 299.
243 2008-02-15 09:28  friedelwolff
245         * storage/cpo.py: Fix incorrect variable name in xerror2_cb()
247 2008-02-15 09:27  friedelwolff
249         * storage/cpo.py: Align variables of xerror2_cb() with those in
250           gettext
252 2008-02-15 09:15  friedelwolff
254         * storage/cpo.py: Update docstring for the module so people (me)
255           know where to find the header file in gettext. Also mention
256           necessary versions.
258 2008-02-15 08:59  friedelwolff
260         * storage/cpo.py: use find_library on Windows as well, and make
261           sure we can use libraries loaded from LD_LIBRARY_PATH or with
262           LD_PRELOAD
264 2008-02-15 08:27  friedelwolff
266         * storage/cpo.py: Implement pounit.getid() for cpo. This closes bug
267           308.
269 2008-02-15 08:25  friedelwolff
271         * storage/pypo.py: Take plurals into consideration in unit.getid()
273 2008-02-15 07:29  friedelwolff
275         * storage/test_po.py: Tets getid implementation for PO (must
276           correspond to mo)
278 2008-02-14 18:08  dwaynebailey
280         * setup.py: Package ini2po
282 2008-02-13 15:24  friedelwolff
284         * storage/xliff.py: Add notes about refactoring possibilities
286 2008-02-11 13:54  friedelwolff
288         * storage/tmx.py: Support errors in TMX (this should complete
289           pofilter support for TMX)
291 2008-02-11 09:46  friedelwolff
293         * storage/tmx.py: Support notes in TMX
295 2008-02-07 07:23  friedelwolff
297         * __version__.py: Version 1.1.1rc2
299 2008-02-07 05:17  dwaynebailey
301         * convert/test_dtd2po.py: Slightly change test to pass with current
302           \n processing code.
304 2008-02-06 12:50  dwaynebailey
306         * storage/dtd.py: Fixes the premature termination of DTD entities.
308 2008-02-02 12:32  dwaynebailey
310         * convert/test_dtd2po.py: Add test for bug 331; losing last part of
311           a DTD entry.
313 2008-01-31 14:54  friedelwolff
315         * filters/checks.py: Don't cause duplicate accelerators when
316           updating a checker configuration
318 2008-01-31 09:10  friedelwolff
320         * tools/test_pomerge.py: Adapt to API change in pomerge. Renaming
321           almost complete, just some customisation left for some xliff
322           tests
324 2008-01-31 09:08  friedelwolff
326         * tools/pomerge.py: Terminolgy update (file/po -> store)
328 2008-01-31 09:07  friedelwolff
330         * tools/pogrep.py: Support TMX, reflow formats dictionary
332 2008-01-31 09:06  friedelwolff
334         * filters/pofilter.py: Also support TMX
336 2008-01-30 16:25  friedelwolff
338         * tools/pocompile.py, tools/podebug.py: Complete API change for
339           translate.tools (convertfile -> convertstore)
341 2008-01-30 10:44  friedelwolff
343         * filters/test_pofilter.py: Test TMX support. Bypass some methods
344           that are not relevant to TMX.
346 2008-01-30 10:42  friedelwolff
348         * filters/test_pofilter.py: Factor out helper methods to make it
349           easier to extend things
351 2008-01-30 09:44  friedelwolff
353         * storage/base.py: Return {} in .geterrors() as API demands
355 2008-01-30 09:29  friedelwolff
357         * tools/pomerge.py: remove unnecessary mergexliff() and adapt
358           mergepo() to function for all file types
360 2008-01-29 16:11  friedelwolff
362         * search/segment.py: +Comment to mark deprecation
364 2008-01-29 16:07  friedelwolff
366         * search/terminology.py: Remove unnecessary import and commented
367           code. Update comments.
369 2008-01-29 16:05  friedelwolff
371         * storage/factory.py: Move comment about poxliff to the new place
372           where it is imported
374 2008-01-29 15:36  friedelwolff
376         * search/lshtein.py: Print a warning to stderr if
377           python-Levenshtein is not found
379 2008-01-28 07:52  friedelwolff
381         * tools/pocompile.py: Write .mo files in binary mode
383 2008-01-24 21:22  friedelwolff
385         * setup.py: Include subpackages storage.version and search.indexer
387 2008-01-24 21:09  friedelwolff
389         * __version__.py: Version 1.1.1rc1
391 2008-01-23 11:10  friedelwolff
393         * README: Update URL for downloading python-Levenshtein
395 2008-01-23 07:05  dwaynebailey
397         * README: Add a number of missing tools
399 2008-01-23 06:31  dwaynebailey
401         * storage/properties.py: Remove uneeded units list
403 2008-01-22 08:56  friedelwolff
405         * ChangeLog: Update ChangeLog before release of 1.1.0
407 2008-01-22 07:03  friedelwolff
409         * __version__.py: Version 1.1.0
411 2008-01-22 07:01  friedelwolff
413         * README: Mention dependency on iniparse
415 2008-01-22 06:52  friedelwolff
417         * storage/statsdb.py: Implement some logic to provide a better
418           directory name on Windows
420 2008-01-21 14:33  friedelwolff
422         * lang/am.py: Some minor changes that seem to be better while we
423           wait for feedback
425 2008-01-21 07:33  friedelwolff
427         * storage/factory.py, storage/lisa.py: Try to continue without XML
428           support if importing the XML formats fail
430 2008-01-21 06:28  friedelwolff
432         * filters/test_checks.py: Fix typo
434 2008-01-18 10:25  friedelwolff
436         * storage/test_po.py: Rewrite some tests to use proper helper
437           methods
439 2008-01-16 06:45  dwaynebailey
441         * convert/po2php.py, convert/test_php2po.py,
442           convert/test_po2php.py, storage/php.py, storage/test_php.py:
443           Allow php arrays to contain spaces in the array syntax, e.g.
444           $lang[ 'name ']
446 2008-01-15 20:37  friedelwolff
448         * filters/checks.py: Use a language's own checker if it has one
450 2008-01-15 20:36  friedelwolff
452         * lang/common.py: Placeholder for a language's own checker
454 2008-01-15 20:22  friedelwolff
456         * filters/pofilter.py: Pass the language through to the TeeChecker
457           as well.
459 2008-01-15 15:19  friedelwolff
461         * setup.py: Install po2wordfast, php2po and po2php
463 2008-01-15 15:16  friedelwolff
465         * __version__.py: Version 1.1.0rc2. Also increase the buildnumber
466           to 11000
468 2008-01-15 15:14  friedelwolff
470         * convert/php2po, convert/po2php: Add command wrappers for php2po
471           and po2php
473 2008-01-15 15:03  friedelwolff
475         * convert/po2php.py: Fix a logic bug and replace 0/1 with real
476           booleans
478 2008-01-15 14:45  friedelwolff
480         * convert/convert.py: Change default duplicate style to msgctxt and
481           adapt help text
483 2008-01-15 13:56  friedelwolff
485         * storage/cpo.py: check the complete msgid (including
486           msgidcomments) as well as msgctxt in .isheader()
488 2008-01-15 13:50  friedelwolff
490         * storage/pypo.py: Also test for the presence of msgctxt and
491           sourcecomments in pounit.isheader(). This solves bug 307
493 2008-01-15 13:41  friedelwolff
495         * convert/test_dtd2po.py: Check that removeduplicates() gets it
496           right with empty translation strings
498 2008-01-15 13:06  friedelwolff
500         * convert/po2php.py: Be more flexible with detection of statement
501           endings
503 2008-01-15 12:14  friedelwolff
505         * convert/dtd2po.py, convert/test_dtd2po.py: Revert r6750 restoring
506           multiline DTDs. We should review whitespace stripping.
508 2008-01-15 08:21  friedelwolff
510         * lang/common.py: Add punctuation set 'ethiopicpunc' used in
511           Amharic and other Ethiopian languages
513 2008-01-15 08:20  friedelwolff
515         * lang/code_or.py: import re as needed
517 2008-01-15 08:09  friedelwolff
519         * lang/common.py, lang/hy.py: Move Armenian specific puncutation
520           data to hy.py since no reuse is likely for other languages. This
521           should provide a small speedup as well.
523 2008-01-15 08:05  friedelwolff
525         * lang/hy.py: Add HORIZONTAL ELLIPSIS (…) to sentenceend
527 2008-01-15 08:00  friedelwolff
529         * README: Mention that lxml has dependencies on libxml2 and libxslt
531 2008-01-15 07:52  friedelwolff
533         * lang/ko.py, lang/test_ko.py: Basic support for Korean (basically
534           just disabling startcaps and simplecaps)
536 2008-01-15 07:40  friedelwolff
538         * lang/code_or.py, lang/el.py, lang/ja.py, lang/zh.py: Add
539           HORIZONTAL ELLIPSIS (…) to sentenceend where it was missing
541 2008-01-14 16:31  friedelwolff
543         * lang/code_or.py, lang/test_or.py: Add basic support for Oriya
544           (or)
546 2008-01-14 16:27  friedelwolff
548         * lang/he.py: Add basic hebrew support (disabling startcaps and
549           simplecaps)
551 2008-01-14 15:20  friedelwolff
553         * convert/test_oo2po.py: Specify the duplicate style explicitely in
554           case the default gets changed (anticipated)
556 2008-01-14 12:15  friedelwolff
558         * lang/hy.py: Fix some typos (using fullwidth characters) and
559           implement sentenceend and sentencere
561 2008-01-14 11:49  friedelwolff
563         * lang/common.py, lang/km.py: Move Khmer specific puncutation data
564           to km.py since no reuse is likely for other languages. This
565           should provide minimal speedup as well.
567 2008-01-14 11:43  friedelwolff
569         * lang/test_km.py: Print debugging output in test
571 2008-01-14 11:14  friedelwolff
573         * lang/el.py: Specify the sentencere so to take customised
574           sentenceend into consideration
576 2008-01-14 11:13  friedelwolff
578         * lang/test_el.py: Test the Greek (el) language module
580 2008-01-14 08:18  dwaynebailey
582         * convert/php2po.py, convert/po2php.py, convert/test_php2po.py,
583           convert/test_po2php.py, storage/php.py, storage/test_php.py:
584           First version of php2po converter. Will convert php style arrays
585           usually used for localisation into PO files and back.
586           One bug remains in the backconversion; lines with trailing
587           comments are not correctly replaced output i.e ...blah';//some
588           comment
590 2008-01-12 08:41  friedelwolff
592         * tools/posegment.py: Remove debugging output
594 2008-01-11 16:22  friedelwolff
596         * lang/af.py, lang/common.py, lang/ja.py, lang/zh.py: Use re flag
597           's' (DOTALL) to ensure that newlines don't confuse segmentation
599 2008-01-11 16:16  friedelwolff
601         * lang/test_common.py: Test sentences are segmented correctly
602           accross newlines ('\n')
604 2008-01-11 15:15  dwaynebailey
606         * convert/po2oo.py, convert/xliff2oo.py: Remove code that
607           eliminated whitespace only translations.
609 2008-01-11 14:22  friedelwolff
611         * tools/posegment.py: Add and implement options --language,
612           --source-language and --stripspaces
614 2008-01-11 13:39  friedelwolff
616         * tools/podebug.py, tools/pomerge.py: Change current spacing
617           convention of double spaces to four spaces
619 2008-01-11 13:25  friedelwolff
621         * convert/oo2po.py, convert/oo2xliff.py, convert/po2dtd.py,
622           convert/po2ts.py: Fix a few spacing errors that slipped through
624 2008-01-11 13:18  friedelwolff
626         * convert/convert.py: Change current spacing convention of double
627           spaces to four spaces
629 2008-01-11 13:17  dwaynebailey
631         * convert/po2wordfast.py: Using POT files doesn't make much sense
632           here.
634 2008-01-11 13:10  dwaynebailey
636         * convert/csv2po.py, convert/html2po.py, convert/moz2po.py,
637           convert/oo2po.py, convert/po2csv.py, convert/po2html.py,
638           convert/po2moz.py, convert/po2oo.py, convert/po2prop.py,
639           convert/po2tmx.py, convert/po2ts.py, convert/po2txt.py,
640           convert/po2wordfast.py, convert/po2xliff.py, convert/pot2po.py,
641           convert/prop2po.py, convert/ts2po.py, convert/txt2po.py,
642           convert/xliff2po.py: Add URLs to the wiki documentation in all
643           __doc__ strings.
645 2008-01-11 13:09  friedelwolff
647         * filters/checks.py: Fix mixed spacing to all be four spaces
649 2008-01-11 13:01  friedelwolff
651         * storage/csvl10n.py, storage/dtd.py, storage/html.py,
652           storage/poheader.py, storage/properties.py, storage/pypo.py,
653           storage/ts.py, storage/xpi.py: Change current spacing convention
654           of double spaces to four spaces
656 2008-01-11 12:50  dwaynebailey
658         * convert/csv2po.py, convert/csv2tbx.py, convert/html2po.py,
659           convert/ini2po.py, convert/moz2po.py, convert/odf2po.py,
660           convert/oo2po.py, convert/oo2xliff.py, convert/po2csv.py,
661           convert/po2html.py, convert/po2ini.py, convert/po2moz.py,
662           convert/po2oo.py, convert/po2prop.py, convert/po2tmx.py,
663           convert/po2ts.py, convert/po2txt.py, convert/po2wordfast.py,
664           convert/po2xliff.py, convert/pot2po.py, convert/prop2po.py,
665           convert/ts2po.py, convert/txt2po.py, convert/xliff2oo.py,
666           convert/xliff2po.py: Fix first line __doc__ strings to ensure
667           that we have a good and consistent converter descriptor (needed
668           by --manpage and help option)
669           
670           Tool descriptions can now be developed and URLs added.
672 2008-01-11 12:44  friedelwolff
674         * storage/xliff.py: Fix mixed spacing to all be four spaces
676 2008-01-11 12:40  friedelwolff
678         * storage/txt.py: Fix mixed spacing to all be four spaces
680 2008-01-11 12:35  friedelwolff
682         * storage/qm.py: Fix mixed spacing to all be four spaces
684 2008-01-11 12:27  friedelwolff
686         * storage/pocommon.py: Fix mixed spacing to all be four spaces
688 2008-01-11 12:24  friedelwolff
690         * storage/ini.py: Fix wrong indentation (should be four spaces like
691           the rest of the file)
693 2008-01-11 12:18  friedelwolff
695         * storage/cpo.py: Fix mixed spacing to all be four spaces
697 2008-01-11 12:12  friedelwolff
699         * services/lookupclient.py: Change current spacing convention of
700           double spaces to four spaces
702 2008-01-11 12:08  friedelwolff
704         * convert/csv2po.py, convert/csv2tbx.py, convert/dtd2po.py,
705           convert/html2po.py, convert/ini2po.py, convert/moz2po.py,
706           convert/mozfunny2prop.py, convert/odf2po.py, convert/oo2po.py,
707           convert/oo2xliff.py, convert/po2csv.py, convert/po2dtd.py,
708           convert/po2html.py, convert/po2ini.py, convert/po2moz.py,
709           convert/po2oo.py, convert/po2prop.py, convert/po2tmx.py,
710           convert/po2ts.py, convert/po2txt.py, convert/po2xliff.py,
711           convert/poreplace.py, convert/pot2po.py,
712           convert/prop2mozfunny.py, convert/prop2po.py, convert/ts2po.py,
713           convert/txt2po.py, convert/xliff2oo.py, convert/xliff2po.py:
714           Change current spacing convention of double spaces to four spaces
716 2008-01-11 11:52  friedelwolff
718         * misc/optrecurse.py: Generate the DESCRIPTION section of man pages
719           from the part of the docstring following two newlines (\n\n)
721 2008-01-11 10:46  friedelwolff
723         * convert/ini2po.py: Correct copyright date (was totally incorrect
724           before) - should only be 2007
726 2008-01-11 10:43  friedelwolff
728         * convert/ini2po.py: Update copyright date
730 2008-01-11 10:33  friedelwolff
732         * filters/test_autocorrect.py: Change current spacing convention of
733           double spaces to four spaces
735 2008-01-11 10:29  friedelwolff
737         * filters/autocorrect.py, filters/checks.py, filters/decoration.py,
738           filters/helpers.py, filters/pofilter.py, filters/prefilters.py:
739           Change current spacing convention of double spaces to four spaces
741 2008-01-11 10:18  friedelwolff
743         * filters/checks.py: Remove TODO, add comment
745 2008-01-11 10:10  friedelwolff
747         * filters/checks.py: Fix some weird spacing in assignments
749 2008-01-11 10:04  friedelwolff
751         * filters/checks.py: Precompile regular expressions
753 2008-01-11 08:18  friedelwolff
755         * tools/pocompile.py, tools/poconflicts.py, tools/pocount.py,
756           tools/podebug.py, tools/pogrep.py: Change current spacing
757           convention of double spaces to four spaces
759 2008-01-11 08:16  friedelwolff
761         * tools/posegment.py: Fix inconsistent spacing to be four spaces
763 2008-01-11 08:15  friedelwolff
765         * tools/poclean.py: Fix incorrect spacing in commented code
767 2008-01-11 08:03  friedelwolff
769         * tools/pogrep.py: Update copyright dates
771 2008-01-11 07:47  friedelwolff
773         * tools/podebug.py: Remove unnecessary space between methods
775 2008-01-11 07:25  friedelwolff
777         * tools/poconflicts.py: Fix spacing around '='
779 2008-01-11 07:23  friedelwolff
781         * tools/posegment.py: Support tmx files as well
783 2008-01-10 11:49  friedelwolff
785         * storage/oo.py: Fix inconsistent spacing and long lines. Moving to
786           standard spacing for this file.
788 2008-01-10 09:19  dwaynebailey
790         * convert/test_oo2po.py: Add some roundtrip examples with >> ' and
791           " in the text and in some attributes.
793 2008-01-09 19:30  dwaynebailey
795         * storage/oo.py: Move encoding checking to a function
796           encode_if_needed_utf8()
798 2008-01-09 15:22  friedelwolff
800         * storage/factory.py: Revert r6822, and explain why the poxliff
801           import is needed
803 2008-01-09 15:15  friedelwolff
805         * convert/convert.py, convert/dtd2po.py, convert/html2po.py,
806           convert/ini2po.py, convert/moz2po.py, convert/oo2po.py,
807           convert/prop2po.py: (Partially) revert commit 6780, just to play
808           safe.
810 2008-01-09 14:08  friedelwolff
812         * lang/data.py: Leave a comment about possible extra sources of
813           useful information on language codes
815 2008-01-09 14:06  friedelwolff
817         * README: Mention the new dependencies: lxml, pysqlite,
818           libgettextpo
820 2008-01-09 14:04  friedelwolff
822         * storage/statsdb.py: Declare the object variables .con and .cur
823           explicitly
825 2008-01-09 14:03  friedelwolff
827         * storage/factory.py: Remove an unused import
829 2008-01-09 14:00  friedelwolff
831         * storage/lisa.py, storage/tmx.py, storage/xliff.py: Fix some
832           pylint complaints (mostly argument spacing)
834 2008-01-09 13:58  friedelwolff
836         * storage/mo.py: Better docstring. Correct some issues shown by
837           pylint (indentation and bad names)
839 2008-01-09 13:08  friedelwolff
841         * convert/test_xliff2po.py: Replace convertfile with convertstore
843 2008-01-09 09:39  friedelwolff
845         * convert/xliff2po.py: Rename convertfile to convertstore as done
846           elsewhere in commits 6782 and 6783
848 2008-01-09 09:37  friedelwolff
850         * convert/xliff2oo.py: Rename convertfile to convertstore as done
851           elsewhere in commits 6782 and 6783
853 2008-01-09 09:07  friedelwolff
855         * doc/index.html: Update and slightly rewrite index for
856           documentation
858 2008-01-09 08:35  friedelwolff
860         * storage/oo.py: Don't attempt to support other encodings, SDF
861           files must be UTF-8
863 2008-01-09 08:31  friedelwolff
865         * convert/oo2po.py, convert/oo2xliff.py: Write error output to
866           sys.stderr
868 2008-01-09 08:24  friedelwolff
870         * tools/posegment: Set svn:executable for posegment
872 2008-01-09 08:16  friedelwolff
874         * convert/test_oo2xliff.py: Test for oo2xliff overriding
875           test_oo2po. Might dissappear in future if oo2xliff is merged into
876           oo2po.
878 2008-01-09 08:15  friedelwolff
880         * convert/test_oo2po.py: Adapt tests to enable easier overriding
881           and customisation (for upcoming test_oo2xliff)
883 2008-01-09 08:10  friedelwolff
885         * convert/oo2xliff.py: Change usepots to False (no more -P --pot
886           option)
888 2008-01-09 08:09  friedelwolff
890         * tools/posegment.py: Rename convertfile to convertstore as done
891           elsewhere in commits 6782 and 6783
893 2008-01-09 08:08  friedelwolff
895         * convert/oo2xliff.py: Rename convertfile to convertstore as done
896           elsewhere in commits 6782 and 6783
898 2008-01-09 08:05  friedelwolff
900         * convert/oo2xliff.py: Align oo2xliff with the new escaping as done
901           in oo2po
903 2008-01-09 08:00  friedelwolff
905         * convert/po2ts.py, convert/test_po2ts.py: Change usepots to False
906           (no more -P --pot option)
908 2008-01-09 07:58  friedelwolff
910         * convert/po2tmx.py, convert/test_po2tmx.py: Change usepots to
911           False (no more -P --pot option)
913 2008-01-09 06:45  friedelwolff
915         * convert/oo2po.py: Update the copyright date
917 2008-01-09 06:40  friedelwolff
919         * storage/oo.py: Improve docstings
921 2008-01-09 06:31  friedelwolff
923         * convert/oo2po.py: Remove escaping from converter (now done in the
924           storage class, oo.py)
926 2008-01-09 06:29  friedelwolff
928         * convert/test_oo2po.py: Change the test to the new expected
929           behaviour in terms of escaping (especially for helpcontent2)
931 2008-01-09 06:23  friedelwolff
933         * storage/oo.py: Implement new rules for escaping and unescaping of
934           SDF files. Different rules are used for strings from .xhp
935           (helpcontent2) sourcefiles, and all escaping and unescaping is
936           now done here instead of in the converters.
938 2008-01-09 06:21  friedelwolff
940         * convert/test_convert.py: Take differences between differernt
941           versions of optparse into account for testing converter help text
942           in test_help()
944 2008-01-08 13:43  friedelwolff
946         * lang/af.py: Specify Afrikaans punctuation more exactly overriding
947           base language
949 2008-01-08 13:42  friedelwolff
951         * convert/pot2po.py: Accept **kwargs in convertpot for the sake of
952           the changes done in r6780
954 2008-01-08 13:39  friedelwolff
956         * __init__.py: Update copyright date
958 2008-01-08 12:37  friedelwolff
960         * misc/optrecurse.py: Only catch IO errors - we don't want anything
961           else
963 2008-01-08 12:35  friedelwolff
965         * misc/optrecurse.py: Put back get_prog_name() that got lost
966           somewhere
968 2008-01-07 13:34  dwaynebailey
970         * setup.py lang/common.py, tools/posegment, tools/posegment.py: Add
971           posegment tool
973 2008-01-07 13:33  friedelwolff
975         * __version__.py: Update version to 1.1.0rc1
977 2008-01-07 12:54  friedelwolff
979         * storage/mo.py: Implement .istranslatable()
981 2008-01-07 12:53  friedelwolff
983         * storage/poheader.py: Partially rewrite updatecontributor(). The
984           'Contributors:' line is removed and updating from files with
985           existing headers should work. The msgmerge template ('FIRST
986           AUTHOR <EMAIL@ADDRESS>, YEAR.') is now replaced with the first
987           entry.
989 2008-01-07 12:50  friedelwolff
991         * storage/statsdb.py: Print errors out to stderr instead of stdout
993 2008-01-07 12:46  friedelwolff
995         * tools/pogrep.py: Search through all comments, not just translator
996           comments
998 2008-01-03 14:27  friedelwolff
1000         * storage/poheader.py: Adapt to proper notes strings now that
1001           .getnotes() is used
1003 2008-01-03 14:10  friedelwolff
1005         * storage/poheader.py: Don't update header in .updatecontributor()
1006           if no header is found
1008 2008-01-03 14:09  friedelwolff
1010         * storage/poheader.py: Use .getnotes() accessor in
1011           .updatecontributor()
1013 2008-01-03 06:04  dwaynebailey
1015         * misc/optrecurse.py: Fix manpage generation after upgrade to
1016           latest optparse
1018 2007-12-21 15:30  dwaynebailey
1020         * convert/csv2po.py, convert/dtd2po.py, convert/ini2po.py,
1021           convert/odf2po.py, convert/oo2po.py, convert/prop2po.py,
1022           convert/test_csv2po.py, convert/test_dtd2po.py,
1023           convert/test_oo2po.py, convert/test_po2csv.py,
1024           convert/test_prop2po.py, convert/test_txt2po.py,
1025           convert/txt2po.py: Change: convertfiles -> convertstore
1027 2007-12-21 15:21  dwaynebailey
1029         * convert/po2csv.py, convert/po2dtd.py, convert/po2html.py,
1030           convert/po2ini.py, convert/po2oo.py, convert/po2prop.py,
1031           convert/po2ts.py, convert/po2txt.py, convert/po2xliff.py,
1032           convert/test_po2csv.py, convert/test_po2dtd.py,
1033           convert/test_po2oo.py, convert/test_po2prop.py,
1034           convert/test_po2ts.py, convert/test_po2xliff.py: Rename:
1035           convertfile -> convertstore
1037 2007-12-21 14:32  dwaynebailey
1039         * misc/optrecurse.py: get_prog_name is a class method now not a
1040           function.
1042 2007-12-21 13:11  dwaynebailey
1044         * convert/convert.py, convert/dtd2po.py, convert/html2po.py,
1045           convert/ini2po.py, convert/moz2po.py, convert/oo2po.py,
1046           convert/oo2xliff.py, convert/prop2po.py: Move passthrough into
1047           function and out of converters.
1049 2007-12-21 13:07  dwaynebailey
1051         * convert/test_convert.py, convert/test_csv2po.py,
1052           convert/test_dtd2po.py, convert/test_moz2po.py,
1053           convert/test_po2dtd.py, convert/test_po2html.py,
1054           convert/test_po2moz.py, convert/test_po2oo.py,
1055           convert/test_po2prop.py, convert/test_po2tmx.py,
1056           convert/test_po2ts.py, convert/test_po2txt.py,
1057           convert/test_pot2po.py, convert/test_prop2po.py: Fix help text
1058           tests to take into account changes in newer optparse.py. This
1059           means
1060           that these tests will probably fail in older versions of Python.
1062 2007-12-21 12:57  dwaynebailey
1064         * convert/convert.py: Set the deafult for multifile option
1065           correctly
1067 2007-12-21 12:49  dwaynebailey
1069         * storage/xpi.py, tools/poconflicts.py, tools/porestructure.py:
1070           Remove reference to our version of optparse and import optparse
1071           from optrecurse as needed.
1073 2007-12-21 12:34  dwaynebailey
1075         * misc/optparse.py, misc/optrecurse.py: Move toolkit specific
1076           changes in optparse to optrecurse, change reference accoringly.
1077           Use system optparse (correct version has been available since
1078           Python 2.3, which is the lowest version we currently support)
1080 2007-12-21 06:37  dwaynebailey
1082         * convert/test_pot2po.py: Catch last option.
1084 2007-12-15 16:32  friedelwolff
1086         * storage/qm.py: Output error message to stderr
1088 2007-12-15 16:02  friedelwolff
1090         * storage/test_base.py: Remove test_store_stats() that was testing
1091           the old statistics API (now removed)
1093 2007-12-15 15:31  friedelwolff
1095         * storage/statsdb.py: [Contributed by Nicolas François] Store the
1096           default database filename to avoid unnecessary filesystem
1097           activity
1099 2007-12-15 12:23  friedelwolff
1101         * storage/statsdb.py: Use os.path.realpath() instead of
1102           os.path.abspath() - this resolves names taking links and
1103           non-canonical names into account (// in the name, for example).
1104           This could avoid some duplicates.
1106 2007-12-15 11:40  friedelwolff
1108         * storage/cpo.py: Rewrite a generator expression for compatibility
1109           with python 2.3
1111 2007-12-15 11:23  friedelwolff
1113         * storage/base.py: Don't override the (unused) Statistics class for
1114           translation stores - just overhead that isn't used at the moment
1116 2007-12-15 10:51  friedelwolff
1118         * storage/cpo.py: Rather write out error messages to stderr
1120 2007-12-14 15:17  friedelwolff
1122         * storage/statsdb.py: Remove statefromdb() and all users - rather
1123           use a dictionary
1125 2007-12-14 12:30  friedelwolff
1127         * storage/statsdb.py: +directorytotals() to provide totals for all
1128           files combined in the given directory (no mtimes are checked; no
1129           file presense is tested)
1131 2007-12-13 16:33  dwaynebailey
1133         * storage/ini.py: Add copyright header and some descriptive text.
1135 2007-12-12 15:37  dwaynebailey
1137         * convert/dtd2po.py, convert/test_dtd2po.py: Make ordinary
1138           LOCALIZATION NOTE comments into developer comments. Now all
1139           comments from the source dtd file should go into #. comments in
1140           PO.
1142 2007-12-12 15:33  dwaynebailey
1144         * convert/dtd2po.py, convert/test_dtd2po.py: Line continuations in
1145           .dtd should not carry over a \n into PO, they are now just
1146           treated as pretty printing and removed before PO processing.
1148 2007-12-10 08:57  friedelwolff
1150         * lang/fr.py: Ignore XML properties ('=' before quotes) for quote
1151           translation
1153 2007-12-10 08:56  friedelwolff
1155         * lang/test_fr.py: Test properly that quoted XML properties are not
1156           changed
1158 2007-12-06 06:23  dwaynebailey
1160         * convert/csv2po.py, convert/dtd2po.py, convert/html2po.py,
1161           convert/ini2po.py, convert/odf2po.py, convert/oo2po.py,
1162           convert/pot2po.py, convert/prop2po.py, convert/ts2po.py,
1163           convert/txt2po.py, convert/xliff2po.py: Change headerpo ->
1164           targetheader in all *2po convertors, prep to ensure target
1165           agnostic convertors.
1167 2007-12-06 06:21  dwaynebailey
1169         * convert/dtd2po.py, convert/html2po.py, convert/ini2po.py,
1170           convert/odf2po.py, convert/pot2po.py, convert/prop2po.py,
1171           convert/ts2po.py, convert/txt2po.py, convert/xliff2po.py: Change
1172           thepofile -> thetargetfile in all *2po convertors.
1174 2007-12-06 06:15  dwaynebailey
1176         * storage/pocommon.py: Add copyright header.
1178 2007-12-06 05:56  dwaynebailey
1180         * convert/ini2po, convert/ini2po.py, convert/po2ini,
1181           convert/po2ini.py, misc/ini.py, storage/ini.py: Add ini file
1182           parser class and functions.
1184 2007-12-06 05:53  dwaynebailey
1186         * misc/ini.py: Add ini.py from iniparse module. This will allow us
1187           to modify it until changes make it into upstream.
1189 2007-12-06 05:50  dwaynebailey
1191         * convert/oo2xliff.py, convert/xliff2oo.py, storage/xliff.py:
1192           Implement addlocation in xliff.py and adjust xliff2oo and
1193           oo2xliff to use these.
1195 2007-12-06 05:45  dwaynebailey
1197         * filters/pofilter.py: Remove xlff file type support, it is not a
1198           vlid type of file.
1200 2007-12-06 05:28  dwaynebailey
1202         * convert/TODO: Update TODO list
1204 2007-12-06 05:25  dwaynebailey
1206         * storage/TODO-merge-cPO: Add a new issue
1208 2007-11-26 11:19  friedelwolff
1210         * storage/cpo.py, storage/pypo.py: Always use empty unicode strings
1211           (u"") instead of empty normal strings ("")
1213 2007-11-26 11:18  friedelwolff
1215         * storage/cpo.py: Decode msgid comments so that they are unicode
1216           strings
1218 2007-11-23 10:46  dwaynebailey
1220         * lang/data.py: Add Thai
1222 2007-11-21 16:26  dwaynebailey
1224         * storage/factory.py: Sort the class imports alphabetically.
1226 2007-11-17 09:46  friedelwolff
1228         * storage/pypo.py: Ensure that returned notes are unicde, even if
1229           empty. This ensures that unicodedata.normalize() doesn't complain
1231 2007-11-16 19:37  friedelwolff
1233         * __version__.py: Update version number to 1.1.0beta1
1235 2007-11-16 19:31  friedelwolff
1237         * storage/poheader.py: Don't add Plural-Forms header unless
1238           specifically given
1240 2007-11-16 19:27  friedelwolff
1242         * storage/cpo.py: Improve library loading on Windows and raise
1243           ImportError if we can't import libgettextpo
1245 2007-11-16 08:36  friedelwolff
1247         * filters/checks.py: Implement a credits check that identifies
1248           units with translation credits instead of normal translations.
1249           Implement identification for GNOME and KDE (GUI and
1250           documentation)
1252 2007-11-16 08:31  friedelwolff
1254         * filters/test_checks.py: Check for translator credits
1256 2007-11-15 14:47  friedelwolff
1258         * storage/cpo.py: Ensure that only unicode data is used to set
1259           notes. Decode comments using the internal decoding.
1261 2007-11-15 14:46  friedelwolff
1263         * storage/pypo.py: Ensure that only unicode strings are ever
1264           parsed. This ensures correct handling of non-ascii comments, for
1265           example. Remove the incorrect decoding of comments, which sould
1266           be unicode.
1268 2007-11-15 14:18  friedelwolff
1270         * filters/checks.py, filters/pofilter.py: Add wxWidgets as a
1271           checker type (identical to the KDE checker)
1273 2007-11-15 14:15  friedelwolff
1275         * filters/test_pofilter.py: Test that the preconditions work
1276           correctly and tests aren't run unnecessarily
1278 2007-11-15 13:52  friedelwolff
1280         * filters/checks.py: Fix the printf detection to only check for
1281           single character type specifiers
1283 2007-11-15 13:48  friedelwolff
1285         * filters/test_checks.py: check that spacing doesn't trigger the
1286           print test
1288 2007-11-15 13:36  friedelwolff
1290         * lang/ar.py, lang/fa.py: Fix incorrect percentage signs for Arabic
1291           (ar) and Persian (fa) (÷ -> ٪)
1293 2007-11-15 13:30  friedelwolff
1295         * storage/statsdb.py: Fix wrong logic for non-existant suggestions
1296           files
1298 2007-11-15 13:30  friedelwolff
1300         * storage/statsdb.py: Reimplement instantiation of StatsCache by
1301           limiting it to one cache per statsfile
1303 2007-11-13 10:00  friedelwolff
1305         * storage/lisa.py, storage/poxliff.py, storage/tbx.py,
1306           storage/tmx.py, storage/xliff.py: Rewrite the minidom specific
1307           parts of the XML storage types with lxml code for performance.
1309 2007-11-13 09:49  friedelwolff
1311         * convert/test_po2tmx.py, convert/test_po2xliff.py,
1312           storage/test_xliff.py: Adapt tests for the move from minidom to
1313           lxml
1315 2007-11-13 09:48  friedelwolff
1317         * convert/test_xliff2po.py: Also test with an XLIFF file without an
1318           xmlns attribute
1320 2007-11-13 09:45  friedelwolff
1322         * convert/oo2xliff.py: Handle requirement for target language
1323           slightly different than for oo2po
1325 2007-11-12 16:36  dwaynebailey
1327         * storage/test_cpo.py, storage/test_pypo.py: import cpo and pypo
1328           directly don't hide behind: import xpo as po
1330 2007-11-09 08:38  friedelwolff
1332         * filters/test_checks.py: Adapt calls to forceunicode()
1334 2007-11-09 08:37  friedelwolff
1336         * lang/data.py: forceunicode() moved here from filters/checks.py
1338 2007-11-09 08:36  friedelwolff
1340         * filters/checks.py: Move forceunicode() to lang.data
1342 2007-11-03 10:17  dwaynebailey
1344         * storage/test_cpo.py, storage/test_po.py, storage/test_pypo.py:
1345           Move test_merge_mixed_sources to test_po.py
1347 2007-11-03 10:05  dwaynebailey
1349         * storage/test_cpo.py, storage/test_po.py, storage/test_pypo.py:
1350           Move test_kde_context to test_po.py
1352 2007-11-03 09:59  dwaynebailey
1354         * storage/test_cpo.py, storage/test_po.py, storage/test_pypo.py:
1355           Move test_parse_context and test_parse_advanced_context to
1356           test_po.py
1358 2007-11-03 09:51  dwaynebailey
1360         * storage/test_po.py, storage/test_pypo.py: Move
1361           test_multiline_obsolete to the common test_po
1363 2007-11-03 09:42  dwaynebailey
1365         * storage/cpo.py, storage/test_cpo.py, storage/test_po.py,
1366           storage/test_pypo.py: Delete units that where removed in
1367           removeduplicates by creating a new cpo file
1368           and copying them to that (since there is no delete function in
1369           cpo). Move
1370           the test for merging to test_po.py.
1372 2007-11-03 08:53  dwaynebailey
1374         * storage/cpo.py, storage/pypo.py: Rename: element -> unit
1376 2007-10-31 15:03  friedelwolff
1378         * convert/test_po2xliff.py: Rewrite slightly to make transition to
1379           lxml easier
1381 2007-10-30 13:59  friedelwolff
1383         * storage/test_xliff.py: Rewrite tests slightly to enable easier
1384           migration to lxml
1386 2007-10-29 15:24  friedelwolff
1388         * storage/test_poxliff.py: Rewrite ID test slightly to enable
1389           transition to lxml
1391 2007-10-29 15:23  friedelwolff
1393         * storage/test_po.py: Test escapes in the header.
1395 2007-10-27 11:56  dwaynebailey
1397         * storage/TODO-merge-cPO: Update: all convert/ tests passing at the
1398           same rate for cpo as pypo
1400 2007-10-27 10:44  dwaynebailey
1402         * storage/test_cpo.py, storage/test_po.py, storage/test_pypo.py:
1403           Move test_makeobsolete* into the common test_po.py module.
1405 2007-10-27 09:47  dwaynebailey
1407         * storage/cpo.py: Change padding hack to only add whitespace
1408           padding if the comment is not a blank line.
1410 2007-10-27 09:35  dwaynebailey
1412         * storage/cpo.py: Name the obsolete workaround function more
1413           clearly.
1415 2007-10-26 16:22  dwaynebailey
1417         * storage/cpo.py: Work around libgettetpo bug in that it doens't
1418           remove #: and #. entries for obsolete entries on output.
1419           This hack makes it behanve like msgmerge
1421 2007-10-26 16:04  dwaynebailey
1423         * convert/test_prop2po.py: Remove test_emptyentry, its duplicaed in
1424           test_emptyproperty
1425           Make tests for detailed instead of: 'blah' in str(unit)
1427 2007-10-26 15:59  dwaynebailey
1429         * convert/test_prop2po.py: Remove accesors to msg* and replace with
1430           source/target
1432 2007-10-26 15:56  dwaynebailey
1434         * convert/test_prop2po.py: Merge form toolkit-C-po branch:
1435           6538 - Replace direct access to po.automaticcomments with
1436           getnotes("developer") in various tests.
1438 2007-10-26 15:42  dwaynebailey
1440         * convert/po2csv.py: Merge from toolkit-C-po
1441           6574 - Use base class accessors.
1443 2007-10-26 15:37  dwaynebailey
1445         * convert/test_csv2po.py: Fix tests to remove pypo specific
1446           accesors.
1448 2007-10-26 15:35  dwaynebailey
1450         * convert/csv2po.py: Merge from toolkit-C-po branch
1451           6566 - Use base class accesors.
1453 2007-10-26 15:34  dwaynebailey
1455         * convert/test_csv2po.py: Merge from toolkit-C-po branch:
1456           6539 - Remove direct po.sourcecomment usage and replace with
1457           getlocations()
1459 2007-10-26 15:24  dwaynebailey
1461         * convert/po2txt.py: Merge from toolkit-C-po branch:
1462           6543 - Simplify the logic.
1464 2007-10-26 09:51  dwaynebailey
1466         * storage/TODO-merge-cPO: TODO list for the cPO merging
1468 2007-10-26 05:26  dwaynebailey
1470         * storage/cpo.py: Add note about libgettextpo obsolete behaviour
1472 2007-10-26 05:25  dwaynebailey
1474         * storage/cpo.py: Only do libgettext workaround if we have data to
1475           process.
1477 2007-10-26 05:22  dwaynebailey
1479         * tools/test_pomerge.py: Use po.lsep to manage format output
1480           differences between cpo and pypo
1482 2007-10-26 05:16  dwaynebailey
1484         * tools/test_pomerge.py: Add location test
1486 2007-10-25 22:54  dwaynebailey
1488         * convert/test_dtd2po.py: Merge from toolkit-C-po branch
1489           6669 - Adjust test to not user old pypo style accesors but use
1490           base class methods.
1492 2007-10-25 22:48  dwaynebailey
1494         * convert/dtd2po.py: Merge from toolkit-C-po branch
1495           6540 - Remove the use of po.othercomments and replace with
1496           getnotes("translator")
1497           6569 - Use base class accessors to be able to dump various
1498           escaping functions (po.escapeforpo, simplequotestr). Use methods
1499           addlocations(), addnote() instead of direct access to the lists.
1501 2007-10-25 22:42  dwaynebailey
1503         * convert/test_po2dtd.py: Merge from toolkit-C-po branch:
1504           6539:6540 {A number of additional tests}
1506 2007-10-25 22:31  dwaynebailey
1508         * convert/po2dtd.py: Merge from toolkit-C-po branch:
1509           6539 - Remove direct po.sourcecomment usage and replace with
1510           getlocations()
1511           6540 - Remove the use of po.othercomments and replace with
1512           getnotes("translator")
1513           6541 - Cleanup code around po.typecomments
1514           6542 - Remove unquotefrompo from po2dtd convertor.
1515           6568 - Use po.isfuzzy() and po._extract_msgidcomments() instead
1516           of direct access to po.typecomments and po.msgidcomments
1518 2007-10-25 22:14  dwaynebailey
1520         * convert/test_pot2po.py: Work around cpo iability to select a
1521           range over the iterbale units.
1523 2007-10-25 22:07  dwaynebailey
1525         * convert/test_pot2po.py, storage/cpo.py, storage/pypo.py: Hack to
1526           define lsep a variable that holds the seperator for #: entries.
1527           cpo - [space]
1528           pypo - \n#:[space]
1529           This allows the test to run on both implemenations.
1531 2007-10-25 21:51  dwaynebailey
1533         * convert/test_pot2po.py: Add #. comments to obsoleting test.
1535 2007-10-25 21:49  dwaynebailey
1537         * convert/pot2po.py: Merge from toolkit-C-po branch:
1538           r6563: Add newly obsolete units using addunit().
1540 2007-10-25 21:21  dwaynebailey
1542         * convert/test_po2xliff.py: Merge from toolkit-C-po branch:
1543           r6658 - Correct a test PO entry
1545 2007-10-25 21:19  dwaynebailey
1547         * convert/test_xliff2po.py: Merge branch toolkit-C-po:
1548           r6538 - Replace direct access to po.automaticcomments with
1549           getnotes("developer") in various tests.
1550           r6540 - Remove the use of po.othercomments and replace with
1551           getnotes("translator")
1553 2007-10-25 21:16  dwaynebailey
1555         * convert/xliff2po.py: Merge from toolkit-C-po r6565 - Make the
1556           source blank in PO for a header entry. Reverse the logic to make
1557           it readable.
1559 2007-10-25 20:46  dwaynebailey
1561         * convert/test_oo2po.py: Merge toolkit-C-po branch (r6549:6538) -
1562           Replace direct access to po.automaticcomments with
1563           getnotes("developer") in various tests
1565 2007-10-25 15:20  dwaynebailey
1567         * convert/test_oo2po.py: Fix bug_url test since we now properly
1568           escape and wrap PO header entries.
1570 2007-10-25 15:09  dwaynebailey
1572         * storage/pocommon.py, storage/pypo.py: Privatise encoding
1574 2007-10-25 13:14  dwaynebailey
1576         * storage/cpo.py: Work around where libgettextpo needs all added
1577           comments to have a leading space.
1579 2007-10-25 13:09  dwaynebailey
1581         * storage/test_cpo.py: Adjust tests to remove leading spaces
1583 2007-10-25 13:06  dwaynebailey
1585         * storage/cpo.py: Work around the problem that current libgettextpo
1586           returns a leading space with all notes.
1588 2007-10-25 12:48  dwaynebailey
1590         * storage/cpo.py: Use needtmpfile for tmpfile sections, easier to
1591           understand.
1593 2007-10-25 12:47  dwaynebailey
1595         * storage/cpo.py: Correctly handle case when the input is a file.
1596           i.e. you only need to remove temporary files if the input was a
1597           string.
1599 2007-10-22 15:45  dwaynebailey
1601         * tools/podebug.py: Remove executable property
1603 2007-10-22 15:26  friedelwolff
1605         * convert/test_po2ts.py: test that we can handle duplicates in the
1606           same context block
1608 2007-10-22 15:24  friedelwolff
1610         * convert/po2ts.py: Determine unit usability with .istranslated()
1611           rather than .isfuzzy()
1613 2007-10-22 15:18  friedelwolff
1615         * setup.py: Install oo2xliff and xliff2oo
1617 2007-10-22 14:42  friedelwolff
1619         * storage/cpo.py, storage/pocommon.py, storage/pypo.py: Move
1620           makeheader to pocommon.py. It contains no implementation specific
1621           code now.
1623 2007-10-22 13:24  friedelwolff
1625         * tools/pomerge.py: Use the correct extention for output XLIFF
1626           files (.xlf)
1628 2007-10-22 12:03  friedelwolff
1630         * storage/pypo.py: Don't handle quoting and escaping in
1631           makeheader(). This solves a problem with the '\' character in
1632           certain header values causing it to be interpreted as an escaped
1633           cariage return.
1635 2007-10-19 15:36  dwaynebailey
1637         * tools/podebug.py: Add two new options:
1638           --rewrite - currently has two modes 'en' which does the same as
1639           msgen and copies source
1640           to target, and 'xxx' which adds xxx as affixes to the source
1641           string and places it in
1642           the target. Any other rewrite functions can be added by coding a
1643           rewrite_XXX method.
1644           --hash - adds a hash to the start of the target based on 1) first
1645           location if present
1646           else 2) source.
1648 2007-10-12 06:25  dwaynebailey
1650         * filters/checks.py, filters/test_checks.py: Ignore text that looks
1651           like an option but isn't (e.g. --blank-- ) by checking that it
1652           end in an alpha numeric character.
1654 2007-10-11 21:09  dwaynebailey
1656         * search/indexer/__init__.py: Fix comment indent
1658 2007-10-11 13:28  dwaynebailey
1660         * convert/txt2po.py: Convert --flavour option to a choice. Now
1661           catches errors where the flavour
1662           is not known.
1664 2007-10-11 10:35  dwaynebailey
1666         * misc/quote.py, misc/test_quote.py: Add functions to encode and
1667           decode HTML entities in a string. It does not yet handle numeric
1668           style escaping &#1234; just the list of XHTML 1.0 entity
1669           definitions.
1671 2007-10-09 21:17  larskr
1673         * lang, services, storage/versioncontrol: ignore pre-compiled
1674           python files for svn
1676 2007-10-08 23:34  larskr
1678         * search/indexer/__init__.py, storage/versioncontrol/cvs.py,
1679           storage/versioncontrol/darcs.py: improve some comments
1681 2007-10-06 09:30  larskr
1683         * search/indexer, search/indexer/__init__.py: imported
1684           'jToolkit/data/indexer.py' from jToolkit 0.7.8
1685           added a copyright note to the new file
1686           imports of 'indexer' adapted
1688 2007-10-06 03:02  larskr
1690         * storage/factory.py: fix error ("TypeError: unsubscriptable
1691           object") for "storefile" being a file object instead of a string
1693 2007-10-05 12:15  larskr
1695         * storage/mo.py: clarified copyright and license of mo.py code
1697 2007-10-01 12:51  dwaynebailey
1699         * storage/po.py, storage/test_po.py: Merge from toolkit-C-po
1700           r6458:6622 - second attempt to merge from the branch.
1702 2007-10-01 12:16  dwaynebailey
1704         * convert/csv2po.py, convert/po2tmx.py, convert/po2txt.py,
1705           convert/ts2po.py, tools/poconflicts.py: Merge from branch
1706           toolkit-C-po r6536 (Remove all usage of isblankmsgstr)
1708 2007-09-30 17:34  dwaynebailey
1710         * storage/base.py, storage/cpo.py: Revert isempty change in base.py
1711           and implement in cpo.py
1713 2007-09-30 05:09  dwaynebailey
1715         * storage/test_factory.py: Correct reference to class.
1717 2007-09-29 14:25  dwaynebailey
1719         * storage/cpo.py: Remove debug code
1721 2007-09-29 14:18  dwaynebailey
1723         * storage/base.py, storage/cpo.py, storage/po.py,
1724           storage/pocommon.py, storage/pypo.py, storage/test_cpo.py,
1725           storage/test_po.py, storage/test_pypo.py: Merge
1726           branch/toolkit-C-po changes r6459:6622 into trunk.
1727           
1728           These are only the PO related files. All users of the PO classes
1729           still need to be migrated. The tools still use the Python PO
1730           implementation but by using the environment variables USECPO=1
1731           you can force the tools to use the C PO version (USECPO=0 forces
1732           the use of Python PO). Using USECPO will report the
1733           implementation
1734           being used, without USECPO operation continue as normal.
1735           
1736           Common tests are in test_po while implementation specific test or
1737           tests that differ slightly are in test_pypo and test_cpo.
1738           
1739           The next steps will be to merge changes made to the tools the use
1740           po.py into trunk. This will be done slowly to ensure that tests
1741           and operation continue as normal. On the branch almost all tests
1742           are functioning correctly. This will not be so on trunk until all
1743           tests have been ported.
1745 2007-09-28 20:11  dwaynebailey
1747         * storage/ts.py: Add notes refering to replaceables.
1749 2007-09-28 20:08  dwaynebailey
1751         * storage/test_wordfast.py: Add difficult escapes and fix another
1752           test.
1754 2007-09-28 19:57  dwaynebailey
1756         * convert/po2wordfast, convert/po2wordfast.py: Fix indentation
1758 2007-09-28 19:49  dwaynebailey
1760         * convert/po2wordfast.py: Correct class reference
1762 2007-09-28 19:42  dwaynebailey
1764         * convert/po2wordfast, convert/po2wordfast.py, storage/factory.py,
1765           storage/test_factory.py, storage/test_wordfast.py,
1766           storage/wordfast.py: Add Wordfast TM format
1767           - storage class for Wordfast TM
1768           - Convertor for PO to Wordfast format
1769           - Adapt factory to detect Wordfast, includes changes to help
1770           explore file content if the class cannot be fully determined from
1771           the file extension.
1773 2007-09-28 09:56  larskr
1775         * storage/versioncontrol/__init__.py: committing and updating of
1776           whole directories is now possible
1777           TODOs updated
1779 2007-09-26 14:57  friedelwolff
1781         * storage/ts.py: Handle duplicate entries separately. This fixes a
1782           bug seen with Virtualbox files.
1784 2007-09-26 09:29  dwaynebailey
1786         * storage/factory.py: Privatise functions within the factory.
1788 2007-09-25 08:49  friedelwolff
1790         * convert/pot2po.py: Test whether we got nplurals before using it
1792 2007-09-25 08:38  friedelwolff
1794         * convert/pot2po.py: Don't catch exceptions during construction of
1795           fuzzyglobalmatcher. Only attempt to construct the TM if we have a
1796           file.
1798 2007-09-25 07:38  friedelwolff
1800         * storage/po.py: Correct the header handling logic in
1801           removeduplicates()
1803 2007-09-19 14:59  friedelwolff
1805         * convert/po2xliff.py: Fix a typo in a comment
1807 2007-09-19 10:37  friedelwolff
1809         * convert/pot2po.py: Don't obsolete the header
1811 2007-09-19 10:36  friedelwolff
1813         * convert/pot2po.py: Ensure that we initialise plural units with
1814           the correct number of parts. This fixes bug 238.
1816 2007-09-19 10:35  friedelwolff
1818         * convert/test_pot2po.py: Test that we initialise plural units with
1819           the correct number of parts (bug 238)
1821 2007-09-18 14:26  dwaynebailey
1823         * storage/po.py: Remove unquotefrompo and use base class accessors.
1825 2007-09-18 14:08  dwaynebailey
1827         * storage/po.py: Fix forgotten msgstrlen -> _msgstrlen
1829 2007-09-18 13:31  friedelwolff
1831         * convert/pot2po.py: Use fuzzy units for fuzzy matching. This
1832           solves bug 237.
1834 2007-09-18 12:50  friedelwolff
1836         * convert/test_pot2po.py: Test for proper migration of a fuzzy
1837           plural unit with changing msgid and changing location (bug 239).
1839 2007-09-18 12:49  friedelwolff
1841         * search/match.py: Allow the matcher class to optionally use fuzzy
1842           units
1844 2007-09-18 10:51  dwaynebailey
1846         * storage/po.py: When removing duplicates bail out early for a
1847           header.
1849 2007-09-18 10:00  dwaynebailey
1851         * storage/po.py: Privatise msgstrlen and msgidlen
1853 2007-09-14 09:42  friedelwolff
1855         * convert/xliff2oo.py: Update to new pofilter checker API
1857 2007-09-14 09:08  friedelwolff
1859         * storage/versioncontrol, storage/versioncontrol/__init__.py,
1860           storage/versioncontrol/bzr.py, storage/versioncontrol/cvs.py,
1861           storage/versioncontrol/darcs.py, storage/versioncontrol/git.py,
1862           storage/versioncontrol/svn.py: [Contributed by Larse Kruse]
1863           Move the version control code from Pootle to the translate
1864           toolkit.
1865           This splits the code into different files for each version
1866           control sytem, and
1867           implements the public functions in the module (__init__).
1869 2007-09-12 08:13  dwaynebailey
1871         * convert/po2oo.py: pofilter now returns a dict not a list.
1873 2007-09-11 14:15  friedelwolff
1875         * convert/csv2tbx.py: Remove unnecessary and unused code
1877 2007-09-11 10:51  friedelwolff
1879         * filters/checks.py: Remove 'options' from the precondition of
1880           'unchanged' - this could hide errors
1882 2007-09-11 09:15  friedelwolff
1884         * filters/checks.py: add options to the test preconditions
1886 2007-09-11 09:12  friedelwolff
1888         * filters/checks.py: Don't trigger the options test for lone '--'
1889           words
1891 2007-09-11 09:08  friedelwolff
1893         * filters/test_checks.py: Test that the options test isn't
1894           triggered for lone '--' words
1896 2007-09-11 08:07  friedelwolff
1898         * filters/test_checks.py: Test Afrikaans specific startcaps more
1899           exhaustively
1901 2007-09-11 07:48  friedelwolff
1903         * filters/checks.py: Don't overwrite config.lang in update() - this
1904           could loose the language information
1906 2007-09-10 18:02  dwaynebailey
1908         * convert/csv2po.py, convert/po2csv.py: Use getlocations instead of
1909           units.sourcecomments
1911 2007-09-10 10:32  friedelwolff
1913         * convert/csv2tbx.py: Simplify by not handling encoding here (it is
1914           done in the storage format)
1916 2007-09-10 10:08  friedelwolff
1918         * filters/decoration.py: Fix typo and spacing
1920 2007-09-10 09:14  friedelwolff
1922         * filters/prefilters.py: Restore varnone() (it is used in
1923           checks.py)
1925 2007-09-10 09:06  friedelwolff
1927         * storage/statsdb.py: Refactor several pieces and implement
1928           recacheunit() for use from Pootle (currently only on the diet
1929           branch)
1931 2007-09-10 08:01  dwaynebailey
1933         * convert/po2dtd.py, convert/po2ts.py, convert/test_po2ts.py,
1934           convert/test_ts2po.py, convert/ts2po.py, storage/po.py: Remove
1935           visible comments (#_ ). This is from the very early days of the
1936           toolkit
1937           and was only really used by Qt TS conversion. It is not standard
1938           and better
1939           handled using proper structures in PO.
1940           po2dtd - were not used by the code
1941           ts2po - change '#_ OBSOLETE' to use a '#. (obsolete)' automatic
1942           comment.
1943           This should eventually use proper PO obsoleting. Also handle the
1944           reverse.
1945           Add tests for obsolete messages.
1946           po.py - remove all structure and code for visiblecomments
1948 2007-09-10 07:37  dwaynebailey
1950         * convert/po2ts.py, convert/po2xliff.py, convert/test_po2ts.py,
1951           convert/ts2po.py, convert/xliff2po.py: Change direct list based
1952           comment access to use getnotes()
1953           Expand po2ts testing to test:
1954           - comments/notes,
1955           - check that we've put the data into the correct TS tags.
1956           - fuzzy conversion
1958 2007-09-07 13:39  friedelwolff
1960         * filters/prefilters.py: Improve layout of code and docstrings
1962 2007-09-07 11:06  dwaynebailey
1964         * filters/checks.py, filters/test_checks.py: Expand options test to
1965           catch --input=FILE type options and check that the paramter has
1966           been translated. Raise nice errors if the test fails.
1968 2007-09-07 10:53  friedelwolff
1970         * filters/checks.py: Simplify and reflow some docstrings. Mention
1971           the wiki page that describes the tests.
1973 2007-09-07 10:28  dwaynebailey
1975         * filters/checks.py, filters/test_checks.py: Add 'options' test
1976           that ensures the command line options e.g. --help remain
1977           untranslated.
1979 2007-09-07 10:15  friedelwolff
1981         * filters/checks.py: Remove unnecessary punctuation filtering - the
1982           word iterator filters it already.
1984 2007-09-07 10:14  friedelwolff
1986         * lang/common.py: Add grave accent (U+0060) to list of common
1987           punctuation. This would have prevented bug 283.
1989 2007-09-07 10:04  friedelwolff
1991         * filters/checks.py: filter out punctuation in aconyms test. This
1992           fixes bug 283.
1994 2007-09-07 10:03  friedelwolff
1996         * filters/test_checks.py: Test that punctuation doesn't cause
1997           confusion for the acronyms test (bug 283)
1999 2007-09-07 08:40  dwaynebailey
2001         * convert/po2csv.py, convert/po2dtd.py: Default second paramater
2002           for unquotefrompo, joinwithlinebreak is False. Thus remove all
2003           explicit setting to False.
2005 2007-09-07 07:41  dwaynebailey
2007         * convert/csv2po.py, convert/dtd2po.py, convert/moz2po.py,
2008           convert/mozfunny2prop.py, convert/oo2po.py, convert/oo2xliff.py,
2009           convert/po2csv.py, convert/po2dtd.py, convert/po2moz.py,
2010           convert/po2oo.py, convert/pot2po.py, convert/prop2mozfunny.py,
2011           convert/prop2po.py, convert/xliff2oo.py: Remove property
2012           svn:executable
2014 2007-09-06 17:35  dwaynebailey
2016         * convert/po2prop.py: Cleanup for readability
2018 2007-09-06 17:33  dwaynebailey
2020         * convert/csv2po.py, convert/dtd2po.py, convert/html2po.py,
2021           convert/odf2po.py, convert/oo2po.py, convert/po2csv.py,
2022           convert/po2dtd.py, convert/ts2po.py, convert/txt2po.py,
2023           convert/xliff2po.py, storage/csvl10n.py: Change unit.append to
2024           base class addunit()
2026 2007-09-06 17:31  dwaynebailey
2028         * convert/po2csv.py, convert/po2dtd.py, convert/po2html.py,
2029           convert/po2prop.py, convert/po2tmx.py, convert/po2ts.py,
2030           convert/po2xliff.py: Convert the po side and some of the other
2031           side to generic names:
2032           thepofile -> inputstore
2033           thepo -> unit/inputunit
2034           etc.
2036 2007-09-06 17:10  dwaynebailey
2038         * convert/test_convert.py, misc/optrecurse.py, misc/xmlwrapper.py,
2039           search/lshtein.py, storage/csvl10n.py, storage/html.py,
2040           storage/test_tmx.py, storage/test_xliff.py, storage/txt.py,
2041           tools/poconflicts.py, tools/pogrep.py, tools/test_pomerge.py:
2042           Cleanup: operrator not preceded by a space.
2044 2007-09-06 17:09  dwaynebailey
2046         * convert/csv2po.py, convert/po2oo.py, convert/prop2po.py,
2047           convert/test_dtd2po.py, convert/test_html2po.py,
2048           convert/xliff2oo.py, filters/checks.py, misc/optrecurse.py,
2049           tools/pocount.py, tools/pomerge.py: Correct: operator not
2050           followed by a space.
2052 2007-09-06 17:08  dwaynebailey
2054         * tools/test_pogrep.py: Fix indentation
2056 2007-09-06 17:05  dwaynebailey
2058         * convert/odf2po.py, convert/poreplace.py, convert/ts2po.py,
2059           convert/xliff2po.py: Align convertXXX functions.
2061 2007-09-06 17:01  dwaynebailey
2063         * convert/dtd2po.py, convert/txt2po.py: Align main functions in
2064           convertors.
2066 2007-09-06 16:57  dwaynebailey
2068         * convert/test_csv2po.py, convert/test_txt2po.py, storage/po.py,
2069           storage/test_po.py, tools/test_pomerge.py: Make po.getouput
2070           private. Change calls to po.getouput to rather use str(store)
2072 2007-09-06 16:52  dwaynebailey
2074         * storage/po.py, storage/test_po.py: Make extract_msgidcomments
2075           private.
2077 2007-09-06 16:49  dwaynebailey
2079         * storage/po.py: Make encodeifneccessary private
2081 2007-09-06 16:47  dwaynebailey
2083         * storage/po.py: Make getmsgpartstr private
2085 2007-09-06 16:45  dwaynebailey
2087         * storage/po.py: Make initallcomments private.
2089 2007-09-06 16:43  dwaynebailey
2091         * convert/csv2po.py, convert/test_csv2po.py,
2092           convert/test_dtd2po.py, convert/test_oo2po.py,
2093           convert/test_prop2po.py, tools/test_pomerge.py: Remove
2094           po.unquotefrompo used outside of po.py and replace with po.target
2095           and po.source instead
2097 2007-09-06 16:20  dwaynebailey
2099         * convert/csv2tbx.py, convert/oo2po.py, convert/oo2xliff.py,
2100           convert/poreplace.py, convert/xliff2oo.py: Remove uneeded
2101           temporary string variables.
2103 2007-09-06 16:17  dwaynebailey
2105         * convert/csv2po.py, convert/csv2tbx.py, convert/dtd2po.py,
2106           convert/html2po.py, convert/odf2po.py, convert/oo2po.py,
2107           convert/oo2xliff.py, convert/po2csv.py, convert/po2dtd.py,
2108           convert/po2html.py, convert/po2oo.py, convert/po2prop.py,
2109           convert/po2ts.py, convert/po2xliff.py, convert/poreplace.py,
2110           convert/prop2po.py, convert/ts2po.py, convert/txt2po.py,
2111           convert/xliff2oo.py, convert/xliff2po.py: Convert all format
2112           specific eg inputpo naming to a format agnostic form i.e.
2113           inputsource.
2114           Align names:
2115           *source is a TranslationStore
2116           *file is a file object
2118 2007-09-05 07:10  dwaynebailey
2120         * storage/test_po.py: Fix closing quote in a test.
2122 2007-09-04 13:21  dwaynebailey
2124         * filters/checks.py, filters/test_checks.py, lang/data.py,
2125           storage/po.py, tools/pogrep.py, tools/test_pogrep.py: Normalise
2126           unicode data in searches and tests. This allows composed
2127           characters, with different
2128           unicode values, to be compared correctly.
2130 2007-08-31 15:26  friedelwolff
2132         * filters/checks.py: Configure more test preconditions
2134 2007-08-31 14:18  friedelwolff
2136         * storage/statistics.py: Update statistics.py to the
2137           pofilter::run_filters() API change of r6334
2139 2007-08-31 14:11  friedelwolff
2141         * storage/test_base.py: Adapt base class test so that it can work
2142           for MO files:
2143           - MO files only store translated strings, so we need to have
2144           target strings
2145           - MO files store source strings in a sorted way, so writing the
2146           file can cause
2147           reordering of the units, so we need to presort them to avoid
2148           surprises.
2150 2007-08-31 13:50  friedelwolff
2152         * storage/mo.py: Don't encode the target unless it is unicode
2154 2007-08-31 10:03  friedelwolff
2156         * filters/checks.py, filters/pofilter.py, storage/statsdb.py:
2157           Change checks::run_filters() API to return a dictionary
2159 2007-08-31 07:50  dwaynebailey
2161         * storage/test_base.py: Add missing comma
2163 2007-08-28 14:54  friedelwolff
2165         * storage/po.py: Handle merging of certain duplicate message lines
2166           slightly better
2168 2007-08-28 14:36  friedelwolff
2170         * convert/test_pot2po.py: Test for correct handling of empty
2171           comment lines and of type comments
2173 2007-08-28 11:40  friedelwolff
2175         * storage/statsdb.py: Pass information to the checker about Pootle
2176           style .pending files for the new hassuggestions check in the case
2177           of PO files. Do proper handling of the mtimes of both files.
2179 2007-08-28 08:19  friedelwolff
2181         * storage/test_factory.py: Lessen the noise when testing on Python
2182           2.3 that doesn't support BZ2File
2184 2007-08-28 07:05  dwaynebailey
2186         * storage/factory.py, storage/qm.py: Add pasrsing support for Qt
2187           .qm file format.
2189 2007-08-28 06:25  dwaynebailey
2191         * storage/mo.py: We do handle plural forms.
2193 2007-08-28 06:17  dwaynebailey
2195         * storage/mo.py: Remove redundant statement.
2197 2007-08-28 05:42  dwaynebailey
2199         * tools/podebug.py: Correctly handle plural tagging.
2201 2007-08-27 14:39  friedelwolff
2203         * filters/checks.py: +hassuggestion test to implement the pootle
2204           functionality here. +setsuggestionstore to allow external users
2205           to set the file to use to look for suggestions.
2207 2007-08-27 14:21  friedelwolff
2209         * storage/mo.py: Don't reencode the msgid as utf-8. This solves the
2210           traceback with files with non-ascii characters in a msgid
2212 2007-08-27 10:52  dwaynebailey
2214         * misc/quote.py: Change <> to !=
2216 2007-08-27 10:51  dwaynebailey
2218         * misc/quote.py: Correct [comma] to be [comma][space] for
2219           readability
2221 2007-08-27 10:50  dwaynebailey
2223         * misc/quote.py: Correct indentation
2225 2007-08-27 09:19  friedelwolff
2227         * lang/ja.py, lang/zh.py: Transform punctuation more correctly by
2228           also removing spaces when double width punctuation is used.
2230 2007-08-27 07:45  dwaynebailey
2232         * README: Update the README to refer to also refer to XLIFF work
2233           and add some tools that where not listed.
2235 2007-08-27 05:59  dwaynebailey
2237         * convert/nb2po, convert/nb2po.py, convert/po2nb, convert/po2nb.py:
2238           No longer used and clutering refactoring.
2240 2007-08-24 14:35  dwaynebailey
2242         * convert/csv2po.py, convert/dtd2po.py, convert/html2po.py,
2243           convert/nb2po.py, convert/odf2po.py, convert/oo2po.py,
2244           convert/po2csv.py, convert/po2dtd.py, convert/po2oo.py,
2245           convert/prop2po.py, convert/ts2po.py, convert/txt2po.py,
2246           convert/xliff2po.py: Remove temporary variables for store to
2247           string conversion.
2249 2007-08-24 14:24  dwaynebailey
2251         * convert/po2txt.py: Use factory class and add ability to use XLIFF
2252           files as input.
2254 2007-08-24 14:22  dwaynebailey
2256         * convert/po2txt.py: Remove unused file position call.
2258 2007-08-24 14:20  dwaynebailey
2260         * convert/po2txt.py: Rename: inputpo -> inputstore, outputtxt ->
2261           outputstring
2263 2007-08-24 14:17  dwaynebailey
2265         * convert/po2txt.py: Rename: *po -> *store, pounit -> unit
2267 2007-08-24 14:13  dwaynebailey
2269         * convert/po2txt.py: Fix indentation
2271 2007-08-24 14:11  dwaynebailey
2273         * convert/pot2po.py: Simple code cleanup
2275 2007-08-24 14:10  dwaynebailey
2277         * convert/pot2po.py: Use .addunit instead of .units.append
2279 2007-08-24 13:32  dwaynebailey
2281         * storage/po.py: Rename: pe -> unit
2283 2007-08-24 13:28  dwaynebailey
2285         * storage/po.py: Remove unused todict function
2287 2007-08-24 13:25  dwaynebailey
2289         * storage/po.py: remove executable flag
2291 2007-08-24 07:45  dwaynebailey
2293         * storage/properties.py: Remove executable
2295 2007-08-24 07:34  dwaynebailey
2297         * tools/podebug.py: Comment about the lack of plural tagging
2298           support
2300 2007-08-24 07:26  dwaynebailey
2302         * tools/podebug.py: Typo
2304 2007-08-24 07:22  dwaynebailey
2306         * tools/podebug.py: Rename: thepofile -> store, thepo -> unit
2308 2007-08-24 07:18  dwaynebailey
2310         * tools/podebug.py: quote no longer used
2312 2007-08-24 07:17  dwaynebailey
2314         * tools/podebug.py: Simplify by removing msgstr/msgid convolution.
2315           Remove the need for unquotefrompo
2316           and makes it base class friendly.
2318 2007-08-24 07:13  dwaynebailey
2320         * tools/podebug.py: Rename: thepo -> unit
2322 2007-08-24 07:12  dwaynebailey
2324         * tools/podebug.py: Rename: convertelement -> convertunit
2326 2007-08-24 06:51  dwaynebailey
2328         * tools/podebug.py: Remove our mangling of sourcecomments and
2329           replace it with getlocations. Remove
2330           convertsource as its not needed. In openofficeignore,
2331           s/source/location/
2333 2007-08-24 06:40  dwaynebailey
2335         * tools/podebug.py: Use factory to load appropriate storage class
2337 2007-08-24 06:33  dwaynebailey
2339         * tools/podebug.py: Rename: inputpo -> inputstore, etc
2341 2007-08-24 06:29  dwaynebailey
2343         * tools/pomerge.py: Rename: p{1,2} -> store{1,2}, po{1,2} ->
2344           unit{1,2}
2346 2007-08-24 06:26  dwaynebailey
2348         * tools/pomerge.py: Use isempty()
2350 2007-08-24 06:25  dwaynebailey
2352         * tools/pomerge.py: inputpo -> inputstore, outputpo -> outputstore,
2353           templatepo -> templatestore (same for *xliff)
2355 2007-08-24 06:12  dwaynebailey
2357         * tools/pomerge.py: Add docstring to str2bool
2359 2007-08-24 06:08  dwaynebailey
2361         * tools/pogrep.py: element -> unit
2362           Remove redundant comment
2364 2007-08-23 07:38  dwaynebailey
2366         * storage/base.py: Fix indentation
2368 2007-08-23 07:37  dwaynebailey
2370         * storage/base.py: Put statements on their own lines.
2372 2007-08-23 07:36  dwaynebailey
2374         * storage/base.py: Fix docstring
2376 2007-08-23 07:35  dwaynebailey
2378         * storage/base.py: Use cPickle and fallback to pickle if needed.
2380 2007-08-23 07:23  dwaynebailey
2382         * storage/base.py, storage/csvl10n.py, storage/dtd.py,
2383           storage/html.py, storage/lisa.py, storage/mo.py, storage/po.py,
2384           storage/properties.py, storage/txt.py: Remove parsestring from
2385           derived classes and implement a generic version in base.py.
2386           Implemented
2387           basic parse method in base.py and adjusted txt.py to the new
2388           parsestring.
2390 2007-08-21 14:22  friedelwolff
2392         * storage/statsdb.py: select unit errors based on the correct
2393           configuration identifier
2395 2007-08-21 10:39  friedelwolff
2397         * storage/statsdb.py: Return an empty dictionary in case of error
2398           conditions
2400 2007-08-21 09:39  friedelwolff
2402         * filters/checks.py: Correct or simplify some docstrings
2404 2007-08-15 13:39  friedelwolff
2406         * lang/common.py: Rather use str.replace() for punctranslate().
2407           This allows for replacing multi-character strings which is
2408           necessary for collapsing the punctuation spacing for Chinese and
2409           Japanese. This also seems slightly faster.
2411 2007-08-13 13:10  friedelwolff
2413         * storage/statsdb.py: Prepend check names with 'check-' according
2414           to the convention in Pootle.
2416 2007-08-10 12:50  dwaynebailey
2418         * storage/mo.py: Don't output units without any target.
2420 2007-08-10 10:15  dwaynebailey
2422         * storage/test_mo.py: Test derived class correctly.
2424 2007-08-08 23:08  dwaynebailey
2426         * convert/test_po2dtd.py: Removed test. This example is not present
2427           in the Mozilla DTD files and in fact would it seem not be a valid
2428           DTD in its own right.
2430 2007-08-08 22:51  dwaynebailey
2432         * storage/statistics.py: Revert and add import of language factory.
2433           Needed by lschtein distance measurements.
2435 2007-08-08 22:28  dwaynebailey
2437         * convert/csv2po.py, convert/csv2tbx.py, convert/dtd2po.py,
2438           convert/html2po.py, convert/moz2po.py, convert/odf2po.py,
2439           convert/po2dtd.py, convert/po2moz.py, convert/po2nb.py,
2440           convert/po2prop.py, convert/po2tmx.py, convert/po2ts.py,
2441           convert/po2txt.py, convert/po2xliff.py, convert/prop2mozfunny.py,
2442           convert/prop2po.py, convert/test_csv2po.py,
2443           convert/test_dtd2po.py, convert/test_html2po.py,
2444           convert/test_moz2po.py, convert/test_odf2po.py,
2445           convert/test_po2csv.py, convert/test_po2html.py,
2446           convert/test_po2moz.py, convert/test_po2oo.py,
2447           convert/test_po2prop.py, convert/test_po2tmx.py,
2448           convert/test_po2ts.py, convert/test_po2txt.py,
2449           convert/test_po2xliff.py, convert/test_pot2po.py,
2450           convert/test_ts2po.py, convert/test_txt2po.py,
2451           convert/test_xliff2po.py, convert/ts2po.py, convert/txt2po.py:
2452           Tabs -> Spaces
2453           Remove unused imports
2455 2007-08-08 22:06  dwaynebailey
2457         * tools/poclean.py, tools/pocount.py, tools/podebug.py,
2458           tools/test_pocount.py: Remove uneeded imports
2460 2007-08-08 22:02  dwaynebailey
2462         * storage/po.py, storage/poheader.py, storage/statistics.py,
2463           storage/test_csvl10n.py, storage/test_dtd.py, storage/test_mo.py,
2464           storage/test_monolingual.py, storage/test_odf.py,
2465           storage/test_poxliff.py, storage/test_properties.py,
2466           storage/test_tmx.py, storage/test_txt.py, storage/test_xliff.py:
2467           Remove uneeded imports
2469 2007-08-08 21:48  dwaynebailey
2471         * storage/tbx.py: Tabs - > Spaces
2472           Remove unused import of base
2474 2007-08-08 21:42  dwaynebailey
2476         * storage/dtd.py: Prefer != to <>
2478 2007-08-08 21:38  dwaynebailey
2480         * storage/test_po.py: Tabs -> Spaces
2482 2007-08-08 21:36  dwaynebailey
2484         * storage/test_tbx.py: Tabs -> Spaces. Remove unused imports
2486 2007-08-08 21:33  dwaynebailey
2488         * filters/prefilters.py: Remove unused import
2490 2007-08-08 21:18  dwaynebailey
2492         * lang/common.py, lang/hy.py: Remove unused imports
2494 2007-08-08 20:40  dwaynebailey
2496         * convert/oo2xliff.py: Remove unused imports
2498 2007-08-08 20:38  dwaynebailey
2500         * convert/xliff2oo.py: Remove unused imports
2502 2007-08-08 20:35  dwaynebailey
2504         * convert/oo2po.py: Remove unused imports
2506 2007-08-08 20:34  dwaynebailey
2508         * convert/po2oo.py: Remove unused imports
2510 2007-08-08 20:31  dwaynebailey
2512         * convert/convert.py: Remove unused imports
2514 2007-08-08 20:25  dwaynebailey
2516         * filters/TODO: Fixed previously we don't see double variables as
2517           an error.
2519 2007-08-07 14:29  friedelwolff
2521         * convert/test_po2xliff.py: +test_approved()
2523 2007-08-07 14:23  friedelwolff
2525         * convert/po2xliff.py: Mark an untranslated PO unit as not approved
2526           in the XLIFF file
2528 2007-08-07 14:22  friedelwolff
2530         * storage/xliff.py: Add method xliffunit.markapproved() to set the
2531           approved attribute. Use it in markfuzzy()
2533 2007-08-07 12:50  friedelwolff
2535         * convert/pot2po.py: Support developer (automatic) comments in the
2536           header
2538 2007-08-07 12:04  friedelwolff
2540         * filters/pofilter.py: Fix a problem when run with --header
2542 2007-08-07 11:32  dwaynebailey
2544         * convert/test_dtd2po.py: Fix a test related to KDE comment
2545           disambiguation to test for #. and msgctxt entries instead.
2547 2007-08-07 09:45  friedelwolff
2549         * convert/dtd2po.py: Merge automaticcomments for mixed units (units
2550           merged with their accelerators). Typo.
2552 2007-08-06 08:37  dwaynebailey
2554         * storage/mo.py: Hanlde non-multistring text. Use addunit instead
2555           of appening units.
2557 2007-08-04 08:09  dwaynebailey
2559         * tools/poswap.py: Fix indentation
2561 2007-08-04 08:08  dwaynebailey
2563         * tools/porestructure.py: Fox indentation
2565 2007-08-04 08:06  dwaynebailey
2567         * tools/pomerge.py: Fox indentation
2569 2007-08-04 08:05  dwaynebailey
2571         * tools/pogrep.py: Fix indentation
2573 2007-08-04 08:04  dwaynebailey
2575         * tools/podebug.py: Fix indentation
2577 2007-08-04 08:02  dwaynebailey
2579         * tools/pocount.py: Fix indentation
2581 2007-08-04 07:56  dwaynebailey
2583         * tools/poconflicts.py: Fix indentation
2585 2007-08-04 07:53  dwaynebailey
2587         * tools/pocompile.py: Remove undeeded imports of struct and array,
2588           ineeded MESSAGES dict. Fix indents. Rename variables for clarity.
2590 2007-08-03 11:26  friedelwolff
2592         * lang/common.py: Use plain for instead of enumerate() - provides a
2593           small speedup
2595 2007-08-03 10:22  friedelwolff
2597         * filters/TODO: Update the TODO list (perhaps more to remove/add)
2599 2007-08-03 10:13  friedelwolff
2601         * filters/checks.py: Ensure that we have a proper exit condition if
2602           no tests failed in a plural unit
2604 2007-08-02 13:34  dwaynebailey
2606         * convert/prop2mozfunny.py: Fix to align with changes made to
2607           properties storage class
2609 2007-08-02 09:28  friedelwolff
2611         * lang/am.py, lang/ar.py, lang/fa.py, lang/hy.py, lang/ja.py,
2612           lang/zh.py: Add appropriate list seperators for Japanese (ja),
2613           Amharic (am), Arabic (ar), Armenian (hy), Chinese (zh) and
2614           Persian (fa)
2616 2007-08-02 09:26  friedelwolff
2618         * lang/common.py: Add .listseperator - a simple string that can be
2619           used to join lists of strings in an appropriate way for the
2620           language
2622 2007-08-02 09:25  friedelwolff
2624         * lang/common.py: Change __repr__() to include the language code if
2625           present
2627 2007-08-01 14:55  friedelwolff
2629         * storage/statsdb.py: Add tables (checkerconfigs, uniterrors) and
2630           initial implementations to deal with more complete unit
2631           statistics.
2633 2007-08-01 10:53  dwaynebailey
2635         * storage/test_po.py: Test to ensure that we can parse Uniforum
2636           style PO files. We don't dso anything sensible with the # File:
2637           syntax and probably won't ever :)
2639 2007-07-31 15:30  friedelwolff
2641         * tools/pocount.py: Remove dead code that was left by accident
2643 2007-07-31 15:25  friedelwolff
2645         * filters/checks.py: Store the configuration in the TeeChecker for
2646           the sake of comparing checker configurations
2648 2007-07-31 15:23  friedelwolff
2650         * lang/common.py: Implement __repr__() for lang.common.Common to
2651           enable us to create meaningful text representations of checker
2652           configurations
2654 2007-07-31 09:52  friedelwolff
2656         * CREDITS: Credit Kaloian Doganov
2658 2007-07-30 15:46  friedelwolff
2660         * convert/po2html.py: [Contributed by Kaloian Doganov] Honour the
2661           --nofuzzy option
2663 2007-07-30 09:51  dwaynebailey
2665         * convert/prop2po.py: Prefer msgctxt merging of duplicates when
2666           merging two properties files into one PO file.
2668 2007-07-30 09:45  dwaynebailey
2670         * storage/properties.py: Use addunit instead of units.append
2671           Convert 0/1 to False/True
2672           Remove temporary variable lines - to make things cleaner
2674 2007-07-29 13:04  dwaynebailey
2676         * storage/properties.py: Rename msgid -> value
2678 2007-07-29 12:58  dwaynebailey
2680         * storage/properties.py: Reflow some text
2682 2007-07-29 12:49  dwaynebailey
2684         * storage/properties.py: Add a note with some good references to
2685           .properties files.
2687 2007-07-29 12:44  dwaynebailey
2689         * storage/properties.py: Uneeded import of sys
2691 2007-07-29 12:35  dwaynebailey
2693         * convert/prop2po.py: Prefer msgctxt for disambiguation of units
2695 2007-07-29 12:34  dwaynebailey
2697         * convert/test_prop2po.py: We are storing these notes in
2698           'developer' comments - so this requirement is no longer needed.
2700 2007-07-29 11:57  dwaynebailey
2702         * convert/csv2po.py, convert/dtd2po.py, convert/odf2po.py,
2703           convert/oo2po.py, convert/prop2po.py, convert/txt2po.py: Add
2704           'extracted from' as a translator comment so that its know that
2705           this is automatically created and can be discarded.
2707 2007-07-29 11:34  dwaynebailey
2709         * convert/prop2po.py, convert/test_prop2po.py, storage/po.py:
2710           Properly ignore DONT_TRANSLATE i.e. using a return value of
2711           'discard' but should fix storage class to not return empty units,
2712           fix test.
2713           Make all source comments into 'developer' comments: #. in PO,
2714           ensure that we keep the same comment order by adding a 'position'
2715           option to adding comments in PO. This is hackish and needs to be
2716           fixed in the storage class.
2717           Comments from target .properties files should be added as
2718           translator comments, but doesn't work yet, needs some thought and
2719           logic to discard comments that are actually developer comments in
2720           translator comment style.
2722 2007-07-28 20:38  dwaynebailey
2724         * convert/prop2po.py: Use base class addunit() instead of
2725           units.append()
2727 2007-07-26 11:24  friedelwolff
2729         * storage/statsdb.py: Small cleanups. Use istranslatable().
2731 2007-07-26 11:09  friedelwolff
2733         * storage/test_xliff.py: Create an XLIFF skeleton string for easier
2734           testing. Test .istranslatable()
2736 2007-07-26 11:08  friedelwolff
2738         * storage/test_po.py: Test .istranslatable()
2740 2007-07-26 11:03  friedelwolff
2742         * storage/po.py, storage/xliff.py: +implementations of
2743           .istranslatable() for PO and XLIFF
2745 2007-07-26 11:00  friedelwolff
2747         * storage/base.py: Add unit method .istranslatable() to indicate
2748           whether the unit can be translated.
2750 2007-07-25 10:45  friedelwolff
2752         * misc/multistring.py: Fix comparissons in python 2.5 by
2753           implementing __ne__ and __eq__ and rewriting __cmp__
2755 2007-07-24 13:51  friedelwolff
2757         * misc/autoencode.py: Avoid using Exception.message that is only
2758           available in Python 2.5
2760 2007-07-24 13:27  friedelwolff
2762         * filters/spelling.py: Avoid duplicate name ('checker') in
2763           namespace after importing enchant
2765 2007-07-24 06:19  dwaynebailey
2767         * convert/csv2po.py, convert/csv2tbx.py, convert/html2po.py: Indent
2768           correctly (pylint)
2770 2007-07-24 06:17  dwaynebailey
2772         * filters/checks.py, filters/decoration.py, filters/pofilter.py,
2773           filters/test_checks.py, filters/test_pofilter.py: Indent
2774           correctly and some changes with comma seperated lists and spacing
2775           around equals signs (pylint errors)
2777 2007-07-23 15:34  friedelwolff
2779         * README: Correct the information about Python versions
2781 2007-07-23 13:59  friedelwolff
2783         * lang/data.py: Add plural information for Malagasy (mg) and
2784           Papiamento (pap)
2786 2007-07-23 13:26  friedelwolff
2788         * storage/statsdb.py: Move the file modification detection to a
2789           separate function
2791 2007-07-23 13:24  friedelwolff
2793         * storage/mo.py: Fix a typo in a docstring
2795 2007-07-23 09:37  friedelwolff
2797         * filters/checks.py: Use the spell checking code that moved to a
2798           seperate module
2800 2007-07-23 09:34  friedelwolff
2802         * filters/spelling.py: Move spelling functionality from checks.py
2803           into a seperate file
2805 2007-07-22 12:11  dwaynebailey
2807         * storage/mo.py: Cleanup naming for clarity and data extraction to
2808           only extract version once.
2810 2007-07-22 11:26  dwaynebailey
2812         * convert/xliff2oo.py: Rename function to match po2oo.py fix
2814 2007-07-22 11:24  dwaynebailey
2816         * misc/autoencode.py, misc/test_autoencode.py: Throw an exception
2817           if we don't know the encoding.
2819 2007-07-21 07:43  dwaynebailey
2821         * lang/data.py: Spelling corrections
2823 2007-07-20 14:16  friedelwolff
2825         * filters/checks.py, filters/test_checks.py: Move the helper
2826           methods for the tests (passes(), fails(), fails_serious()) to
2827           test_checks.py. No other change.
2829 2007-07-20 08:09  friedelwolff
2831         * filters/test_checks.py: Adapt the tests for nplurals now that it
2832           is a unit level test
2834 2007-07-20 08:08  friedelwolff
2836         * filters/checks.py: Simplify the nplurals test and move it to
2837           StandardUnitChecker where it should be
2839 2007-07-18 13:29  friedelwolff
2841         * filters/checks.py: Cache unit.hasplural() for minor speedup in
2842           TranslationChecker
2844 2007-07-18 12:58  friedelwolff
2846         * filters/checks.py: Optimise puncspacing - a very expensive test.
2847           This reduces runtime for this test by more than 20%.
2849 2007-07-18 12:50  friedelwolff
2851         * convert/po2oo.py: Rename filterelement -> filterunit
2853 2007-07-18 12:22  friedelwolff
2855         * lang/common.py: Only do punctranslate() if we have data to work
2856           with
2858 2007-07-18 12:12  friedelwolff
2860         * filters/checks.py: Make TranslationChecker to be UnitChecker and
2861           derive TranslationChecker to enable an important optimisation as
2862           a simple customisation
2864 2007-07-18 11:32  friedelwolff
2866         * convert/po2oo.py, convert/xliff2oo.py: Rename POChecker ->
2867           UnitChecker
2869 2007-07-18 11:20  friedelwolff
2871         * filters/checks.py, filters/pofilter.py, filters/test_pofilter.py:
2872           Move pocount.POChecker -> checks.UnitChecker and
2873           pocount.StandardPOChecker -> checks.StandardUnitChecker. Renaming
2874           'element' and 'thepo' -> unit
2876 2007-07-18 11:01  friedelwolff
2878         * filters/checks.py, filters/pofilter.py: Remove run_filters() from
2879           POChecker and implement run_test() to account for the differences
2880           that are necessary in POChecker and TranslationChecker
2882 2007-07-18 09:36  friedelwolff
2884         * filters/pofilter.py: Remove POTeeChecker - not needed anymore
2886 2007-07-18 09:31  friedelwolff
2888         * filters/checks.py, filters/pofilter.py: Change run_filtes() to
2889           always accept a unit. This should pave the way for a single
2890           implementation. +Minor cleanups.
2892 2007-07-18 08:17  friedelwolff
2894         * filters/pofilter.py: Add better error handling to
2895           POChecker::run_filters() by syncing with
2896           TranslationChecker::run_filters()
2898 2007-07-17 10:43  friedelwolff
2900         * tools/pocount.py: Enable the new caching code and remove the
2901           duplicated word counting code
2903 2007-07-17 07:27  friedelwolff
2905         * tools/test_pocount.py: Adapt the test to use
2906           statsdb.wordsinunit() as it will be removed from pocount
2908 2007-07-17 07:15  friedelwolff
2910         * tools/pocount.py: Provide an alternative implementation of
2911           calcstats() that uses statsdb. Move some error handling around to
2912           accomplish this.
2914 2007-07-16 15:28  friedelwolff
2916         * storage/statsdb.py: An initial implementation for a database
2917           cache for translation statistics
2919 2007-07-16 12:22  friedelwolff
2921         * storage/po.py: Fix variable declaration order for .getid()
2923 2007-07-14 17:07  dwaynebailey
2925         * convert/dtd2po.py: Move last of the kdecomments to developer
2926           comments.
2928 2007-07-13 15:18  dwaynebailey
2930         * convert/dtd2po.py: Add these notes as developer comments and use
2931           the base class API. A first small step towards being target
2932           format agnostic and opening up XLIFF.
2934 2007-07-13 14:26  friedelwolff
2936         * storage/base.py: Try to ensure that the store always has a
2937           .filename attribute
2939 2007-07-12 08:58  friedelwolff
2941         * storage/po.py: Fix a typo with the generation of a unit ID with
2942           msgid comment
2944 2007-07-11 14:08  friedelwolff
2946         * storage/po.py: Implement .getid() for a pounit to use msgid
2947           comments and msgctxt with the source string to form a unique id
2949 2007-07-11 14:07  friedelwolff
2951         * storage/base.py: Add method unit.getid() to return an identifier
2952           for the unit. The default implementation returns the source
2954 2007-07-10 10:25  friedelwolff
2956         * misc/xmlwrapper.py: Fix the ElementTree import for Python 2.5
2958 2007-07-10 07:24  dwaynebailey
2960         * misc/xmlwrapper.py: Fix ElementTree import for Python 2.5
2962 2007-07-09 16:20  friedelwolff
2964         * storage/html.py: Rewrite some regular expressions for
2965           compatibility with Python 2.3
2967 2007-07-09 16:19  friedelwolff
2969         * convert/test_po2tmx.py, convert/test_po2xliff.py: Remove the
2970           unused import of xmlval and xmlproc
2972 2007-07-09 10:56  friedelwolff
2974         * filters/test_autocorrect.py: Specify the file encoding to make
2975           python 2.5 happy
2977 2007-07-09 10:45  friedelwolff
2979         * convert/test_dtd2po.py, convert/test_oo2po.py,
2980           convert/test_po2txt.py, convert/test_ts2po.py: Specify the file
2981           encoding and indicate unicode strings to make python 2.5 happy
2983 2007-07-09 08:23  friedelwolff
2985         * convert/test_convert.py, convert/test_dtd2po.py,
2986           convert/test_po2prop.py: Specify the file encoding to make python
2987           2.5 happy
2989 2007-07-06 11:59  friedelwolff
2991         * storage/factory.py: Test for bz2 support for compatibility with
2992           Python 2.3
2994 2007-06-29 06:26  friedelwolff
2996         * tools/test_pocount.py: Adapt to new wording in pocount.py
2998 2007-06-29 06:25  friedelwolff
3000         * tools/pocount.py: Lots of rewording for format neutrality. No
3001           functional change.
3003 2007-06-28 14:26  friedelwolff
3005         * lang/factory.py: Support languages that have a language code that
3006           is a reserved word like Oriya (or) and Icelandic (is). By
3007           convention, their modules will be called code_or.py or
3008           code_is.py.
3010 2007-06-27 14:59  friedelwolff
3012         * tools/poconflicts.py: Remove po specific terminology. Almost
3013           ready to work with xliff.
3015 2007-06-27 09:02  friedelwolff
3017         * storage/po.py: Handle units that are not seperated by an empty
3018           line. This fixes bug 256
3020 2007-06-27 08:53  friedelwolff
3022         * storage/test_po.py: Test that we handle units that aren't
3023           separated by an empty line (bug 256)
3025 2007-06-26 14:36  dwaynebailey
3027         * tools/pocount.py: Its CVS not CSV :)
3029 2007-06-26 12:30  friedelwolff
3031         * lang/common.py: Add some Indic (Devanagari) punctuation
3033 2007-06-26 12:18  friedelwolff
3035         * tools/pocount.py: Limit line length for readability
3037 2007-06-26 11:07  dwaynebailey
3039         * storage/factory.py: Add .mo support to the factory. Also clean up
3040           the lists of files a bit.
3042 2007-06-26 07:52  friedelwolff
3044         * search/match.py: Update copyright dates
3046 2007-06-26 07:51  friedelwolff
3048         * convert/csv2tbx.py: Replace unnecessary call to .settarget() with
3049           normal member assignment (.target =)
3051 2007-06-26 06:22  dwaynebailey
3053         * convert/oo2po.py, convert/oo2xliff.py, convert/po2oo.py,
3054           convert/xliff2oo.py, storage/po.py: Alignment of oo2{xlf,po}:
3055           These are two tools, they should be one and they share a lot of
3056           code.
3057           This first commit aligns comments: XLIFF/PO -> target/source
3058           format, and
3059           aligns variable names between each instance: poelement -> unit
3060           and
3061           xliffunit -> unit etc.
3062           Removed unquotefrompo (this needs further testing but should be
3063           OK)
3064           Each convertor po2oo and xliff2oo can actually do both formats as
3065           we've used
3066           the factory class.
3067           We now only add units that actually exits otherwise we return
3068           none from
3069           maktargetunit(): This solves the blank unit problem in oo2xliff
3070           and
3071           removes, removeblanks() and isnotblank() from the po class.
3072           We now use 'xlf' not 'xliff' for the format extension.
3074 2007-06-25 14:39  dwaynebailey
3076         * storage/mo.py, tools/pocompile.py: Move mounpack helper to the mo
3077           class.
3079 2007-06-25 14:38  friedelwolff
3081         * lang/data.py: +Comment to explain the @ modifier in locales
3083 2007-06-25 13:51  friedelwolff
3085         * filters/test_pofilter.py, tools/test_pocount.py: Replace
3086           unnecessary calls to .settarget() with normal member assignments
3087           (.target =)
3089 2007-06-25 13:50  friedelwolff
3091         * storage/test_csvl10n.py, storage/test_dtd.py,
3092           storage/test_monolingual.py, storage/test_properties.py,
3093           storage/test_tbx.py, storage/test_tmx.py, storage/test_txt.py:
3094           Remove the tests test_markreview() and test_errors() that were
3095           expecting exceptions before
3097 2007-06-25 13:47  friedelwolff
3099         * storage/test_base.py, storage/test_po.py, storage/test_xliff.py:
3100           Remove test_markreview() and test_errors() from test_base and
3101           move to test_po and test_xliff. Replace unnecessary calls to
3102           settarget() with normal member assignments.
3104 2007-06-25 13:46  dwaynebailey
3106         * storage/mo.py, storage/test_mo.py, tools/pocompile.py: Add
3107           Gettext .mo (Machine Object), the compiled PO format as a base
3108           class
3109           derived format. Move code from pocompile into the .mo class and
3110           adjust
3111           pocompile to use the storage class.
3112           The test_mo is basic and needs tests added for the various things
3113           found in
3114           an MO file.
3116 2007-06-25 13:44  friedelwolff
3118         * storage/base.py: Give sane default implementations to adderror(),
3119           geterrors(), markreviewneeded()
3121 2007-06-25 08:56  dwaynebailey
3123         * tools/pocount.py: Prevent potential divide by zero errors in the
3124           percentage calculations.
3126 2007-06-22 15:10  dwaynebailey
3128         * tools/pocompile.py: Remove references to PO
3130 2007-06-22 15:05  dwaynebailey
3132         * tools/pocompile.py: Less references to PO since we can also
3133           compile from XLIFF
3135 2007-06-22 14:58  dwaynebailey
3137         * tools/pocompile.py: Make sure that the --fuzzy option works
3138           again. Again a PO specific hack that
3139           isn't elegant.
3141 2007-06-22 14:28  dwaynebailey
3143         * tools/pocompile.py: Add handling of msgctxt and KDE style
3144           comments in the compilation.
3145           We can now compile all types of PO files into MO files. This is
3146           hackish
3147           and the format specific stuff should go elsewhere but its a good
3148           start.
3150 2007-06-22 14:07  dwaynebailey
3152         * tools/pocompile.py: Make pocompile able to compile plural
3153           messages
3154           Also ensure that it can compile PoXliff and normal XLIFF files
3155           into MO
3156           A few fixes to ensure that we add headers correctly, that we only
3157           use translated entries and that the headers or source strings can
3158           be UTF-8.
3159           Add an mounpack helper funtion to convert an MO file into hex
3161 2007-06-21 08:25  dwaynebailey
3163         * convert/odf2po, convert/odf2po.py, convert/test_odf2po.py,
3164           storage/odf.py, storage/test_odf.py: Pull the ODF parser from the
3165           convertor and add it as a base class derived format.
3166           It is not fully base class compliant. There is a base class test
3167           but as yet it
3168           doesn't mean much.
3169           Major renaming across the files to change element -> unit, sxw ->
3170           odf and refer to
3171           the generic odf as apposed to Writer/sxw/etc.
3172           The extraction to PO still works but there is off course still no
3173           po2odf available
3174           but hopefully as we clean up the class we'll get there. Till then
3175           its not much use
3176           except for testing.
3177           The main problem now with our created PO file is that we are
3178           stripping all XML tags,
3179           which in most cases is OK but we lose in paragraph markings,
3180           style changes, etc.
3181           We shouldn't do that.
3182           What does seem to be emerging though is that this could become a
3183           generic
3184           xml2{xliff,po} convertor as there seem to be some standard
3185           recipes for what needs to be
3186           translated. We'll see.
3188 2007-06-21 08:02  dwaynebailey
3190         * convert/test_odf2po.py: Migrate sxw2po -> odf2po (this somehow
3191           got left out)
3193 2007-06-21 07:53  dwaynebailey
3195         * convert/odf2po, convert/odf2po.py, convert/sxw2po,
3196           convert/sxw2po.py, convert/test_sxw2po.py: Migrate sxw2po ->
3197           odf2po
3199 2007-06-20 17:33  dwaynebailey
3201         * storage/txt.py: We also do Mediawiki so update comment
3202           Remove redundant setting of .units
3204 2007-06-20 17:27  dwaynebailey
3206         * storage/poheader.py: Cleanup some comments
3207           Add a conceptial updatecontributor method - needs testing and
3208           checking, its not used and I'm not 100% sure its wxactly what we
3209           want.
3211 2007-06-20 17:03  dwaynebailey
3213         * convert/dtd2po.py: Change element -> unit
3215 2007-06-20 16:59  dwaynebailey
3217         * convert/csv2po.py, convert/dtd2po.py, convert/oo2po.py,
3218           convert/prop2po.py, convert/txt2po.py: Make sure "extracted from"
3219           comments are added using addnote function calls
3221 2007-06-20 16:58  dwaynebailey
3223         * convert/dtd2po.py, convert/nb2po.py, convert/oo2po.py,
3224           convert/prop2po.py, convert/sxw2po.py, convert/ts2po.py,
3225           convert/xliff2po.py: Change direct comment access to addlocation
3226           function calls
3228 2007-06-20 16:56  dwaynebailey
3230         * convert/oo2po.py: Replace direct comment access with addnote call
3232 2007-06-20 16:29  dwaynebailey
3234         * convert/odfxml: Tool to unpack and ODF file for l10n analysis
3236 2007-06-20 08:49  friedelwolff
3238         * ChangeLog: Update ChangeLog with the latest changes before 1.0.1
3240 2007-06-20 07:57  dwaynebailey
3242         * convert/po2txt.py: Fix docstrings
3244 2007-06-19 14:55  friedelwolff
3246         * setup.py: Fix typo in translatebashscripts
3248 2007-06-19 14:41  friedelwolff
3250         * setup.py: Install poglossary
3252 2007-06-19 11:46  friedelwolff
3254         * ChangeLog: Update ChangeLog before release of 1.0.1
3256 2007-06-19 10:45  friedelwolff
3258         * search/terminology.py: Revert accidental commit to terminology.py
3259           as part of r5895
3261 2007-06-19 10:30  friedelwolff
3263         * search/lshtein.py, search/terminology.py, search/test_lshtein.py:
3264           Make use of a module level distance function to avoid
3265           instancemethod that gives problem with pickling
3267 2007-06-19 08:39  friedelwolff
3269         * __version__.py: Version 1.0.1
3271 2007-06-19 08:38  friedelwolff
3273         * lang/af.py, lang/common.py: Always allow multiple characters of
3274           whitespace after sentence end. Layout comments pretier.
3276 2007-06-19 08:25  friedelwolff
3278         * lang/af.py: Edit the punctuation and regular expression for
3279           detecting sentence boundaries to work properly with the
3280           indefinite article ('n)
3282 2007-06-19 08:24  friedelwolff
3284         * lang/test_af.py: Test for more cases of the indefinite article
3285           ('n)
3287 2007-06-19 08:20  friedelwolff
3289         * lang/test_fr.py: Extra test for French quoting and spacing
3291 2007-06-19 08:17  friedelwolff
3293         * misc/optrecurse.py: Also skip over the _darcs directory by
3294           default
3296 2007-06-19 08:06  friedelwolff
3298         * tools/pocount.py: Also skip over the _darcs directory by default
3300 2007-06-18 18:31  dwaynebailey
3302         * storage/po.py: Improve comments for getlocations and addlocation
3304 2007-06-18 09:05  friedelwolff
3306         * search/lshtein.py: Update copyright dates
3308 2007-06-17 14:53  dwaynebailey
3310         * storage/ts.py: Add links to TS format documentation
3312 2007-06-14 15:06  friedelwolff
3314         * README: Mention bugzilla and the --manpage options
3316 2007-06-14 15:01  friedelwolff
3318         * misc/optparse.py, misc/optrecurse.py: [Contributed by Nicolas
3319           François] Provide proper groff output for the --manpage option of
3320           the converters
3322 2007-06-14 14:56  friedelwolff
3324         * tools/pocompendium: Use msgfilter with --keep-header to avoid
3325           editing of the header that can break things
3327 2007-06-12 14:11  friedelwolff
3329         * filters/pofilter.py, tools/pocompile.py, tools/poconflicts.py,
3330           tools/pogrep.py: [Contributed by Nicolas François] Provide
3331           docstring descriptions for tools that didn't have. This is used
3332           to generate the man pages and help text of these tools.
3334 2007-06-12 08:48  friedelwolff
3336         * lang/common.py: Fix typo in docstring
3338 2007-06-11 16:04  friedelwolff
3340         * __version__.py: Version 1.0.1rc1
3342 2007-06-11 13:11  friedelwolff
3344         * convert/txt2po.py: Use base class API instead of manipulating the
3345           PO comments directly
3347 2007-06-11 13:05  friedelwolff
3349         * convert/pot2po.py: Pass parameter allowmissingtemplate=True to
3350           ConvertOptionParser to allow matching input (POT) with
3351           non-existing template (PO). This solves bug 248.
3353 2007-06-11 13:03  friedelwolff
3355         * convert/convert.py, misc/optrecurse.py: Add an option
3356           'allowmissingtemplate' which allows matching an input with a
3357           'None' template. This is part of the solution for bug 248..
3359 2007-06-11 11:13  friedelwolff
3361         * lang/common.py: Fix typo in docstring
3363 2007-06-11 10:22  friedelwolff
3365         * convert/oo2po.py: Decode utf-8 string before assigning to source
3366           and target of po unit. Would also solve bug 249, but now only for
3367           performance
3369 2007-06-11 10:09  friedelwolff
3371         * storage/xliff.py: Strip notes to avoid unnecessary newlines
3373 2007-06-11 10:01  friedelwolff
3375         * storage/po.py: Ensure that we decode incoming source and target
3376           strings before using. Fix for bug 249
3378 2007-06-11 08:00  dwaynebailey
3380         * convert/pot2po.py: Clarify option messages
3382 2007-06-11 07:22  dwaynebailey
3384         * tools/pomigrate2: Correct spelling mistake
3386 2007-06-08 12:36  friedelwolff
3388         * filters/test_checks.py: Add failing simplecaps test
3390 2007-06-08 12:34  friedelwolff
3392         * filters/checks.py: Give more descriptive messages in doublewords
3393           and sentencecount checks
3395 2007-06-08 10:44  andreaspauley
3397         * storage/poheader.py, storage/test_poheader.py: Calculated
3398           timezone offset to cater for the fact that time.strftime('%z') on
3399           Windows does not supply the same info as on Linux. Added some
3400           time related unit tests and fixed two bugs that popped up with
3401           these tests.
3403 2007-06-07 15:48  friedelwolff
3405         * filters/checks.py: Mention the number of sentences in
3406           sentencecount for the benefit of the user
3408 2007-06-07 14:18  friedelwolff
3410         * filters/checks.py: Use the end of sentence punctuation in the
3411           configuration's source language to fix incorrect squashing of
3412           English' capital 'I' after question marks
3414 2007-06-07 14:16  friedelwolff
3416         * filters/test_checks.py: Test that we also handle English 'I'
3417           correctly after question mark
3419 2007-06-07 14:09  friedelwolff
3421         * filters/checks.py: Don't test for endpunc if endwhitespace failed
3423 2007-06-07 12:51  friedelwolff
3425         * filters/checks.py: Also trigger the purepunc test if the
3426           translation only contains punctuation and the source didn't
3428 2007-06-07 12:49  friedelwolff
3430         * filters/checks.py, filters/test_checks.py: For languages without
3431           plurals, only trigger simpleplurals if '(s)' is present in the
3432           translation. Test with Vietnamese examples.
3434 2007-06-07 12:35  friedelwolff
3436         * filters/test_checks.py: Test that we can access language specific
3437           startcaps testing
3439 2007-06-07 12:32  friedelwolff
3441         * filters/checks.py, filters/test_pofilter.py: Don't test
3442           simplecaps if startcaps failed. Update test that expected it
3443           differently.
3445 2007-06-07 12:31  friedelwolff
3447         * filters/checks.py: in startcaps(), use capsstart() in the
3448           language module to determine if something stats with a capital
3449           letter
3451 2007-06-07 12:28  friedelwolff
3453         * lang/af.py: Override capsstart() to deal correctly with the
3454           indefinite article ('n)
3456 2007-06-07 12:27  friedelwolff
3458         * lang/test_af.py: Test that the indefinite article('n) doesn't
3459           confuse capsstart()
3461 2007-06-07 12:26  friedelwolff
3463         * lang/test_common.py: Test capsstart()
3465 2007-06-07 12:25  friedelwolff
3467         * lang/common.py: Make capsstart() a classmethod
3469 2007-06-07 12:01  friedelwolff
3471         * lang/common.py: Add capsstart() which can be a language dependent
3472           check to see if text starts with a capital letter
3474 2007-06-07 11:58  friedelwolff
3476         * filters/test_checks.py: Move tests with pure punctuation in
3477           source or targets from startpunc test to purepunc test
3479 2007-06-04 15:07  friedelwolff
3481         * tools/poswap: Fix copyright dates to be correct
3483 2007-06-01 12:21  dwaynebailey
3485         * tools/pocount.py: Bug 245. Fix problems with pocount --csv
3486           
3487           Mostly errors in print statements after fix to put the stats in a
3488           dictionary. Now works as expected.
3490 2007-06-01 03:42  dwaynebailey
3492         * tools/pogrep.py: Add option --header, to add a header to the
3493           output from pogrep
3495 2007-05-31 08:12  dwaynebailey
3497         * tools/pocount.py: Add percentage values to the raw word and
3498           string counts
3500 2007-05-31 08:11  dwaynebailey
3502         * convert/po2ts.py: Correct docstring
3504 2007-05-31 06:59  dwaynebailey
3506         * convert/sxw2po.py: Extract headers, allow odt documents to be
3507           processed.
3509 2007-05-25 10:29  friedelwolff
3511         * ChangeLog: Update ChangeLog before 1.0 release
3513 2007-05-24 15:49  friedelwolff
3515         * __version__.py: Version 1.0
3517 2007-05-24 15:44  friedelwolff
3519         * setup.py: Add poclean to tools for installation
3521 2007-05-24 15:01  friedelwolff
3523         * tools/poclean, tools/poclean.py: Add poclean to create clean
3524           files from unclean file (Trados/Wordfast) by stripping out the
3525           tw4win indicators
3527 2007-05-24 14:57  friedelwolff
3529         * lang/hy.py: Add basic support for Armenian (hy)
3531 2007-05-24 14:34  friedelwolff
3533         * setup.py: Add poswap to tools for installation
3535 2007-05-24 14:33  friedelwolff
3537         * tools/poswap, tools/poswap.py: Add poswap - a tool that enables
3538           translating from another source langauge besides English
3540 2007-05-24 11:49  friedelwolff
3542         * filters/test_checks.py: Remove tests for msgid comments (kde
3543           style comments) to reflect the new functionality of the checks
3545 2007-05-24 11:48  friedelwolff
3547         * filters/test_pofilter.py: Test that we definitely don't pass the
3548           msgid comment (kde style comment) to pofilter
3550 2007-05-24 11:47  friedelwolff
3552         * filters/checks.py: Remove unnecessary code to remove msgid
3553           comments (kde style comments). This is already done when parsing
3554           PO files
3556 2007-05-24 11:40  friedelwolff
3558         * storage/po.py: Fix weird wrapping bug
3560 2007-05-24 11:39  friedelwolff
3562         * storage/test_po.py: Test for weird wrapping bug
3564 2007-05-23 13:29  friedelwolff
3566         * tools/pocount.py: Ignore CSV and .svn directories
3568 2007-05-23 13:06  friedelwolff
3570         * setup.py: Package all the non-python tools as well
3572 2007-05-23 12:42  friedelwolff
3574         * __version__.py: Version 1.0rc3
3576 2007-05-23 12:29  friedelwolff
3578         * storage/factory.py: Raise a ValueError on unknown filetype
3580 2007-05-23 12:29  friedelwolff
3582         * tools/pocount.py: Deal better with certain errors (like unknown
3583           file type)
3585 2007-05-23 11:44  friedelwolff
3587         * lang/common.py: Comment out debug messages in preparation for
3588           release
3590 2007-05-23 10:56  friedelwolff
3592         * README: Note about common installation failure
3594 2007-05-23 10:47  friedelwolff
3596         * README: Mention psyco, fix incorrect version number
3598 2007-05-23 10:15  friedelwolff
3600         * README: Fix python-Levenshtein URL and mention optional iso-codes
3601           dependency
3603 2007-05-23 10:01  friedelwolff
3605         * tools/pocount.py: Handle non-PO flavoured XLIFF files properly
3607 2007-05-23 09:02  friedelwolff
3609         * convert/pot2po.py: Add the option --nofuzzymatching to disable
3610           fuzzy matching entirely
3612 2007-05-23 09:00  friedelwolff
3614         * services/lookupservice.py: Ensure that we are dealing with
3615           unicode strings
3617 2007-05-23 08:57  friedelwolff
3619         * services/lookupservice.py: Deal better with errors in the called
3620           functions
3622 2007-05-23 08:56  friedelwolff
3624         * README: Update information on Python versions and mention
3625           python-Levenshtein
3627 2007-05-23 08:52  friedelwolff
3629         * search/match.py: Convert multistrings to unicode to avoid
3630           problems with the native Levenshtein implementation. This might
3631           also help with plural matches.
3633 2007-05-23 08:50  friedelwolff
3635         * search/match.py: Update to new lshtein module name. Tidy up
3636           imports.
3638 2007-05-23 08:48  friedelwolff
3640         * search/test_Levenshtein.py, search/test_lshtein.py: Move
3641           test_Levenshtein.py to test_lshtein.py for uniformity.
3643 2007-05-23 08:46  friedelwolff
3645         * search/test_Levenshtein.py: Update to new lshtein module name
3647 2007-05-23 08:44  friedelwolff
3649         * search/Levenshtein.py, search/lshtein.py: Move Levenshtein.py to
3650           lshtein.py to avoid clash with external package name.
3652 2007-05-23 08:41  friedelwolff
3654         * search/Levenshtein.py: Use the fast C implementation if it is
3655           available.
3657 2007-05-23 07:25  friedelwolff
3659         * tools/pocount.py: Use psyco if it is available
3661 2007-05-22 11:24  andreaspauley
3663         * storage/test_base.py: Added an assertion to test_markup().
3665 2007-05-22 11:19  friedelwolff
3667         * search/Levenshtein.py: Optimise the test for the stop condition.
3668           Allow for speedup with 100% required match
3670 2007-05-22 08:18  andreaspauley
3672         * storage/txt.py: Removed unused import of textwrap.
3674 2007-05-22 07:18  friedelwolff
3676         * convert/pot2po.py: Build the index for the pot file for better
3677           performance
3679 2007-05-22 07:15  friedelwolff
3681         * convert/pot2po.py: Make min_similarity actually work properly
3683 2007-05-21 15:15  andreaspauley
3685         * storage/po.py, storage/test_po.py: Fix a spacing issue in po
3686           files. Lines should not start with a space.
3688 2007-05-18 16:13  friedelwolff
3690         * __version__.py: Change build number to a number for easy
3691           comparison. This fixes the problem of Pootle not complaining when
3692           used with old translate toolkit
3694 2007-05-18 16:09  friedelwolff
3696         * __version__.py: Version 1.0rc2
3698 2007-05-18 08:58  friedelwolff
3700         * tools/pocount.py: Use precompiled re's
3702 2007-05-18 08:53  friedelwolff
3704         * storage/po.py: Disable code to minimise diffs (using a template
3705           to fit new postring to)
3707 2007-05-18 08:49  friedelwolff
3709         * tools/test_pomerge.py: Don't test for minimal diffs - we rather
3710           try to follow gettext output closely.
3712 2007-05-16 11:05  friedelwolff
3714         * lang/data.py: Provide functions to translate language names, even
3715           with country name in brackets
3717 2007-05-15 14:47  friedelwolff
3719         * CREDITS: Convert to UTF-8. Expand the contribution of Nicolas
3720           François
3722 2007-05-15 13:32  friedelwolff
3724         * storage/po.py: [Contributed by Nicolas François] Rewrite
3725           isheader() for performance
3727 2007-05-15 13:26  friedelwolff
3729         * tools/test_pomerge.py: +test_comments_with_blank_lines
3731 2007-05-09 15:41  friedelwolff
3733         * storage/xliff.py: Comment out istranslted() with explanation.
3734           This way xliff statistics should be correct.
3736 2007-05-09 15:27  friedelwolff
3738         * storage/po.py: Simplify a parsing loop somewhat for performance.
3739           This avoids unnecessary creation of translation units
3741 2007-05-09 14:50  friedelwolff
3743         * storage/po.py: Ensure that all multistring parts in the source is
3744           unicode
3746 2007-05-09 14:48  friedelwolff
3748         * storage/test_po.py: Test that all multistring parts are unicode
3750 2007-05-09 12:14  friedelwolff
3752         * storage/base.py, storage/test_base.py: Don't make a unit a
3753           statistics object as this affects performance quite badly
3755 2007-05-09 10:16  andreaspauley
3757         * convert/test_oo2po.py, storage/oo.py: Fixed a bug where the
3758           filename got lost during oo2po conversion.
3760 2007-05-08 09:34  friedelwolff
3762         * README: Add comment about documentation in the doc/ directory
3764 2007-05-08 09:29  friedelwolff
3766         * search/test_match.py: Test extendtm()
3768 2007-05-08 09:29  friedelwolff
3770         * search/match.py: Add method extendtm(units, store) to extend the
3771           TM with more units.
3773 2007-05-07 10:38  friedelwolff
3775         * storage/base.py: Close file after reading in parsefile()
3777 2007-05-07 10:13  dwaynebailey
3779         * convert/test_ts2po.py, convert/ts2po.py: Make sure we can carry
3780           \n from TS file to PO.
3781           We were using .msgid and .msgstr changed to .source and .target
3782           and solved the problem
3784 2007-05-05 11:58  friedelwolff
3786         * lang/el.py: [contributed by Rail Aliev] Fix typo in dictionary
3787           decleration
3789 2007-05-03 19:40  friedelwolff
3791         * __version__.py: Change the version to 1.0rc1
3793 2007-05-03 12:08  andreaspauley
3795         * storage/statistics.py, storage/test_base.py: Patch contributed by
3796           Hok Kakada: Updated statistics to do lazy classification of
3797           units. Also changed method names to be more logical.
3799 2007-05-02 09:20  friedelwolff
3801         * lang/ja.py: Some basic punctuation rules for Japanese
3803 2007-05-02 09:18  friedelwolff
3805         * lang/test_vi.py, lang/vi.py: Some basic punctuation rules for
3806           Vietnamese
3808 2007-05-02 09:12  friedelwolff
3810         * lang/el.py: Some basic punctuation rules for Greek
3812 2007-05-02 09:10  friedelwolff
3814         * lang/am.py: Some basic punctuation rules for Amharic
3816 2007-05-02 08:25  friedelwolff
3818         * convert/pot2po.py: Don't use any obsolete units the pot file
3819           might have for some reason
3821 2007-05-02 08:16  friedelwolff
3823         * storage/base.py: Account for cases where .notes do not exist
3825 2007-05-02 07:38  friedelwolff
3827         * filters/pofilter.py: Mentions that --language is not only for
3828           spell checking
3830 2007-05-02 07:36  friedelwolff
3832         * filters/decoration.py: Test more elaborately for valid
3833           accelerator characters by trying to decompose to catch letters
3834           with diacritics
3836 2007-05-02 07:35  friedelwolff
3838         * filters/test_checks.py: Test that we fail with an accelerator on
3839           a letter with a diacritic (like ê)
3841 2007-05-02 07:14  friedelwolff
3843         * filters/test_checks.py: Test for more quoting style possibilities
3844           in combination with xml attributes
3846 2007-05-02 07:10  friedelwolff
3848         * filters/checks.py: Ensure we are using unicode strings in
3849           fails_serious()
3851 2007-05-02 07:08  friedelwolff
3853         * filters/checks.py: Filter out any xml before testing for valid
3854           double quotes. Incorrect attribute quoting will be tested by the
3855           xmltags test.
3857 2007-04-25 17:20  andreaspauley
3859         * convert/html2po.py, filters/checks.py, filters/decoration.py,
3860           filters/prefilters.py, search/terminology.py, storage/po.py,
3861           storage/poheader.py, storage/properties.py, storage/xpi.py,
3862           tools/poconflicts.py, tools/pocount.py, tools/podebug.py,
3863           tools/pogrep.py: Changed sre references to re.
3865 2007-04-23 12:33  andreaspauley
3867         * storage/statistics.py: Speed improvements by Nicolas Francois.
3869 2007-04-23 10:16  andreaspauley
3871         * convert/oo2po.py, convert/test_oo2po.py: Fixed backslash escaping
3872           on oo2po. This fixes bug #230.
3874 2007-04-23 10:10  andreaspauley
3876         * convert/test_po2oo.py: Updated the roundtripstring method. The
3877           targetlanguage needs to be supplied for the tests to accurately
3878           mimic what happens on the command line.
3880 2007-04-23 09:59  andreaspauley
3882         * convert/test_oo2po.py: Change test_escapes_helpcontent2 so that
3883           it reflects what is happening in the official OpenOffice.org pot
3884           files supplied by Pavel.
3886 2007-04-19 11:26  friedelwolff
3888         * filters/checks.py: Use lang.punctranslate to adapt the
3889           punctuation style before testing punctuation related things.
3891 2007-04-19 06:40  friedelwolff
3893         * lang/data.py: Add Lingala plural information
3895 2007-04-17 15:53  friedelwolff
3897         * lang/test_zh.py: Test basic Chinese punctuation translation and
3898           sentence segmenting
3900 2007-04-17 15:44  friedelwolff
3902         * lang/zh.py: Basic support for Chinese (all types)
3904 2007-04-13 15:47  friedelwolff
3906         * filters/test_checks.py: Test for some possible confusions with
3907           French and Chinese puntuation
3909 2007-04-13 15:42  friedelwolff
3911         * lang/common.py: Add horizontal ellips unicode 0x2026 to
3912           sentenceend (used in test_checks)
3914 2007-04-13 15:38  friedelwolff
3916         * lang/common.py: Add horizontal ellips unicode 0x2026 to miscpunc
3917           (used in test_checks)
3919 2007-04-13 15:37  friedelwolff
3921         * filters/checks.py: Rather get the punctuation characters from the
3922           language module
3924 2007-04-13 15:32  friedelwolff
3926         * filters/checks.py: Deal better with encoding problems by ensuring
3927           that strings for testing are always unicode.
3929 2007-04-13 14:28  friedelwolff
3931         * lang/common.py: Fix syntax error in joining of punctuation lists
3933 2007-04-13 14:28  friedelwolff
3935         * lang/test_factory.py: Test that we can correctly import Icelandic
3936           (the code 'is' is a reserved word in python and used to cause
3937           problems)
3939 2007-04-13 14:27  friedelwolff
3941         * lang/factory.py: Handle language codes that are reserved words in
3942           python
3944 2007-04-13 10:07  friedelwolff
3946         * lang/common.py: Add inverted (Spanish) punctuation that got
3947           dropped a few commits ago
3949 2007-04-13 09:10  friedelwolff
3951         * lang/common.py: Add Armenian punctuation
3953 2007-04-13 08:39  friedelwolff
3955         * lang/common.py: Split out different punctuation types for
3956           legibility and improve documentation
3958 2007-04-13 07:36  friedelwolff
3960         * lang/common.py: Don't yield sentences that are just whitespace
3962 2007-04-13 06:37  friedelwolff
3964         * filters/checks.py: Accept a language parameter in TeeChecker to
3965           update the configuration of each checker
3967 2007-04-12 18:42  friedelwolff
3969         * tools/pocount.py: Catch all br tag styles. Update copyright and
3970           comments
3972 2007-04-12 18:41  friedelwolff
3974         * tools/test_pocount.py: Test with different styles of br-tags
3975           (<br><br/><br />)
3977 2007-04-12 18:37  friedelwolff
3979         * tools/test_pocount.py: Remove two invalid tests:
3980           test_punctuation_only: puntuation is not a word,
3981           test_kde_comments_are_not_counted: the PO class handles the kde
3982           comments and never passes them here
3984 2007-04-12 16:35  friedelwolff
3986         * lang/fa.py: Basic punctuation support for Persian (fa)
3988 2007-04-12 16:19  friedelwolff
3990         * lang/common.py: Add Greek middot to puntuation list
3992 2007-04-12 15:46  friedelwolff
3994         * lang/common.py: Add fullwidth puntuation marks as well as Arabic
3995           question mark
3997 2007-04-12 13:50  andreaspauley
3999         * storage/lisa.py: Set the object encoding to the value found in
4000           the parsed xml string. External code that uses self.encoding with
4001           po files can now do so on lisa-based files as well.
4003 2007-04-12 07:06  friedelwolff
4005         * storage/po.py: Ensure that we don't start with an empty ""
4006           unnecessarily
4008 2007-04-11 06:11  andreaspauley
4010         * setup.py: Removed obsolete reference to editor, this has since
4011           been reneamed to pootling.
4013 2007-04-10 11:47  andreaspauley
4015         * setup.py: The spelling directory should not be part of the
4016           toolkit distribution.
4018 2007-04-05 14:14  friedelwolff
4020         * tools/pocount.py: Don't try to remove kde (msgid) comments - the
4021           PO class already handles that.
4023 2007-04-05 14:12  friedelwolff
4025         * tools/pocount.py: Rewrite pocount sanely. Don't recount stats,
4026           don't recount totals, split display from counting
4028 2007-04-05 10:11  andreaspauley
4030         * tools/pomerge.py: Change xliff file extension to .xlf
4032 2007-04-04 14:12  friedelwolff
4034         * storage/statistics.py: Use a dictionary .classification to store
4035           the states. Now we don't reclassify all units each time we
4036           iterate through some set. Disable some of the code about pofilter
4037           checks and don't call classifyunits in the constructor.
4039 2007-04-04 14:03  friedelwolff
4041         * storage/test_base.py: Add in extra calls to classifyunits() to
4042           ensure that statistics are newly calculated before it is used
4044 2007-04-04 13:52  friedelwolff
4046         * convert/xliff2po.py: Rather test for isfuzzy() as this should
4047           have the correct semantics. Currently it calls isapproved()
4048           anyway
4050 2007-04-04 13:51  friedelwolff
4052         * convert/po2xliff.py: Always call markfuzzy() for newly created
4053           XLIFF units to ensure that the approved attribute is always set
4055 2007-04-04 13:46  friedelwolff
4057         * storage/test_xliff.py: Update testing to reflect new fuzzy
4058           behaviour. If the approved attribute is not specified, it is 'no'
4059           and the unit is considered fuzzy
4061 2007-04-04 13:43  friedelwolff
4063         * storage/xliff.py: Update the behaviour of isfuzzy() and
4064           markfuzzy().
4065           
4066           According to version 1.2 of the PO representation guide, only the
4067           approved
4068           attribute should be considered fuzzyness for backconversion to
4069           PO. This is
4070           the approach we now take in xliff. We still set the state and
4071           state-qualifier
4072           if there is a target, but this way we don't need a target.
4074 2007-04-04 13:42  andreaspauley
4076         * __version__.py: Bumped version number for the release of beta 2.
4078 2007-04-04 12:59  friedelwolff
4080         * filters/test_pofilter.py: Mark test units as approved to make
4081           them effectively not-fuzzy
4083 2007-04-04 11:35  andreaspauley
4085         * doc/api/index.html, doc/user/toolkit-index.html: Added href's to
4086           the urls in the html placeholder documentation.
4088 2007-04-04 11:22  andreaspauley
4090         * src/trunk/setup.py, doc/README, doc/api/index.html,
4091           doc/user/toolkit-index.html: Made changes to the setup script and
4092           some default doc files to allow setup.py to be run directly from
4093           a subversion checkout.
4095 2007-04-03 14:01  friedelwolff
4097         * convert/xliff2po.py: Moved some comment code to poxliff and made
4098           xliff2po work with any xliff file
4100 2007-04-03 13:51  friedelwolff
4102         * storage/lisa.py, storage/poxliff.py: Seek to start of file before
4103           reading, and don't close file after reading
4105 2007-04-03 13:50  friedelwolff
4107         * storage/poxliff.py: Try to support the general notion of
4108           translator and developer comments and notes. Mostly carried over
4109           from xliff2po
4111 2007-04-03 11:32  friedelwolff
4113         * convert/test_xliff2po.py: Test using a StringIO file
4115 2007-04-03 09:34  andreaspauley
4117         * convert/xliff2po.py: Ensure that the input parameter for xliff2po
4118           conversion is a string. This is a workaround due to
4119           inconsistencies in the different conversion methods.
4121 2007-04-02 14:12  friedelwolff
4123         * storage/xliff.py: Use the XLIFF id as the default location in
4124           XLIFF files
4126 2007-04-02 03:17  hokkakada
4128         * storage/base.py: add more properties to base.py
4130 2007-04-02 02:45  hokkakada
4132         * search/match.py: add more info for TM such as: filepath,
4133           translator, date, unitindex
4135 2007-03-30 12:22  friedelwolff
4137         * storage/test_xliff.py: Test basic parsing of an xliff file with
4138           empty <target/> tag
4140 2007-03-30 12:15  friedelwolff
4142         * storage/poxliff.py: Use iterator correctly in case of no plurals
4144 2007-03-30 12:02  friedelwolff
4146         * storage/lisa.py: Only create a text node before a ph tag if there
4147           is text
4149 2007-03-30 12:00  andreaspauley
4151         * storage/lisa.py: Only set the filename if it hasn't already been
4152           set. This fixes a bug in Pootle where jToolkit cannot send xliff
4153           files in plaintext to the browser because the filename has been
4154           lost.
4156 2007-03-30 10:47  friedelwolff
4158         * storage/poxliff.py: Fix parsing of plural units. This fixes the
4159           wrong conversion of plurals from PO style XLIFF files back to PO.
4161 2007-03-29 14:15  friedelwolff
4163         * convert/test_po2xliff.py: Test that messages with variables are
4164           converted correctly
4166 2007-03-29 14:14  friedelwolff
4168         * misc/ourdom.py: Detect text nodes more acurately by searching
4169           through all children. Fixes the bug with variables at the start
4170           of the message
4172 2007-03-29 11:38  friedelwolff
4174         * misc/ourdom.py: More attempts at making the XML output pretty:
4175           only indent for non-text nodes
4177 2007-03-29 11:02  friedelwolff
4179         * storage/base.py: Implement generic isblank() correctly. This
4180           solves the problem of untranslated XLIFF units not displaying in
4181           Pootle
4183 2007-03-29 09:47  andreaspauley
4185         * storage/base.py: Fix call to incorrect builtin method.
4187 2007-03-27 15:11  friedelwolff
4189         * storage/lisa.py: Only append a text node if it contains anything.
4190           This avoids problems of incorrectly indenting empty fields for
4191           the purposes of pretty printing.
4193 2007-03-27 08:28  friedelwolff
4195         * doc: Forward port doc/ directory from wordforge-0-10-branch
4197 2007-03-26 12:32  friedelwolff
4199         * convert/test_txt2po.py: Expect the location comment in PO
4201 2007-03-26 05:58  friedelwolff
4203         * misc/ourdom.py: Use _intern function from expatbuilder
4205 2007-03-20 10:48  andreaspauley
4207         * convert/po2xliff.py: Change file extension from .xliff to .xlf
4209 2007-03-12 12:14  andreaspauley
4211         * filters/checks.py, filters/test_checks.py: Added a checker for
4212           Creative Commons licenses.
4214 2007-03-09 15:25  friedelwolff
4216         * convert/txt2po.py: Add location comments from the line numbers of
4217           the unit in the text file
4219 2007-03-09 15:24  friedelwolff
4221         * storage/txt.py: Catch all dokuwiki headings. Implement
4222           .getlocations()
4224 2007-03-09 14:01  friedelwolff
4226         * filters/checks.py: Remove startcaps<->simplecaps ignore entry
4228 2007-03-09 09:33  friedelwolff
4230         * convert/test_oo2po.py: Test for bug 230
4232 2007-03-01 12:25  andreaspauley
4234         * convert/test_po2csv.py: Test round-trip conversion (po2csv2po)
4235           with newlines.
4237 2007-03-01 11:29  friedelwolff
4239         * lang/data.py: Fix typo where Turkish plural equation is not a
4240           string
4242 2007-03-01 10:47  andreaspauley
4244         * convert/test_csv2po.py: Update the csv2po test to reflect the
4245           changes made yesterday to csv2po.
4247 2007-03-01 10:47  friedelwolff
4249         * lang/test_factory.py: Test that the plural equation is retrieved
4250           from the data module
4252 2007-03-01 10:47  friedelwolff
4254         * lang/common.py: Fix typo
4256 2007-02-28 15:21  andreaspauley
4258         * storage/csvl10n.py: Don't remove newlines and carriage returns in
4259           field values.
4261 2007-02-28 15:17  friedelwolff
4263         * convert/csv2po.py: Properly convert cvs unit with base class
4264           methods without doing the escaping here.
4266 2007-02-27 13:36  friedelwolff
4268         * filters/checks.py: More preconditions to ignore certain tests.
4269           Update the target language correctly in the config.
4271 2007-02-26 13:29  andreaspauley
4273         * convert/test_html2po.py, storage/html.py: Ensure that text
4274           containing the charset is not seen as translatable text.
4276 2007-02-26 13:24  andreaspauley
4278         * storage/html.py: Introduce addhtmlblock() as a replacement for
4279           addcurrentblock(), and ensure that it is used troughout the code.
4281 2007-02-26 12:54  friedelwolff
4283         * lang/factory.py: Try to simplify language code and construct an
4284           object if necessary. This now supports country codes and dialect
4285           codes.
4287 2007-02-26 12:52  friedelwolff
4289         * lang/test_factory.py: Test more languages (country code and
4290           non-existing module)
4292 2007-02-26 12:51  friedelwolff
4294         * lang/common.py: Use language data when constructing a language
4295           object
4297 2007-02-26 12:48  friedelwolff
4299         * lang/data.py: Add language data (currently only plural
4300           information)
4302 2007-02-26 12:12  andreaspauley
4304         * storage/html.py: Make strip_html() search over multiple lines.
4306 2007-02-26 11:22  andreaspauley
4308         * convert/test_html2po.py, storage/html.py: Remove unnecessary html
4309           when converting from html to po.
4311 2007-02-23 13:38  andreaspauley
4313         * setup.py: Include api documentation in the binary distribution.
4315 2007-02-22 15:24  andreaspauley
4317         * storage/test_csvl10n.py, storage/test_dtd.py,
4318           storage/test_monolingual.py, storage/test_properties.py,
4319           storage/test_tbx.py, storage/test_tmx.py, storage/test_txt.py:
4320           Remove setup_method() in subclasses, in favour of the method in
4321           test_base.py
4323 2007-02-22 15:08  andreaspauley
4325         * storage/test_base.py: Make use of the unit created by
4326           setup_method().
4328 2007-02-21 14:54  andreaspauley
4330         * storage/test_tmx.py: Remove some whitespace in the tmx source
4331           string.
4333 2007-02-21 14:46  andreaspauley
4335         * storage/test_tmx.py: Make a new test class for TMX units where
4336           the unit is obtained using parsestring(), as is done with
4337           factory.getobject(). This will ensure that the way LISA units is
4338           typically obtained in the wild is also used in our tests.
4339           Currently this test class only triggers the new test_isfuzzy() in
4340           a sensible way.
4342 2007-02-21 14:41  andreaspauley
4344         * storage/base.py, storage/test_base.py: Make base just return
4345           False when doing fuzzy queries, include a base test for
4346           isfuzzy().
4348 2007-02-21 14:19  andreaspauley
4350         * storage/test_base.py: Only test fuzzy counting for units that can
4351           be set as fuzzy.
4353 2007-02-21 12:50  friedelwolff
4355         * convert/test_html2po.py: Improve two docstrings
4357 2007-02-21 12:50  friedelwolff
4359         * search/terminology.py: Sort terminology suggestions according to
4360           their position in the string
4362 2007-02-20 17:40  andreaspauley
4364         * setup.py: Include our documentation in the source distribution.
4366 2007-02-20 17:20  andreaspauley
4368         * setup.py: Remove pootling files from our toolkit distribution.
4370 2007-02-20 15:37  friedelwolff
4372         * lang/test_common.py: Test that apostrophes and hyphenation
4373           doesn't confuse the word segmentation.
4375 2007-02-20 15:32  friedelwolff
4377         * lang/test_af.py: Add test for Afrikaans sentence segmentation
4378           with "'n".
4380 2007-02-20 15:30  friedelwolff
4382         * lang/ar.py: Add module for Arabic with initial punctuation
4383           information.
4385 2007-02-20 15:09  friedelwolff
4387         * storage/txt.py: Initial work to support better format
4388           preservation.
4390 2007-02-20 14:54  friedelwolff
4392         * storage/txt.py: Fix flavourless text files (uninitialised
4393           variable)
4395 2007-02-20 14:03  friedelwolff
4397         * filters/checks.py, storage/po.py: Fix encoding problem with
4398           non-ascii messages in filter messages
4400 2007-02-20 13:39  andreaspauley
4402         * setup.py: Remove subversion directories from our distribution.
4404 2007-02-20 09:52  hokkakada
4406         * lang/test_common.py: Use unicode instead of normal strings
4408 2007-02-20 08:14  friedelwolff
4410         * lang/test_fr.py: Use unicode instead of normal strings
4412 2007-02-19 15:59  friedelwolff
4414         * filters/test_checks.py: Count a sentence without an ending
4415           fullstop as a single sentence. The error should be checked by
4416           endpunc, not sentencecount.
4418 2007-02-19 15:57  friedelwolff
4420         * filters/checks.py: Rewrite sentencecount() to use the sentence
4421           segmentation from the lang/ module
4423 2007-02-19 12:54  friedelwolff
4425         * lang/af.py: Remove wrong comment from docstring.
4427 2007-02-19 12:46  friedelwolff
4429         * lang/test_km.py: Test sentence segmentation in Khmer.
4431 2007-02-19 12:45  friedelwolff
4433         * lang/test_km.py: Test punctuation translation for Khmer.
4435 2007-02-19 12:25  friedelwolff
4437         * lang/test_fr.py: Test sentence segmentation with spaced
4438           punctuation.
4440 2007-02-19 12:24  friedelwolff
4442         * lang/test_fr.py: Test punctuation translation from French
4444 2007-02-19 12:23  friedelwolff
4446         * lang/fr.py: Add French specific punctuation translation (space
4447           before two part punctuation). Also handle french quotes
4448           (guillemets).
4450 2007-02-19 12:20  friedelwolff
4452         * lang/fr.py: Add module for French (fr)
4454 2007-02-19 12:18  friedelwolff
4456         * lang/test_common.py: Test sentence segmentation.
4458 2007-02-19 12:18  friedelwolff
4460         * lang/test_common.py: Test word segmentation.
4462 2007-02-19 12:13  friedelwolff
4464         * lang/common.py: Improve sentece segmentation with more involved
4465           regular expression. Derive Common from object.
4467 2007-02-19 12:09  friedelwolff
4469         * lang/km.py: Remove wrong comment from docstring.
4471 2007-02-16 12:34  andreaspauley
4473         * storage/base.py: Remove the need to override the __str__ and
4474           parsestring methods.
4476 2007-02-14 14:50  friedelwolff
4478         * storage/base.py: Reorder calls to parent constructors. Handle
4479           None better in .gettargetlen(). Remove NotImplementedException.
4481 2007-02-14 14:46  friedelwolff
4483         * storage/properties.py: Handle None source and target better.
4485 2007-02-14 13:37  andreaspauley
4487         * setup.py: Add the lang module to setup.py
4489 2007-02-14 11:43  friedelwolff
4491         * storage/statistics.py: Deal correctly with missing plurals.
4493 2007-02-14 11:41  friedelwolff
4495         * storage/statistics.py: Refactor code from Pootle/statistics.py
4496           for unit classification. Everything except has-suggestion is
4497           ported. Improve constructor for languages and checker.
4499 2007-02-14 10:55  friedelwolff
4501         * storage/statistics.py: Small cleanups. Add licence, docstrings,
4502           handle plurals, etc.
4504 2007-02-14 09:32  andreaspauley
4506         * storage/test_factory.py, storage/xliff.py: Fixed a recursion
4507           error that was triggerred when an xliff file did not have any
4508           origin attribute in the file tag, as well as no restype attribute
4509           in trans-unit.
4511 2007-02-14 09:10  friedelwolff
4513         * storage/base.py: Rewrite filename handling and class
4514           instantiation in .save() to work with gzip.
4516 2007-02-14 08:00  andreaspauley
4518         * storage/base.py: Add getcontext() to base.
4520 2007-02-14 07:51  friedelwolff
4522         * storage/base.py, storage/test_base.py: Rewrite .save() for
4523           readability and ease testing by hiding .fileobj from pickle.
4524           +Test.
4526 2007-02-14 07:51  andreaspauley
4528         * storage/statistics.py: Use the unit iterator.
4530 2007-02-14 07:15  friedelwolff
4532         * storage/base.py: Implement .save() to allow a file to save back
4533           to the original file. Useful for compressed formats and future
4534           database storage formats.
4536 2007-02-14 06:39  friedelwolff
4538         * storage/po.py: Reimplement unit_iter for po to ignore obsolete
4539           units.
4541 2007-02-13 16:00  friedelwolff
4543         * storage/test_zip.py, storage/zip.py: Module that provides the
4544           ZIPFile class that represents the archive like a directory. +Test
4546 2007-02-13 15:53  friedelwolff
4548         * storage/directory.py, storage/test_directory.py: Test the unit
4549           iterator better and fix iterator bug.
4551 2007-02-13 15:09  andreaspauley
4553         * lang/factory.py: Replace dash with underscore in language codes.
4555 2007-02-13 15:06  andreaspauley
4557         * storage/base.py, storage/csvl10n.py, storage/dtd.py,
4558           storage/po.py, storage/properties.py, storage/statistics.py,
4559           storage/test_base.py, storage/test_txt.py, storage/txt.py,
4560           storage/xliff.py: Initial statistics support for the toolkit.
4562 2007-02-13 10:58  friedelwolff
4564         * storage/factory.py, storage/test_factory.py: Support directories
4565           in factory. +test.
4567 2007-02-13 10:41  friedelwolff
4569         * storage/test_factory.py: Test that the factory works correctly
4570           with gz and bz2 compressed files.
4572 2007-02-13 10:08  friedelwolff
4574         * storage/base.py, storage/factory.py: Support opening a single
4575           file compressed as .bz2 or .gz. For example pt_BR.po.gz
4577 2007-02-13 09:19  friedelwolff
4579         * storage/factory.py: Remove TODO that is already done (format
4580           guessing)
4582 2007-02-13 09:17  friedelwolff
4584         * storage/base.py: Provide unified unit accessors for use in
4585           statistics
4587 2007-02-13 09:10  friedelwolff
4589         * storage/directory.py, storage/test_directory.py: Initial support
4590           for directories. This provides a unified way to access files in a
4591           directory structure, and basic support for getting directory wide
4592           statistics.
4594 2007-02-13 07:49  friedelwolff
4596         * tools/pocount.py: Use the language module to count words.
4598 2007-02-11 10:38  friedelwolff
4600         * lang/km.py: Ignore 'startcaps' and 'simplecaps' in pofilter for
4601           Khmer
4603 2007-02-11 10:36  friedelwolff
4605         * filters/checks.py: When gathering tests, start by ignoring
4606           specific tests for this language. Retrieve .ignoretests from the
4607           language module.
4609 2007-02-11 10:34  friedelwolff
4611         * lang/common.py: Add .ignoretests - a list of pofilter tests for
4612           this language that must be ignored.
4614 2007-02-11 10:32  friedelwolff
4616         * lang/common.py: Improve documenation for class variables. Update
4617           list of supported features.
4619 2007-02-11 09:09  friedelwolff
4621         * filters/checks.py, filters/test_checks.py: Use .punctranslate()
4622           from the language to improve the endpunc test. Add a test for
4623           Khmer.
4625 2007-02-11 08:51  friedelwolff
4627         * lang/km.py: Define .puncdict for .punctranslate() to work for
4628           Khmer
4630 2007-02-11 08:48  friedelwolff
4632         * lang/common.py: Add .punctranslate() to convert punctuation to
4633           the rules of the language.
4635 2007-02-11 08:46  friedelwolff
4637         * lang/factory.py: Only catch import errors while looking for a
4638           language module. Deal correctly with None
4640 2007-02-11 07:07  friedelwolff
4642         * filters/checks.py: Use the word segmentation from the lang module
4643           rather than split().
4645 2007-02-11 07:06  friedelwolff
4647         * filters/test_checks.py: Add extra test for acronyms with
4648           punctuation
4650 2007-02-11 07:03  friedelwolff
4652         * lang/common.py: Move character, word and sentence segmentation
4653           from search/ to common. Word segmentation works reasonably for
4654           most languages.
4656 2007-02-11 07:01  friedelwolff
4658         * lang/test_factory.py: Expand test with None as language code
4660 2007-02-10 11:18  andreaspauley
4662         * storage/factory.py: Docstring improvement.
4664 2007-02-10 10:47  friedelwolff
4666         * filters/checks.py, filters/test_checks.py: Add nplurals test that
4667           uses the lang module to determine that we have the correct number
4668           of plural forms in the target
4670 2007-02-10 10:00  friedelwolff
4672         * lang, lang/__init__.py, lang/af.py, lang/common.py,
4673           lang/factory.py, lang/km.py, lang/test_factory.py: Initial
4674           language infrastructure in module lang
4676 2007-02-10 07:15  andreaspauley
4678         * storage/base.py, storage/xliff.py: Some docstring improvements.
4680 2007-02-10 07:12  hokkakada
4682         * storage/po.py: update doc strings
4684 2007-02-08 09:42  andreaspauley
4686         * storage/html.py: Improve the check for untranslatable content.
4688 2007-02-08 09:27  andreaspauley
4690         * convert/test_html2po.py, storage/html.py: Ignore untranslatable
4691           content in html2po.
4693 2007-02-07 16:39  andreaspauley
4695         * storage/html.py: Use a case-insensitive regex to guess the file
4696           encoding.
4698 2007-02-07 15:19  andreaspauley
4700         * convert/html2po.py, convert/test_html2po.py, storage/html.py:
4701           Decode html text using the supplied charset found in the meta
4702           tag.
4704 2007-02-06 16:50  andreaspauley
4706         * convert/test_html2po.py, convert/test_txt2po.py, storage/html.py,
4707           storage/txt.py: Ensure that carriage return characters doesn't
4708           appear in po files when converting from text or html.
4710 2007-02-05 11:16  friedelwolff
4712         * convert/test_po2txt.py: Expect --encoding parameter
4714 2007-02-05 11:08  friedelwolff
4716         * convert/test_txt2po.py, convert/txt2po.py: Add --encoding
4717           parameter
4719 2007-02-05 10:45  friedelwolff
4721         * storage/txt.py: Make text class more encoding aware
4723 2007-02-05 07:16  friedelwolff
4725         * convert/po2txt.py: Support different encodings for the template
4726           file, but assume utf-8 as default
4728 2007-02-02 15:25  friedelwolff
4730         * convert/txt2po.py, storage/txt.py: Support for MediaWiki syntax
4732 2007-02-02 14:55  friedelwolff
4734         * convert/test_txt2po.py: Test correct conversion of dokuwiki text
4735           to PO
4737 2007-02-02 14:54  friedelwolff
4739         * convert/txt2po.py: Add support for text file flavours
4741 2007-02-02 14:42  friedelwolff
4743         * storage/txt.py: Initial support for wiki style syntax
4745 2007-02-02 07:46  friedelwolff
4747         * storage/base.py: Rewrite sourceindex code to allow for any number
4748           of noun forms in the source language. Update copyright
4749           information
4751 2007-02-02 07:32  friedelwolff
4753         * convert/txt2po.py: Fix typo
4755 2007-02-01 10:13  friedelwolff
4757         * storage/txt.py: Add the encoding, copyright, and docstring
4759 2007-01-31 15:21  friedelwolff
4761         * convert/test_pot2po.py: Test that automatic comments get
4762           converted correctly when the location changes
4764 2007-01-31 15:20  friedelwolff
4766         * search/match.py: Only gather the translator notes (comments),
4767           otherwise we might end up getting programmer notes in the
4768           translator notes if the unit is used
4770 2007-01-30 17:35  dwaynebailey
4772         * convert/po2txt.py, convert/test_po2txt.py,
4773           convert/test_txt2po.py, convert/txt2po.py, storage/test_txt.py,
4774           storage/txt.py: Create a txt.py based on the base class and adapt
4775           txt2po and po2txt to use this.
4776           There might be some minor incompatabilities but this paves the
4777           way for txt to
4778           be a fully fledged base class derived storage format.
4780 2007-01-30 14:00  andreaspauley
4782         * README, convert/po2html.py, convert/test_po2html.py: Fix po2html
4783           so that the translations in a po file can be merged back into an
4784           html template. Used htmltidy on the html output.
4786 2007-01-29 11:11  andreaspauley
4788         * convert/test_html2po.py, storage/html.py: Line breaks within html
4789           text were not treated correctly. Wrote some tests and a fix.
4791 2007-01-29 11:05  andreaspauley
4793         * convert/html2po.py: Assume a file with a nonstandard extension
4794           will be in html format. I mean, the convertor IS called html2po.
4795           This is needed because the static html files used by Apache for
4796           content negotiation is named (for example) index.html.en by
4797           default.
4799 2007-01-26 07:41  andreaspauley
4801         * storage/po.py, storage/poheader.py, tools/pomerge.py,
4802           tools/test_pomerge.py: Allows pomerge to merge po headers. This
4803           fixes TestPOMerge().test_merging_header_entries
4805 2007-01-25 07:11  friedelwolff
4807         * search/match.py: Update the docstring to reflect new return type,
4808           etc.
4810 2007-01-24 12:55  andreaspauley
4812         * storage/po.py, tools/test_pomerge.py: Remove any kde-style
4813           msgidcomments from the translation when merging.
4815 2007-01-24 12:25  andreaspauley
4817         * storage/po.py, storage/test_po.py: Merged the two
4818           extract_msgidcomments methods into one.
4820 2007-01-24 11:08  andreaspauley
4822         * storage/po.py, storage/test_po.py, tools/test_pomerge.py: Cater
4823           for kde-style msgid comments in translations. This fixes
4824           TestPOMerge().test_merging_dont_merge_kde_comments_found_in_translation.
4826 2007-01-23 16:43  andreaspauley
4828         * tools/test_pomerge.py: Changed a test for tabs in pomerge so that
4829           the desired behaviour copy that of gettext. Marked the test as
4830           inactive for now, because making it pass breaks a lot of the
4831           layout/minimal diff tests.
4833 2007-01-22 15:35  andreaspauley
4835         * storage/po.py: This fixes test_pomerge.test_merge_dos2unix
4837 2007-01-22 15:32  andreaspauley
4839         * convert/pot2po.py: Small docstring change.
4841 2007-01-22 15:03  andreaspauley
4843         * storage/factory.py: Increase the number of characters to look at
4844           when trying to guess the file type.
4846 2007-01-22 14:31  andreaspauley
4848         * convert/test_pot2po.py: Fixed some tests.
4850 2007-01-22 13:47  dwaynebailey
4852         * storage/test_po.py: Add a wishlist test for bug 191 - handling
4853           KDE style plurals.
4855 2007-01-22 11:39  andreaspauley
4857         * misc/optrecurse.py: Docstring changes to RecursiveOptionParser.
4859 2007-01-19 09:40  andreaspauley
4861         * storage/test_base.py, storage/test_properties.py: Split
4862           test_escapes() into 2 seperate tests, and force a pass for
4863           test_properties.py. Created bug 223 so as not to forget about the
4864           issue.
4866 2007-01-19 08:38  friedelwolff
4868         * storage/xliff.py: Fix tab -> spaces
4870 2007-01-19 08:11  friedelwolff
4872         * storage/xliff.py: Adapt remove notes to always only remove
4873           translator notes (like PO does)
4875 2007-01-19 07:26  friedelwolff
4877         * storage/xliff.py: rewrite removenotes() to take origin parameter
4878           into account
4880 2007-01-19 07:23  andreaspauley
4882         * __init__.py: Moved the licence text out of the docstring, and
4883           just put in a URL to to GPL.
4885 2007-01-18 14:33  friedelwolff
4887         * storage/xliff.py: Indicate that method is for internal use only
4889 2007-01-18 14:06  andreaspauley
4891         * __init__.py, storage/base.py: Updated some docstrings to improve
4892           the epydoc generated API documentation.
4894 2007-01-17 09:20  friedelwolff
4896         * storage/xliff.py: Don't call getElementsByTagName on
4897           document.childNodes[0], since we might get a doctype and not a
4898           node [Fix for bug 221]
4900 2007-01-17 08:51  friedelwolff
4902         * convert/xliff2po.py: Change expected extention from .xliff to
4903           .xlf
4905 2007-01-15 10:43  friedelwolff
4907         * README: Fix link to toolkit documentation on the wiki
4909 2007-01-11 15:11  friedelwolff
4911         * tools/pomerge.py: Fix tab -> spaces
4913 2007-01-11 15:09  friedelwolff
4915         * __version__.py: Up the version to 1.0beta
4917 2007-01-11 14:53  friedelwolff
4919         * README: Some updates to the old README file. Could use more
4920           attention.
4922 2007-01-11 14:49  friedelwolff
4924         * storage/xliff.py: Mention that the official recommended file name
4925           extention is .xlf. Mark a TODO
4927 2007-01-11 14:45  friedelwolff
4929         * storage/factory.py: Simplify the file type guessing code to just
4930           work with file extention
4932 2007-01-05 14:56  friedelwolff
4934         * storage/xliff.py: Take out old modifications to minidom class and
4935           adapt file to use the new ourdom code
4937 2007-01-05 14:27  andreaspauley
4939         * storage/po.py, storage/test_po.py: Made kde-style msgid comments
4940           available via getcontext().
4942 2007-01-05 12:28  friedelwolff
4944         * storage/lisa.py, storage/poxliff.py, storage/tbx.py,
4945           storage/tmx.py: Remove references to minidom and replace (where
4946           necessary) with misc/ourdom
4948 2007-01-05 11:58  friedelwolff
4950         * storage/test_factory.py: Remove roundtrip formatting test. Add
4951           assert to test for correct objects when we don't have a name
4953 2007-01-05 09:38  friedelwolff
4955         * misc/ourdom.py: Fix the wrong layout of text nodes with nested
4956           tags and add some notes about use.
4958 2007-01-04 16:07  dwaynebailey
4960         * storage/po.py: Add "previous msgid" structure to example PO
4961           layout. Add comments about which version of Gettext adds new
4962           features. Correct the docstring for setsource.
4964 2007-01-04 16:00  dwaynebailey
4966         * misc/ourdom.py: Better docstring and remove reference to .ts
4968 2007-01-04 14:39  friedelwolff
4970         * storage/ts.py: Take out the dom manipulations that are now in
4971           misc/ourdom.py and adapt to the new location
4973 2007-01-04 14:30  friedelwolff
4975         * misc/ourdom.py: Add helper class that reimplements some dom
4976           functionalities. This is mostly just moved from storage/ts.py
4978 2007-01-04 11:06  andreaspauley
4980         * storage/po.py, storage/test_po.py: Added message context
4981           (msgctxt) support for po.
4983 2007-01-03 14:23  dwaynebailey
4985         * storage/test_properties.py: Fix failing test. We need to check
4986           more closely on what the spec says but until then Bye bye test.
4988 2007-01-02 11:06  friedelwolff
4990         * storage/xliff.py: Remove specialised parsefile to rather use the
4991           inherited one, since no specialisation is necessary anymore
4993 2006-12-28 15:03  friedelwolff
4995         * filters/checks.py: Ensure that the filtermessage is a string to
4996           avoid encoding problem in pofilter
4998 2006-12-28 08:29  friedelwolff
5000         * convert/po2oo.py: Make unicode location a string before printing
5001           to screen. Fix for bug 211
5003 2006-12-27 14:09  friedelwolff
5005         * storage/po.py: Detect the encoding from the header somewhat
5006           earlier. Fix for bug 193
5008 2006-12-27 11:45  friedelwolff
5010         * storage/test_xliff.py: Typo
5012 2006-12-27 11:43  friedelwolff
5014         * storage/xliff.py: Typo
5016 2006-12-24 10:14  andreaspauley
5018         * storage/properties.py: Made the properties unit class call it's
5019           base constructor.
5021 2006-12-24 10:10  andreaspauley
5023         * storage/csvl10n.py, storage/dtd.py, storage/test_csvl10n.py,
5024           storage/test_dtd.py: Made the unit classes for dtd and csv call
5025           their base class constructors, and this made some tests obsolete
5026           that previously had to override the desired behaviour.
5028 2006-12-22 10:34  friedelwolff
5030         * storage/test_xliff.py: Update test for alt-trans implementation.
5031           Translations are now accessed with .source and .target like
5032           normal units
5034 2006-12-22 10:33  friedelwolff
5036         * storage/xliff.py: Update support for alt-trans tags. Correctly
5037           construct target tag inside alt-trans tag. getalttrans() now
5038           returns simple units to be able to access source and target (and
5039           more in future). +delalttrans(). +Some TODO
5041 2006-12-21 20:32  dwaynebailey
5043         * storage/ts.py: Implement writexml for .TS files so that <source>
5044           and <translation> tags are not wrapped.
5046 2006-12-19 07:39  jens_herden
5048         * storage/poxliff.py: undo my last commit. It turned out that the
5049           bug did not exist. I am not sure which bug I saw in the past.
5051 2006-12-19 07:18  jens_herden
5053         * storage/poxliff.py: fix for bug 208
5054           now the header is also parsed
5055           
5056           please review!
5058 2006-12-14 12:15  dwaynebailey
5060         * convert/test_txt2po.py: Add some new tests
5062 2006-12-12 14:13  jens_herden
5064         * storage/po.py, storage/poheader.py, storage/poxliff.py,
5065           storage/test_po.py, storage/test_poheader.py: - introduce a new
5066           class poheader
5067           - remove the old poheader form po.py
5068           - use the class in pofile and PoXliffFile
5069           - create tests for poheader (not ready for PoXliffFile because of
5070           bug 208)
5072 2006-12-12 13:43  jens_herden
5074         * misc/dictutils.py, misc/test_dictutils.py: implement the missing
5075           pop() and test it
5077 2006-12-12 13:31  andreaspauley
5079         * convert/xliff2oo, convert/xliff2oo.py: Initial hackish
5080           implementation of xliff2oo, based on a copy of xliff2po. Proper
5081           refactoring to follow.
5083 2006-12-12 13:28  jens_herden
5085         * misc/dictutils.py, misc/test_dictutils.py: - fix remove in
5086           ordereddict, entry was not removed from list
5087           - create test for the fix
5089 2006-12-12 13:15  andreaspauley
5091         * convert/oo2xliff, convert/oo2xliff.py: Initial hackish
5092           implementation of oo2xliff, based on a copy of oo2po. Proper
5093           refactoring to follow.
5095 2006-12-12 12:22  andreaspauley
5097         * storage/xliff.py: Removed target-language from the xliff
5098           skeleton, as it is an optional attribute according to the xliff
5099           spec.
5101 2006-12-12 12:08  dwaynebailey
5103         * convert/po2csv.py: the{po,csv} -> {po,csv}unit
5105 2006-12-12 12:02  dwaynebailey
5107         * convert/po2csv.py: element -> unit
5109 2006-12-12 12:00  dwaynebailey
5111         * convert/csv2po.py: the{po,csv} -> {po,csv}unit
5113 2006-12-12 11:04  dwaynebailey
5115         * convert/csv2po.py: element -> unit
5117 2006-12-12 10:22  dwaynebailey
5119         * convert/po2dtd.py: Convert: the{po,dtd} -> {po,dtd}unit
5121 2006-12-12 09:41  dwaynebailey
5123         * convert/prop2po.py: Name cleanup the{po,prop} -> {po,prop}unit
5125 2006-12-12 09:34  andreaspauley
5127         * convert/test_po2xliff.py: Specified the target language in the
5128           tests. This fixes test_language_tags.
5130 2006-12-12 09:24  andreaspauley
5132         * storage/xliff.py: Allowed the target language to be specified for
5133           xliff.
5135 2006-12-11 09:19  andreaspauley
5137         * tools/pocompile.py, tools/poconflicts.py, tools/pocount.py,
5138           tools/podebug.py, tools/pogrep.py, tools/pomerge.py,
5139           tools/porestructure.py: Enabled .py files in tools to be run
5140           directly, without needing the wrapper script.
5142 2006-12-11 09:10  andreaspauley
5144         * services/lookupservice.py: Enabled lookupservice.py to be run
5145           directly, without needing the wrapper script.
5147 2006-12-11 09:07  andreaspauley
5149         * filters/pofilter.py: Enabled pofilter.py to be run directly,
5150           without needing the wrapper script.
5152 2006-12-11 08:58  andreaspauley
5154         * convert/csv2po.py, convert/csv2tbx.py, convert/html2po.py,
5155           convert/moz2po.py, convert/nb2po.py, convert/oo2po.py,
5156           convert/po2csv.py, convert/po2html.py, convert/po2moz.py,
5157           convert/po2nb.py, convert/po2oo.py, convert/po2tmx.py,
5158           convert/po2ts.py, convert/po2txt.py, convert/pot2po.py,
5159           convert/sxw2po.py: Enabled .py files in convert to be run
5160           directly, without needing the wrapper script.
5162 2006-12-11 08:34  andreaspauley
5164         * convert/po2xliff.py: Enabled po2xliff.py to be run directly,
5165           without needing the wrapper script.
5167 2006-12-08 11:19  andreaspauley
5169         * convert/test_po2xliff.py: Changed tabs to spaces.
5171 2006-12-07 07:34  andreaspauley
5173         * storage/factory.py: Made the return value for guesstype() a bit
5174           more descriptive.
5176 2006-12-06 14:59  andreaspauley
5178         * storage/factory.py: The previous storage factory commit broke
5179           quite a few of our tests in convert, this fixes it.
5181 2006-12-06 12:39  andreaspauley
5183         * tools/pomerge.py: Removed a factory method inside pomerge,
5184           changed the code to rather use the updated storage factory.
5186 2006-12-06 12:38  andreaspauley
5188         * storage/factory.py, storage/test_factory.py: The storage factory
5189           can now guess the filetype by looking at the contents of a file.
5190           Implemented for xliff and po. Wrote some new factory tests and
5191           refactored the factory tests.
5193 2006-12-05 09:26  andreaspauley
5195         * filters/pofilter.py, filters/test_pofilter.py: Updated pofilter
5196           and the tests to use adderror() and geterrors() from the storage
5197           api, rather than add po-specific translator comments.
5199 2006-12-05 09:23  andreaspauley
5201         * storage/base.py, storage/po.py, storage/test_base.py,
5202           storage/test_csvl10n.py, storage/test_monolingual.py,
5203           storage/test_properties.py, storage/test_tbx.py,
5204           storage/test_tmx.py, storage/xliff.py: Added 2 new methods to the
5205           base api: adderror and geterrors. Primarily for the use of
5206           pofilter. Wrote base class test for these methods, and
5207           implemented it in po and xliff.
5209 2006-12-04 12:30  andreaspauley
5211         * storage/base.py: Replaced tabs with spaces.
5213 2006-12-01 09:55  andreaspauley
5215         * storage/base.py, storage/properties.py, storage/test_base.py,
5216           storage/test_csvl10n.py, storage/test_dtd.py,
5217           storage/test_poxliff.py, storage/test_xliff.py, storage/xliff.py:
5218           Made sure that getnotes() behaves consistently across all storage
5219           implementations.
5221 2006-11-30 20:56  dwaynebailey
5223         * filters/test_checks.py: Remove duplicate test
5225 2006-11-30 16:43  andreaspauley
5227         * storage/poxliff.py: Removed unnecessary code from poxliff.py
5229 2006-11-30 15:25  andreaspauley
5231         * storage/xliff.py: Replaced tabs with spaces in parsestring().
5233 2006-11-28 09:57  andreaspauley
5235         * filters/pofilter.py, filters/test_pofilter.py: Made pofilter work
5236           with xliff. Refactored test_pofilter so that base class tests can
5237           be run for any file format.
5239 2006-11-28 09:54  andreaspauley
5241         * storage/base.py, storage/po.py, storage/test_base.py,
5242           storage/test_csvl10n.py, storage/test_dtd.py,
5243           storage/test_monolingual.py, storage/test_tbx.py,
5244           storage/test_tmx.py, storage/xliff.py: Added a markreviewneeded()
5245           method to the base API, implemented it in xliff.py and po.py
5247 2006-11-23 12:17  dwaynebailey
5249         * convert/test_pot2po.py: Mark a wishlist test
5251 2006-11-23 12:15  dwaynebailey
5253         * convert/test_convert.py: Make sure Psyco doesn't get in the way
5255 2006-11-23 11:51  dwaynebailey
5257         * convert/po2prop.py: Return the exit status from the parent
5258           function.
5260 2006-11-23 09:00  andreaspauley
5262         * tools/pogrep.py, tools/test_pogrep.py: Removed all po-specific
5263           usage and naming conventions from pogrep.
5265 2006-11-22 23:08  dwaynebailey
5267         * convert/po2txt.py, convert/test_po2txt.py: Correctly handle the
5268           non template version of po2txt. Without a template we simply use
5269           the source text. We now are able to use the source properly is
5270           the message is untranslated or fuzzy.
5272 2006-11-22 22:39  dwaynebailey
5274         * convert/po2txt.py, convert/test_po2txt.py: When merging .txt
5275           translations into a template we will no longer use blank
5276           messages. We can optionally use fuzzy messages with teh --fuzzy
5277           and --nofuzzy options.
5279 2006-11-22 19:39  dwaynebailey
5281         * filters/test_checks.py: Add references to bug 178 and also add
5282           some more tests for 'unchanged' issues (all of which now passs)
5284 2006-11-22 19:20  dwaynebailey
5286         * filters/checks.py, filters/test_checks.py: Filter abbreviations
5287           of the form a.b.c. from sentences before counting sentences.
5289 2006-11-22 19:05  dwaynebailey
5291         * filters/checks.py, filters/test_checks.py: Check that once
5292           variables and spaces are removed, that if we are left with only
5293           punctuation that we don't consider this a candidate for the
5294           'unchanged' test.
5296 2006-11-22 18:56  dwaynebailey
5298         * filters/checks.py, filters/test_checks.py: Ignore accronyms in
5299           teh 'unchanged' test
5301 2006-11-22 11:53  dwaynebailey
5303         * convert/test_html2po.py: Added a wishlist test to check that we
5304           can extract items within nested tags ie <div><p>This</p>And
5305           this</div>
5306           Currently we only extract the first item.
5308 2006-11-22 11:47  dwaynebailey
5310         * convert/test_html2po.py: Add test for <div> tag
5312 2006-11-22 07:14  dwaynebailey
5314         * convert/po2moz.py, convert/po2prop.py, convert/prop2mozfunny.py,
5315           convert/test_po2prop.py: po2prop now has the ability to output
5316           files according to the Java spec (escaped Unicode) or Mozilla
5317           (Unicode chars).
5318           The --personality option gives this ability with the default
5319           being "java". Added a test to test for the two styles.
5320           Added a wrapper function to do the Mozilla style easily and
5321           adjusted po2moz and prop2mozfunny to use this function.
5323 2006-11-22 06:50  dwaynebailey
5325         * misc/optrecurse.py: Ignore Subversion .svn directories
5327 2006-11-21 14:27  friedelwolff
5329         * storage/poxliff.py: Add .getheaderplural() to mimic PO
5331 2006-11-21 12:01  andreaspauley
5333         * tools/pogrep, tools/pogrep.py, tools/test_pogrep.py: Modified
5334           pogrep to work with po and xliff interchangeably.
5336 2006-11-21 08:56  friedelwolff
5338         * storage/lisa.py: Whitespace cleanup
5340 2006-11-21 08:51  friedelwolff
5342         * convert/pot2po.py: Revert incorrect patch from revision 4069 to
5343           always use Project-Id-Version from the POT
5345 2006-11-21 08:22  andreaspauley
5347         * storage/base.py, storage/po.py: Moved isempty() from po.py to
5348           base.py, and rewrote it slightly to be more generic. Added an
5349           addunit() method to base.py.
5351 2006-11-20 12:06  friedelwolff
5353         * storage/po.py: Rewrite the plural handling logic in settarget to
5354           distinguish clearly between a single plural form language and a
5355           single (simple) string passed in a list
5357 2006-11-20 10:03  friedelwolff
5359         * filters/checks.py: Remove debug statements commited by accident
5361 2006-11-17 08:22  dwaynebailey
5363         * filters/checks.py, filters/test_checks.py: Change 'fails' to only
5364           work for normal failures. Rename seriousfails to 'fails_serious'
5365           to make it clearer that it realtes to 'fails'. Change all tests
5366           that create SeriousFilterFailures so that they use fails_serious.
5368 2006-11-16 15:08  friedelwolff
5370         * filters/decoration.py, filters/test_checks.py: Don't report an
5371           empty string as purepunc. +test
5373 2006-11-16 14:50  friedelwolff
5375         * filters/checks.py, filters/decoration.py, filters/test_checks.py:
5376           Ignore punctuation trailing functions.
5377           Example:
5378           funcA(), funcB(), and funcC().
5379           vs.
5380           funcA(), funcB() en funcC() something.
5382 2006-11-16 14:20  friedelwolff
5384         * filters/test_checks.py: Test that the new simpleplurals logic
5385           allows a simple valid case.
5387 2006-11-16 14:16  friedelwolff
5389         * filters/checks.py: Allow certain simpleplurals in target
5390           language. This paves the way for more flexible simpleplurals
5391           test.
5393 2006-11-16 12:42  friedelwolff
5395         * filters/test_checks.py: Test that a failure for accelerators in
5396           Mozilla is a serious failure
5398 2006-11-16 12:39  friedelwolff
5400         * filters/checks.py: Add the ability to mark tests as critical, and
5401           use it mark variables test critical for Mozilla
5403 2006-11-16 10:48  dwaynebailey
5405         * filters/test_checks.py: Another Mozilla variables style - already
5406           trapped by '$(', ')' style checks but here for tracking
5408 2006-11-16 10:42  dwaynebailey
5410         * filters/test_checks.py: Make double sure we can also detect $_VAR
5411           type variables that seem to appear in Mozilla
5413 2006-11-16 09:50  friedelwolff
5415         * storage/po.py: Redo the logic of .isblank() to return False if
5416           there are msgidcomments. Remove weird logic.
5418 2006-11-16 08:11  dwaynebailey
5420         * filters/test_checks.py: Add test to make sure that we can trap a
5421           kde comment even of the msgid is actually a blank msgid
5422           
5423           eg:
5424           
5425           msgid "_: comment\n"
5426           msgstr "_: comment\n"
5428 2006-11-16 06:53  jens_herden
5430         * storage/base.py: fix indentation error
5432 2006-11-16 02:39  varsist
5434         * storage/xliff.py: Variable name change from 'suggestion' based
5435           variables names to alttrans based
5437 2006-11-15 06:51  varsist
5439         * storage/test_xliff.py, storage/xliff.py: Added methods to support
5440           the xliff alt-trans (suggestions) tag. Added test cases for xliff
5441           alt-trans/suggestions work
5443 2006-11-14 15:27  friedelwolff
5445         * storage/po.py: When merging, take on the fuzzy status of the
5446           other unit
5448 2006-11-13 15:05  friedelwolff
5450         * storage/xliff.py: Remove debugging statements that were commited
5451           by accident
5453 2006-11-13 12:13  friedelwolff
5455         * storage/xliff.py: Move detection of PO style XLIFF files to
5456           .parsestring()
5458 2006-11-13 10:13  friedelwolff
5460         * storage/poxliff.py: Improve logic in __eq__ for a few corner
5461           cases
5463 2006-11-13 06:21  friedelwolff
5465         * filters/checks.py: Don't test for tabs or newlines if the message
5466           is not translated
5468 2006-11-10 15:50  friedelwolff
5470         * storage/po.py: Don't add an empty translator comment if no string
5471           is supplied
5473 2006-11-10 15:17  friedelwolff
5475         * storage/test_po.py: Test more PO comments functionality
5477 2006-11-08 09:41  friedelwolff
5479         * storage/po.py: Move the plural accessor (getheaderplural()) to
5480           the poheader class to enable reuse from the poxliff class.
5482 2006-11-06 13:35  friedelwolff
5484         * storage/lisa.py: Only parse the XML string if it contains
5485           something (return empty store object otherwise)
5487 2006-11-03 16:12  dwaynebailey
5489         * filters/checks.py: tags2 should not have kdecomments removed
5490           Also changed tags to tags1 or tags2 as appropriate as reusing the
5491           vartiable will just create confusion.
5493 2006-11-03 11:48  friedelwolff
5495         * filters/checks.py: If the first string contains no xml tags,
5496           check that the second also contains none. Fix for currently
5497           failing test.
5499 2006-11-02 11:01  friedelwolff
5501         * storage/po.py: Use the dictionary with corrected keys [reported
5502           and patch by Hok Kakada]
5504 2006-11-02 10:26  friedelwolff
5506         * storage/lisa.py: Pass constructor parameter correctly
5508 2006-11-01 07:10  friedelwolff
5510         * filters/test_checks.py: Add an extra test that should trigger
5511           xmltags failure
5513 2006-10-31 21:44  dwaynebailey
5515         * tools/test_pomerge.py: Fix test to work by adding some none
5516           header entries
5518 2006-10-31 21:37  dwaynebailey
5520         * tools/test_pomerge.py: Fix test related to merging KDE comments
5521           to match new layout
5522           Add test to check that we do the right thing when mergin in
5523           header entries.
5525 2006-10-31 21:31  dwaynebailey
5527         * tools/pocount.py: Remove references to msgid and msgstr and
5528           replave with source and target. This in preperation for making
5529           pocount less PO centric.
5531 2006-10-31 19:28  dwaynebailey
5533         * convert/csv2po.py, convert/dtd2po.py, convert/html2po.py,
5534           convert/oo2po.py, convert/prop2po.py: Use msgctxt as our default
5535           disambiguator in the various convertors.
5537 2006-10-31 07:51  friedelwolff
5539         * storage/base.py: Add .isblank() for PO compatibility - might be
5540           temporary
5542 2006-10-31 07:48  friedelwolff
5544         * storage/base.py: Add .gettargetlen() to access the length of the
5545           target string and possible plural forms
5547 2006-10-30 14:50  friedelwolff
5549         * storage/xliff.py: Fix typo (unbalanced parentheses)
5551 2006-10-30 14:20  friedelwolff
5553         * storage/xliff.py: Implement initial .isreview() for xliff units
5555 2006-10-30 14:19  friedelwolff
5557         * filters/pofilter.py: Don't unnecessarily check for pofilter
5558           marked comment (.isreview() already does that)
5560 2006-10-30 13:11  friedelwolff
5562         * storage/base.py, storage/lisa.py: Use and pass unitclass
5563           parameters
5565 2006-10-29 12:10  dwaynebailey
5567         * search/match.py: Disable verbose debugging output
5569 2006-10-28 14:26  dwaynebailey
5571         * filters/test_checks.py: Iits a tabs test not an escapes test
5573 2006-10-27 07:38  friedelwolff
5575         * tools/pocount.py: Fix wrong logic of .fuzzymessages() that caused
5576           pocount to always give 0 fuzzy messages
5578 2006-10-26 14:01  friedelwolff
5580         * filters/checks.py, filters/test_checks.py: Seperate newlines test
5581           (\r and \n) and tabs test (\t) from the escapes test
5583 2006-10-26 11:29  dwaynebailey
5585         * storage/test_dtd.py: Turn some tests into wishlist wtest_ items
5587 2006-10-26 11:26  dwaynebailey
5589         * storage/lisa.py, storage/test_xliff.py, storage/xliff.py: Add
5590           ability to set the target language.
5592 2006-10-26 07:15  friedelwolff
5594         * convert/test_po2oo.py: Test conversion with escpaes of \t, \r and
5595           \n
5597 2006-10-25 16:17  friedelwolff
5599         * storage/oo.py: Escape \r and \t correctly with output
5601 2006-10-25 15:29  dwaynebailey
5603         * convert/test_html2po.py: Change some items to wishlist by
5604           changing to wtest_
5606 2006-10-25 15:20  dwaynebailey
5608         * convert/test_po2oo.py: Fix test to cater for change from
5609           'exclude' to 'exclude-all'
5611 2006-10-25 15:13  dwaynebailey
5613         * convert/test_prop2po.py: Disable some wishlist tests by using
5614           wtest_
5616 2006-10-25 06:13  dwaynebailey
5618         * convert/convert.py, convert/pot2po.py, convert/test_pot2po.py,
5619           storage/po.py, storage/test_po.py: Add a concept of an
5620           authoritative merge to po::merge. If the po file is authoritative
5621           then
5622           we abandon all sourcecomments and automaticcomments from the file
5623           being merged into the authoritative
5624           one. By default we continue with the old behaviour.
5625           
5626           Added 'msgctxt' as a duplicate style which will use Gettext
5627           0.15.x's ability to use context
5628           information to disambiguate duplicates. This will become the
5629           default mode in the future, but
5630           requires further testing.
5632 2006-10-24 16:04  friedelwolff
5634         * storage/po.py: Remove incorrect extra unescaping
5636 2006-10-24 06:38  dwaynebailey
5638         * filters/decoration.py: Only pull variables from a (startmaker,
5639           None) style variable if the length of the variable is > 1. Use
5640           (startmarker, 0) if you need zero length variables.
5641           This change makes all the variable tests pass.
5643 2006-10-24 05:44  dwaynebailey
5645         * storage/po.py, storage/test_po.py: Add ability to handle msgctxt
5646           Add test for copying a msg and for making msgctxt obsolete.
5648 2006-10-23 18:05  dwaynebailey
5650         * filters/checks.py, filters/test_checks.py: Handle the case where
5651           we have xmltag false positives. E.g. "<Error>" which looks
5652           like XML/HTML but should actually be translated.
5653           These are handles by 1) identifying them as being the same length
5654           as the source text,
5655           2) not containing any '=' sign. Thus the following would not be
5656           detected by this hack.
5657           "An <Error> occured"
5658           "<Error name="bob">"
5659           But these ones need human eyes anyway.
5661 2006-10-23 17:26  dwaynebailey
5663         * convert/po2oo.py: Make the defalt filter action = none ie do
5664           nothing and don't warn. Until we have a way of clearly marking
5665           false positives we'll have to diable this funtionality. Also
5666           renamed exclude to exclude-all so that it is clearer what it does
5667           ie it excludes 'all' vs excludes 'serious'.
5669 2006-10-20 08:35  dwaynebailey
5671         * storage/po.py, storage/test_po.py: Handle reflow of \n related
5672           sentences (with test). Not the cleanest hack, this section has
5673           gotten quite messy.
5675 2006-10-20 07:35  dwaynebailey
5677         * misc/textwrap.py: Update to the lastest Python Subversion (fixes
5678           some performance issues)
5679           Reimplement the drop_whitespace feature
5681 2006-10-20 06:49  dwaynebailey
5683         * misc/textwrap.py, storage/po.py, storage/test_po.py: Use our
5684           custom textwrap and add feature to allow the preservation of
5685           whitespace text chunks (default version clean up leading and
5686           trailing whitespace)
5687           Add test for wrapping long lines
5688           Add ability to wrap lines when we have no \n style lines. Still
5689           need to deal with message that have been broken into \n seperated
5690           lists.
5692 2006-10-20 06:05  dwaynebailey
5694         * storage/po.py, storage/test_po.py: Add tests to check for \n
5695           newline wrapping (already works correctly)
5696           Added test and fix to place firstline > 71 chars on a wrap line
5697           ie start with msgid "" (fix and test work)
5699 2006-10-16 07:01  varsist
5701         * convert/test_xliff2po.py, convert/xliff2po.py: xliff <note> tags
5702           now supported
5704 2006-10-13 12:03  friedelwolff
5706         * convert/pot2po.py: Always use Project-Id-Version from the POT
5708 2006-10-12 14:52  friedelwolff
5710         * storage/base.py, tools/pocount.py: Change .istranslated() to only
5711           return True if not fuzzy. Also adapt users
5713 2006-10-09 09:33  varsist
5715         * convert/test_po2xliff.py, convert/xliff2po.py: getnotes() origin
5716           use
5718 2006-10-09 09:29  varsist
5720         * storage/test_xliff.py, storage/xliff.py: correctorigin() function
5721           implemented, boolean origin check.
5723 2006-10-09 09:26  varsist
5725         * storage/poxliff.py, storage/test_poxliff.py: getnotes() now
5726           returns notes based on origin and removes duplicate notes
5728 2006-10-07 14:54  dwaynebailey
5730         * convert/test_pot2po.py: Make sure we are handling comments
5731           correctly when we obsolete
5733 2006-10-07 14:29  dwaynebailey
5735         * convert/test_dtd2po.py: Fix kdecomment_merge test
5736           Disable accelerator_keys_not_in_sentence test and make it a
5737           wtest_ ie a wish
5739 2006-10-06 08:26  friedelwolff
5741         * convert/po2txt.py: Encode output before writing to file [Reported
5742           and contributed by Maxim V. Dziumanenko]
5744 2006-10-06 08:24  friedelwolff
5746         * convert/test_po2txt.py: Test for basic conversion and nonascii
5747           text
5749 2006-10-05 12:11  friedelwolff
5751         * convert/pot2po.py: fix uninitialised variable
5753 2006-10-04 10:08  friedelwolff
5755         * __version__.py: Up to mystical version 0.10.90 (just for current
5756           HEAD)
5758 2006-09-29 07:48  varsist
5760         * storage/xliff.py: getnotes() now returns notes based on 'origin'
5761           value
5763 2006-09-29 07:44  varsist
5765         * storage/test_xliff.py: Updated test_notes() to integrate getnotes
5766           origin parameter usage
5768 2006-09-28 07:46  friedelwolff
5770         * storage/poxliff.py: Implement parseheader() and updateheader()
5771           for the PO header in a PO style XLIFF file
5773 2006-09-28 06:33  varsist
5775         * storage/po.py: Additional test case in settarget()
5777 2006-09-26 07:34  friedelwolff
5779         * convert/pot2po.py: Use correct variable and catch more specific
5780           exceptions
5782 2006-09-26 07:32  friedelwolff
5784         * search/match.py, search/terminology.py, storage/factory.py: Small
5785           fixes to improve Pootle's use of terminology matching
5787 2006-09-26 05:38  friedelwolff
5789         * storage/po.py: Use new poheader.header_order
5791 2006-09-21 13:18  friedelwolff
5793         * storage/po.py: Move more header handling to new poheader class
5795 2006-09-20 14:52  friedelwolff
5797         * storage/po.py: Move some initial PO header functionality into a
5798           seperate class
5800 2006-09-20 11:13  varsist
5802         * storage/base.py: paramater update of getnotes()
5804 2006-09-20 10:37  varsist
5806         * storage/test_po.py: po.getnotes parameter test
5808 2006-09-20 10:36  varsist
5810         * storage/po.py: getnotes() manipulation to return selected
5811           comments/notes
5813 2006-09-20 07:03  varsist
5815         * storage/test_po.py: plural check added for po.py changes in
5816           settarget method
5818 2006-09-20 07:01  varsist
5820         * storage/po.py: Added plural check against source vs target from
5821           removed setunquotedmsgstr method
5823 2006-09-15 11:27  friedelwolff
5825         * tools/pocount.py: Remove incorect reference to self
5827 2006-09-14 12:58  friedelwolff
5829         * storage/po.py: Fix typo in .istranslated()
5831 2006-09-13 08:21  friedelwolff
5833         * storage/xliff.py: Fix typo
5835 2006-09-13 07:02  friedelwolff
5837         * storage/po.py, storage/xliff.py: Add unit.removenotes() for po
5838           and xliff
5840 2006-09-13 06:56  friedelwolff
5842         * storage/base.py, storage/po.py: Add unit.istranslated() for base
5843           and po
5845 2006-09-13 06:50  friedelwolff
5847         * tools/pocount.py: Factor out some counting methods [Contributed
5848           by -editor programmers]
5850 2006-09-13 05:45  friedelwolff
5852         * storage/lisa.py: Always return a multistring from getText to
5853           simplify things elsewhere. Now .source and .target will always
5854           return multistrings
5856 2006-09-09 19:36  dwaynebailey
5858         * convert/test_ts2po.py: Add fuziness assert for the blank message
5859           case
5860           Add a test to see that we handle 'unfinished' yet fuzzy TS
5861           entries
5863 2006-09-09 19:30  dwaynebailey
5865         * convert/test_ts2po.py: Test for an entry that is 'unfinished'
5867 2006-09-09 19:04  dwaynebailey
5869         * convert/test_ts2po.py: Add test for location information
5871 2006-09-07 09:37  friedelwolff
5873         * convert/test_ts2po.py: Test for basic conversion
5875 2006-09-05 07:22  dwaynebailey
5877         * storage/po.py: Do not merge msgidcomments.
5879 2006-09-01 06:48  dwaynebailey
5881         * filters/test_checks.py: Test for escape checing were wrong. Added
5882           a real life example that was not being detected. Seems most of
5883           the problem was using raw strings in the tests. Most of that has
5884           been removed. Some that remain need to be checked. The test now
5885           fails correctly.
5887 2006-09-01 06:16  friedelwolff
5889         * search/terminology.py: A few basic manipulations to have more
5890           matches
5892 2006-09-01 06:14  friedelwolff
5894         * search/test_terminology.py: Tests for cases that are harder to
5895           match
5897 2006-08-31 06:30  dwaynebailey
5899         * convert/test_pot2po.py: Ensure that we can merge comments with
5900           blank lines correctly.
5902 2006-08-29 15:07  dwaynebailey
5904         * convert/test_pot2po.py: Change in position of the accelerator in
5905           the source should not make a message fuzzy. Accelerators in the
5906           target langauge are usually independent of those of the source
5907           language.
5909 2006-08-29 10:04  friedelwolff
5911         * ChangeLog: Forward port the relevant entries from the ChangeLog
5912           from before 0.10 branch
5914 2006-08-29 08:32  friedelwolff
5916         * storage/ts.py: Only call getElementsByTagName if the node has
5917           children
5919 2006-08-29 06:55  friedelwolff
5921         * CREDITS: Credit Clytie Siddall
5923 2006-08-29 06:53  friedelwolff
5925         * storage/ts.py: use basestring instead of StringTypes
5927 2006-08-29 06:51  friedelwolff
5929         * convert/pot2po.py, convert/test_pot2po.py: [forwardport 3828:3829
5930           and 3830:3831 from 0-10-branch] Merge identical strings if msgid
5931           comments match. Fix test to not expect fuzzy
5933 2006-08-28 18:27  dwaynebailey
5935         * convert/test_po2prop.py: Test to ensure that we create an empty
5936           property file if the template is empty and we have no associated
5937           PO file.
5939 2006-08-28 08:59  friedelwolff
5941         * convert/po2prop.py: Strip the end of line character(s) so we can
5942           add a \n
5944 2006-08-28 07:39  dwaynebailey
5946         * convert/po2prop.py: Covnert tabs to spaces
5948 2006-08-28 07:22  dwaynebailey
5950         * convert/test_po2prop.py: Test to see that we merge fuzzy entries
5951           correctly.
5953 2006-08-28 07:20  dwaynebailey
5955         * convert/test_po2prop.py: Add a test for the simplest merge
5957 2006-08-28 07:13  dwaynebailey
5959         * convert/test_po2prop.py: Test to check that when we merge entries
5960           that are in fact blank that we do not mess with the layut from
5961           the template by adding newlines.
5963 2006-08-28 07:06  dwaynebailey
5965         * convert/test_po2prop.py: Test to ensure that we preserve space
5966           around the equal signs from the template properties file in the
5967           new output properties file.
5969 2006-08-24 21:28  friedelwolff
5971         * setup.py: prune editor and lingua directories
5973 2006-08-24 12:20  friedelwolff
5975         * storage/test_po.py: Edit and disable
5976           test_makeobsolete_untranslated
5978 2006-08-23 14:48  friedelwolff
5980         * storage/po.py: Remove type comments
5981           correctly with possible comma following
5983 2006-08-23 14:46  friedelwolff
5985         * storage/test_po.py: Also test the simple
5986           case of removing fuzzyness
5988 2006-08-23 14:44  friedelwolff
5990         * storage/test_po.py: Test that we remove
5991           fuzzy marker correctly
5993 2006-08-23 13:03  friedelwolff
5995         * __version__.py: Version 0.10rc4
5997 2006-08-23 13:01  friedelwolff
5999         * setup.py: Remove obsolete 'includebeta' variable
6001 2006-08-23 08:47  friedelwolff
6003         * convert/pot2po.py: Don't obsolete
6004           untranslated messages
6006 2006-08-23 08:45  friedelwolff
6008         * convert/test_pot2po.py: Test that we don't
6009           obsolete untranslated messages
6011 2006-08-22 20:31  dwaynebailey
6013         * storage/test_po.py: If a message is
6014           untranslated and we make it obsolete it should just disappear
6015           and not be part of the obsolete section. The asserts in this
6016           test are probably wrong.
6018 2006-08-22 18:26  friedelwolff
6020         * search/Levenshtein.py: Tab -> spaces
6022 2006-08-22 18:25  friedelwolff
6024         * search/Levenshtein.py,
6025           search/match.py: Various checks and tweaks
6026           to deal with zero sized strings, etc.
6028 2006-08-22 16:19  dwaynebailey
6030         * convert/test_pot2po.py: Test to see that if
6031           we resurect an obsolete message that we can insert it into
6032           multiple messages even if they have msgidcomments
6034 2006-08-22 15:25  friedelwolff
6036         * storage/factory.py: Make getobject() more
6037           robust by handling a storefile as parameter
6039 2006-08-22 12:57  friedelwolff
6041         * convert/test_pot2po.py: Test for the new
6042           commandline options
6044 2006-08-22 12:42  dwaynebailey
6046         * convert/pot2po.py: Add ability to have a
6047           global TM for fuzzy matching. Path by Friedel Wolff tweeks by
6048           Dwayne Bailey
6050 2006-08-22 10:17  dwaynebailey
6052         * convert/test_pot2po.py: Check that we can
6053           reuse translations even if the msgidcomment changes. Tests that
6054           we mke them fuzzy as msgidcomments might be a disambiguator.
6056 2006-08-22 08:08  friedelwolff
6058         * tools/test_pomerge.py: Reformat expected
6059           result in
6060           test_merging_dont_merge_kde_comments_found_in_translation with
6061           msgid comment (kde style comment) as msgmerge would. (test still
6062           fails)
6064 2006-08-22 06:32  friedelwolff
6066         * tools/test_pomerge.py: Adapt tests with
6067           msgid comments (KDE style comments) to expect multiline msgids
6068           as msgmerge does them
6070 2006-08-22 06:00  friedelwolff
6072         * storage/poxliff.py: Receive kwargs in
6073           constructor and set sourcelanguage to en-US if absent. Ignore
6074           sourcelanguage parameter in createfilenode
6076 2006-08-22 05:54  friedelwolff
6078         * convert/po2xliff.py: Pass kwargs to poxliff
6079           constructor (to enable source language)
6081 2006-08-22 05:52  friedelwolff
6083         * convert/test_po2xliff.py: Pass the source
6084           language to the converter
6086 2006-08-22 04:40  friedelwolff
6088         * filters/checks.py: Handle end punctuation
6089           seperately from normal punctuation
6091 2006-08-21 20:43  friedelwolff
6093         * filters/checks.py: xmltags: Consider '/' to
6094           be part of tagname to catch missing close tag
6096 2006-08-21 12:30  friedelwolff
6098         * src/trunk/Pootle/html/pootle.css,
6099           src/trunk/Pootle/templates/adminlanguages.html,
6100           src/trunk/Pootle/templates/adminprojects.html,
6101           src/trunk/Pootle/templates/adminusers.html,
6102           misc/test_zipfileext.py: Remove some
6103           executable properties and #! where it isn't a script
6105 2006-08-21 10:24  friedelwolff
6107         * convert/po2xliff.py: Specify the origin of
6108           the comments for automatic (#.) and normal (# ) comments
6110 2006-08-21 04:22  friedelwolff
6112         * storage/xliff.py: Add .istranslated()
6113           [Kakada Hok]
6115 2006-08-20 13:32  dwaynebailey
6117         * convert/po2prop.py: Preserve spaces around =
6118           in properties files.
6120 2006-08-19 17:48  dwaynebailey
6122         * convert/test_pot2po.py: Test to check that
6123           we can merge msgidcomments correctly.
6125 2006-08-19 14:11  friedelwolff
6127         * storage/po.py: Don't deal with msgid
6128           comments (KDE style comments) in the other unit's .target when
6129           merging. This converts the multistring to a string and we lost
6130           plurals. Fixes plural merging in pot2po.
6132 2006-08-19 14:11  dwaynebailey
6134         * convert/test_pot2po.py: Add test for simple
6135           merging of plurals
6137 2006-08-19 13:39  friedelwolff
6139         * storage/po.py: Preserve msgid comments (KDE
6140           style comments) during obsoletion and resurection
6142 2006-08-19 13:38  friedelwolff
6144         * storage/test_po.py: Fix expected result in
6145           test_makeobsolete_msgidcomments
6147 2006-08-19 13:08  dwaynebailey
6149         * storage/test_po.py: Test to check that we
6150           preserve msgidcomments when obsoleting.
6152 2006-08-19 07:24  friedelwolff
6154         * storage/base.py: Return None for unfound
6155           unit if we use .sourceindex
6157 2006-08-18 10:51  friedelwolff
6159         * convert/pot2po.py: Ensure that newly
6160           obsoleted messages are moved to the end of the file
6162 2006-08-18 10:46  friedelwolff
6164         * convert/test_pot2po.py: Test that newly
6165           obsoleted messages are moved to the end of the file
6167 2006-08-17 12:03  gintautasm
6169         * src/trunk, trunk: Moved trunk (3/3).
6171 2006-08-17 09:55  friedelwolff
6173         * storage/po.py: Parse and generate multiline
6174           obsoleted messages correctly
6176 2006-08-17 09:52  friedelwolff
6178         * storage/test_po.py: Test that multiline obsolete
6179           comments are parsed and generated correctly
6181 2006-08-16 16:10  friedelwolff
6183         * trunk/Pootle/__version__.py, __version__.py:
6184           Version 0.10rc3
6186 2006-08-16 16:04  friedelwolff
6188         * convert/test_pot2po.py: Enable
6189           test_merging_location_change and fix test (was really working)
6191 2006-08-16 11:54  friedelwolff
6193         * convert/pot2po.py: Resurrect obsolete comments
6194           before merging, so they can be considered
6196 2006-08-16 11:53  friedelwolff
6198         * storage/po.py: Rewrite support for obsolete
6199           messages. This is done in a way to be as non-invasive as possible
6201 2006-08-16 09:15  friedelwolff
6203         * storage/test_po.py: Fix test_obsolete
6205 2006-08-15 17:10  friedelwolff
6207         * storage/po.py: Mandate that there be no
6208           msgidcomments (KDE style comments) for a unit to be a header
6210 2006-08-15 08:23  friedelwolff
6212         * convert/pot2po.py: Indicate if a unit was reused
6213           so we don't have unnecessary obsolete messages
6215 2006-08-15 08:23  friedelwolff
6217         * convert/pot2po.py: Use fuzzy matching to to find
6218           possibly matches
6220 2006-08-15 08:21  friedelwolff
6222         * storage/po.py: If merging from unit with
6223           different .source, mark as fuzzy
6225 2006-08-15 06:45  friedelwolff
6227         * filters/test_checks.py: Extra xml test that
6228           should fail
6230 2006-08-14 12:49  friedelwolff
6232         * convert/pot2po.py: Use .source rather than
6233           unquotefrompo
6235 2006-08-14 11:55  friedelwolff
6237         * filters/pofilter.py: Check the correct number of
6238           plurals, all against the source's singular
6240 2006-08-13 08:48  dwaynebailey
6242         * convert/pot2po.py,
6243           convert/test_pot2po.py: Recreat header
6244           initialisation test to be more specific and cover the whole
6245           header
6246           Correct carry over of plural form
6247           Set fuzzy status correctly based on the status of the template
6248           header
6250 2006-08-12 23:33  dwaynebailey
6252         * convert/pot2po.py: Rename variables for clarity
6254 2006-08-12 23:05  dwaynebailey
6256         * convert/test_dtd2po.py: Fix test. This type is
6257           actually incorrect and should be fixed in the source.
6259 2006-08-12 22:59  dwaynebailey
6261         * convert/test_dtd2po.py: Correct test for case
6262           where DONT_TRANSLATE refers to a word not the whole message
6264 2006-08-12 22:51  dwaynebailey
6266         * convert/pot2po.py: Carry over the header
6267           comments from the template PO file into the output PO file
6268           otherwise
6269           if there are no comments use the ones from the input POT file.
6270           We should probably use
6271           standard Gettext headers and move the comment blocks etc to be
6272           part of the first string.
6273           
6274           Make Project-Id-Version carry over from the template. Still
6275           need to check the general
6276           header for conformance.
6278 2006-08-12 13:46  dwaynebailey
6280         * convert/pot2po.py: Copy the PO-Revision-Date
6281           from the template
6283 2006-08-12 13:44  dwaynebailey
6285         * convert/pot2po.py: Do not initialise the
6286           PO-Revision-Date from the template.
6288 2006-08-12 13:39  dwaynebailey
6290         * convert/pot2po.py: Change inputpo -> inputpot
6292 2006-08-12 13:36  dwaynebailey
6294         * convert/pot2po.py: Reword so that we stop
6295           getting confused about what is a pot and what is not.
6297 2006-08-12 13:28  dwaynebailey
6299         * convert/test_pot2po.py: Check that we can merge
6300           messages even if the accesskey changes.
6302 2006-08-12 13:16  dwaynebailey
6304         * convert/test_pot2po.py: Check to see that if the
6305           msgid changes and that the only changes in teh msgid are
6306           whitespace changes that we can still merge the two.
6308 2006-08-12 13:07  dwaynebailey
6310         * convert/test_pot2po.py: Add test to enable reuse
6311           of obsolete messages
6313 2006-08-12 13:00  dwaynebailey
6315         * convert/test_pot2po.py: Add test to check that
6316           we don't mess with the headers when initialising files. ie we
6317           should not change the PO-Revision-Date
6319 2006-08-12 12:02  dwaynebailey
6321         * storage/po.py,
6322           storage/test_po.py: Add 2 tests:
6323           - Check that we can place and extract double comments ie
6324           something that itself contains the # comment char
6325           - Check that we add 'msgid ""' before adding a msgid_comment on
6326           a new line.
6327           
6328           Implement feature to fix the second test.
6330 2006-08-11 20:30  friedelwolff
6332         * trunk/Pootle/__version__.py, __version__.py:
6333           Version 0.10rc2
6335 2006-08-11 15:02  friedelwolff
6337         * convert/po2html.py: [forwardport] Deal slightly
6338           better with encoding issues. Sort of fixes bug 175 for the case
6339           without a template.
6341 2006-08-11 14:05  friedelwolff
6343         * convert/po2html.py: [forwardport] Deal slightly
6344           better with encoding issues. Sort of fixes bug 175
6346 2006-08-10 14:18  friedelwolff
6348         * search/match.py: add and use sourcelencmp
6349           function to properly enable sorting with python 2.3
6351 2006-08-10 13:26  friedelwolff
6353         * search/match.py,
6354           search/terminology.py: Tweak parameters for
6355           terminology matching. Only terms between 3 and 30 characters
6356           long are considered, and only the first 500 characters of a
6357           message is searched for terminology
6359 2006-08-10 10:22  friedelwolff
6361         * search/match.py: Make it work with Python 2.3
6363 2006-08-10 07:17  dwaynebailey
6365         * filters/checks.py: Skip printf test if the
6366           message is untranslated or has compendium conflicts.
6368 2006-08-08 16:43  dwaynebailey
6370         * convert/test_po2html.py: Correct wrong expect
6371           result in test
6373 2006-08-08 06:56  friedelwolff
6375         * storage/factory.py: Handle unicode filename as
6376           well
6378 2006-08-05 07:21  dwaynebailey
6380         * storage/test_po.py: Test all the blank header
6381           functionality. Move the plural equation semi colon test into a
6382           single test that also tests the normla situation.
6384 2006-08-04 23:11  friedelwolff
6386         * services/lookupservice.py: Take into account
6387           that candidates are now stored as a translation store
6389 2006-08-04 23:10  friedelwolff
6391         * services/lookupclient.py: print output correctly
6392           now that score is sent as a string
6394 2006-08-04 23:09  friedelwolff
6396         * search/match.py: Only add comments if there
6397           actually is something to add
6399 2006-08-04 14:38  friedelwolff
6401         * services/lookupservice.py: update to accept
6402           match score as preformatted string
6404 2006-08-04 09:53  friedelwolff
6406         * search/terminology.py: Explain terminology
6407           matching and pitfalls clearly. Remove comment and provide
6408           commented example using segmenting.
6410 2006-08-04 09:19  friedelwolff
6412         * storage/test_po.py: Test that we work with
6413           plural equations that span more than one line (works)
6415 2006-08-04 09:13  friedelwolff
6417         * storage/po.py: Deal with plural equations
6418           without the final semicolon
6420 2006-08-04 09:11  friedelwolff
6422         * storage/test_po.py: Test that we work can deal
6423           with plural equations without the final semicolon
6425 2006-08-04 06:35  friedelwolff
6427         * search/match.py: Use a base.TranslationStore to
6428           store candidates with their comments. This eliminates the
6429           problem with case change in the source strings of the
6430           terminology base. Support list of stores
6432 2006-08-04 06:32  friedelwolff
6434         * storage/base.py: Add basic comment support so
6435           that the base classes can actually be used for storing comments
6437 2006-08-03 13:54  friedelwolff
6439         * search/test_match.py: Test matching with muliple
6440           sources
6442 2006-08-03 07:41  friedelwolff
6444         * misc/optrecurse.py: Warn if file is skipped
6445           because no template exists
6447 2006-08-02 15:51  friedelwolff
6449         * trunk/Pootle/__version__.py, __version__.py:
6450           Version 0.10rc1
6452 2006-08-02 15:27  friedelwolff
6454         * filters/checks.py: Fix the logic of the printf
6455           test
6457 2006-08-02 08:18  friedelwolff
6459         * convert/po2prop.py: Ensure we return strings to
6460           send back to file
6462 2006-08-02 08:00  friedelwolff
6464         * misc/optrecurse.py: Drop a file if it is not
6465           present in the template
6467 2006-08-02 05:53  friedelwolff
6469         * misc/optrecurse.py: Work with files with no
6470           extention, like README
6472 2006-07-31 12:30  dwaynebailey
6474         * filters/checks.py: Add 2 new variable style
6475           introduced in the new Mozilla installer work.
6477 2006-07-31 09:30  dwaynebailey
6479         * misc/quote.py: Correct comments
6481 2006-07-31 09:17  friedelwolff
6483         * storage/dtd.py: Use warnings module rather than
6484           writing to stderr
6486 2006-07-28 14:16  friedelwolff
6488         * storage/properties.py: Strip all whitespace left
6489           of property value (not just space)
6491 2006-07-28 13:18  dwaynebailey
6493         * convert/test_prop2po.py: Add tests for tabs at
6494           the start of property values
6495           Add test for unassociated comments
6496           Add correct output for folded .target
6497           Removed some unused variables picked up by pychecker
6499 2006-07-28 13:01  friedelwolff
6501         * misc/quote.py: Split java and mozilla properties
6502           behaviour on non-ascii encode
6504 2006-07-28 13:00  friedelwolff
6506         * storage/properties.py: Test if '\u' is left in
6507           msgid before writing output
6509 2006-07-28 12:59  friedelwolff
6511         * storage/test_properties.py: [forwardport] Test
6512           for correct (unescaped) non-ascii
6514 2006-07-28 09:39  friedelwolff
6516         * storage/dtd.py: Only skip element on processing,
6517           don't halt. Fix for bug 161.
6519 2006-07-28 07:23  friedelwolff
6521         * trunk/Pootle/__version__.py, __version__.py:
6522           version 0.10beta3
6524 2006-07-27 11:39  friedelwolff
6526         * storage/poxliff.py: Implement .isheader() and
6527           .header() for better PO functionality
6529 2006-07-27 11:37  friedelwolff
6531         * storage/base.py: Add classmethod buildfromunit()
6532           to base Unit API. This allows a native unit to be constructed
6533           from a foreing one. (Build a PO unit out of an xliff unit, for
6534           example.)
6536 2006-07-27 11:35  friedelwolff
6538         * storage/base.py: Add isheader() to base Unit API
6540 2006-07-27 11:33  friedelwolff
6542         * storage/xliff.py: Better PO xliff detection,
6543           +getdatatype(), +getfilenames()
6545 2006-07-27 11:28  friedelwolff
6547         * storage/base.py: Rewrite access mode detection
6548           to work wth IOString
6550 2006-07-26 09:58  friedelwolff
6552         * storage/po.py: Fix for bug 171 (encoding error
6553           when removing duplicates)
6555 2006-07-26 09:57  friedelwolff
6557         * convert/test_oo2po.py: Test for bug 171
6558           (encoding error when removing duplicates)
6560 2006-07-25 19:05  dwaynebailey
6562         * filters/checks.py,
6563           filters/test_checks.py: Enable spellcheck test
6564           testing
6565           Add some logic to deal with unicode strings
6567 2006-07-25 18:29  dwaynebailey
6569         * filters/checks.py,
6570           filters/test_checks.py: The printf test can now
6571           manage variable reordering.
6573 2006-07-25 16:43  friedelwolff
6575         * convert/html2po.py: Use more of base class API
6577 2006-07-25 16:08  friedelwolff
6579         * storage/html.py: Move closer to base class
6580           compliance
6582 2006-07-25 14:17  dwaynebailey
6584         * filters/test_checks.py: Test for reordering in
6585           printf variables.
6587 2006-07-25 11:46  dwaynebailey
6589         * convert/dtd2po.py,
6590           convert/moz2po.py,
6591           convert/po2dtd.py,
6592           convert/pot2po.py: Pychecker fixes:
6593           Remove unused imports
6594           Make sure mime_version info get used and implemented in pot2po
6595           Remove unused variables.
6597 2006-07-25 11:04  dwaynebailey
6599         * convert/test_html2po.py: Removed multiline test.
6600           This goes against the general idea that HTML places
6601           no significance in line breaks. It is probably also
6602           going to add complexity that offers little return in value.
6604 2006-07-25 10:56  dwaynebailey
6606         * convert/test_dtd2po.py: Add two tests. The
6607           first to try to pick up mismatched encodings (test doesn't seem
6608           to do exactly what I wanted). The second to highlight the
6609           problem when you are
6610           processing files using a template approach and the template is
6611           missing. We are currently
6612           adding the translation as the source string. We should be
6613           abandonign the translation.
6615 2006-07-25 06:12  friedelwolff
6617         * storage/base.py: Typo: locatin->location
6619 2006-07-24 17:22  dwaynebailey
6621         * convert/test_moz2po.py,
6622           convert/test_po2moz.py,
6623           convert/test_po2prop.py,
6624           convert/test_po2tmx.py,
6625           convert/test_po2txt.py,
6626           convert/test_txt2po.py: Remove unused variables
6627           and imports picked up by pychecker
6629 2006-07-24 15:46  dwaynebailey
6631         * convert/test_po2xliff.py: Some fixes picked up
6632           by pychecker
6633           Add test to pick up the setting of XLIFF languages based on
6634           input PO file.
6636 2006-07-24 09:48  friedelwolff
6638         * trunk/Pootle/__version__.py, __version__.py:
6639           Version up to 0.10beta2
6641 2006-07-23 08:41  dwaynebailey
6643         * storage/base.py: Correctly addlocation in the
6644           case where location is not a list.
6646 2006-07-23 07:48  dwaynebailey
6648         * filters/test_decoration.py: pychecker: vars ->
6649           variables as vars is builtin
6651 2006-07-21 15:33  friedelwolff
6653         * storage/po.py: Always get encoding if parsing
6654           header. Fix for bug 163
6656 2006-07-21 12:44  friedelwolff
6658         * convert/oo2po.py: [forwardport] Temporary
6659           solution for escaping madness
6661 2006-07-21 12:35  friedelwolff
6663         * convert/oo2po.py, storage/oo.py,
6664           storage/test_oo.py: Naming more consistent with
6665           base class, even if not converted yet
6667 2006-07-21 12:00  friedelwolff
6669         * convert/test_po2csv.py: Fix test for escaped \
6671 2006-07-20 07:37  friedelwolff
6673         * search/match.py: Return original units to retain
6674           comments
6676 2006-07-19 09:06  friedelwolff
6678         * trunk/Pootle/tools/updatetm.py, search/match.py,
6679           search/test_match.py,
6680           services/lookupservice.py: Adapt matcher to
6681           return real units rather tuples, adapt users
6683 2006-07-18 11:53  friedelwolff
6685         * search/terminology.py,
6686           search/test_terminology.py: Very basic
6687           terminology matching
6689 2006-07-18 11:51  friedelwolff
6691         * search/test_match.py: Test terminology matching,
6692           update old tests to new api
6694 2006-07-18 11:50  friedelwolff
6696         * search/match.py: Add terminology matcher
6698 2006-07-18 11:22  dwaynebailey
6700         * misc/optrecurse.py,
6701           misc/progressbar.py: Fix for bug #164
6702           Change progressbar to output to stderr. Thus avoiding the
6703           problem of progress output
6704           appearing in the output file when running e.g.:
6705           
6706           txt2po file.txt > file.po
6707           
6708           Also made some other progress verbage output to stderr.
6710 2006-07-17 18:08  dwaynebailey
6712         * filters/checks.py,
6713           filters/test_checks.py: Implement printf
6714           checking based on a patch by contributed by
6715           Matt Chisholm - matt at bittorrent dot com.
6716           Improved the regex to understand more fully all the options but
6717           left the final
6718           printf "type" as \w so that we can capture any character, not
6719           only those we know about.
6720           Added test to pick up most issues and moved a Mozilla variable
6721           test that was really
6722           a printf test to test_printf().
6723           The regex is based on the syntax outlined at
6724           http://en.wikipedia.org/wiki/Printf
6725           Ideally the printf test should be rolled into the variable test.
6726           But this is good for
6727           now.
6728           Also in future it would be good to allow projects to define
6729           whether they in fact have print
6730           style variables and also to make use of the #, c-syntax type
6731           comments in PO files.
6733 2006-07-13 08:38  friedelwolff
6735         * storage/dtd.py: Temporary fix to allow better
6736           testing with base class tests
6738 2006-07-13 08:17  friedelwolff
6740         * convert/dtd2po.py: Fix problem with accelerators
6741           if labels changed
6743 2006-07-11 20:01  friedelwolff
6745         * trunk/Pootle/__version__.py, __version__.py:
6746           Version 0.10beta (for testing)
6748 2006-07-11 10:31  dwaynebailey
6750         * storage/test_dtd.py: Add a test to check for
6751           correct failing behaviour when a DTD ENTITY is not well formed.
6753 2006-07-11 09:00  friedelwolff
6755         * convert/dtd2po.py: Fix the problem of not
6756           merging in translations with accelerators
6758 2006-07-11 07:47  dwaynebailey
6760         * convert/po2txt.py: Make sure we can output to
6761           stdout
6762           Convert last msgstr reference to target
6763           Add checks to not use fuzzy or blank (This doesn;t work :) we
6764           should add the --fuzzy and --nofuzzy options.
6766 2006-07-11 07:44  dwaynebailey
6768         * convert/txt2po.py: Make sure we can output to
6769           stdout
6771 2006-07-10 18:10  dwaynebailey
6773         * convert/test_dtd2po.py: Add test for the case
6774           where translation does not contain the character
6775           used as accelerator. Convert to "XXXXX (&A)" for now. Still
6776           needs
6777           some thought on the reverse ie PO -> DTD
6779 2006-07-10 18:01  dwaynebailey
6781         * convert/test_dtd2po.py: Add test to check that
6782           we can manage folding accelerators for foreign languages.
6784 2006-07-10 17:38  dwaynebailey
6786         * convert/test_dtd2po.py: Add some acclerator
6787           checks
6788           1) To check that we manage accesskeys that we cannot merge
6789           2) To highlight when we are merging something that in the
6790           transalted DTD is mergable but due
6791           to changes in entity names is no longer mergable. Check that we
6792           can manage the new non-merging.
6794 2006-07-10 16:06  dwaynebailey
6796         * convert/prop2po.py: Only process if we have a
6797           prop
6798           Only do comment related work if theprop actually has a commnent.
6800 2006-07-10 14:11  friedelwolff
6802         * search/match.py: Check to see if any usable
6803           units for translation memory is available
6805 2006-07-10 14:10  friedelwolff
6807         * storage/factory.py: Add the ability to ignore a
6808           part of a filename (like .gz)
6810 2006-07-10 13:58  friedelwolff
6812         * storage/base.py: Only read file if 'r' in mode.
6813           Fix tabs
6815 2006-07-05 18:07  dwaynebailey
6817         * filters/prefilters.py: A fiex for Bug #153:
6818           sre.finditer seems to not accept the third and optional
6819           flags= paramater in Python 2.3.x. So reverted to including the
6820           flags
6821           in the actual regex using the (?xxx) syntax
6823 2006-07-04 18:50  dwaynebailey
6825         * convert/test_dtd2po.py: Add reference to bug
6826           number
6828 2006-07-03 13:49  dwaynebailey
6830         * convert/test_dtd2po.py: Add test for merging
6831           translated DTD with a template.
6832           Add tests to expose bug when merging translations with a
6833           template into a PO that also include an accelerator key.
6835 2006-07-03 07:33  friedelwolff
6837         * search/Levenshtein.py: Comment out more advanced
6838           similarity calculations, minor cleanup
6840 2006-07-03 07:14  friedelwolff
6842         * search/match.py: Consider maximum length, remove
6843           duplicates, sort candidates, limit seach to similar length
6844           strings (huge performance improvement)
6846 2006-07-03 06:14  friedelwolff
6848         * storage/csvl10n.py: Speed up
6849           SimpleDictReader.next()
6851 2006-07-03 06:08  friedelwolff
6853         * misc/sparse.py: Speed up seperatetokens (notable
6854           difference in csv parsing)
6856 2006-06-30 16:08  friedelwolff
6858         * services/lookupclient.py: Use unicode for search
6859           text
6861 2006-06-30 16:05  friedelwolff
6863         * services/lookupservice.py: Lookup: use index and
6864           return unicode
6866 2006-06-30 15:18  friedelwolff
6868         * storage/base.py: Add isfuzzy() to base class -
6869           returns False
6871 2006-06-30 15:18  friedelwolff
6873         * storage/csvl10n.py: Work internally with unicode
6875 2006-06-30 15:17  friedelwolff
6877         * services/lookupclient.py: Encode unicode from
6878           the server for printout
6880 2006-06-30 15:16  friedelwolff
6882         * services/lookupservice.py: Always return
6883           unicodes - multistrings are not marshalled
6885 2006-06-30 10:56  friedelwolff
6887         * services/lookupservice.py: Catch all errors,
6888           always convert to string (might have multistrings)
6890 2006-06-30 10:51  friedelwolff
6892         * services/lookupservice.py: Adapt to new matcher
6893           API
6895 2006-06-30 10:49  friedelwolff
6897         * storage/factory.py: Test better if file is usable
6899 2006-06-30 10:48  friedelwolff
6901         * search/match.py: Filter out usable units,
6902           convert to fast format, factor out (re)initialisation code
6904 2006-06-28 15:15  friedelwolff
6906         * storage/test_factory.py: Test that a PoXliffFile
6907           can be constructed
6909 2006-06-28 15:13  friedelwolff
6911         * storage/xliff.py: parsefile() must return a
6912           PoXliffFile when applicable
6914 2006-06-28 15:12  friedelwolff
6916         * storage/factory.py: Make distinction between
6917           file and filename clearer
6919 2006-06-28 13:54  friedelwolff
6921         * storage/po.py: Implement addlocation() for po
6923 2006-06-28 13:53  friedelwolff
6925         * storage/base.py: Add addlocation() and
6926           addlocations() to base unit
6928 2006-06-28 13:29  friedelwolff
6930         * storage/factory.py: Factor out method to
6931           retrieve filename
6933 2006-06-28 10:42  friedelwolff
6935         * storage/factory.py,
6936           storage/test_factory.py: Factory for classes and
6937           objects conforming to base.py
6939 2006-06-28 09:48  friedelwolff
6941         * storage/base.py: Use sourceindex for findunit()
6942           if available
6944 2006-06-23 08:46  friedelwolff
6946         * storage/base.py, storage/po.py,
6947           storage/test_po.py,
6948           storage/xliff.py: More uniform support for notes
6949           (comments). Whitespace fixups.
6951 2006-06-20 09:14  friedelwolff
6953         * ChangeLog: Remove duplicate entries beloning to
6954           0.9 branch
6956 2006-06-20 09:29  dwaynebailey
6958         * convert/test_csv2po.py: Test that we don't lose KDE comments when
6959           merging from CSV Test for --duplicates option
6961 2006-06-20 08:53  dwaynebailey
6963         * convert/test_po2csv.py: Test to ensure that we drop KDE comments
6964           when converting to CSV
6966 2006-06-20 08:42  dwaynebailey
6968         * convert/: __init__.py, convert.py, csv2po, csv2po.py, csv2tbx,
6969           dtd2po.py, html2po, html2po.py, moz2po, moz2po.py,
6970           mozfunny2prop.py, nb2po, nb2po.py, oo2po.py, po2csv, po2csv.py,
6971           po2dtd.py, po2html, po2html.py, po2moz, po2moz.py, po2nb,
6972           po2nb.py, po2oo.py, po2prop.py, po2tmx, po2tmx.py, po2ts,
6973           po2ts.py, po2txt, po2txt.py, po2xliff, po2xliff.py, poreplace.py,
6974           pot2po, pot2po.py, prop2mozfunny.py, prop2po.py, sxw2po,
6975           sxw2po.py, ts2po, ts2po.py, txt2po, txt2po.py, xliff2po: Update,
6976           add all copyright headers.
6978 2006-06-19 17:57  dwaynebailey
6980         * convert/test_dtd2po.py: Test merging of the different variants of
6981           accelerator key labels
6983 2006-06-19 15:34  dwaynebailey
6985         * convert/test_po2dtd.py: Test for accelerator unmerging of the
6986           various types.
6988 2006-06-19 15:04  dwaynebailey
6990         * convert/Makefile: Remove Makefile that ran test.  Now we're using
6991           test_* style tests.
6993 2006-06-19 14:52  dwaynebailey
6995         * convert/csv2po.py: Add --duplicatestyle options so that we can
6996           create valid PO files from CSV file that contain duplicates.
6998 2006-06-19 14:35  dwaynebailey
7000         * tools/: __init__.py, detectencoding, oosetupmerge, pocompile,
7001           pocompile.py, poconflicts.py, pocount, pocount.py, podebug,
7002           podebug.py, pogrep, pogrep.py, pomerge, pomerge.py,
7003           porestructure.py, pydiff, pydiff.py: [Forwardport] Copyright
7004           correction, updates, etc
7006 2006-06-19 13:18  friedelwolff
7008         * ChangeLog: Update ChangeLog for everything since 0.8
7010 2006-06-19 12:49  friedelwolff
7012         * ChangeLog.pre-0.9: Update pre-0.9 ChangeLog up until 0.8 release
7013           2006-02-20
7015 2006-06-19 11:01  friedelwolff
7017         * ChangeLog.pre-0.9: Move ChangeLog to isolate all changes before
7018           0.9
7020 2006-06-15 16:58  dwaynebailey
7022         * services/lookupservice: [Forwardport] Fix copyright dates.
7024 2006-06-15 16:54  dwaynebailey
7026         * misc/: autoencode.py, multistring.py, optrecurse.py,
7027           progressbar.py, quote.py, stdiotell.py, wStringIO.py,
7028           xmlwrapper.py, zipfileext.py: [Forwardport] Update/add copyright
7029           headers.
7031 2006-06-15 16:42  dwaynebailey
7033         * __init__.py: [Forwardport] Update copyright dates.
7035 2006-06-15 16:39  dwaynebailey
7037         * filters/: autocorrect.py, checks.py, decoration.py, helpers.py,
7038           pofilter, pofilter.py, prefilters.py: [Forwardport] Update
7039           copyright headers to correctly reflect changes in CVS
7041 2006-06-15 16:11  dwaynebailey
7043         * __version__.py: Makre sure that you have the correct version of
7044           Translate Toolkit before you can run PootleServer.  Bump the
7045           toolkit build number up.
7047 2006-06-15 15:14  dwaynebailey
7049         * storage/: __init__.py, base.py, csvl10n.py, dtd.py, html.py,
7050           oo.py, po.py, properties.py, tmx.py, ts.py, xliff.py, xpi.py:
7051           [Forwardport] Fix up copyright header date and missing headers.
7052           Match them to CVS checkin dates and old mozpotools.
7054 2006-06-12 23:52  dwaynebailey
7056         * filters/autocorrect.py: [Forward port] Make autocorrect work with
7057           new puncend method.
7059 2006-06-12 23:46  dwaynebailey
7061         * filters/: checks.py, decoration.py, helpers.py, test_checks.py:
7062           Enable testing of more exotic start and end punc:
7063           - Allow funcmatch to accept *args - Send config.punctuation to
7064           start and end punc functions - Simplify
7065           decorations/punc{start,end} by eliminating the limitchar and
7066           using supplied punctuation instead - Fix tests for endpunc.  Add
7067           similar test for startpunc
7069 2006-06-12 13:10  friedelwolff
7071         * storage/po.py: We don't want unicode keys in dictionary
7073 2006-06-12 10:15  davidfraser
7075         * convert/dtd2po.py, convert/po2dtd.py, convert/test_dtd2po.py,
7076           storage/po.py: rename dtdelements to units for consistency and
7077           change method names from element to unit likewise renamed pofile
7078           elementclass to unitclass
7080 2006-06-12 09:46  dwaynebailey
7082         * filters/: checks.py, test_checks.py: [Forwardport] Variable only
7083           messages do not raise unchanged error.
7085 2006-06-12 09:41  dwaynebailey
7087         * filters/: checks.py, test_checks.py: [Forwardport] Drop case of
7088           'I' to 'i' so that English sentences don't mess with simplecaps
7089           test.  Uses simplistic regular expression which copes with 'I' at
7090           the start of a sentence.
7092 2006-06-12 09:10  dwaynebailey
7094         * filters/: checks.py, test_checks.py: [Forwardport] Double
7095           variables no longer trip doublewords test.  Used removevariables
7096           in test funtion and enabled disabled test.  [Forwardport]
7097           disbaled acceleratedvariables tests.  Checks still in palce as
7098           they should be moved to the accelerator test.
7100 2006-06-12 06:53  davidfraser
7102         * storage/: dtd.py, test_dtd.py: convert to use base classes, some
7103           cleanup some tests currently fail as the base class tests assume
7104           construction of a unit without a location is valid for dtds, we
7105           currently return a blank string if there is no .entity
7106           (==location in other files) this needs to work better with base
7107           class expectations
7109 2006-06-12 06:51  davidfraser
7111         * storage/: properties.py, test_properties.py: remove propelement
7112           stuff as it isn't used anywhere
7114 2006-06-12 06:29  davidfraser
7116         * storage/: dtd.py, test_dtd.py: don't allow reentry of dtd quoted
7117           strings - e.g. "test me""now" is actually invalid for now, just
7118           ignore the reentry - in future, should raise an error
7120 2006-06-12 06:29  davidfraser
7122         * misc/quote.py: [Forward port for wordforge-0-9] replace 0 and 1
7123           arguments to extract and extractwithoutquotes with False and True
7124           added allowreentry parameter to extract and extractwithoutquotes
7125           (allows better DTD parsing) add default argument to escape in
7126           extractwithoutquotes
7128 2006-06-09 21:57  friedelwolff
7130         * convert/test_pot2po.py, filters/test_pofilter.py,
7131           storage/test_po.py, tools/test_pogrep.py, tools/test_pomerge.py:
7132           Adapt tests to new pofile output without the unnecessary newline
7133           at the end
7135 2006-06-09 21:56  friedelwolff
7137         * storage/po.py: Don't output an unnecessary newline at end of PO
7138           file
7140 2006-06-09 19:38  friedelwolff
7142         * tools/pogrep.py: Rewrite filterelement to use base class (solves
7143           unit tests)
7145 2006-06-09 19:17  friedelwolff
7147         * convert/: test_oo2po.py, test_po2oo.py: [forwardport] Correct and
7148           expand tests for OpenOffice.org converters
7150 2006-06-09 17:35  friedelwolff
7152         * filters/test_checks.py: Fix wrong musttranslate test
7154 2006-06-09 16:15  friedelwolff
7156         * storage/test_base.py: More roundtrip tests
7158 2006-06-09 14:31  davidfraser
7160         * storage/ts.py: worked out how to override xml classes properly
7161           (create our own expatbuilder etc etc) this means we don't any
7162           longer modify the underlying classes note that writexml is not
7163           overridden any more, but thats just a formatting issue
7165 2006-06-09 14:26  davidfraser
7167         * storage/test_ts.py: added basic test for constructing ts file
7169 2006-06-09 12:05  friedelwolff
7171         * convert/test_po2dtd.py: Newlines are not escaped in DTD's - tests
7172           adapted
7174 2006-06-09 11:38  friedelwolff
7176         * convert/po2html.py: remove unnecessary import
7178 2006-06-08 16:45  friedelwolff
7180         * convert/html2po.py, storage/html.py: Provisional, incomplete,
7181           move to base class for HTML
7183 2006-06-08 16:09  friedelwolff
7185         * storage/po.py: Fix merging of kdecomments (necessary due to
7186           escaping changes)
7188 2006-06-08 10:36  friedelwolff
7190         * storage/po.py: Don't strip comments (fix some tests), typo)
7192 2006-06-08 10:33  friedelwolff
7194         * tools/test_pomerge.py: Fix
7195           test_preserve_format_minor_start_and_end_of_sentence_changes
7196           (needed extra newline)
7198 2006-06-08 00:31  dwaynebailey
7200         * filters/checks.py: [Forwardport] Disable acceleratedvariables
7201           check - it never really worked and should actually be part of the
7202           accelerators test.
7204 2006-06-07 23:32  dwaynebailey
7206         * tools/pocompile.py: [Forwardport] Add the ability to include or
7207           exclude fuzzy translations
7209 2006-06-07 23:08  dwaynebailey
7211         * tools/pocompile.py: [Forwardport] Fix of pocompile by updating to
7212           msgfmt v1.1
7214 2006-06-07 19:32  friedelwolff
7216         * convert/prop2po.py: Implement DONT_TRANSLATE
7218 2006-06-07 18:25  friedelwolff
7220         * convert/: po2prop.py, prop2po.py: Use base API more
7222 2006-06-07 18:24  friedelwolff
7224         * storage/properties.py: Make .source and .target work, store
7225           internal representation
7227 2006-06-07 18:07  friedelwolff
7229         * convert/test_prop2po.py: Use base API and change tab and space
7230           tests to how we understand them now
7232 2006-06-07 17:58  friedelwolff
7234         * storage/test_base.py: Encode console output, extra roundtrip
7235           tests
7237 2006-06-07 17:55  friedelwolff
7239         * storage/test_properties.py: Rather test with base class api
7241 2006-06-07 15:29  dwaynebailey
7243         * convert/oo2po.py: [Forwardport] Make help string clearer
7245 2006-06-06 16:15  dwaynebailey
7247         * convert/test_po2html.py: Fix PO file input to be a valid PO file.
7248           Also correct a spelling error.
7250 2006-06-06 15:29  friedelwolff
7252         * convert/test_po2html.py: Test po escapes (broken)
7254 2006-06-06 15:18  friedelwolff
7256         * convert/test_po2html.py: Test for handling of html entities
7257           (broken)
7259 2006-06-05 16:29  friedelwolff
7261         * storage/test_properties.py: Inherit tests from (monolingual) base
7262           class
7264 2006-06-05 16:28  friedelwolff
7266         * storage/test_monolingual.py: First version to serve as superclass
7267           for test_properties.py
7269 2006-06-05 16:24  friedelwolff
7271         * convert/prop2mozfunny.py, storage/test_properties.py: base API
7272           naming conventions
7274 2006-06-05 16:23  friedelwolff
7276         * storage/properties.py: Implement parsestring(), warn on use of
7277           deprecated API, don't create empty units unnecessarily
7279 2006-06-05 16:05  friedelwolff
7281         * convert/prop2po.py: .propelements -> .units
7283 2006-06-05 14:46  friedelwolff
7285         * convert/prop2po.py: Use locationindex from base class
7287 2006-06-05 14:45  friedelwolff
7289         * storage/properties.py: Use base class makeindex()
7291 2006-06-05 13:48  friedelwolff
7293         * storage/properties.py: indentation fix
7295 2006-06-05 13:44  friedelwolff
7297         * storage/properties.py: Move to base class. Retain backwards
7298           compatibility (tests pass unchanged)
7300 2006-06-02 17:51  friedelwolff
7302         * storage/po.py: rewrite parseheader() to rather use base class API
7304 2006-06-02 17:48  friedelwolff
7306         * storage/test_po.py: test a bit of poheader functionality
7308 2006-06-01 21:09  dwaynebailey
7310         * convert/test_prop2po.py: Enable tests for Bugs #115 and #116
7312 2006-06-01 20:57  dwaynebailey
7314         * filters/: checks.py, prefilters.py, test_checks.py: [Forwardport]
7315           Allow variables to be deleted.  This is probably a suboptimal
7316           approach but works - This fixes some simplecaps tests that are
7317           now enabled We now ignore 'unchanged' items of len == 1 if the
7318           word is in a notranslate list - Enabled test for this Remove a
7319           bad stratcaps test
7321 2006-06-01 19:16  davidfraser
7323         * storage/test_dtd.py: added test for roundtrip of quoting /
7324           escaping problems
7326 2006-06-01 16:41  dwaynebailey
7328         * filters/test_checks.py: Correct test
7330 2006-06-01 16:27  dwaynebailey
7332         * convert/html2po.py: Make sure that we split lines on <br> for a
7333           better PO editing experience.
7335 2006-06-01 14:53  dwaynebailey
7337         * filters/: checks.py, test_checks.py: Can now handle the allcaps
7338           case of simplecaps errors
7340 2006-06-01 14:51  davidfraser
7342         * storage/: po.py, test_po.py: replace escaping/unescaping with
7343           system that is actual symmetrical this utilises the new ability
7344           of extractwithoutquotes to actually get the escaping via another
7345           function fixed tests for msgid comments - they now expect a real
7346           newline rather than \\n
7348 2006-06-01 14:40  dwaynebailey
7350         * filters/: checks.py, test_checks.py: REmove KDE comments before
7351           checking for capitals Changed failing simplecaps tests to use the
7352           OOo checker as their failing most probably relates to the fact
7353           that we do not remove variables when checking for capitals
7354           (Removing vars is still TODO).
7356 2006-06-01 14:36  davidfraser
7358         * misc/: quote.py, test_quote.py: change includeescapes to return
7359           the actual escaped/unescaped value rather than simply whether to
7360           escape it or not   (this probably requires an argument name
7361           change, and better explanation - see change to
7362           isnewlineortabescape in test)   the old method of returning a
7363           boolean is still supported, but deprecated and needs removing
7364           once fixed elsewhere   this gives more flexibility in handling
7365           escaping warn when invalid named unicode escapes are encountered,
7366           rather than raising an error
7368 2006-06-01 14:11  davidfraser
7370         * storage/test_po.py: added test that quoteforpo and unquotefrompo
7371           round string strings properly (strings same as in test_base.py)
7373 2006-06-01 13:54  friedelwolff
7375         * storage/test_base.py: Test string roundtripping
7377 2006-06-01 13:06  dwaynebailey
7379         * filters/: decoration.py, test_decoration.py: Allow fullstops
7380           inside a variables eg $pluginWizard.label;
7382 2006-06-01 12:23  dwaynebailey
7384         * filters/prefilters.py: Make the regular expression consider
7385           Unicode, so that \w identifies non-ascii letter characters.
7387 2006-06-01 10:59  dwaynebailey
7389         * storage/po.py: Make sure we don't merge KDE comments if we find
7390           them in the translation.
7392 2006-06-01 10:46  dwaynebailey
7394         * tools/test_pomerge.py: Add test to ensure that we merge KDE
7395           disambiguations correctly.
7397 2006-06-01 10:45  dwaynebailey
7399         * tools/test_pocount.py: Add UTF-8 header marker
7401 2006-05-31 13:56  dwaynebailey
7403         * convert/test_oo2po.py: Test of a \\r entry in helpcontent2 which
7404           gets messed in PO as it appears as \\\r it makes the roundtrip
7405           but its not actually what is required.  We really need \\\\r.
7407 2006-05-31 13:46  dwaynebailey
7409         * storage/test_oo.py: Test that we roundtrip \\r quotes properly.
7411 2006-05-30 17:59  davidfraser
7413         * storage/po.py: clarify parsestring usage (not a normal method)
7414           don't overwrite filename if input doesn't really tell us a
7415           filename
7417 2006-05-30 15:39  davidfraser
7419         * storage/po.py: use template for quoteforpo for plural targets too
7421 2006-05-30 15:37  davidfraser
7423         * storage/: po.py, test_po.py: added test that checks the current
7424           behaviour of setting target multistrings (the behaviour itself
7425           needs checking, see the FIXME) make quoting with templates work
7426           if self.msgstr is currently a plural dictionary but a singular
7427           target is submitted
7429 2006-05-24 11:44  friedelwolff
7431         * convert/: oo2po.py, test_oo2po.py: Handle \n, \t, and \r better.
7432           Test differently for them.
7434 2006-05-24 11:39  friedelwolff
7436         * storage/po.py: Handle \r just like \n and \t
7438 2006-05-24 11:15  friedelwolff
7440         * storage/html.py: Add "content" as attribute to include (fix one
7441           test)
7443 2006-05-23 17:35  davidfraser
7445         * convert/: mozfunny2prop.py, prop2mozfunny.py:
7446           mozillapropertiesencode now treats \n as part of the string, so
7447           strip off any before passing and add back later
7449 2006-05-23 17:22  davidfraser
7451         * convert/dtd2po.py: avoid double-escaping quotes - they are
7452           already escaped in escapeforpo
7454 2006-05-23 17:20  davidfraser
7456         * convert/test_dtd2po.py: added test for quoting problem that came
7457           up in roundtrip
7459 2006-05-23 17:09  davidfraser
7461         * convert/dtd2po.py: remove empty lines at start or end of dtd
7463 2006-05-23 17:06  davidfraser
7465         * convert/dtd2po.py: ignore SYSTEM parameters (<!ENTITY % brandDTD
7466           SYSTEM "chrome://...">)
7468 2006-05-23 17:01  davidfraser
7470         * storage/po.py: fix odd inconsistency in escaping characters add
7471           TODO about changing encoding in msgid (just a check)
7473 2006-05-23 16:51  davidfraser
7475         * convert/dtd2po.py: handle inconsistency between mixed entities in
7476           original and translation if an entity is mixed but not found in
7477           the originals, delete it from mixed entities so it is just
7478           treated ordinarily (these results in Nones being passed to
7479           convertelement, which seems to make sense to return None from
7480           rather than adding special cases before calling it)
7482 2006-05-23 16:31  davidfraser
7484         * convert/dtd2po.py: try to use underlying escapeforpo function
7485           rather than escaping ourselves get rid of \r in dtd definitions
7486           directly slight clean up of line stripping use .target property
7487           which is simpler
7489 2006-05-23 13:47  davidfraser
7491         * convert/test_prop2po.py: .source now represents \n as a newline
7492           (although it is escaped in the underlying po file)
7494 2006-05-23 13:45  davidfraser
7496         * misc/quote.py: make mozillapropertiesencode convert control
7497           characters back to their escaped form this is safe now that the
7498           whole line isn't passed through
7500 2006-05-23 13:44  davidfraser
7502         * storage/properties.py: do stripping of end lines before handling
7503           the line (this means we don't have to distinguish between real
7504           endlines and escaped ones in the strings) only do
7505           mozillapropertiesencode on the actual property values (this may
7506           break keys that use it but I don't think I've seen that) only
7507           strip spaces of properties so as not to strip of end lines
7509 2006-05-23 13:42  dwaynebailey
7511         * convert/test_html2po.py: Some new tests to make sure we ignore
7512           stuff that shouldn't be localised. Also some tests to make sure
7513           we can reflow HTML properly and not end up with very odd
7514           messgages.
7516 2006-05-23 13:06  davidfraser
7518         * storage/dtd.py: try and ensure consistency in the number of blank
7519           lines we output (successfully, it seems...)
7521 2006-05-23 13:02  davidfraser
7523         * storage/test_dtd.py: try and be more consistent with other tests
7524           (and pass!) by including a \n in the dtdsource for
7525           test_comment_newline_space_closing
7527 2006-05-23 12:56  davidfraser
7529         * storage/po.py: cleaning up blank space
7531 2006-05-23 12:53  davidfraser
7533         * storage/dtd.py: don't throw away comments and unparsed lines just
7534           because no real entity followed them...  note that this adds a
7535           number of new lines that we don't want, so fails tests, but the
7536           failures aren't so bad and can be fixed
7538 2006-05-23 12:46  davidfraser
7540         * misc/: quote.py, test_quote.py: tested extracting starting in a
7541           string with a start/end quote the first character fixed lastpos
7542           being initialized to 0 as this matches erroneously (None won't
7543           match any position)
7545 2006-05-17 00:58  dwaynebailey
7547         * tools/test_pomerge.py: When we merge from PO files with a literal
7548           tab we end up converting tehm to \t which is incorrect.
7550 2006-05-16 19:19  dwaynebailey
7552         * misc/quote.py: Recovering from SF CVS crash: Origianl 1.35
7553           commit: The problem being corrected occurs when start and end
7554           delimeters are not the same lenght eg in HTML <!-- (4) --> (3).
7555           In this corner we have a line '[space]-->' and we are already in
7556           the string.  So lastpos != pos = lenstart is 0 != 4 - 4 ie we get
7557           confused.
7559           I think this fix is correct in that it ignores the case when our
7560           last delimeter was at pisition 0.  Because we only do this when
7561           we are instring I don't think it will mess with other cases.
7563           Original 1.36 commit: rather fix this by checking whether lastpos
7564           really is a startdelim...
7566 2006-05-16 14:55  dwaynebailey
7568         * convert/test_po2csv.py: We should not be escaping \ escapes that
7569           are already escaped.
7571 2006-05-16 08:08  friedelwolff
7573         * convert/test_xliff2po.py: fix test: rename ids -> locations
7575 2006-05-15 17:08  dwaynebailey
7577         * filters/test_checks.py: We should not get confused with variable
7578           names that are also must translate words Unicode test for
7579           musttranslate
7581 2006-05-15 13:12  dwaynebailey
7583         * tools/test_pocount.py: Remove all the FIXME comments for things
7584           that are now fixed.
7586 2006-05-15 12:52  friedelwolff
7588         * tools/test_pocount.py: fix tab/spaces
7590 2006-05-15 12:49  dwaynebailey
7592         * convert/test_dtd2po.py: More tests: - Check that we don't include
7593           ENTITY includes for translation - Check that we handle pretty
7594           printed entities that have start and end blank newlines.
7596 2006-05-15 08:28  friedelwolff
7598         * storage/ts.py: Comment out modifications to minidom classes
7600 2006-05-15 08:27  friedelwolff
7602         * tools/test_pomerge.py: Fix tabs/spaces
7604 2006-05-07 08:58  dwaynebailey
7606         * storage/test_dtd.py: Test the strange condition of losing
7607           comments and subsequent entities if the preceding closing comment
7608           is ^[space]-->
7610 2006-05-07 08:53  dwaynebailey
7612         * misc/test_quote.py: Multiline comments in a dtd like this:
7614           <!--   Comment  --> <!ENTITY some.label "Blah">
7616           End up losing the comment and all the following entities.  The
7617           culprit is the space before the end comment marker.  If you
7618           remove that then it extracts correctly.
7620           This test uncovers the problem.  We're calling it line by line
7621           from the parser in dtd.py and thus we are already in the string
7622           with we need to extract.
7624           This one is breaking our otherwise very good language packs.
7626 2006-05-06 22:37  dwaynebailey
7628         * convert/: moz2po.py, po2moz.py: Make sure we also process .html
7629           files
7631 2006-05-05 16:18  davidfraser
7633         * convert/test_html2po.py: added helper for checking single
7634           elements, to make this file a lot shorter
7636 2006-05-05 16:09  davidfraser
7638         * convert/test_prop2mozfunny.py: check that uncommenting of
7639           MOZ_LANGPACK_CONTRIBUTORS works OK when converting back too...
7640           (bug 118)
7642 2006-05-05 16:02  davidfraser
7644         * convert/: mozfunny2prop.py, prop2mozfunny.py,
7645           test_mozfunny2prop.py: handle commented out #defines in inc files
7646           (just converting to properties, not back, so added TODO for fun)
7647           deal with the special case of MOZ_LANGPACK_CONTRIBUTORS, and
7648           auto-uncomment it - added test for this rename "prop" variables
7649           to "inc" in test_mozfunny2prop.py
7651 2006-05-05 15:52  davidfraser
7653         * convert/test_mozfunny2prop.py: added simple test for
7654           mozfunny2prop
7656 2006-05-05 15:38  davidfraser
7658         * misc/quote.py: handle no escape (and make default argument) in
7659           extract
7661 2006-05-05 15:32  davidfraser
7663         * convert/test_html2po.py: standard multiline msgid starts with a
7664           blank entry for first line
7666 2006-05-05 15:30  davidfraser
7668         * convert/html2po.py: need to quote line by line
7670 2006-05-05 15:16  davidfraser
7672         * convert/prop2mozfunny.py: leave out blank lines at the end of inc
7673           files
7675 2006-05-05 15:12  davidfraser
7677         * convert/test_prop2mozfunny.py: added test_prop2mozfunny with test
7678           for extra end of lines (bug 144)
7680 2006-05-05 01:35  dwaynebailey
7682         * tools/: pocount.py, test_pocount.py: Test and fix to ensure that
7683           we count old style KDE plurals correctly Fix counting of words in
7684           KDE comments style source strings
7686 2006-05-04 23:31  dwaynebailey
7688         * filters/: checks.py, decoration.py, prefilters.py,
7689           test_checks.py: Change accelerator test to report if an
7690           accelerator is present but located before a bad accelerator
7691           character eg a space Add an associated test for such a condition
7692           Also add tests for newlines located within a string
7694 2006-05-04 22:59  dwaynebailey
7696         * tools/test_pomerge.py: Add further tests for multiline KDE
7697           comments
7699 2006-05-04 16:03  dwaynebailey
7701         * tools/test_pomerge.py: Add another short line add something at
7702           the start case
7704 2006-05-04 14:52  dwaynebailey
7706         * filters/checks.py: Do not run doublewords test if the message is
7707           unchanged.
7709 2006-05-04 14:38  dwaynebailey
7711         * tools/test_pomerge.py: We shouldn't be merging KDE comments if
7712           somehow the translator included them in their translations.
7714 2006-05-04 10:43  friedelwolff
7716         * storage/po.py: Default to unix newline if there are no entries in
7717           template list
7719 2006-05-04 09:59  dwaynebailey
7721         * tools/test_pomerge.py: Test to see that we don't mess with
7722           unnosociated comments that have dos vs unix line endings.
7724 2006-05-04 09:42  friedelwolff
7726         * storage/po.py: In simple case, don't minimise diff
7728 2006-05-04 09:39  dwaynebailey
7730         * tools/test_pomerge.py: When merging in new comments we should
7731           respect the line ending convention of the template file.
7733 2006-05-04 09:35  friedelwolff
7735         * tools/test_pomerge.py: Use double newlines in test for now
7737 2006-05-04 09:22  dwaynebailey
7739         * filters/prefilters.py: This fixes a bug because sometimes we
7740           supply 'unicode' not 'str' to the function.  This code is on a
7741           critical path so I'd like someone to look at it and make it more
7742           robust if possible.
7744           I initially thought it might be related to multistring
7745           functionality but it seems not.
7747 2006-05-04 09:16  friedelwolff
7749         * storage/po.py: Redo lineend handling during merge (fix
7750           test_preserve_comments_layout)
7752 2006-05-04 09:14  friedelwolff
7754         * tools/test_pomerge.py: Use double trailing newlines in test for
7755           now
7757 2006-05-04 09:09  dwaynebailey
7759         * filters/test_checks.py: We should ignore/remove quotes that
7760           surround words in endpunc checking as it create too many false
7761           positives.
7763 2006-05-04 07:43  friedelwolff
7765         * tools/pocount.py: Fix some cases
7767 2006-05-04 07:21  friedelwolff
7769         * tools/pocount.py: Use base class API
7771 2006-05-04 02:38  dwaynebailey
7773         * tools/test_pomerge.py: Add test to check that we aren't making
7774           silly merging decisions for small changes at start and end of a
7775           strings Check that we preserve the layout of comments when we add
7776           '# (pofilter)' style comments
7778 2006-05-04 02:05  dwaynebailey
7780         * filters/: checks.py, test_checks.py: Remove words with
7781           punctuations after we've removed variables and accelerators.
7783 2006-05-04 01:53  dwaynebailey
7785         * filters/test_checks.py: Reenable a test for singlequotes Add test
7786           for some failing simplecaps
7788 2006-05-04 01:43  dwaynebailey
7790         * filters/test_prefilters.py: Test to ensure that we remove
7791           apastrophes from words that comtain unicode characters.
7793 2006-05-03 17:48  friedelwolff
7795         * tools/test_pocount.py: enable tests, fix tabs
7797 2006-05-03 13:20  friedelwolff
7799         * tools/test_pomerge.py: Fix test to expect correct po
7801 2006-05-03 13:11  friedelwolff
7803         * storage/po.py: Fix trailing newlines and empty ("") strings
7805 2006-05-03 11:56  friedelwolff
7807         * tools/test_pomerge.py: test cross format merging
7809 2006-05-03 11:54  friedelwolff
7811         * storage/test_po.py: fix test_merge_blanks to have escaped
7812           newlines
7814 2006-05-03 11:53  friedelwolff
7816         * tools/test_pomerge.py: remove dummy filenames, fix expectedpo
7817           with kde comments
7819 2006-05-03 11:49  friedelwolff
7821         * storage/po.py: don't use lineend unnecessarily (fixes merging of
7822           KDE comments)
7824 2006-05-03 11:46  friedelwolff
7826         * tools/pomerge.py: remove debug print statement
7828 2006-05-03 11:16  friedelwolff
7830         * filters/pofilter.py: Use base class API in filterelement()
7832 2006-05-03 00:02  dwaynebailey
7834         * tools/test_pomerge.py: Tests to detect spurious end of file
7835           newlines.
7837 2006-05-02 23:55  dwaynebailey
7839         * tools/test_pomerge.py: Add a test for preserving format where
7840           strings end with hardcoded newlines Another variant of msgstr ""
7842 2006-05-02 21:45  dwaynebailey
7844         * tools/test_pomerge.py: Add tests for merging strings with KDE
7845           style comments.
7847 2006-05-02 12:15  friedelwolff
7849         * tools/pomerge.py: supply format pairs to parser for xliff->po
7851 2006-05-02 12:13  friedelwolff
7853         * tools/pomerge.py: guess dummy filename if none available (mostly
7854           for tests)
7856 2006-05-02 12:11  friedelwolff
7858         * storage/po.py: revert to basic merging if not merging with pounit
7860 2006-05-02 09:44  friedelwolff
7862         * tools/test_pomerge.py: Initial infrastructure and first test for
7863           merging into xliff
7865 2006-05-02 09:28  friedelwolff
7867         * tools/pomerge.py: Allow merging to xliff, factor out
7868           inputfilefactory
7870 2006-05-02 09:25  friedelwolff
7872         * storage/base.py: Enable basic merge
7874 2006-05-02 09:24  friedelwolff
7876         * storage/xliff.py: Enable merge, fix small bug in settranslated()
7878 2006-04-28 18:31  friedelwolff
7880         * storage/poxliff.py, convert/xliff2po.py: rename getreferences()
7881           to getlocations (like baseclass)
7883 2006-04-28 17:55  friedelwolff
7885         * storage/: base.py, po.py: move makeindex() to base.py, add
7886           getlocations() to baseunit
7888 2006-04-28 17:37  friedelwolff
7890         * storage/po.py, tools/pomerge.py: Rename:  * po.sourceindex ->
7891           locationindex (and related uses)  * po.msgidindex -> sourceindex
7892           * pounit.getids() -> getlocations() (and related uses)
7894 2006-04-28 17:26  friedelwolff
7896         * storage/poxliff.py: -debug print statement
7898 2006-04-28 17:21  friedelwolff
7900         * convert/dtd2po.py, convert/po2dtd.py, convert/po2nb.py,
7901           convert/po2oo.py, convert/po2ts.py, convert/po2xliff.py,
7902           convert/pot2po.py, convert/test_xliff2po.py, storage/test_po.py:
7903           Rename:  * po.sourceindex -> locationindex (and related uses)  *
7904           po.msgidindex -> sourceindex  * pounit.getids() -> getlocations()
7905           (and related uses)
7907 2006-04-28 15:38  davidfraser
7909         * misc/: quote.py, test_quote.py: fix test for passing function to
7910           extractwithoutquotes (was including quotes) implement callable
7911           includeescapes in new version of function
7913 2006-04-28 15:31  davidfraser
7915         * misc/test_quote.py: missed out some of the functionality
7916           extractwithoutquotes is meant to support -   a function that
7917           determines whether or not to include a given escape
7919 2006-04-28 14:12  davidfraser
7921         * misc/: quote.py, test_quote.py: added fix for startdelim directly
7922           following enddelim (needs to handle in same loop) did same
7923           enhancements to extractwithoutquotes as have been done to extract
7924           took out TODO for failing test
7926 2006-04-28 14:10  davidfraser
7928         * misc/test_quote.py: added test for quotes starting just after
7929           closing, more escape handling tests changed expected behaviour of
7930           hanging escape in extractwithoutquotes(includeescapes=False)
7932 2006-04-28 14:08  dwaynebailey
7934         * __version__.py: Bump up the version number to prevent confusion
7935           between HEAD and 0.9
7937 2006-04-28 13:56  davidfraser
7939         * misc/test_quote.py: added extra quote to test_extract, and added
7940           test_extractwithoutquotes (uncovering a bug in the process for
7941           fun)
7943 2006-04-28 13:49  davidfraser
7945         * filters/prefilters.py: was overkill using a heavy tokenizer here,
7946           and filterwordswithpunctuation gets called very often replaced
7947           with quote.for_all and a regular expression for words with
7948           apostrophe's... makes filtering nearly 3 times faster
7950 2006-04-28 13:46  davidfraser
7952         * filters/test_prefilters.py: added tests for words with apostrophe
7953           in the middle
7955 2006-04-28 13:18  davidfraser
7957         * misc/quote.py: rstripeol could be simpler...  add TODO for
7958           extractwithquotes
7960 2006-04-28 13:15  davidfraser
7962         * misc/quote.py: slight improvements and comments to extract
7963           function
7965 2006-04-28 13:10  davidfraser
7967         * misc/quote.py: use the significant locations we find to hop and
7968           skip through the string ...
7970 2006-04-28 12:58  davidfraser
7972         * misc/: quote.py, test_quote.py: added tests for find_all and
7973           extract, so I can try speed them up further improved docstrings
7975 2006-04-28 12:46  davidfraser
7977         * misc/quote.py: use find_all to precache important locations in
7978           string rather than running find over and over there's some more
7979           code that could be used to not iterate over every character (next
7980           task)
7982 2006-04-28 11:11  friedelwolff
7984         * tools/pomerge.py: remove dead code
7986 2006-04-28 09:53  friedelwolff
7988         * tools/pomerge.py: Use api rather than direct data access
7990 2006-04-28 09:20  dwaynebailey
7992         * filters/test_checks.py: Add check for escaped newlines.
7994 2006-04-28 08:58  friedelwolff
7996         * tools/test_pomerge.py: Make failing test work (perhaps
7997           temporarily) before big changes
7999 2006-04-26 15:10  friedelwolff
8001         * storage/po.py: unquoteforpofromtemplate: ensure we're always
8002           using unicode (fix one failing test)
8004 2006-04-26 14:52  friedelwolff
8006         * storage/po.py: remove old merge code left by accident
8008 2006-04-26 14:49  friedelwolff
8010         * storage/po.py: when merging, use newline style of self. +comments
8012 2006-04-26 14:45  friedelwolff
8014         * tools/test_pomerge.py: Fix test to have correct ordering of
8015           comments (only expected is important)
8017 2006-04-25 14:58  friedelwolff
8019         * storage/test_po.py: fix accidental cvs commit
8021 2006-04-25 14:26  dwaynebailey
8023         * tools/test_pomerge.py: Test that we can merge from a DOS file
8024           without adding new lines simply because they have DOS line
8025           endings.
8027 2006-04-25 14:24  friedelwolff
8029         * filters/test_pofilter.py, misc/test_multistring.py,
8030           storage/po.py, storage/test_po.py, storage/test_xliff.py:
8031           +quoteforpofromtemplate() to use preferred formatting
8033 2006-04-25 14:18  friedelwolff
8035         * tools/test_pomerge.py: Extra test with "" preceding msgstr
8037 2006-04-25 12:22  friedelwolff
8039         * tools/test_pomerge.py: More reflowing tests for single character
8040           change
8042 2006-04-25 09:51  friedelwolff
8044         * storage/po.py: don't update msgstr if it is unchanged
8046 2006-04-25 07:45  friedelwolff
8048         * tools/test_pomerge.py: test_preserve_format
8050 2006-04-24 16:37  friedelwolff
8052         * storage/test_base.py: add test for non-ascii source and target -
8053           please review
8055 2006-04-24 16:18  friedelwolff
8057         * storage/: lisa.py, poxliff.py, tbx.py, tmx.py, xliff.py: Always
8058           decode strings for xml text elements
8060 2006-04-24 13:35  friedelwolff
8062         * convert/test_po2xliff.py: Do test with poxliff.  Test number of
8063           units (in case of plurals) remove testing of plural translation
8065 2006-04-24 12:58  friedelwolff
8067         * storage/xliff.py: take into account that source and target tags
8068           are intertwined (only affects poxliff)
8070 2006-04-24 11:45  friedelwolff
8072         * storage/poxliff.py: Preserve ids with assigning non-germanic
8073           plurals (fix test_ids)
8075 2006-04-24 11:41  friedelwolff
8077         * storage/test_poxliff.py: extra failing ids test
8079 2006-04-24 11:09  friedelwolff
8081         * storage/xliff.py: Change id styles from messages_3[1] to 3[1].
8083 2006-04-24 11:05  friedelwolff
8085         * convert/test_xliff2po.py: test plural conversion
8087 2006-04-24 10:54  friedelwolff
8089         * storage/poxliff.py: Change id styles from messages_3[1] to 3[1].
8090           Make it recurse in the case of plurals.
8092 2006-04-24 10:46  friedelwolff
8094         * storage/test_poxliff.py: test ids
8096 2006-04-24 10:44  friedelwolff
8098         * storage/xliff.py: +getid(), +TODO: comment
8100 2006-04-24 10:31  friedelwolff
8102         * storage/poxliff.py: Parse differently in poxliff to do plurals
8103           (not perfect yet)
8105 2006-04-24 10:19  friedelwolff
8107         * storage/test_poxliff.py: test plurals
8109 2006-04-24 08:14  friedelwolff
8111         * storage/po.py: internalise newline and tab escaping - reflowing
8112           changes! , check plural exists before assigning
8114 2006-04-24 08:05  friedelwolff
8116         * convert/xliff2po.py: Remove dead code, use poxliff, support
8117           comments
8119 2006-04-21 16:58  dwaynebailey
8121         * filters/checks.py: Add precondition checks for: emails,
8122           simpleplurals, urls
8124 2006-04-21 15:17  dwaynebailey
8126         * filters/test_checks.py: Test that we can find accronyms inside
8127           brackets.
8129 2006-04-21 15:16  friedelwolff
8131         * storage/xliff.py: Expand code for fuzzy and approved states
8133 2006-04-21 15:10  friedelwolff
8135         * convert/test_xliff2po.py: test fuzzy conversion
8137 2006-04-21 14:57  friedelwolff
8139         * storage/poxliff.py: +accessor for other comments
8140           gettranslatorscomments()
8142 2006-04-21 14:55  friedelwolff
8144         * storage/poxliff.py: +accessor: getautomaticcomments()
8146 2006-04-21 14:53  friedelwolff
8148         * storage/poxliff.py: accessor for location references
8149           getreferences()
8151 2006-04-21 14:48  friedelwolff
8153         * storage/poxliff.py: Minor cleanups and fixes
8155 2006-04-21 14:37  friedelwolff
8157         * storage/: test_xliff.py, xliff.py: test setting unit with empty
8158           target funny, add comments
8160 2006-04-21 13:08  friedelwolff
8162         * storage/xliff.py: Hack to indicate fuzzyness in the absense of a
8163           target tag (suggested in XLIFF 1.1 Representation guide for
8164           gettext PO
8166 2006-04-21 11:39  friedelwolff
8168         * convert/test_xliff2po.py: test location comments
8170 2006-04-21 09:53  friedelwolff
8172         * misc/: multistring.py, test_multistring.py: add support (and
8173           tests) for .replace()
8175 2006-04-21 09:17  friedelwolff
8177         * convert/test_xliff2po.py: Unit tests for xliff2po
8179 2006-04-21 08:02  friedelwolff
8181         * storage/xliff.py: +2 accessors getcontextgroups(), getrestype()
8183 2006-04-19 17:02  friedelwolff
8185         * convert/xliff2po.py: Initial change to new xliff class (not
8186           poxliff yet)
8188 2006-04-19 14:39  friedelwolff
8190         * storage/poxliff.py: Fix infinite recursion, __eq__,
8191           createfromxmlElement
8193 2006-04-19 14:26  friedelwolff
8195         * storage/test_poxliff.py: Unit test for poxliff.py
8197 2006-04-19 14:10  friedelwolff
8199         * storage/test_xliff.py: remove commented code, reindent file
8201 2006-04-19 13:50  friedelwolff
8203         * storage/test_xliff.py: Unit tests for xliff.py
8205 2006-04-19 13:47  friedelwolff
8207         * convert/test_po2xliff.py: Unit tests for po2xliff
8209 2006-04-19 13:46  friedelwolff
8211         * convert/po2xliff.py: Almost complete rewrite of po2xliff using
8212           new poxliff class, with some code factored out to lisa.py
8214 2006-04-19 13:42  friedelwolff
8216         * storage/poxliff.py: xliff class for storing PO information
8218 2006-04-19 13:34  friedelwolff
8220         * storage/xliff.py: Complete rewrite of xliff based on lisa class
8222 2006-04-19 11:38  friedelwolff
8224         * convert/test_po2tmx.py: rename test (testing non-ascii)
8226 2006-04-19 11:35  friedelwolff
8228         * storage/test_po.py: Adapt test to work with hidden po escaping
8230 2006-04-19 11:33  friedelwolff
8232         * storage/po.py: hide newline and tab escaping from users
8234 2006-04-19 11:32  friedelwolff
8236         * convert/test_po2csv.py: Adapt tests to work with hidden po
8237           escaping
8239 2006-04-19 11:22  friedelwolff
8241         * convert/test_po2tmx.py: tabs-> spaces, test unicode
8243 2006-04-19 11:21  friedelwolff
8245         * convert/po2tmx.py: remove unnecessary decoding of source and
8246           target
8248 2006-04-19 09:01  friedelwolff
8250         * convert/test_po2tmx.py: use easy translate() in base class
8252 2006-04-19 08:58  friedelwolff
8254         * storage/: tbx.py, tmx.py: accept (but ignore) purpose tag in
8255           createlanguageNode
8257 2006-04-19 08:56  friedelwolff
8259         * storage/lisa.py: Add support for placeholder tags (from old xliff
8260           class) Factor out getlanguageNodes Factor out getText to some
8261           extent - now outside class for external users Add "purpose"
8262           paramater to createlanguageNode
8264 2006-04-19 08:45  friedelwolff
8266         * storage/: base.py, test_base.py: extentions to base and test_base
8268 2006-04-19 01:21  dwaynebailey
8270         * convert/: po2prop, prop2po: Add command line .properties
8271           convertor wrappers to allow us to work directly with .properties
8272           files.
8274 2006-04-18 22:32  dwaynebailey
8276         * tools/test_pocount.py: Update the comments for not yet
8277           implemented tests
8279 2006-04-18 22:18  dwaynebailey
8281         * tools/poconflicts.py: Ignore single letter strings when searching
8282           for conflicts.  This eliminates Mozilla accelerators and such
8283           like.
8285 2006-04-18 18:17  dwaynebailey
8287         * trunk/setup.py: Install prop2po and po2prop as command line
8288           applications to allow .properties processing.
8290 2006-04-11 16:00  dwaynebailey
8292         * convert/: test_po2oo.py, po2oo.py: We now output GSI files using
8293           the default date of 2002-02-02 02:02:02 unless requested to keep
8294           dates or another date is supplied.  The date format now also uses
8295           dashes between date parts.
8297 2006-04-11 14:51  dwaynebailey
8299         * convert/test_sxw2po.py: Add a test framework.
8301 2006-04-11 14:50  dwaynebailey
8303         * convert/: test_moz2po.py, test_po2moz.py: Fix bad comments
8305 2006-04-11 14:49  dwaynebailey
8307         * convert/sxw2po.py: Add a description for the program
8309 2006-04-11 14:09  dwaynebailey
8311         * convert/test_ts2po.py: Add basic test for ts2po
8313 2006-04-11 14:06  dwaynebailey
8315         * convert/: test_po2txt.py, test_txt2po.py: Add basic tests for
8316           txt2po and po2txt.  Mainly just testing command line options.
8318 2006-04-11 13:59  dwaynebailey
8320         * convert/: test_csv2po.py, test_dtd2po.py, test_po2csv.py,
8321           test_po2dtd.py, test_po2prop.py, test_po2tmx.py, test_po2ts.py,
8322           test_pot2po.py, test_prop2po.py: Make sure we do command line
8323           help testing for all programs that have test_* tests.  There are
8324           still some missing that do not have test harnesses.
8326 2006-04-11 13:34  dwaynebailey
8328         * convert/: test_convert.py, test_html2po.py, test_moz2po.py,
8329           test_oo2po.py, test_po2html.py, test_po2moz.py, test_po2oo.py:
8330           Rework the help text options checking so that we have to account
8331           for each option.  If any remain at the end of checking then the
8332           test will fail.
8334 2006-04-11 11:49  dwaynebailey
8336         * filters/: checks.py, test_checks.py: Expamd 'long' and 'short'
8337           test to cover instanaces of single characters.  ie a msgid of
8338           length 1 will trigger a 'long' error if the msgstr is longer then
8339           1.  Similarly a msgid longer than 1 but with a msgtre of 1
8340           character will trigger the 'short' error.
8342 2006-04-11 11:23  dwaynebailey
8344         * convert/html2po.py, convert/test_html2po.py, misc/quote.py,
8345           misc/test_quote.py: Add ability to process multiline blocks from
8346           html2po by adding ability to wrap a list in double quotes.
8348 2006-04-11 10:39  dwaynebailey
8350         * convert/test_html2po.py: Test to check that we place quotes
8351           around lines from multiline html content.
8353 2006-04-11 10:15  dwaynebailey
8355         * convert/prop2mozfunny.py: po2ini must return a value.
8357 2006-04-06 15:28  friedelwolff
8359         * storage/test_tmx.py: Fix indentatin
8361 2006-04-05 11:28  friedelwolff
8363         * storage/test_po.py: test unassociated comment is present in
8364           __str__
8366 2006-04-05 10:19  davidfraser
8368         * storage/po.py: made sure we don't skip single lone comments also
8369           if there are othercomments, we should return them even if the
8370           rest of the unit is blank added TODOs - this parser is whacky
8372 2006-04-05 10:02  friedelwolff
8374         * storage/test_po.py: test_unassociated_comments()
8376 2006-04-05 09:50  friedelwolff
8378         * __version__.py: Version up to 0.9a2
8380 2006-04-05 09:45  friedelwolff
8382         * storage/po.py: Factor out pofile.initallcomments() and use
8383           (needed in pootle)
8385 2006-04-05 09:14  friedelwolff
8387         * storage/po.py: Factor out pofile.header() and use
8389 2006-03-29 18:16  friedelwolff
8391         * storage/po.py: Fix own typos
8393 2006-03-29 18:01  friedelwolff
8395         * storage/po.py: reword encoding test during parse
8397 2006-03-29 17:50  friedelwolff
8399         * storage/po.py: always check that encoding is sane
8401 2006-03-29 11:13  friedelwolff
8403         * storage/po.py: use utf-8 if encoding is None
8405 2006-03-29 10:47  friedelwolff
8407         * filters/checks.py: add the unicode ellips as punctuation
8408           character, remove duplicate dollar sign
8410 2006-03-28 13:30  friedelwolff
8412         * storage/po.py: use utf-8 as encoding if header still contains
8413           "CHARSET"
8415 2006-03-27 16:19  davidfraser
8417         * convert/mozfunny2prop.py: need to return the result otherwise the
8418           converter will think the file is empty
8420 2006-03-24 16:55  friedelwolff
8422         * tools/pogrep.py: make pogrep encoding aware
8424 2006-03-24 16:31  dwaynebailey
8426         * convert/: oo2po.py, test_oo2po.py: Automatic comment must have a
8427           \n at the end otherwise htey jsut role into the #: location
8428           comment on the next line.
8430 2006-03-23 21:51  dwaynebailey
8432         * convert/: oo2po.py, test_oo2po.py: Add the ability to merge
8433           x-comment languag entries into #. entries in PO files.
8435 2006-03-23 20:23  dwaynebailey
8437         * convert/: oo2po.py, test_oo2po.py: Add msgid bug reporting entry
8438           to PO headers for OOo files.
8440 2006-03-23 16:12  dwaynebailey
8442         * convert/test_po2ts.py: Add simple po2ts tests.  Shoudl really be
8443           doing this with an XML parser.
8445 2006-03-23 15:16  dwaynebailey
8447         * tools/pogrep.py: Can now handle Unicode search or regex strings.
8448           Nasty assumptions made about supplied encoding of search string.
8449           Should probably be using users system encoding.
8451 2006-03-23 14:44  dwaynebailey
8453         * tools/test_pogrep.py: Add unicode checking for when we do regex
8454           checking
8456 2006-03-23 12:22  friedelwolff
8458         * filters/prefilters.py: Don't group quoted strings as single
8459           tokens
8461 2006-03-23 12:13  friedelwolff
8463         * filters/test_prefilters.py: test broken
8464           filterwordswithpunctuation()
8466 2006-03-23 10:17  friedelwolff
8468         * convert/test_prop2po.py: tabs-> spaces, use base api
8470 2006-03-23 08:24  friedelwolff
8472         * convert/pot2po.py: Take care of obsolete messages
8474 2006-03-22 16:55  friedelwolff
8476         * storage/: po.py, test_po.py: Test and implementation of
8477           pounit.makeobsolete()
8479 2006-03-22 16:01  friedelwolff
8481         * convert/test_pot2po.py: Fix test_merging_new_before_obsolete and
8482           test more
8484 2006-03-22 15:48  friedelwolff
8486         * convert/test_pot2po.py: Correct classname: TestPO2DTD ->
8487           TestPOT2PO
8489 2006-03-22 15:41  friedelwolff
8491         * convert/test_pot2po.py: reorder obsoleting tests
8493 2006-03-22 15:38  friedelwolff
8495         * convert/test_pot2po.py: add test_merging_obsoleting_messages
8496           (from test_po.py)
8498 2006-03-22 15:38  friedelwolff
8500         * storage/test_po.py: remove test_merging_obsoleting_messages (now
8501           in test_pot2po). Add test_obsolete for basic obsolete
8502           functionality
8504 2006-03-22 13:25  friedelwolff
8506         * storage/test_po.py: correct merging test order
8508 2006-03-22 13:19  friedelwolff
8510         * storage/po.py: don't merge automaticcomments. self is the
8511           authority
8513 2006-03-22 13:01  friedelwolff
8515         * convert/pot2po.py: Allow pot files without #: location comments
8517 2006-03-22 11:48  friedelwolff
8519         * convert/prop2mozfunny.py: fix syntax error with po2ini
8521 2006-03-21 17:13  dwaynebailey
8523         * tools/test_pogrep.py: Tests to ensure we can cover all the
8524           permutations of Unicode chars in pogrep (search string and text)
8526 2006-03-21 17:02  dwaynebailey
8528         * storage/test_properties.py: Make sure we do the right thingTM
8529           with spaces around properties and values.
8531 2006-03-20 12:22  dwaynebailey
8533         * convert/: po2moz.py, moz2po.py, mozfunny2prop.py,
8534           prop2mozfunny.py: Mozilla ini files are in UTF-8.  Make sure we
8535           handle .ini files separate from .it files.  Treat them all as
8536           UTF-8 encoded files.
8538 2006-03-19 23:24  dwaynebailey
8540         * convert/test_dtd2po.py: Add test for a DTD that has an
8541           accelerator in the translation but not the template DTD.
8542           Currrently it crashes the convertor, we should be simply dropping
8543           he accelerator.
8545 2006-03-19 15:08  dwaynebailey
8547         * convert/test_po2prop.py: New test set for po2prop
8549 2006-03-19 14:59  dwaynebailey
8551         * convert/test_prop2po.py: Ensure that literal \n that appear in
8552           properties files make it into PO files.
8554 2006-03-17 15:53  friedelwolff
8556         * convert/: po2oo.py, test_po2oo.py: integrate pofilter with po2oo.
8557           Extra commandline option
8559 2006-03-17 15:52  friedelwolff
8561         * filters/checks.py: move *config.accelmarkers and .varmatches to
8562           lists
8564 2006-03-17 15:26  friedelwolff
8566         * convert/test_po2oo.py: some unit tests for filteraction
8568 2006-03-17 15:14  friedelwolff
8570         * filters/test_pofilter.py: -unused poexpected, some tabs-> spaces
8572 2006-03-17 10:47  dwaynebailey
8574         * tools/test_pomerge.py: When we merge PO files we are removing
8575           unassociated comments.  Ie comments in the original PO file
8576           (template -t) that are not directly linked to a message.  So if
8577           you have
8579           # Unassociated comment
8581           # Comment msgid "Blah" msgstr "Blee"
8583           Then the output PO file will have the unassociated comment
8584           removed.
8586 2006-03-17 09:11  friedelwolff
8588         * filters/checks.py: Typo: excluefilters -> excludefilters
8590 2006-03-16 17:12  dwaynebailey
8592         * filters/test_checks.py: Correct a closing bracket
8594 2006-03-16 13:26  dwaynebailey
8596         * convert/test_prop2po.py: Add tests to make sure that we include
8597           blank properties eg: credit=
8599 2006-03-16 09:54  dwaynebailey
8601         * filters/test_checks.py: Test to check that we identify when
8602           variables appear inside variables eg &amp;browserName;
8604 2006-03-16 01:38  dwaynebailey
8606         * convert/test_pot2po.py: Add tests for merging automatic comments
8607           Add test to validate that obsolete messages are placed at the
8608           bottom of a pofile.
8610 2006-03-16 01:27  dwaynebailey
8612         * convert/test_prop2po.py: Tests to check that we place comments in
8613           the correct place in PO files Test (currently disabled) to
8614           validate that we are placing LOCALIZATION NOTES in KDE style
8615           comments.
8617 2006-03-16 00:40  dwaynebailey
8619         * convert/: po2html.py, po2moz.py, test_po2html.py, test_po2moz.py:
8620           Complete po2html integration into po2moz: - Allow po2html to
8621           ignore fuzzy messages when merging PO into HTML - Add stdiotell
8622           wrapper for correct operation with stdout - Add xhtml as a valid
8623           file type - Add xhtml parsing to po2moz - Add the start of test_
8624           for po2moz and po2html
8626 2006-03-15 23:35  friedelwolff
8628         * misc/wStringIO.py, storage/po.py, filters/test_pofilter.py:
8629           Commit workaround for headerless po's. See
8630           filters/test_pofilter.py::test_unicode
8632 2006-03-15 21:50  dwaynebailey
8634         * filters/test_pofilter.py: If there is no header specifying the
8635           encoding then pofilter gets very confused.  This test tries to
8636           parse a UTF-8 snippet and the lack of encoding information
8637           confuses pofilter.
8639 2006-03-15 21:39  dwaynebailey
8641         * filters/checks.py: No need to remove variables when checking for
8642           double spacing problems.
8644 2006-03-15 21:31  dwaynebailey
8646         * filters/test_checks.py: Add checks for variables that mess with
8647           double spacing Another variable false positive added for later
8648           correction
8650 2006-03-15 16:44  dwaynebailey
8652         * convert/: html2po.py, moz2po.py, test_moz2po.py: Make moz2po work
8653           with html files.  Alter html2po.py so that it works in the moz2po
8654           family.
8656 2006-03-15 13:25  davidfraser
8658         * convert/html2po.py: use stdiotell to prevent seek error
8660 2006-03-15 13:24  davidfraser
8662         * misc/stdiotell.py: added simple wrapper for stdout that remembers
8663           position
8665 2006-03-14 21:07  dwaynebailey
8667         * storage/test_po.py: We should be able to obsolete message when we
8668           retire them, otherwise our Pootle PO files just grow and grow.
8670 2006-03-14 20:15  dwaynebailey
8672         * storage/: po.py, test_po.py: Automatic comments are never merged,
8673           they are overwritten by the new file.  Which makes sense since
8674           they come from the source code and shouldn't be edited but at the
8675           source.
8677 2006-03-14 16:38  dwaynebailey
8679         * storage/: po.py, test_po.py: Separate automactic comments (#.)
8680           from other comments (#[space]).  This will allow us to do more
8681           Gettext like operations on our PO files such as merging #.
8682           comments properly (new comment overrides the old comment)
8684 2006-03-14 15:22  dwaynebailey
8686         * convert/test_pot2po.py: Test to check that we merge automatic
8687           comments (#.) correctly.
8689 2006-03-13 11:31  friedelwolff
8691         * convert/: dtd2po.py, po2dtd.py, po2nb.py, po2oo.py, po2ts.py,
8692           po2xliff.py, pot2po.py: rename source(s) (i.t.o. source location)
8693           to id(s)
8695 2006-03-13 11:27  friedelwolff
8697         * storage/: po.py, test_po.py: rename source(s) (i.t.o. source
8698           location) to id(s)
8700 2006-03-13 11:20  friedelwolff
8702         * services/lookupservice.py: pass open file to storagebuilder
8704 2006-03-10 17:23  friedelwolff
8706         * convert/test_csv2po.py, storage/csvl10n.py, storage/dtd.py,
8707           storage/oo.py, storage/properties.py, tools/test_pomerge.py:
8708           Rename source (i.t.o. __str__) to output
8710 2006-03-10 15:47  friedelwolff
8712         * storage/: po.py, test_po.py: Rename source (i.t.o __str__) to
8713           output
8715 2006-03-10 14:22  friedelwolff
8717         * filters/: checks.py, test_checks.py: Test and fix openoffice
8718           visibility xml tag. More comments
8720 2006-03-10 11:15  friedelwolff
8722         * filters/checks.py: Also update punctuation configuration
8724 2006-03-10 10:47  friedelwolff
8726         * filters/: checks.py, test_checks.py: Implement xml/html checking
8727           with specific configuration for OpenOffice.org
8729 2006-03-08 16:33  dwaynebailey
8731         * convert/test_dtd2po.py: Add a test for a DONT_TRANSLATE case that
8732           should be translated :( Probably needs to be corrected.
8734 2006-03-08 16:20  dwaynebailey
8736         * convert/dtd2po.py: Now also handle cases where DONT_TRANSLATE is
8737           followed by some other explanatory text
8739 2006-03-07 23:25  dwaynebailey
8741         * storage/: test_dtd.py, test_properties.py: Added some tests
8742           picked up during roundtripping Mozilla -> moz2po -> po2moz -> New
8743           files
8745           - Comments that appear on the same line as an entity definition
8746           should remain in that position in our generated files - We are
8747           losing hard coded \n at the start and end of properties
8748           defintions
8750 2006-03-07 22:25  dwaynebailey
8752         * storage/test_dtd.py: Test to check that we can handle entitie
8753           reference eg &blah; in the DTD file.
8755 2006-03-07 15:08  dwaynebailey
8757         * storage/html.py, convert/test_html2po.py: Allow the abbr tag to
8758           be localised (Use in tables to provide abbreviated forms for the
8759           content of a TH or TD tag)
8761 2006-03-07 14:46  friedelwolff
8763         * storage/: po.py, test_po.py: Unit test and solution for multiple
8764           source location styles
8766 2006-03-07 12:22  dwaynebailey
8768         * filters/test_checks.py: Som new tests that pick up problems with:
8769           - endpunc - not all punctuation is considered - singlequotes - 'n
8770           in Afrikaans is confusing this one when they should have been
8771           removed - variabkes - entities with dots eg &file.name; are not
8772           checked
8774 2006-03-06 23:39  dwaynebailey
8776         * storage/po.py: Revert #: merging code.  It didn't work so good.
8778 2006-03-06 23:02  dwaynebailey
8780         * convert/: html2po.py, test_html2po.py: Add duplicate handling to
8781           html2po.  This is a good thingTM.  We can now begin to look at
8782           adding xhtml as a convertor for moz2po
8784 2006-03-06 22:29  dwaynebailey
8786         * convert/test_html2po.py: Add helpers countunits and compareunit
8787           Convert all test to use the helpers Remove some unuseful tests
8788           Add a command line testing class inheritect from test_convert Add
8789           test_help
8791 2006-03-06 12:03  dwaynebailey
8793         * storage/html.py: In object entities the standby attribute should
8794           be translated.  The attr tags will probably come into their own
8795           when we can compress entities to show a translator only the bit
8796           they should change.  Till then its in here more for tracking.
8798 2006-03-06 11:05  dwaynebailey
8800         * storage/html.py, convert/html2po.py, convert/test_html2po.py: Add
8801           a number of new tags:  h4, h5, h6, th, dt, dd, address, caption
8802           Removed:  span, lang Addeded attrs:  summary
8804           This should give us full covererage of tables.  Removing 'lang'
8805           removes a number of spurious errors.
8807           xhtml is now a valid suffix for files processed by html2po
8809           Cleanup test_html.py Made all tests work Added tests for all the
8810           new tags added
8812 2006-03-06 02:02  dwaynebailey
8814         * convert/test_dtd2po.py: Add a failing DONT_TRANSLATE style Test
8815           how we handle .acceskeys that are mimatched ie don't appear in
8816           .label Check the the .source is correct when we fold normal
8817           access keys
8819 2006-03-03 22:36  dwaynebailey
8821         * storage/po.py, tools/test_pomerge.py: Allow source comments to be
8822           split at the line level and then merged.  This ensures that we
8823           don't duplicate source locations if they appear in two different
8824           styles eg one per line merged with multiple per line.
8826 2006-03-03 15:48  friedelwolff
8828         * storage/: html.py, properties.py, xliff.py: Fix up accidental
8829           commit of wrong files
8831 2006-03-03 14:47  charlvn
8833         * convert/test_html2po.py: [no log message]
8835 2006-03-03 14:42  friedelwolff
8837         * storage/: html.py, po.py, properties.py, ts.py, xliff.py: po.py
8839 2006-03-03 14:33  friedelwolff
8841         * storage/test_po.py: Test more for plurals
8843 2006-03-03 12:59  dwaynebailey
8845         * CREDITS, tools/pogrep.py, tools/test_pogrep.py: [Tom Cato
8846           Amundsen tca at gnu dot org] - Patch to allow pogrep to search in
8847           other sections.
8849 2006-03-03 09:05  dwaynebailey
8851         * storage/test_dtd.py: Test to ensure we can roundtrip localisation
8852           notes
8854 2006-03-03 09:01  dwaynebailey
8856         * filters/test_checks.py: Extend the startcaps tests to check that
8857           we can handle Unicode in the Latin Extended Additional block (ie
8858           pure Unicode) (this passes) Detect entity style variables of the
8859           type &blah.lable; correctly (currently fails) Add a test for
8860           variables in quotes eg \"%S\" (this passes)
8862 2006-03-02 19:56  dwaynebailey
8864         * convert/test_csv2po.py: Whoops it actually is 'comment' not
8865           'source'
8867 2006-03-02 19:24  dwaynebailey
8869         * convert/test_csv2po.py: Make sure we can see the source when we
8870           fail checks in singleelement.  Correct the header: the first
8871           column is called 'source' not 'comment'.  Make sure we test with
8872           and without the header
8874 2006-03-02 11:29  davidfraser
8876         * filters/: decoration.py, test_decoration.py: modified
8877           decoration.find_marked_variables to be able to handle 0-length
8878           variable markers (# or % in openoffice) added simple test for
8879           this to new test_decoration module this now makes the checks for
8880           those variables pass in test_checks
8882 2006-03-02 11:12  davidfraser
8884         * convert/po2csv.py, storage/csvl10n.py, storage/test_base.py,
8885           storage/test_csvl10n.py: fixed up handling spreadsheet escapes -
8886           do it in the base class, not the converter also add in escapes
8887           when generating source added more detailed output when error in
8888           comparing sources (and fix comparing source2 units to source2
8889           units instead of source1 units!)
8891 2006-02-28 15:12  dwaynebailey
8893         * filters/: checks.py, test_checks.py: Ensure that we remove KDE
8894           comments before checking if something is untranslated (also added
8895           test) Allow numbers to be reordered (also added test Added test
8896           for messages that are blank but contain a KDE comment
8898 2006-02-28 14:52  friedelwolff
8900         * storage/po.py: always use encoding with multistring
8902 2006-02-28 13:42  friedelwolff
8904         * convert/: convert.py, po2moz.py: Move reversed splitinputext from
8905           convert.py to po2moz.py
8907 2006-02-28 08:15  friedelwolff
8909         * storage/po.py: Fix pounit.gettarget()
8911 2006-02-24 16:04  friedelwolff
8913         * storage/: po.py, test_po.py: Initial moves to new multistring
8915 2006-02-24 11:38  davidfraser
8917         * misc/: multistring.py, test_multistring.py: rename alt to
8918           strings, changed representation
8920 2006-02-24 11:26  davidfraser
8922         * misc/: multistring.py, test_multistring.py: include the string
8923           itself in its list of alternative strings
8925 2006-02-24 11:11  davidfraser
8927         * misc/test_autoencode.py: add test docstrings check constructor
8928           creates unique objects
8930 2006-02-24 11:03  davidfraser
8932         * misc/: autoencode.py, multistring.py, test_autoencode.py:
8933           de-tabify, clean up tests can't consruct basestring, use type for
8934           comparison for unknown types
8936 2006-02-24 10:58  davidfraser
8938         * misc/: multistring.py, test_multistring.py: added multistring
8939           type that stores alternate strings in a list
8941 2006-02-24 10:25  davidfraser
8943         * misc/: autoencode.py, test_autoencode.py: added autoencode
8944           subclass of unicode that knows which encoding to use by default
8945           when converting to string