for git v1.5.2 (and below): chdir to the directory of the target file before executin...
[translate_toolkit.git] / ChangeLog.pre-0.9
blobc39cd846bd8d30e315e855bb6a0e56068b1965c3
1 2006-02-20 13:03  davidfraser
3         * README: updated for 0.8 release
5 2006-02-20 12:15  davidfraser
7         * __version__.py: version 0.8! TADA!
9 2006-02-20 12:13  davidfraser
11         * convert/oo2po.py: fixed docstring to correspond to functionality
13 2006-02-20 11:47  friedelwolff
15         * convert/: po2html.py, po2ts.py, po2txt.py: Convert last few users
16           of getunquotedstr() to use .source and .target
18 2006-02-20 09:38  friedelwolff
20         * filters/checks.py: Allow variables _and_ musttranslate words in
21           acronym test
23 2006-02-17 21:05  dwaynebailey
25         * storage/csvl10n.py: Convert last remnants of msgid and msgstr to
26           source and target
28 2006-02-17 19:42  dwaynebailey
30         * tools/test_pocount.py: Test that we count correctly.  Quite a few
31           word break errors that need fixing.  The failing tests have been
32           disabled.
34 2006-02-17 14:10  charlvn
36         * convert/test_html2po.py: If the 'lang' attribute is placed on the
37           'html' element, '<head>' incorrectly becomes one of the
38           translatable strings in the output.
40 2006-02-17 10:39  friedelwolff
42         * filters/: checks.py, test_checks.py: Allow missing acronyms in
43           musttranslate file
45 2006-02-16 13:52  dwaynebailey
47         * filters/checks.py: Add a number of new OpenOffice.org variables
48           styles.  Including: % #1 # We're now sitting at 14 variable
49           styles!
51 2006-02-16 11:10  friedelwolff
53         * filters/pofilter.py: fix for test_ignore_if_already_marked: test
54           if pofilter message already present before appending
56 2006-02-16 11:08  friedelwolff
58         * filters/test_pofilter.py: fix comment ordering in posource
60 2006-02-16 08:27  charlvn
62         * convert/test_html2po.py: First basic test
64 2006-02-15 11:20  dwaynebailey
66         * convert/test_po2csv.py: Fix test.  We shouldn't be escaping the
67           internal CVS representation, we should escape when we use __str__
68           and friends.
70 2006-02-15 10:08  dwaynebailey
72         * filters/test_pofilter.py: Correct silly typo in
73           test_ignore_if_already_marked: test now fails properly.  Added
74           some poexpected strings to that we are testing to see that we
75           exactly match the expected output not doing X != Y but noe
76           poresult == poexpected
78 2006-02-15 09:57  dwaynebailey
80         * storage/test_properties.py: Enable some tests that were disabled
81           from 0.8 merging.  Make them pass.  Some are working but require
82           playing with newlines.  Probably needs a better look within the
83           properties class to distinguish between real translatables and
84           others.
86 2006-02-15 09:43  dwaynebailey
88         * convert/csv2po.py: Make the error message more logical.  Not sure
89           how to create a test to validate this though.
91 2006-02-15 09:38  dwaynebailey
93         * convert/test_po2csv.py: Reenable test for start single quotes.
94           Break up checking for middle and end from checking for start.  We
95           do some weird mangling on single quotes to get around
96           spreadsheets (specifically Excel).
98 2006-02-15 09:27  dwaynebailey
100         * convert/test_po2oo.py, filters/test_autocorrect.py,
101           storage/test_oo.py, tools/test_pomerge.py: SOme tests that didn't
102           make it across in the merging of 0.8 into head
104 2006-02-14 17:46  davidfraser
106         * storage/: po.py, test_po.py: zap getunquotedstr, as its no longer
107           used anywhere (unquotefrompo or better .source or .target
108           properties replace it)
110 2006-02-14 17:43  davidfraser
112         * storage/test_po.py: woops! there were two test_getunquotedstr
113           functions. The first one actually fails leaving this for
114           posterity, next I'll remove the other one :-)
116 2006-02-14 17:42  davidfraser
118         * storage/test_po.py: this test actually passes, remove it before
119           removing the function
121 2006-02-14 17:39  davidfraser
123         * convert/test_dtd2po.py: explicitly request line breaks where
124           desired for checking layout in po file
126 2006-02-14 17:38  davidfraser
128         * storage/po.py: switch default to not include line break between
129           lines (since its not part of the semantics)
131 2006-02-14 17:33  davidfraser
133         * convert/po2tmx.py: use source and target properties rather than
134           manually unquoting the strings
136 2006-02-14 17:29  davidfraser
138         * convert/: csv2po.py, pot2po.py: replace getunquotedstr with
139           unquotefrompo
141 2006-02-14 17:23  davidfraser
143         * filters/pofilter.py, tools/pocount.py, tools/podebug.py,
144           tools/pogrep.py, tools/pomerge.py: replace getunquotedstr with
145           unquotefrompo
147 2006-02-14 17:22  davidfraser
149         * storage/: po.py, test_po.py: replace getunquotedstr with
150           unquotefrompo which is much more regular
152 2006-02-14 15:50  dwaynebailey
154         * misc/quote.py: Do not treat \a (Ctrl-G or BELL) as a special
155           escape as otherwise we end up with a literal ^G in the
156           translation when we actually want \u0007.
158 2006-02-14 15:42  dwaynebailey
160         * misc/test_quote.py: Add test for quote.py
162 2006-02-14 14:52  dwaynebailey
164         * filters/test_checks.py: Add tests for variables of style: %1, %,
165           #1, #
167 2006-02-14 13:26  friedelwolff
169         * convert/test_po2tmx.py, storage/base.py, storage/test_base.py,
170           storage/test_tbx.py, storage/test_tmx.py: Make
171           base.TranslationStore.findunit() return None instead of raising
172           exception. Adapt users.
174 2006-02-14 13:17  friedelwolff
176         * storage/tmx.py: Fix tmx.translate() with unfound unit.
177           tab->spaces
179 2006-02-14 12:26  dwaynebailey
181         * filters/test_checks.py: Test to ensure that newlines do not mask
182           end punctuation errors
184 2006-02-14 12:20  davidfraser
186         * convert/: html2po.py, nb2po.py, po2csv.py, po2tmx.py, pot2po.py,
187           sxw2po.py, ts2po.py, txt2po.py: Forward port from
188           translate-toolkit-0-8-branch:   modified convert methods to make
189           the actual commandline operation more testable   all main
190           functions now take an optional argv parameter used for testing
191           also refactored main functions for modules that didn't have
192           them...
194             added encoding argument when constructing poelements (its the
195           default, but it doesn't hurt...)
197             unwrapped docstrings, and shortened them where appropriate
199 2006-02-14 12:15  davidfraser
201         * convert/csv2po.py: Forward port from
202           translate-toolkit-0-8-branch:   modified convert methods to make
203           the actual commandline operation more testable   all main
204           functions now take an optional argv parameter used for testing
205           also refactored main functions for modules that didn't have
206           them...
208             unwrapped docstrings, and shortened them where appropriate
209           adjusted test to handle them being wrapped in the help
211             added encoding argument when constructing poelements (its the
212           default, but it doesn't hurt...)
214 2006-02-14 12:09  davidfraser
216         * convert/: prop2po.py, test_prop2po.py: Forward port from
217           translate-toolkit-0-8-branch:   modified convert methods to make
218           the actual commandline operation more testable   all main
219           functions now take an optional argv parameter used for testing
220           also refactored main functions for modules that didn't have
221           them...
223             added encoding argument when constructing pounits (its the
224           default, but it doesn't hurt...)
226             Added test to detect problem with multiline entries.  Ie those
227           with \ escapes newlines.
229             added test for unicode conversions
231             added test that actually checks the convertprop method that the
232           converter calls
234 2006-02-14 12:03  davidfraser
236         * convert/: moz2po.py, mozfunny2prop.py, po2html.py, po2moz.py,
237           po2nb.py, po2oo.py, po2prop.py, po2ts.py, po2txt.py, po2xliff.py,
238           poreplace.py, prop2mozfunny.py, xliff2po.py: Forward port from
239           translate-toolkit-0-8-branch:   modified convert methods to make
240           the actual commandline operation more testable   all main
241           functions now take an optional argv parameter used for testing
242           also refactored main functions for modules that didn't have
243           them...
245 2006-02-14 12:00  davidfraser
247         * convert/: oo2po.py, test_oo2po.py: Forward port from
248           translate-toolkit-0-8-branch:   modified convert methods to make
249           the actual commandline operation more testable   all main
250           functions now take an optional argv parameter used for testing
251           also refactored main functions for modules that didn't have
252           them...
254             added encoding argument when constructing poelements (its the
255           default, but it doesn't hurt...)
257             Now also test for \t (Tab) anr \r (Carriage Return) escaping
259             added oo2po test that actually runs the command
261             added a simple test to ensure --multifile=onefile generates a
262           file, not a directory currently fails...
264             Check for the unique oo2po command line options.
266 2006-02-14 11:52  davidfraser
268         * convert/: po2dtd.py, test_po2dtd.py: Forward port from
269           translate-toolkit-0-8-branch:   modified convert methods to make
270           the actual commandline operation more testable   all main
271           functions now take an optional argv parameter used for testing
272           also refactored main functions for modules that didn't have
273           them...
275             make case of accelerators match that in the original string
277             Add a test for convertdtd.  This was to make the output to file
278           fail.  po2dtd misnamed str with scr.  Fix was simple test was
279           harder.
281             split roundtripstring out so we can easily do roundtrips on
282           whole dtds as well
283             use two input files to make sure we actually convert the string
284           back in roundtrip
285             print out intermediate roundtrip values to aid debugging errors
286             added lots of escaping and quote tests
288             added string roundtrip helper
290             added test for preserving access key case where possible...
292             Test to check that we don't mess with the encoding of an
293           escaped \n from a PO file.
295             Added test for merging flattened PO entries back into their
296           parent pretty printed entity.
298             added setup_ and teardown_ methods to TestPO2DTDCommand for
299           calling the things in both base classes...
301 2006-02-14 11:44  davidfraser
303         * convert/: dtd2po.py, test_dtd2po.py: Forward port from
304           translate-toolkit-0-8-branch:   modified convert methods to make
305           the actual commandline operation more testable   all main
306           functions now take an optional argv parameter used for testing
307           also refactored main functions for modules that didn't have
308           them...
310             added encoding argument when constructing pounits (its the
311           default, but it doesn't hurt...)
313             if thepo is blank and has no sources, it is probably a
314           DONT_TRANSLATE and so we ignore it
316             Add convertdtd test for dtd2po similar to prop2po
318             If the template has a blank translation eg translators.credits
319           and we merge it with a language that has a transaltion.  Then we
320           end up with the translation in msgid and KDE comment in the
321           msgid.
323             Add a test that picks up DONT_TRANSLATE elements that are only
324           themselves entities.
326             Add a test for #102.  Entities that appear inside SGML comments
327             Identified #101 correctly
329             changed test for newline escaping to test the string converter
330           function directly
332             Add a test to see that we convert \r\n to \n in a PO file and
333           don't end up with \r in our PO messages.
335             Make sure \r appears correctly in the PO file.
337             Ensure that we can handle \n or \t correctly when converting
338           dtd to PO
340             Fix for #79 multiline pretty printed DTD entities. Tests
341           included.
342             We do the following:
343               * Single line elements are left untrated
344               * Multiline
345               * Space at the start of the first line are preserved
346               * Whitespace at the start of all subsequent lines is removed
347               * All lines except the last have one whitespace character
348                 (ensures that when join lines we don't join words
349           inadvertantly.)
351             our merge test was coded the wrong way round ...
353             We are escaping hard coded newlines found in DTDs when creating
354           PO files.  We should just carry them through and not escape them.
355            Not these are not real newlines found in the file but a \n in
356           the text.
358             moved extractdtdstring from dtd2po to dtd storage module as
359           unquotefromdtd
361 2006-02-14 11:25  friedelwolff
363         * search/Levenshtein.py: Use segmenting for similarity calculations
365 2006-02-14 11:24  davidfraser
367         * convert/: convert.py, test_convert.py: Forward port from
368           translate-toolkit-0-8-branch:   modified convert methods to make
369           the actual commandline operation more testable   all main
370           functions now take an optional argv parameter used for testing
371           also refactored main functions for modules that didn't have
372           them...    included a base test_convert.TestConvertCommand class
373           handle onefile non-recursion for input output and templates in
374           the convert module
376 2006-02-14 11:19  davidfraser
378         * tools/: poconflicts.py, pydiff.py: space cleanup
380 2006-02-14 11:17  davidfraser
382         * filters/test_checks.py: Forward port from
383           translate-toolkit-0-8-branch:   unicode escapes are easier to
384           read in any editor...    Add the $blah$ variables style
386 2006-02-14 11:16  davidfraser
388         * filters/checks.py: replace tabs with spaces
390 2006-02-14 11:11  davidfraser
392         * misc/quote.py: Forward port from translate-toolkit-0-8-branch:
393           handle multiline escapes properly by returning the escape so the
394           parser can use it   removed spurious check that just gave errors
395           for unknown escapes at the end of a string...
397 2006-02-14 11:08  davidfraser
399         * storage/test_zipfile.py: replace tabs with spaces
401 2006-02-14 11:04  davidfraser
403         * storage/: dtd.py, test_dtd.py, oo.py, properties.py: Forward
404           ported from translate-toolkit-0-8-branch
406 2006-02-14 11:02  davidfraser
408         * storage/csvl10n.py: Forward ported from
409           translate-toolkit-0-8-branch:   Handling csv escapes   Conversion
410           to str must return str
412 2006-02-14 10:58  dwaynebailey
414         * filters/test_checks.py: Add a number of real world examples for
415           tests that failed on 0.8 branch. Including: - endpunc - variables
416           at end of line - endpunc - apostophe at end of line.  -
417           notranslatewords - various punctuation surrounding these words -
418           singlequote - at end of line - simplecaps - various that should
419           pass Some disabled until we get HEAD tests stable.  These
420           include: - endpunc - elipsis ... at end of line (UTF-8
421           \xe2\x80\xa6) - simplecaps - variable removal give false capitals
422           - simplecaps - ALLCAPS should be ALLCAPS in translation
424 2006-02-14 10:57  davidfraser
426         * storage/test_po.py: Forward ported tests from
427           translate-toolkit-0-8-branch
429 2006-02-14 10:51  davidfraser
431         * storage/po.py: Forward port from translate-toolkit-0-8-branch:
432           Converts \t and \r back into proper unescaped form.    remember
433           encodings on pounits (set by default to be the same as the pofile
434           that creates them)    encode line by line so we don't have
435           problems joining the string together (or dealing with mixed
436           unicode / str)    plastered unicode conversion onto all the
437           __str__ functions to make sure we don't get inane errors
438           renamed the underlying function to getsource, which could be used
439           alternatively if unicode is desired in certain cases.  note that
440           this will end up using UTF-8 encoding as a desparate measure
441           rather than giving errors...
443 2006-02-14 10:48  friedelwolff
445         * search/segment.py: Provide preliminary means of simple segmenting
447 2006-02-14 10:34  davidfraser
449         * filters/checks.py: moved default punctuation into a variable, and
450           encoded non-ascii chars with escapes handle replacing punctuation
451           in notranslatewords for non-unicode strings
453 2006-02-14 10:22  davidfraser
455         * filters/: checks.py, test_checks.py: disabled tests that are for
456           enhancements, can be renabled once we've finished stabilising
457           adjusted heuristic for simple_caps so its less strict on small
458           numbers of capitals
460 2006-02-14 10:14  dwaynebailey
462         * search/.cvsignore: Ignore compiled Python files
464 2006-02-14 10:12  davidfraser
466         * filters/: checks.py, test_checks.py: count repetitions of
467           variables so if one is missing it is an error this pointed out
468           that the test for filtering KDE comments when checking variables
469           was only passing because the same variable name was used twice,
470           so added more tests, and fixed the lack of kde comment filtering
471           in the variables check
473 2006-02-14 10:09  dwaynebailey
475         * storage/test_po.py: Test for the correct handling of Unicode
476           characters
478 2006-02-14 09:13  friedelwolff
480         * storage/: test_po.py, test_properties.py: Comment out failing
481           unit tests, fix a tab
483 2006-02-14 08:57  friedelwolff
485         * convert/: test_po2csv.py, test_po2tmx.py: Disable failing unit
486           tests
488 2006-02-14 07:31  friedelwolff
490         * storage/lisa.py: Make parse also accept a file, fix tabs
492 2006-02-13 12:17  davidfraser
494         * __version__.py: since its version 0.8, we need at least 8 release
495           candidates :-)
497 2006-02-13 12:10  davidfraser
499         * storage/dtd.py: leave ENTITY comments in, and add TODO to convert
500           them to obsolete messages
502 2006-02-13 12:08  davidfraser
504         * convert/test_po2dtd.py: split roundtripstring out so we can
505           easily do roundtrips on whole dtds as well
507 2006-02-13 11:41  davidfraser
509         * storage/: dtd.py, test_dtd.py: added test and fix for bug 77 on
510           comments getting run together
512 2006-02-13 10:47  davidfraser
514         * convert/: convert.py, oo2po.py: rather handle onefile
515           non-recursion for input output and templates in the convert
516           module
518 2006-02-13 07:38  friedelwolff
520         * storage/lisa.py: tab -> spaces
522 2006-02-10 23:32  friedelwolff
524         * storage/lisa.py: Improve performance in lisa parsing
526 2006-02-10 23:10  friedelwolff
528         * convert/: po2tmx.py, test_po2tmx.py: Adapt po2tmx and test_po2tmx
529           to new TMX storage. 2 new tests failing
531 2006-02-10 22:21  friedelwolff
533         * storage/lisa.py: Handle sourcelanguage neater, readlines->read,
534           improve comment
536 2006-02-10 22:18  friedelwolff
538         * search/match.py: Expect TranslationUnits as candidates, fix tabs,
539           speedups
541 2006-02-10 22:17  friedelwolff
543         * search/test_match.py: Rather pass list of TranslationUnits for
544           matching (use CSV storage)
546 2006-02-10 21:54  friedelwolff
548         * storage/tbx.py: More uniformity in source language use
550 2006-02-10 21:45  friedelwolff
552         * storage/tmx.py: fix broken language tags, less duplication of
553           base class
555 2006-02-10 20:11  friedelwolff
557         * search/Levenshtein.py: Always return floats
559 2006-02-10 17:32  friedelwolff
561         * services/: lookupclient.py, lookupservice.py: Add support for TMX
562           and TM-lookup
564 2006-02-10 14:22  friedelwolff
566         * storage/: test_tmx.py, tmx.py: Move TMX to new LISA base class.
567           Port unit tests as necessary.
569 2006-02-10 14:14  friedelwolff
571         * storage/tbx.py: Move TBX to new LISA base class
573 2006-02-10 14:05  friedelwolff
575         * storage/lisa.py: LISA base class for the XML based classes
577 2006-02-10 12:05  dwaynebailey
579         * filters/test_pofilter.py: Added test to make sure we don't pull
580           an item if its already marked as failing.  Test doesn't work as
581           their is something wrong with the way we're doing the command
582           line stuff.
584 2006-02-10 09:53  dwaynebailey
586         * convert/csv2po.py, convert/test_csv2po.py, storage/csvl10n.py:
587           Test to see that we handle CSV first character escapes Refactor
588           how we strip first character escapes in CSV files, added ' as a
589           possible Test for missing entries when merging csv 2 PO.  Should
590           check stderr but didn't know how.  We should probably have a
591           generic test method that can give us the results of stdout for
592           querying.  Fixed the error to be the same as head ie displayes
593           the source CSV filename as that is where you want to look for the
594           error mostly.
596 2006-02-09 22:50  dwaynebailey
598         * filters/: test_checks.py, checks.py: Add teh $blah$ variables
599           style
601 2006-02-09 17:50  davidfraser
603         * convert/: csv2po.py, po2csv.py, po2oo.py, pot2po.py,
604           test_convert.py: unwrapped docstrings, and shortened them where
605           appropriate adjusted test to handle them being wrapped in the
606           help added more detail to po2oo error if key not found
608 2006-02-09 17:22  davidfraser
610         * convert/test_po2dtd.py: added setup_ and teardown_ methods for
611           calling the things in both base classes...
613 2006-02-09 17:13  davidfraser
615         * storage/oo.py: flush the file (otherwise it fails in testing)
617 2006-02-09 16:16  dwaynebailey
619         * convert/: csv2po.py, po2csv.py, pot2po.py, test_csv2po.py,
620           test_dtd2po.py, test_po2csv.py, test_po2dtd.py, test_po2oo.py,
621           test_pot2po.py, test_prop2po.py: Add help test to all the
622           convertors.  Fix some of the __doc__ string for various
623           convertors to make the tests pass.
625 2006-02-09 16:10  davidfraser
627         * convert/test_po2oo.py: added commandline-style test class made
628           test_convertoo multilingual made a version of convertoo that
629           works on the commandline system (so tests happen through that
630           too, by inheritance) removed unused helpers po2oo and merge2oo
632 2006-02-09 16:07  davidfraser
634         * convert/test_convert.py: create directories recursively if
635           required for opening new files
637 2006-02-09 15:16  davidfraser
639         * convert/test_oo2po.py: defaultoptions now in base class made test
640           for pot and test for po too use kwargs where possible
642 2006-02-09 15:08  davidfraser
644         * convert/test_convert.py: added default options to not output
645           progress as its not helpful actually only the first line of the
646           docstring is included in the help
648 2006-02-09 15:00  dwaynebailey
650         * convert/: test_convert.py, test_oo2po.py: Check for the unique
651           oo2po command line options.
653 2006-02-09 14:15  davidfraser
655         * convert/: test_convert.py, test_oo2po.py: added helpers for
656           creating and reading file contents
658 2006-02-09 14:10  friedelwolff
660         * storage/: csvl10n.py, po.py, test_po.py, test_tmx.py, tmx.py:
661           Back out accidental commit of unintended files
663 2006-02-09 14:06  davidfraser
665         * convert/oo2po.py: if multifile is onefile, then don't
666           allowrecursiveinput (bug 88)
668 2006-02-09 14:05  davidfraser
670         * convert/test_oo2po.py: got the wrong argument - single means each
671           subfile is a singlefile, onefile means all in one big file.
672           Intuitive, I think...
674 2006-02-09 13:59  davidfraser
676         * convert/test_oo2po.py: added a simple test to ensure
677           --multifile=singlefile generates a file, not a directory
678           currently fails...
680 2006-02-09 13:58  davidfraser
682         * convert/test_convert.py: added more helpful things to
683           run_command:  - support for keyword arguments    so help=True
684           gives --help, language="yi" gives --language=yi  - support for
685           default options defined on self.defaultoptions    so
686           self.defaultoptions = {"progress": "none"} gives --progress=None
687           defaultoptions are overridden by keyword arguments added
688           get_testfilename helper so people don't have to do
689           os.path.join...
691 2006-02-09 13:54  dwaynebailey
693         * convert/test_pot2po.py: Rename the merging tests.  Add two tests
694           (currently disabled): - check for merges when the source remains
695           unchanged but msgid changes - check for merges where msgid
696           remains unchanged but source changes
698 2006-02-09 13:46  davidfraser
700         * convert/: test_convert.py, test_oo2po.py: added helper for
701           opening test files added simple oo2po test that actually runs the
702           command
704 2006-02-09 13:46  dwaynebailey
706         * convert/: pot2po.py, test_pot2po.py: Porting fix for message cut
707           differently. Porting from 0.8 branch.
709 2006-02-09 13:39  davidfraser
711         * convert/test_convert.py: replaced tempdir with testdir
713 2006-02-09 13:37  davidfraser
715         * convert/test_convert.py: helper run_command that runs in the
716           target directory
718 2006-02-09 13:30  friedelwolff
720         * storage/: csvl10n.py, po.py, tbx.py, test_po.py, test_tbx.py,
721           test_tmx.py, tmx.py: Fix failing unit tests, use properties in
722           tests
724 2006-02-09 13:28  davidfraser
726         * convert/: convert.py, csv2po.py, dtd2po.py, html2po.py,
727           moz2po.py, mozfunny2prop.py, nb2po.py, oo2po.py, po2csv.py,
728           po2dtd.py, po2html.py, po2moz.py, po2nb.py, po2oo.py, po2prop.py,
729           po2tmx.py, po2ts.py, po2txt.py, po2xliff.py, poreplace.py,
730           pot2po.py, prop2mozfunny.py, prop2po.py, sxw2po.py,
731           test_convert.py, test_oo2po.py, ts2po.py, txt2po.py, xliff2po.py:
732           modified convert methods to make the actual commandline operation
733           more testable all main functions now take an optional argv
734           parameter used for testing also refactored main functions for
735           modules that didn't have them...  included a base
736           test_convert.TestConvertCommand class and an initial oo2po test
738 2006-02-09 13:19  friedelwolff
740         * storage/base.py: Use newstyle class for TranslationUnit
742 2006-02-09 13:10  friedelwolff
744         * storage/tbx.py: Inherit __init__, fix settarget(None)
746 2006-02-09 12:24  dwaynebailey
748         * convert/test_pot2po.py: Test to see that "fuzzy" markers in PO
749           files are carried across when merging with POT files.
751 2006-02-09 11:41  dwaynebailey
753         * convert/test_dtd2po.py: Add a test to see that we convert \r\n to
754           \n in a PO file and don't end up with \r in our PO messages.
756 2006-02-08 17:37  friedelwolff
758         * search/: Levenshtein.py, __init__.py, match.py,
759           test_Levenshtein.py, test_match.py: Search module to perform
760           translation memory matchin. Levenshtein distances are used to
761           measure similarity.
763 2006-02-08 17:34  friedelwolff
765         * services/: lookupclient.py, lookupservice.py: Add method
766           "matches" to return likely matches from the storage
768 2006-02-08 16:34  dwaynebailey
770         * convert/pot2po.py: Fixes the bug that prevented us merging
771           messages that had the msgid cut differently.
773 2006-02-08 16:26  dwaynebailey
775         * convert/test_pot2po.py: Test when we are merging strings and the
776           msgid is cut/split differently but us actually exactly the same
777           string.  We should merge correctly.  Currently we drop those
778           strings.  Fix comments for some tests
780 2006-02-08 15:42  dwaynebailey
782         * convert/test_pot2po.py: Add some tests for pot2po.  Searching for
783           the bugs that people found with this so I can make some tests.
785 2006-02-08 14:18  friedelwolff
787         * storage/test_tbx.py: Move to base test class
789 2006-02-08 13:56  dwaynebailey
791         * storage/po.py: Converts \t and \r back into proper unescaped
792           form.
794 2006-02-08 13:38  dwaynebailey
796         * convert/test_oo2po.py: Now also test for \t (Tab) anr \r
797           (Carriage Return) escaping
799 2006-02-08 13:31  dwaynebailey
801         * convert/test_dtd2po.py: Make sure \r appears correctly in the PO
802           file.
804 2006-02-08 13:23  dwaynebailey
806         * convert/test_po2oo.py: Add \r roundtrip testing for our Windows
807           friends
809 2006-02-08 13:21  dwaynebailey
811         * convert/test_po2dtd.py: Lets not forget to check for \r for our
812           Windows needs
814 2006-02-08 13:09  dwaynebailey
816         * convert/test_po2oo.py: Add a test for po2oo firstly to get
817           roundtrip checking on escapes, etc
819 2006-02-08 12:48  dwaynebailey
821         * storage/test_oo.py: Test the validity of the width entry in an
822           SDF file
824 2006-02-08 12:17  dwaynebailey
826         * storage/test_oo.py: Add test to see that we can get the Quick
827           Help and Title text
829 2006-02-07 22:20  dwaynebailey
831         * convert/test_dtd2po.py: Ensure that we can handle \n or \t
832           correctly when converting dtd to PO
834 2006-02-07 18:53  davidfraser
836         * convert/dtd2po.py, convert/test_csv2po.py,
837           convert/test_dtd2po.py, convert/test_oo2po.py,
838           convert/test_po2dtd.py, filters/checks.py, storage/test_dtd.py,
839           storage/test_zipfile.py, tools/poconflicts.py, tools/pydiff.py:
840           Remove tab indents
842 2006-02-07 18:42  davidfraser
844         * convert/test_dtd2po.py: changed test for newline escaping to test
845           the string converter function directly
847 2006-02-07 18:27  davidfraser
849         * storage/dtd.py: make sure we remove entities within comments from
850           the line that will be parsed (were doing it later and leaving
851           them in...) added comments that eplain better what we're doing
852           here...
854 2006-02-07 18:19  davidfraser
856         * storage/test_dtd.py: added test for comments that wrap
857           entities...
859 2006-02-07 17:56  friedelwolff
861         * filters/prefilters.py: Add extra Afrikaans word with punctuation:
862           't
864 2006-02-07 16:49  dwaynebailey
866         * convert/test_po2dtd.py: Don't forget to test for tabs \t
868 2006-02-07 16:21  dwaynebailey
870         * filters/test_checks.py: A few more notranslatewords checks
872 2006-02-07 16:06  davidfraser
874         * convert/test_dtd2po.py: our merge test was coded the wrong way
875           round ...
877 2006-02-07 15:55  davidfraser
879         * convert/po2dtd.py: make case of accelerators match that in the
880           original string
882 2006-02-07 15:53  davidfraser
884         * convert/test_po2dtd.py: added test for preserving access key case
885           where possible...
887 2006-02-07 15:50  davidfraser
889         * storage/dtd.py: this old StopIteration was a means of returning
890           nothing when this function was an iterator rather return a blank
891           line which is what is actually required
893 2006-02-07 15:46  davidfraser
895         * storage/test_dtd.py: make sure blank lines at the end of the
896           string don't break parsing / regenerating the dtd
898 2006-02-07 15:32  davidfraser
900         * convert/dtd2po.py, storage/dtd.py: moved extractdtdstring from
901           dtd2po to dtd storage module as unquotefromdtd added rewrap
902           method and currently use it if dtd module is used to regenerate a
903           dtd file
905 2006-02-07 12:29  davidfraser
907         * convert/test_po2dtd.py: use two input files to make sure we
908           actually convert the string back in roundtrip print out
909           intermediate roundtrip values to aid debugging errors added lots
910           of escaping and quote tests
912 2006-02-07 11:58  davidfraser
914         * convert/test_po2dtd.py: added string roundtrip helper
916 2006-02-07 11:47  dwaynebailey
918         * convert/test_po2dtd.py: Added test for merging flattened PO
919           entries back into their parent pretty printed entity.
921 2006-02-06 22:22  dwaynebailey
923         * filters/test_checks.py: More examples tests for notranslate
924           Checks for simpleplurals near non-whitespace
926 2006-02-06 17:09  friedelwolff
928         * filters/: checks.py, prefilters.py, test_checks.py: Fix some
929           filter tests
931 2006-02-06 16:17  dwaynebailey
933         * convert/test_dtd2po.py: Add a test for #102.  Entities that
934           appear inside SGML comments Identified #101 correctly
936 2006-02-06 16:00  dwaynebailey
938         * convert/test_dtd2po.py: If the template has a blank translation
939           eg translators.credits and we merge it with a language that has a
940           transaltion.  Then we end up with the translation in msgid and
941           KDE comment in the msgid.
943 2006-02-06 09:35  friedelwolff
945         * convert/po2tmx.py: enable easy integration with pootle
947 2006-02-06 09:32  friedelwolff
949         * convert/csv2tbx.py: more renaming
951 2006-02-06 09:30  friedelwolff
953         * services/lookupservice: commandfile for lookupserverice.py
955 2006-02-03 14:59  friedelwolff
957         * services/: __init__.py, lookupclient.py, lookupservice.py:
958           Initial XML-RPC lookup service with example client.
960 2006-02-03 14:35  friedelwolff
962         * storage/tbx.py: some bugfixes
964 2006-02-03 11:40  dwaynebailey
966         * convert/dtd2po.py: Remove debug output
968 2006-02-03 11:24  dwaynebailey
970         * storage/test_dtd.py: Simple test for newlines in entities.
972 2006-02-03 11:18  dwaynebailey
974         * convert/: dtd2po.py, test_dtd2po.py: Fix for #79 multiline pretty
975           printed DTD entities. Tests included.
977           We do the following: * Single line elements are left untrated *
978           Multiline       * Space at the start of the first line are
979           preserved    * Whitespace at the start of all subsequent lines is
980           removed    * All lines except the last have one whitespace
981           character           (ensures that when join lines we don't join
982           words inadvertantly.)
984 2006-02-03 08:58  friedelwolff
986         * storage/tmx.py: Remove old code from ts storage
988 2006-02-03 08:26  friedelwolff
990         * convert/nb2po.py: more consistent renaming to base terminology
992 2006-02-02 17:09  davidfraser
994         * __version__.py: version 0.8rc7
996 2006-02-02 15:11  dwaynebailey
998         * convert/test_po2dtd.py: Test to check that we don't mess with the
999           encoding of an escaped \n from a PO file.
1001 2006-02-02 14:52  dwaynebailey
1003         * convert/test_dtd2po.py: We are escaping hard coded newlines found
1004           in DTDs when creating PO files.  We should just carry them
1005           through and not escape them.  Not these are not real newlines
1006           found in the file but a \n in the text.
1008 2006-02-02 14:37  friedelwolff
1010         * convert/test_csv2po.py: Extra test - quotes do indeed work
1012 2006-02-02 14:10  dwaynebailey
1014         * convert/: po2dtd.py, test_po2dtd.py: Add a test for convertdtd.
1015           This was to make the output to file fail.  po2dtd misnamed str
1016           with scr.  Fix was simple test was harder.
1018 2006-02-02 12:34  davidfraser
1020         * filters/test_checks.py: unicode escapes are easier to read in any
1021           editor...
1023 2006-02-02 12:12  friedelwolff
1025         * convert/test_po2csv.py: The promised unit test
1027 2006-02-02 11:48  friedelwolff
1029         * convert/po2csv.py: unit tests for csv2po. fix for po2csv problem
1031 2006-02-02 11:37  davidfraser
1033         * convert/: csv2po.py, dtd2po.py, html2po.py, nb2po.py, oo2po.py,
1034           prop2po.py, sxw2po.py, ts2po.py, txt2po.py: added encoding
1035           argument when constructing poelements (its the default, but it
1036           doesn't hurt...)
1038 2006-02-02 11:29  davidfraser
1040         * storage/po.py: remember encodings on poelements (set by default
1041           to be the same as the pofile that creates them) encode line by
1042           line so we don't have problems joining the string together (or
1043           dealing with mixed unicode / str)
1045 2006-02-02 11:25  davidfraser
1047         * storage/test_po.py: introduced a regularised set of tests that
1048           tests both in unicode and in encoded form
1050 2006-02-02 11:18  dwaynebailey
1052         * convert/test_csv2po.py: I backported this from HEAD a while back.
1053           All the tests pass so am checking it into this branch.
1055 2006-02-02 11:02  davidfraser
1057         * storage/test_po.py: include an escaped version of the character
1058           as the test_po.py file doesn't formally declare an encoding
1060 2006-02-02 10:49  dwaynebailey
1062         * storage/test_po.py: Test that exercises __str__ when we have
1063           unicode in the msgstr.
1065 2006-02-02 10:44  davidfraser
1067         * storage/po.py: getsource should always return a string, not None
1069 2006-02-02 10:43  davidfraser
1071         * convert/dtd2po.py: if thepo is blank and has no sources, it is
1072           probably a DONT_TRANSLATE and so we ignore it
1074 2006-02-02 10:42  davidfraser
1076         * convert/test_dtd2po.py: added simpler check for donttranslate,
1077           and removed printout that would cause error in entity test if it
1078           passed
1080 2006-02-02 10:29  davidfraser
1082         * storage/test_properties.py: added a check for escaped colons
1083           midstring to make sure we don't just handle the end of the string
1084           changed quoting
1086 2006-02-02 10:26  davidfraser
1088         * misc/quote.py: this check was spurious as it just gave errors for
1089           unknown escapes at the end of a string...
1091 2006-02-02 10:24  davidfraser
1093         * storage/test_properties.py: added test for bug 97 (\: at end of
1094           string causes failure)
1096 2006-02-02 10:16  davidfraser
1098         * misc/quote.py: handle multiline escapes properly by returning the
1099           escape so the parser can use it
1101 2006-02-02 10:10  davidfraser
1103         * storage/test_properties.py: made singleentry helper, added test
1104           for multiline entries (currently fails)
1106 2006-02-02 10:06  davidfraser
1108         * storage/test_properties.py: added simple tests for properties
1109           files
1111 2006-02-02 09:54  davidfraser
1113         * tools/test_pomerge.py: added simple tests for pomerge
1115 2006-02-01 10:36  dwaynebailey
1117         * filters/test_checks.py: Add some more 'should pass' tests for
1118           simplecaps
1120 2006-02-01 09:14  dwaynebailey
1122         * filters/test_checks.py: More numbers checks to make sure we cover
1123           all variants of numbers with a degree sign.
1125 2006-01-31 21:16  dwaynebailey
1127         * convert/csv2po.py: It makes more sense to report the name of the
1128           CSV with a problem entry then to report the PO file.
1130 2006-01-31 14:39  friedelwolff
1132         * convert/test_po2csv.py: Unit test for single quoting problem
1134 2006-01-31 14:39  friedelwolff
1136         * convert/test_po2csv.py: file test_po2csv.py was added on branch
1137           translate-toolkit-0-8-branch on 2006-02-02 10:12:09 +0000
1139 2006-01-31 13:38  friedelwolff
1141         * convert/csv2po.py, convert/po2csv.py, convert/test_csv2po.py,
1142           convert/test_po2csv.py, storage/csvl10n.py: Complete CSV
1143           transition to base classes
1145 2006-01-31 13:38  dwaynebailey
1147         * convert/test_csv2po.py: file test_csv2po.py was added on branch
1148           translate-toolkit-0-8-branch on 2006-02-02 09:18:50 +0000
1150 2006-01-31 13:28  dwaynebailey
1152         * filters/test_checks.py: More single quote issues mostly around
1153           quotes near other puctuation Enable a simplecaps test - we should
1154           remove 'I' from text to compare as this give a number of false
1155           positives.
1157 2006-01-31 10:32  friedelwolff
1159         * convert/csv2po.py, convert/csv2tbx.py, convert/po2csv.py,
1160           convert/test_csv2po.py, convert/test_po2csv.py,
1161           storage/csvl10n.py: CSV: closer to base classes\npo2csv:fix
1162           newlines
1164 2006-01-30 22:54  dwaynebailey
1166         * filters/test_checks.py: Disabeled/commented out tests - Should
1167           eliminate must translate words from acronyms check.  - Ability to
1168           find musttranslate words when prefixed
1170           New tests - Lots of musttranslate words surrounded by various
1171           punctuation
1173 2006-01-30 18:19  dwaynebailey
1175         * filters/test_checks.py: We shouldn't mark items that must remain
1176           unchanged as unchanged.  ie variables and notranslate words.
1178 2006-01-30 16:28  dwaynebailey
1180         * filters/test_checks.py: Test for double variable problem.
1182 2006-01-30 16:09  dwaynebailey
1184         * filters/test_checks.py: We should be detecting must and dont
1185           translate words even when surrounded by punctuation.
1187 2006-01-30 12:58  friedelwolff
1189         * convert/test_csv2po.py: correct template usage
1191 2006-01-30 11:37  davidfraser
1193         * __version__.py: 0.8 is going to need fixing, setting to rc6 in
1194           preparation for bug day
1196 2006-01-30 11:23  davidfraser
1198         * storage/: csvl10n.py, dtd.py, oo.py, po.py, properties.py:
1199           plastered unicode conversion onto all the __str__ functions to
1200           make sure we don't get inane errors renamed the underlying
1201           function to getsource, which could be used alternatively if
1202           unicode is desired in certain cases.  note that this will end up
1203           using UTF-8 encoding as a desparate measure rather than giving
1204           errors...
1206 2006-01-30 09:36  friedelwolff
1208         * storage/test_csvl10n.py: unit tests for csv storage
1210 2006-01-29 00:49  friedelwolff
1212         * storage/csvl10n.py, convert/csv2po.py, convert/po2csv.py: Move
1213           csv to base classes
1215 2006-01-29 00:44  friedelwolff
1217         * convert/csv2tbx, convert/csv2tbx.py, storage/tbx.py,
1218           storage/test_tbx.py: Initial, buggy tbx and csv2tbx
1219           implementation
1221 2006-01-28 20:14  dwaynebailey
1223         * filters/: checks.py, test_checks.py: A new Mozilla variable
1224           style: $ProgramName$
1226 2006-01-28 19:25  dwaynebailey
1228         * filters/: checks.py, test_checks.py: Add a simpleplurals test.
1229           Its really just an extractor in that it will highlight all source
1230           texts that contain "(s)" ie an English style plural.
1232 2006-01-28 17:00  dwaynebailey
1234         * filters/test_checks.py: Check variables at the end of sentences
1236 2006-01-28 15:42  dwaynebailey
1238         * convert/test_csv2po.py: Test the csv2po convertor.  Simple
1239           conversion with template fails.
1241 2006-01-28 00:32  dwaynebailey
1243         * filters/test_checks.py: Added a few tests some of which will
1244           fail: F check for singlequotes at end of sentence F double HTML
1245           style variables with errors go undetected - variables in KDE
1246           comments should be ignored
1248 2006-01-28 00:30  dwaynebailey
1250         * filters/test_pofilter.py: Add a number of pofilter tests: *
1251           Whether to include review/fuzzies in tests * Extracting with
1252           isfuzzy and isreview
1254           Ideas for non-existant test and listing all tests but need to be
1255           able to get what would go to stderror to properly validate.
1257 2006-01-27 21:54  dwaynebailey
1259         * convert/test_prop2po.py: Add a test for DONT TRANSLATE comments.
1260           Not implemented yet, but its the same functionality that is found
1261           in dtd2po.  This test is currently disabled.
1263 2006-01-27 20:31  dwaynebailey
1265         * storage/test_properties.py: Add test to check that escaped
1266           unicode is converted to proper unicode strings.  Added a newline
1267           to test_simpledefinition - this breaks it but I think that's an
1268           issue with our parser anyway.
1270 2006-01-27 20:31  davidfraser
1272         * storage/test_properties.py: file test_properties.py was added on
1273           branch translate-toolkit-0-8-branch on 2006-02-02 08:06:42 +0000
1275 2006-01-27 19:55  dwaynebailey
1277         * storage/: properties.py, test_properties.py: That's __str__ not
1278           _str__ Add some tests for properties files
1280 2006-01-27 19:54  dwaynebailey
1282         * storage/properties.py: Thats __str__ not _str__
1284 2006-01-27 15:49  dwaynebailey
1286         * convert/: test_dtd2po.py, test_prop2po.py: Tests to check for
1287           folding of accelerator keys into other messages.  The test for
1288           properties files is marked as xtest_ ie it won't run by default.
1289           This feature needs to be fixed then the test enabled.
1291 2006-01-27 12:06  friedelwolff
1293         * storage/test_po.py: extra test for getuquotedstr
1295 2006-01-27 10:44  friedelwolff
1297         * convert/po2tmx.py: small fixup for easy integration with pootle
1299 2006-01-27 09:53  dwaynebailey
1301         * filters/test_checks.py: Accelerators placed before variables
1302           should fail the accelerator test.
1304 2006-01-26 17:20  davidfraser
1306         * convert/csv2po.py, convert/dtd2po.py, convert/html2po.py,
1307           convert/nb2po.py, convert/oo2po.py, convert/po2csv.py,
1308           convert/po2dtd.py, convert/po2html.py, convert/po2nb.py,
1309           convert/po2oo.py, convert/po2prop.py, convert/po2tmx.py,
1310           convert/po2ts.py, convert/po2txt.py, convert/po2xliff.py,
1311           convert/poreplace.py, convert/pot2po.py, convert/prop2po.py,
1312           convert/sxw2po.py, convert/test_dtd2po.py, convert/test_oo2po.py,
1313           convert/test_prop2po.py, convert/ts2po.py, convert/txt2po.py,
1314           convert/xliff2po.py, filters/pofilter.py, storage/csvl10n.py,
1315           storage/dtd.py, storage/oo.py, storage/po.py,
1316           storage/properties.py, storage/test_po.py, storage/xliff.py,
1317           tools/pocompile.py, tools/poconflicts.py, tools/pocount.py,
1318           tools/podebug.py, tools/pogrep.py, tools/pomerge.py,
1319           tools/porestructure.py: refactor translate.storage.po to use
1320           translate.storage.base this involves wanton renaming of elements
1321           to units etc
1323 2006-01-26 16:53  davidfraser
1325         * storage/: base.py, test_base.py: added ability to force override
1326           of methods in base classes this is useful because otherwise the
1327           pickling we use for testing the base classes gets transposed to
1328           derived classes also allow an empty string for unit.target if it
1329           has not been set...
1331 2006-01-26 11:10  davidfraser
1333         * storage/base.py: replace python 2.4 decorators with less
1334           beautiful function syntax that works in 2.3 etc
1336 2006-01-26 11:00  dwaynebailey
1338         * filters/: checks.py, decoration.py, test_checks.py: Add two new
1339           tests: urls - checks to see that basic URLs are not translated
1340           emails - check to see that email addresses are not translated
1342 2006-01-25 21:58  dwaynebailey
1344         * filters/: decoration.py, checks.py, test_checks.py: New pofilter
1345           test to ensure that functions() are not translated.
1347 2006-01-25 12:20  dwaynebailey
1349         * convert/test_prop2po.py: Added test to detect problem with
1350           multiline entries.  Ie those with \ escapes newlines.
1352 2006-01-24 21:06  dwaynebailey
1354         * convert/test_dtd2po.py: Add a test that picks up DONT_TRANSLATE
1355           elements that are only themselves entities.  These seems to come
1356           through as blank translations ie:
1358           msgid "_: \n" "" msgstr ""
1360           When they should simply be dropped.
1362           I have not created a fix.
1364 2006-01-24 19:18  dwaynebailey
1366         * storage/: po.py, test_po.py: Backport fixes: po class crashing
1367           when trying to parse a string.
1369           Backport tests: string and file tests and corrected error.
1370           Friedel's test for getunquotedstr (basic sanity check)
1372 2006-01-24 17:19  davidfraser
1374         * convert/test_prop2po.py: added test for unicode conversions
1376 2006-01-24 17:19  davidfraser
1378         * storage/: po.py, test_po.py: fix up unicode test, and add testing
1379           for when the msgid value is actually a unicode object, not a
1380           string this test is currently made to pass by manually converting
1381           to UTF-8 in poelement.__str__, but this is not the ultimate
1382           solution - we should know which encoding to convert to...
1384 2006-01-24 16:51  dwaynebailey
1386         * convert/test_dtd2po.py: Add convertdtd test for dtd2po similar to
1387           prop2po
1389 2006-01-24 16:42  davidfraser
1391         * storage/oo.py: rather than printing to sys.stderr, raise warnings
1392           this means repeated errors aren't output it also makes it much
1393           easier to test and catch the problems case in point: ignore empty
1394           lines...
1396 2006-01-24 16:41  davidfraser
1398         * storage/test_oo.py: test handling of a blank line, make sure it
1399           doesn't produce even a warning added support for warning testing
1400           converted tab indents to spaces
1402 2006-01-24 16:41  dwaynebailey
1404         * storage/test_po.py: First attempt at a test to highlight
1405           __str__() problems with Unicode items at the PO element level.
1406           Test currently passes, it should fail.
1408 2006-01-24 16:35  davidfraser
1410         * storage/test_oo.py: added basic test for oo class
1412 2006-01-24 16:18  davidfraser
1414         * convert/test_prop2po.py: added test that ctually checks the
1415           convertprop method that the converter calls
1417 2006-01-24 15:59  dwaynebailey
1419         * convert/prop2po.py: Forward port a fix from 0.8 branch. src(blah)
1420           should have been str(blah)
1422 2006-01-24 15:57  dwaynebailey
1424         * convert/prop2po.py: We should be outputing _str_ not
1425           src(outputpo) - src function does not exist.  Did not create a
1426           test for this.  We probably should but I guess that will go into
1427           HEAD base class to exercise the _str_ functionality.
1429 2006-01-24 15:29  dwaynebailey
1431         * tools/.cvsignore: Ignore compiled Python files.
1433 2006-01-24 14:16  dwaynebailey
1435         * tools/.cvsignore: Ignore precompiled Python files.
1437 2006-01-24 14:16  dwaynebailey
1439         * tools/.cvsignore: file .cvsignore was added on branch
1440           translate-toolkit-0-8-branch on 2006-01-24 13:29:51 +0000
1442 2006-01-24 13:20  davidfraser
1444         * storage/test_base.py: refactored so reparsing and checking
1445           equality are separate functions
1447 2006-01-24 13:13  davidfraser
1449         * storage/: base.py, test_base.py: added ability to set target in
1450           TranslationUnit
1452 2006-01-24 13:06  davidfraser
1454         * storage/: base.py, test_base.py: added doc strings added new test
1455           class for testing the individual Unit classes renamed TestClass
1456           attributes of classes to UnitClass / StoreClass (otherwise
1457           py.test tries to test them)
1459 2006-01-24 12:51  davidfraser
1461         * storage/: base.py, test_base.py: rename parse to parsestring and
1462           add parsefile and savefile methods
1464 2006-01-24 12:43  davidfraser
1466         * storage/: base.py, test_base.py: committed initial base class for
1467           TranslationStore, and tests. these will form the basis for the
1468           new API to po, xliff, etc
1470 2006-01-24 11:33  davidfraser
1472         * convert/csv2po.py, convert/dtd2po.py, convert/html2po.py,
1473           convert/nb2po.py, convert/oo2po.py, convert/po2csv.py,
1474           convert/po2dtd.py, convert/po2html.py, convert/po2nb.py,
1475           convert/po2oo.py, convert/po2prop.py, convert/po2tmx.py,
1476           convert/po2ts.py, convert/po2txt.py, convert/po2xliff.py,
1477           convert/poreplace.py, convert/pot2po.py, convert/prop2po.py,
1478           convert/sxw2po.py, convert/test_dtd2po.py, convert/test_oo2po.py,
1479           convert/test_prop2po.py, convert/ts2po.py, convert/txt2po.py,
1480           convert/xliff2po.py, filters/pofilter.py, storage/po.py,
1481           storage/test_po.py, storage/xliff.py, tools/pocompile.py,
1482           tools/poconflicts.py, tools/pocount.py, tools/podebug.py,
1483           tools/pogrep.py, tools/pomerge.py, tools/porestructure.py:
1484           renamed poelements to elements started trying to convert xliff
1485           transunits into elements
1487 2006-01-24 11:10  davidfraser
1489         * __version__.py: version 0.9 alpha 1 on HEAD
1491 2006-01-20 12:14  dwaynebailey
1493         * storage/: po.py, test_po.py: po class crashing when trying to
1494           parse a string.
1496           Fixed string and file tests and corrected error.
1498 2006-01-20 12:05  dwaynebailey
1500         * storage/test_po.py: Add test for parsing a string or parsing a
1501           file.  Thought I had a bug but it slipped through :/.  The tests
1502           don't seem to find it.
1504           One problem the test writes to a file.  We should remove and
1505           destroy it, I didn't (know how to).
1507 2006-01-20 08:35  friedelwolff
1509         * convert/test_po2tmx.py: Unit tests for po2tmx
1511 2006-01-19 18:08  friedelwolff
1513         * convert/po2tmx.py: Make source language work
1515 2006-01-19 16:23  friedelwolff
1517         * storage/test_tmx.py: Test entries with newlines and XML entities
1519 2006-01-19 15:36  friedelwolff
1521         * convert/po2tmx.py: Handle multiple files. Handle source and
1522           target languages.
1524 2006-01-19 15:19  davidfraser
1526         * storage/test_po.py: added Friedel's test for getunquotedstr
1527           (basic sanity check)
1529 2006-01-19 13:12  friedelwolff
1531         * storage/tmx.py: Handle sourcelanguage better
1533 2006-01-18 16:10  friedelwolff
1535         * storage/test_tmx.py: Unit tests for tmx storage
1537 2006-01-18 15:42  friedelwolff
1539         * storage/tmx.py: Up to tmx1.4, +accessors, fix getxml(), optimise
1540           addtranslation()
1542 2006-01-18 13:46  dwaynebailey
1544         * tools/pogrep.py: Fixes current instance of Pootle barfing on
1545           searching.  However we still have problems with Unicode in search
1546           strings.  Bug http://bugs.wordforge.org/show_bug.cgi?id=89 refers
1547           to the problem.
1549 2006-01-17 17:07  davidfraser
1551         * ChangeLog: updated ChangeLog at 0.8 stage
1553 2006-01-17 15:41  davidfraser
1555         * storage/test_zipfile.py: added tests for zipfile module to make
1556           sure it supports required functionality for xpi module
1557           (refactored from previous non-py.test version)
1559 2006-01-17 09:53  davidfraser
1561         * filters/test_pofilter.py: added ability to pass cmdlineoptions to
1562           pofilter cmdlineparser
1564 2006-01-17 09:31  davidfraser
1566         * CREDITS: added nicolas
1568 2006-01-17 09:11  davidfraser
1570         * __version__.py: version 0.8 (at last!)
1572 2006-01-17 09:06  davidfraser
1574         * storage/: ts.py, xliff.py: commented out modifications to minidom
1575           classes
1577 2006-01-08 17:48  dwaynebailey
1579         * convert/test_prop2po.py: More tab at the end tests for prop2po
1581 2006-01-08 14:46  dwaynebailey
1583         * filters/test_checks.py: Fix many of the escape tests using raw
1584           wtrings Add another accelerator test for accelerators combined
1585           with variables on Mozilla Fix KDE comment tests More unchanged
1586           tests to cover KDE comments, numbers, accelerators Add validchars
1587           tests
1589 2006-01-08 14:29  dwaynebailey
1591         * filters/checks.py: Must remove KDE comments when checking for
1592           unchnaged entries.
1594 2006-01-08 14:26  dwaynebailey
1596         * filters/TODO: musttranslate and notranslate implement the stop
1597           words functionality.
1599 2005-12-23 16:46  dwaynebailey
1601         * filters/: checks.py, test_checks.py: Make singlequoting remove
1602           KDE comments before testing Add test to check that KDE comments
1603           are ignored.
1605           Add fuller coverage for "escapes" unit tests.
1607           Add commented out tests for "simplcaps" and "spellcheck" as these
1608           are the only remaining tests that we need to check here.
1609           "isfuzzy" and "isreview" should be tested in test_pofilter.py
1611 2005-12-23 16:21  dwaynebailey
1613         * filters/test_checks.py: Add a unit test for pofilter "escapes"
1614           test.
1616           Add another test for "singlequotes" to check quotes at end of
1617           sentences.
1619 2005-12-23 16:17  dwaynebailey
1621         * filters/test_pofilter.py: Test to check variables spanning lines.
1623 2005-12-23 15:48  dwaynebailey
1625         * convert/: prop2po.py, test_prop2po.py: Only strip spaces, not all
1626           whitespace.  Thus we leave \t (tabs) that occur at the end of a
1627           .properties entry.
1629           Also updated the test to focus on the \t at the end (removed all
1630           other Unicode bumf)
1632 2005-12-23 15:24  dwaynebailey
1634         * convert/test_prop2po.py: Add a unit test harness for prop2po
1635           based on the tests for dtd2po.
1637           This includes a test for Bug 74.
1639 2005-12-23 15:11  davidfraser
1641         * filters/test_pofilter.py: actually pass a fake argument to the
1642           parser so it doesn't use sys.argv and thinks it has something to
1643           handle
1645 2005-12-23 15:10  davidfraser
1647         * filters/: pofilter.py, test_pofilter.py: added a way of testing
1648           pofilter by giving it actual poentries and passing them through
1649           the standard chain this slightly bypasses command line argument
1650           handling etc; refactored a helper to return a command line parser
1651           for this purpose
1653 2005-12-23 14:56  davidfraser
1655         * convert/convert.py: avoid potential errors caused by default
1656           arguments getting set as member variables and modified
1658 2005-12-23 14:53  davidfraser
1660         * filters/: checks.py, pofilter.py: avoid potential errors caused
1661           by default arguments getting set as member variables and modified
1663 2005-12-23 14:52  davidfraser
1665         * filters/test_checks.py: this check was passing incorrectly
1666           because of mozilla variables leaking into the standard checker
1667           check properly now that that was fixed - should fail if &amp; is
1668           not a variable and pass if it is
1670 2005-12-23 14:43  friedelwolff
1672         * filters/test_checks.py: Uncomment failing bracket test
1674 2005-12-23 14:41  davidfraser
1676         * filters/checks.py: map strings to unicode before checking valid
1677           characters
1679 2005-12-23 14:40  dwaynebailey
1681         * filters/test_checks.py: Add a unit test for pofilter
1682           "singlequoting" check.
1684 2005-12-23 14:38  davidfraser
1686         * filters/test_checks.py: added test for config objects not being
1687           muddly (which they were until a recent fix)
1689 2005-12-23 14:35  davidfraser
1691         * filters/checks.py: default [] arguments are a no-no - they can
1692           get altered if they are stored in the object, and cause muddly
1693           issues
1695 2005-12-23 14:31  dwaynebailey
1697         * filters/test_checks.py: Add tests to the "accelerator" unit test
1698           that covers the various types of accelerator keys.
1700 2005-12-23 14:24  dwaynebailey
1702         * filters/test_checks.py: Add unit tests for pofilter "variables"
1703           check.  They are broken down into each defined checker type: KDE,
1704           GNOME, etc
1706 2005-12-23 14:20  davidfraser
1708         * README: we're going to get the docs from the wiki, and we've
1709           relicensed them under GPL (see bug 33)
1711 2005-12-23 14:05  dwaynebailey
1713         * filters/test_checks.py: Added unit test for pofilter
1714           "setencecount" check.
1716 2005-12-23 13:58  dwaynebailey
1718         * filters/test_checks.py: Add unit test for pofilter "endpunc"
1719           check.
1721 2005-12-23 13:52  dwaynebailey
1723         * filters/test_checks.py: Add unit test for pofilter "startpunc"
1724           check.
1726 2005-12-23 13:49  dwaynebailey
1728         * filters/test_checks.py: Added unit test for pofilter
1729           "startwhitespace" check.
1731 2005-12-23 13:42  dwaynebailey
1733         * filters/test_checks.py: Added "endwhitespace" test
1735 2005-12-23 13:36  dwaynebailey
1737         * filters/test_checks.py: Added validchars test: this needs some
1738           fixing from Dave for the internal workings of validchars.
1740 2005-12-23 12:43  dwaynebailey
1742         * filters/test_checks.py: Put numbers test in alphabetic order
1744           Add a test for "purepunc"
1746 2005-12-23 12:39  dwaynebailey
1748         * filters/test_checks.py: Add a test for the kdecomments test
1750 2005-12-23 12:35  dwaynebailey
1752         * filters/test_checks.py: Add a test for pofilter "long" test
1754 2005-12-23 12:32  dwaynebailey
1756         * filters/test_checks.py: Reorder tests into alphabetic order - we
1757           have 34 so order is important.
1759           Added a short test.
1761 2005-12-23 12:31  friedelwolff
1763         * tools/porestructure.py: Don't use templates
1765 2005-12-23 12:23  dwaynebailey
1767         * filters/test_checks.py: Add tests for pofilter numbers test.
1769 2005-12-23 12:05  dwaynebailey
1771         * filters/test_checks.py: Make test names follow the pofilter
1772           names, to ease finding associated tests.
1774 2005-12-23 12:02  dwaynebailey
1776         * filters/test_checks.py: Change test_compendiumconflicts to use a
1777           raw string in the assert, to make things clearer.
1779 2005-12-23 11:59  dwaynebailey
1781         * filters/test_checks.py: Add test for doublespacing
1783 2005-12-23 11:31  davidfraser
1785         * convert/test_oo2po.py: used raw strings so escapes are less
1786           confusing added a test of escape conversions (bug 24)
1788 2005-12-23 11:24  friedelwolff
1790         * filters/helpers.py: Clarify comment
1792 2005-12-23 11:23  friedelwolff
1794         * filters/test_checks.py: More unit tests for standard checks
1796 2005-12-23 11:22  davidfraser
1798         * storage/: test_dtd.py, test_po.py: simplified by using str
1799           directly now that its that easy
1801 2005-12-23 11:19  davidfraser
1803         * convert/csv2po.py, convert/dtd2po.py, convert/html2po.py,
1804           convert/nb2po.py, convert/oo2po.py, convert/po2csv.py,
1805           convert/po2dtd.py, convert/po2oo.py, convert/poreplace.py,
1806           convert/pot2po.py, convert/prop2po.py, convert/sxw2po.py,
1807           convert/test_dtd2po.py, convert/test_po2dtd.py, convert/ts2po.py,
1808           convert/txt2po.py, convert/xliff2po.py, filters/pofilter.py,
1809           storage/csvl10n.py, storage/dtd.py, storage/oo.py, storage/po.py,
1810           storage/properties.py, storage/test_dtd.py, storage/test_po.py,
1811           tools/poconflicts.py, tools/podebug.py, tools/pogrep.py,
1812           tools/pomerge.py, tools/porestructure.py: replaced all tolines
1813           functions with __str__ functions that return a string rather than
1814           a list of lines note that we could use __unicode__ if desired as
1815           well
1817 2005-12-23 11:03  dwaynebailey
1819         * convert/: dtd2po.py, test_dtd2po.py: Fix for Bug #79
1821           Removes starting whitespace in subsequent lines of a DTD entity.
1822           Thus the PO entry has these uneeded spaces removed.
1824           Ie:
1826           <!ENTITY blah "Some text                and more"
1828           Becomes
1830           msgid "Some text \nand more" msgstr ""
1832           Conversion back does not create a pretty formatted entity and
1833           won't do that.
1835           This fix does not solve the CRLF at the end of such multiline
1836           entities. See Bug 86 for the line ending problem.
1838 2005-12-23 10:39  davidfraser
1840         * convert/oo2po.py, convert/po2oo.py, convert/prop2mozfunny.py,
1841           convert/test_oo2po.py, storage/csvl10n.py, storage/dtd.py,
1842           storage/oo.py, storage/po.py, storage/properties.py,
1843           tools/pocount.py, tools/pomerge.py: replaced all fromlines
1844           functions with parse functions that take strings (or sometimes
1845           file objects) instead of lists of lines the underlying functions
1846           still often split things up into lines in some cases there was an
1847           existing parse function that called fromlines, so these have been
1848           merged also the dtd element parsing broke on empty strings with
1849           thinking it had a line, so this was fixed added an input argument
1850           to oofile so that it can be constructed more easily renamed
1851           methods in storage/oo.py oomultifile (getlines -> getsubfilesrc,
1852           getsubfile -> getsubfilename) added a simple test for oo2po
1854 2005-12-23 10:29  friedelwolff
1856         * tools/: porestructure, porestructure.py: Tool to restructure po
1857           files according to poconflicts directives
1859 2005-12-20 11:59  davidfraser
1861         * convert/po2csv.py: need a default value for columnorder so we can
1862           call convertfile with just the pofile argument (for Pootle)
1864 2005-12-13 16:54  davidfraser
1866         * storage/test_po.py: must make sure we don't add msgid_comments to
1867           blanks when keeping them
1869 2005-12-13 16:53  davidfraser
1871         * storage/po.py: Always add msgid_comment to blank entries unless
1872           "keep"ing them.  This is already done for msgid_comment and
1873           msgid_comment_all so the one needing change is merge
1875 2005-12-13 16:47  davidfraser
1877         * storage/test_po.py: added tests for merging duplicates, and
1878           particularly ensure that merging blanks with "merge" adds
1879           msgid_comments see bug 15 for an explanation
1881 2005-12-08 14:59  friedelwolff
1883         * tools/pydiff.py: Support stdin. Check arguments more carefully.
1885 2005-12-08 12:49  davidfraser
1887         * storage/po.py: allow duplicate handling of blank msg ids, but
1888           exclude the header
1890 2005-12-08 12:17  davidfraser
1892         * misc/test_zipfileext.py: only use TestFailed if test.test_support
1893           is present (requires python-devel on Fedora)
1895 2005-12-08 10:01  davidfraser
1897         * storage/xpi.py: support seamonkey containing os-specific jars by
1898           not letting them get matched as lang-reg and disrupt the locale
1899           detection
1901 2005-12-06 16:08  davidfraser
1903         * CREDITS: Friedel Wolff has been doing bug fixing
1905 2005-12-06 15:57  friedelwolff
1907         * tools/poconflicts.py: Complain if no ouput options are found
1909 2005-11-30 23:11  dwaynebailey
1911         * filters/test_checks.py: Unit test for pofilter "doublewords"
1912           test. Disable one for testing double variables as I'm unsure of
1913           how to prefilter variables.
1915 2005-11-30 22:55  dwaynebailey
1917         * filters/test_checks.py: Unit test for pofilter "filepaths" test
1919 2005-11-30 22:49  dwaynebailey
1921         * filters/test_checks.py: Unit tests for pofilter "untranslated"
1923 2005-11-30 22:42  dwaynebailey
1925         * filters/test_checks.py: Unit test for pofilter blank test
1927 2005-11-30 22:37  dwaynebailey
1929         * filters/test_checks.py: Test for conpedium conflicts
1931 2005-11-30 22:30  dwaynebailey
1933         * filters/test_checks.py: Add validation checks for acronyms
1935 2005-11-30 22:24  dwaynebailey
1937         * filters/test_checks.py: Also check that we can detect accelrators
1938           that are using Unicode characters in the translation.
1940 2005-11-30 22:18  dwaynebailey
1942         * filters/test_checks.py: Add test for pofilters accelerators test
1944 2005-11-30 22:06  dwaynebailey
1946         * filters/test_checks.py: Add test pofilter unchanged test.
1948 2005-11-30 21:26  dwaynebailey
1950         * filters/test_checks.py: Add startcap tests
1952 2005-11-29 20:55  dwaynebailey
1954         * convert/convert.py: For --duplicates make merge the default
1955           behaviour.  This is the same and normal Gettext behaviour.  This
1956           change should make it more understandable for the general user
1957           and still make it possible for the advanced user to manipulate
1958           their PO files.
1960 2005-11-29 15:52  davidfraser
1962         * convert/po2xliff.py: convert getElementsByTagName results to list
1963           in case it returns a generator (bug 78)
1965 2005-11-29 15:09  davidfraser
1967         * storage/test_dtd.py: forgot that trailing \n again
1969 2005-11-29 15:06  davidfraser
1971         * storage/dtd.py: adding the \n to the comment broke stripping the
1972           comment from the line with the result that if it had a trailing
1973           space, it came out as an unparsed line, and so was repeated (bug
1974           77) doing the add after the stripping makes it work
1975           (test_commentclosing)
1977 2005-11-29 15:00  davidfraser
1979         * storage/test_dtd.py: test that if comments have trailing spaces
1980           they aren't duplicated
1982 2005-11-29 14:13  davidfraser
1984         * storage/po.py: if the msgid and msgstr are blank, but there is a
1985           source comment, this is still an important piece of a po file
1986           (bug 15)
1988 2005-11-29 14:09  davidfraser
1990         * storage/: test_po.py, po.py: added a test for combining msgid
1991           comments, and actually do it when reproducing the source
1993 2005-11-29 13:49  davidfraser
1995         * storage/test_po.py: added simple start to tests for po module
1997 2005-11-29 13:44  davidfraser
1999         * convert/test_po2dtd.py: added test for retaining hash prefix (bug
2000           81)
2002 2005-11-29 13:38  davidfraser
2004         * storage/: dtd.py, test_dtd.py: added a hack to handle
2005           "hashprefix" in dtd, and fixed up the slight format problem in
2006           the test
2008 2005-11-29 13:29  davidfraser
2010         * storage/test_dtd.py: added test for hashcomment from bug 81
2012 2005-11-28 17:20  davidfraser
2014         * storage/test_dtd.py: fixed simpleentity comment, added helper for
2015           regenerating source and test on simple string
2017 2005-11-28 17:12  davidfraser
2019         * storage/test_dtd.py: added initial simple dtd test
2021 2005-11-28 15:19  dwaynebailey
2023         * filters/checks.py: Fix situation when jToolkit is not installed.
2025 2005-11-19 08:33  davidfraser
2027         * CREDITS: some fixes from Matt Chisholm and Ognyan Kulev, testing
2028           by David Farning ; might have missed a few people out, so need to
2029           review
2031 2005-11-19 08:27  davidfraser
2033         * __version__.py: version 0.8rc5
2035 2005-11-14 17:41  davidfraser
2037         * convert/test_dtd2po.py: actually we do want to convert the
2038           apostrophe in the po file
2040 2005-11-14 17:41  davidfraser
2042         * convert/dtd2po.py, storage/dtd.py: crazy to replace &apos; with
2043           single quote here as the defpart is still quoted so it will
2044           always break the quoting do it rather in dtd2po, then the
2045           back-conversion in po2dtd also still works this fixes bug 69
2047 2005-11-14 17:27  davidfraser
2049         * convert/test_dtd2po.py: added test for apostrophe breaking
2050           single-quoted entity definition moved bug numbers to end of doc
2051           strings
2053 2005-11-14 16:55  davidfraser
2055         * convert/test_dtd2po.py: added test for kde comments being merged
2056           properly (bug 65)
2058 2005-11-14 16:32  davidfraser
2060         * convert/test_dtd2po.py: updated test_entityname to
2061           test_donttranslate_label and explained current state a bit better
2063 2005-11-14 16:12  davidfraser
2065         * convert/test_dtd2po.py: added helper to return single element
2066           from pofile added doc strings to tests added test for bug 30
2068 2005-11-14 16:11  davidfraser
2070         * convert/dtd2po.py: replaced visiblecomments with othercomments as
2071           that's the correct name in pofile for #  comments
2073 2005-11-14 15:59  davidfraser
2075         * convert/po2dtd.py: warn if accesskey is not found
2077 2005-11-14 15:58  davidfraser
2079         * convert/test_po2dtd.py: reset warnings properly using
2080           setup_method and teardown_method so tests don't interact badly
2081           added test to make sure missing access key raises an error (bug
2082           44)
2084 2005-11-14 15:49  davidfraser
2086         * convert/po2dtd.py: generate warnings rather than writing straight
2087           to sys.stderr don't use sy.argv[-1] for filename as this is
2088           almost invariably wrong
2090 2005-11-14 15:49  davidfraser
2092         * convert/test_po2dtd.py: added proper test that invalid ampersands
2093           generate warnings, renamed fix test
2095 2005-11-14 15:26  davidfraser
2097         * convert/po2dtd.py: check for invalid ampersands on straight
2098           po2dtd conversions fixed the ampersand correction position as it
2099           was keeping the ampersand and removing the next character!
2101 2005-11-14 15:25  davidfraser
2103         * convert/test_po2dtd.py: added test for ampersands being stripped
2104           out (doesn't detect warning as it says yet) added a helper to do
2105           dtd merging (not used yet)
2107 2005-11-14 15:10  davidfraser
2109         * storage/dtd.py: don't assume that self.entitytype will always be
2110           set
2112 2005-11-14 15:09  davidfraser
2114         * convert/test_po2dtd.py: test that \n in msgstr is escaped
2115           correctly in dtd - bug 45
2117 2005-11-14 15:03  davidfraser
2119         * storage/po.py: Convert nplurals if its unicode too...  This was
2120           bug 36 (Patch from Matt Chisholm)
2122 2005-11-14 14:43  davidfraser
2124         * convert/po2dtd.py: replaced quote functions etc with
2125           unquotefrompo make sure newlines aren't included (bug 16)
2127 2005-11-14 14:34  davidfraser
2129         * convert/test_po2dtd.py: added test for bug 16 in test_po2dtd
2131 2005-11-14 14:25  davidfraser
2133         * convert/dtd2po.py: move convertmixedelement below convertelement,
2134           which makes more sense removed a few blank lines
2136 2005-11-14 14:24  davidfraser
2138         * convert/test_dtd2po.py: check that the output actually contains
2139           credit.translation (otherwise it could be an empty string, the
2140           current situation) see
2141           http://bugs.wordforge.org/show_bug.cgi?id=15
2143 2005-11-14 14:16  davidfraser
2145         * convert/test_dtd2po.py: added py.test file for dtd2po
2147 2005-11-14 14:06  davidfraser
2149         * misc/test_zipfileext.py: added py.test tests for zipfileext that
2150           fixes problems in ZipFile
2152 2005-11-14 13:59  davidfraser
2154         * filters/: checks.py, test_checks.py: added helper functions
2155           passes and fails to checks, and use them from within test_checks
2156           this is neccessary now that a failure can raise a FilterFailure
2157           exception
2159 2005-11-14 13:16  davidfraser
2161         * convert/convert.py: only do a replace if both the searchstring
2162           and replacestring are not None
2164 2005-11-03 15:06  davidfraser
2166         * __version__.py: rc4, this is really a release candidate now :-)
2168 2005-11-03 14:58  davidfraser
2170         * convert/po2oo.py: this causes horrible problems for hristo and
2171           javier (printing out a unicode string) so trying a relatively
2172           verbose but hopefully safe alternative
2174 2005-11-02 11:33  davidfraser
2176         * convert/dtd2po.py: added a scheme to make sure that if the
2177           original strings didn't get mixed for an entity, the translated
2178           strings won't be mixed either
2180 2005-11-02 11:27  davidfraser
2182         * convert/po2moz.py: added --clonexpi option, which allows you to
2183           use a different xpi for the structure from the template xpi this
2184           is useful when recreating xpis but still wanting to use the en-US
2185           xpi for the original strings disabled copying from the template -
2186           all files should be unpacked into the input directory by moz2po
2187           anyway, and this ends up confusing things if the template xpi and
2188           the input xpi from moz2po had a different structure
2190 2005-11-02 11:20  davidfraser
2192         * storage/xpi.py: when cloning an xpi, if it is created in "w"
2193           mode, we should reopen it in "a" mode (or we just recreate a
2194           blank file) added TODO to check language replacement code
2196 2005-11-02 09:26  dwaynebailey
2198         * tools/poconflicts.py: poconflicts now adds a comment:
2200           # (poconflicts) path/to/file.po
2202           To each conflicting entry.  This so that we can merge the
2203           corrected conflicts back into the original PO files.
2205 2005-10-31 17:47  davidfraser
2207         * storage/xpi.py: support passing locale and region to the XpiFile
2208           constructor actually pass them when cloning, since we are given
2209           them here
2211 2005-10-31 17:25  davidfraser
2213         * misc/quote.py: handle unicode in properties files (in utf-8) fix
2214           to the way mozilla actually handles unicode escapes \u or \u, up
2215           to four hexadecimal characters
2217 2005-10-31 17:20  davidfraser
2219         * convert/dtd2po.py: fix logic for handling empty dtd elements
2220           (empty string, but valid entity name)
2222 2005-10-31 12:24  davidfraser
2224         * misc/: optrecurse.py, progressbar.py: added support for a new
2225           progress option, --progress=names this just prints out filenames
2226           without any other progress indicator it's a good option when
2227           outputting to a log file rather than a terminal
2229 2005-10-31 12:00  davidfraser
2231         * storage/xpi.py: another fix to handle locales without regions
2232           also make suer the locale and region match the whole string, not
2233           just the start produce more errors if we cannot determine locale,
2234           don't use uncertain region
2236 2005-10-28 17:00  davidfraser
2238         * convert/: convert.py, moz2po.py, po2moz.py: added a Replacer
2239           object that you can give a search and replace to and then use its
2240           searchreplaceinput / searchreplacetemplate methods as converter
2241           objects this is basically so we can substitute in variables for
2242           the locale and change it automatically we then use this from
2243           moz2po / po2moz to prevent users having to edit .js, .manifest
2244           and .rdf files also use loops to define the format converters now
2245           that they are so prolific we have a hack on po2moz that updates
2246           the single replacer object with the locale later on as it is only
2247           known later
2249 2005-10-28 16:56  davidfraser
2251         * storage/xpi.py: handle converting the
2252           bin/chrome/lang-reg.manifest mapping back if the locale has not
2253           been discovered (just find the first thing that seems to match)
2254           this is basically for running xpi standalone to extract the files
2256 2005-10-28 16:28  davidfraser
2258         * storage/xpi.py: added a special hook to rename
2259           bin/chrome/en-US.manifest (or locale) to lang-reg.manifest (both
2260           ways)
2262 2005-10-28 15:04  davidfraser
2264         * convert/po2dtd.py: handle merging with .title as well as .label
2265           made list of possible labelsuffixes and accesskeysuffixes to
2266           ensure it is extensible and logical
2268 2005-10-28 14:57  davidfraser
2270         * convert/po2moz.py: handle locales that are just lang without the
2271           -region
2273 2005-10-28 14:55  davidfraser
2275         * convert/dtd2po.py: handle merging with .title as well as .label
2276           made list of possible labelsuffixes and accesskeysuffixes to
2277           ensure it is extensible and logical
2279 2005-10-28 12:36  davidfraser
2281         * storage/xpi.py: handle blank regions (which is now expected to be
2282           more common in ff 1.5 cvs etc) including a fix for an incorrect
2283           variable name...
2285 2005-10-28 12:03  davidfraser
2287         * storage/dtd.py: handle lines that we don't otherwise parse
2288           (non-entity, non-comment lines) this is neccessary for handling
2289           the %realBrandDTD; lines that happen with parameterized entries
2290           we just pass them straight through.  if such a line occurs after
2291           the last entity defined in the file, we uses a null dtdelement to
2292           represent it - we need to exclude this from the index
2294 2005-10-28 11:53  davidfraser
2296         * storage/dtd.py: handle <!ENTITY % brandDTD SYSTEM
2297           "chrome://branding/locale/brand.dtd"> (external entities in the
2298           XML spec) See http://www.w3.org/TR/REC-xml/#dt-extent Also allow
2299           dtd module to be run as a program that reads in a dtd and outputs
2300           it to stdout (useful for testing)
2302 2005-10-28 10:12  davidfraser
2304         * convert/: moz2po.py, po2moz.py: handle ini files that occur in
2305           firefox 1.5 xpis
2307 2005-10-28 10:01  davidfraser
2309         * storage/xpi.py: only cause problems when two or more
2310           file/directory names giving locale are found if they mismatch,
2311           and give some more details
2313 2005-10-26 09:56  davidfraser
2315         * storage/po.py: handle unicode in both parts of the comment merge
2317 2005-10-25 19:57  dwaynebailey
2319         * filters/autocorrect.py: Don't try and correct untranslated
2320           messages.
2322 2005-10-24 16:52  dwaynebailey
2324         * tools/pogrep.py: Allow unicode search strings.
2326 2005-10-19 11:28  davidfraser
2328         * storage/po.py: convert items to unicode if required for merge
2329           (untested)
2331 2005-10-18 18:06  dwaynebailey
2333         * filters/checks.py: Handle variables that have a numeric endmarker
2334           eg ('%', 1) I'm not sure if this actually ensures that they still
2335           work correctly but it does solve the problem of generating the
2336           error message for pofilter.  It was trying to create a string by
2337           concatanating str + int.  Now we elimiante the int.
2339 2005-10-18 17:04  davidfraser
2341         * CREDITS: Matthias Klose supplied some patches
2343 2005-10-18 15:51  davidfraser
2345         * convert/convert.py, convert/oo2po.py, convert/po2oo.py,
2346           storage/oo.py: addition of a long_keys option, to identify a
2347           translation across files. [Matthias Klose] add a multifile option
2348           with values "single" (the current behaviour), "toplevel",
2349           "onefile". Some files do contain only a few translations, and it
2350           makes sense to combine them. [Matthias Klose] modified the way
2351           the multifile option was passed in the above patch [David Fraser]
2353 2005-10-18 15:26  davidfraser
2355         * misc/optparse.py: fixed line-ending problem
2357 2005-10-11 10:12  davidfraser
2359         * storage/po.py: split at any blank line (so that DOS line endings
2360           are handled properly, gulp)
2362 2005-09-28 09:56  dwaynebailey
2364         * tools/pydiff.py: Messed up the workin of --contains in the last
2365           patches. This restores this option.
2367 2005-09-28 08:57  dwaynebailey
2369         * tools/pydiff.py: Added --accelerator option to allow you to
2370           ignore accelerator markers when identifying hunks using the
2371           --*contains options.
2373           This needs some refactoring.
2375 2005-09-28 08:48  dwaynebailey
2377         * tools/pydiff.py: Added -I option to ignore case when using
2378           --*contains options.
2380 2005-09-27 12:05  davidfraser
2382         * tools/pydiff.py: greatly enhanced version moved things to a
2383           class-based structure allow diffing directories, and recursive
2384           diffs enabled a few GNU diff options that are useful fixed a few
2385           minor bugs tried to make the output similar to GNU diff
2387 2005-09-26 18:26  davidfraser
2389         * tools/: pydiff, pydiff.py: added pydiff tool
2391 2005-09-19 19:46  dwaynebailey
2393         * storage/po.py: Add pofilter as a type of review marker.  This
2394           means that pofilter comments ie "# (pofilter)" are now considered
2395           as the same as "# (review)"
2397 2005-09-10 00:56  dwaynebailey
2399         * filters/checks.py: handle single unicode string messages properly
2400           in FilterFailure
2402 2005-09-09 13:48  dwaynebailey
2404         * filters/: checks.py, pofilter.py: added check for invalid
2405           characters that uses a file to read in the list of valid
2406           characters
2408 2005-09-08 16:25  dwaynebailey
2410         * convert/csv2po.py: improve the error messages when entry can't be
2411           found
2413 2005-09-08 11:25  dwaynebailey
2415         * filters/checks.py: have more helpful error messages for
2416           untranslated, notranslatewords and musttranslatewords
2418 2005-09-08 11:14  dwaynebailey
2420         * filters/pofilter.py: include previous pofilter commented entries
2421           as needing review
2423 2005-09-08 10:32  dwaynebailey
2425         * filters/pofilter.py: use thepo.isreview so we pick up new #
2426           (review) style comments too added some fancy code to convert
2427           oldstyle #, review messages to new style # (review) also don't
2428           add a # (pofilter) message for review checks # (pofilter)
2429           messages should go in othercomments, not visiblecomments
2431 2005-09-08 09:53  dwaynebailey
2433         * storage/po.py: added ability to check for marked comments that
2434           pofilter now produces rather than flags these will be of the form
2435           # (commentmarker) detect # (review) as a review marker
2437 2005-09-08 09:01  dwaynebailey
2439         * filters/checks.py: added helpful error message for escapes error,
2440           make it a SeriousFilterFailure
2442 2005-09-08 08:54  dwaynebailey
2444         * filters/: checks.py, pofilter.py: added the ability to
2445           distinguish between normal filter failures and serious ones that
2446           should mark a message as being fuzzy (so at the moment only
2447           variable errors will make a message fuzzy) adjusted run_filters
2448           to return lists of filtername, message_or_exception rather than
2449           just a comment changed format of filter comments from #_
2450           filtername: message to # (pofilter) filtername: message to make
2451           them more easily detectable
2453 2005-09-08 08:26  dwaynebailey
2455         * filters/autocorrect.py: added autocorrects for space, end
2456           punctuation, initial caps
2458 2005-09-07 23:07  dwaynebailey
2460         * filters/: checks.py, pofilter.py: rearranged the way we pass
2461           options into pocheckfilter, pass the whole options object
2462           rather...  added language option for spellchecker added
2463           spellchecking code which can use either enchant (fast, by
2464           default) or jToolkit.spellchecker (slow) make sure we handle
2465           unicode properly in FilterFailure messages raise errors in
2466           filters directly (easier for testing) improve brackets message
2467           using FilterFailure make acronyms ignore variable names
2469 2005-09-07 21:11  dwaynebailey
2471         * filters/: autocorrect.py, pofilter.py: changed ellipsis
2472           autocorrect to handle it anywhere in the string use the more
2473           correct unquotefrompo / quoteforpo to do autocorrect (we should
2474           use this for checks too later)
2476 2005-09-07 20:39  dwaynebailey
2478         * filters/: autocorrect.py, pofilter.py: added an autocorrect mode
2479           which has some predefined autocorrects that it will output to the
2480           results to in autocorrect mode, the standard comments etc will
2481           not be added and the entries will only be output if an
2482           autocorrect succeeds so far there is just one autocorrect
2483           defined, for ellipsis...
2485 2005-09-07 15:37  dwaynebailey
2487         * filters/checks.py: added FilterFailure exception class. This can
2488           be used to produce custom error messages Basically instead of
2489           returning False from the test, you raise a FilterFailure that you
2490           pass a message or list of messages adjusted accelerators and
2491           variables checks to produce intelligent messages using the
2492           FilterFailure class added notranslatewords and musttranslatewords
2493           to the filter for untranslated added Yet Another Variable Style
2494           for OpenOffice ($ATTRIBUTENAME in svx/source/form.po)
2496 2005-09-07 13:36  dwaynebailey
2498         * filters/: checks.py, pofilter.py: made musttranslate and
2499           notranslate case sensitive as they are often used for product
2500           names etc
2502 2005-09-07 13:31  dwaynebailey
2504         * convert/csv2po.py, convert/po2csv.py, storage/csvl10n.py: added
2505           support for --columnorder switches in csv2po and po2csv which
2506           allow you to alter the order of columns by default the order is
2507           source,msgid,msgstr but you can change this and skip columns by
2508           using dummy column names
2510 2005-09-05 21:38  dwaynebailey
2512         * filters/checks.py: Added another OpenOffice style test ("[", "]")
2513           - this appears in the MSI installer.  Am worried that this might
2514           cause too many false positives.  But lets see.  Ideally you
2515           should be able to set the variable styles in the POT header (or
2516           OOo should rationalise their variable styles).  (PPS: they use
2517           both ~ and & as accelerators in this file... dumb dumb dumb)
2519 2005-09-05 17:37  davidfraser
2521         * storage/po.py: make the unicode error clearer by reporting the
2522           line number too...
2524 2005-08-31 15:39  dwaynebailey
2526         * tools/poconflicts.py: Add --invert (-v) - this swaps the msgid
2527           and msgstr for the conflict comparison this allowing us to
2528           extract destination words that were used to translate different
2529           source words.  Most are OK but a few will be usuability issues.
2531 2005-08-24 18:40  davidfraser
2533         * tools/poconflicts.py: removed old reduction methods added simple
2534           plural conflation
2536 2005-08-24 17:12  davidfraser
2538         * tools/poconflicts.py: tried to improve the algorithm for grouping
2539           conflicts - now uses the longest word in the msgid (other
2540           algorithm commented out)
2542 2005-08-24 14:24  davidfraser
2544         * tools/poconflicts.py: fixed help string and added description of
2545           operation handle trailing - in flatmsgid for filename, use
2546           "conflicts.po" if its empty
2548 2005-08-24 14:14  davidfraser
2550         * tools/: poconflicts, poconflicts.py: added po conflict detection
2551           tool
2553 2005-08-24 11:44  davidfraser
2555         * filters/pofilter.py: added must translate / no translate
2556           commandline options
2558 2005-08-17 15:24  davidfraser
2560         * filters/: checks.py, test_checks.py: renamed untranslatablewords
2561           to notranslatewords and added musttranslatewords (the logical
2562           opposite) added test and extended tests slightly
2564 2005-08-17 15:06  davidfraser
2566         * filters/: checks.py, test_checks.py: realized the logic for the
2567           untranslatable test was the wrong way round...
2569 2005-08-17 14:48  davidfraser
2571         * filters/checks.py: more sane way to do customization for projects
2572           (update config rather than overwriting it)
2574 2005-08-17 12:36  davidfraser
2576         * filters/: checks.py, pofilter.py, test_checks.py: separated out
2577           checker configuration into its own object (to allow user config
2578           read from files later...) moved untranslatablewords into checker
2579           configuration ignore untranslated test if no untranslatablewords
2580           adjusted derived classes, test accordingly
2582 2005-08-17 12:15  davidfraser
2584         * filters/: checks.py, test_checks.py: added "stopwords"
2585           (untranslatable words) - list needs to be made configurable added
2586           first py.test based tests on checks (currently just tests
2587           construction and stopwords)
2589 2005-08-03 23:17  dwaynebailey
2591         * convert/convert.py, misc/optrecurse.py: All command line options
2592           that can take a value from a predefined list now list the valid
2593           values.
2595 2005-07-28 19:40  dwaynebailey
2597         * convert/: dtd2po.py, oo2po.py, prop2po.py: Add
2598           X-Accelerator-Marker to the PO header.  This is the preliminary
2599           to embeding more of this info in the PO file header and allowing
2600           tools like pofilter and Pootle to use that information to manage
2601           checking and accelerator highlighting.
2603 2005-07-02 22:51  davidfraser
2605         * convert/: po2ts.py, po2xliff.py: make sure po2xxx.convertfile
2606           works with a single pofile parameter for input for consistency
2608 2005-07-01 21:14  davidfraser
2610         * __init__.py, __version__.py, convert/__init__.py,
2611           convert/convert.py, convert/csv2po.py, convert/dtd2po.py,
2612           convert/html2po.py, convert/moz2po.py, convert/mozfunny2prop.py,
2613           convert/nb2po.py, convert/oo2po.py, convert/po2csv.py,
2614           convert/po2dtd.py, convert/po2html.py, convert/po2moz.py,
2615           convert/po2nb.py, convert/po2oo.py, convert/po2prop.py,
2616           convert/po2tmx.py, convert/po2ts.py, convert/po2txt.py,
2617           convert/po2xliff.py, convert/poreplace.py, convert/pot2po.py,
2618           convert/prop2mozfunny.py, convert/prop2po.py, convert/sxw2po.py,
2619           convert/ts2po.py, convert/txt2po.py, convert/xliff2po.py,
2620           filters/__init__.py, filters/checks.py, filters/decoration.py,
2621           filters/helpers.py, filters/prefilters.py, misc/__init__.py,
2622           misc/csv.py, misc/dictutils.py, misc/optparse.py,
2623           misc/optrecurse.py, misc/progressbar.py, misc/quote.py,
2624           misc/setup.py, misc/sparse.py, misc/textwrap.py,
2625           misc/wStringIO.py, misc/xmlwrapper.py, misc/zipfileext.py,
2626           storage/__init__.py, storage/csvl10n.py, storage/dtd.py,
2627           storage/html.py, storage/oo.py, storage/po.py,
2628           storage/properties.py, storage/tmx.py, storage/ts.py,
2629           storage/xliff.py, storage/xpi.py, tools/__init__.py,
2630           tools/pocompile.py, tools/pocount.py, tools/podebug.py,
2631           tools/pogrep.py, tools/pomerge.py: made all files python source
2632           encoding marked as utf-8 [Simos Xenitellis] also fixed a
2633           #!/usr/bin/python -> env python
2635 2005-06-30 21:14  dwaynebailey
2637         * tools/pocount.py: Added totals fro CSV mode.  Mainly so that you
2638           can easily use the data in bash scripts instead of having to
2639           calculate it.
2641 2005-06-30 21:00  dwaynebailey
2643         * convert/po2ts.py: Work with only po class within the conversion
2644           class and move filehandling to outside the class.  This means we
2645           can use the po2ts class in Pootle while still allowing the
2646           command line po2ts to work.
2648 2005-06-28 21:11  davidfraser
2650         * storage/po.py: use dictionary utilities to ensure that any new
2651           items that are not already present will be ordered the same as
2652           header_order
2654 2005-06-28 19:55  davidfraser
2656         * storage/po.py: changed default headers and added header_order
2657           element
2659 2005-06-28 19:39  davidfraser
2661         * storage/po.py: improvements to header generation:   added
2662           x_generator which can be overridden in a derived class (e.g. for
2663           Pootle)   changed all makeheader arguments to be
2664           key.lower().replace("-", "_") for consistency   adjust kwargs to
2665           makeheader, updateheader to be titlecase if lowercase   deal with
2666           header arguments case-insensitively   made parseheader use an
2667           ordered dictionary so they come out in the same order they went
2668           in   in updateheader, add a header element if one isn't present
2670 2005-06-28 19:29  davidfraser
2672         * convert/pot2po.py: renamed all header variables to be aligned
2673           with the real header name parameters to makeheader have changed
2674           like this so it makes it easier
2676 2005-06-28 19:28  davidfraser
2678         * misc/dictutils.py: added dictutils for case-insensitive and
2679           ordered dictionaries
2681 2005-06-14 18:21  davidfraser
2683         * convert/prop2mozfunny.py: ignore comments that get inserted by
2684           mozfunny2prop (header describing file type) po2inc also needs to
2685           convert template
2687 2005-06-14 18:16  davidfraser
2689         * convert/prop2mozfunny.py: templates file needs to be converted to
2690           properties as well
2692 2005-06-14 18:08  davidfraser
2694         * convert/: moz2po.py, po2moz.py: convert funny mozilla files from
2695           CVS as well
2697 2005-06-14 18:07  davidfraser
2699         * convert/: mozfunny2prop.py, prop2mozfunny.py: added po conversion
2700           methods as well using prop2po / po2prop and fake file objects
2701           using wStringIO (also rename define to inc in function names,
2702           make a main function)
2704 2005-06-14 16:11  davidfraser
2706         * convert/: mozfunny2prop.py, prop2mozfunny.py: moved encoding
2707           parameter to function option (not yet commandline)
2709 2005-06-14 16:05  davidfraser
2711         * convert/: mozfunny2prop.py, prop2mozfunny.py: implemented the
2712           neccessary encoding conversions note that cp1252 is assumed for
2713           .it files - this should be made an option, its defined in
2714           charset.mk
2716 2005-06-14 15:46  davidfraser
2718         * convert/: mozfunny2prop.py, prop2mozfunny.py: converted from
2719           little scripts to having proper methods etc
2721 2005-06-14 15:26  davidfraser
2723         * convert/xliff2po.py: the fuzzy flag is set if it was marked fuzzy
2724           in the XLIFF [Fredrik Corneliusson]
2726 2005-06-14 15:24  davidfraser
2728         * storage/xliff.py: patches from Fredrik Corneliusson:   use a
2729           getText method to get text recursively rather than assuming its
2730           at the top level   handle there being no target translationnode
2732 2005-06-09 20:13  dwaynebailey
2734         * storage/po.py: nplural => nplurals to prevent confusion in the
2735           variable names
2737           Also convert nplurals to an integer if it is currently a string
2739 2005-06-09 20:04  dwaynebailey
2741         * storage/po.py: Change header creation strftime format string: %F
2742           does not exist on the windows implementation so convert to
2743           %Y-%m-%d which is equivalent.
2745           %z also does not exist but am not sure how to change that.  The
2746           problem is that windows uses %Z instead which is the text based
2747           time zone desrtiptor.  This would be OK except that localised
2748           Windows (ie Javier's Spanish one) uses non UTF-8 chars to
2749           describe it which of course makes the whole file barf.  So either
2750           be drop %z on Windows platforms or we work out how to escape the
2751           text in the correct charset.
2753 2005-06-08 14:16  dwaynebailey
2755         * filters/TODO: New filter for checking for double caps issues Eg.
2756           SLOw RElease of CAps LOck
2758 2005-05-14 16:57  dwaynebailey
2760         * convert/po2xliff.py: For now skip plural messages.
2762 2005-05-14 16:55  dwaynebailey
2764         * convert/TODO: Note plural handling problem in CSV and XLIFF
2766 2005-05-14 16:52  dwaynebailey
2768         * storage/po.py: Handle the case where there is no Plural-Form
2769           correctly
2771 2005-05-07 11:48  davidfraser
2773         * storage/po.py: allowed setting an elementclass for a pofile,
2774           which will use that class - default is still poelement also made
2775           copy method use the actual class of the object (this allows
2776           pootlefile to use a derived pootleelement)
2778 2005-05-06 11:42  davidfraser
2780         * storage/po.py: if msgid is plural, include plural in msgidlen
2782 2005-05-06 10:14  davidfraser
2784         * storage/po.py: when unquoting from po, if first line is blank
2785           then don't join with line break
2787 2005-04-28 10:33  dwaynebailey
2789         * convert/po2xliff.py: Move the file parsing out of convertor into
2790           convertpo.  This will allow us to use the XLIFF convertor in
2791           Pootle.
2793 2005-04-26 14:58  dwaynebailey
2795         * storage/po.py: Escape \t correctly - might need to consider
2796           others such as \v, etc but did this on an as needed basis.  Only
2797           update the header if there is already an entry by that name
2798           present or iff you specify the add flag.
2800 2005-04-21 16:47  davidfraser
2802         * storage/xpi.py: adjusted findlangreg to be able to detect locale
2803           / region on the jar name this is because the latest Firefox
2804           structure expects the jars to contain locale/xxx rather than
2805           locale/en-US/xxx etc reported by Richard Allen
2807 2005-04-21 11:32  davidfraser
2809         * __version__.py: version 0.8rc3
2811 2005-04-21 11:23  davidfraser
2813         * tools/: ooo_languageselector.png, ooswitchlang, ooswitchlang.ico:
2814           removed ooswitchlang tool as its obsolete for OOo 2.x and can
2815           always be retrieve from CVS :-)
2817 2005-04-20 14:43  davidfraser
2819         * CREDITS: removed pootle-specific credits (moved to
2820           Pootle/CREDITS)
2822 2005-04-20 12:47  davidfraser
2824         * convert/oo2po.py: updated oo2po to use a similar command-line
2825           syntax to po2oo (NOTE: this requires changes to scripts!) require
2826           a targetlanguage if not producing POTs set the source language as
2827           English if not supplied (using existing languages to calculate
2828           1.x/2.x) don't operate without languages any more, improve error
2829           detection and reporting
2831 2005-04-20 12:36  davidfraser
2833         * convert/convert.py: added verifyoptions hook for global
2834           verifications that you don't want to fail on every file (see next
2835           commit to oo2po)
2837 2005-04-20 12:33  davidfraser
2839         * storage/oo.py: collect all the different languageids present in
2840           the oofile
2842 2005-04-19 23:40  dwaynebailey
2844         * filters/checks.py: Added $[blah] variable type
2846 2005-04-18 23:36  dwaynebailey
2848         * filters/checks.py: OpenOffice has yet another variable style -
2849           ($...) of course itm might be a $... within () but it appeard not
2850           to be :(.
2852 2005-04-14 11:20  davidfraser
2854         * misc/optrecurse.py: added ability for commands to produce man
2855           pages with --manpage option make sure the usetemplates errors
2856           don't produce an error when trying to make an error (if inputext
2857           and templateext are both None)
2859 2005-04-14 09:08  davidfraser
2861         * storage/po.py: initialize newcharsetline properly if no charset
2862           found in charsetline (thanks pychecker)
2864 2005-04-13 17:38  davidfraser
2866         * convert/: oo2po.py, po2oo.py: vastly improve the language
2867           handling code rather than assume lines are in the correct order
2868           in po2oo, only add lines for a language if a translation is
2869           present set the language correctly by requiring the language code
2870           (and improving the options setup) now renumberdest is not needed
2871           added a sourcelanguage option as well for people who want to use
2872           French etc for msgid
2874 2005-04-05 22:01  davidfraser
2876         * CREDITS: added credit to Fredrik Corneliusson for xliff work
2878 2005-04-05 22:00  davidfraser
2880         * CREDITS: added SVG logo for Pootle from Lucas Veietes
2882 2005-04-04 09:41  davidfraser
2884         * convert/po2xliff.py: support placeholder (variable) markup, and
2885           speed up xliff element generation [Fredrik Corneliusson]:
2886           > I've changed so that placeholders such as %s gets marked up
2887           with
2888           > ph(placeholder) tags. It also sets the translated attribute and
2889           fuzzy
2890           > state when appropriate.
2892           > As I found the xliff2po script to be extremely slow
2893           > (minutes for common po file) I made addtransunit method a
2894           little less
2895           > naive so it's now a matter of seconds for the same po file.
2897 2005-04-04 09:39  davidfraser
2899         * storage/xliff.py: made prettification of xml an option [Fredrik
2900           Corneliusson]:
2901           > I also had to chang so prettyprint in the storage/xliff.py
2902           getxml
2903           > method is optional as I don't want to get whitespace into the
2904           > translation units.
2906 2005-03-29 20:46  dwaynebailey
2908         * storage/po.py: Add getheaderplural() to retrieve the plural-forms
2909           header values
2911 2005-03-29 19:22  davidfraser
2913         * convert/po2oo.py: don't print out an error on language code
2914           switch if line doesn't have any text (Pavel's request)
2916 2005-03-22 08:17  dwaynebailey
2918         * storage/po.py: If there is no header then don't update any header
2919           items. Don't even try to create a header.
2921 2005-03-21 20:12  dwaynebailey
2923         * storage/po.py: Added a method to update the Plural-Forms header
2925 2005-03-19 12:01  dwaynebailey
2927         * convert/po2tmx, convert/po2tmx.py, storage/tmx.py: po2tmx allows
2928           us to convert PO files to TMX (Translation Memory eXchange)
2929           format.  This format is designed to allow the sharing of TM data.
2931           This implementation is beta alpha quality and has been sitting
2932           neglected on my harddrive.  It is probably better that it move to
2933           a new home where someone can take good care of it.
2935           The TMX files it builds are probably wrong.  But at least if
2936           people can test it then we can begin correcting errors.
2938           setup.py now includes a new section for installing beta software.
2939            Thus po2tmx will not be installed by default but requires:
2941             installbeta = True
2943           Enjoy!
2945 2005-03-18 18:51  davidfraser
2947         * storage/csvl10n.py: handle plain and unicode strings in cvsl10n
2949 2005-03-18 16:19  dwaynebailey
2951         * storage/po.py: Remove some debugging code
2953 2005-03-18 16:01  dwaynebailey
2955         * storage/po.py: POT-Creation-Date now has correct timezone
2956           information.  Same will apply to PO-Revision-Date if it is set.
2957           Will probably still have problems if you set creationdate or
2958           revisiondate to a time object.
2960 2005-03-18 14:23  davidfraser
2962         * storage/po.py: FIXED: copy wasn't copying the constituent
2963           elements (was shallow), so altering the copied element altered
2964           the original
2966 2005-03-15 15:29  davidfraser
2968         * tools/pocompile.py: add an encoding header so Python doesn't
2969           issue a warning about Martin Loewis with a fancy o
2971 2005-03-14 14:47  dwaynebailey
2973         * storage/csvl10n.py: Create the dictionary using UTF-8 encoding.
2974           This eliminates crashes on Unicode.  This should probably
2975           inteligently determine the output encoding.  Either from the PO
2976           header or a command line options.  But utf-8 is probably all we
2977           need.
2979 2005-03-14 00:39  dwaynebailey
2981         * storage/po.py: Update arbitrary PO header items.
2983 2005-03-11 17:09  dwaynebailey
2985         * tools/: pocompile, pocompile.py: We can now compile PO files into
2986           MO (Machine Object) files that can actually be used on a users
2987           machine.  The main reason for this is so that Pootle can have the
2988           option of creating MO files for users to download and install.
2990 2005-03-02 07:54  dwaynebailey
2992         * filters/TODO: pofilter - sees %s %s as a doubleword
2994 2005-03-01 16:22  dwaynebailey
2996         * tools/TODO: Some pocount bugs
2998 2005-03-01 14:15  dwaynebailey
3000         * tools/pocount.py: Use --csv to output counts in Comma Seperated
3001           Value format for import into a spreadsheet.
3003 2005-02-28 17:30  davidfraser
3005         * convert/po2oo.py: handle unicode strings coming from the PO file
3006           (encode as UTF-8)
3008 2005-02-28 16:55  davidfraser
3010         * storage/oo.py: handle unicode filenames within oo file
3012 2005-02-25 10:28  dwaynebailey
3014         * filters/checks.py: Remove accelerators before checking capitals.
3016 2005-02-25 09:44  dwaynebailey
3018         * convert/TODO: Wish for --no-wrap to prevent lines being broken
3019           when creating the PO file.  Mainly to help localisaers who will
3020           use CAT tools which can't segment across line breaks.
3022 2005-02-21 10:52  davidfraser
3024         * convert/prop2mozfunny.py: fixed up handle of unicode in funny
3025           mozilla files
3027 2005-02-18 22:04  davidfraser
3029         * storage/po.py: POT files contain CHARSET as a placeholder for the
3030           encoding, we need to ignore it (this could be improved to map
3031           CHARSET to None)
3033 2005-02-18 21:48  davidfraser
3035         * convert/: mozfunny2prop.py, prop2mozfunny.py: added tools for
3036           handling funny .inc / .it files from firefox CVS (very primitive)
3038 2005-02-18 20:56  davidfraser
3040         * convert/po2dtd.py, misc/quote.py, storage/dtd.py: fixed up
3041           quoting in dtds (would give problems with both " and ' in the
3042           string) the correct way to do this is to use a &apos; for the '
3043           (if quoting with ') or a &quot; for the " (if quoting with ") see
3044           http://www.w3.org/TR/2004/REC-xml11-20040204/#NT-EntityValue and
3045           #syntax also encode the line if it comes out as unicode in
3046           tolines fixed up general logic for eitherquotestr so it will
3047           escape normally (though that's not whats wanted for dtds)
3049 2005-02-17 20:05  davidfraser
3051         * convert/: po2dtd.py, po2prop.py: since po module now decodes
3052           strings to unicode we don't need to decode them ; still do if str
3053           incase
3055 2005-02-17 19:54  davidfraser
3057         * storage/po.py: handle missing encoding when encoding / decoding
3058           (we have to have one on encoding, just ignore on decoding)
3060 2005-02-17 19:30  davidfraser
3062         * storage/po.py: added code to encode / decode PO files based on
3063           the encoding specified in their header, rather than hard-coding
3064           UTF-8
3066 2005-02-10 21:07  dwaynebailey
3068         * storage/po.py: Added missing header entries: Report-Msgid-Bugs-To
3069           and Plural-Forms
3071 2005-02-04 15:34  davidfraser
3073         * storage/ts.py: silly variable naming fix rearrangement make sure
3074           getmessagetranslation only gets one node
3076 2005-02-04 15:04  davidfraser
3078         * storage/ts.py: still need to catch the helper function for some
3079           reason
3081 2005-02-04 14:57  davidfraser
3083         * storage/ts.py: rather than having funny helper function names,
3084           set up the helper methods as normal functions added an index on
3085           message source per context node, to speed up searching
3087 2005-02-04 14:46  davidfraser
3089         * storage/ts.py: added new clever helper for searching elements by
3090           tagname (it takes advantage of the structure of the xml file, you
3091           say what parents to search under) added that as
3092           .searchElementsByTagName on Document and Elements within minidom
3093           moved helper functions out of QtTsParser, they really are
3094           functions use the search function to speed up finding things
3096 2005-02-04 14:07  davidfraser
3098         * storage/ts.py: added faster helper for getElementsByTagName that
3099           uses iterator added getFirstElementByName that knows how to take
3100           advantage of this in the common case of just getting one child
3101           taught getnodetext to handle None
3103 2005-02-04 08:11  davidfraser
3105         * convert/ts2po.py: use markfuzzy to do fuzzy marking consistently
3106           also don't mark blank unfinished messages as fuzzy
3108 2005-02-04 07:30  davidfraser
3110         * convert/ts2po.py, storage/ts.py: renamed getmessageattributes to
3111           getmessagetype, and changed type/msgtype variables to transtype
3113 2005-02-04 07:26  davidfraser
3115         * storage/ts.py, convert/po2ts.py: added default comment value of
3116           None to addtranslation
3118 2005-02-04 07:23  davidfraser
3120         * convert/po2ts.py, storage/ts.py: removed TODO for adding
3121           translation types renamed type to transtype and added default
3122           value of None (no type)
3124 2005-02-04 07:17  davidfraser
3126         * convert/ts2po.py, CREDITS, convert/po2ts.py, storage/ts.py:
3127           [Marek Wieckowski] added support for comments, and types in ts
3128           files - "obsolete" and "unfinished" patch received on
3129           translate-devel, Fri, 4 Feb 2005 05:51:16 +0100 (CET)
3131 2005-02-02 13:54  davidfraser
3133         * convert/po2xliff.py: handle missing line numbers properly
3135 2005-02-02 13:44  davidfraser
3137         * convert/po2xliff.py: added messages_%d id to new trans-unit nodes
3139 2005-02-02 13:37  davidfraser
3141         * convert/po2xliff.py, storage/xliff.py: added PoXliffParser
3142           derived from XliffParser to handle po-guide specific things use
3143           this to put translations in body element made XliffParser derive
3144           from object so it is a new-style class added XliffParser method
3145           for creating filenode so it can be overridden
3147 2005-02-02 13:24  davidfraser
3149         * convert/po2ts.py, storage/ts.py: _write_data should really be
3150           minidom._write_data, and a comment fix
3152 2005-02-02 13:10  davidfraser
3154         * storage/xliff.py, convert/po2xliff.py, convert/xliff2po.py: got
3155           po2xliff working in initial form misc changes: fixed up call to
3156           minidom._write_data in xliff added method to add a transunit node
3157           fixed up getnodetext to handle null Text too fixed up
3158           getting/setting of attributes
3160 2005-02-02 12:07  davidfraser
3162         * storage/xliff.py, convert/po2xliff, convert/po2xliff.py,
3163           convert/xliff2po, convert/xliff2po.py: added initial xliff
3164           support base on ts code
3166 2005-01-19 20:29  davidfraser
3168         * tools/pogrep.py: handle po entries that have a plural msgid but
3169           not a plural msgstr (this should really be fixed elsewhere)
3171 2005-01-19 20:12  davidfraser
3173         * storage/po.py: removed erroneous .msgid
3175 2005-01-19 20:06  davidfraser
3177         * storage/oo.py: raise a clearer error if a line doesn't contain
3178           enough tabs to determine the module
3180 2005-01-19 20:01  davidfraser
3182         * convert/oo2po.py, convert/po2oo.py, storage/po.py: moved and
3183           refactored po string quoting / unquoting functions from
3184           convert/oo2po,po2oo to storage/po adjusted getunquotedstr to pass
3185           parameters when used on a plural string entry, added TODO to
3186           refactor it we now have quoteforpo and unquotefrompo as fairly
3187           good symettrical quote/unquote functions getunquotedstr calls
3188           should be replaced with calls to unquotefrompo and tested where
3189           practical
3191 2005-01-19 12:56  davidfraser
3193         * filters/decoration.py: implement more careful check for degrees
3194           sign using unicode, fail gracefull if not utf-8
3196 2005-01-19 12:39  davidfraser
3198         * filters/: checks.py, pofilter.py: added support for giving a
3199           custom errorhandler to a TranslationChecker rather than raising
3200           an error on any error in the filter
3202 2005-01-11 23:28  dwaynebailey
3204         * tools/TODO: Two bugs related to obsolete messages have been fixed
3206 2005-01-11 00:14  dwaynebailey
3208         * storage/po.py: Wrong indent caused only one line of the obsolete
3209           message to be output
3211 2005-01-11 00:11  dwaynebailey
3213         * tools/pocount.py: Ignore obsolete messages: do not count them as
3214           untranslated.
3216 2005-01-11 00:00  dwaynebailey
3218         * storage/po.py: Now store obsolete messages seperately from other
3219           comments.  Added isobsolete() function.
3221           Now fuzzy obsolete messages are not made not fuzzy during a
3222           pomerge.
3224           Should probably eventually actually read the msgid and msgstr
3225           contents of the obsolete message for doing machine assisted
3226           translations.
3228 2005-01-06 17:00  dwaynebailey
3230         * README: Made Python 2.3 the recommended environment.
3232 2005-01-06 14:52  dwaynebailey
3234         * filters/TODO: Suggested file level checks
3236 2005-01-06 14:08  dwaynebailey
3238         * filters/checks.py: Added doublewords check.  This will find
3239           occurances of "the the" in translations, most of these we assume
3240           are in fact wrong.
3242 2005-01-06 02:37  dwaynebailey
3244         * tools/pocount.py: Always provide a total if more than one file is
3245           counted whether the input is a file(s) or a directory.  We also
3246           now provide a total of the number of files counted.
3248 2005-01-05 19:35  dwaynebailey
3250         * filters/TODO: Some bugs identified
3252 2005-01-05 15:01  dwaynebailey
3254         * filters/checks.py: Validated all filters that need a precondition
3255           untranslated check.  Added: brackets, filepaths, isfuzzy and
3256           isreview Removed: long, short And any others for which I couldn't
3257           create a test.
3259 2005-01-05 14:15  dwaynebailey
3261         * filters/checks.py: Add compendiumconflicts as a precondition for
3262           a number of tests.  This will prevent many false positives:
3263           errors identified but actually caused because of the compendium
3264           conflict syntax.
3266 2005-01-03 10:00  dwaynebailey
3268         * tools/TODO: Bug pomerge removes fuzzy markers from obsolete
3269           messages
3271 2005-01-03 09:56  dwaynebailey
3273         * filters/TODO: More pofilter wishes
3275 2005-01-02 14:43  dwaynebailey
3277         * filters/checks.py: Add setencecount to untranslated precondition
3279 2005-01-01 11:13  dwaynebailey
3281         * filters/checks.py: Minor formating fix
3283 2005-01-01 11:05  dwaynebailey
3285         * filters/: TODO, checks.py: Added startcaps which checks to see
3286           that the starting letter is correctly capitalised.  It is more
3287           specific then simplecaps, avoids confusion for the person
3288           checking and picks up a few that simplecaps misses.
3290           It does not correctly handle locale info about valid capitals.
3292 2004-12-31 17:18  dwaynebailey
3294         * README: The toolkit does more but we need to tell people that.
3295           pofilter has more checks and of course we have ts2po and html2po
3296           and pot2po.
3298 2004-12-20 12:24  davidfraser
3300         * filters/checks.py: if exceptions happen in a filter, show some
3301           information about what happened (and the strings)
3303 2004-12-17 23:03  davidfraser
3305         * convert/TODO: added ideas from Pavel on IRC
3307 2004-12-17 16:20  dwaynebailey
3309         * convert/TODO: po2dtd apersand checks don't give you good info as
3310           to wherre exactly the error occurs.
3312 2004-12-17 11:43  dwaynebailey
3314         * convert/TODO: Added TODO about installing docs in the right place
3315           on Linux
3317 2004-12-17 09:19  dwaynebailey
3319         * README: Credit Javer as a docs copyright holder.  Caveat about
3320           quoted emails
3322 2004-12-16 19:04  davidfraser
3324         * CREDITS: added some more credits
3326 2004-12-16 18:59  davidfraser
3328         * convert/: pot2po, pot2po.py: added simple pot2po tool
3330 2004-12-16 18:41  davidfraser
3332         * storage/po.py: added lots more options to makeheader (to enable
3333           it to make PO headers as well as POT ones) added a parseheader
3334           function
3336 2004-12-16 11:52  dwaynebailey
3338         * filters/TODO: Spelling test wish
3340 2004-12-16 11:49  dwaynebailey
3342         * tools/TODO: Added bug: pocount counts obsolete messages as
3343           untranslated
3345 2004-12-16 09:44  dwaynebailey
3347         * filters/: TODO, checks.py: Added xmltags test that checks that
3348           the tags in msgid == msgstr.  This will catch missing tags and
3349           translated tags.  If tags cover the full length of the msgid then
3350           we assume it is something like "<Error>" and skip it as you are
3351           unlikely to find a proper XML/HTML tag on its own.
3353 2004-12-16 09:39  dwaynebailey
3355         * filters/TODO: Gettext conflicts are marked fuzzy so by using
3356           --nofuzzy you can skip them.
3358 2004-12-14 23:32  dwaynebailey
3360         * filters/pofilter.py: Now correctly ignore reviews with --noreview
3361           Also ensured that the default is to include revies and fuzzies
3363 2004-12-14 23:26  dwaynebailey
3365         * filters/pofilter.py: Correctly ignore fuzzy messages when using
3366           --nofuzzy
3368 2004-12-14 22:15  davidfraser
3370         * convert/: dtd2po.py, moz2po.py, prop2po.py: added duplicates
3371           option to moz2po, dtd2po and prop2po
3373 2004-12-14 22:09  davidfraser
3375         * convert/: convert.py, oo2po.py: added new add_duplicates_option
3376           to ConvertOptionParser so we can share it between different
3377           scripts
3379 2004-12-14 21:56  davidfraser
3381         * convert/: po2dtd.py, po2moz.py, po2prop.py: use add_fuzzy_option
3382           to simplify life. also added to po2moz (using the underlying
3383           functions it should all work)
3385 2004-12-14 21:53  davidfraser
3387         * convert/: convert.py, po2oo.py: made add_fuzzy_option on
3388           ConvertOptionParser so we don't duplicate work ...
3390 2004-12-14 21:39  dwaynebailey
3392         * convert/po2prop.py: And now po2prop can ignore fuzzy entries
3393           also.
3395 2004-12-14 21:11  dwaynebailey
3397         * convert/po2dtd.py: po2dtd can now also ignore PO messages marked
3398           as fuzzy
3400 2004-12-14 18:40  davidfraser
3402         * convert/TODO: have fixed double escaping.  clarified oo output
3403           order TODO
3405 2004-12-14 18:31  davidfraser
3407         * convert/oo2po.py: added --duplicates option which specifies
3408           whether to merge duplicates (previous default behaviour),
3409           generate unique msgid_comments when required (or all the time),
3410           or keep them also added option to specify nonrecursive input
3412 2004-12-14 18:26  davidfraser
3414         * storage/po.py: added ability to specify different 'style's for
3415           handling duplicates this includes adding a unique kde-comment
3416           into the msgid if required (msgid_comment), or all the time
3417           (msgid_comment_all), merging it (the previous behaviour, and the
3418           default - merge), and ignoring them (keep)
3420 2004-12-14 17:49  davidfraser
3422         * convert/po2oo.py: make sure that includefuzzy still produces
3423           strings if there is no translation in the templatefile made
3424           includefuzzy an attribute of reoo so that it doesn't have to be
3425           passed around everywhere
3427 2004-12-14 15:12  davidfraser
3429         * convert/po2moz.py: adjusted to new isarchive syntax (which checks
3430           which field its for)
3432 2004-12-14 14:13  dwaynebailey
3434         * filters/: TODO, checks.py: sentencecount - counts the number of
3435           fullstops to see that they match. Ie a simple sentence counter.
3437 2004-12-14 12:38  davidfraser
3439         * convert/po2dtd.py: do a decode/encode using UTF-8 when getting
3440           label / accesskey, so that multibyte unicode characters are
3441           handled correctly
3443 2004-12-14 12:34  davidfraser
3445         * convert/dtd2po.py: changed decoding syntax to be more consistent
3446           with the rest of the code
3448 2004-12-14 12:29  davidfraser
3450         * convert/: dtd2po.py, po2dtd.py: added a mention that the DTD
3451           files have to be in UTF-8 to the doc strings
3453 2004-12-14 12:26  dwaynebailey
3455         * filters/TODO: Added some TODO items
3457 2004-12-14 12:12  davidfraser
3459         * convert/dtd2po.py: Handle non-Ascii unicode accesskeys [Filip
3460           Miletic]
3462 2004-12-14 11:51  davidfraser
3464         * CREDITS: Added Credits
3466 2004-12-13 18:43  davidfraser
3468         * convert/po2oo.py: added includefuzzy option that specifies
3469           whether or not to use fuzzy translations. turned off by default
3470           (this is a change)
3472 2004-12-13 18:05  davidfraser
3474         * convert/po2oo.py: use the includeescape function to only include
3475           escapes for \\n (since these aren't double-escaped in the file)
3477 2004-12-13 18:02  davidfraser
3479         * misc/quote.py: added the ability to selectively include escapes
3480           by passing an includeescapes function
3482 2004-12-13 17:43  davidfraser
3484         * convert/: moz2po, moz2po.py, po2moz, po2moz.py: moved all the
3485           actual functionality of the moz2po / po2moz scripts into
3486           moz2po.py / po2moz.py, like all the other civilized scripts...
3488 2004-12-13 17:37  davidfraser
3490         * convert/oo2po.py: make sure oomultifile is only used on input
3492 2004-12-13 17:30  davidfraser
3494         * convert/oo2po.py: made sure that \n is not double-escaped, but
3495           all other escapes are so that they will be handled properly in po
3496           files
3498 2004-12-13 17:21  davidfraser
3500         * convert/oo2po.py: made a quoteforpo function so that we can
3501           change it to improve escaping
3503 2004-12-13 17:19  davidfraser
3505         * storage/po.py: made parsing the inputfile an exposed (and
3506           therefore repeatable, if you clean things up) function
3508 2004-12-13 16:24  dwaynebailey
3510         * filters/checks.py: Added filepaths test to check for translated
3511           paths.
3513 2004-12-13 16:18  dwaynebailey
3515         * filters/checks.py: Added $(blah) style variables for GNOME
3516           projects
3518 2004-12-13 11:58  davidfraser
3520         * convert/po2oo.py: updated to only use oomultifile for output and
3521           templates. added options to prevent even them from being
3522           interpreted as recursive (useful for testing)
3524 2004-12-13 11:29  davidfraser
3526         * convert/convert.py, misc/optrecurse.py: fairly big change to
3527           ArchiveConvertOptionParser to allow specifying whether archive
3528           formats are applicable to only input, output or templates...
3529           added option "filepurpose" to isrecursive, isarchive (replacing
3530           mustexist there), openarchive added new method "getarchiveclass"
3531           which has the right logic and can be used to detect if something
3532           is an archive check that a template is marked as recursive as
3533           well as whether its an archive when opening a template file added
3534           optional options "allowrecursiveinput/archive/output" which
3535           default to True but can be set to False if recursive formats need
3536           to be explicitly avoided
3538 2004-12-13 09:41  davidfraser
3540         * convert/csv2po.py: the string might be unicode, so use whatever
3541           type it is to filter alphanumeric characters...
3543 2004-12-04 14:38  dwaynebailey
3545         * filters/pofilter.py: --header option adds an optional header to
3546           the out PO file.
3548 2004-12-04 14:31  dwaynebailey
3550         * tools/: TODO, pomerge.py: pomerge will now not merge header
3551           entries.  When we can handle header merging properly we should
3552           enable header merging as an option.
3554 2004-12-04 01:04  dwaynebailey
3556         * filters/TODO: More TODOs
3558 2004-12-03 22:32  dwaynebailey
3560         * tools/TODO: We wish for pomigrate in python
3562 2004-12-03 17:55  davidfraser
3564         * storage/ts.py: added TODOs for parts of ts files not yet handled
3565           (comments, translation types) changed addtranslation to make a
3566           new translationnode to replace the old one ...
3568 2004-12-03 17:32  davidfraser
3570         * convert/: po2ts, po2ts.py: added po2ts and po2ts.py as reverse of
3571           ts2po and ts2po.py
3573 2004-12-03 17:29  davidfraser
3575         * convert/: ts2po, ts2po.py: have made po2ts so you don't need to
3576           write it anymore :-) cleaned up leftover code from whatever file
3577           I based this on, that wasn't relevant
3579 2004-12-03 17:24  davidfraser
3581         * storage/ts.py: enhanced ts storage module to support adding
3582           translations and converting back to xml (in a pretty format)
3583           added support for constructing blank QtTsParser objects changed
3584           variable name
3586 2004-12-03 16:11  davidfraser
3588         * convert/ts2po, convert/ts2po.py, storage/ts.py: added initial
3589           code for handling Qt Ts files
3591 2004-12-03 12:43  dwaynebailey
3593         * storage/po.py, tools/TODO, tools/pocount.py: Counts messages
3594           marked for review seperately from the translated, fuzzy,
3595           untranslated totals.
3597 2004-12-02 23:41  dwaynebailey
3599         * tools/pocount.py: Lonely bracket
3601 2004-12-02 22:11  dwaynebailey
3603         * tools/: TODO, pocount.py: Include blank msgid's in the count as
3604           this give a "string" count that will match msgfmt --statistics.
3605           This also does not change the word count, they're blank messages
3606           after all!
3608 2004-12-02 21:09  davidfraser
3610         * tools/pogrep.py: added default options to pogrepfilter
3611           constructor to make it easier to use the class for other stuff
3612           ...
3614 2004-12-02 20:33  dwaynebailey
3616         * storage/po.py: Of course if you want the header to contain an
3617           automatic timestamp then you should delete the old static
3618           POT-Creation-Date line.
3620 2004-12-02 18:39  davidfraser
3622         * storage/html.py: added code to handle entities and character refs
3624 2004-12-02 18:09  davidfraser
3626         * convert/TODO: added more TODOs for oo2po / po2oo
3628 2004-12-02 17:00  davidfraser
3630         * storage/properties.py: added more explicit error message for
3631           problems with unicode in properties files
3633 2004-12-02 16:10  dwaynebailey
3635         * tools/: TODO, pocount.py: Provide a total for each PO file
3636           counted.  So you don't have to get the calculator to add the
3637           translated + untranslated + fuzzy messages.
3639 2004-12-02 13:01  davidfraser
3641         * storage/po.py, tools/pocount.py: added stuff to po.getunquotedstr
3642           to handle dictinoaries for plural msgstr (in case it gets passed
3643           in by someone not knowing it was a plural) now wordcount in
3644           pocount.py doesn't need to know about it...  (this shouldn't be
3645           used for normal translation, it's there just in case)
3647 2004-12-02 12:47  davidfraser
3649         * __init__.py: the package should be called "the translate toolkit"
3650           from now on...
3652 2004-12-02 09:45  dwaynebailey
3654         * tools/: TODO, pocount.py: Only provide a Grand Total if more than
3655           one file is counted
3657 2004-12-02 09:39  dwaynebailey
3659         * tools/: TODO, pocount.py: pocount now correctly counts KDE style
3660           plural messages. A better fix would be for the po class to
3661           understand KDE plurals.
3663 2004-12-01 16:59  davidfraser
3665         * tools/pocount.py: remember all the word counts for all the
3666           elements' msgid and msgstr and sum them as required
3668 2004-12-01 16:51  davidfraser
3670         * storage/csvl10n.py: remember the csv file's filename
3672 2004-12-01 16:40  dwaynebailey
3674         * tools/: TODO, pocount.py: - Count msgid_plural properly by
3675           craeting a seperate wordcount procedure for   msgid's that can
3676           count msgid and msgid_plural - Removed some debugging output
3678 2004-12-01 15:40  davidfraser
3680         * convert/: TODO, csv2po.py: added --charset option to csv2po that
3681           sets what charset the csv files are in made PO files UTF-8
3683 2004-12-01 15:18  davidfraser
3685         * tools/pocount.py: handle plurals in wordcount ...
3687 2004-11-30 14:27  dwaynebailey
3689         * tools/TODO: Lots of pocount todo items
3691 2004-11-28 16:15  dwaynebailey
3693         * convert/TODO, storage/po.py: POT headers now have the generation
3694           date and time.  Timezone info seems to be missing however.
3696 2004-11-28 15:18  dwaynebailey
3698         * convert/: dtd2po.py, po2dtd.py: Now can merge accelerator keys of
3699           type: .accesskey, .accessKey, .akey.  Probably should define that
3700           list of three types as some global but not sure how/where to do
3701           that.
3703 2004-11-28 09:10  dwaynebailey
3705         * filters/decoration.py: - If a number a suffixed with a degree
3706           sign, then this now forms part of the   number for comparison.
3707           This allows for '180° != 180'   NOTE: Not sure if this is 100%
3708           the correct approach.  Should probably use   Unicode throughout
3709           to not have to do this kind of unpacking.  - Reset carryperiod so
3710           that you don't get number like 123.4.5 when the number   actually
3711           was 123.45 (I'm sure it will expose a bug someday :)
3713 2004-11-27 22:03  dwaynebailey
3715         * tools/pogrep.py: --accelerator allows you to specify the
3716           accelerator key to ignore when matching.  This way you will find:
3717           "File, &File. F&ile, etc".  Accepted accelerator is one of "_&~"
3719 2004-11-27 18:46  davidfraser
3721         * filters/decoration.py: handle unicode when checking character
3722           ranges
3724 2004-11-21 16:40  dwaynebailey
3726         * README: Windows installation  instructions
3728 2004-11-20 17:04  davidfraser
3730         * storage/po.py: added a copy method for copying poelements
3732 2004-11-20 16:16  davidfraser
3734         * storage/po.py: use regular expressions to check for word
3735           boundaries properly also allow adding / removing type comments
3736           based on present keyword
3738 2004-11-20 15:41  davidfraser
3740         * filters/pofilter.py, storage/po.py: added methods to set type
3741           comments, in particular markfuzzy, and use them where done
3742           manually before
3744 2004-11-18 16:54  davidfraser
3746         * convert/oo2po.py: if we don't have extra lines for a element,
3747           automatically make the translation blank
3749 2004-11-18 16:44  davidfraser
3751         * misc/optrecurse.py: handle KeyboardInterrupts properly (don't
3752           ignore them!) and set success to False on errors
3754 2004-11-18 16:38  davidfraser
3756         * convert/TODO: added TODO to not use fuzzies in conversion cleaned
3757           up other TODOs
3759 2004-11-18 16:35  davidfraser
3761         * filters/pofilter.py: Don't process if no valid filters were
3762           specified at all
3764 2004-11-18 13:52  davidfraser
3766         * storage/po.py: join the comments with a "\n" if there are more
3767           than one...  otherwise we get this: "_: Do not translate this.
3768           Only change the numeric values if you need this ""dialogue box to
3769           appear bigger.\n"
3771 2004-11-18 13:44  davidfraser
3773         * storage/dtd.py: refactored so that we can parse successfully even
3774           if entity name is on a separate line to <!ENTITY did this by
3775           adding a separate state, should cause no problems :-)
3777 2004-11-18 13:32  davidfraser
3779         * filters/checks.py: ignore numbers or single characters when
3780           checking unchanged
3782 2004-11-17 12:13  davidfraser
3784         * filters/checks.py: rather than assuming the strings are normal
3785           strs, use type(strn) in case they are unicode
3787 2004-11-15 22:37  davidfraser
3789         * misc/optrecurse.py: improved error correction and traceback
3790           generation - added an errorlevel switch
3792 2004-11-15 18:49  davidfraser
3794         * tools/podebug.py: added length limit option and consonant-filter
3795           option added basename format str, versions with/without
3796           extensions, dirname format str
3798 2004-11-15 18:32  davidfraser
3800         * tools/podebug.py: made simple system to allow format strings for
3801           podebug currently only %s (shrunk filename) and %f (full
3802           filename) are provided
3804 2004-11-15 14:39  dwaynebailey
3806         * filters/TODO: TODO items: added - skip entries that have
3807           #-#-#-#-# problems complete - empty translations can be extracted
3808           using blank, untranslated - for regex extraction use pogrep - KDE
3809           comments are removed in tests that had problems with the comments
3810           eg: long,   short, etc
3812 2004-11-15 13:42  dwaynebailey
3814         * tools/pogrep: pogrep is now in tools not filters
3816 2004-11-14 00:02  davidfraser
3818         * storage/po.py: fixed logic that was skipping the first line of
3819           kde comments
3821 2004-11-13 18:08  davidfraser
3823         * README: fixed invalid URL
3825 2004-11-13 18:07  davidfraser
3827         * README: fixed spelling errors (aspell :-))
3829 2004-11-13 16:19  davidfraser
3831         * filters/checks.py: added dictionary to find checker for a given
3832           project code...
3834 2004-11-13 13:49  dwaynebailey
3836         * README: Major revision of the README for 0.8 release
3838 2004-11-12 16:51  davidfraser
3840         * ChangeLog: updated to recent ChangeLog
3842 2004-11-12 16:51  davidfraser
3844         * misc/optrecurse.py: exclude CVS directories by default...
3846 2004-11-12 14:00  davidfraser
3848         * tools/: pocount.py, pogrep.py: pychecker fixes:   sum is only
3849           needed if builtin is not defined   logic in pogrep for multiple
3850           msgstrs was wrong (using thepo.msgstr instead of each item)
3852 2004-11-12 13:55  davidfraser
3854         * convert/README: removed README (we have docs\!)
3856 2004-11-12 13:54  davidfraser
3858         * filters/: checks.py, decoration.py: TeeChecker should use the
3859           checker to run_filters otherwise its an infinite loop...  removed
3860           unneccessary import of sre, unused variable
3862 2004-11-12 13:53  davidfraser
3864         * convert/: csv2po.py, html2po.py, nb2po.py, oo2po.py, po2html.py,
3865           po2nb.py, po2txt.py, sxw2po.py, txt2po.py: only import the
3866           convert module in the main method throughout some pychecker
3867           fixups:   made constructors for conversion classes that need wrap
3868           parameters   remove unneccessary imports of os, sre modules
3869           txt2po didn't have a proper main method
3871 2004-11-12 13:40  davidfraser
3873         * storage/csvl10n.py: pychecker fixup (unused variables)
3875 2004-11-12 13:32  davidfraser
3877         * misc/: optrecurse.py, quote.py, sparse.py: pychecker changes (bad
3878           variable names, unused variables)
3880 2004-11-12 12:43  davidfraser
3882         * tools/__init__.py: better doc string
3884 2004-11-12 11:30  davidfraser
3886         * convert/: convert.py, oo2po.py, po2oo.py: made oo2po, po2oo treat
3887           any input file as a multifile archive (not just .gsi/.sdf/.txt)
3888           implemented this by using None to refer to any file, but not
3889           existing directories so to output to a directory tree, just make
3890           sure the output directory exists
3892 2004-11-12 10:03  davidfraser
3894         * storage/po.py: added better intelligence to handle kde comments
3895           (they end at the \\n) this could probably use further
3896           improvement...
3898 2004-11-12 09:40  dwaynebailey
3900         * filters/checks.py: prefilter -> prefilters added removekdecomment
3901           prefilter to brackets test
3903 2004-11-12 09:33  davidfraser
3905         * filters/prefilters.py: added more intelligence to get kde
3906           comments correctly
3908 2004-11-11 16:36  dwaynebailey
3910         * tools/TODO: pomerge: - problem merging #: headers - need to be
3911           able to run without templates
3913 2004-11-11 15:02  dwaynebailey
3915         * tools/__init__.py: Tools should be installed as a module.
3917 2004-11-11 14:56  dwaynebailey
3919         * filters/checks.py: Added brackets filter Remove KDE comments
3920           before running tests on: long, short, blank and escapes.
3922 2004-11-10 16:59  davidfraser
3924         * tools/: podebug, podebug.py: added podebug
3926 2004-11-10 16:21  davidfraser
3928         * README: updated README to talk about Python 2.3
3930 2004-11-10 16:10  davidfraser
3932         * __version__.py: version 0.8rc2
3934 2004-11-10 15:40  davidfraser
3936         * filters/pogrep, filters/pogrep.py, tools/pogrep, tools/pogrep.py:
3937           moved pogrep from filters to tools
3939 2004-11-10 15:35  davidfraser
3941         * filters/: TODO, pofilter, pofilter.py, pogrep, pogrep.py:
3942           rearranged scripts into script/module parts
3944 2004-11-10 15:18  davidfraser
3946         * tools/: TODO, pocount, pocount.py, pomerge, pomerge.py: split
3947           scripts into script / module parts
3949 2004-11-10 10:18  davidfraser
3951         * storage/po.py, tools/pocount: pocount: use poelement class
3952           methods rather than handling strings ourselves as that breaks
3953           with plurals calculated length of msgstr correctly when used on
3954           plurals (failed before)
3956 2004-11-10 10:01  dwaynebailey
3958         * convert/po2csv.py: Incorrectly calling convertcsv
3960 2004-11-09 18:19  davidfraser
3962         * filters/TODO, tools/TODO: added TODO to rearrange the
3963           filters/tools scripts into script/module parts like I just did to
3964           the convert tools...
3966 2004-11-09 18:16  davidfraser
3968         * convert/: csv2po, csv2po.py, html2po, html2po.py, nb2po,
3969           nb2po.py, oo2po, oo2po.py, po2csv, po2csv.py, po2csvmod.py,
3970           po2html, po2html.py, po2nb, po2nb.py, po2oo, po2oo.py, po2txt,
3971           po2txt.py, sxw2po, sxw2po.py, txt2po, txt2po.py: massive
3972           reorganization to make sure all code is accessible via module, so
3973           the files not ending in .py are just scripts to call a main
3974           method in a module
3976 2004-11-08 17:40  davidfraser
3978         * convert/po2oo: started adding support for using simple
3979           unduplicated english GSI as input this duplicates the lines if
3980           neccessary
3982 2004-11-04 21:52  davidfraser
3984         * filters/pofilter: fixed options.filterclass so it works with new
3985           multiple classes (StandardPOChecker is always included now)
3987 2004-11-04 21:45  davidfraser
3989         * filters/prefilters.py: added a function to strip out kde comments
3991 2004-11-04 16:11  davidfraser
3993         * convert/: po2csv, po2csvmod.py: moved all the po2csv code into
3994           po2csvmod.py so that we can call it from pootle
3996 2004-11-04 14:58  dwaynebailey
3998         * filters/checks.py: Added tests: - kdecomments: detects kde
3999           comments in the msgstr - compendiumconflicts: detects #-#-#-#-#
4000           conflicts in files - acronyms: cehcks that acronyms in the msgid
4001           are also in the msgstr
4003 2004-11-04 14:22  davidfraser
4005         * filters/: checks.py, pofilter: created new POChecker paradigm for
4006           doing tests on po elements rather than just strings moved tests
4007           for fuzzy, review into this added TeeCheckers which can handle
4008           multiple filters, POTeeChecker which can handle POChecker or
4009           normal Checkers
4011 2004-11-03 09:18  davidfraser
4013         * filters/pofilter: added code to be able to exclude fuzzy / review
4014           elements from filtering entirely [Dwayne Bailey] this still
4015           probably needs more refinement alongside the filter checks for
4016           fuzzy / review
4018 2004-11-03 09:13  davidfraser
4020         * filters/checks.py: filteraccelerators when checking unchanged, so
4021           just changing the accelerator doesn't qualify as a real change
4022           [Dwayne Bailey]
4024 2004-11-02 11:25  dwaynebailey
4026         * filters/checks.py: Mozilla variable checks cahnged "#, None" to
4027           "#, 1" So only check for #1, #2
4029 2004-10-28 17:56  davidfraser
4031         * storage/dtd.py: improved entity parsing so we can handle entities
4032           split over multiple lines  changed the order of the position
4033           checks so that we don't run into the end of the line...  took out
4034           FIXME about single quotes (they are used in official firefox
4035           source) raise an error if we get an unexpected quote character
4037 2004-10-28 17:40  davidfraser
4039         * storage/dtd.py: don't process entities that are inside
4040           comments...
4042 2004-10-28 17:32  davidfraser
4044         * misc/optrecurse.py: use special options.psyco value None to
4045           indicate no option was passed Only display a psyco warning if it
4046           was set to use explicitly
4048 2004-10-28 17:27  davidfraser
4050         * convert/po2oo: added a switch to keep the timestamps, which means
4051           you can compare files more easily
4053 2004-10-28 15:07  davidfraser
4055         * misc/optrecurse.py: fixed check for whether we need to know the
4056           number of files (console was old option) should now go to 100% in
4057           default case (was just using count instead of percent because of
4058           this)
4060 2004-10-28 10:26  davidfraser
4062         * convert/translatepath.py, filters/pofilter, filters/pogrep,
4063           filters/translatepath.py, tools/pomerge, tools/translatepath.py:
4064           removed all remaining translatepath stuff
4066 2004-10-28 10:09  davidfraser
4068         * convert/: dtd2po.py, html2po, moz2po, nb2po, oo2po, po2csv,
4069           po2dtd.py, po2html, po2nb, po2oo, po2prop.py, po2txt, prop2po.py,
4070           sxw2po, txt2po: removed translatepath imports ; it doesn't work
4071           in its current form
4073 2004-10-28 09:48  davidfraser
4075         * convert/TODO: added todo to change the order of csv columns
4077 2004-10-28 09:36  davidfraser
4079         * convert/csv2po: enable conversion without template
4081 2004-10-25 18:51  davidfraser
4083         * convert/TODO: some mozilla stuff is done found an error on
4084           firefox dtds
4086 2004-10-25 13:13  dwaynebailey
4088         * filters/checks.py: Added #1 style variables to the --mozilla
4089           variable checks.
4091 2004-10-22 15:54  davidfraser
4093         * misc/wStringIO.py: catch error trying to do getvalue on closed
4094           files... (self.buf is gone because we delete it) this can happen
4095           if for example a CatchStringOutput has close() called twice...
4097 2004-10-22 15:47  davidfraser
4099         * convert/convert.py: don't close files we copy because the
4100           processfile module does that anyway...  make processfile check
4101           that files aren't a tty (as the copy file did...) (not sure if
4102           this is neccessary but can't hurt)
4104 2004-10-22 14:15  dwaynebailey
4106         * tools/pocount: - Laoyout is now more readable with similar items
4107           grouped in columns.  - Introduced a translated count so that we
4108           can get better total figures - Entries marked fuzzy and which are
4109           untranslated are no longer double counted.    A n entry is fuzzy
4110           if it is marked fuzzy and in not untranslated. This change
4111           also makes it easier to total and evaluate figures.
4113 2004-10-21 17:20  davidfraser
4115         * convert/po2moz: open the outputarchive in write mode if it
4116           doesn't exist oh, and translatepath doesn't work...
4118 2004-10-19 13:46  davidfraser
4120         * filters/pofilter: remove -x and change --exclude to
4121           --excludefilter to prevent option with main optrecurse
4122           -x/--exclude option for folders
4124 2004-10-18 19:46  davidfraser
4126         * convert/csv2po, convert/dtd2po.py, convert/html2po,
4127           convert/moz2po, convert/nb2po, convert/oo2po, convert/po2csv,
4128           convert/po2dtd.py, convert/po2html, convert/po2moz,
4129           convert/po2nb, convert/po2oo, convert/po2prop.py, convert/po2txt,
4130           convert/prop2po.py, convert/sxw2po, convert/translatepath.py,
4131           convert/txt2po, filters/pofilter, filters/pogrep,
4132           filters/translatepath.py, tools/pocount, tools/pomerge,
4133           tools/translatepath.py: added translatepath to all the tools,
4134           which tries to find the right directory and add it to the python
4135           path if translate can't be imported. one of these lives in each
4136           directory with executable scripts in them so they can find it
4137           automatically
4139 2004-10-18 19:37  davidfraser
4141         * ChangeLog: updated ChangeLog to 0.8rc1
4143 2004-10-04 16:39  davidfraser
4145         * __version__.py: version 0.8 RC1
4147 2004-10-04 16:37  davidfraser
4149         * storage/oo.py: refactored oomultifile to work both as input file
4150           and as output file added 'mode' argument ('w' for writing, also
4151           done if file doesn't exist and mode is None) uses
4152           wStringIO.CatchStringOutput to write output file contents...
4154 2004-10-04 16:32  davidfraser
4156         * convert/: convert.py, po2moz: added support for excluding files
4157           to convert.py (with -x/--exclude switch) added direct support for
4158           output archives to convert.py, moved some code out of po2moz /
4159           refactored (this will be used in po2oo too) close output files in
4160           processfile for ArchiveConvertOptionParser, since they may be
4161           subfiles...  also added support for passing kwargs through
4162           openarchive (so far just mode='w' is needed)
4164 2004-10-04 16:29  davidfraser
4166         * storage/xpi.py, misc/wStringIO.py: moved CatchStringOutput from
4167           xpi to wStringIO
4169 2004-10-04 09:21  davidfraser
4171         * misc/optrecurse.py: added an --exclude (or -x) option, so that
4172           for example you can ignore CVS directories.  Supports pattern
4173           matching e.g. *.bak
4175 2004-10-01 16:14  davidfraser
4177         * storage/oo.py, convert/oo2po: made it so oo2po po files now
4178           contain the original oo pseudo-filename in the comment at the top
4180 2004-10-01 15:41  davidfraser
4182         * convert/: oo2po, po2oo: include the resourcetype in the key to
4183           prevent overlapping keys made escaping consistent and workable so
4184           that the round trip is always correct
4186 2004-10-01 15:35  davidfraser
4188         * misc/quote.py: took out odd method of not using escapes, do it
4189           sensibly
4191 2004-10-01 12:12  davidfraser
4193         * convert/: oo2po, po2oo: reduce the keys so it only contains the
4194           base filename (the project and  directory are in the po file
4195           name)
4197 2004-10-01 11:44  davidfraser
4199         * storage/oo.py: updated to work with
4200           convert.ArchiveConvertOptionParser made it able to handle input
4201           file name more cross-platform path generation iterator, in
4202           operator, openfile renamed to openinputfile
4204 2004-10-01 11:41  davidfraser
4206         * convert/: oo2po, po2oo: added .txt as extension for oomultifiles
4208 2004-09-30 17:22  davidfraser
4210         * convert/oo2po: support gsi and sdf extensions as archives
4212 2004-09-30 17:20  davidfraser
4214         * convert/convert.py: check if templates are used before trying to
4215           access options.templates, to prevent error...
4217 2004-09-30 16:58  davidfraser
4219         * convert/oo2po: switched to use convert.ArchiveConvertOptionParser
4220           (since it is the revamped MozCOP that GSICOP was based on)
4222 2004-09-30 12:47  davidfraser
4224         * convert/oo2po: added a TODO
4226 2004-09-30 11:52  davidfraser
4228         * convert/: convert.py, moz2po, po2moz: refactored as much as
4229           possible from MozConvertOptionParser classes in moz2po and po2moz
4230           the new class is convert.ArchiveConvertOptionParser, should be
4231           able to use for OO GSI files too...  moz2po now just uses the
4232           class directly, po2moz adds one method this required some changes
4233           to the xpi.XpiFile class, basically it uses a few methods and
4234           iterators/in operator so should be simple to implement other
4235           archive classes...
4237 2004-09-30 11:36  davidfraser
4239         * misc/optrecurse.py: since splitinputext and splittemplateext are
4240           the same in the baseclass, and useful, made splitext that does
4241           that, and call it from them (splitinputext is overridden
4242           sometimes for some reason)
4244 2004-09-30 11:30  davidfraser
4246         * storage/xpi.py: added __iter__, __contains__, openinputfile,
4247           openoutputfile methods used by convert  - that means it doesn't
4248           have to know much about XpiFiles if no region is found, try and
4249           get it automatically from the locale name only add dirmap entries
4250           for valid locale and region took out unused code for renaming
4251           (done in clone now)
4253 2004-09-30 09:17  davidfraser
4255         * storage/oo.py: modified to produce lots of small files rather
4256           than one per module...
4258 2004-09-30 09:07  davidfraser
4260         * storage/oo.py: renamed "module" variables to "subfile" in
4261           oomultifile added openfile method that uses wStringIO to create a
4262           pseudo-file for a subfile
4264 2004-09-29 17:57  davidfraser
4266         * convert/oo2po: added GSIConvertOptionParser, analogous to
4267           XpiConvertOptionParser (and based on it) This allows treating a
4268           GSI file as multiple files, using oo.oomultifile similar support
4269           needed for the reverse process...
4271 2004-09-29 17:20  davidfraser
4273         * storage/oo.py: added oomultifile class that can be used to treat
4274           smaller sections of a file as individual oofiles
4276 2004-09-29 16:32  davidfraser
4278         * convert/oo2po: added support for passing language parameters on
4279           command line, TODO for making it work properly :-)
4281 2004-09-28 14:12  davidfraser
4283         * convert/po2moz: added option to change locale, which restructures
4284           directories etc inside xpi jars using new xpi.clone parameters
4285           this is required for the round-trip xpi -> po -> xpi to work,
4286           which is now complete extended warning when files not found in
4287           structure
4289 2004-09-28 14:10  davidfraser
4291         * storage/xpi.py: various changes needed to handle directory
4292           structures when changing language names (removed TODOs) split
4293           initdirmap into findlangreg and setlangreg move files directly in
4294           xpi (not in a sub-jar) into a "package" directory added method
4295           restructurejar which moves things from one lang-region to another
4296           modified clone to reconstruct jars using restructurejar keep
4297           locale and region as members
4299 2004-09-28 12:21  davidfraser
4301         * tools/oosetupmerge: updated to handle languages list better
4303 2004-09-28 12:10  davidfraser
4305         * storage/xpi.py: only print out the name when listing files...
4307 2004-09-28 12:08  davidfraser
4309         * storage/html.py: added span as a text-marking tag
4311 2004-09-28 12:06  davidfraser
4313         * __version__.py: version 0.8 beta 3
4315 2004-08-31 17:48  davidfraser
4317         * convert/po2prop.py: added a little hook that will allow setting
4318           strings to empty values by setting the msgstr to "   " (three
4319           spaces)
4321 2004-08-31 17:07  davidfraser
4323         * convert/dtd2po.py: fixed a bug where the logic for mixed entities
4324           failed for merging dtds (basically the mixed entity was marked as
4325           already merged when the original version was converted, so the
4326           translation was ignored) this is fixed by using "mixbuckets" to
4327           mark the alreadymerged value differently for orig and translation
4329 2004-08-31 15:23  davidfraser
4331         * convert/: po2nb, nb2po: added fixes to handle end of lines sanely
4332           only replace one instance of each string in the result when
4333           converting back
4335 2004-08-27 13:46  davidfraser
4337         * convert/po2html: only do a replace if the translation is
4338           non-empty
4340 2004-08-27 13:31  davidfraser
4342         * convert/html2po: strip html blocks
4344 2004-08-27 13:10  davidfraser
4346         * convert/html2po: allow generation of .pot files
4348 2004-08-27 13:07  davidfraser
4350         * convert/: nb2po, po2nb: updated nb2po to fit with new
4351           storage.html handling of untaggeddata (part of normal blocks)
4352           added usepots option to nb2po nb parts files are always htm, not
4353           html - updated po2nb
4355 2004-08-27 13:01  davidfraser
4357         * convert/html2po: added option to include untagged data
4359 2004-08-27 12:52  davidfraser
4361         * convert/po2nb: added po2nb to translate nanoblogger part files
4362           using po files
4364 2004-08-27 12:26  davidfraser
4366         * storage/html.py: added code to include untagged data in the blogs
4367           if desired added li as a valid marking tag
4369 2004-08-27 12:10  davidfraser
4371         * convert/nb2po: added code to parse html and split up blocks with
4372           a fair amount of intelligence removed unneccessary import of os
4373           module
4375 2004-08-27 11:54  davidfraser
4377         * convert/nb2po: added initial nb2po script for handling
4378           nanoblogger files
4380 2004-08-27 11:41  davidfraser
4382         * convert/html2po, storage/html.py: moved POHTMLParser from
4383           convert/html2po to new storage/html.py module removed
4384           unneccessary import of os module
4386 2004-08-27 11:17  davidfraser
4388         * convert/: TODO, html2po: added TODO for oo2po removed notes about
4389           po2html not existing...
4391 2004-08-23 13:22  davidfraser
4393         * tools/ooswitchlang: need to import sys to get the arguments
4394           later...
4396 2004-08-18 12:25  davidfraser
4398         * tools/oosetupmerge: rather have a \n inserted before the field
4399           name because this gives us the tab indentation we want
4401 2004-08-18 12:06  davidfraser
4403         * tools/oosetupmerge: added code to localize module text (name,
4404           description)
4406 2004-08-18 11:59  davidfraser
4408         * tools/oosetupmerge: added code to insert HelpText Text(nn)
4409           entries for each language - so installation Help is now localized
4410           use one suffix variable per index instead of recalculating it
4411           everywhere we can :-) to support inserting fields into sections,
4412           added end of variables to tokennums index added methods to
4413           renamefield, getfieldtokenrange, insertforeignvalue (just puts
4414           index tokenrange in before end of section)
4416 2004-08-17 11:46  davidfraser
4418         * tools/ooo_languageselector.png: added icon for ooo language
4419           switcher on linux
4421 2004-08-17 11:43  davidfraser
4423         * tools/oosetupmerge: allowed adding a file to zip without
4424           specifying contents (otherwise file was removed) fixed file size,
4425           date and time for zip changes check posix by looking at name of
4426           setup file, not os.name (we pack on linux anyway)
4428 2004-08-17 11:37  davidfraser
4430         * tools/ooswitchlang: added expat import to prevent problem in
4431           singlefile version added code to look in directory program is
4432           installed in in case not run from there
4434 2004-08-17 09:38  davidfraser
4436         * tools/oosetupmerge: added setuplaunchscript, code to create it
4437           for posix installers initialize members in constructor rather
4438           than from mergefiles...  moved desktop entries code into method
4439           adddesktopentries copy desktop files before generating
4440           mainsetupfile (this is because we will need to change file
4441           attributes...)
4443 2004-08-17 09:21  davidfraser
4445         * tools/oosetupmerge: added TODO about HelpText
4447 2004-08-17 09:07  davidfraser
4449         * tools/oosetupmerge: added code to add desktop / menu items with
4450           icons for kde and gnome (and gnome2) this required entries to
4451           access zip files the desktop entries are hardcoded and the icons
4452           are generated from icons/ooo_languageselector.png under the
4453           current directory
4455 2004-08-16 13:35  davidfraser
4457         * tools/oosetupmerge: recursively rename a directory's child
4458           directories...  this should fix templates not being included
4460 2004-08-15 16:54  davidfraser
4462         * tools/ooswitchlang: check if there are any valid oo versions if
4463           not, display a message and switch to advanced mode
4465 2004-08-15 16:31  davidfraser
4467         * tools/ooswitchlang: moved xmlwrapper import to prevent expat
4468           version conflict
4470 2004-08-13 19:13  davidfraser
4472         * convert/oo2po: added TODOs
4474 2004-08-12 11:42  davidfraser
4476         * tools/ooswitchlang: improved tooltip for adminchoice
4478 2004-08-12 11:38  davidfraser
4480         * tools/ooswitchlang: changed adminchoice to be a drop down box.
4481           moved above language selector added function getadminmode to work
4482           out what it means
4484 2004-08-12 11:29  davidfraser
4486         * tools/ooswitchlang: make sure we return after finding the current
4487           directory, otherwise manual selection happens anyway...
4489 2004-08-12 11:24  davidfraser
4491         * tools/ooswitchlang: added lots of error handling and intelligence
4492           so user gets reasonable messages if language cannot be found /
4493           set if registered version directory does not exist, ignore it
4494           (with a verbose log message) rather than showing message factored
4495           out finding directory in version names into separate function
4496           findregisteredversion try to look up if manually entered
4497           directory is one of registered versions
4499 2004-08-11 18:38  davidfraser
4501         * convert/po2html: added simple po2html
4503 2004-08-11 11:27  davidfraser
4505         * tools/oosetupmerge: added a shortisocode member for matching just
4506           language (e.g. en-US -> en) check hostnames to rename on every
4507           index, not just self. also check shortisocode
4509 2004-08-11 10:54  davidfraser
4511         * tools/ooswitchlang: Sipedi is actually Sepedi - but have adopted
4512           "Sesotho sa Leboa" - "Northern Sotho" as better term
4514 2004-08-10 15:23  davidfraser
4516         * tools/ooswitchlang.ico: add oo switchlang icon
4518 2004-08-10 15:12  davidfraser
4520         * misc/xmlwrapper.py: import expat to prevent conflicts with wx
4522 2004-08-10 15:05  davidfraser
4524         * tools/ooswitchlang: changed error dialog titles
4526 2004-08-10 15:04  davidfraser
4528         * tools/ooswitchlang: added more info about needing to restart,
4529           changed title
4531 2004-08-10 14:56  davidfraser
4533         * tools/ooswitchlang: Added lots of tooltips
4535 2004-08-10 14:40  davidfraser
4537         * tools/ooswitchlang: changed language names to be in that
4538           language. added TODO to handle languages better changed cmdline
4539           to quote the binary name (otherwise on Windows it fails if in
4540           Program Files)
4542 2004-08-10 14:26  davidfraser
4544         * tools/oosetupmerge: added code to create shortcuts for windows
4545           start menu added link to switch lang program
4547 2004-08-10 12:00  davidfraser
4549         * tools/oosetupmerge: copy all the license, readme,
4550           thirdpartlicense etc files into the dest directory with -nn in
4551           their names (even do this for the main setup file as otherwise
4552           people will wonder what it is...)
4554 2004-08-10 11:42  davidfraser
4556         * tools/oosetupmerge: added function islocalizefile, which now
4557           detects not only resource files but also README and LICENSE files
4559 2004-08-10 09:15  davidfraser
4561         * convert/po2dtd.py: added note on \n characters
4563 2004-08-10 09:12  davidfraser
4565         * convert/po2oo: putting in extra \ns was coming out in the oo
4566           files, this is leftover stuff from mozilla, don't add any...
4568 2004-08-06 14:21  davidfraser
4570         * tools/ooswitchlang: added docstrings, comments
4572 2004-08-06 14:18  davidfraser
4574         * tools/ooswitchlang: made forcing the default tried to improve
4575           labels...
4577 2004-08-06 14:08  davidfraser
4579         * tools/ooswitchlang: added AutoSize method so we don't have to set
4580           the size manually also it works when switching modes...  note we
4581           use SetClientSize otherwise it is too small on Windows...
4583 2004-08-06 13:49  davidfraser
4585         * tools/ooswitchlang: construct dirsizer in arrangeoptioncontrols
4586           each time (otherwise segfaults. Clearing a BoxSizer destroys it)
4587           Switch the advanced button label depending on self.advancedmode
4589 2004-08-06 13:38  davidfraser
4591         * tools/ooswitchlang: added button to switch between simple and
4592           advanced modes, made it work took optionssizer construction out
4593           of arrangeoptioncontrols moved initial arrangeoptioncontrols call
4594           to later in constructor
4596 2004-08-06 13:25  davidfraser
4598         * tools/ooswitchlang: rearranged creation and arranging of option
4599           controls into functions...  makes it much easier to read, and
4600           will be able to switch modes hopefully...
4602 2004-08-06 13:19  davidfraser
4604         * tools/ooswitchlang: started adding code to do simple / advanced
4605           modes for the GUI...  added docstring and commandline option
4606           parsing added option for starting in advanced mode
4608 2004-08-05 19:18  davidfraser
4610         * tools/oosetupmerge: needs to be quoted empty string :-)
4612 2004-08-05 18:42  davidfraser
4614         * tools/ooswitchlang: forget the xmlwrapper stuff :-) added
4615           TODOs...
4617 2004-08-05 18:38  davidfraser
4619         * tools/oosetupmerge: some files don't have a PackedName (they are
4620           usually just being deleted so it doesn't matter, just leave
4621           it...)
4623 2004-08-05 17:35  davidfraser
4625         * convert/po2txt: added basic text wrapping
4627 2004-08-05 17:24  davidfraser
4629         * storage/properties.py: don't decode unicode in comments
4631 2004-08-05 17:19  davidfraser
4633         * misc/xmlwrapper.py: make life simpler by using
4634           ElementTree.XMLTreeBuilder (the XMLTreeBuilder module is just a
4635           backwards-compatibility wrapper)
4637 2004-08-05 17:10  davidfraser
4639         * misc/quote.py: show the digits causing the problem...
4641 2004-08-05 17:05  davidfraser
4643         * convert/po2txt, storage/po.py: made including escapes optional in
4644           po.getunquotedstr don't include escapes for text files...
4646 2004-08-05 16:41  davidfraser
4648         * convert/po2oo: added requirement for languagecode (otherwise we
4649           produce bad target files...)
4651 2004-08-05 16:35  davidfraser
4653         * convert/: po2txt, txt2po: created simple po2txt
4655 2004-08-05 12:33  davidfraser
4657         * tools/ooswitchlang: try import xmlwrapper from the current
4658           directory if import fails...
4660 2004-08-05 12:11  davidfraser
4662         * tools/oosetupmerge: add -j option to zip so it doesn't include
4663           the pathname added option --switchlang rather than including
4664           ooswitchlang.exe if it is there
4666 2004-08-05 11:33  davidfraser
4668         * tools/oosetupmerge: added offset param to makepackedname in case
4669           more than one is needed removed direntry parameter for
4670           addmanualfile as it can be deduced from baseentry zip generates
4671           .zip files so rename them...
4673 2004-08-05 11:22  davidfraser
4675         * tools/oosetupmerge: added self.manualfiles so any files added
4676           manually are automatically zipped into the right destination
4677           (currently using cmdline) added call to addfiletomodule so files
4678           added manually are also listed in the modulename to be installed
4679           added function makepackedname for when we need a new packedname
4680           added default value option to getfieldvalue, rather than getting
4681           errors added call to add ooswitchlang.exe to setup if it exists
4683 2004-08-05 10:56  davidfraser
4685         * tools/oosetupmerge: use isocodes for directory names rather than
4686           using HostName (which could be full lang name) this means all the
4687           f* files have now got shorter names
4689 2004-08-05 10:49  davidfraser
4691         * tools/oosetupmerge: refactored addfiletomodule to use a dummy
4692           setup file rather than searching for commas...  this means we
4693           don't have to leave out some files because we couldn't find the
4694           commas also we don't require the index (which will make it easier
4695           to add manual files)
4697 2004-08-05 10:13  davidfraser
4699         * tools/oosetupmerge: factored out addfiletomodule from
4700           addforeignfile rename aftersection parameter of addmanualfile to
4701           baseentry
4703 2004-08-05 09:59  davidfraser
4705         * tools/oosetupmerge: added addmanualfile method (adds a new
4706           section describing a file off disk)   - to be used for adding gui
4707           switchlang executable split off parsing code into base class
4708           SetupParser this allows us to create a little SetupParser to
4709           describe manual additions corrected dir arguments (one-off error
4710           from sys.argv->optparser change)
4712 2004-08-05 09:09  davidfraser
4714         * tools/ooswitchlang: changed setlanguage to take admin and force
4715           as parameters setlanguage now displays errors and offers to force
4716           only quit if setlanguage successful
4718 2004-08-05 08:59  davidfraser
4720         * tools/ooswitchlang: Added Tswana Enlarged window
4722 2004-08-05 08:50  davidfraser
4724         * tools/oosetupmerge: improved doc string use optparse for option
4725           parsing added version info
4727 2004-08-05 08:33  davidfraser
4729         * tools/oosetupmerge: use directory names rather than setup files
4730           as arguments copy other needed files (non-f*, non-setup.in[sf])
4732 2004-08-04 12:08  davidfraser
4734         * tools/ooswitchlang: added browse button for selecting install dir
4735           tried to improve sizing...
4737 2004-08-04 11:39  davidfraser
4739         * tools/ooswitchlang: added instructions for building exe...
4741 2004-08-04 10:22  davidfraser
4743         * tools/ooswitchlang: add box for install directory include
4744           "(other)" for manually chosen directory...
4746 2004-08-04 10:21  davidfraser
4748         * tools/oosetupmerge: try import on sparse and import directly if
4749           not in translate.misc - to allow standalone oosetupmerge also add
4750           basic commandline help...
4752 2004-08-02 22:02  dwaynebailey
4754         * tools/TODO: Ideas for: - podiff - glossary creator
4756 2004-08-02 22:01  dwaynebailey
4758         * misc/: optrecurse.py, progressbar.py: Improved naming of progress
4759           bar types
4761 2004-08-02 21:57  dwaynebailey
4763         * convert/: convert.py, html2po, moz2po, txt2po: Improved usage
4764           messages
4766 2004-08-02 21:34  dwaynebailey
4768         * convert/oo2po: Improved purpose message
4770 2004-07-30 14:09  davidfraser
4772         * tools/ooswitchlang: fix up errors on windows - file:///x:/ ends
4773           up with an initial \\x:\\ in the path os.path.samefile not
4774           available on windows, just use equality
4776 2004-07-30 13:21  davidfraser
4778         * tools/ooswitchlang: added code to handle multiple versions
4779           installed, use .sversionrc or sversion.ini to find versions use
4780           current directory or parent directory as well
4782 2004-07-29 13:44  davidfraser
4784         * tools/ooswitchlang: call setofficelang directly (simpler) added
4785           ability to force it added size for window
4787 2004-07-29 13:38  davidfraser
4789         * tools/ooswitchlang: added begin/end busy cursors so people know
4790           we're trying to set the language...
4792 2004-07-29 13:30  davidfraser
4794         * tools/ooswitchlang: added check box to select whether to set the
4795           admin language or not update the current language when the admin
4796           check box is changed redid the sizing so that it works well for
4797           more than one option
4799 2004-07-29 13:16  davidfraser
4801         * tools/ooswitchlang: simplified wx sizing
4803 2004-07-29 12:51  davidfraser
4805         * tools/ooswitchlang: added code to call setofficelang with
4806           available options and deal with the return code this is better
4807           than changing xml files ourselves...  added function to get/set
4808           admin language
4810 2004-07-29 12:36  davidfraser
4812         * tools/ooswitchlang: added a higher level to manage user / admin
4813           settings (will use setofficelang.bin as well...)
4815 2004-07-29 12:28  davidfraser
4817         * tools/ooswitchlang: added tool for switching oo installation
4818           language (in progress)
4820 2004-07-28 15:26  davidfraser
4822         * storage/xpi.py: combine iterjarcontents into initdirmap (so later
4823           we can intelligently handle the jar names...)
4825 2004-07-28 12:08  davidfraser
4827         * misc/xmlwrapper.py: added makefixtagproc which can be used to set
4828           specific names for namespaces when rewriting file (by replacing
4829           ElementTree.fixtag) also added some excludetags capability to
4830           ignore certain plaintext/children...
4832 2004-07-22 13:03  davidfraser
4834         * convert/sxw2po: added special code to exclude change tracking
4835           stuff from the sxw file
4837 2004-07-22 12:43  davidfraser
4839         * convert/sxw2po: added sxw2po
4841 2004-07-22 12:38  davidfraser
4843         * convert/: html2po, txt2po: fixed UTF8 -> UTF-8 (official name
4844           that msguniq likes)
4846 2004-07-22 12:37  davidfraser
4848         * misc/xmlwrapper.py: added xml wrapper
4850 2004-07-16 22:11  davidfraser
4852         * tools/oosetupmerge: exclude non-alpha isocodes from
4853           ooSetupLocales
4855 2004-07-16 15:27  davidfraser
4857         * tools/oosetupmerge: added keymunging so en-US gets changed to
4858           en_US also removed extra _ before suffix
4860 2004-07-16 14:28  davidfraser
4862         * tools/oosetupmerge: disable updating the Languages field as
4863           support for language names in the setup selection list is
4864           currently limited
4866 2004-07-16 13:29  davidfraser
4868         * tools/oosetupmerge: set the list of installed languages manually
4869           (rather than using default template system that doesn't work)
4871 2004-07-16 13:08  davidfraser
4873         * tools/oosetupmerge: added code to merge config items ...  this
4874           fixes for example New->Text Document always being in the same
4875           language
4877 2004-07-16 12:46  davidfraser
4879         * tools/: oosetup, oosetupmerge: renamed oosetup to oosetupmerge
4881 2004-07-16 12:38  davidfraser
4883         * tools/oosetup: minor change that will make changing the
4884           packedname easier...
4886 2004-07-14 17:48  davidfraser
4888         * storage/xpi.py: converted commonprefix code to make a more
4889           intelligent map based on locale directories...  locale/nn-NN gets
4890           mapped to lang-reg locale/NN gets mapped to reg also changed
4891           directory creation so we don't create unneccessary directories
4892           like this added a showprefix option which currently lists the
4893           maps determined (for debugging)
4895 2004-07-09 16:34  dwaynebailey
4897         * filters/TODO: Adding HTML and email checker todo item
4899 2004-07-09 15:51  davidfraser
4901         * storage/dtd.py: removed <!ENTITY xxx > definitions that have been
4902           commented out (will only work with single line definitions...)
4904 2004-07-09 15:50  davidfraser
4906         * misc/quote.py: make stripcomment handle half-comments more
4907           intelligently (if comment is split over lines) in
4908           extractwithoutquotes, be careful if laststartinextracted is still
4909           None...  this produced a memory grabbing frenzy from psyco (as
4910           will ''[:None])
4912 2004-07-09 15:13  dwaynebailey
4914         * filters/TODO: Wihslist XML/HTML checks
4916 2004-07-09 14:30  davidfraser
4918         * filters/decoration.py: factored out isvalidaccelerator...
4920 2004-07-09 14:26  davidfraser
4922         * filters/pofilter: made listfilters work even though input is not
4923           given (had to use a callback to do this...)
4925 2004-07-09 12:09  davidfraser
4927         * misc/optrecurse.py: improved psyco importing logic, added
4928           excluded function encodings.search_function
4930 2004-07-09 11:54  davidfraser
4932         * convert/po2moz: added fix for non-recursive templates (single
4933           file usage)
4935 2004-07-08 17:03  davidfraser
4937         * storage/xpi.py: added compression to XPI files by default...
4939 2004-07-08 16:10  davidfraser
4941         * convert/convert.py, filters/pofilter, filters/pogrep: added
4942           usepsyco option to run methods where neccessary...
4944 2004-07-08 16:07  davidfraser
4946         * misc/optrecurse.py: added options to use psyco for speedup.
4947           print a warning message if its asked for but not available can be
4948           set to none/full/profile
4950 2004-07-08 15:36  davidfraser
4952         * convert/po2moz: added message about writing xpi file as it can
4953           take a while more intelligence about single file / stdout output
4955 2004-07-08 15:31  davidfraser
4957         * convert/convert.py: don't close copied files if the output is to
4958           a tty
4960 2004-07-08 15:20  davidfraser
4962         * misc/zipfileext.py: removed unneccessary flush from writeendrec
4964 2004-07-08 14:47  davidfraser
4966         * misc/wStringIO.py: only update the length after writing if we've
4967           written over the end of the file
4969 2004-07-08 13:01  davidfraser
4971         * misc/optrecurse.py: added requireemnt to use - for stdin input
4972           instead of leaving it out this lets us give a more helpful error
4973           message if no options given at start...
4975 2004-07-07 18:10  davidfraser
4977         * convert/dtd2po.py: added TODO to remind us about losing
4978           comments...
4980 2004-07-07 18:05  davidfraser
4982         * convert/dtd2po.py: modified to exclude blank elements...
4984 2004-07-07 17:40  davidfraser
4986         * tools/detectencoding: changed default output to utf-8
4988 2004-07-07 17:39  davidfraser
4990         * convert/oo2po: changed to utf-8 for output.  this actually
4991           reflects what we were doing anyway...
4993 2004-07-07 17:28  davidfraser
4995         * convert/: html2po, prop2po.py, txt2po: removed unneccessary pot
4996           cruft
4998 2004-07-07 17:20  davidfraser
5000         * convert/: dtd2po.py, html2po, prop2po.py, txt2po: make pot file
5001           headers say charset=utf8 (and make sure encoding is 8bit too)
5002           otherwise gettext tools etc will complain about non-ASCII
5003           characters
5005 2004-07-07 17:08  davidfraser
5007         * storage/properties.py: escape control characters in comments...
5009 2004-07-07 17:07  davidfraser
5011         * misc/quote.py: separated out propertyescapes (renamed from
5012           escapes) and controlchars dicts from mozillapropertiesdecode
5013           added an escapecontrols method
5015 2004-07-07 15:17  davidfraser
5017         * convert/po2prop.py: handle the new escaping produced by prop2po -
5018           we want \n to come through normally, but not \quotes or \\u...
5020 2004-07-07 15:09  davidfraser
5022         * convert/prop2po.py: changed method of escaping strings for po
5023           files
5025 2004-07-07 14:51  davidfraser
5027         * misc/quote.py: mozilla properties stufF: don't convert control
5028           characters to full representation (po converter can do that where
5029           it wants) added controlchars dict to make looking up controlchars
5030           easier (currently they all map to themselves but this could be
5031           changed)
5033 2004-07-07 12:51  davidfraser
5035         * misc/sparse.py: added suport for having a different closing quote
5036           to starting quote character
5038 2004-07-07 12:38  davidfraser
5040         * misc/quote.py: keep all the control characters escaped
5042 2004-07-07 12:29  davidfraser
5044         * storage/properties.py: strip eols from comments and put a
5045           standard \n on
5047 2004-07-05 17:07  davidfraser
5049         * tools/oosetup: added dialing code as an attribute added resource
5050           files handling...
5052 2004-07-05 16:30  davidfraser
5054         * tools/oosetup: set languagename and isocode as attributes...
5055           work out which directories should be renamed based on HostName,
5056           not gid
5058 2004-07-05 16:04  davidfraser
5060         * tools/oosetup: found the cause for missing files, trouble
5061           locating packedsection:  was using straight copy for sections,
5062           so the tokennums child dictionary was having values overwritten.
5063           fixed by using deepcopy.  removed unneccessary error handling...
5064           simplified printout to only print changed file names
5066 2004-07-05 14:57  davidfraser
5068         * tools/oosetup: added directory entry copying (otherwise files
5069           didn't have the corresponding directory section, giving script
5070           errors)
5072 2004-07-05 13:43  davidfraser
5074         * tools/oosetup: refactored adding a foreign file into a method
5075           some pychecker cleanups...
5077 2004-07-05 13:37  davidfraser
5079         * tools/oosetup: added code to modify the lists of files in Modules
5080           to add new files...  changed printout to make it less verbose for
5081           copying files...
5083 2004-07-02 22:53  davidfraser
5085         * tools/oosetup: added code to copy files to a destination
5086           directory, renaming as neccessary some problems with finding the
5087           PackedName need to be fixed
5089 2004-07-02 22:10  davidfraser
5091         * tools/oosetup: added files from other indexes into main file,
5092           rename all relevant files changed token finding to handle token
5093           changes improved tokenrange work took out demo of foreign stuff
5094           as its being used now
5096 2004-07-02 19:25  davidfraser
5098         * tools/oosetup: refactored parsing of section into separate
5099           function   remember tokennums relative to start (renamed from
5100           type)   remember end tokennum relative to start modified
5101           getsource to allow start and end token numbers added method
5102           insertforeignsection to allow copying sections from another index
5103           modified getsource to add in inserted sections (using
5104           foreignindex.getsource) added code to remember which files belong
5105           in which directory added a simple demo of insertforeignsection
5106           for testing
5108 2004-07-02 18:26  davidfraser
5110         * tools/oosetup: redid parsing to handle newline, nesting, ; etc
5111           correctly added initial code to merge setup files, do renaming of
5112           directories
5114 2004-07-02 16:50  davidfraser
5116         * tools/oosetup: added tool for dealing with openoffice
5117           setup.ins/inf scripts
5119 2004-07-01 20:42  dwaynebailey
5121         * tools/TODO: Add TODO items
5123 2004-07-01 17:31  davidfraser
5125         * convert/txt2po: improved logic so blank lines don't end up at
5126           start of text
5128 2004-07-01 12:49  davidfraser
5130         * convert/txt2po: made txt2po do blocks instead of lines
5132 2004-06-30 22:44  davidfraser
5134         * misc/optrecurse.py: don't try and remove stdout!
5136 2004-06-30 22:35  davidfraser
5138         * filters/checks.py: added missing comma (made endwhitespace and
5139           startpunc not have precondition)
5141 2004-06-30 22:25  davidfraser
5143         * filters/checks.py: added ${ } variable matcher for openoffice
5145 2004-06-30 14:50  davidfraser
5147         * filters/checks.py: should call funcmatch, not funcsmatch, when
5148           passing a single function
5150 2004-06-30 14:45  davidfraser
5152         * filters/prefilters.py: changed to use new expanded tokenize
5153           function so parser.source gets set correctly
5155 2004-06-30 14:34  davidfraser
5157         * misc/sparse.py: added option to give tokenizers to tokenize (so
5158           self.source gets set)
5160 2004-06-29 21:13  davidfraser
5162         * filters/prefilters.py: fixed old-style findtokenpos call
5164 2004-06-29 16:32  davidfraser
5166         * filters/TODO: need to use unicode strings otherwise we can split
5167           up multibyte characters in checks...
5169 2004-06-29 16:18  dwaynebailey
5171         * tools/pocount: Untranslated words was incorrectly counting the
5172           msgstr instead of the msgid
5174 2004-06-29 16:16  dwaynebailey
5176         * tools/TODO: Need to be able to merge fuzzy status back to mack
5177           strings fuzzy or to unset fuzzy status
5179 2004-06-29 15:29  dwaynebailey
5181         * convert/TODO: Adding to TODO need for csv2po to have a charset
5182           option to set po header charset.
5184 2004-06-29 14:29  davidfraser
5186         * convert/html2po: initial html2po
5188 2004-06-29 13:54  davidfraser
5190         * convert/txt2po: added txt2po tool
5192 2004-06-29 11:37  davidfraser
5194         * filters/TODO: accelerators are done
5196 2004-06-29 11:16  davidfraser
5198         * filters/checks.py: renamed self.accelerators to self.accelmarkers
5199           to prevent it from hiding the accelerators check method
5201 2004-06-25 17:40  davidfraser
5203         * storage/csvl10n.py: limited quotechars to " (no ' in files from
5204           translators) added intelligence to patch together partial quoting
5205           (probably not neccessary)
5207 2004-06-25 17:37  davidfraser
5209         * convert/csv2po, filters/prefilters.py: updated to new sparse API
5211 2004-06-25 17:36  davidfraser
5213         * misc/sparse.py: updated to a new object-based API all functions
5214           available inside new StringParser object requires changes to any
5215           code using this!
5217 2004-06-24 15:42  davidfraser
5219         * storage/csvl10n.py: added SimpleDictReader which unlike the csv
5220           module doesn't have problems with newlines
5222 2004-06-23 14:17  davidfraser
5224         * misc/csv.py: updated to handle keyword arguments
5226 2004-06-16 19:05  dwaynebailey
5228         * filters/TODO: Check for accelerators
5230 2004-06-09 18:45  davidfraser
5232         * ChangeLog: changed to standard cvs2cl ChangeLog so I don't have
5233           to edit it...
5235 2004-06-09 18:14  davidfraser
5237         * __version__.py: version 0.8 beta 2
5239 2004-06-09 18:13  davidfraser
5241         * filters/pofilter, storage/po.py: added a switch to getunquotedstr
5242           for linebreak inclusion, turn it off for pofilter (still unclear
5243           as to long-term strategy:-) )
5245 2004-06-09 17:55  davidfraser
5247         * convert/po2dtd.py, misc/quote.py: remove all leftover doencode
5248           stuff
5250 2004-06-09 17:49  davidfraser
5252         * misc/optrecurse.py: added more sensible error handling for
5253           missing output directories - try create the directory, report an
5254           error if it fails
5256 2004-06-09 17:38  davidfraser
5258         * convert/TODO: encodings are now utf8 which is better...
5259           properties encodings have been converted as well
5261 2004-06-09 17:36  davidfraser
5263         * convert/moz2po: include non-jar files in extraction for moz2po
5264           ... otherwise we miss install.js
5266 2004-06-09 17:02  davidfraser
5268         * filters/checks.py: added long, split whitespace into start/end
5270 2004-06-09 16:55  davidfraser
5272         * convert/convert.py: get optparse from the optrecurse namespace
5273           (also others can access it here)
5275 2004-06-09 16:42  davidfraser
5277         * misc/quote.py: added implementation for \N{name} unicode escaping
5278           for completion
5280 2004-06-09 16:17  davidfraser
5282         * misc/quote.py: only keep \t and \n when decoding mozilla
5283           properties files
5285 2004-06-09 15:04  davidfraser
5287         * misc/quote.py: rewrote mozillapropertiesdecode based on the C
5288           unicode-escape source this lets us change some of the behaviour
5289           (e.g. how we handle control characters)
5291 2004-06-09 11:06  davidfraser
5293         * filters/checks.py: added doublespacing and puncspacing checks...
5295 2004-06-09 11:01  davidfraser
5297         * filters/helpers.py: use operator.and_ instead of int.__and__ to
5298           and a whole lot of expressions together
5300 2004-06-09 10:41  davidfraser
5302         * filters/decoration.py: don't tread periods that don't have
5303           following digits as part of the number added TODO for
5304           locale-specific delimiters (2,5 for Afrikaans)
5306 2004-06-09 10:31  davidfraser
5308         * misc/optrecurse.py: show progress regardless of success
5310 2004-06-08 17:17  davidfraser
5312         * filters/TODO: preconditions are there now...
5314 2004-06-08 17:03  davidfraser
5316         * filters/checks.py: added ability to have preconditions - don't do
5317           most checks if untraslated...
5319 2004-06-08 16:44  davidfraser
5321         * filters/: checks.py, pofilter: moved all the arguments,
5322           construction of list of filters into pocheckfilter constructor
5323           general refactoring to try do as much as possible once only
5325 2004-06-08 16:13  davidfraser
5327         * tools/pomerge: .msg.I15348
5329 2004-06-08 16:08  davidfraser
5331         * convert/: csv2po, dtd2po.py, moz2po, oo2po, po2csv, po2dtd.py,
5332           po2moz, po2oo, po2prop.py, poreplace.py, prop2po.py: modified all
5333           the scripts to work with new convert parameters based on
5334           translate.misc.optrecurse
5336 2004-06-08 16:07  davidfraser
5338         * filters/: pofilter, pogrep: redid btis of pofilter and pogrep to
5339           work with new translate.misc.optrecurse (filtercmd is gone... bye
5340           bye)
5342 2004-06-08 16:01  davidfraser
5344         * tools/detectencoding: minor fixups for when no matches are
5345           found...
5347 2004-06-08 15:56  davidfraser
5349         * misc/optrecurse.py, convert/convert.py, filters/filtercmd.py:
5350           refactored common code out of convert/convert.py and
5351           filter/filtercmd.py into misc/optrecurse.py this now handles
5352           everything cleanly. filter/filtercmd is no longer neccessary, has
5353           been removed some specialisation and parameters have also
5354           changed, and will affect other files...   recursiveoptions /
5355           convertparameters have been renamed to self.passthrough   all the
5356           convert parameter/method names have changed to process   there is
5357           a new simpler run method which parses the args and passes them to
5358           recursiveprocess
5360 2004-05-28 15:48  davidfraser
5362         * tools/pomerge: added mergeblanks option refactored option
5363           checking into str2bool removed unneccessary default options
5365 2004-05-28 15:42  davidfraser
5367         * tools/pomerge: added option to control merging comments
5369 2004-05-28 15:10  dwaynebailey
5371         * tools/pocount: Changed wording on output slightly to make it
5372           clear that fuzzies wordcount is for the original message
5374 2004-05-28 15:00  davidfraser
5376         * tools/pocount: redid counting to count everything on elements
5377           rather than counting first and summarizing later makes it a bit
5378           slower but better...  also added code to count fuzzy strings /
5379           words
5381 2004-05-25 18:37  davidfraser
5383         * storage/properties.py: use new quote function to decode
5385 2004-05-25 17:31  davidfraser
5387         * misc/quote.py: added a mozillapropertiesdecode function which
5388           does unicode-escape but doesn't transform \\n
5390 2004-05-25 16:43  davidfraser
5392         * storage/po.py: added option whether to merge comments or not in
5393           merge make sure that a blank string with a msgid_comment works
5394           properly
5396 2004-05-25 16:41  davidfraser
5398         * convert/dtd2po.py: only convert elements with valid entities...
5400 2004-05-25 15:38  davidfraser
5402         * tools/pomerge: added docstring to help
5404 2004-05-25 15:31  davidfraser
5406         * convert/dtd2po.py: added comment if field looks like a
5407           height/width/size field, to help translators changed blank
5408           comment to not have \n at end...
5410 2004-05-25 15:07  davidfraser
5412         * convert/convert.py: if there is an error in conversion, give a
5413           warning with the names of the files before raising it made
5414           warning always start on newline by adding \n at beginning
5416 2004-05-25 12:10  davidfraser
5418         * convert/: convert.py, csv2po, dtd2po.py, moz2po, oo2po, po2csv,
5419           po2dtd.py, po2moz, po2oo, po2prop.py, prop2po.py: added
5420           descriptions for command line help using doc strings
5422 2004-05-25 11:42  davidfraser
5424         * README: added a link to the docs page
5426 2004-05-25 11:15  davidfraser
5428         * convert/: po2dtd.py, po2moz, po2prop.py: removed all checking
5429           code as this is now done in the filters area, not when converting
5431 2004-05-21 19:15  davidfraser
5433         * ChangeLog: added changelog for 0.8b1
5435 2004-05-21 19:00  davidfraser
5437         * convert/po2prop.py: .msg.wC8765
5439 2004-05-21 18:58  davidfraser
5441         * __version__.py: version 0.8 beta 1
5443 2004-05-21 18:49  davidfraser
5445         * misc/quote.py: removed escapeunicode and unescapeunicode
5447 2004-05-21 18:49  davidfraser
5449         * convert/: po2prop.py, prop2po.py: removed
5450           escapeunicode/unescapeunicode changed lineending encoding in
5451           po2prop handle multiple lines in prop2po
5453 2004-05-21 18:19  davidfraser
5455         * convert/: dtd2po.py, po2dtd.py, po2moz, po2prop.py, prop2po.py:
5456           added option to po2dtd and po2moz to not run entity and size
5457           checks fixed filename display for checks changed all leftover
5458           ConvertOptionParserExt to ConvertOptionParser
5460 2004-05-21 18:01  davidfraser
5462         * convert/: dtd2po.py, prop2po.py: set charset, encoding in po
5463           output if not a pot file
5465 2004-05-21 17:59  davidfraser
5467         * storage/po.py: added a utf8encode method, encode all unicode
5468           strings as utf8
5470 2004-05-21 17:53  davidfraser
5472         * convert/po2prop.py: do proper mozilla-properties encoding on
5473           po2prop output (for \unnnn strings) fix reference to old
5474           converter class...
5476 2004-05-21 17:51  davidfraser
5478         * storage/properties.py: un-escape unicode-escaped \unnnn strings
5479           on input, re-escape them on output
5481 2004-05-21 17:50  davidfraser
5483         * misc/quote.py: added function to encode a string for a mozilla
5484           (java-style) properties file (we can decode with "unicode-escape"
5485           encoding, but encoding with this gives \xnn instead of \unnnn)
5487 2004-05-21 11:56  davidfraser
5489         * misc/wStringIO.py: fixed basestring (python2.3 only) -> (str,
5490           unicode) (works on python2.2)
5492 2004-05-21 11:48  davidfraser
5494         * storage/dtd.py: fixed creation of blank entities for blank lines
5495           at end of file set entity to None initially, detect this with
5496           isnull added comments to dtdelement class
5498 2004-05-21 11:24  davidfraser
5500         * convert/convert.py: refactored po/pot selection algorithm added a
5501           helper function "potifyformat" to deal with both .po and .xxx.po
5502           (for mozilla) instead of using self.inputformats,
5503           self.outputoptions, added functions filterinputformats and
5504           filteroutputoptions these use options.pot to rename formats as
5505           required the results are stored in options.inputformats,
5506           options.outputoptions which are then used to determine names
5507           instead of self.inputformats, self.outputoptions also changed
5508           getformathelp so it doesn't actually modify the format
5509           dictionaries...
5511 2004-05-20 20:22  dwaynebailey
5513         * convert/dtd2po.py: For msgid's that are blank a correct KDE style
5514           translator comment must end with a literal \n followed by \n ir
5515           \\n\n
5517 2004-05-19 13:37  davidfraser
5519         * convert/po2oo: made languagecode a convertparameter so it gets
5520           passed through...
5522 2004-05-14 16:27  davidfraser
5524         * filters/checks.py: removed unneccessary sparse import
5526 2004-05-11 17:56  davidfraser
5528         * storage/xpi.py: changed to use wStringIO wrapper for cStringIO
5530 2004-05-11 17:52  davidfraser
5532         * misc/wStringIO.py: added wrapper for cStringIO so we can speed up
5533           StringIO operations
5535 2004-05-11 17:35  davidfraser
5537         * misc/zipfileext.py: don't need to write the endrec after a delete
5538           neccessarily...
5540 2004-05-11 16:47  davidfraser
5542         * storage/xpi.py: use zipfileext enhancements to overwrite files
5543           inside zip files (removed TODO) use fix to StringIO to make sure
5544           truncate works for jar files stored in a StringIO...  only
5545           rewrite jar files if they've been changed... but catch their new
5546           value if they have test included jar files when testing the zip
5548 2004-05-11 16:41  davidfraser
5550         * misc/zipfileext.py: added zipfileext which contains code to
5551           delete files in zipfiles, replace them, etc
5553 2004-05-11 11:59  davidfraser
5555         * storage/xpi.py: added spacing between functions
5557 2004-05-10 18:57  davidfraser
5559         * convert/po2moz: if you don't close the outputxpi you never get
5560           the output...  this now actually produces an xpi with
5561           translations the paths still need to be fixed up though...
5563 2004-05-10 18:50  davidfraser
5565         * convert/: convert.py, po2moz: tried to add more intelligence to
5566           close files and not use temp files in po2moz (but use StringIO
5567           rather than stdout for misplaced files)
5569 2004-05-10 18:38  davidfraser
5571         * convert/: Makefile, TODO, convert.py, moz2po, po2moz: added
5572           ability to write xpi files from po2moz (not complete)   major
5573           changes to po2moz to support this   use recurseconversion to read
5574           in the files rather than recurseinputfiles   added xpi file
5575           creation...  renamed checksubdir in convert to checkoutputsubdir,
5576           pass options instead of options.output made gettemplatename
5577           handle inputname=None (for stdin) etc handle IndexErrors when
5578           trying to map paths to xpi file added test for po2moz writing
5579           .xpi changed TODO - can now handle non-dtd/properties files
5581 2004-05-10 17:44  davidfraser
5583         * convert/: Makefile, convert.py, moz2po, po2moz: added ability to
5584           handle wildcards in convert for extensions ("*" matches anything)
5585           added ability to po2moz, moz2po to handle non-dtd, non-properties
5586           files by copying them added ability to po2moz to handle xpi files
5587           for templates   - po2moz now has a MozConvertOptionParser like
5588           moz2po does, but it does some different stuff renamed methods
5589           recursefiles to recurseinputfiles, etc in convert made convert
5590           methods return lists instead of yielding generators added
5591           copyinput, copytemplate methods to convert that can be used to
5592           copy files
5594 2004-05-10 17:34  davidfraser
5596         * convert/po2prop.py: changed xreadlines to readlines so it can
5597           work on StringIO from xpi
5599 2004-05-10 16:31  davidfraser
5601         * convert/moz2po: moved inputxpi, templatexpi generation to
5602           recursefiles started updating to name files dtd.po, properties.po
5603           instaed of plain .po
5605 2004-05-10 16:28  davidfraser
5607         * convert/convert.py: made splitinputext, splittemplateext methods
5608           to split the extension and replace the .
5610 2004-05-10 16:19  davidfraser
5612         * storage/po.py: added an overwrite parameter to merge that allows
5613           overwriting existing msgstr...
5615 2004-05-10 16:18  davidfraser
5617         * tools/pomerge: overwrite msgstr in target regardless...
5619 2004-05-10 15:50  dwaynebailey
5621         * filters/: checks.py, pofilter: Add --kde to handle KDE specific
5622           accelerators and variables
5624 2004-05-10 15:49  dwaynebailey
5626         * convert/TODO: Add .properties UTF<->escaped unicode to wish list
5628 2004-05-10 15:20  davidfraser
5630         * convert/: moz2po, convert.py: removed unneccessary imports of
5631           optparse from moz2po also added warning method to convert so
5632           import sys in moz2po is unneccessary
5634 2004-05-07 17:15  davidfraser
5636         * convert/TODO: added some more TODOs
5638 2004-05-07 16:54  davidfraser
5640         * convert/Makefile: added missing test from moz2po suite
5642 2004-05-07 16:54  davidfraser
5644         * tools/pomerge: converted podiff and pomerge to use new output
5645           syntax (and handle any combinatino of po, pot)
5647 2004-05-07 16:52  davidfraser
5649         * convert/: csv2po, dtd2po.py, oo2po, po2csv, po2dtd.py, po2moz,
5650           po2oo, po2prop.py, poreplace.py, prop2po.py: updated all
5651           conversion scripts to use new formats syntax
5653 2004-05-07 16:50  davidfraser
5655         * convert/moz2po: converted moz2po to work with new format system
5656           (see convert.py)
5658 2004-05-07 16:49  davidfraser
5660         * convert/convert.py: overhauled the handling of input and output
5661           formats in convert this allows more sanity and flexibility
5662           basically formats expects a dictionary with keys either as
5663           inputformats or (inputformat, templateformat) tuples and values
5664           as tuples of (outputformat, convertmethod) this obliviates the
5665           need of ConvertOptionParseExt
5667 2004-05-07 15:57  davidfraser
5669         * tools/pocount: added pocount tool
5671 2004-05-07 15:18  davidfraser
5673         * filters/pofilter: don't skip over fuzzy elements...
5675 2004-05-07 15:06  davidfraser
5677         * filters/pofilter: added includefuzzy option to runpofilter (left
5678           out when adding option)
5680 2004-05-07 14:57  davidfraser
5682         * filters/pofilter: added code to include fuzzy elements
5684 2004-05-07 14:51  davidfraser
5686         * storage/xpi.py: added code to prevent generating an error if a
5687           directory is present that doesn't match commonprefix (currently
5688           happens in moz1.0/langengb.xpi)
5690 2004-05-07 14:45  davidfraser
5692         * __version__.py: version 0.8 prerelease time
5694 2004-05-07 14:42  davidfraser
5696         * convert/convert.py, filters/filtercmd.py, misc/progressbar.py:
5697           removed curses progress option throughout (it never worked)
5699 2004-05-07 14:36  davidfraser
5701         * convert/: dtd2po.py, moz2po, prop2po.py: added support for
5702           blanking msgstr when -P|--pot option is given
5704 2004-05-04 17:57  davidfraser
5706         * convert/: moz2po, po2moz: took out unneccessary imports
5708 2004-05-04 17:53  davidfraser
5710         * convert/convert.py: added code to prevent usage of older versions
5711           of optparse that can be installed alongside python 2.2
5713 2004-05-04 17:12  davidfraser
5715         * storage/xpi.py: added clone method for xpi, and TODO to work out
5716           how to write without appending
5718 2004-05-04 16:38  davidfraser
5720         * storage/xpi.py: converted to only use StringIO as cStringIO Input
5721           streams are unwriteable added CatchPotentialOutput class which is
5722           an InputStream that can become an OutputStream always add files
5723           to potentialsave, only actually add them if not already there
5724           open jarfiles in the same mode as the xpi (mostly to allow append
5725           to function) open jarfiles as CatchPotentialOutput streams when
5726           planning to use them for input
5728 2004-05-04 15:26  davidfraser
5730         * storage/xpi.py: make sure commonprefix doesn't swallow up a whole
5731           file changed default extractdir to prevent errors...
5733 2004-05-04 15:14  davidfraser
5735         * storage/xpi.py: added funky code to prevent funky error (if close
5736           is called from __del__ it can't see the class or anything except
5737           for self) all explained nicely in comments
5739 2004-05-04 14:03  davidfraser
5741         * storage/xpi.py: create directories if required in extraction
5743 2004-05-04 13:46  davidfraser
5745         * storage/po.py: allow display of a blank po entry if it has
5746           msgidcomments...
5748 2004-05-04 13:43  davidfraser
5750         * convert/dtd2po.py: add a comment to explain an original being
5751           blank (this prevents it from being an invalid po file)
5753 2004-05-04 13:08  davidfraser
5755         * convert/convert.py: fixed missing case for stdin input
5757 2004-05-04 12:56  davidfraser
5759         * convert/prop2po.py: fixed ... was trying to extend list with a
5760           string so came out wierd...
5762 2004-05-04 11:00  davidfraser
5764         * storage/xpi.py: added TODOs to redo file mapping
5766 2004-05-04 09:50  davidfraser
5768         * convert/convert.py: rearranged setpotoption logic, forget about
5769           input/outputformats
5771 2004-04-30 18:22  davidfraser
5773         * storage/xpi.py: added doc strings for new classes
5775 2004-04-30 18:15  davidfraser
5777         * storage/xpi.py: added some initial work at outputting xpis (all
5778           about catching close events for inner zip files) some conversion
5779           to newstyle classes
5781 2004-04-30 17:18  davidfraser
5783         * convert/moz2po: check that fileoption is a string before we check
5784           if it looks like an xpi filename (to avoid doing this to lists)
5786 2004-04-30 17:15  davidfraser
5788         * convert/convert.py: added code to handle multiple input files as
5789           a list (and find a common directory for them)
5791 2004-04-30 16:52  davidfraser
5793         * convert/moz2po: removed TODO about importing translations, as can
5794           be done using templates
5796 2004-04-30 16:33  davidfraser
5798         * convert/convert.py: improved usage string by rearranging order,
5799           adding parameters for optionality (only affects usage string)
5800           required giving inputformats and outputformats to setpotoption as
5801           not set on self yet
5803 2004-04-30 16:24  davidfraser
5805         * convert/: Makefile, convert.py: added code to handle input and
5806           output parameters without needing -i/-o (decided it was better in
5807           runconversion than recurseconversion, so put it there and changed
5808           args)
5810 2004-04-30 16:05  davidfraser
5812         * tools/pomerge: use new simpler parser.runconversion() to run the
5813           operation
5815 2004-04-30 16:00  davidfraser
5817         * convert/: convert.py, csv2po, dtd2po.py, moz2po, oo2po, po2csv,
5818           po2dtd.py, po2moz, po2oo, po2prop.py, poreplace.py, prop2po.py:
5819           updated runconversion to handle the options and argument parsing
5820           and error handling moved recursive checking logic into
5821           recurseconversion added args to recurseconversion options (can
5822           maybe use for input/output params) removed extraneous import from
5823           poreplace.py
5825 2004-04-30 15:38  davidfraser
5827         * convert/: TODO, oo2po: oo2po: used new convertparameters
5828           attribute to pass the pot option through to convertoo TODO: took
5829           out TODO for recursion
5831 2004-04-30 15:27  davidfraser
5833         * tools/pomerge: removed recursion option, since it is now detected
5834           automatically
5836 2004-04-30 15:27  davidfraser
5838         * convert/: Makefile, convert.py, csv2po, dtd2po.py, moz2po, oo2po,
5839           po2csv, po2dtd.py, po2moz, po2oo, po2prop.py, poreplace.py,
5840           prop2po.py: totally removed recursive options since all this is
5841           now done automatically...
5843 2004-04-30 15:15  davidfraser
5845         * convert/: convert.py, moz2po: simplified handling of recursion on
5846           output and templates (set option.recursivexxx and check in
5847           getfullxxxpath rearrange xpi handling on moz2po so runconversion
5848           doesn't have to be overridden.
5850 2004-04-30 14:51  davidfraser
5852         * convert/: convert.py, moz2po: tried to improve intelligence of
5853           recursion detection (recurse iff the input is a directory) allow
5854           specifying input and output files, going through same method as
5855           if recursing a directory replaced inputisxpi and templateisxpi in
5856           moz2po with isxpi
5858 2004-04-29 17:31  davidfraser
5860         * convert/Makefile: changed all dirs to ?= so they can be
5861           overridden
5863 2004-04-29 17:24  davidfraser
5865         * convert/convert.py, storage/xpi.py: replaced os.path.sep,
5866           os.path.extsep with os.sep, os.extsep for python2.2 compat
5868 2004-04-29 17:19  davidfraser
5870         * convert/convert.py, filters/filtercmd.py: changed basestring to
5871           (str, unicode) for python2.2 compatibility
5873 2004-04-29 17:17  davidfraser
5875         * convert/moz2po: added __future__ for python 2.2 compatibility
5877 2004-04-29 17:13  davidfraser
5879         * filters/filtercmd.py, storage/xpi.py, convert/convert.py: added
5880           from __future__ import generators to files using yield, for
5881           python 2.2 compatibility
5883 2004-04-24 12:50  davidfraser
5885         * ChangeLog: added changelog for 0.7.1
5887 2004-04-24 11:34  davidfraser
5889         * ChangeLog: Added ChangeLog for 0.7
5891 2004-04-24 10:44  davidfraser
5893         * __version__.py: version 0.7.1
5895 2004-04-24 10:44  davidfraser
5897         * convert/Makefile: removed .py from files that have been renamed
5899 2004-04-23 23:04  davidfraser
5901         * storage/xpi.py: added crucial missing link in ospathexists...
5903 2004-04-23 22:57  davidfraser
5905         * storage/po.py: in merge, merge comments rather than adding them
5906           to avoid duplicates tried to improve fuzziness algorithm in merge
5908 2004-04-23 22:55  davidfraser
5910         * storage/xpi.py: added options to treat xpi.py like an unzip
5911           program...
5913 2004-04-23 22:54  davidfraser
5915         * tools/pomerge: used po merge method instead of doing it
5916           ourselves...
5918 2004-04-23 22:52  davidfraser
5920         * ChangeLog: added ChangeLog from 2004-03-31
5922 2004-04-23 22:50  davidfraser
5924         * __version__.py: version 0.7
5926 2004-04-23 22:49  davidfraser
5928         * convert/: csv2po, csv2po.py, oo2po, oo2po.py, po2csv, po2csv.py,
5929           po2oo, po2oo.py: renamed oo2po, po2oo, csv2po, po2csv from .py
5930           files to scripts without .py extension
5932 2004-04-23 16:57  davidfraser
5934         * tools/pomerge: added support for using .pot files as templates
5935           took out obsolete runconversion argument
5937 2004-04-23 16:38  davidfraser
5939         * convert/Makefile: only clean after all tests (csvtests need stuff
5940           from openofficetests)
5942 2004-04-23 16:28  davidfraser
5944         * convert/convert.py: added method to pass certain command-line
5945           options through to convertmethod as parameters
5947 2004-04-23 15:26  davidfraser
5949         * convert/Makefile: made test-csv2po use standard oo templates
5950           rather than af (which were .po not .pot)
5952 2004-04-23 15:24  davidfraser
5954         * convert/: convert.py, csv2po.py, dtd2po.py, moz2po, oo2po.py,
5955           po2csv.py, po2dtd.py, po2moz, po2oo.py, po2prop.py, poreplace.py,
5956           prop2po.py: removed convertmethod option from runconversion
5957           (since this was a special case for single input and output,  and
5958           we can determine it from the filenames or guess) added
5959           removeduplicates call to oo2po
5961 2004-04-22 12:50  davidfraser
5963         * convert/TODO: added TODO to handle originals in xpis
5965 2004-04-20 11:51  davidfraser
5967         * convert/moz2po: added switches to only include localization files
5968           from xpi - thus avoiding unneccessary commonprefix
5970 2004-04-20 11:48  davidfraser
5972         * storage/xpi.py: added method islocfile, argument includenonloc
5973           code to allow only browsing localizable files (and only counting
5974           them for commonprefix) added methods jarfileexists, ospathexists
5976 2004-04-20 11:36  davidfraser
5978         * convert/moz2po: only check if template is a file if it is filled
5979           in (could be None)
5981 2004-04-18 22:46  davidfraser
5983         * convert/oo2po.py: added kludge to get --pot into blankmsgstr
5984           (real fix is to pass options like we do in filters)
5986 2004-04-18 22:38  davidfraser
5988         * convert/po2oo.py: return True to show output is successful
5990 2004-04-16 18:25  davidfraser
5992         * convert/TODO: have done unpacking xpi added TODO to remove need
5993           for -R switch
5995 2004-04-16 16:23  davidfraser
5997         * tools/detectencoding: updated to be able to handle multiple words
5998           having the same fuzzyword (in which case they are ignored) use a
5999           dictionary as dictword to handle this also output script in order
6000           of count decreasing, and show count
6002 2004-04-16 15:43  davidfraser
6004         * tools/detectencoding: factored out updatecharmap, writescript
6006 2004-04-16 15:32  davidfraser
6008         * tools/detectencoding: added option to generate a script that will
6009           do the changes found by fuzzymatch...
6011 2004-04-16 15:31  davidfraser
6013         * convert/poreplace.py: added poreplace script as basis for tools
6014           to replace stuff inside po files
6016 2004-04-16 15:25  davidfraser
6018         * convert/convert.py: added check for self.usetemplates...
6020 2004-04-16 15:13  davidfraser
6022         * convert/convert.py: replaced calls to get functions with calls to
6023           open functions added TODO
6025 2004-04-16 14:58  davidfraser
6027         * tools/detectencoding: tell the user if they haven't requested any
6028           action...
6030 2004-04-16 14:55  davidfraser
6032         * tools/detectencoding: don't store options that we can just use
6033           straight from self.options moved filename init from __init__ to
6034           recursefiles only print filename if verbose added lots of
6035           docstrings changed names of functions (especially handle...) to
6036           make it clearer
6038 2004-04-16 14:47  davidfraser
6040         * tools/detectencoding: added option for ignorecase (so we don't do
6041           lower unless ignorecase is true)
6043 2004-04-16 14:43  davidfraser
6045         * tools/detectencoding: added code to fuzzymatch to count
6046           correspondence of chars, print out results
6048 2004-04-16 14:29  davidfraser
6050         * tools/detectencoding: fixed mistake in countmaps...  factored out
6051           findwords from testwordstats fixed decodedwords being undecoded
6052           in fuzzymatch simplified printout of fuzzymatch (only one
6053           encoding)
6055 2004-04-16 14:22  davidfraser
6057         * tools/detectencoding: split fuzzymatch off from testwordstats,
6058           made it a different test fixed some bugs (decodedwords was
6059           actually translationwords!) made fuzzymatch use only one encoding
6060           added docstring for testcharstats
6062 2004-04-16 14:07  davidfraser
6064         * tools/detectencoding: factored out makecountmap method add
6065           docstring for fuzzy
6067 2004-04-16 14:03  davidfraser
6069         * tools/detectencoding: renamed getcountmap to updatecountmap
6071 2004-04-16 13:34  davidfraser
6073         * tools/detectencoding: improved fuzzy matching (number of chars of
6074           non-std chars doesn't have to match) added unique and verbose
6075           options
6077 2004-04-16 13:20  davidfraser
6079         * tools/detectencoding: moved listencodings, options into detector
6080           class changed testencodings to testcharstats added testwordstats,
6081           also handles fuzzy word matching added options to select tests
6082           added limitencodings option
6084 2004-04-15 18:07  davidfraser
6086         * convert/convert.py: tried to replace old
6087           getinput/output/templatefile methods with
6088           openinput/output/templatefile (not tested!)
6090 2004-04-15 18:02  davidfraser
6092         * convert/: Makefile, moz2po: added initial support for xpi
6093           templates still need to support different filename structure
6094           moved initialization of options.inputxpi
6096 2004-04-15 17:40  davidfraser
6098         * convert/: Makefile, moz2po: removed -x switch from moz2po -
6099           automatically detect xpi file / dir
6101 2004-04-15 17:34  davidfraser
6103         * storage/xpi.py: added actual xpi filename into name of
6104           inputstream
6106 2004-04-15 17:29  davidfraser
6108         * convert/: convert.py, moz2po: added code to convert to handle
6109           temporary output files using StringIO now moz2po.convertfile is
6110           not neccessary...
6112 2004-04-15 17:14  davidfraser
6114         * convert/: moz2po, convert.py: changed recursefiles to just yield
6115           list of inputpaths instead of output, templates, ext etc moved
6116           generation of output names, template names, etc to
6117           recurseconversion added methods openinputfile, openoutputfile,
6118           opentemplatefile to open the files...  changed getconvertmethod
6119           to take inputpath, outputpath instead of extensions improved
6120           logic of gettemplatename (detect if not using templates here, not
6121           outside) made moz2po simpler by overriding openinputfile also
6122           don't need to checksubdir for every subdir in moz2po, just let
6123           convert handle it
6125 2004-04-15 16:46  davidfraser
6127         * storage/xpi.py: added clever trickery so streams can have names
6128           like normal files (so for example a converted po file will
6129           contain the 'name' of the .dtd file from inside the xpi)
6131 2004-04-15 16:22  davidfraser
6133         * convert/Makefile: added test for moz2po from xpi
6135 2004-04-15 16:20  davidfraser
6137         * convert/: convert.py, moz2po: added methods
6138           getfullinput/output/templatepath so they can be overridden in
6139           derived classes (and overrode getinputpath in moz2po for xpi
6140           files) this makes recurseconversion much simpler, so it doesn't
6141           need to be overridden in moz2po improved directory creation
6142           scheme (create a directory if we're going to create a file that
6143           needs it)
6145 2004-04-15 10:13  davidfraser
6147         * storage/xpi.py: fixed bug with giving reduce an initial value -
6148           limits the result thus commonprefix wasn't working...
6150 2004-04-15 09:32  davidfraser
6152         * convert/moz2po: made non-xpi recursion return (otherwise it does
6153           the standard thing, then tries the xpi thing too)
6155 2004-04-15 09:15  davidfraser
6157         * convert/Makefile: added help to Makefile
6159 2004-04-10 09:47  davidfraser
6161         * convert/moz2po: fixed wrong reference to base class added sys
6162           import for warning output
6164 2004-04-10 09:18  davidfraser
6166         * storage/xpi.py: gave initial value to reduce to prevent error on
6167           empty list in commonprefix
6169 2004-04-08 15:36  davidfraser
6171         * convert/moz2po: added initial code to handle reading files
6172           straight out of an xpi
6174 2004-04-08 15:32  davidfraser
6176         * convert/convert.py: initprogressbar needs to return allfiles as
6177           sometimes it converts it from a generator to a list...
6179 2004-04-08 15:04  davidfraser
6181         * storage/xpi.py: added openinputstream method for getting a
6182           file-like input stream from a file (inside the xpi or an inner
6183           jar) added includedirs parameter to iterextractnames
6185 2004-04-08 14:32  davidfraser
6187         * storage/xpi.py: added functions jartoospath and ostojarpath that
6188           handle finding files inside jars
6190 2004-04-08 13:56  davidfraser
6192         * convert/convert.py: refactored recurseconversion - was too
6193           complex and difficult to override added methods initprogressbar
6194           and convertfile
6196 2004-04-08 11:12  davidfraser
6198         * storage/xpi.py: modified _commonprefix to handle strings as well
6199           as lists use it to simplify jarprefixes (strip leading
6200           languagename-)
6202 2004-04-08 11:04  davidfraser
6204         * storage/xpi.py: a lot of refactoring extracted _commonprefix
6205           method added a XpiFile constructor that reads out the important
6206           information cache jarfiles in self.jarfiles so they aren't
6207           extracted repeatedly added stripcommonprefix, findjarprefixes
6208           methods added ziptoospath, ostozippath methods this all
6209           simplifies iterextractnames a lot
6211 2004-04-08 10:12  davidfraser
6213         * storage/xpi.py: added xpi module
6215 2004-04-06 13:53  davidfraser
6217         * tools/detectencoding: added tool to detect encoding of files
6218           (currently po files)
6220 2004-04-03 18:11  davidfraser
6222         * storage/po.py: fixed wrong variable names
6224 2004-03-31 09:13  davidfraser
6226         * filters/: checks.py, decoration.py: added checks for numbers
6228 2004-03-31 09:00  davidfraser
6230         * filters/checks.py: separated quoting into singlequoting and
6231           doublequoting removed unneccessary calls to
6232           filterwordswithpunctuation prefilter
6234 2004-03-31 08:56  davidfraser
6236         * filters/prefilters.py: added code to detect any apostrophe in the
6237           middle of a word as not being punctuation
6239 2004-03-31 08:42  davidfraser
6241         * convert/po2csv.py: added ' to list of values to be escaped at
6242           start of string (spreadsheet cell)...
6244 2004-03-31 08:29  davidfraser
6246         * ChangeLog: added proper changelog for 0.6 (try keep this up to
6247           date :-))
6249 2004-03-30 18:20  davidfraser
6251         * filters/prefilters.py: added TODO to fix up punctuation check
6253 2004-03-30 18:19  davidfraser
6255         * ChangeLog: witty change log
6257 2004-03-30 18:15  davidfraser
6259         * __version__.py: version 0.6
6261 2004-03-30 18:11  davidfraser
6263         * filters/prefilters.py: added more common words with
6264           punctuation...
6266 2004-03-30 18:10  davidfraser
6268         * filters/pofilter: updated pofilter to handle plurals in po
6270 2004-03-30 18:07  davidfraser
6272         * filters/filtercmd.py: show progress whether successful or not
6273           (not usually just means a blank file, we are still
6274           progressing...)
6276 2004-03-30 18:04  davidfraser
6278         * tools/pomerge: added po merge tool
6280 2004-03-30 16:22  davidfraser
6282         * storage/po.py: renamed hasplurals to hasplural improved creation
6283           of index (always create entry in msgidindex, makes sourceindex
6284           simpler)
6286 2004-03-30 15:45  davidfraser
6288         * convert/csv2po.py: added code to handle duplicate source strings
6289           so they don't fool us...
6291 2004-03-30 14:55  davidfraser
6293         * filters/pogrep: added grep tool for po files
6295 2004-03-30 14:55  davidfraser
6297         * convert/csv2po.py: added handling for plural forms
6299 2004-03-30 14:45  davidfraser
6301         * convert/po2csv.py: added handling for msgid_plural refactored so
6302           convertstring is used generally
6304 2004-03-30 14:28  davidfraser
6306         * storage/po.py: refactored stuff so we don't calculate lengths all
6307           over the place.  This also handles plurals in msgstr
6309 2004-03-30 14:10  davidfraser
6311         * storage/po.py: added ability to handle msgid_plural and msgstr[n]
6312           refactored each part's construction into getmsgpartstr
6314 2004-03-30 12:22  davidfraser
6316         * filters/checks.py: gave filters shorter names to make them easier
6317           on the command line
6319 2004-03-30 12:00  davidfraser
6321         * convert/convert.py: added code to handle outputing to the input
6322           or template file without overwriting them (use temp file)
6324 2004-03-30 11:30  davidfraser
6326         * filters/: checks.py, decoration.py: rearranged checkss -added
6327           whitespace (and associated decoration functions) and separated
6328           startandend
6330 2004-03-30 11:28  davidfraser
6332         * filters/pofilter: refactored the getfilterdocs approach
6334 2004-03-30 11:21  davidfraser
6336         * filters/pofilter: updated to show filter documentation as well
6337           when listing filters
6339 2004-03-30 10:46  davidfraser
6341         * storage/csvl10n.py: don't need to join lines with a linebreak
6342           since they already have one...
6344 2004-03-30 10:39  davidfraser
6346         * convert/csv2po.py: removed doencode (what was it there for?)
6348 2004-03-30 10:29  davidfraser
6350         * convert/csv2po.py: moved header testing out of template-merging
6351           code to make it apply to all conversions
6353 2004-03-30 10:17  davidfraser
6355         * filters/: checks.py, pofilter: added gnome checking option
6357 2004-03-30 10:16  davidfraser
6359         * convert/convert.py: made templates pot files if output is po
6360           (needs cleanup)
6362 2004-03-30 10:14  davidfraser
6364         * convert/csv2po.py: merged csv2po and repo into one class so we
6365           can sort out related issues together...
6367 2004-03-29 21:59  davidfraser
6369         * filters/pofilter: addoption to list all filters instead of
6370           actually running them
6372 2004-03-29 16:28  davidfraser
6374         * storage/po.py: added option to check if msgstr is blank
6376 2004-03-23 14:03  davidfraser
6378         * convert/convert.py: added ability to use templates in
6379           non-recursive case...
6381 2004-03-13 20:57  dwaynebailey
6383         * filters/TODO: Updated TODO items
6385 2004-03-12 18:20  davidfraser
6387         * filters/TODO: added TODO file...
6389 2004-03-12 18:20  davidfraser
6391         * __version__.py: version 0.5
6393 2004-03-12 18:15  davidfraser
6395         * filters/pofilter: .msg.d10442
6397 2004-03-12 17:49  davidfraser
6399         * filters/filtercmd.py: added ability to pass options through to
6400           filter command by specifying option keywords...
6402 2004-03-12 17:49  davidfraser
6404         * filters/pofilter: added ability to specify filterobject used new
6405           ability to pass options into filter command to allow
6406           openoffice/mozilla checker, handle includereview etc
6408 2004-03-12 17:32  davidfraser
6410         * convert/convert.py: added TODO about refactoring to share common
6411           code with filters.filtercmd limited progress options to available
6412           choices
6414 2004-03-12 17:32  davidfraser
6416         * filters/pofilter: modified to use new run_filters method of
6417           checks added TODO about handling options fixed filter. to
6418           filtercmd.  renamed input to inputarg to avoid pychecker warning
6420 2004-03-12 17:30  davidfraser
6422         * filters/filtercmd.py: made progress options limited to the
6423           availablae choices
6425 2004-03-12 17:27  davidfraser
6427         * filters/checks.py: .msg.bm9152
6429 2004-03-12 17:11  davidfraser
6431         * filters/pofilter: renamed filter to filtercmd removed unused
6432           options...
6434 2004-03-12 17:09  davidfraser
6436         * filters/: filter.py, filtercmd.py: renamed filter to filtercmd
6437           since filter is a builtin function
6439 2004-03-12 17:01  davidfraser
6441         * filters/pofilter: added pofilter tool which curently uses checks
6442           to filter po files
6444 2004-03-12 16:58  davidfraser
6446         * filters/filter.py: added filter as base class for filter tools
6448 2004-03-12 16:55  davidfraser
6450         * convert/: moz2po, po2moz: removed unneccessary imports...
6452 2004-03-12 16:51  davidfraser
6454         * storage/po.py: forgot to remove po. when moving makeheader into
6455           po
6457 2004-03-12 16:44  davidfraser
6459         * convert/csv2po.py: added a TODO to merge the two classes defined
6460           here also added a redundant return to avoid a pychecker error...
6462 2004-03-12 16:36  davidfraser
6464         * convert/dtd2po.py: moved po header creation into storage.po (all
6465           the other cvs comments say convert/dtdpo.py because I messed up
6466           the command line)
6468 2004-03-12 16:35  davidfraser
6470         * convert/oo2po.py, convert/prop2po.py, storage/po.py:
6471           convert/dtd2po.py
6473 2004-03-12 16:34  davidfraser
6475         * convert/po2csv.py: removed unused modules
6477 2004-03-12 16:24  davidfraser
6479         * convert/csv2po.py: moved the counts about matching strings so
6480           they don't get called added in a TODO to display them in verbose
6481           mode
6483 2004-03-12 16:17  davidfraser
6485         * filters/.cvsignore: added .cvsignore for filters
6487 2004-03-12 16:14  davidfraser
6489         * misc/sparse.py: .msg.cR7134
6491 2004-03-12 16:12  davidfraser
6493         * misc/quote.py: changed from cp1250 to iso-8859-1 and added FIXME
6494           to avoid things like doencode...
6496 2004-03-12 16:08  davidfraser
6498         * convert/po2csv.py: handle blank po elements (don't produce a
6499           blank csv line)
6501 2004-03-12 16:00  davidfraser
6503         * convert/Makefile: fixed csv2po to use appropriate templates...
6505 2004-03-12 15:57  davidfraser
6507         * convert/: convert.py, csv2po.py, oo2po.py, po2csv.py, po2oo.py:
6508           updated to make convertmethods work...  only show filename if
6509           successful...  improved handling of header in csv2po
6511 2004-03-12 15:45  davidfraser
6513         * convert/csv2po.py: fixed to use standard Convert class, make
6514           templates like input imported sparse option converted extract. to
6515           quote. (from old code)
6517 2004-03-12 15:38  davidfraser
6519         * convert/csv2po.py: changed csv2po from defaultrecursion to
6520           optionalrecursion
6522 2004-03-12 15:36  davidfraser
6524         * convert/Makefile: allow the progress option to be set by an
6525           environment variable
6527 2004-03-12 15:34  davidfraser
6529         * convert/oo2po.py: indicate if outputpo is empty (so it can be
6530           removed by convertor)
6532 2004-03-12 15:31  davidfraser
6534         * convert/csv2po.py: added in the repo class (previously csv2po2)
6535           that allows conversion using a .po template converted to use
6536           convert.ConvertOptionParser methods...
6538 2004-03-12 15:15  davidfraser
6540         * convert/po2csv.py: converted totally to
6541           convert.ConvertOptionParser system
6543 2004-03-12 15:12  davidfraser
6545         * convert/Makefile: added better system of categorization now you
6546           can test-mozilla, test-openoffice, test-csv, or clean- each of
6547           them also added csv tests...
6549 2004-03-12 15:10  davidfraser
6551         * convert/convert.py: updated formathelp to handle format
6552           dictionaries...
6554 2004-03-12 15:01  davidfraser
6556         * convert/: oo2po.py, po2dtd.py, po2prop.py: removed unneccessary
6557           imports...
6559 2004-03-12 14:30  davidfraser
6561         * convert/: oo2po.py, po2oo.py: converted to use new
6562           ConvertOptionParser runconversion system
6564 2004-03-12 14:25  davidfraser
6566         * convert/: dtd2po.py, moz2po, prop2po.py: moved convertdtd to
6567           dtd2po and convertprop to prop2po (updated existing methods)
6568           converted main methods in dtd2po and prop2po to use convert
6570 2004-03-12 14:17  davidfraser
6572         * convert/: moz2po, dtd2po.py, po2dtd.py, po2moz, po2prop.py,
6573           prop2po.py: updated Mozilla command lines to use new
6574           ConvertOptionParserExt (this gives the .dtd.po instead of simple
6575           .po handling capabilities) changed old --pot options to new
6576           usepots took out silly comments
6578 2004-03-12 14:12  davidfraser
6580         * convert/convert.py: split off the code that combines extensions
6581           (e.g. .dtd.pot) into a subclass, do a simpler thing in
6582           ConvertOptionParser improved template format intelligence (allow
6583           user to override whether template is like input or output)
6585 2004-03-12 13:20  davidfraser
6587         * convert/convert.py: improved the logic for detecting
6588           input/outpformats to be based on dict/list rather than
6589           single/multiple (this is to help po2dtd.py and po2prop.py) also
6590           added a TODO to improve it further...
6592 2004-03-12 13:10  davidfraser
6594         * convert/: po2dtd.py, po2moz, po2prop.py: moved convertdtd to
6595           po2dtd and convertprop to po2prop (updated existing methods)
6596           converted main methods in po2dtd and po2prop to use convert
6598 2004-03-12 12:32  davidfraser
6600         * convert/Makefile: added makefile that runs tests...
6602 2004-03-12 12:30  davidfraser
6604         * convert/convert.py: added a none option for progresstype
6606 2004-03-12 12:28  davidfraser
6608         * convert/po2oo.py: fixed reference to optparse (the rest of this
6609           needs to be updated though...)
6611 2004-03-12 11:34  davidfraser
6613         * misc/progressbar.py: added an invisible progress bar...
6615 2004-03-12 11:10  davidfraser
6617         * filters/prefilters.py: removed unused variable (what was it for?)
6619 2004-03-12 08:16  davidfraser
6621         * convert/convert.py: strip off the . before the inputext (like we
6622           do with the outputext)
6624 2004-03-11 07:22  davidfraser
6626         * misc/: quote.py, setup.py: renaming variables for pychecker
6627           updated _cvs version in setup
6629 2004-03-11 06:32  davidfraser
6631         * storage/: po.py, properties.py: renamed/removed variables to
6632           remove pychecker warnings...
6634 2004-03-11 06:29  davidfraser
6636         * convert/convert.py: fixed errors picked up py pychecker (and
6637           Caio!)
6639 2004-03-10 18:56  davidfraser
6641         * filters/: checks.py, prefilters.py: refactored so all the helper
6642           functions are in TranslationChecker (and automatically
6643           ignored...) also made accelerators and varmatch parameters so
6644           they don't have to be defined in prefilters...  moved the
6645           definitions for OpenOffice and Mozilla into classes in checks
6646           removed unneeded stuff from prefilter
6648 2004-03-10 18:38  davidfraser
6650         * filters/helpers.py: added default argument to reduce calls so if
6651           list is empty, no error is produced...
6653 2004-03-10 18:03  davidfraser
6655         * filters/: checks.py, prefilters.py: moved all the checks in
6656           checks into a class adjusted the wrapping of prefilters to work
6657           in a more readable fashion...  fixed unneccessary parameter in
6658           prefilters
6660 2004-03-10 16:36  davidfraser
6662         * filters/: __init__.py, checks.py, decoration.py, helpers.py,
6663           prefilters.py: added initial versions of filtering code...
6665 2004-03-08 18:50  davidfraser
6667         * convert/convert.py: adapted to support using .pot files instead
6668           of .po files adapted to handle multiple input formats, one output
6669           format fixed prunesubdirs...
6671 2004-03-02 17:16  davidfraser
6673         * convert/po2csv.py: temporarily added import optparse to handle
6674           errors added header columns to csv
6676 2004-03-02 16:57  davidfraser
6678         * convert/po2moz: converted to use convert module for recursion,
6679           option handling made convert functions return 1 so that they are
6680           registered as successful...  took out unneccessary code,
6681           rearranged rest...
6683 2004-03-02 13:52  davidfraser
6685         * convert/convert.py: added support for verbose progress output...
6687 2004-03-02 13:52  davidfraser
6689         * misc/progressbar.py: added Simple, Verbose progress bars...
6690           added verbosemessage option
6692 2004-03-02 13:43  davidfraser
6694         * convert/convert.py: refactored recursion.  added support for
6695           progress indicators added support for multiple output formats
6696           instead of input formats
6698 2004-03-02 12:44  davidfraser
6700         * misc/progressbar.py: added progress bar classes...
6702 2004-03-02 11:49  davidfraser
6704         * convert/convert.py: reverted patch to only use single
6705           outputformat (po2moz needs multiple)...  still need to make it
6706           work out extension in that case...  changed name from
6707           options.recursion to options.recursive
6709 2004-03-01 18:47  dwaynebailey
6711         * .cvsignore, convert/.cvsignore, misc/.cvsignore,
6712           storage/.cvsignore: Add .cvsignore files everywhere
6714 2004-02-27 17:33  davidfraser
6716         * storage/po.py: escape escapes in getunquotedstr
6718 2004-02-27 17:09  davidfraser
6720         * convert/: convert.py, moz2po: moved recursion and handling of
6721           options into convert module (fixed mistaken earlier using of
6722           self. for options.) changed from supporting multiple
6723           outputformats to only supporting one...
6725 2004-02-27 16:51  davidfraser
6727         * convert/convert.py: refactored convert to be more intelligent and
6728           modular...  started adding functions to actually run the
6729           conversion...
6731 2004-02-27 16:07  davidfraser
6733         * convert/: convert.py, dtd2po.py, moz2po, oo2po.py, po2csv.py,
6734           po2moz, po2oo.py, po2prop.py, prop2po.py: converted all tools to
6735           use new convert.ConvertOptionsParser also changed from new type
6736           to standard class, added default parameter to constructor
6738 2004-02-27 15:23  davidfraser
6740         * convert/: convert.py, moz2po: added a new convert module to
6741           incorporate common elements of convert tools - option
6742           construction and parsing (done) - will also have recursion logic,
6743           etc...
6745 2004-02-27 14:26  davidfraser
6747         * convert/csv2po.py, storage/csvl10n.py: made storage.csvl10n
6748           handle construction from inputfile startedc converting csv2po to
6749           standard options
6751 2004-02-27 14:21  davidfraser
6753         * convert/: csv2po.py, oo2po.py, po2csv.py: added csv2po from old
6754           version
6756 2004-02-27 13:06  davidfraser
6758         * convert/po2csv.py: converted to new command-line options system
6760 2004-02-27 13:01  davidfraser
6762         * convert/po2csv.py: added po2csv from old version...
6764 2004-02-24 19:12  davidfraser
6766         * misc/setup.py: made the csv setup script usable by other setup
6767           scripts
6769 2004-02-24 17:34  davidfraser
6771         * convert/: dtd2po.py, moz2po, oo2po.py, po2dtd.py, po2moz,
6772           po2oo.py, po2prop.py, prop2po.py: added --version options
6774 2004-02-24 17:26  davidfraser
6776         * __version__.py: added version file
6778 2004-02-24 14:16  davidfraser
6780         * convert/oo2po.py: changed variable names that shadow builtin
6781           variables
6783 2004-02-24 14:15  davidfraser
6785         * convert/oo2po.py: made inputformat and outputformat local
6786           variables/parameters rather than globals
6788 2004-02-24 14:11  davidfraser
6790         * storage/dtd.py: added comments...
6792 2004-02-24 14:10  davidfraser
6794         * convert/: TODO, moz2po, prop2po.py: added full template support
6795           for properties files in moz2po fixed wrong variable name in
6796           prop2po improved comments...
6798 2004-02-24 14:07  davidfraser
6800         * storage/properties.py: added a propfile.makeindex method cleaned
6801           up comments
6803 2004-02-24 14:05  davidfraser
6805         * convert/prop2po.py: added mergefiles method, use it to convert
6806           template + inputfile...
6808 2004-02-24 13:42  davidfraser
6810         * convert/dtd2po.py: added both original and translated dtd
6811           filename into header when merging files...  improved comments to
6812           reflect template usage
6814 2004-02-24 13:31  davidfraser
6816         * convert/: moz2po, prop2po.py: started adding support for
6817           templates to prop2po started rearranging moz2po based on new
6818           system (storage.properties etc)
6820 2004-02-24 13:30  davidfraser
6822         * storage/po.py: improved logic of pofile.isblank() so that if it
6823           has extra blank elements it still is blank
6825 2004-02-24 13:15  davidfraser
6827         * convert/TODO: done the translate.storage.properties class
6829 2004-02-24 13:13  davidfraser
6831         * storage/po.py: rearranged handling of blank msgid... to not
6832           include sourcecomments etc also altered merging to not merge
6833           blank msgids
6835 2004-02-24 13:03  davidfraser
6837         * convert/prop2po.py: improved handling of comments (generic now
6838           instead of just header comments)...  prevents blank propelements
6839           from being discarded...
6841 2004-02-24 12:16  davidfraser
6843         * storage/properties.py: added code to handle blank properties
6844           elements (i.e. just comments followed by a blank line)
6846 2004-02-24 12:13  davidfraser
6848         * convert/prop2po.py: did better handling of headers (merge
6849           comments in at the start) stripped msgids...
6851 2004-02-24 11:18  davidfraser
6853         * convert/dtd2po.py, storage/dtd.py: added code to pick up the
6854           input file name and put it in the header...
6856 2004-02-24 11:16  davidfraser
6858         * convert/prop2po.py: converted to use poelements when generating
6859           the po file that way we don't have to regenerate it...
6861 2004-02-24 10:59  davidfraser
6863         * convert/TODO: added need to convert existing properties files to
6864           translated .po
6866 2004-02-24 10:51  davidfraser
6868         * convert/prop2po.py: converted to use new storage.properties
6869           module added TODOs for rest of conversion...
6871 2004-02-24 10:41  davidfraser
6873         * storage/properties.py: added storage.properties module for
6874           handling properties files...
6876 2004-02-24 10:40  davidfraser
6878         * storage/po.py: improved comments, took out unneccessary TODOs
6880 2004-02-20 17:30  davidfraser
6882         * convert/dtd2po.py: added template capabilities to command line...
6884 2004-02-20 17:23  davidfraser
6886         * convert/moz2po: added the ability to use template directories
6887           (produce a .po that represents a translation)
6889 2004-02-20 17:21  davidfraser
6891         * convert/dtd2po.py: added code to merge two dtd files (original
6892           and translated) removed leftover code
6894 2004-02-20 17:08  davidfraser
6896         * convert/dtd2po.py: refactored convertfile into findmixedentities,
6897           convertdtdelement, convertfile made findmixedentities construct a
6898           dictionary rather than a list, indicate success with the values
6899           this is a much cleaner approach ...  the refactoring should help
6900           with merging dtd files of translations into the originals to
6901           produce .po files
6903 2004-02-20 16:32  davidfraser
6905         * convert/dtd2po.py: refactored creating the po header...
6907 2004-02-20 16:17  dwaynebailey
6909         * convert/moz2po: made properties files conversions always succeed
6910           (previously they weren't returning anything)
6912 2004-02-20 14:47  davidfraser
6914         * storage/po.py: added code to handle empty lines added
6915           pofile.isempty to check if a file contains no definitions (at
6916           most a header)...
6918 2004-02-20 14:44  davidfraser
6920         * convert/: TODO, moz2po: removed empty directories and .pot files
6921           added -P|--pot to usage
6923 2004-02-20 14:41  davidfraser
6925         * convert/TODO: added TODO to not create empty directories...
6927 2004-02-20 12:19  davidfraser
6929         * convert/: TODO, prop2po.py: handled duplicates in prop2po with a
6930           kludge because it is already a kludge added TODOs to indicate
6931           that...
6933 2004-02-20 11:59  davidfraser
6935         * convert/dtd2po.py: added code to remove duplicates...
6937 2004-02-20 11:53  davidfraser
6939         * convert/moz2po: made a switch, --pot or -P which produces .pot
6940           extensions
6942 2004-02-20 11:42  davidfraser
6944         * convert/oo2po.py: made it produce .pot files if -P is given
6946 2004-02-20 11:32  davidfraser
6948         * __init__.py, convert/__init__.py, convert/dtd2po.py,
6949           convert/moz2po, convert/oo2po.py, convert/po2dtd.py,
6950           convert/po2moz, convert/po2oo.py, convert/po2prop.py,
6951           convert/prop2po.py, misc/__init__.py, misc/quote.py,
6952           misc/setup.py, storage/__init__.py, storage/csvl10n.py,
6953           storage/dtd.py, storage/oo.py, storage/po.py: changed all
6954           #!/usr/bin/python2.2 headers to #!/usr/bin/env python
6956 2004-02-17 15:50  davidfraser
6958         * convert/TODO: sorted out extension handling...
6960 2004-02-17 15:36  davidfraser
6962         * convert/po2oo.py: adjusted po2oo.py to cater for plain .po files,
6963           not .oo.po files
6965 2004-02-17 15:21  davidfraser
6967         * storage/dtd.py: rearranged code to prevent entities inside
6968           comments from being seen...  (delete the comment part once we've
6969           parsed it...)
6971 2004-02-17 12:35  davidfraser
6973         * convert/oo2po.py, convert/po2oo.py, storage/oo.py: added methods
6974           to normalize unexpected characters in OO keys
6976 2004-02-13 13:23  davidfraser
6978         * storage/po.py: added note on todict function...
6980 2004-02-10 15:23  davidfraser
6982         * convert/: oo2po.py, po2oo.py: improved method of converting
6983           OpenOffice key tuples into po location strings this prevents
6984           errors with gettext tools like msguniq also added some TODOs
6985           about future improvements that are required...
6987 2004-02-06 12:33  davidfraser
6989         * misc/quote.py: added ability to escape escapes when escaping
6990           quotes (otherwise you can't unescape them back...)
6992 2004-02-06 12:32  davidfraser
6994         * convert/: dtd2po.py, prop2po.py: po headers should be fuzzy, for
6995           templates the charset should not be set also escapes need to be
6996           escaped when converting .properties files to .po files
6998 2004-01-28 13:07  davidfraser
7000         * convert/TODO: need to handle duplicates in moz2pot and oo2pot
7001           (merge #: id/source)
7003 2004-01-26 12:27  davidfraser
7005         * convert/po2oo.py: added code to renumber the language code
7007 2004-01-26 09:20  davidfraser
7009         * convert/: oo2po.py, po2oo.py: added openoffice <-> gettext
7010           converters
7012 2004-01-26 09:13  davidfraser
7014         * convert/TODO: added TODO about extensions done openoffice
7015           conversion (about to add...)
7017 2004-01-26 09:12  davidfraser
7019         * convert/dtd2po.py: corrected doc string
7021 2004-01-20 17:50  davidfraser
7023         * convert/: TODO, moz2po: added TODO file
7025 2004-01-20 17:18  davidfraser
7027         * convert/po2prop.py: fixed escaping (needs to know escape
7028           character even though it isn't included in the new string)
7029           changed to show proper optparse error if no template file
7030           given...
7032 2004-01-20 14:39  davidfraser
7034         * convert/dtd2po.py: took out obsolete docstring
7036 2004-01-20 14:37  davidfraser
7038         * convert/moz2po: added moz2po script to convert mozilla trees to
7039           po files
7041 2004-01-20 14:37  davidfraser
7043         * convert/po2moz: fixed silly doc string
7045 2004-01-20 14:25  davidfraser
7047         * storage/: dtd.py, oo.py, po.py: fixed warnings from pychecker -
7048           builtin variable names, unused variables, etc
7050 2004-01-20 14:20  davidfraser
7052         * convert/po2moz: added po2moz script to convert a whole tree from
7053           .po to mozilla-style (including .dtd and .properties files
7055 2004-01-20 14:10  davidfraser
7057         * convert/: dtd2po.py, po2dtd.py, po2prop.py, prop2po.py: fixed
7058           error - templatefile instead of self.templatefile fixed help
7059           strings for outputfile fixed warnings from pychecker - builtins
7060           used as variables
7062 2004-01-20 12:28  davidfraser
7064         * convert/po2dtd.py: added recursive option to process directory
7065           trees...
7067 2004-01-16 11:56  davidfraser
7069         * storage/po.py: remember the filename that this pofile object
7070           comes from...
7072 2003-12-23 15:19  davidfraser
7074         * COPYING, ChangeLog, README, __init__.py, convert/README,
7075           convert/__init__.py, convert/dtd2po.py, convert/po2dtd.py,
7076           convert/po2prop.py, convert/prop2po.py, misc/csv.py,
7077           storage/__init__.py, storage/csvl10n.py, storage/dtd.py,
7078           storage/oo.py, storage/po.py, misc/README, misc/__init__.py,
7079           misc/_csv.c, misc/optparse.py, misc/quote.py, misc/setup.py,
7080           misc/textwrap.py: Initial revision
7082 2003-12-23 15:19  davidfraser
7084         * COPYING, ChangeLog, README, __init__.py, convert/README,
7085           convert/__init__.py, convert/dtd2po.py, convert/po2dtd.py,
7086           convert/po2prop.py, convert/prop2po.py, misc/csv.py,
7087           storage/__init__.py, storage/csvl10n.py, storage/dtd.py,
7088           storage/oo.py, storage/po.py, misc/README, misc/__init__.py,
7089           misc/_csv.c, misc/optparse.py, misc/quote.py, misc/setup.py,
7090           misc/textwrap.py: imported a restructured, cleaner, nicer version
7091           of the l10ntools.mozdev.org scripts