2009-08-03 16:11 walter_l * storage/placeables/strelem.py: StringElem.delete_range(): Only delete start- and end elements in case 4 if they are not the same element. 2009-08-03 15:30 friedelwolff * convert/dtd2po.py, tools/podebug.py: Give warnings for all entities that are likely to contain CSS. Factor out and reuse in podebug. This fixes bug 1093. 2009-08-03 14:18 arail * tools/podebug.py, tools/test_podebug.py: Use "%h" as a format string for hashes, drop --hash=int parameter. Add some test cases. 2009-07-31 15:23 walter_l * storage/placeables/base.py, storage/placeables/general.py: Set isfragile flags for placeables with base.X as a sub-class as well as NewlinePlaceables. 2009-07-31 15:22 walter_l * storage/placeables/test_base.py: Updated tests to reflect recent changes to StringElem. 2009-07-31 15:20 walter_l * storage/placeables/strelem.py: StringElem.delete_range(): Now returns 3 values: the deleted string, the parent from which it was deleted and the offset into the parent where the sub-string was. 2009-07-31 15:19 walter_l * storage/placeables/strelem.py: StringElem: Added the "isfragile" flag 2009-07-31 15:14 friedelwolff * doc/gen_api_docs.sh: Remove some debugging output 2009-07-31 14:29 friedelwolff * doc/epydoc-config.ini, doc/gen_api_docs.sh: Enable the script to be run from outside its own directory. Don't specify the output directory in the config, so that the script can specify it (since it is better aware of where we are) 2009-07-31 14:12 friedelwolff * __version__.py: Version 1.4.0-rc2 2009-07-31 14:10 friedelwolff * doc/gen_api_docs.sh: Comment out the part that pushes the documentation to SF - we don't want to do this each time 2009-07-31 13:27 friedelwolff * storage/placeables/general.py, storage/placeables/test_general.py: Recognise self closing tags. +Tests for XMLTagPlaceable 2009-07-30 10:24 friedelwolff * storage/base.py: Handle None targets in merge() just in case 2009-07-29 17:02 dwaynebailey * storage/placeables/test_general.py: Add CapsPlaceable test 2009-07-29 16:54 dwaynebailey * storage/placeables/test_general.py: Add EmailPlaceable tests. Fix classes in FilePlaceable test. 2009-07-29 16:48 dwaynebailey * storage/placeables/test_general.py: Add a test for FilePlaceable 2009-07-29 16:26 friedelwolff * storage/test_xliff.py: Test that alt-trans doesn't interfere with the real .target anymore 2009-07-29 16:20 friedelwolff * storage/poxliff.py: Correctly invalidate ._rich_source and ._rich_target so that base.rich_* work correctly (since we don't inherit .setsource and .settarget) 2009-07-29 16:08 friedelwolff * storage/poxliff.py: Disable rich string functionality for poxliff. +TODO note. 2009-07-29 16:04 walter_l * storage/placeables/strelem.py: StringElem.delete_range(): Move premature prune() to a safe place. This fixes case 4 deletions where there are actually elements between the start- and end elements. 2009-07-29 16:03 walter_l * storage/placeables/test_base.py: Added tests for StringElem.delete_range(). 2009-07-29 16:02 walter_l * storage/placeables/test_base.py: Fix tests to reflect current state of the toolkit. 2009-07-29 15:11 friedelwolff * storage/poxliff.py, storage/xliff.py: .getlanguageNodes() could return results from alt-trans, which is not what we want. This does the correct thing, might be slightly faster, but needed an update for poxliff which depended on the old behaviour. Now we match plurals based on id for extra goodness. 2009-07-29 15:09 friedelwolff * convert/test_xliff2po.py: Add an explicit id to the plural group in the test as it should have. Upcoming code will depend on this. 2009-07-27 12:55 friedelwolff * storage/statsdb.py: Close the connection before unlinking the file. This should fix bug 1068. 2009-07-27 11:13 friedelwolff * storage/test_xliff.py, storage/xliff.py: Put the (optional) source before the target. This fixes bug 1072. 2009-07-24 18:49 dwaynebailey * doc/gen_api_docs.sh: - Create a SF shell login before tryong to rsync - rsync to the correct directory - put ssh login alias into a variable 2009-07-24 18:22 dwaynebailey * doc/gen_api_docs.sh: Add some links to the epydoc manuals 2009-07-24 18:19 dwaynebailey * lang/identify.py: EPYDOC: typo 2009-07-24 18:08 dwaynebailey * lang/__init__.py: Add 'factory' module to common language functionality group 2009-07-24 17:55 dwaynebailey * lang/__init__.py: Add poedit and identify modules to common language functionality group 2009-07-24 17:46 dwaynebailey * lang/identify.py: typo 2009-07-24 17:43 dwaynebailey * lang/data.py: Better layout for tr_lang comment 2009-07-24 17:29 dwaynebailey * storage/placeables/general.py: Use single colon to ensure we have a list 2009-07-24 17:25 dwaynebailey * storage/placeables/general.py: Use single colon to ensure we have a list 2009-07-24 17:21 dwaynebailey * storage/__init__.py: Categorise some new storage modules 2009-07-24 17:11 dwaynebailey * convert/__init__.py: Add a number of new converters to the Monolingual group 2009-07-24 16:41 dwaynebailey * storage/xml_extract/generate.py: Epydoc: think this is what we need. 2009-07-24 16:35 dwaynebailey * storage/placeables/general.py: These are URLs not cross-references 2009-07-24 16:30 dwaynebailey * storage/placeables/__init__.py: Make list epydoc compliant 2009-07-24 16:22 dwaynebailey * storage/tiki.py: Make the PHP section literal text. Fix the URL to the TikiWiki source. 2009-07-24 16:07 dwaynebailey * storage/base.py: Convert into a proper doctest 2009-07-24 15:50 dwaynebailey * tools/pocount.py: Convert into proper epydoc paramater syntax. 2009-07-24 15:09 friedelwolff * storage/statsdb.py: Clean up license header, whitespace, docstring typo 2009-07-24 11:43 friedelwolff * storage/richstring: Remove empty directory 2009-07-24 11:40 friedelwolff * storage/placeables/xliff.py: Fix minor epydoc syntax error 2009-07-23 18:24 friedelwolff * misc/xml_helpers.py, storage/placeables/lisa.py, storage/placeables/test_lisa.py: Allow a node to still override with xml:space at the last moment 2009-07-23 18:10 friedelwolff * storage/placeables/general.py, storage/placeables/test_general.py: Accept a word with two initial capital letters as CamelCase. +Examples, +test 2009-07-23 14:15 walter_l * storage/placeables/lisa.py: Use translate.misc.xml_helpers.normalize_xml_space() in stead of text_snippet() and tail_snippet(). 2009-07-23 14:13 walter_l * misc/xml_helpers.py: Added normalize_xml_space(); replaces text_snippet() and tail_snippet() from translate.storage.placeables.lisa. 2009-07-22 15:45 arail * convert/moz2po.py, convert/po2moz.py: Don't convert HTML/XHTML files used in Mozilla. (Closes: #1061) 2009-07-22 15:34 friedelwolff * lang/de.py: Initial support for German (de). For now this just disables the simplecaps test. 2009-07-22 15:29 friedelwolff * storage/qph.py, storage/tbx.py, storage/tmx.py, storage/wordfast.py, storage/xliff.py: Align the names of the file types with those in Virtaal's MIME type registration. This is a temporary work-around for bug 612. 2009-07-22 15:28 arail * convert/po2moz.py: Don't compare int and str. (Closes: #1062) 2009-07-22 15:26 friedelwolff * __version__.py: version 1.4.0-rc1 2009-07-22 15:19 friedelwolff * misc/xml_helpers.py, storage/placeables/lisa.py, storage/placeables/test_lisa.py, storage/xliff.py: Support xml:space correctly for XLIFF placeables. Some sane values are guessed for the default behaviour. This is the last major outstanding piece of bug 1017. 2009-07-22 15:05 friedelwolff * filters/checks.py, filters/test_checks.py: Correctly remove variables before accelerators in unchanged(). +Test 2009-07-22 13:59 friedelwolff * filters/checks.py, filters/test_checks.py: Check more thoroughly for unchanged strings. We were not catching multi-word unchanged strings. This fixes bug 1059, although more thought might be needed in this area. [Contributed by Rail Aliev] 2009-07-21 16:07 friedelwolff * convert/po2php.py: Decode the line before processing. This fixes bug 1057. 2009-07-21 15:33 alaaosh * services/tmserver.py: selector already unquotes urls for us 2009-07-21 14:00 walter_l * storage/placeables/strelem.py: StringElem.delete_range(): Don't delete entire nodes in case 2, but only its children. 2009-07-21 10:38 walter_l * storage/placeables/strelem.py: StringElem: Added insert_between() - Handles insertion of string on string- or placeable boundries. 2009-07-21 10:38 walter_l * storage/placeables/base.py: placeables.base.X: Make it not editable, as it should be 2009-07-21 08:32 friedelwolff * storage/xml_extract/misc.py: Clean up copyright header, whitespace 2009-07-20 01:59 alaaosh * services/tmserver.py, storage/tmdb.py: properly quote and unquote source strings in urls. log results when in debug mode. this should finally fix #991 however virtaal fails to display some results despite tmserver returning them. 2009-07-19 23:59 alaaosh * search/indexing/PyLuceneIndexer.py: tabs vs spaces cute, real cute 2009-07-19 02:56 alaaosh * services/tmserver.py: add min-similarity max-candidates and max-length options 2009-07-19 02:55 alaaosh * search/indexing/PyLuceneIndexer.py: disable file locking assumption is lucene is taking care of locking for us, needs more testing and verification 2009-07-18 09:46 friedelwolff * storage/properties.py: Support multiline comments better 2009-07-18 09:44 friedelwolff * storage/properties.py: Pass personality to propunit in all cases. Bug 1056 [contributed by Rail Aliev] 2009-07-18 09:36 friedelwolff * convert/rc2po.py, storage/rc.py: Cleanups to the copyright header, whitespace, docstrings. No functional change. 2009-07-18 09:33 friedelwolff * convert/rc2po.py, storage/rc.py: Support for multiple language sections in RC files. Bug 1014. [Contributed by Grégory Journé] 2009-07-18 09:23 friedelwolff * CREDITS: Credit Rail and Grégory 2009-07-18 09:06 friedelwolff * convert/prop2mozfunny.py: Now that properties' comments are stored without newlines, we have to generate lines for .it files with newlines attached to comments. This fixes the issue with .ini files in bug 1053. [Reported by Rail Aliev]. 2009-07-17 16:34 friedelwolff * filters/spelling.py: Some versions of enchant don't raise DictNotFoundError as it should, so we rather check some text that might trigger a general enchant exception 2009-07-17 10:56 walter_l * storage/placeables/lisa.py: Save the XML attributes for placeables created from XML nodes. This fixes bug 1033. 2009-07-17 10:55 walter_l * storage/placeables/base.py, storage/placeables/strelem.py, storage/placeables/xliff.py: Make all placeables accept arbitrary keyword arguments. If it reaches StringElem.__inti__(), they will be assigned to the object as attributes. 2009-07-17 10:54 walter_l * storage/poxliff.py: PoXliffUnit: Inherit rich_source and rich_target from xliff.xliffunit in stead of using TranslationUnit's. 2009-07-16 20:16 friedelwolff * storage/properties.py, storage/test_properties.py: Don't store newlines for comments, but join with a newline in .getnotes() 2009-07-16 14:43 friedelwolff * convert/prop2mozfunny.py: Remove last remnant of mozfunny2prop.encodepropline() 2009-07-16 14:16 friedelwolff * convert/mozfunny2prop.py: Remove calls to encode each propline - this caused double escaping of newlines in at least .ini files. This fixes bug 1044. 2009-07-16 14:15 friedelwolff * storage/properties.py: Don'e escape controls on comment lines, they are escaped enough. This fixes a regression since toolkit 1.3. Comment diffs are gone now compared to 1.2 2009-07-16 14:12 friedelwolff * storage/poparser.py: Don't try and get too fancy with guessing escaped quotes on line end. These are considered invalid by gettext anyway. This fixes bug 960. [With contributions by Sayamindu Dasgupta] 2009-07-16 10:45 friedelwolff * convert/mozfunny2prop.py, convert/prop2mozfunny.py: specify the mozilla personality for property stores used in the mozfunny converters. This fixes bug 1025. [Contributed by Rail Aliev] 2009-07-15 12:04 friedelwolff * storage/placeables/test_terminology.py: Update to new strelem layout 2009-07-15 09:19 friedelwolff * storage/xliff.py: Initialise the languages in .initbody() after parsing. This fixes bug 1042. 2009-07-15 09:11 friedelwolff * storage/lisa.py: Only set the languages from parameters if we are initialising from a skeleton 2009-07-15 08:19 friedelwolff * storage/base.py: Provide a basic implementation of getsourcelanguage() and gettargetlanguage(), since users expect this to be here 2009-07-14 09:22 friedelwolff * tools/pocount.py: Update license header, fix some stray tabs, remove single-line 'if' statements 2009-07-14 08:59 friedelwolff * tools/pocount.py: [Contributed by Ivan Masár] Correctly count incomplete files. See bug 825 for more details. 2009-07-13 16:40 friedelwolff * storage/xml_extract/extract.py: Clean up license block, whitespace 2009-07-13 16:13 friedelwolff * storage/xml_extract/extract.py: Don't set the xid attribute on the unit. This fixes bug 1011, reported by Yves Savourel. 2009-07-13 12:59 walter_l * storage/poxliff.py: PoXliffUnit.__eq__(): Removed check that would result in units without plurals to always be equal to any other unit. 2009-07-10 12:13 friedelwolff * storage/ts2.py: +URL for newer file format 2009-07-10 12:08 friedelwolff * convert/po2rc.py: [Contributed by Grégory Journé] Encode string according to given charset. This fixes bug 864. 2009-07-10 07:24 friedelwolff * convert/accesskey.py, convert/test_po2dtd.py: Properly detect XML entities by reusing the regex from placeables to ensure that we don't strip the initial & thinking it is an accelerator. +Test. This fixes bug 1022. 2009-07-07 09:50 walter_l * storage/placeables/strelem.py: Define ElementNotFoundError - used in StringElem.delete_elem(). 2009-07-07 09:49 walter_l * storage/placeables/strelem.py: StringElem.delete_elem(): Handle the special case where the current element is the one to delete. In that case just delete all sub-elements. 2009-07-04 09:11 dwaynebailey * README: Add sub2po to README 2009-07-03 16:40 walter_l * storage/xliff.py: xliffunit.set_rich_*(): Don't recreate the XML node every time. XML attributes are now preserved. 2009-07-03 14:59 walter_l * tools/podebug.py: podebug.apply_to_translatables(): Use the new StringElem.map(). 2009-07-03 14:58 walter_l * storage/placeables/general.py: Add correct value for "istranslatable" in general placeables classes. 2009-07-03 14:58 walter_l * storage/placeables/strelem.py: +StringElem.map(): An easy way to apply a function to all nodes in the tree (optionally filtered). 2009-07-03 14:57 walter_l * storage/placeables/strelem.py: StringElem: Added (optional) filter functions to methods that collect nodes from the tree. 2009-07-02 16:10 friedelwolff * misc/xml_helpers.py, storage/lisa.py: Move xml_helpers out of the storage module to a separate misc module - they are just general xml helpers anyway 2009-07-02 11:52 walter_l * storage/placeables/base.py: Bx and Ex classes should ignore extra keyword arguments, like "rid" given in StringElem.copy(). 2009-07-02 11:52 walter_l * storage/placeables/lisa.py: Added support for converting between XML and UnknownXML. Tags not yet implemented are now also handled as UnkownXML placeables. 2009-07-02 11:51 walter_l * storage/placeables/strelem.py: StringElem.print_tree(): Added parameter to make output more verbose (adds repr(self) to the output). 2009-07-02 11:50 walter_l * storage/placeables/test_lisa.py: Added test for UnknownXML placeable as used in XLIFF. 2009-07-02 11:49 walter_l * storage/placeables/xliff.py: Added UnknownXML class: Handles unknown XML tags in XLIFF documents. 2009-07-02 11:49 walter_l * storage/placeables/strelem.py, storage/xliff.py: Added (commented out) debugging statements. 2009-07-02 08:24 friedelwolff * convert/po2rc.py: Clean up license block, whitespace, unused imports. 2009-07-02 08:13 friedelwolff * storage/rc.py: [Reported by Grégory Journé] Use the correct RE in the menu section. This closes bug 1010. 2009-07-02 08:10 friedelwolff * storage/rc.py: Clean up license block, whitespace, docstrings. No functional change. 2009-06-29 16:26 friedelwolff * misc/file_discovery.py: Don't use a list as default parameter - it will be reused 2009-06-29 14:07 walter_l * storage/placeables/strelem.py: StringElem.prune(): Added code to merge sibling StringElem leaves. 2009-06-25 13:01 friedelwolff * storage/poparser.py: Don't use a list as default paramter value, as it will get reused 2009-06-25 10:46 friedelwolff * storage/placeables/parse.py: Only decend into translatable placeables. Should reconsider later. 2009-06-23 15:58 walter_l * storage/placeables/strelem.py: StringElem.insert(): Simplify case 2 to be equivalent to be only case 2.2, ie. always insert _after_ the last element. StringElem.prune() should take care of the rest. 2009-06-22 13:17 friedelwolff * convert/xliff2po.py: Cleanup copyright header and some docstrings. No functional change. 2009-06-22 13:13 friedelwolff * convert/xliff2po.py: Cleaner API use for locations 2009-06-22 13:05 friedelwolff * search/match.py: Let each matcher specify the sorting direction to ensure that all sorting can be correct. This solves the issue with newer, longer terms added in Virtaal not being recognised since the shorter ones are matched first. 2009-06-22 12:09 friedelwolff * convert/prop2po.py, misc/quote.py, storage/properties.py: Several small updates relating to encoding, notably for non-ascii latin1 comments in Java .properties. This fixes bug 486. 2009-06-20 19:30 friedelwolff * tools/podebug.py: Reflow, reformat and slightly rewrite for readibility 2009-06-20 09:49 friedelwolff * services/tmserver.py: Provide some default bind options to tmserver 2009-06-19 13:58 friedelwolff * __version__.py: Version 1.4.0-beta1 2009-06-19 06:07 friedelwolff * convert/prop2po.py, misc/quote.py, storage/properties.py, storage/test_properties.py: Support the personality in the properties classes and use that to support java properties encoded in latin1 2009-06-18 02:04 alaaosh * services/tmserver.py: double unquoting was causing problems, no need for plus unquoting since tmdb now strips away non alphanumeric charachters anyway fixes #991 2009-06-18 02:03 alaaosh * storage/tmdb.py: cleanup unitwords before attempting fulltext indexing note that fulltext indexer has it's own set of quoting problems that dbapi2's automagic escaping won't avoid we should look into stop words and normalization one day fixes #989 2009-06-17 21:05 dwaynebailey * storage/placeables/test_general.py: Add TODO for Placeable test that are missing 2009-06-17 20:56 dwaynebailey * storage/placeables/test_general.py: Add the OptionPlaceable tests 2009-06-17 20:51 dwaynebailey * storage/placeables/test_general.py: Add XML Entity Placeable tests 2009-06-17 20:47 dwaynebailey * storage/placeables/test_general.py: Add PunctuationPlaceable tests 2009-06-17 20:37 dwaynebailey * storage/placeables/test_general.py: Add test for SpacesPlaceable 2009-06-17 20:31 dwaynebailey * storage/placeables/test_general.py: Add CamelCasePlaceable tests 2009-06-17 20:13 dwaynebailey * storage/placeables/test_general.py: Add tests for Qt Formatted variables. 2009-06-17 20:09 dwaynebailey * storage/placeables/test_general.py: Add tests the show different decimal and group seperators: point, comma and non-breaking space 2009-06-17 20:03 dwaynebailey * storage/placeables/test_general.py: Add test for Alt Attr placeable 2009-06-17 19:56 dwaynebailey * storage/placeables/test_general.py: Add test for newline 2009-06-17 19:52 dwaynebailey * storage/placeables/general.py, storage/placeables/test_general.py: Add tests for placeables. Improve number placeable to allow for a preceding sign +/- 2009-06-17 19:38 friedelwolff * storage/test_base.py: Assign some parsers so we can have some rich structure to test with 2009-06-17 15:15 friedelwolff * convert/odf2xliff.py, convert/xliff2odf.py: Since convertoptionsparser already opens the files for us, it is not opened in binary, and we get errors on Windows. So let's reopen it ourselves. This should re-fix bug 816. 2009-06-17 15:11 friedelwolff * storage/odf_io.py: No need to open the file in binary mode - the library will do it for us (as long as the file isn't already open) 2009-06-17 15:06 friedelwolff * storage/lisa.py, storage/xliff.py: Move rich string handling from lisa to xliff while it is the only format for which we support it 2009-06-17 14:01 friedelwolff * storage/poxliff.py: Clean up whitespace and copyright header. No functional change. 2009-06-17 13:53 friedelwolff * storage/lisa.py, storage/test_xliff.py, storage/tmx.py, storage/xliff.py: An attempt at a more interoperable implementation of the handling of xml:space, with particular aim at interoperability with XLIFF files that don't use xml:space="preserve". This is likely a bit of a performance hit - need to see how badly we regress on large files. 2009-06-17 12:19 dwaynebailey * README: Layout and spelling fixes 2009-06-17 11:07 friedelwolff * storage/subtitles.py: Update copyright dates, cleanup whitespace and unused import. No functional change. 2009-06-17 11:05 friedelwolff * misc/multistring.py: Fix DeprecationWarning in Python 2.6 about 'object.__init__() takes no parameters' 2009-06-16 08:45 friedelwolff * tools/podebug.py: Don't ignore CapsPlaceable and CamelCasePlaceable in podebug - we want to translate these as well 2009-06-16 06:54 dwaynebailey * tools/podebug.py, tools/test_podebug.py: Add a bracket podebug rewrite style. Which will surround strings with [ and ] 2009-06-15 20:51 friedelwolff * storage/cpo.py: Rewrite temporary file handling to work on Windows. We can't use the output of NamedTemporaryFile while it is still open, otherwise we get an access violation on Windows. 2009-06-15 13:21 friedelwolff * storage/lisa.py: First test for a usable type before we do in detail __eq__ on a unit 2009-06-15 13:20 dwaynebailey * CREDITS: Credit Ivan Masár for the pocount improvements 2009-06-15 13:18 dwaynebailey * tools/pocount.py: Add patches from bug 825 that adds: - --short-words, --short-strings (more compact output) - --incomplete (only count incomplete files) 2009-06-15 13:07 friedelwolff * storage/lisa.py: Ensure we initialise ._rich_source and ._rich_target if we bypass the constructor. This fixes bug 994. 2009-06-15 11:10 dwaynebailey * convert/prop2po.py: Default to using Java personality throughout prop2po 2009-06-15 11:07 dwaynebailey * convert/test_prop2po.py: Add --personality commandline options to the --help test. 2009-06-15 11:02 friedelwolff * filters/checks.py: Temporarily disable the startcaps->simplecaps precondition, since it is causing lots of false positives since Python 2.6. 2009-06-15 10:57 friedelwolff * search/match.py: Finally move to Python 2.4 APIs for more efficient sorting. This breaks compatibility with Python 2.3, but gives a nice speedup with later versions. 2009-06-15 10:38 dwaynebailey * lang/data.py: Align nso name with ISO639 2009-06-15 10:35 friedelwolff * storage/placeables/strelem.py: Work correctly with string elements that will all be unicode strings. This only affects debug code. 2009-06-15 10:33 friedelwolff * tools/pretranslate.py: Use the defaul gettext migration strategy if no location comments exist. The Mozilla and OOo matching will now only happen for units with locations not containing a colon (:) 2009-06-13 20:46 friedelwolff * storage/placeables/parse.py: Don't just prune the last leaf after the for loop - do it inside for each 2009-06-13 17:07 dwaynebailey * convert/moz2po.py, convert/prop2po.py: Add ability to give prop2po a personality: Java or Mozilla. Doesn't do much at the moment, just adds the X-Accelerator header if called with --personality=mozilla. Adapted moz2po to do the right thing. This should allow us to handle Latin1 vs UTF-8 in the future. 2009-06-13 15:44 dwaynebailey * storage/placeables/general.py: Implement a format matcher for Qt variables (should also work for KDE4). 2009-06-13 08:57 friedelwolff * tools/podebug.py: Fix typo/thinko 2009-06-12 14:41 friedelwolff * storage/properties.py: Use '=' as the default delimiter for properties files 2009-06-12 14:41 friedelwolff * storage/properties.py: Correct calculation of starting position of significant line content 2009-06-12 14:38 friedelwolff * storage/test_properties.py: Test for support for property with zero-length key 2009-06-12 13:39 friedelwolff * misc/quote.py: Escape the slash character when outputting to properties 2009-06-12 13:29 friedelwolff * storage/cpo.py, storage/pypo.py: Fix a minor bug that might have caused us to not have headers in the output of oo2po and similar tools 2009-06-12 12:55 friedelwolff * convert/test_pot2po.py: Provide a location comment in the test_migrate_msgidcomment_to_msgctxt() test - which realistically is what upcoming mozilla translations will need to work with migrating from msgid comments to msgctxct 2009-06-12 10:50 dwaynebailey * storage/placeables/general.py: Better link to the Python string formatting documentation 2009-06-12 08:33 friedelwolff * convert/symb2po.py: -syntax error. -unused imports 2009-06-12 07:31 dwaynebailey * storage: Ignore *.class 2009-06-12 07:26 dwaynebailey * storage/debug.properties: Add a simple example debug.properties file 2009-06-12 07:18 dwaynebailey * storage/properties.java: Add a Java .properties file testing program 2009-06-12 06:30 friedelwolff * storage/poheader.py, storage/test_poheader.py: Update the test to be time independent, and make sure we always end a contributor line with a fullstop. 2009-06-12 06:23 friedelwolff * storage/poheader.py, storage/test_poheader.py: Extend the test to test for correct handling of full stop in a contributor line. This closes the reopened bug 985. 2009-06-11 21:26 friedelwolff * storage/poheader.py, storage/test_poheader.py: Test for updating copyright comments in the header, and fix a case that wasn't handled correctly. This fixes bug 985. 2009-06-11 15:09 dwaynebailey * storage/pypo.py: Ensure we escape values that we put into msgctxt 2009-06-11 13:40 dwaynebailey * storage/properties.py: We shouldn't strip space from the beginnging of a value since if it got in its significant. 2009-06-11 13:38 dwaynebailey * misc/quote.py: Reduce escapes to the ones supported by .properties files: fnrt Drop all other backslashes 2009-06-11 13:13 dwaynebailey * convert/test_prop2po.py, storage/properties.py, storage/test_properties.py: Implement proper .properties whitespace handling. Add fn key_strip to strip and handle whitespace in the key. Remove strippig functionality from 'value'. Adjust tests as needed. 2009-06-11 12:48 dwaynebailey * storage/properties.py, storage/test_properties.py: Allow # or ! for comments. Add tests to test for the different types. 2009-06-11 12:32 dwaynebailey * storage/properties.py, storage/test_properties.py: Add is_line_continuation function to do the correct thing with line continuation characters. Use the function in the parser. 2009-06-11 12:00 dwaynebailey * storage/properties.py, storage/test_properties.py: Use find_delimeter instead of the simple check for "=" to seperate key from value. Add test to check the three variants. 2009-06-11 11:53 dwaynebailey * storage/properties.py, storage/test_properties.py: Add find_delimeter function and tests. We can now find the delimeter: =, : or space in a properties line. 2009-06-11 11:41 friedelwolff * storage/placeables/general.py: Reflow some lines for better readability 2009-06-11 07:33 friedelwolff * storage/cpo.py: [port of r11488 to cpo] if the source or the context change, merging should cause the unit to go fuzzy 2009-06-11 06:54 friedelwolff * storage/pypo.py: if the source or the context change, merging should cause the unit to go fuzzy 2009-06-11 06:52 friedelwolff * convert/test_pot2po.py: +some tests to verify correct merging behaviour with changing contexts, empty msgid with context/msgidcomments, etc. 2009-06-11 06:48 friedelwolff * storage/pypo.py: Test for the presence of any context to determine of the unit should generate output 2009-06-11 06:43 friedelwolff * storage/test_po.py: Test more for correct handling of context only units 2009-06-10 14:44 friedelwolff * storage/cpo.py, storage/pypo.py, storage/test_po.py: Mark messages with no source but having msgctxt as translatable. +test 2009-06-10 14:41 friedelwolff * storage/test_po.py: Use quoting functions from pypo where they belong. Don't assume multistrings for singular units. 2009-06-10 14:30 friedelwolff * tools/podebug.py: Carefully only apply transformation functions to translatable string elements. Now podebug should be far, far more useful for debugging things containing XML, variables, etc. 2009-06-10 14:29 friedelwolff * tools/test_podebug.py: Test that we leave variables alone in the unicode transformation 2009-06-10 13:53 friedelwolff * convert/test_pot2po.py: We should go fuzzy if context changed in the pot file. Change tests to reflect that. 2009-06-10 13:34 friedelwolff * tools/pretranslate.py: Follow different matching strategies for different PO files: standard gettext files, vs. files generated with moz2po and oo2po. This fixes bug 982. 2009-06-10 13:00 alaaosh * storage/subtitles.py: use utf-8 whenever you detect ascii encoding. this still doesn't solve the problem of input encoding being totally different from template encoding when converting. 2009-06-10 12:57 dwaynebailey * storage/placeables/general.py: Add Java MessageFormat placeable 2009-06-10 12:33 alaaosh * convert/po2sub.py: put source text if no target is found (untranslated or fuzzy units) 2009-06-10 11:45 friedelwolff * convert/test_dtd2po.py, convert/test_prop2po.py: Test specifically for the presence of msgctxt in the output in the case of empty source strings 2009-06-10 11:17 friedelwolff * convert/po2csv.py: Don't use assume a multistring and .strings unless we know it is a plural unit 2009-06-10 11:14 friedelwolff * convert/test_html2po.py: Don't convert to string without encoding - doesn't work for non-ascii anyway 2009-06-10 11:10 friedelwolff * storage/cpo.py: [port r11457 to cpo] Get rid of 'msgid_comment', 'msgid_comment_all' and 'keep' merging styles for removing duplicates. 2009-06-10 10:51 friedelwolff * storage/pypo.py: Get rid of 'msgid_comment', 'msgid_comment_all' and 'keep' merging styles for removing duplicates. Call me 'Killer'. 2009-06-10 10:46 friedelwolff * storage/test_pypo.py: Remove tests for 'msgid_comment' and 'keep' merge styles 2009-06-10 09:33 friedelwolff * storage/placeables/test_lisa.py: Make all literals unicode strings - this way the API doesn't need to accept them silently and hide errors 2009-06-10 09:26 dwaynebailey * storage/properties.py: Add link to Java MessageFormat documentation 2009-06-10 09:19 dwaynebailey * storage/properties.py: Fix ref to external documentation 2009-06-09 15:30 walter_l * storage/placeables/strelem.py: StringElem.delete_range(): Case 3 didn't work as expected for simple strings (no placeables). 2009-06-09 15:29 walter_l * storage/placeables/strelem.py: StringElem.delete_range(): More descriptive comments 2009-06-09 13:04 alaaosh * storage/subtitles.py: encoding conversion doesn't work properly, disable for now. 2009-06-09 13:03 alaaosh * storage/subtitles.py: don't use spaces when converting timestamps to locations 2009-06-09 12:55 walter_l * storage/placeables/strelem.py: StringElem.__init__(): Don't accept str children, only unicode. 2009-06-09 12:53 walter_l * storage/placeables/strelem.py: StringElem.delete_range(): Provide index information on IndexErrors. 2009-06-08 16:28 friedelwolff * convert/test_xliff2po.py: Adapt tests to the fact that we handle xml:preserve correctly, and test for both 'preserve' and the default 2009-06-08 16:21 friedelwolff * convert/test_convert.py: Only do psyco handling in the test if it is installed 2009-06-08 15:57 friedelwolff * storage/cpo.py: Don't handle fuzzy as a typecomment - libgettextpo doesn't, so we need to handle fuzzy as a separate attribute. Let's break out early while searching for a type comment as a cheap shot at optimisation. 2009-06-08 15:36 friedelwolff * storage/base.py: Rather use .istranslatable() in store.isempty() since it is really what we mean. This will allow formats to override this in a more meaninful way. 2009-06-08 15:34 friedelwolff * storage/base.py: multistring_to_rich() should not be a classmethod - this way we can set parsers for each instance as we need 2009-06-08 15:22 friedelwolff * storage/test_xliff.py: Only use unicode literals for strings - we don't want the api to accept the rest anyway 2009-06-08 14:30 friedelwolff * search/test_match.py: Adapt test to take into account that we work with lower case strings in matching, and therfore also in the resulting source we get back 2009-06-08 14:26 friedelwolff * search/test_match.py, search/test_terminology.py: Move terminology changes to test_match, since the code they are testing moved there. Rewrite to reflect the change. 2009-06-08 14:17 friedelwolff * search/match.py: Sort by length before appending alternate forms. This way the alternate forms will always have lower priority 2009-06-08 14:15 friedelwolff * search/match.py: Ensure that at least one space or hyphen exists before substituting 2009-06-08 13:21 friedelwolff * tools/podebug.py: Handle all literals as unicode strings 2009-06-08 13:13 friedelwolff * tools/podebug.py: Rather use unit.istranslatable() than trying to guess what is needed 2009-06-08 13:11 friedelwolff * tools/podebug.py: Generate rich strings for formats that don't support them, and use that to avoid changing XML, variables, etc. 2009-06-08 12:39 friedelwolff * tools/test_podebug.py: only use unicodes in testing - we don't want to support working with str 2009-06-08 11:17 friedelwolff * storage/placeables/strelem.py: Prune the element after creation to ensure it is in the correct presentation. This should simplify tests a bit. 2009-06-08 11:10 friedelwolff * storage/xliff.py: set xml:space properly for new units we create as well as alttrans units 2009-06-08 11:02 friedelwolff * storage/pocommon.py: Search for the end of msgid comments in a non-greedy way 2009-06-08 11:02 friedelwolff * storage/test_base.py: Remove unused import 2009-06-08 10:42 friedelwolff * storage/test_base.py: We don't want parsing to work for non-unicode strings, so let's not test for it 2009-06-08 07:56 friedelwolff * storage/tmx.py: Clean up whitespace and license header. No functional change 2009-06-08 07:47 friedelwolff * storage/lisa.py: Correctly handle xml:space attributes, whereever they might have been specified up in the xml tree. This might be a bit of a performance hit, but this gives us long awaited correct handling of whitespace in XLIFF, etc. 2009-06-08 07:45 friedelwolff * storage/test_xliff.py: Test for the correct handling of xml:space attributes 2009-06-08 07:21 friedelwolff * storage/xliff.py: Clean up whitespace and license header. No functional change 2009-06-08 07:15 friedelwolff * storage/pypo.py: Clean up whitespace and license header. No functional change 2009-06-08 07:09 friedelwolff * storage/cpo.py: Impliment a first version of buildfromunit() that can actually usefully instantiate itself from a another pounit 2009-06-08 07:07 friedelwolff * storage/cpo.py: Always decode the strings obtained from libgettextpo instead of relying on autoencode through multistring. Minor optimisations by using unicodes where multistrings are not necessary 2009-06-08 07:02 friedelwolff * storage/cpo.py: Use pocommon.extract_msgid_comment() instead of custom code 2009-06-08 07:00 friedelwolff * storage/cpo.py: Use setmsgidcomment() as a setter for the msgidcomment property 2009-06-08 06:58 friedelwolff * storage/cpo.py: Impliment settypecomment() and give proper argtypes for +gpo.po_message_is_format() 2009-06-08 06:54 friedelwolff * storage/pocommon.py: Provide a central method for extracting msgid comments 2009-06-08 06:50 friedelwolff * storage/placeables/general.py: Mark some placeable types as untranslatable for when we want to use this information 2009-06-05 15:47 walter_l * storage/placeables/strelem.py: StringElem.insert(): Prune the element in which the insert happened. 2009-06-05 14:06 friedelwolff * services/tmserver.py: Typo in docstring 2009-06-03 15:45 friedelwolff * storage/placeables/general.py: Better regular expression for UrlPlaceable. Now we support full URLs with trailing paths. 2009-06-03 14:49 dwaynebailey * storage/placeables/general.py: Fix docstring 2009-06-03 12:30 friedelwolff * storage/placeables/general.py: Placeable for fancy spaces - currently unused 2009-06-03 12:07 friedelwolff * search/match.py, search/terminology.py: Rewrite the terminology matcher to do more processing during initialisation to speed up matching, especially in the face of alternatives. More todo in this area. 2009-06-03 10:02 friedelwolff * services/tmserver.py: Only use logging on level WARNING by default, this way normal operation shouldn't give much output 2009-06-03 10:00 friedelwolff * services/tmserver.py: Cosmetic changes: docstrings, wrapping, spacing, unused import 2009-06-03 04:36 dwaynebailey * convert/po2symb.py, convert/symb2po.py, tools/build_tmdb.py: s/Virtaal/Translate Toolkit/ 2009-06-03 04:32 dwaynebailey * storage/php.py: s/Virtaal/Translate Toolkit/ 2009-06-02 21:41 friedelwolff * storage/php.py: Cosmetic changes to comments, docstrings. Update copyright header. No functional change. 2009-06-02 21:39 friedelwolff * convert/po2php.py, convert/test_po2php.py: A broken testcase and a fix 2009-06-02 16:29 dwaynebailey * storage/placeables/general.py: Add nbsp as a delimter 2009-06-02 16:28 dwaynebailey * storage/placeables/general.py: Allow multiple groups not just decimal seperator 2009-06-01 16:06 walter_l * storage/placeables/strelem.py: Small cosmetic (comment) change. 2009-06-01 16:05 walter_l * storage/placeables/strelem.py: StringElem.delete_range(): Delete the whole start- or end element if necessary. 2009-06-01 16:03 walter_l * storage/placeables/strelem.py: StringElem.delete_range(): Remove unused delete_nodes list. 2009-06-01 16:02 walter_l * storage/placeables/strelem.py: StringElem.delete_range(): (Case 4) Find the indexes of the start and end nodes by identity and not value (ie. don't use list.index). 2009-06-01 16:01 walter_l * storage/placeables/strelem.py: StringElem.delete_elem(): Remove the element based on identity and not (equal) value. 2009-06-01 15:51 friedelwolff * search/match.py: Never use units with single character source strings for TM. This handles the issue where we were getting '100% matches' for disassociated accesskeys in Mozilla translations in new units when using a compendium. 2009-06-01 15:45 friedelwolff * search/terminology.py: Minor optimisation of existing terminology matching algorythm 2009-05-28 05:55 dwaynebailey * storage/placeables/general.py: Add a FIXME for the punctuation placeable. 2009-05-28 05:53 dwaynebailey * storage/placeables/general.py: Use \B to ensure that we have space before the dashes. Prevents word--word from being selected. 2009-05-28 05:04 dwaynebailey * storage/placeables/general.py: Add an Options placeable for --help, -h, -I 2009-05-27 16:25 walter_l * storage/placeables/strelem.py: StringElem.insert(): Return True if the insert was completed successfully, False otherwise. 2009-05-27 16:24 walter_l * storage/placeables/strelem.py: StringElem.insert(): Added (commented out) debugging messages. 2009-05-27 16:24 walter_l * storage/placeables/strelem.py: StringElem.prune(): Collapse leaves' children into a single string. 2009-05-27 16:23 walter_l * storage/placeables/strelem.py: StringElem.prune(): Convert stray unicode or str nodes in the tree to StringElem leaves. 2009-05-27 16:22 walter_l * storage/placeables/strelem.py: StringElem.delete_range(): list.remove() finds the element to remove via __eq__. This means that if two placeables that look the same are present, the first one will always be removed before the second. 2009-05-27 14:12 dwaynebailey * filters/autocorrect.py: Fix terminology msgid->source msgstr->target 2009-05-27 13:57 dwaynebailey * filters/autocorrect.py: Update header. Add more detailed docstrings 2009-05-27 13:52 dwaynebailey * filters/autocorrect.py: Allow ellipses to be corrected in either direction i.e. to follow the pattern of the source text. 2009-05-26 15:12 friedelwolff * storage/placeables/general.py: New regular expression for CamelCase placeable that doesn't match all uppercase strings 2009-05-26 10:36 walter_l * storage/placeables/strelem.py: StringElem.insert(): Improvements to avoid inserting unnecessary new leaves. 2009-05-26 10:09 walter_l * storage/placeables/strelem.py: StringElem.translate(): Return a copy of the current tree by default. 2009-05-26 10:08 walter_l * storage/placeables/strelem.py: StringElem.insert(): Use a StringElem in stead of a normal string. 2009-05-26 10:07 walter_l * storage/placeables/general.py: + NewlinePlaceable 2009-05-25 10:38 friedelwolff * filters/test_checks.py: Test for an accelerated hyphen (-) as spotted in Firefox 2009-05-25 10:36 friedelwolff * filters/decoration.py: Allow hyphen (-) and question mark (?) as accelerators, since it does actually occur in the wild 2009-05-25 10:33 friedelwolff * lang/test_common.py: Further test for sentece segmentation 2009-05-25 10:31 friedelwolff * storage/placeables/general.py: Move the number placeable to the lowest priority. This ensures that a term such as 'MP3' is matched as a caps placeable. This should also avoid matching numbers inside URLs, e-mail addresses, format specifiers, etc. 2009-05-25 10:29 friedelwolff * storage/placeables/general.py: Escape the '-' in the regular expression. We now correctly match a term such as 'D-BUS' as a caps placeable 2009-05-25 10:24 friedelwolff * storage/placeables/terminology.py: Remove duplicate translations for terminology placeable 2009-05-25 10:22 friedelwolff * storage/placeables/terminology.py: Find all terminology matches for the current placeable by comparing positions and lengths, since term_string could look different to m.source due to case changes, hyphenation, or other morphological changes 2009-05-25 10:14 friedelwolff * storage/lisa.py: Some helper methods that we might need in future, license updates, typo, TODO, etc. No functional change. 2009-05-22 09:17 walter_l * storage/placeables/strelem.py: StringElem: Added remove_type() method. It replaces elements of the given types with StringElem nodes. 2009-05-22 09:16 walter_l * storage/placeables/strelem.py: Documented return value. 2009-05-22 09:15 walter_l * storage/placeables/strelem.py: StringElem.delete_range(): Fixed returns. 2009-05-21 13:36 dwaynebailey * storage/placeables/general.py: Add some other exotic characters found in the Translate.org.za corpus of translations. Including em dash, en dash and those three dots whose name I always forget 2009-05-20 14:40 friedelwolff * storage/placeables/general.py: Only recognise unusual punctuation marks as placeables 2009-05-20 14:37 friedelwolff * storage/placeables/general.py: Hopefully more accurate CamelCase placeable 2009-05-20 14:24 walter_l * storage/placeables/strelem.py: StringElem.prune(): Added optimisation: "# Symbolically: StringElem->StringElem2->(leaves) => StringElem->(leaves)" 2009-05-20 14:23 walter_l * storage/placeables/strelem.py: StringElem.prune(): Also remove empty strings (as apposed to StringElems only). 2009-05-20 14:21 walter_l * storage/placeables/strelem.py: StringElem.delete_range(): In stead of returning the deleted sub-string, return a StringElem including the parent that contained it (None for root). 2009-05-19 11:22 alaaosh * storage/base.py: add useful methods for interacting with source index 2009-05-19 08:31 dwaynebailey * storage/placeables/general.py: Remove misplaced dash (-) in regex 2009-05-18 17:08 walter_l * storage/placeables/strelem.py: StringElem.delete_range(): Added nice (commented out) debugging output: "foo[bar]baz" if "bar" is to be deleted from "foobarbaz". 2009-05-18 17:07 walter_l * storage/placeables/parse.py: The important parse() function no longer accepts plain strings as arguments. 2009-05-18 13:57 dwaynebailey * storage/placeables/general.py: Remove TODO - we are now checking better for TLDs 2009-05-18 13:16 dwaynebailey * storage/placeables/general.py: Improvement to the email detection. Has some intellegence to ensure that emails have a TLD of some sort. 2009-05-18 12:00 friedelwolff * storage/poheader.py: Partially revert r11124 - we need the header at the start of .units. More work needed here. 2009-05-18 11:46 walter_l * storage/placeables/general.py: Fix spacing as per PEP8. 2009-05-18 10:15 friedelwolff * README: Partially revert r11129 - we do still depend on iniparse 2009-05-18 09:26 friedelwolff * storage/placeables/general.py: Also handle numeric entities, and ensure that we look for XML entities before numbers. 2009-05-18 08:48 friedelwolff * storage/placeables/general.py: Regex for XML entity is already non-greedy. Instead of allowing all non-space characters in the name (\S) we should match a much smaller set - valid SGML names. 2009-05-18 07:44 friedelwolff * storage/placeables/general.py: Rewrite FilePaceable regex as a raw string, and demand at least three characters in filename. +Some notes. 2009-05-18 07:39 friedelwolff * storage/placeables/general.py: Important TODOs with existing regular expressions. We need to have this perfect :-) 2009-05-18 07:33 friedelwolff * storage/placeables/general.py: +CamelCasePlaceble 2009-05-18 07:31 friedelwolff * storage/placeables/general.py: +CapsPlaceable 2009-05-18 07:27 friedelwolff * filters/checks.py, filters/test_checks.py: Translate the punctuation before checking endwhitespace. This gives opportunity to remove trailing spaces in languages using fullwidth punctuation without extra spacing. Test with Chinese example. 2009-05-18 07:23 friedelwolff * README: Remove the obsolete note of requiring iniparse. Other minor typos. 2009-05-18 07:21 friedelwolff * lang/data.py: Fix typos for Piemontese and Pashto: nplurals 1->2 2009-05-18 07:20 friedelwolff * lang/common.py, lang/test_zh.py: Fix a bug where a single character string like '.' will be transformed (for example in Chinese), and we want to test for the second last character. Add a test for this case in Chinese. 2009-05-18 07:14 friedelwolff * storage/statsdb.py: Be extra careful with the rollback to see if we even have a connection. This hopefully fixes bug 832. 2009-05-18 07:12 friedelwolff * storage/ini.py: Fix license block, whitespace, copyright dates 2009-05-18 07:07 friedelwolff * storage/poheader.py: Fix .updateheader() to use .addunit(). Should now work for POXLIFF. 2009-05-18 07:04 friedelwolff * tools/test_podebug.py: Basic test for flipped rewrite style 2009-05-18 06:49 friedelwolff * tools/podebug.py: New rewrite style: flipped 2009-05-16 21:29 friedelwolff * filters/checks.py: Limit the number of spelling suggestions to 5 in the case where something like aspell gives back 20 2009-05-16 21:20 friedelwolff * filters/checks.py: Don't strip accelerators and variables when checking whitespace 2009-05-16 21:19 friedelwolff * filters/checks.py: Also check fancy (curly) quotation marks in the doublequoting check 2009-05-16 12:42 friedelwolff * storage/placeables/parse.py: If a leaf is not editable, don't bother to look for further placeables inside 2009-05-16 12:41 friedelwolff * storage/placeables/parse.py: only force the leaf to unicode once, in case it is expensive 2009-05-16 12:29 friedelwolff * storage/placeables/strelem.py: typo in docstring 2009-05-16 11:02 friedelwolff * lang/data.py: +Piemontese (pms) 2009-05-16 05:47 dwaynebailey * convert/odfxml: Catch a corner case of files with spaces that aren't escaped. 2009-05-15 08:51 walter_l * storage/placeables/general.py: Doh! Don't match empty strings as numbers. 2009-05-15 08:50 walter_l * storage/base.py: Use an empty list as the default list of placeables parsers to use in TranslateUnit. 2009-05-14 15:19 friedelwolff * convert/pot2po.py: Call _prepare_merge before we instantiate the fuzzy matchers - otherwise resurrecting obsolete entries has no effect. This (with previous commits) fixes bug 928. 2009-05-14 15:18 friedelwolff * tools/pretranslate.py: Don't match on 100% if location comments differ - the matchers will do that. We'll need to work out when to use locations and when to use the gettext IDs. (part of fixing bug 928) 2009-05-14 15:15 friedelwolff * convert/test_pot2po.py: Test units with small source strings are not incorrectly populated by means of fuzzy matching 2009-05-14 13:36 friedelwolff * convert/pot2po.py: Clean up docstrings, typos, whitespace 2009-05-14 13:24 friedelwolff * tools/pretranslate.py: Clean up docstrings, typos, whitespace 2009-05-14 13:22 friedelwolff * tools/pretranslate.py: Clean up docstrings, typos, whitespace 2009-05-14 12:29 walter_l * storage/placeables/general.py: + NumberPlaceable, PythonFormattingPlaceable: Thanks, Dwayne. :) 2009-05-14 02:19 alaaosh * tools/pretranslate.py: oops still unfamiliar with api, I blame home affairs. istranslated returns False for fuzzies, is gettargetlen() to test for existence of target instead 2009-05-14 01:49 alaaosh * tools/pretranslate.py: replace test for target length, with unit.istranslated code written before I got familiar with API 2009-05-14 01:48 alaaosh * storage/statsdb.py: add ability to pass store as callback in statsdb. callback returns a TranslationStore. in pootle this allows Store stats to be accessed without unnecessary parsing file, at the same time if statsdb needs to parse the file it is still stored in pootle's storecache 2009-05-13 19:03 dwaynebailey * lang/identify.py: Language identification module that uses libtextcat 2009-05-11 13:51 friedelwolff * tools/pomerge.py: Mention default value for --mergeblanks and --mergecomments. Part of addressing bug 953. 2009-05-08 16:19 alaaosh * storage/versioncontrol/__init__.py: RCS detection b0rked for dirs. search for metadir as sibling when testing files and as child when testing directories 2009-05-07 21:39 dwaynebailey * convert/accesskey.py: Minor cleanups in docstrings 2009-05-07 15:15 friedelwolff * convert/po2dtd.py: Update comment to reflect newest changes 2009-05-07 14:02 friedelwolff * convert/po2dtd.py, convert/test_po2dtd.py: Only change the case of the accesskey if the translation is unchanged from the source text, otherwise keep it exactly as we obtain it from the translation. This fixes some rare cases where generated accesskeys might have shifted between upper/lower case variants during po2dtd. 2009-05-07 10:38 friedelwolff * convert/test_po2dtd.py: Add TODO note to test_accesskeycase 2009-05-07 10:33 friedelwolff * convert/test_po2html.py: Mask out unimportant tests that are unlikely to get any attention soon 2009-05-07 10:03 friedelwolff * storage/pypo.py: Mark .changeencoding() as deprecated. No users left. 2009-05-07 09:58 friedelwolff * convert/symb2po.py: Remove last call in the toolkit to postore.changeencoding(). We probably want something in poheader to rather do this, or alter the behaviour of .updateheader(). 2009-05-07 09:45 friedelwolff * storage/poheader.py: White space cleanup, line lengths, docstrings, copyright notice. No code change. 2009-05-07 08:58 alaaosh * storage/base.py: after all this time turns out I didn't understand how plurals work. added check for hasplural before looping over strings. I still think all units should have a strings list though :-( 2009-05-07 08:37 friedelwolff * filters/test_checks.py: White space cleanup 2009-05-07 08:22 friedelwolff * filters/pofilter.py: If the user asks for a header, take over the one from the original file (probably not cpo safe). This fixes the second part of bug 950 2009-05-05 14:09 walter_l * storage/placeables/general.py: Removed superfluous comma that caused very bad things to happen. My cat is dead. :( 2009-05-05 14:07 walter_l * storage/placeables/general.py: Removed commented out class TerminologyPlaceable, because it lives in terminology.py. 2009-05-05 12:58 walter_l * storage/placeables/general.py: + UrlPlaceable + FilePlaceable + EmailPlaceable Written by Dwayne. 2009-04-30 16:04 walter_l * storage/placeables/strelem.py: StringElem.delete_range(): Apparently case 1 is sometimes disguised as case 2. (Case 1 and 2 is explained in a comment above the patched area of the file.) 2009-04-30 16:03 walter_l * storage/placeables/strelem.py: StringElem.elem_offset(): First finish looking for the same instance (parameter) element, before searching for its string-equivalent. 2009-04-30 13:29 friedelwolff * storage/statsdb.py: Update copyright date. Whitespace cleanup. 2009-04-30 13:10 walter_l * storage/placeables/parse.py: Ensure that, if the same parsing function occurs multiple times, a parsed placeable is not parsed again, creating an identical sub-node. 2009-04-30 13:09 walter_l * storage/placeables/strelem.py: Added another case in StringElem.delete_range(): Deleting the entire current string (self). 2009-04-30 02:01 alaaosh * storage/statsdb.py: use get_config_id instead of _getstoredcheckerconfig just in case a different checker is required for recaching unit stats 2009-04-30 01:57 alaaosh * storage/base.py, storage/xliff.py: add suggestions_in_format property 2009-04-30 01:53 alaaosh * storage/base.py: don't access self.filename directly sometimes it doesn't exist 2009-04-30 01:50 alaaosh * storage/base.py: makeindex now keeps track of multiple units with the same source sourceindex is a mapping of source strings and lists now findunit returns the first unit from the list, use findunits if you want the whole list 2009-04-30 01:48 alaaosh * tools/pomerge.py: use findunit instead of directly accessing sourceindex 2009-04-30 01:28 alaaosh * storage/statsdb.py: split unit state stats is a separate function filestatestats 2009-04-30 01:26 alaaosh * storage/base.py: make most translation stores serializable (libxml based stores are not) 2009-04-29 15:55 walter_l * storage/placeables/strelem.py: If we couldn't find an ancestor to insert the text into, use self. 2009-04-29 15:54 walter_l * storage/pypo.py: Make sure that pypo also invalidates cached self._rich_target in settarget(). 2009-04-29 15:20 walter_l * storage/placeables/strelem.py: Handle the special case where the element to delete is self (the root). 2009-04-29 15:20 walter_l * storage/placeables/strelem.py: Make StringElem.delete_range() return the deleted string. 2009-04-29 14:28 walter_l * storage/placeables/strelem.py: Have StringElem.prune() also delete empty elements. 2009-04-29 14:27 walter_l * storage/placeables/strelem.py: Use iter_depth_first() in stead of depth_first() where possible. 2009-04-29 14:26 walter_l * storage/placeables/strelem.py: Make StringElem.iter_depth_first() actually act like an iterator. 2009-04-29 14:25 walter_l * storage/placeables/strelem.py: + StringElem.delete_range() - Delete elements and/or sub-strings in the tree between given indices. + StringElem.delete_elem() - Used by delete_range() + StringElem.get_index_data() - Used by delete_range() 2009-04-28 16:31 walter_l * storage/placeables/test_base.py: + TestStringElem.test_insert() - Basic tests for StringElem.insert(). 2009-04-28 16:30 walter_l * storage/placeables/strelem.py: + StringElem.insert(offset, text) - Insert the given text (unicode or StringElem - str if you *have* to) into the tree. The method tries to select the best possible node to insert the text at. 2009-04-28 16:29 walter_l * storage/placeables/strelem.py: + StringElem.get_ancestor_where(elem, f) - Find an ancestor of elem for which f(ancestor) returns True. 2009-04-24 16:05 walter_l * storage/placeables/lisa.py, storage/placeables/parse.py, storage/placeables/strelem.py, storage/placeables/test_lisa.py: To make a long story short: Leaves in StringElem trees have gone back to being defined as "a StringElem (not sub-class) node containing only str or unicode children". It caused a lot of breakage in other code that needed to be fixed. 2009-04-24 16:04 walter_l * storage/placeables/strelem.py: + StringElem.prune(): Remove unnecessary nodes from the tree. 2009-04-24 16:03 walter_l * storage/placeables/general.py, storage/placeables/strelem.py, storage/placeables/terminology.py, storage/placeables/test_base.py, storage/placeables/test_lisa.py, tools/podebug.py: StringElem's first argument containing the new node's children need not be a list anymore; it is automatically put in a list if necessary. A lot of other code was also updated to reflect this change and make the code a bit cleaner as a result. 2009-04-23 13:16 walter_l * storage/placeables/lisa.py: Handle non-existent DOM nodes (like when there is no tag in a XLIFF file). 2009-04-23 10:58 walter_l * storage/placeables/parse.py: Improve the main placeables parsing function to support normal strings (str and unicode) as leaves. 2009-04-23 08:45 friedelwolff * lang/data.py: Plural information for Neapolitan (nap) 2009-04-21 08:22 walter_l * storage/placeables/strelem.py: Make StringElem.depth_first() include leaves of type str or unicode. 2009-04-21 08:21 walter_l * storage/placeables/strelem.py: Reimplemented StringElem.elem_offset() to take str or unicode leaves into account. 2009-04-15 16:03 dwaynebailey * filters/checks.py: Fix docstring 2009-04-15 15:35 walter_l * storage/placeables/strelem.py: Updated StringElem.copy()'s doc-string. 2009-04-15 15:34 walter_l * storage/placeables/strelem.py: Use StringElem.isleaf() in StringElem.flatten() to determine if children should be added to the flattened list. 2009-04-15 13:56 friedelwolff * filters/checks.py: Add a 'credits' check for the Mozilla checker 2009-04-09 15:50 walter_l * storage/placeables/strelem.py: + StringElem.renderer - An optional, external function to create the Unicode representation of a node/tree. 2009-04-09 15:49 walter_l * storage/placeables/xliff.py: Removed the __unicode__ method from XLIFF placeables, because the XML representations should be done by the stores, not StringElem tree. 2009-04-09 14:40 alaaosh * search/indexing/XapianIndexer.py: under mod_wsgi check for apache instead of _apache, and all of this because GIL sucks 2009-04-09 13:30 walter_l * storage/placeables/lisa.py: Handle rid's and xid's for "empty" (non-paired) placeables (like ). 2009-04-09 11:26 walter_l * storage/placeables/general.py: Add PunctuationPlaceable to the list of possible conversions for general.Ph placeables. 2009-04-09 11:25 walter_l * storage/placeables/test_base.py, storage/placeables/test_terminology.py: The recently-added PunctuationPlaceable caused test data to change. Tests are now updated to reflect the changes. 2009-04-09 10:38 walter_l * tools/test_podebug.py: Added XLIFF test and required scaffolding. 2009-04-09 10:38 walter_l * storage/placeables/base.py: Ignore unsupported arguments (like rid used in StringElem.__init__()). 2009-04-09 10:37 walter_l * storage/placeables/lisa.py: Make sure that more than one string can be appended to the tail of an existing XML node. 2009-04-09 10:36 walter_l * storage/placeables/strelem.py: + StringElem.copy() - Returns a deep copy of the tree. 2009-04-09 10:36 walter_l * tools/podebug.py: Fix up license header. 2009-04-08 13:31 walter_l * tools/podebug.py: * Allow the rewrite functions to accept strings as well as StringElems. * Fix rewrite_xxx() to move trailing \n's. 2009-04-08 13:30 walter_l * tools/test_podebug.py: Updated tests to accept StringElem objects as return values from the rewrite functions. 2009-04-08 13:29 walter_l * storage/placeables/base.py: Updated flags of placeable types in translate/storage/placeables/base.py. 2009-04-08 13:28 walter_l * storage/placeables/strelem.py: Updated StringElem.__eq__() 2009-04-08 13:26 walter_l * storage/placeables/strelem.py: + StringElem.istranslatable and StringElem.has_content flags 2009-04-08 10:23 walter_l * tools/podebug.py: Fixed podebug's rewrite functions and usage to work correctly with rich_source and rich_target. 2009-04-08 10:22 walter_l * misc/rich.py: - translate/misc/rich.py - Contained confusing and obsolete code from the pre-StringElem era. 2009-04-08 10:21 walter_l * storage/placeables/strelem.py: + StringElem.apply_to_string() - Apply a function to all strings in the tree. 2009-04-08 10:20 friedelwolff * lang/data.py: Add Pashto (ps) plural information. Minor whitespace cleanup. 2009-04-07 15:46 walter_l * tools/podebug.py: multistring and unicode strings don't have an insert() method, so we should use a more generic method to add a prefix. 2009-04-07 13:04 friedelwolff * storage/odf_io.py: Open the ZIP file as a binary file for the sake of Windows. This should fix bug 816. 2009-04-07 09:56 friedelwolff * storage/ts2.py: Use the more modern lxml API that is more readible and less error prone 2009-04-07 08:54 friedelwolff * search/match.py: Only consider translated units as usable 2009-04-07 08:12 alaaosh * search/indexing/XapianIndexer.py: don't import xapian bindings when running under mod_python to avoid deadlocks 2009-03-30 15:27 walter_l * storage/placeables/terminology.py: Make sure that all matches containing the currently parsed term is added as translations to the current placeable. 2009-03-26 19:40 friedelwolff * lang/data.py: Add Lao from the wiki 2009-03-26 14:48 friedelwolff * storage/qm.py: Fix typo 2009-03-26 14:47 friedelwolff * search/match.py: Supply a usable() method to filter out units that are too short or too long 2009-03-26 14:46 friedelwolff * search/terminology.py: Compile the regular expression and make it avaible at module level 2009-03-26 14:45 friedelwolff * search/test_terminology.py: A test for an extra long term 2009-03-26 09:17 walter_l * storage/placeables/general.py: + Support punctuation as placeables. The usefulness of this still needs to be (dis)proven. 2009-03-26 09:15 walter_l * search/match.py: Forgot to remove the list comprehension that was replaced by a for-loop. :/ 2009-03-25 14:11 walter_l * search/match.py: Improved terminologymatcher.matches() a bit. 2009-03-24 15:45 walter_l * search/match.py: Use a simpler list comprehension for the terminology matcher in stead of the bulky matcher.matches(). 2009-03-24 15:41 walter_l * storage/placeables/parse.py: Don't try and parse leaves with no content. 2009-03-24 15:37 walter_l * search/match.py: Make the sorting done by matcher.inittm() reversable. 2009-03-19 16:06 walter_l * storage/placeables/terminology.py, storage/placeables/test_terminology.py: + TerminologyPlaceable and its parser. + A simple test for TerminologyPlaceable. 2009-03-19 16:05 walter_l * search/match.py: Collect terminologycomparer.match_info in terminologymatcher.match_info. 2009-03-19 16:05 walter_l * search/match.py: For the terminology matcher, we need the candidates in reversed size-sorted order (longest first). 2009-03-19 16:04 walter_l * search/terminology.py: + TerminologyComparer.match_info dict. It holds more information about matches found. It's kind of hackish, because it needs to be clear manually, but at least it doesn't change the API. :/ 2009-03-19 16:03 walter_l * storage/placeables/strelem.py: rename StringElem.transform() to StringElem.translate() and give it a new implementation. 2009-03-19 14:05 walter_l * storage/xml_extract/extract.py: Migrate storage/xml_extract/extract.py completely to the new way of handling rich string structures and placeables. 2009-03-19 14:03 walter_l * search/terminology.py: Use more descriptive variable names. 2009-03-19 13:59 walter_l * search/match.py, search/terminology.py: Cosmetic changes. 2009-03-19 13:56 walter_l * storage/placeables/lisa.py: StringElem.isleaf() no longer returns True only for StringElem leaves, so we have to check for that ourselves. 2009-03-19 13:53 walter_l * storage/placeables/parse.py: Test using type(x) in stead of x.__class__. 2009-03-19 13:52 walter_l * storage/placeables/parse.py: Documented the important parse() function. 2009-03-19 13:11 alaaosh * convert/pot2po.py: don't assume template_store supports poheader just because input_store supports it. never assume cause when u ASSUME you make an ASS of U and ME 2009-03-16 19:02 dwaynebailey * convert/po2ical.py: Correctly handle a situation where the .ics has content that is not present in the PO file. 2009-03-16 16:34 walter_l * storage/placeables/general.py: With the new parser the order of the parsing functions used is a lot more important. Hence this reordering. 2009-03-16 16:33 walter_l * storage/placeables/general.py: Factored out a generic parse method that uses a class's specified regex to parse instances of it from a string. 2009-03-16 16:31 walter_l * storage/placeables/parse.py: Replaced the main placeables' parse() with a more effective version. 2009-03-16 16:30 walter_l * storage/placeables/strelem.py: + StringElem.get_parent_elem() - Finds a given node's parent node in the current tree. 2009-03-16 16:28 walter_l * storage/placeables/strelem.py: isleaf() should also return True for StringElem sub-classes that only contain str|unicode children. 2009-03-16 13:40 walter_l * misc/rich.py, storage/base.py, storage/placeables/base.py, storage/placeables/general.py, storage/placeables/lisa.py, storage/placeables/parse.py, storage/placeables/strelem.py, storage/placeables/test_base.py, storage/placeables/test_lisa.py, storage/placeables/xliff.py, storage/test_base.py, storage/test_xliff.py, tools/podebug.py: s/subelems/sub/g 2009-03-14 22:47 walter_l * storage/placeables/general.py: + FormattingPlaceable - Matches printf-style formatting specifiers * Compile regex for XMLEntityPlaceable only once. 2009-03-12 15:55 walter_l * storage/placeables/strelem.py: Fix StringElem.flatten() to also work if the string tree is only one node that of is a StringElem sub-class. 2009-03-11 15:41 walter_l * storage/placeables/test_base.py: Added tests for StringElem.elem_offset() and StringElem.isleaf() 2009-03-11 15:41 walter_l * storage/placeables/strelem.py: Reimplemented elem_offset() to use identity testing ("is") in stead of equality testing ("=="). 2009-03-10 09:47 friedelwolff * tools/posegment.py: -unused imports, +some notes. Updated license block and corrected copyright date. 2009-03-10 09:42 friedelwolff * convert/po2sub.py, convert/sub2po.py: Clean up some docstrings, copyright dates, error message 2009-03-10 09:31 friedelwolff * README: More notes on lxml and OSX 2009-03-10 08:44 walter_l * tools/podebug.py: Minor fix for podebug. 2009-03-10 06:54 friedelwolff * README: More detail on lxml options. Also mention easy_install. 2009-03-09 16:10 walter_l * storage/xml_extract/extract.py: Fix placeables import. 2009-03-09 16:09 walter_l * storage/cpo.py, storage/test_cpo.py: Fix cpo unit tests. 2009-03-09 16:08 walter_l * storage/poxliff.py, storage/test_ts2.py, storage/ts2.py: Fix ts2 and poxliff so that its tests pass. 2009-03-09 16:07 walter_l * storage/base.py: Specify the mandatory second paramter of storage.placeables.parse(). 2009-03-09 16:06 walter_l * storage/base.py: Test input to _set_rich_{source,target}() more thoroughly. 2009-03-09 16:05 walter_l * storage/wordfast.py: Prevent KeyErrors in conditional by using default (None). 2009-03-09 10:49 walter_l * storage/base.py: Move rich_to_multistring() and multistring_to_rich() closer to where they're used. 2009-03-09 10:49 walter_l * misc/rich.py: Updated license block and chunk to StringElem terminology. 2009-03-09 10:44 walter_l * misc/rich.py, tools/podebug.py: Only apply changes from rewrite function if there are results to apply. 2009-03-09 10:42 walter_l * storage/placeables/test_base.py: Fixed test_to_xliff_placeables() 2009-03-07 19:53 friedelwolff * lang/el.py: [Contributed by Thanos Lefteris] Valid accelerators for Greek (el). This closes bug 891. 2009-03-06 15:54 walter_l * storage/placeables/lisa.py: Define a simple parser for XLIFF placeables. 2009-03-06 15:53 walter_l * storage/placeables/base.py: Set default value (True) for the has_content attribute of XLIFF placeable classes. This fixes the conversion to XML strings by xliff__unicode__(). 2009-03-06 15:51 walter_l * storage/placeables/xliff.py: Fix to_xliff_placeables(). It generated instances from base.* in stead of xliff.*. 2009-03-06 15:50 walter_l * storage/test_xliff.py: Minor corrections and cleanup in XLIFF tests. 2009-03-06 15:49 walter_l * storage/placeables/test_lisa.py: Updated parameters to placeables.lisa.strelem_to_xml() - lists converted to StringElem. 2009-03-06 15:48 walter_l * storage/placeables/lisa.py: Reimplemented strelem_to_xml() which obsoletes the get_placeable(), collect_text() and end_with_eof() functions. 2009-03-06 15:47 walter_l * storage/placeables/strelem.py: + StringElem.isleaf() 2009-03-06 10:48 friedelwolff * lang/data.py: Tweak the dialect_name_re somewhat to handle more cases better. Now 'Spanish; Castilian (Argentina) can be handled, for example 2009-03-06 09:39 walter_l * storage/lisa.py, storage/placeables/lisa.py, storage/placeables/test_lisa.py, storage/test_ts2.py, storage/xliff.py: storage.placeables.lisa.extract_chunks -> storage.placeables.lisa.xml_to_strelem storage.placeables.lisa.insert_into_dom -> storage.placeables.lisa.strelem_to_xml 2009-03-05 15:16 walter_l * storage/placeables/test_base.py: + Tests for placeable converters. 2009-03-05 15:16 walter_l * storage/placeables/base.py, storage/placeables/general.py, storage/placeables/xliff.py: * Classes in storage.placeables.general now inherit from proper base classes. * Added conversion functions to the different "sets" of placeables. 2009-03-05 15:15 walter_l * storage/placeables/strelem.py: Make StringElem.__str__() more reliable by encoding from __unicode__()'s output. 2009-03-05 15:14 walter_l * storage/placeables/lisa.py: Support for StringElem in storage.placeables.lisa.as_unicode(). 2009-03-05 15:13 walter_l * storage/placeables/lisa.py: Document the entry-point functions in storage.placeables.lisa. 2009-03-05 15:12 walter_l * lang/data.py: Add support for StringElem in translate.lang.data.forceunicode(). 2009-03-04 16:07 walter_l * storage/lisa.py: Minor cosmetic changes. 2009-03-04 15:47 walter_l * storage/test_xliff.py: Fix import in test_xliff.py 2009-03-04 15:46 walter_l * storage/test_base.py: Update test_base.py to reflect some of the recent changes. 2009-03-04 15:45 walter_l * storage/base.py: Added caching of rich string trees. source and target are now properties and not attributes. Added the rich_parsers class variable to be able to customize the way string trees are parsed. 2009-03-04 15:13 walter_l * storage/placeables/general.py: XMLEntityPlaceable.parse(): s/+1// It causes the parser to consume one character too many. 2009-03-04 15:12 walter_l * storage/placeables/general.py: Use unicode.find() in stead of unicode.index() which raises a ValueError if the sub-string was not found. 2009-03-04 15:11 walter_l * storage/placeables/lisa.py: Process placeables from the base and xliff sub-modules when converting it to XML. 2009-03-04 15:10 walter_l * storage/placeables/lisa.py: s/placeables./xliff./ because placeables.py is no more. 2009-03-04 15:10 walter_l * storage/placeables/general.py, storage/placeables/parse.py, storage/placeables/test_base.py: * Make the "parser_funcs" parameter of parse() non-optional. * Added a "parsers" list to specific sub-modules to provide easy access to parser functions for that module. * Updated the test to use general.parsers for the aforementioned parameter. 2009-03-04 15:09 walter_l * storage/placeables/__init__.py, storage/placeables/base.py, storage/placeables/interfaces.py, storage/placeables/placeables.py, storage/placeables/strelem.py, storage/placeables/xliff.py: Restructured the storage.placeables module: * StringElem was moved to strelem.py. * interfaces.py now only contain the semantic interfaces. * These interfaces are sub-classed by the base placeables in base.py * placeables.py is removed 2009-03-04 14:37 friedelwolff * filters/checks.py: Filter out accelerators before counting sentences. This improves our sentence segmentation slightly. 2009-03-04 13:56 friedelwolff * lang/af.py, lang/common.py: Cleanup more string literals to be unicode strings 2009-03-04 13:53 friedelwolff * lang/af.py: Don't handle a number as a sentence start - this aligns better with what we do in common (for English). This affects the sentences test in pofilter. 2009-03-04 13:52 friedelwolff * lang/test_common.py: Test another case for sentence segmentation 2009-03-04 13:39 walter_l * storage/base.py: Cosmetic changes. 2009-03-04 13:38 walter_l * storage/base.py: s/_multistring_to_rich/multistring_to_rich/ s/_rich_to_multistring/rich_to_multistring/ ... again 2009-03-04 13:18 walter_l * storage/xliff.py: Implemented multistring_to_rich() and rich_to_multistring() in an XLIFF-specific way. 2009-03-04 13:17 walter_l * storage/base.py: s/_multistring_to_rich/multistring_to_rich/ s/_rich_to_multistring/rich_to_multistring/ 2009-03-04 13:12 walter_l * storage/placeables/lisa.py: Have translate.storage.placeables.lisa.extract_chunks() accept a string as parameter too. 2009-03-03 13:39 alaaosh * storage/base.py: merge on rich target instead of target 2009-03-03 13:33 alaaosh * tools/podebug.py: not sure what is going on here, but testing for length of subelems seems safe 2009-03-03 13:25 alaaosh * misc/rich.py: renamed .content to .subelems 2009-03-03 13:18 alaaosh * storage/placeables/general.py: use regexp when matching xml entities, otherwise we barf on strings with & that are not part of entities 2009-03-03 13:15 alaaosh * storage/placeables/interfaces.py: should be possible to construct placeable classes with no argumentsg 2009-03-03 10:47 walter_l * storage/test_ts2.py: Updated test_ts2.py, although it's not completely done yet. 2009-03-03 10:46 walter_l * storage/placeables/xliff.py: Swap parent classes for XLIFF placeables. 2009-03-03 10:46 walter_l * storage/lisa.py: - translate.storage.lisa.LISAunit._ensure_singular() 2009-03-03 10:45 walter_l * storage/test_ts2.py: Use valid XML strings to test ts2 with. 2009-03-03 10:43 walter_l * storage/test_base.py, storage/ts2.py: Fixed license blocks. 2009-03-03 07:02 friedelwolff * storage/test_base.py: Rename that went unnoticed in r10307 2009-03-02 16:20 dwaynebailey * storage/placeables/lisa.py: Fix typo 2009-03-02 16:06 walter_l * storage/placeables/base.py: Avoid "reference before assignment" error by providing a default value. 2009-03-02 15:22 walter_l * storage/placeables/lisa.py: Make "id" attributes of empty replaceable classes optional. 2009-03-02 14:15 walter_l * storage/base.py: s/(source|target)_rich/rich_(source|target)/ 2009-03-02 14:13 walter_l * tools/podebug.py: Fixed translate.tools.podebug.add_prefix() to be StringElem-aware. 2009-03-02 13:55 winterstream * storage/pypo.py: When deepcopying a unit, we don't want the reference _store to be deep copied (since otherwise, we copy the entire store every time deepcopy a unit). We use the __shallow__ class variable to indicate which members should always be copied in a shallow manner. 2009-03-02 13:49 winterstream * lang/common.py: When deep copying a singleton, we just want the singleton itself returned. 2009-03-02 10:54 walter_l * storage/placeables/base.py: Reimplemented StringElem.find() to use unicode.find(). It works much better now. 2009-02-27 15:58 walter_l * storage/placeables/base.py: Fixed method name. 2009-02-27 08:58 friedelwolff * lang/ne.py, lang/test_ne.py: Initial support for Nepali (ne). This is mostly to handle the spaced full stop and question mark correctly, but probably needs more attention. 2009-02-27 08:54 friedelwolff * lang/common.py: Add special code to hopefully handle properly with ellipses for once and for all. Too many three character ellipses are still out in the wild, so we have to handle this properly. 2009-02-27 08:51 friedelwolff * lang/test_common.py: Extra test for segmentation among newlines 2009-02-26 15:14 walter_l * storage/placeables/base.py: + StringElem.elem_offset() + Minor updates 2009-02-26 15:13 walter_l * storage/placeables/base.py, storage/placeables/general.py: Make XMLEntityPlaceable and XMLTagPlaceable non-editable. 2009-02-26 14:00 walter_l * storage/placeables/base.py, storage/placeables/test_base.py: s/find_elem_with/find_elems_with/ 2009-02-26 13:58 walter_l * storage/placeables/test_base.py: + test_elem_at_iter() - Testing for StringElem.elem_at_iter() 2009-02-26 13:57 walter_l * storage/placeables/base.py: + elem_at_offset(), depth_first(), iter_depth_first() for the StringElem class. 2009-02-26 11:12 walter_l * storage/placeables/test_base.py: + Tests for find() and find_elem_with() methods in StringElem. 2009-02-26 11:08 walter_l * storage/placeables/base.py: + find() and find_elem_with() methods in StringElem. 2009-02-26 08:24 walter_l * storage/stringelem: Delete empty storage/stringelem dir. 2009-02-25 16:39 walter_l * misc/rich.py, storage/base.py, storage/placeables/__init__.py, storage/placeables/base.py, storage/placeables/general.py, storage/placeables/interfaces.py, storage/placeables/lisa.py, storage/placeables/misc.py, storage/placeables/parse.py, storage/placeables/placeables.py, storage/placeables/test_base.py, storage/placeables/test_lisa.py, storage/placeables/xliff.py, storage/stringelem/__init__.py, storage/stringelem/strelem.py, storage/stringelem/test_strelem.py, storage/test_base.py, storage/test_dtd.py, storage/test_monolingual.py, storage/test_po.py, storage/test_properties.py, storage/test_tmx.py, storage/test_wordfast.py, storage/test_xliff.py, storage/xml_extract/extract.py: * A huge lot of changes to merge the StringElem class into storage.placeables.base.Placeable. * Imports were updated all over the translate.storage module to use the new layout. * Tests were added and updated to use the new placeables and their layout. 2009-02-25 16:10 walter_l * storage/test_base.py: + Tests for TranslationUnit's new source_strelem and target_strelem properties. 2009-02-25 16:01 walter_l * storage/stringelem/strelem.py: Change StringElem to be unicode-like in stead of a unicode. The main reason for this is that we need the StringElem trees to be mutable. There are other reasons. This also meant that we have to provide our own encode() method for StringElem. 2009-02-25 15:51 walter_l * storage/base.py: + TranslationUnit.source_strelem property + TranslationUnit.target_strelem property 2009-02-25 15:41 walter_l * storage/stringelem/__init__.py: + stringelem/__init__.py 2009-02-25 14:59 walter_l * storage/stringelem/test_strelem.py: * Some refactoring of variable names in the test + test_tree() which tests each part of the tree for the correct content. 2009-02-25 14:51 walter_l * storage/richstring/strelem.py, storage/richstring/test_strelem.py, storage/stringelem, storage/stringelem/strelem.py, storage/stringelem/test_strelem.py: storage/richstring -> storage/stringelem 2009-02-25 14:39 walter_l * storage/richstring/test_strelem.py: + Some tests for StringElem trees. 2009-02-25 14:31 walter_l * storage/richstring/strelem.py: * More consistent use of unicode() * Implemented StringElem.flatten() * Added parsing class methods as well as parser() function to use them. 2009-02-25 14:21 walter_l * storage/richstring, storage/richstring/strelem.py: + StringElem base class and basic implementations. 2009-02-25 08:44 friedelwolff * storage/poparser.py: If any unexpected character is obtained after a #, accept the comment as translator (other) comment. Reported by Sayamindu Dasgupta. This commit fixes bug 867. 2009-02-24 19:35 friedelwolff * storage/pypo.py, storage/test_pypo.py: Previous msgid and previos msgid_plural should come after type comments. +Test. 2009-02-24 07:36 friedelwolff * lang/fa.py, lang/ur.py: Avoid problems when punctranslate alters a %x style variable to the Arabic percent sign 2009-02-23 16:51 dwaynebailey * filters/test_checks.py: Add a French punctuation test. Add gconf test_ that I forgot to add with the gconf test implementation. 2009-02-20 09:44 murgilduta * filters/spelling.py: Since we are phasing it out, we don't want to try to import jToolkit's spellcheching module anymore. 2009-02-19 07:01 winterstream * convert/odf2xliff.py, storage/xliff.py: [Contributed by Nick Shaforostoff] This little patch implements storing template name in attribute. Logged in bug 851 (http://bugs.locamotion.org/show_bug.cgi?id=851). 2009-02-12 20:49 dwaynebailey * README: Note about chardet 2009-02-12 16:59 dupuy * lang/common.py, storage/csvl10n.py, storage/wordfast.py, tools/test_pomerge.py: spelling fix: seperate->separate (user-visible and comments; variables/methods left misspelled) 2009-02-12 15:50 alaaosh * README, convert/po2sub, convert/po2sub.py, convert/sub2po, convert/sub2po.py, storage/subtitles.py: We can now convert subtitle formats support by Gaupol 2009-02-12 08:45 friedelwolff * lang/data.py: Add missing import 2009-02-12 08:36 friedelwolff * lang/data.py: Add Bengali (India) (bn_IN) that usually has its own team 2009-02-12 08:30 friedelwolff * lang/data.py: On Windows a normal call to gettext.translation seems to invoke the 'C' locale - obviously what somebody using a cross-platform programming language would want. So we rather hack around it by using locale.getdefaultlocale() which we will probably eventually regret. This at least gives us translated language names in Virtaal. 2009-02-10 21:54 nekral * misc/test_optrecurse.py: TestRecursiveOptionParser has no base class. Remove unneeded parenthesis. 2009-02-09 13:26 alaaosh * lang/data.py: fixing arabic plural form, can't believe that slipped by me until now 2009-02-05 08:55 winterstream * convert/po2web2py, convert/po2web2py.py, convert/web2py2po, convert/web2py2po.py: [Contributed by Dominic König (dominic@nursix.org)] Convertors to convert between PO and web2py's translation format. 2009-02-04 15:35 friedelwolff * ChangeLog: Update ChangeLog before release of version 1.3.0 2009-02-04 14:46 friedelwolff * README: Mention more recent version of lxml that should be better 2009-02-04 13:01 friedelwolff * __version__.py: Version 1.3.0 2009-02-04 11:29 friedelwolff * lang/bn.py: Data for proper sentence endings, sentencere and puncdict. We should now do punctranslate correctly for Bengali. 2009-02-04 11:28 friedelwolff * lang/code_or.py: Remove unnecessary data members that are filled in by the factory 2009-02-04 11:21 friedelwolff * lang/code_or.py, lang/test_or.py: Only replace full stop with space or newline with the DEVANAGARI DANDA. This should avoid problems with numbers, code, etc. Needs more testing, though. 2009-02-04 11:20 friedelwolff * lang/common.py: Small cleanup to ensure we are using unicode strings, and strip space on the end of we are replacing punctuation at the end of strings and our transformation might have added a space 2009-02-03 15:41 friedelwolff * lang/fr.py, lang/test_fr.py: Support fancy (curly) quotes when translating punctuation for French 2009-02-02 13:30 friedelwolff * storage/ts2.py: Rewrite settarget to take loads of things into account. This mostly fixes bug 774. 2009-01-31 18:30 friedelwolff * lang/data.py: Make the gettext_lang() function use the system locale if none is given as paramter 2009-01-30 18:13 alaaosh * storage/tmdb.py: how many corners does this thing have 2009-01-30 17:41 alaaosh * storage/tmdb.py: handle the weird situation where a db initialized with fts3 support is opened without fts3 support 2009-01-30 17:23 friedelwolff * __version__.py: Version 1.3-rc1 2009-01-30 16:48 alaaosh * lang/data.py: simpler more correct simplercode simplify_to_common takes an optional language list/dict now 2009-01-30 11:04 friedelwolff * storage/poheader.py: Only add the current year if the contributor is already listed for earlier years 2009-01-30 10:55 friedelwolff * storage/poheader.py: In .upatecontributor(), also test if we have the current year listed in the contributor comments 2009-01-29 18:35 dwaynebailey * filters/checks.py: Gconf test. Gconf settings should not be translated. Test is enabled only with --gnome. Fixed bug 781 2009-01-29 16:48 winterstream * storage/poparser.py, storage/pypo.py, storage/test_pypo.py: Added the functionality to deal with previous msgid info (i.e. everything appearing in #| comments). There are three new member variables in the pypo unit class: prev_msgctxt, prev_msgid and prev_msgid_plural. The previous msgid and msgid_plural can be set via prev_source. The prev_source and source properties use the same code which was factored out from getsource and setsource (used by the source property). 2009-01-29 16:32 dwaynebailey * storage/ts2.py: Add target language support. Fixes bug 789 2009-01-29 15:08 alaaosh * services/tmserver.py: add psyco support 2009-01-29 15:01 friedelwolff * storage/mo.py: The .mo class also implements poheader. This ensures that we can read language and other headers correctly from mo files. 2009-01-29 14:29 alaaosh * services/opentranclient.py, services/restclient.py, services/tmclient.py: move gtk dependant client code to virtaal, need to create simple example tmclient in toolkit 2009-01-29 13:52 alaaosh * services/tmserver.py: add --debug command line option 2009-01-29 09:33 friedelwolff * filters/test_checks.py: Test that startpunc handles the inverted Spanish question mark correctly 2009-01-29 08:42 dupuy * lang/es.py: language class for Spanish suppresses only bogus pofilter startpunc gripes 2009-01-29 08:07 friedelwolff * filters/checks.py, filters/test_checks.py: Adapt to the new API where forcing to unicode doesn't normalize. Call data.normalized_unicode() instead 2009-01-29 08:05 friedelwolff * lang/data.py: Don't automatically normalize when coercing to unicode. Provide the normalized_unicode() function for that purpose. 2009-01-28 22:08 friedelwolff * filters/checks.py: Only strip on the right for the endpunc test 2009-01-28 21:48 friedelwolff * filters/checks.py: Also test for colon (:) in puncend, and strip spaces to ensure that we test punctuation even if the message is spaced 2009-01-28 21:11 friedelwolff * filters/pofilter.py: Remove debug statement 2009-01-28 20:30 friedelwolff * storage/ts2.py: Rewrite .getlocations() to avoid lxml warning of deprecated API 2009-01-28 14:20 alaaosh * storage/tmdb.py, tools/build_tmdb.py: cleanup 2009-01-28 13:34 dwaynebailey * tools/podebug.py: ignore_kde function appears twice. 2009-01-28 04:34 dwaynebailey * convert/test_oo2po.py, storage/oo.py, storage/test_oo.py: Convert OOo help escaping, resolves bug 694 Previously we escaped all of OOo help tags except tags that we identified as unescaped. This caused problems where translators introduced new 'tags' in their transations. We now don't escape anything unless it is on our list of tags that should be escaped. A translator who uses one of these tags, which could be a valid word in their language, will still suffer. But that is unlikely to happen and can be worked around. 2009-01-27 14:42 friedelwolff * storage/lisa.py: In .settaret(), try at all cost to not replace the whole targetNode. This keeps extra XML stuff around that we might not be aware of. This fixes bug 751. 2009-01-27 14:33 friedelwolff * lang/ar.py: Don't translate the Arabic percentage sign as part of punctuation translation - it is likely to cause too much problems with variables 2009-01-26 10:11 winterstream * misc/contextlib.py: contextlib.py still contained a 'yield' inside a try: except: clause, which is invalid in Python 2.4. The yield was moved out of this clause. 2009-01-26 09:49 winterstream * storage/xliff.py: When merging XLIFF files, comments weren't merged. This patch fixes the problem. 2009-01-26 09:48 alaaosh * services/tmserver.py: log to logging.info instead of stderror 2009-01-26 09:11 alaaosh * services/tmserver.py: disable reverse dns lookup on every request 2009-01-26 08:38 winterstream * convert/oo2xliff.py: When converting from OpenOffice.org SDF files to XLIFF files we should not indiscriminately mark the units in the generated XLIFF files as "approved". This simple fix will mark a unit as approved (or "non-fuzzy" in the terminology of the toolkit) if the target string is not empty. Otherwise it is marked as non-approved (or "fuzzy" in the terminology of the toolkit). 2009-01-26 07:56 friedelwolff * lang/common.py: Remove debug print statements 2009-01-25 17:20 dwaynebailey * lang/poedit.py, lang/test_poedit.py, storage/poheader.py: Add support for Poedit X-Poedit-Language markers. This will lookup the correct ISO code based on the Poedit language name. The code will also cleanup PO headers to use the correct 'Language' entry and drop the old X-Poedit-Language and X-Poedit-Country tags. This fixes bug 737. 2009-01-24 17:37 friedelwolff * filters/pofilter.py, filters/test_pofilter.py: Add the --nonotes parameter to pofilter so that the addition of notes can be supressed. This fixes bug 745 2009-01-24 17:36 friedelwolff * storage/xliff.py: Add an API to remove comments from a specific origin 2009-01-24 07:52 friedelwolff * lang/data.py: Change several language names to align well with iso-codes. This gives slightly clumsy names when it is untranslated, but gives reasonable coverage for those languages with translations. There are still some where we are not aligned, and probably won't be since the untranslated forms are ugly (fy, el, km, nb, nn, nso) 2009-01-23 10:45 alaaosh * services/restclient.py: we where being too smart for our own good. restclient is unable to make efficiency decisions about duplicate requests since it doesn't know anything about who's connected to it's own signals. queue management should be done in virtaal. 2009-01-22 15:45 friedelwolff * __version__.py: Version 1.3beta1 2009-01-22 11:13 alaaosh * misc/selector.py: don't fail when resolver module is missing, not required for tmserver 2009-01-22 10:20 alaaosh * services/tmserver, services/tmserver.py, tools/build_tmdb, tools/build_tmdb.py: when in windows ... 2009-01-22 08:29 friedelwolff * storage/tmdb.py: Fall back to the older sqlite module in case we're running on Python 2.4 2009-01-21 14:50 alaaosh * services/tmclient.py, services/tmserver.py: implemented add store functionality (POST and PUT methods for /store urls) 2009-01-21 14:48 alaaosh * services/restclient.py: One does not simply walk into cURL It's black gates are guarded by more than just orcs. There is evil there that does not sleep. fixed POST and PUT requests. 2009-01-21 14:44 alaaosh * storage/tmdb.py: added add_list method to add list of dictionary units to tmdb add_list and add_store now return a count of translated units (should replace that with an actual count of newly added units) 2009-01-21 14:05 friedelwolff * tools/pogrep.py: Refactor common parts of the matches() code. Provide correct start and end indexes in the original string, considering that it was never normalised. 2009-01-20 10:53 alaaosh * lang/data.py: added simply_to_common function, useful for stripping extra information from language codes when not needed. 2009-01-20 09:05 alaaosh * services/tmclient.py, storage/tmdb.py: do language code normalization as late as possible 2009-01-20 09:02 alaaosh * services/restclient.py: make sure url is in utf-8, fixes bug #706 2009-01-19 21:20 friedelwolff * lang/data.py, services/tmclient.py, storage/tmdb.py: Rename new .normalize() to .normalize_code() to avoid name clash and rename all users. Tests should now be restored. 2009-01-19 19:18 dwaynebailey * lang/data.py: United Kingdom iso3166 code is GB not UK 2009-01-19 16:38 alaaosh * services/tmclient.py: normalize language codes before creating requests 2009-01-19 16:34 alaaosh * storage/tmdb.py: now we can save units represented as dictionaires. also normalize language before insertion 2009-01-19 16:30 alaaosh * lang/data.py: seperate normalization of language code in it's own function 2009-01-19 15:18 friedelwolff * storage/pypo.py: pounit.isheader() should not return false just because we have locations. This fixes bug 629. 2009-01-19 15:08 friedelwolff * convert/convert.py, convert/html2po.py, convert/mozfunny2prop.py, convert/oo2xliff.py, convert/test_html2po.py: Remove --duplicates styles from the converters: msgid_comment, keep, msgid_comment_all. This is part of fixing 663. 2009-01-19 13:48 friedelwolff * convert/oo2po.py: Only set the source and target language after we have a valid header, otherwise we might add a second 2009-01-19 13:07 dwaynebailey * lang/data.py: Expand forceunicode docstring 2009-01-19 08:51 alaaosh * search/match.py, services/tmserver.py, storage/tmdb.py: committed debug code by mistake 2009-01-17 17:39 dwaynebailey * lang/data.py: Document language and country codes dictionaries. 2009-01-17 17:31 dwaynebailey * lang/data.py: Add variable comment 2009-01-17 17:28 dwaynebailey * lang/data.py: Move comment to an epydoc description for the dictionary. 2009-01-17 17:23 dwaynebailey * lang/data.py: Fix docstring. I think maybe I need to give some epydoc lessons. 2009-01-17 10:49 dwaynebailey * convert/csv2po, convert/html2po, convert/ini2po, convert/moz2po, convert/oo2po, convert/php2po, convert/po2csv, convert/po2html, convert/po2ini, convert/po2moz, convert/po2oo, convert/po2php, convert/po2prop, convert/po2rc, convert/po2symb, convert/po2tiki, convert/po2tmx, convert/po2ts, convert/po2txt, convert/po2xliff, convert/pot2po, convert/prop2po, convert/rc2po, convert/symb2po, convert/tiki2po, convert/ts2po, convert/txt2po, convert/xliff2po: Fix indents, remove unneeded import 2009-01-17 10:28 dwaynebailey * convert/ical2po, convert/po2ical: Fix indentation 2009-01-17 10:00 dwaynebailey * tools/podebug.py: Ignore 'LTR' config for KDE files. Even though we don't check the actual filename (its only present in kdelibs(4).po it should be OK). 2009-01-16 15:51 alaaosh * search/match.py: use getnotes() instead of .othercomments, fixes #660 2009-01-16 14:24 alaaosh * services/opentranclient.py: make it possible to change languages in the middle of a session clean up language negotiation 2009-01-16 14:23 alaaosh * services/tmclient.py: tmserver is language aware now 2009-01-16 14:19 alaaosh * services/restclient.py: make curl verbose when logging level is DEBUG 2009-01-16 14:08 friedelwolff * misc/file_discovery.py: Add the RESOURCEPATH from the mac app bundle to the BASE_DIRS where we search for data 2009-01-16 09:55 dwaynebailey * convert/ini2po.py, convert/po2ini.py, storage/ini.py: Add Innosetup support 2009-01-15 19:27 walter_l * storage/pocommon.py: Swap the parent classes of pofile to make sure that the right settargetlanguage() is used. 2009-01-15 19:26 walter_l * storage/poheader.py: "basestr" -> "basestring" 2009-01-15 16:32 alaaosh * tools/build_tmdb.py: clean up, nothing is hardcoded now 2009-01-15 15:36 friedelwolff * lang/data.py: Handle hyphen (-) underscore (_) and at-sign (@) as delimiters in .simplercode() 2009-01-14 16:49 alaaosh * storage/tmdb.py: don't do full text matching on small strings 2009-01-14 14:59 friedelwolff * storage/tmx.py: Replace lxml.etree calls with faster parts of the API 2009-01-14 14:45 alaaosh * services/tmserver.py: migrate server to tmdb backend 2009-01-14 14:43 alaaosh * lang/ar.py: acronyms are transliterated in arabic 2009-01-14 14:36 friedelwolff * storage/poxliff.py: Implement .istranslatable() to ensure that headers are not considered translatable by our tools. The general XLIFF implementation doesn't work since the PO representation guide prescribes that PO headers should be translatable in the XLIFF file. Now at least Virtaal won't give it to users. 2009-01-14 14:30 friedelwolff * storage/poxliff.py: Use the proper inherrited .addunit() so that ._store is correct. This fixes bug 696. 2009-01-14 12:31 friedelwolff * storage/poxliff.py: Replace lxml.etree calls with faster parts of the API 2009-01-14 08:39 alaaosh * tools/build_tmdb.py: build tmdb out of translation files 2009-01-14 08:15 alaaosh * storage/tm_db.py, storage/tmdb.py: tmdb.py is a better name 2009-01-13 16:08 alaaosh * storage/tm_db.py: full text indexing support 2009-01-13 15:28 walter_l * tools/pogrep.py: Also return empty list for indexes if the there is no search to perform. 2009-01-13 15:09 walter_l * tools/pogrep.py: Check if a unit has plurals before assuming its source(s) and target(s) have a "strings" attribute. This is part of the fix for bug 693. 2009-01-13 13:48 walter_l * tools/pogrep.py: virtaal.modes.searchmode.SearchMatch -> translate.tools.pogrep.GrepMatch virtaal.modes.searchmode.SearchMode.get_matches() -> translate.tools.pogrep.GrepFilter.getmatches() 2009-01-13 08:49 walter_l * misc/file_discovery.py: Prefer $XDG_DATA_HOME if available. 2009-01-12 16:03 winterstream * storage/poparser.py: Oops. With no space after "msgid" in the startswith function, we'd also get x.startswith('msgid') == True if x == 'msgid_plural', which is not what we want. The fix is just to add spaces after "msgid". 2009-01-12 15:56 winterstream * storage/poparser.py: The new PO parser broke if it saw CHARSET as the encoding of POT files. It now assumes that such files are UTF-8 encoded. 2009-01-12 15:49 walter_l * misc/optrecurse.py, storage/poheader.py, storage/tmx.py, storage/xpi.py: Use __version__.sver in stead of __version__.ver. 2009-01-12 15:00 walter_l * __init__.py, __version__.py: __version__.ver -> __version__.sver + __version__.ver = (1, 2, 1) + License header for __version__.py Updated header for __init__.py 2009-01-12 11:56 alaaosh * storage/tm_db.py: new much simpler implementation 2009-01-12 06:00 dwaynebailey * i18n.py: gettext.install define _ so we don't need to redefine. 2009-01-10 15:28 dwaynebailey * i18n.py, po/POTFILES.in, storage/base.py, storage/csvl10n.py, storage/mo.py, storage/pocommon.py, storage/qm.py, storage/qph.py, storage/tbx.py, storage/tmx.py, storage/ts2.py, storage/wordfast.py, storage/xliff.py: Introduce some localisation framework. Make all bilingual format description localisable. 2009-01-10 14:10 dwaynebailey * po, po/Makevars, po/POTFILES.in, po/POTFILES.skip: Put structure in place for localisation of toolkit files. 2009-01-10 14:09 friedelwolff * storage/xliff.py: Use better lxml APIs for speedup 2009-01-10 12:18 friedelwolff * misc/setup.py: Remove the installer for the old C CSV library that was removed earlier 2009-01-09 14:40 winterstream * convert/test_pot2po.py, storage/poparser.py: After we've read the optional msgctxt and the msgid when doing obsolete parsing, then we should terminate the parsing of the current obsolete unit when we see either a msgctxt or a msgid, since either means that we've hit a new obsolete unit. Also fixed the unit test case that tests this functionality. 2009-01-09 14:30 winterstream * storage/poparser.py: Our parser didn't deal with msgctxt in obsolete units properly, due to the fact that we bailed if we saw a msgid when parsing an obsolete; of course, one would see a msgid directly after a msgctxt... 2009-01-09 14:16 walter_l * convert/test_pot2po.py: +Test for preservation of msgctxt values in obsolete units. 2009-01-09 10:06 walter_l * storage/poparser.py: Ensure that all header fields are decoded. 2009-01-09 09:58 winterstream * storage/test_po.py: Turns out that our new parser forgets to decode header comments. So if you're calling getnotes() on the header, you get a UnicodeDecodeError. A fix is in the pipeline, but for now we have a test to trigger the error. 2009-01-08 21:54 friedelwolff * storage/lisa.py: Massive optimisation of lisa class by using better lxml methods. Some operations are running at less than 40% of previous time. XLIFF and possibly other child classes still to be done for possible small extra gain. 2009-01-08 10:38 walter_l * misc/file_discovery.py: Updated get_abs_data_filename() to allow directories to be specified as well as using XDG_DATA_DIRS. 2009-01-07 14:17 walter_l * services/__init__.py, services/lookupclient.py, services/lookupservice.py, services/restclient.py, services/tmclient.py: Removed unnecessary trailing whitespace. 2009-01-06 20:57 friedelwolff * lang/zh.py: Provide a slightly different length estimation heuristic for Chinese 2009-01-06 20:55 friedelwolff * lang/common.py, lang/data.py: Provide a method for a language object .alter_length() to return a string optionally made longer or shorter to use in length estimations when leaving space in the GUI. This uses a basic heuristic using constants defined in data::expansion_factors, although the length difference can be redefined per language to use a different heuristic. 2009-01-06 14:56 alaaosh * services/opentranclient.py: don't query opentran till we negotiate a supported language, fixes #635 2009-01-06 07:49 winterstream * misc/quote.py: Reverted misc/quote.py. This was supposed to be experimental code, but it seems to have slipped in anyway. 2009-01-05 15:10 alaaosh * services/restclient.py: hack to fix 636 doesn't really fix it, but logs instead of barfing. we need to know when and why certain requests get deleted twice. 2009-01-05 07:43 friedelwolff * services/opentranclient.py: Check for fuzzyness at the 'flag' value - we really don't want to suggest fuzzy translations 2009-01-02 18:15 friedelwolff * storage/qm.py: Raise an exception when somebody tries to write out a QM file. This sort of fixes bug 516. 2008-12-30 14:04 friedelwolff * storage/tm_db.py: rough first version of a tm db optimised for reading 2008-12-27 19:41 friedelwolff * services/tmserver.py: Remove unused imports and clean up whitespace 2008-12-27 19:36 friedelwolff * search/match.py, storage/base.py: Remove some unused attributes that weren't being used anywhere 2008-12-27 13:26 friedelwolff * storage/pypo.py: Privatise .msgidlen() and .msgstrlen() - can't we get rid of these? 2008-12-26 14:24 friedelwolff * misc/hash.py, storage/html.py, tools/podebug.py: [Contributed by Leonardo Ferreira Fontenelle] Provide a wrapper for the md5 library that is located in different places in different versions of Python. Use this rather to avoid deprecation warnings. This fixes bug 634. 2008-12-19 14:55 alaaosh * services/opentranclient.py: commented out debugging output 2008-12-19 14:53 alaaosh * search/match.py, services/tmserver.py: move unit2dict to search.match 2008-12-19 12:53 walter_l * services/opentranclient.py: Removed prints and trailing whitespace. 2008-12-19 09:03 alaaosh * services/opentranclient.py: something stinks in the state of unicode 2008-12-19 08:21 alaaosh * services/opentranclient.py: move quality calculation and result filtering code from virtaal 2008-12-18 23:53 clouserw * convert/po2tiki.py, convert/test_po2tiki.py, convert/test_tiki2po.py, convert/tiki2po.py, storage/test_tiki.py, storage/tiki.py: po's addlocations() appears to split on spaces. Fixing tiki2po to use location names with no spaces. 2008-12-18 21:35 friedelwolff * services/opentranclient.py: Don't assign a bogus quality - let the consumer decide what to do with it 2008-12-18 17:19 alaaosh * services/tmserver.py: getting closer to update tm features 2008-12-18 17:18 alaaosh * services/opentranclient.py: negotiate target language 2008-12-18 17:15 alaaosh * services/restclient.py: better handling of running state to allow recursive non blocking requests 2008-12-17 16:40 alaaosh * services/opentranclient.py: first attempts at opentran client used by virtaal 2008-12-17 14:22 alaaosh * services/tmserver.py: switch to own copy of selector 2008-12-17 14:21 alaaosh * misc/selector.py: match multiline urls 2008-12-17 14:20 alaaosh * misc/selector.py: use by tmserver 2008-12-17 11:13 friedelwolff * tests/odf_xliff/test_odf_xliff.py: Factor out file name constats and do proper module cleanup. Minor whitespace cleanup. 2008-12-17 11:09 alaaosh * services/restclient.py, services/tmclient.py: move json code to tmclient, make restclient more generic 2008-12-17 10:15 friedelwolff * convert/po2symb, convert/po2symb.py, convert/symb2po, convert/symb2po.py: Clean up license headers, copyright dates, whitespace and some docstrings 2008-12-17 09:12 alaaosh * services/restclient.py, services/tmserver.py: urllib barfs on unicode, fixes #631 2008-12-17 08:55 winterstream * convert/symb2po.py: This broke when calling symb2po without a template, since template_dict['r_string_languagegroup_name'] would raise a key error. This is now fixed. 2008-12-17 08:53 friedelwolff * convert/symb_common.py: Remove moved module symb_common 2008-12-17 08:52 friedelwolff * convert/po2symb.py, convert/symb2po.py, storage/symbian.py: Move the symb_common module to storage/symbian, since it mostly deals with the format 2008-12-17 08:43 dwaynebailey * convert/test_php2po.py: Fix newline test to follow new escaping rules. 2008-12-17 08:35 winterstream * convert/po2symb, convert/po2symb.py, convert/symb2po, convert/symb2po.py, convert/symb_common.py: Added basic converters to convert from Symbian-like translation formats to PO and vice versa. The format is heavily biased towards the way that the Buddycloud translation files look. 2008-12-17 08:33 winterstream * misc/quote.py: Replace the old horrid extractwithoutquotes with a more maintainable version. 2008-12-16 16:15 friedelwolff * services/tmserver.py: +Docstring. -unused variables. Whitespace cleanup. 2008-12-15 18:29 clouserw * convert/po2tiki, convert/po2tiki.py, convert/test_po2tiki.py, convert/test_tiki2po.py, convert/tiki2po, convert/tiki2po.py, storage/test_tiki.py, storage/tiki.py: Import tiki2po 2008-12-15 17:59 dwaynebailey * tools/podebug.py: Drop default format string. 2008-12-15 15:32 dwaynebailey * tools/podebug.py: Add ignore rules for KDE 2008-12-15 14:55 friedelwolff * convert/test_odf2po.py: Another removal of obsolete ODF support. (bug 608) 2008-12-15 14:54 friedelwolff * convert/odf2po, convert/odf2po.py, storage/odf.py, storage/test_odf.py: Remove obsolete ODF support. This closes bug 608. 2008-12-15 14:44 dwaynebailey * convert/po2php.py, convert/test_po2php.py: Preserve inline comments in the PHP file. Fixes bug 590. 2008-12-15 14:37 dwaynebailey * convert/po2php.py: Remove unused variable 2008-12-15 10:45 alaaosh * services/restclient.py, services/tmserver.py: handle http errors 2008-12-15 10:25 dwaynebailey * tools/podebug.py: s/rewrite/ignore/ 2008-12-15 10:11 alaaosh * services/restclient.py: lost commit 2008-12-15 09:40 dwaynebailey * storage/php.py, storage/test_php.py: Don't back convert real \n to \\n This allows us to, as best we can, preserve layout of multiline entries. 2008-12-15 09:21 dwaynebailey * storage/php.py, storage/test_php.py: Fix bug 589 and escaped \' character in a double quote string. 2008-12-15 08:51 dwaynebailey * storage/php.py, storage/test_php.py: Implement full escaping functionality for PHP. We now treat single and double quote escaping differently as PHP does. The tests all pass but this has not been widely tested on files in the field. This solves most, if not all, of bug 593 2008-12-15 08:46 alaaosh * services/tmserver.py: no more 404s on punctuation 2008-12-14 18:46 winterstream * storage/pypo.py: Making allcomments a property saves us yet another few cycles. 2008-12-14 18:45 winterstream * storage/pypo.py, storage/test_pypo.py: First, having if target == self.target: in gettarget slows things down enormously, since self.target is not that cheap. When I removed this, I uncovered a bug in a test. That's fixed now. This also pointed to a bit of incompleteness in setsource, which is now fixed. Finally, we don't have to call settarget in the constructor, since the base class does it. 2008-12-14 18:44 winterstream * storage/base.py, storage/pypo.py: Suprisingly, not using super, makes a tangible speed difference. 2008-12-14 18:43 winterstream * storage/poparser.py: Optimized a few if clauses so that common cases are in the if part. 2008-12-14 13:31 winterstream * storage/poparser.py: Make the decode process more C-like, since we want to use this with Cython. 2008-12-14 13:30 winterstream * storage/poparser.py: Avoid looking up methods dynamically every time. The string and list methods we constantly use are stored at the top of the file in variables. This speeds up processing somewhat. 2008-12-14 13:29 winterstream * storage/poparser.py: The readcallback added a lot of unnecessary overhead and we only used it to build a buffer when reading the first unit, so that we could reparse the buffer. But why don't we just read the first unit as a str and then decode all fields in the unit when we get to know the encoding? 2008-12-13 12:07 friedelwolff * storage/poparser.py, storage/pypo.py: Replace the old PO parser with a cleaner one by Wynand. This should make maintenance and optimisation easier. 2008-12-13 11:57 friedelwolff * storage/test_po.py, storage/test_pypo.py, tools/test_pomerge.py: Some more tests for PO parsing. We don't want to keep lonely comments disassociated anymore. They are joined with the following unit like gettext does. 2008-12-13 07:33 friedelwolff * storage/lisa.py: Ask lxml not to convert CDATA to raw XML (only available from lxml 2.1.0). This fixes bug 458. 2008-12-13 04:50 friedelwolff * misc/textwrap.py: Let % be a wrapping character as well. This brings our PO wrapping closer to gettext and closes bug 622. 2008-12-12 19:17 winterstream * convert/xliff2odf.py, storage/odf_io.py: Modified xliff2odf to embed the XLIFF file in the output ODF container. 2008-12-12 17:11 clouserw * convert/test_convert.py: Fix bug 624; tests fail if psyco library doesn't exist 2008-12-12 15:58 friedelwolff * tests/odf_xliff/test_odf_xliff.py: Printing a unified diff when comparing files 2008-12-12 15:17 alaaosh * services/tmserver.py: random delay was only needed for testing 2008-12-12 15:15 alaaosh * services/restclient.py, services/tmclient.py, services/tmserver.py: CRUD REST and all that jazz 2008-12-12 10:56 friedelwolff * storage/pypo.py, storage/test_po.py: Only allow KDE style (msgid) comments right at the start of a line next to the quote character. This fixes bug 625. 2008-12-12 10:46 friedelwolff * storage/cpo.py: Handle addunit more carefully to ensure we call the base class' .addunit 2008-12-11 15:33 dwaynebailey * lang/data.py: Minor: simple layout fix in list 2008-12-11 15:31 dwaynebailey * lang/data.py: Add a number of plural forms from http://translate.sourceforge.net/wiki/l10n/pluralforms 2008-12-06 11:41 dupuy * misc/file_discovery.py, tools/poterminology.py: propagate winterstream's r9062 changes to poterminology from 1.2 branch to trunk winterstream * r9062 /src/branches/Pootle-toolkit-1.2/translate/ (misc/file_discovery.py tools/poterminology.py): find_installed_file doesn't work under all conditions. So I moved get_abs_data_filename from virtaal into the toolkit. get_abs_data_filename works correctly for all our current cases. 2008-12-04 06:50 clouserw * misc/wStringIO.py: Fix TypeError; bug 623 2008-12-01 13:23 winterstream * misc/contextlib.py: Modified contextlib.py so that a yield won't appear inside a try, finally clause. This is a limitation of Python 2.4 and we had to make similar changes to contextlib.py before to accomodate Python 2.4. For this reason also there are some limits as to what can be done with context blocks in Python 2.4. 2008-12-01 12:39 friedelwolff * lang/te.py: Add basic module for Telugu (te) to disable capitalisation checks 2008-12-01 10:39 friedelwolff * lang/bn.py: Add basic module for Bengali (bn) to disable capitalisation checks 2008-12-01 10:06 winterstream * storage/xml_extract/extract.py: Oops, forgot to update the code in extract.py, so that it won't use unit.placeable_id. Now xid assignments should work. 2008-12-01 09:52 winterstream * storage/base.py, storage/lisa.py, storage/placeables/base.py: The idea of having a separated PlaceableId structure for units, which would contain and xid and rid, was not going to work well. Now, xid and rid are properties of the unit classes which do nothing unless overridden. 2008-11-28 14:24 winterstream * misc/rich.py, tools/podebug.py: Modified podebug to work with rich sources and targets. It will now respect placeables in XLIFF files. 2008-11-28 13:12 winterstream * storage/base.py, storage/lisa.py, storage/test_po.py, storage/test_xliff.py, storage/xml_extract/extract.py: Most importantly, moved the rich source and text functionality into the unit bass class. This prompted the need for plurals, something which wasn't taken into account before. Now the rich sources and targets are lists of lists of chunks. Thus [['a', X('42')] <- First string ['foo', G('43', 'baz')]] <- Second string 2008-11-28 13:11 winterstream * storage/xml_extract/extract.py: Added a bit of ad-hoc guard code to find_translatable_dom_nodes to ensure that we avoid processing things like XML processing instructions. 2008-11-28 13:10 winterstream * storage/placeables/base.py: Fixed the __repr__ and __unicode__ conversions for placeables and added comments. 2008-11-28 07:20 friedelwolff * convert/po2html.py: add an option to optionally not use tidy if installed 2008-11-27 09:45 friedelwolff * convert/prop2po.py: Properly handle 'discard' units (with DONT_TRANSLATE comments). This fixes bug 619. 2008-11-26 14:31 friedelwolff * storage/xml_name.py: Fix a few typos 2008-11-26 13:54 winterstream * storage/xml_extract/generate.py, storage/xml_extract/misc.py, storage/xml_extract/test_misc.py, storage/xml_name.py: Replaced full_xml_name with XmlNamer (which does the same task). 2008-11-26 13:53 winterstream * convert/xliff2odf.py: The XPathTree produced by unit_tree.build_unit_tree contains XML names using shortcut names (such as 'office:document-content'). XmlNamer returns fully qualified XML names, so obviously it won't work where we're trying to reference the short names. 2008-11-26 13:52 winterstream * storage/xml_extract/generate.py: Python warned me about unit.target_dom or unit.source_dom And rightfully so, since it's bad style. Replaced this with an if block. 2008-11-26 10:22 winterstream * storage/xml_extract/misc.py: XML namespaces can include URLs, which means that the regular expression for parsing them must accept the "/" character. 2008-11-26 09:57 winterstream * convert/xliff2odf.py: Added other ODF filetypes to xliff2odf. 2008-11-26 09:52 winterstream * convert/odf2xliff.py, convert/xliff2odf.py, storage/odf_io.py: Modified odf2xliff to use meta.xml and styles.xml in addition to content.xml when extracting translatable strings. Moved some ODF routines into odf_io.py. 2008-11-25 17:13 winterstream * convert/xliff2odf.py, storage/xml_name.py: Modified xliff2odf to work not only on content.xml, but also meta.xml and styles.xml. Added the XmlNamer class to make working with fully qualified XML names a bit less of a pain. 2008-11-25 08:38 alaaosh * storage/test_dtd.py: test for bug #610 2008-11-25 08:04 friedelwolff * storage/factory.py: If we are creating a new store, keep the filename so that store.save() will work correctly later on 2008-11-24 16:38 alaaosh * storage/dtd.py: fixed bug #610 HACKISH 2008-11-24 08:46 friedelwolff * misc/optrecurse.py: Play safe to ensure we test correctly for psyco's presence even if the module doesn't exist 2008-11-21 22:24 dwaynebailey * convert/po2php.py: Refactor: 1/0 -> True/False 2008-11-21 22:24 dwaynebailey * convert/php2po.py: Remove remnant of header preservation code. 2008-11-21 22:21 dwaynebailey * convert/po2prop.py, convert/prop2po.py: Refactor: 1/0 -> True/False 2008-11-21 22:15 dwaynebailey * storage/pypo.py: Rafactor: 1/0 -> True/False 2008-11-21 21:53 dwaynebailey * storage/dtd.py: Refactor: 1/0 -> True/False 2008-11-21 21:43 dwaynebailey * storage/dtd.py: Refactor: change 1/0 to True/False 2008-11-21 21:40 dwaynebailey * storage/dtd.py: Refactor. remove continual redifining of self.units which is already defined in base.py 2008-11-21 15:20 friedelwolff * storage/qph.py: Ensure we output QPH files like Qt Linguist does it, always with a . This is a similar workaround used in the new ts class to work around a bug in lxml that was fixed in lxml 2.1.3 2008-11-21 13:41 friedelwolff * misc/optrecurse.py: Don't add psyco options if psyco is not installed. This closes bug 606. 2008-11-21 12:16 dwaynebailey * tools/podebug.py: Spelling fix 2008-11-20 15:25 alaaosh * tools/pretranslate.py: fill origin attribute when adding alt-trans 2008-11-20 10:18 alaaosh * tools/pretranslate.py: when in xliff do as the xliffians do nad add fuzzy matches to alt-trans 2008-11-20 10:12 alaaosh * storage/xliff.py: addalttrans should support adding source tags and match-quality attributes 2008-11-19 20:52 dwaynebailey * storage/dtd.py: Refactor, place functions on seperate lines. 2008-11-19 20:48 dwaynebailey * storage/dtd.py: Refactor DTD validation into its own method. 2008-11-19 16:56 winterstream * storage/xml_extract/extract.py, storage/xml_extract/generate.py, storage/xml_extract/misc.py, storage/xml_extract/test_misc.py: Use the XML namespace table to create shorter X-Paths for XLIFF ids. 2008-11-19 16:55 winterstream * storage/base.py, storage/placeables/base.py, storage/xml_extract/extract.py, storage/xml_extract/generate.py, storage/xml_extract/misc.py: Sorry for the intertwined changes, but it was hard to separate them. 1. Fixed type declarations 2. Removed unnecessary bookkeeping code, like the 'level' member in the ParseState structure. 3. Moved reduce_unit_tree to extract.py (so it can be close to Translatable class) 4. Removed make_translatable (since it is unnecessary) 5. ID values for placeables are now computed while walking the Translatable tree, thanks to the IdMaker class. 2008-11-19 16:54 winterstream * storage/xml_extract/extract.py: If we see a tag which is not in our inline namespace, then we should assume that it is not inline (this sounds obvious here, but you'll have to trust me that it's a bit more subtle than that). 2008-11-18 18:44 dwaynebailey * storage/dtd.py: Remove unused rewrap function 2008-11-18 18:27 dwaynebailey * storage/csvl10n.py, storage/dtd.py, storage/oo.py, storage/php.py, storage/properties.py, storage/pypo.py: Remove various __main__. They where originally intended to allow quick testing of the storage format. BUt nobody uses them and they're not maintained. So lets rather drop them. 2008-11-18 17:54 dwaynebailey * misc/optrecurse.py, misc/test_optrecurse.py: Document fn splitext. Add optrecurse test file and test slitext fDocument fn. 2008-11-18 17:34 dwaynebailey * doc/epydoc-config.ini, doc/gen_api_docs.sh: Add scripts and config to generate epydoc documentation 2008-11-18 07:57 friedelwolff * storage/ts2.py: Update comment about lxml versions having a problem outputting the doctype 2008-11-17 19:47 dwaynebailey * misc/optrecurse.py: Refactor, move multiple functions on a line to seperate lines. 2008-11-17 19:40 dwaynebailey * convert/po2dtd.py: Consolidate calls to removeinvalidamps 2008-11-17 19:39 dwaynebailey * storage/dtd.py: Refactor removeinvalidamp 2008-11-17 19:37 dwaynebailey * storage/test_dtd.py: Flesh out tests for removeinvalidamp 2008-11-17 19:36 dwaynebailey * convert/po2dtd.py, convert/test_po2dtd.py, storage/dtd.py, storage/test_dtd.py: Move fn removeinvalidamps from po2dtd into dtd storage class. 2008-11-17 19:27 dwaynebailey * storage/test_dtd.py: Test to see that we raise a warning when we have broken DTD entries. 2008-11-17 19:26 dwaynebailey * storage/test_base.py: Enable exception testing through warnings to be reset during teardown and setup of storage tests. 2008-11-17 19:18 dwaynebailey * lang/__init__.py, lang/common.py: Cleanup lang module documentation 2008-11-17 13:07 alaaosh * storage/xliff.py: merged units with matching source should be marked unfuzzy 2008-11-17 12:58 alaaosh * convert/pot2po.py: never commit before testing (mistyped function names) 2008-11-17 11:02 alaaosh * convert/pot2po.py, convert/test_pot2po.py: refactored pot2po, now supports multiple formats 2008-11-17 10:38 alaaosh * storage/lisa.py, storage/pocommon.py, storage/poheader.py, storage/poxliff.py: makeheader should live in poheader instead of pocommon to work with poxliff 2008-11-17 10:32 alaaosh * filters/checks.py, filters/pofilter.py: add drupal support 2008-11-17 07:41 dwaynebailey * storage/wordfast.py: There are more embarrassing things I am sure. 2008-11-13 15:05 winterstream * storage/xml_extract/extract.py: placeable_name was changed from an array to a string, but this one site still assumed it was an array. This should be fixed now. 2008-11-13 15:04 winterstream * misc/typecheck/mixins.py, misc/typecheck/sets.py: Converted relative imports in the typecheck package to fully qualified imports. 2008-11-13 13:51 dwaynebailey * storage/wordfast.py: Um... logic crock - back to programmer school. 2008-11-13 06:48 friedelwolff * lang/kn.py: New class for Kannada (kn) to disable capitalisation checks 2008-11-12 17:48 dwaynebailey * storage/wordfast.py: Adapt dialect description to correct problems with csv pre Python 2.5. We retain 2.5 behaviour and only adjust on older version, so that we can protect most users from potential brokenness. 2008-11-12 15:34 alaaosh * tools/pretranslate.py: now works with xliff 2008-11-12 14:37 dwaynebailey * storage/wordfast.py: Default to using Latin1 instead of UTF-16. We had the problem that in po2wordfast we always produce UTF-16 files. This was because the wordfast files where initiated to be utf-16 (we only did the right thing if we parsed an existing wordfast file). We do proper detection of the need for UTF-16 in __str__, so rather use Latin1 as the default. 2008-11-12 08:10 alaaosh * storage/xliff.py: make xliffunit.merge() match pounit.merge() 2008-11-12 07:54 alaaosh * tools/pretranslate.py: fixes #602 still ugly coupling between pot2po and pretranslate 2008-11-12 06:21 dwaynebailey * convert/roundtrip-OOo: Remove all traces of wget 2008-11-11 10:29 alaaosh * convert/pot2po.py, tools/pretranslate, tools/pretranslate.py, tools/test_pretranslate.py: split pretranslation code from pot2po 2008-11-11 04:08 dwaynebailey * storage/test_wordfast.py: Fix epydoc by using raw string 2008-11-10 17:26 dwaynebailey * storage/qph.py: Provide a refence to the Qt Linguist implemention of .qph, its thebest thing short of a valid DTD. 2008-11-10 14:09 friedelwolff * storage/test_poheader.py: Remove failing timezone tests (DST settings probably changed) 2008-11-10 07:57 dwaynebailey * convert/__init__.py: Add epydoc groups for clarity 2008-11-10 07:55 dwaynebailey * storage/__init__.py: Add epydoc groups for clarity. 2008-11-10 07:53 dwaynebailey * __init__.py: Add __version__ to the Misc. group 2008-11-10 07:49 dwaynebailey * __init__.py: Add epydoc groups to make it easier to distinguish between various modules. 2008-11-09 14:18 friedelwolff * storage/ts2.py: Privatise several methods, remove dead code and add some comments 2008-11-09 13:19 friedelwolff * storage/ts2.py: Properly create the name tag of a new context 2008-11-09 13:17 friedelwolff * storage/ts2.py: temporarily fix a non-unicode assignment test 2008-11-09 13:12 friedelwolff * storage/qph.py: Somewhat simplify qph - a simple implementation for a simple format 2008-11-08 10:14 friedelwolff * storage/cpo.py, storage/pypo.py: Align behaviour of addnote for both PO implementations: we don't add comments unless there are non-spacing characters. 2008-11-08 10:04 friedelwolff * storage/test_po.py: Rewrite posource of obsolete units to the way that it should actually be output (pypo maintains it either way, but cpo doesn't) 2008-11-08 09:55 friedelwolff * storage/cpo.py: Don't pass obsolete parameter to unquotefrompo (removed in r7417) 2008-11-07 15:45 dwaynebailey * convert/dtd2po.py, convert/po2dtd.py, storage/dtd.py: Move labelsuffixes and accesskeysuffixes to dtd.py 2008-11-07 09:11 dwaynebailey * convert/test_php2po.py: Don't do fancy comment manipulation. This aligns the test with the changes to allow us to take multiline comments from PHP files. 2008-11-06 15:00 dwaynebailey * convert/roundtrip-OOo: Lets do XLIFF also 2008-11-06 14:30 dwaynebailey * convert/roundtrip-OOo: Lots of cleanups and make it use curl not wget 2008-11-06 10:45 dwaynebailey * storage/placeables, storage/xml_extract: Ignore *.pyc 2008-11-06 09:38 dwaynebailey * tools/test_podebug.py: Add a swedish chef rewrite test. Mostly to ensure it continues to work. 2008-11-06 09:34 dwaynebailey * tools/test_podebug.py: Add test for unicode rewrite function 2008-11-06 09:32 dwaynebailey * tools/test_podebug.py: Add tests for blank and en rewrite rules 2008-11-06 09:27 dwaynebailey * tools/test_podebug.py: Add comments to ignore_gtk test 2008-11-06 09:26 dwaynebailey * tools/test_podebug.py: Add tests for xxx rewrite style 2008-11-06 09:14 dwaynebailey * tools/test_podebug.py: Add a test for ignoring certain GTK messages. 2008-11-06 07:00 dwaynebailey * tools/podebug.py: Add gtk as a type of application. Pass whole units to the application ignore function. 2008-11-06 06:51 dwaynebailey * tools/podebug.py: Protect line endings. Could probably be better abstracted but good enough for now. 2008-11-03 14:03 walter_l * storage/test_dtd.py: Augmented TestDTD.test_entitityreference_in_source() with a test for bug 597. 2008-11-03 14:03 walter_l * storage/dtd.py: Fixed a bug where multi-line external parameter entities cause the rest of the .dtd file to be parsed incorrectly. 2008-10-31 14:37 dwaynebailey * storage/php.py: We canhandle block comments now 2008-10-31 14:36 dwaynebailey * storage/php.py, storage/test_php.py: Correctly ignore block comments fixes bug 587 2008-10-31 14:27 dwaynebailey * storage/test_php.py: Split the escaping tests into a single and double quote version 2008-10-31 14:26 dwaynebailey * storage/php.py: Store the escape type in the phpunit 2008-10-31 13:48 dwaynebailey * storage/php.py: Add documentation for the escaping rule reference in the PHP encode and decode functions. 2008-10-31 12:52 dwaynebailey * storage/php.py: Fix typo 2008-10-31 12:50 dwaynebailey * storage/php.py: Improve PHP documentation 2008-10-30 13:29 winterstream * storage/xml_extract/generate.py: Modified xliff2odf to make use of the newly exposed source_dom and target_dom properties of LISA units. This means that we're quite far to supporting placeables properly. 2008-10-29 16:52 winterstream * storage/xml_extract/extract.py: Added proper placeable support in the ODF->XLIFF direction (i.e. for odf2xliff). 2008-10-29 16:51 winterstream * storage/lisa.py: Refactored source and target accessors in lisa.py so that common functionality is maintained in get_source_dom, set_source_dom, get_target_dom and set_target_dom. This was done, since we are going to use these accessors to restructure a template (such as an ODF file) in accordance with how placeables differ between the source and target. 2008-10-29 06:55 dwaynebailey * convert/po2php.py: Remove debug output. 2008-10-29 06:53 dwaynebailey * storage/php.py: Improve documentation after research for bug 589 2008-10-28 15:58 winterstream * storage/placeables/misc.py: Forgot to add this file earlier. Sorry! 2008-10-28 15:36 winterstream * convert/test_po2html.py: Fixed another test. The expected output was incorrectly specified. 2008-10-28 15:01 winterstream * convert/test_dtd2po.py: Fixed a test which was taking the wrong code path because not '' as well as not None evaluate to True. 2008-10-28 14:42 winterstream * storage/test_xml_extract.py: Removed a dead file which was related to very old xml extraction code (which has long since moved into the sub-package "xml_extract"). 2008-10-28 14:39 winterstream * storage/lisa.py: Forgot to add the rich_source and rich_target accessors for the LISA store types. 2008-10-28 14:39 winterstream * storage/placeables/lisa.py, storage/placeables/test_lisa.py: Fixed some str/unicode interaction bugs and added a utility function to convert strings to unicode correctly. 2008-10-28 14:38 winterstream * storage/base.py, storage/lisa.py, storage/placeables/baseplaceables.py, storage/placeables/chunk.py, storage/placeables/lisaplaceables.py, storage/placeables/test_baseplaceables.py, storage/placeables/test_chunk.py, storage/placeables/test_lisaplaceables.py: Removed the majority of Enrique's placeables support, since it seems likely that we'll approach this problem slightly differently. 2008-10-28 10:28 winterstream * storage/placeables/__init__.py, storage/placeables/base.py, storage/placeables/lisa.py, storage/placeables/test_lisa.py, storage/test_xliff.py: In the process of replacing placeables support for the toolkit. The toolkit's placeable support is based on XLIFF's placeables. There are structures defined for all of the XLIFF placeables. The support is currently limited. We don't properly support marked content yet. We also don't enforce constraints such as that tags cannot be children of tags. This will all follow in the future. This patch includes placeable support for the LISA store types. The accessors get_rich_source and set_rich_source are used to set the source of a unit with placeables. Likewise the accessors get_rich_target and set_rich_target are used to access the target of a unit. See the unit tests for how these should be used. 2008-10-28 10:27 winterstream * storage/xml_extract/misc.py: Fixed the tag regex to deal with cases where no namespace is specified. 2008-10-28 10:26 winterstream * storage/placeables/baseplaceables.py, storage/placeables/chunk.py, storage/placeables/lisaplaceables.py, storage/placeables/test_chunk.py: 1. Added the class attribute 'type' which is used to distinguish between placeables. We use the XLIFF specification's characterization of different types of placeables (see the comments in the code). 2. Added a chunk list type which will be used to set placeables for units. Units should also return chunk types through the attributes marked_source and marked_target. 3. Added some tests for the chunk type. 2008-10-28 10:18 winterstream * storage/placeables/baseplaceables.py: Fixed source errors in the placeables base class. 2008-10-23 17:00 friedelwolff * lang/zh.py: Reword to make it clearer that we don't yet support translating commas 2008-10-21 11:38 winterstream * storage/base.py, storage/pypo.py: Let ParseError take an inner exception, so that we'll be able to know what caused the ParseError. 2008-10-20 20:09 dwaynebailey * storage/xml_extract/generate.py: Fix escaped backslash in docstring 2008-10-20 20:08 dwaynebailey * storage/xml_extract/generate.py: Fix docstrings 2008-10-20 19:57 dwaynebailey * storage/xml_extract/unit_tree.py: Fix docstrings 2008-10-20 19:51 dwaynebailey * storage/oo.py: Fix docstrings 2008-10-20 15:33 winterstream * convert/xliff2odf.py, tests/odf_xliff/test_odf_xliff.py: Fixed the round-trip ODF-XLIFF test. The ODF type encapsulates an ODF file. It defines equality on such files for the purposes of unit testing. 2008-10-19 23:38 dwaynebailey * storage/test_rc.py: Add basic rest for escaping. 2008-10-16 12:40 winterstream * storage/statsdb.py, tools/pocount.py: Fixed possible stats database inconsistency problems. Also modified statsdb never to catch any exceptions. The user code must handle exceptions. In the previous code, if an error occurred before a database commit was issued, then a next database commit would pull in possibly inconsistent changes from the previous failed call. To ensure consistency, the database MUST be rolled back if ANY exception, whatsoever is raised in the database code. Why? Because it's impossible to know whether the database state is consistent at the point when an exception is thrown. The transaction decorator will ensure a database commit if a decorated function executes without problems. Otherwise (if an exception occured), it will roll back the database and reraise the exception. Also note that pocount now handles exceptions from statsdb. 2008-10-16 12:39 winterstream * tests/odf_xliff/test_2-test_odf2xliff-reference.xlf, tests/odf_xliff/test_odf_xliff.py: Added some functional tests to test odf2xliff and xliff2odf using both the translate toolkit and itools as their engines. 2008-10-16 12:37 winterstream * convert/odf2xliff.py, misc/contextlib.py: Integrated a patch from David Versmisse (from Itaapy) to use itools as the ODF extraction engine. Now a user can convert a document from ODF to XLIFF using either itools or the translate toolkit using the flag --engine=itools or --engine=toolkit. 2008-10-16 08:22 dupuy * .: svn:ignore of various links and directories for cleaner svn status output 2008-10-16 08:15 dupuy * storage/mo.py: fix for bug 575 on 64-bit systems 2008-10-15 17:20 dwaynebailey * tools/podebug.py: Allow .pot files as input and drop the -P option since we won't ever want .pot output. [Friedel Wolff's patch] Closes bug #573 2008-10-15 17:17 dwaynebailey * tools/pogrep.py: Add .mo files for grepping and sort file types 2008-10-14 15:54 winterstream * storage/xml_extract/extract.py, storage/xml_extract/test_misc.py, storage/xml_extract/test_unit_tree.py, storage/xml_extract/test_xpath_breadcrumb.py, storage/xml_extract/unit_tree.py: Added quite a few unit tests for the XML extraction code. 2008-10-14 12:24 winterstream * convert/odf2xliff.py, convert/xliff2odf.py, storage/odf_shared.py, storage/xml_extract/extract.py, storage/xml_extract/misc.py, tests/odf_xliff/test_2.odt: Modified storage/odf_shared.py to attempt first to import itools and to use its ODF information. Failing that, it falls back to a copy of the itools information in storage/odf_shared.py (which may be out of date). The important change is that we initially listed the tags in which we were interested, whereas itools lists tags that should be ignored. Due to integration of the code with itools, the specification mechanism has also been simplified. We only have a table of tags we reject and a table of inline placeables. 2008-10-14 12:21 winterstream * storage/xml_extract/extract.py: Added additional comments to extract.py. 2008-10-13 08:48 winterstream * storage/xml_extract/generate.py: Added more comments to the code. More to follow. 2008-10-11 15:18 friedelwolff * storage/placeables/lisaplaceables.py: Ommit optional parameter for compatibility with python 2.3 and 2.4 2008-10-11 06:16 dwaynebailey * convert/odf2xliff.py: Add all OpenDocument filetypes for conversion to XLIFF 2008-10-10 17:11 winterstream * storage/xml_extract/extract.py: Added a missing functional call parameter. 2008-10-10 17:10 winterstream * misc/contextlib.py: Further modify contextlib for Python 2.4. If an exception occurs in body(), then we first finish off the generator (which is our context manager) and then raise the exception again. 2008-10-10 08:51 winterstream * convert/record.py: Removed unused module. 2008-10-10 08:50 winterstream * convert/odf2xliff, convert/odf2xliff.py, convert/record.py, convert/xliff2odf, convert/xliff2odf.py, misc/context.py, misc/contextlib.py, misc/typecheck, misc/typecheck/__init__.py, misc/typecheck/doctest_support.py, misc/typecheck/mixins.py, misc/typecheck/sets.py, misc/typecheck/typeclasses.py, storage/base.py, storage/lisa.py, storage/odf_shared.py, storage/placeables, storage/placeables/__init__.py, storage/placeables/baseplaceables.py, storage/placeables/lisaplaceables.py, storage/placeables/test_baseplaceables.py, storage/placeables/test_lisaplaceables.py, storage/test_xml_extract.py, storage/xml_extract, storage/xml_extract/__init__.py, storage/xml_extract/extract.py, storage/xml_extract/generate.py, storage/xml_extract/misc.py, storage/xml_extract/unit_tree.py, storage/xml_extract/xpath_breadcrumb.py, tests/odf_xliff, tests/odf_xliff/test_1.odt, tests/odf_xliff/test_2.odt: Merged in https://translate.svn.sourceforge.net/svnroot/translate/src/branches/translate/odf-xliff-first-try@8734 Squashed commit of the following: commit a20def7ba7b82e5d71318f4c95604bed6526470b Author: winterstream Date: Fri Oct 10 08:40:11 2008 +0000 Merged in https://translate.svn.sourceforge.net/svnroot/translate/src/trunk/translate@8722 git-svn-id: https://translate.svn.sourceforge.net/svnroot/translate/src/branches/translate/odf-xliff-first-try@8734 54714841-351b-0410-a198-e36a94b762f5 commit c8ec4ef169fda66e446dbad86228e67ac8b612cb Author: winterstream Date: Thu Oct 9 15:26:39 2008 +0000 Fixed an incorrect type annotation. git-svn-id: https://translate.svn.sourceforge.net/svnroot/translate/src/branches/translate/odf-xliff-first-try@8733 54714841-351b-0410-a198-e36a94b762f5 commit 50f57ec89effac0e5fd23ce59a89dac39809c695 Author: winterstream Date: Thu Oct 9 15:23:21 2008 +0000 A big reorganization of the xml_extract functionality into a package call xml_extract. This should help to reduce the mental overload that was induced by the previous file. git-svn-id: https://translate.svn.sourceforge.net/svnroot/translate/src/branches/translate/odf-xliff-first-try@8732 54714841-351b-0410-a198-e36a94b762f5 commit 2427db87a62239dc2bca3e3bb024a27d6a206dda Author: winterstream Date: Thu Oct 9 15:22:05 2008 +0000 This is a rather massive commit. The code includes cleanups, as well as a mechanism to reorder placeables in an arbitrary fashion. The next step is to break this into a package and to add comments, since the code is very dense. git-svn-id: https://translate.svn.sourceforge.net/svnroot/translate/src/branches/translate/odf-xliff-first-try@8731 54714841-351b-0410-a198-e36a94b762f5 commit e3cb6153c1d3b8c95ecf00dd27e7e126c37c7909 Author: winterstream Date: Thu Oct 9 15:20:59 2008 +0000 Made the behaviour of apply_translations post-fix. This is so ensure that child nodes are processed before parent nodes. Why? Because we might re-order the child nodes (depending on whether the translator re-ordered placeables) and therefore we must FIRST deal with children, since we use XPath-like identifiers to find children. git-svn-id: https://translate.svn.sourceforge.net/svnroot/translate/src/branches/translate/odf-xliff-first-try@8730 54714841-351b-0410-a198-e36a94b762f5 commit 7c435527f8dfcce309f75e06e856936c7d42010e Author: winterstream Date: Thu Oct 9 15:20:09 2008 +0000 Moved more ODF specific code out of xml_extract.py git-svn-id: https://translate.svn.sourceforge.net/svnroot/translate/src/branches/translate/odf-xliff-first-try@8729 54714841-351b-0410-a198-e36a94b762f5 commit 134e118ee4fba73496a4b082ee58cbc85a1d6979 Author: winterstream Date: Thu Oct 9 15:19:19 2008 +0000 Moved code from xliff2odf to xml_extract. git-svn-id: https://translate.svn.sourceforge.net/svnroot/translate/src/branches/translate/odf-xliff-first-try@8728 54714841-351b-0410-a198-e36a94b762f5 commit 6208bc6b4a69febf2a1de0389c0e4d72543eefd5 Author: winterstream Date: Tue Oct 7 07:42:05 2008 +0000 Generators in Python 2.4 don't have the "throw" method, which makes contextlib break. We just naively call next() to ask the generator to finish its work. git-svn-id: https://translate.svn.sourceforge.net/svnroot/translate/src/branches/translate/odf-xliff-first-try@8691 54714841-351b-0410-a198-e36a94b762f5 commit a6bbb8a25aa6bd1fbf3cc7fc4d59d950f73cb168 Author: winterstream Date: Tue Oct 7 07:41:10 2008 +0000 Initial support for inline translatables. Removed the placeables member from Translatable. This is derived from self.source via _get_placeables. Sprinkled code with references to things like inline_placeable_table which contains info on which tags are inline. git-svn-id: https://translate.svn.sourceforge.net/svnroot/translate/src/branches/translate/odf-xliff-first-try@8690 54714841-351b-0410-a198-e36a94b762f5 commit 91eaff16ebb084680bde2a1d1dc0d567267cc20b Author: winterstream Date: Fri Oct 3 13:37:04 2008 +0000 Fixed a silly logic error (used a "not" where I should not have). git-svn-id: https://translate.svn.sourceforge.net/svnroot/translate/src/branches/translate/odf-xliff-first-try@8663 54714841-351b-0410-a198-e36a94b762f5 commit a76ed0144a002290eb29d23933d01199650031e0 Author: winterstream Date: Fri Oct 3 13:36:04 2008 +0000 Added type annotations and updated string constants to unicode, so that they wouldn't trigger type errors. git-svn-id: https://translate.svn.sourceforge.net/svnroot/translate/src/branches/translate/odf-xliff-first-try@8662 54714841-351b-0410-a198-e36a94b762f5 commit 224fd4250a32357c5b4af80877ee416fc6c73bf1 Author: winterstream Date: Fri Oct 3 13:35:03 2008 +0000 Fixed an import which broke due to the integration of the type checker with the toolkit. git-svn-id: https://translate.svn.sourceforge.net/svnroot/translate/src/branches/translate/odf-xliff-first-try@8661 54714841-351b-0410-a198-e36a94b762f5 commit ca0b38566c9900f768fdf125070226af3bd6d86b Author: winterstream Date: Fri Oct 3 13:34:05 2008 +0000 Merged https://translate.svn.sourceforge.net/svnroot/translate/src/branches/translate/typecheck@8656. git-svn-id: https://translate.svn.sourceforge.net/svnroot/translate/src/branches/translate/odf-xliff-first-try@8660 54714841-351b-0410-a198-e36a94b762f5 commit 1c52e8dfc06cd21597d358f4d4eca365ba7f5a55 Author: winterstream Date: Fri Oct 3 08:43:22 2008 +0000 Merged in https://translate.svn.sourceforge.net/svnroot/translate/src/branches/translate/typecheck@8651. git-svn-id: https://translate.svn.sourceforge.net/svnroot/translate/src/branches/translate/odf-xliff-first-try@8654 54714841-351b-0410-a198-e36a94b762f5 commit 2b0a87b7edf67dc1ca719dbdd63c1f0033917cc3 Author: winterstream Date: Fri Oct 3 08:41:41 2008 +0000 Merged in r8648 from https://translate.svn.sourceforge.net/svnroot/translate/src/trunk/translate/ git-svn-id: https://translate.svn.sourceforge.net/svnroot/translate/src/branches/translate/odf-xliff-first-try@8653 54714841-351b-0410-a198-e36a94b762f5 commit 91680dad131806541b925bdb6a54491685388e45 Author: winterstream Date: Fri Oct 3 08:40:12 2008 +0000 Applied Enrique's latest patch from http://bugs.locamotion.org/attachment.cgi?id=211 for placeables support. git-svn-id: https://translate.svn.sourceforge.net/svnroot/translate/src/branches/translate/odf-xliff-first-try@8652 54714841-351b-0410-a198-e36a94b762f5 commit 48265495f577912ca8b06ab9ad0c3e4a0c1d7756 Author: winterstream Date: Thu Oct 2 12:50:14 2008 +0000 A wee bit of refactoring to make the code clearer :). git-svn-id: https://translate.svn.sourceforge.net/svnroot/translate/src/branches/translate/odf-xliff-first-try@8624 54714841-351b-0410-a198-e36a94b762f5 commit 751c98ce090221b8e152c3eddcd08a8ceeb8cc2a Author: winterstream Date: Thu Oct 2 11:44:16 2008 +0000 Pilfered Python 2.5's contextlib which simplifies the context quite nicely and should make it easier to upgrade our code to Python 2.5+ in the future. git-svn-id: https://translate.svn.sourceforge.net/svnroot/translate/src/branches/translate/odf-xliff-first-try@8620 54714841-351b-0410-a198-e36a94b762f5 commit b826557ac29b2449b6c278f754b087d9f2fb18c2 Author: winterstream Date: Thu Oct 2 11:03:45 2008 +0000 Moved the context manager to a sensible place. Also fixed the broken import in xml_extract. git-svn-id: https://translate.svn.sourceforge.net/svnroot/translate/src/branches/translate/odf-xliff-first-try@8619 54714841-351b-0410-a198-e36a94b762f5 commit 38276c2cb128d0d659be4e1993d34ed5164e0cf2 Author: winterstream Date: Thu Oct 2 08:23:02 2008 +0000 Merged in r8580 from https://translate.svn.sourceforge.net/svnroot/translate/src/trunk/translate/ git-svn-id: https://translate.svn.sourceforge.net/svnroot/translate/src/branches/translate/odf-xliff-first-try@8609 54714841-351b-0410-a198-e36a94b762f5 commit a21e3bffa5efb52f569d2e134c64aea098b5bdae Author: winterstream Date: Thu Oct 2 07:54:35 2008 +0000 Created scripts to call odf2xliff and xliff2odf. Moved the ODF-XLIFF machinery to the storage package. Updated import statements to reflect this. git-svn-id: https://translate.svn.sourceforge.net/svnroot/translate/src/branches/translate/odf-xliff-first-try@8605 54714841-351b-0410-a198-e36a94b762f5 commit 8d8f5ccb981b84cd89fc4ed6b9c8ce2551412a80 Author: winterstream Date: Wed Oct 1 16:58:09 2008 +0000 Use deflate compression for the generated zip file. OpenOffice expects this. Also, the first child of the unit tree matches the root of the XML DOM tree. git-svn-id: https://translate.svn.sourceforge.net/svnroot/translate/src/branches/translate/odf-xliff-first-try@8597 54714841-351b-0410-a198-e36a94b762f5 commit b74578085639fe2ab66d71b66753693127b01c76 Author: winterstream Date: Wed Oct 1 14:19:56 2008 +0000 This is a first pass at xliff2odf. It produces incorrect output for translated XML files. It also lacks comments. These are scheduled for the next commit. git-svn-id: https://translate.svn.sourceforge.net/svnroot/translate/src/branches/translate/odf-xliff-first-try@8592 54714841-351b-0410-a198-e36a94b762f5 commit 2636d3aede6dca604d8de83af762a3a111f5e3dc Author: winterstream Date: Mon Sep 29 17:22:03 2008 +0000 Added a test file for use in the ODF-XLIFF functional tests. git-svn-id: https://translate.svn.sourceforge.net/svnroot/translate/src/branches/translate/odf-xliff-first-try@8538 54714841-351b-0410-a198-e36a94b762f5 commit 4df78b8c7ecd2ec746d3d1a7c28aa88eb5ecf300 Author: winterstream Date: Mon Sep 29 17:20:21 2008 +0000 Added the first utility for converting from ODF to XLIFF. It follows a similar pattern to the other conversion utilities. git-svn-id: https://translate.svn.sourceforge.net/svnroot/translate/src/branches/translate/odf-xliff-first-try@8535 54714841-351b-0410-a198-e36a94b762f5 commit c0f920d924894cdbe77c365127e3999d1588ad82 Author: winterstream Date: Tue Sep 23 14:11:01 2008 +0000 A lot of comments. git-svn-id: https://translate.svn.sourceforge.net/svnroot/translate/src/branches/translate/odf-xliff-first-try@8455 54714841-351b-0410-a198-e36a94b762f5 commit 8889232349c475e4274bc4053f10693f1f3c808f Author: winterstream Date: Tue Sep 23 14:09:58 2008 +0000 replace_dom_text will take apart the translated text in unit, discover which parts are placeables and which are not, and modify the text in the dom node, and the tail text of the children of the dom node. In other words, this is what pulls a translation from a unit and updates the DOM accordingly. git-svn-id: https://translate.svn.sourceforge.net/svnroot/translate/src/branches/translate/odf-xliff-first-try@8453 54714841-351b-0410-a198-e36a94b762f5 commit bb2ea84bf876dbc7733d79ec6bef378f6fb764b5 Author: winterstream Date: Tue Sep 23 14:08:55 2008 +0000 Cosmetic. git-svn-id: https://translate.svn.sourceforge.net/svnroot/translate/src/branches/translate/odf-xliff-first-try@8452 54714841-351b-0410-a198-e36a94b762f5 commit 6156c9a042a98778d946e04a0bed5c86c0420012 Author: winterstream Date: Tue Sep 23 14:07:52 2008 +0000 Simplified the units test functions to use the convenience function xml_extract.build_store. git-svn-id: https://translate.svn.sourceforge.net/svnroot/translate/src/branches/translate/odf-xliff-first-try@8451 54714841-351b-0410-a198-e36a94b762f5 commit 5d336df0322a1d67c4c2c02ec25e9e66ab287f5c Author: winterstream Date: Tue Sep 23 14:06:46 2008 +0000 Added a utility method to load odf files into stores. git-svn-id: https://translate.svn.sourceforge.net/svnroot/translate/src/branches/translate/odf-xliff-first-try@8450 54714841-351b-0410-a198-e36a94b762f5 commit 314a3d3e58f4b3e1d229abd65fd00fd584a6d21a Author: winterstream Date: Tue Sep 23 14:05:46 2008 +0000 Comments + neatification of apply_translations. git-svn-id: https://translate.svn.sourceforge.net/svnroot/translate/src/branches/translate/odf-xliff-first-try@8449 54714841-351b-0410-a198-e36a94b762f5 commit 20e993849a11cd257d9bdc8591d085e58e638dc6 Author: winterstream Date: Tue Sep 23 14:04:41 2008 +0000 Some comments. git-svn-id: https://translate.svn.sourceforge.net/svnroot/translate/src/branches/translate/odf-xliff-first-try@8448 54714841-351b-0410-a198-e36a94b762f5 commit 112c3b0ac31124f57c59bb2ea479bdd6c6138cd8 Author: winterstream Date: Tue Sep 23 07:23:26 2008 +0000 Test that a country code doesn't mix up the factory in the case of special codes (python reserved words) git-svn-id: https://translate.svn.sourceforge.net/svnroot/translate/src/branches/translate/odf-xliff-first-try@8438 54714841-351b-0410-a198-e36a94b762f5 commit 63429ed8255f0d3aa5e2969e6baeab9bb6de3e61 Author: winterstream Date: Tue Sep 23 07:22:03 2008 +0000 adding version dependencies for the "author" attribute: * svn: since v1.5 * bzr: sinve v0.91 * cvs: not supported * darcs: at least since v1.09 according to changelog (this version is in debian stable - thus a check does not seem to be important) * git: since v1.4.3 (this is way older than the package in debian stable, thus a check should not be necessary) * hg: since v1.0 git-svn-id: https://translate.svn.sourceforge.net/svnroot/translate/src/branches/translate/odf-xliff-first-try@8437 54714841-351b-0410-a198-e36a94b762f5 commit ea11747f9539e68614b55a90a39ec684dfca9ded Author: winterstream Date: Tue Sep 23 07:20:16 2008 +0000 Return an empty string if the unit is untranslated git-svn-id: https://translate.svn.sourceforge.net/svnroot/translate/src/branches/translate/odf-xliff-first-try@8436 54714841-351b-0410-a198-e36a94b762f5 commit c53b32a2313acaffa3554387d77a90ab09cc8846 Author: winterstream Date: Tue Sep 23 07:18:54 2008 +0000 Return an empty string if the translation is empty git-svn-id: https://translate.svn.sourceforge.net/svnroot/translate/src/branches/translate/odf-xliff-first-try@8435 54714841-351b-0410-a198-e36a94b762f5 commit debe43a174e0155a5bdb3a4ccf0d1776aac181bd Author: winterstream Date: Tue Sep 23 07:17:30 2008 +0000 Manage empty context name git-svn-id: https://translate.svn.sourceforge.net/svnroot/translate/src/branches/translate/odf-xliff-first-try@8434 54714841-351b-0410-a198-e36a94b762f5 commit dcb657a3252b9a65f66a7ed04ee47c12d42e49a0 Author: winterstream Date: Tue Sep 23 07:16:10 2008 +0000 Add .qph - Qt Phrase Book support based on ts2 git-svn-id: https://translate.svn.sourceforge.net/svnroot/translate/src/branches/translate/odf-xliff-first-try@8433 54714841-351b-0410-a198-e36a94b762f5 commit 2f03af4fafd03e68a9273fb5dbea87f8f7ee58ea Author: winterstream Date: Tue Sep 23 07:14:48 2008 +0000 Fixes to get plural entries working in virtaal: * Add list of languages and plural forms, include reference to source. This might be better placed in lang/data.py but since it is hard coded for all of Qt this is probably a better spot. * Implement getsource: this allows us to force the source into a multistring, in .ts the source will always be a single entry never multiple as in PO. With this the generic hasplural will work * Add decorators for source and target, seems we get the parent ones if not added * Add nplural fuction to find the language and return the number of plural forms * Retrieve the nplural value if we are editing a .ts store. git-svn-id: https://translate.svn.sourceforge.net/svnroot/translate/src/branches/translate/odf-xliff-first-try@8432 54714841-351b-0410-a198-e36a94b762f5 commit 5a4efd3775fc38ab8faa2bb16b8f7c4d423c2c29 Author: winterstream Date: Tue Sep 23 07:13:30 2008 +0000 Add format support for detecting .ts content git-svn-id: https://translate.svn.sourceforge.net/svnroot/translate/src/branches/translate/odf-xliff-first-try@8431 54714841-351b-0410-a198-e36a94b762f5 commit 5a063bfdc6412d0cb97cbb63c95baeb9aec96f2e Author: winterstream Date: Tue Sep 23 07:12:13 2008 +0000 Add support for ts2 as ts git-svn-id: https://translate.svn.sourceforge.net/svnroot/translate/src/branches/translate/odf-xliff-first-try@8430 54714841-351b-0410-a198-e36a94b762f5 commit 58c39f0bcfb7b83c0ac1365a8395aff8820830e3 Author: winterstream Date: Tue Sep 23 07:11:03 2008 +0000 Initial support for new Qt linguist (.ts) files git-svn-id: https://translate.svn.sourceforge.net/svnroot/translate/src/branches/translate/odf-xliff-first-try@8429 54714841-351b-0410-a198-e36a94b762f5 commit 2373f2b9dab3877616742155ac8e13ed2adcc12b Author: winterstream Date: Tue Sep 23 07:09:59 2008 +0000 Update copyright dates git-svn-id: https://translate.svn.sourceforge.net/svnroot/translate/src/branches/translate/odf-xliff-first-try@8428 54714841-351b-0410-a198-e36a94b762f5 commit e76a60f9c4dd9107f5bb0bd0d1cb23d1d3530775 Author: winterstream Date: Tue Sep 23 07:08:53 2008 +0000 Remove unused imports git-svn-id: https://translate.svn.sourceforge.net/svnroot/translate/src/branches/translate/odf-xliff-first-try@8427 54714841-351b-0410-a198-e36a94b762f5 commit 42723f2014b398df159050478fa25ed6b50c660b Author: winterstream Date: Tue Sep 23 07:07:54 2008 +0000 s/profile/cProfile/ git-svn-id: https://translate.svn.sourceforge.net/svnroot/translate/src/branches/translate/odf-xliff-first-try@8426 54714841-351b-0410-a198-e36a94b762f5 commit 5da8f4e1e5b96f959d7585eac6cc8449cd017f02 Author: winterstream Date: Tue Sep 23 07:06:58 2008 +0000 Ensure that we return unicode strings when dealing using xpath("string()") git-svn-id: https://translate.svn.sourceforge.net/svnroot/translate/src/branches/translate/odf-xliff-first-try@8425 54714841-351b-0410-a198-e36a94b762f5 commit 042e2165b9cb6c02a4756c4fead15b593695eb1b Author: winterstream Date: Tue Sep 23 07:05:51 2008 +0000 Bring in something non-ASCII for better testing git-svn-id: https://translate.svn.sourceforge.net/svnroot/translate/src/branches/translate/odf-xliff-first-try@8424 54714841-351b-0410-a198-e36a94b762f5 commit 45f75dc753885708ce4934d48c80984d242bb633 Author: winterstream Date: Tue Sep 23 07:04:53 2008 +0000 Version 1.2.0-rc1 git-svn-id: https://translate.svn.sourceforge.net/svnroot/translate/src/branches/translate/odf-xliff-first-try@8423 54714841-351b-0410-a198-e36a94b762f5 commit b53b87aba7ec354391b7fb597c0c5935443430ce Author: winterstream Date: Tue Sep 23 07:04:04 2008 +0000 quote.extractstr is called very often. The underlying function is quite heavyweight and adds quite a bit of runtime overhead. And yet, all we need is to find the left " (the quote) and the right " in a string and to return a string with the quotes intact. This is done much faster as done in the new little extractstr implementation in pypo.py. git-svn-id: https://translate.svn.sourceforge.net/svnroot/translate/src/branches/translate/odf-xliff-first-try@8422 54714841-351b-0410-a198-e36a94b762f5 commit bfb4098f6561c69330ec21b6151c26411ad8fd84 Author: winterstream Date: Tue Sep 23 07:03:04 2008 +0000 1. Change the members 'keys' and 'values' in Record to 'record_keys' and 'record_values', so as to avoid confusion with the methods named 'keys' and 'values'. 2. Added the callback compute_derived_values to Record, so that it can compute values which are derived from its other values and keep these up to date. The class FileTotals makes use of this; the method FileTotals._compute_derived_values computes values for "total", "totalsourcewords" and "review" from the values retrieved from the database. 3. Renamed OTHER to UNTRANSLATED. 4. Renamed Record.db_repr to Record.as_string_for_db. 5. Updated get_unit_stats to retrieve targetwords from the database, since FileTotals now also requires this value. 6. Changed the values stored inside the database. 7. Bumped up the toolkit build number. git-svn-id: https://translate.svn.sourceforge.net/svnroot/translate/src/branches/translate/odf-xliff-first-try@8421 54714841-351b-0410-a198-e36a94b762f5 commit 8f6193a67174681b92b5acc59ed98c8193866426 Author: winterstream Date: Tue Sep 23 07:01:52 2008 +0000 If we bump up the toolkit's version number, we delete the current stats cache database, if it has an old version number. This is not ideal and in the future, we'll probably name stats cache database files differently as we change the database layout, so that multiple versions of the toolkit software will be able to coexist. git-svn-id: https://translate.svn.sourceforge.net/svnroot/translate/src/branches/translate/odf-xliff-first-try@8420 54714841-351b-0410-a198-e36a94b762f5 commit 6c99736e34916c367473a3fa2293dd043865e6b4 Author: winterstream Date: Tue Sep 23 07:00:45 2008 +0000 +Link to wiki in poterminology's docstring (and therefore also --help text) git-svn-id: https://translate.svn.sourceforge.net/svnroot/translate/src/branches/translate/odf-xliff-first-try@8419 54714841-351b-0410-a198-e36a94b762f5 commit cda1ca7719142bef81f967b45a7e9205b2f7beb7 Author: winterstream Date: Tue Sep 23 06:59:39 2008 +0000 Benchmark the creation of files git-svn-id: https://translate.svn.sourceforge.net/svnroot/translate/src/branches/translate/odf-xliff-first-try@8418 54714841-351b-0410-a198-e36a94b762f5 commit e4edca4056435de282154ce4d81686c38813a8a8 Author: winterstream Date: Fri Sep 19 10:53:52 2008 +0000 Added code that traverses a store and finds all elements in a DOM tree which correspond to the units in the store. It then calls the given function on a dom_node and unit which match (presumably so that the text in the DOM node can be replaced with the translated text in the unit. git-svn-id: https://translate.svn.sourceforge.net/svnroot/translate/src/branches/translate/odf-xliff-first-try@8368 54714841-351b-0410-a198-e36a94b762f5 commit 5771dae8666d0715cf486798a2090a7f899a872b Author: winterstream Date: Fri Sep 19 10:51:19 2008 +0000 Added a context manager which mimics the with statement found in the newest Python versions. This ensures that finalization code is executed, even if something goes wrong within a with_block. Thus, it adds a bit of transactional semantics to the code. git-svn-id: https://translate.svn.sourceforge.net/svnroot/translate/src/branches/translate/odf-xliff-first-try@8367 54714841-351b-0410-a198-e36a94b762f5 commit fb04e1c760d25661771e21e9db7af0e776cd2654 Author: winterstream Date: Fri Sep 19 10:48:32 2008 +0000 Only add a translatable to a store if it contains content. git-svn-id: https://translate.svn.sourceforge.net/svnroot/translate/src/branches/translate/odf-xliff-first-try@8366 54714841-351b-0410-a198-e36a94b762f5 commit d7dfc9ba696e1be123541b99004973def61a1ec7 Author: winterstream Date: Fri Sep 19 10:46:27 2008 +0000 XLIFF only supports a single location source. We're already using the location to store the XPath of dom node from which we got the translatable element. git-svn-id: https://translate.svn.sourceforge.net/svnroot/translate/src/branches/translate/odf-xliff-first-try@8365 54714841-351b-0410-a198-e36a94b762f5 commit d72b99a54f67962a88b0b04635984c2af918afaa Author: winterstream Date: Wed Sep 17 08:59:56 2008 +0000 Added a function to add a translatable unit to a store and to fill in its location (which is just the XPath of the corresponding translatable). git-svn-id: https://translate.svn.sourceforge.net/svnroot/translate/src/branches/translate/odf-xliff-first-try@8354 54714841-351b-0410-a198-e36a94b762f5 commit 4c43d05ce42abf34a2189b691cf58571b071bd6e Author: winterstream Date: Wed Sep 17 08:58:59 2008 +0000 Set the placeable ID to -1 for top-level translatable elements. This is to be able to tell whether an element is top-level or not. git-svn-id: https://translate.svn.sourceforge.net/svnroot/translate/src/branches/translate/odf-xliff-first-try@8353 54714841-351b-0410-a198-e36a94b762f5 commit 7d708a25afd01f8e82c535e55a46b02c74741c32 Author: winterstream Date: Wed Sep 17 08:58:07 2008 +0000 The text in .text or .tail of a DOM node can be None. If that is the case, we want empty strings. git-svn-id: https://translate.svn.sourceforge.net/svnroot/translate/src/branches/translate/odf-xliff-first-try@8352 54714841-351b-0410-a198-e36a94b762f5 commit 474ac24534726fca9e57dc14c5c50fcfeda4ba1d Author: winterstream Date: Wed Sep 17 08:57:16 2008 +0000 Fixed a typo in a member name. git-svn-id: https://translate.svn.sourceforge.net/svnroot/translate/src/branches/translate/odf-xliff-first-try@8351 54714841-351b-0410-a198-e36a94b762f5 commit 2889b2471213130200e21abbe008f60fdcbb5d72 Author: winterstream Date: Tue Sep 16 15:13:21 2008 +0000 Resurrected XPathBreadcrumb and put it to work in the parse state. It replaces the explicit xpath stack. Instead we call start_tag and end_tag. This class takes care of keeping track of the number o occurrences of a given tag (so that it can give an index to a tag). We now also store the full XPath of a translatable as a string, which we get from the breadcrumb. git-svn-id: https://translate.svn.sourceforge.net/svnroot/translate/src/branches/translate/odf-xliff-first-try@8343 54714841-351b-0410-a198-e36a94b762f5 commit 76b93e24536e84b3da3a339a604ecd456dbcf0b9 Author: winterstream Date: Tue Sep 16 14:57:16 2008 +0000 In our code, we always pass a placeable_id and placeable_name. So simplify this code. git-svn-id: https://translate.svn.sourceforge.net/svnroot/translate/src/branches/translate/odf-xliff-first-try@8342 54714841-351b-0410-a198-e36a94b762f5 commit 111f35bc4fb10903eb760b01285e2197baf9988c Author: winterstream Date: Tue Sep 16 14:56:21 2008 +0000 If an XML node contains placeables, then the text appearing after the placeable is contained in the .tail member of the XML node representing the root of the placeable. We need to add this text to build the text for a translatable. For the second hunk, we must pass the top of the placeable_name stack, so that the translatable will know what it is called :). git-svn-id: https://translate.svn.sourceforge.net/svnroot/translate/src/branches/translate/odf-xliff-first-try@8341 54714841-351b-0410-a198-e36a94b762f5 commit a69109a7cb1f65d8d09252ccd6d5517c2d82c3ea Author: winterstream Date: Tue Sep 16 14:55:13 2008 +0000 Maintain a stack of placeable names in the parse state. Recall that a placeable might be a whole nested XML structure. We might want to use a tag somewhere in the middle of this structure to name the placeable. Thus, when we hit a tag, we check whether it appears in the placeable_table. If so, we push a name onto the placeable stack. git-svn-id: https://translate.svn.sourceforge.net/svnroot/translate/src/branches/translate/odf-xliff-first-try@8340 54714841-351b-0410-a198-e36a94b762f5 commit 05c53722817a7cf6fcf58a4141c8875d4a1df21f Author: winterstream Date: Tue Sep 16 14:53:58 2008 +0000 Placeables should also be indexed by fully qualified XML tags. git-svn-id: https://translate.svn.sourceforge.net/svnroot/translate/src/branches/translate/odf-xliff-first-try@8339 54714841-351b-0410-a198-e36a94b762f5 commit fc445b267f45309669dde89f5fe319e8afaed9c2 Author: winterstream Date: Tue Sep 16 12:40:39 2008 +0000 An attempt to write more imperative code, since Python can be quite hostile to functional style programming sometimes. git-svn-id: https://translate.svn.sourceforge.net/svnroot/translate/src/branches/translate/odf-xliff-first-try@8338 54714841-351b-0410-a198-e36a94b762f5 commit d67fbd553b7f76d4ffe013c7f4a3be2d8cbbfe71 Author: winterstream Date: Mon Sep 15 14:03:26 2008 +0000 This file is a hangover from a previous effort to integrate our software directly with itools for XML extraction. I am keeping it as a reference. git-svn-id: https://translate.svn.sourceforge.net/svnroot/translate/src/branches/translate/odf-xliff-first-try@8322 54714841-351b-0410-a198-e36a94b762f5 commit abb342dcbabbc6e543ce84cbdb22d08c0a082712 Author: winterstream Date: Mon Sep 15 14:01:56 2008 +0000 Added a test file to test the xml_extract code. The test file contains an embedded XML file which comes from an OpenOffice.org file. This file is fed to the XML extraction code along with the ODF-specific XML namespace imformation and placable information. git-svn-id: https://translate.svn.sourceforge.net/svnroot/translate/src/branches/translate/odf-xliff-first-try@8321 54714841-351b-0410-a198-e36a94b762f5 commit ed34166d946ec32ef7f69bb918042984a46e8f6c Author: winterstream Date: Mon Sep 15 14:00:25 2008 +0000 This is some fairly dense code to extract XML from an arbitrary document, given tables of 1. XML namespaces which should be converted, and 2. XML namespaces which should appear as placables within other translatable hunks. The code works by searching through the DOM tree (the function apply), until it hits a translatable tag. Then it calls process_translatable_tag. process_translatable_tag sees whether there are any sub-translatable tags in the current translatable tag. An example of this is footnotes in OpenOffice.org documents. The XML code for a footnote appears within the paragraph tag with which the footnote is associated. Or in XML: First. This should 1 Footnote 1 not be segmented. Even with etc. and so. We need to treat tags like as placables, which means that the above should be presented to the translator as something like: First. This should&footnote_1; not be segmented. Even with etc. and so. Note that the entire XML block related to the footnote is represented by: &footnote_1; Thus, process_translatable_tag is responsible for finding any placables in the current translatable_tag. If there are any placables, it should create placable tags for them (such as &footnote_1;) and construct a translatable string containing these placable tags. Then it proceeds to deal with the children (that is, the placables) by invoking apply on them. Note that the current implementation uses the Record type, which provides immutable records (for stateless programming). Because it is immutable, every modification creates a new record. git-svn-id: https://translate.svn.sourceforge.net/svnroot/translate/src/branches/translate/odf-xliff-first-try@8320 54714841-351b-0410-a198-e36a94b762f5 commit 38e8b341e82e738169002c03c01212e8ea0d6fbe Author: winterstream Date: Mon Sep 15 13:59:05 2008 +0000 Immutable record type from http://www.valuedlessons.com/2007/12/immutable-data-in-python-record-or.html (author's name not found). This is useful for stateless code. git-svn-id: https://translate.svn.sourceforge.net/svnroot/translate/src/branches/translate/odf-xliff-first-try@8319 54714841-351b-0410-a198-e36a94b762f5 commit 496cf7f386a9d241c68aaab1b536272bda1b221c Author: winterstream Date: Mon Sep 15 13:57:38 2008 +0000 odf_shared.py contains the information needed by the XML parser to extract translatables and placables from ODF documents. The information is derived from itools, as indicated in the comments. git-svn-id: https://translate.svn.sourceforge.net/svnroot/translate/src/branches/translate/odf-xliff-first-try@8318 54714841-351b-0410-a198-e36a94b762f5 commit 898f5b2af87c52e66b544c0803ff20f2d84f64da Author: winterstream Date: Mon Sep 15 12:15:41 2008 +0000 Finally branched the toolkit for the ODF-XLIFF stuff. git-svn-id: https://translate.svn.sourceforge.net/svnroot/translate/src/branches/translate/odf-xliff-first-try@8313 54714841-351b-0410-a198-e36a94b762f5 2008-10-08 19:40 dwaynebailey * storage/csvl10n.py, storage/qm.py: Add filetype names for .qm and our brand of CSV. 2008-10-07 22:47 dwaynebailey * convert/ical2po.py, convert/ini2po.py, convert/rc2po.py: Revert r8712: broke the conversion even though it isn't used. Refactor at a later stage. 2008-10-07 22:26 dwaynebailey * convert/ical2po.py, convert/ini2po.py: Remove unused xliff import 2008-10-07 22:21 dwaynebailey * convert/ical2po.py, convert/ini2po.py, convert/rc2po.py: commenttype is never used 2008-10-07 21:31 dwaynebailey * convert/rc2po.py: CAPITALISE a constant 2008-10-07 21:19 dwaynebailey * convert/rc2po.py: Align terminology 2008-10-07 20:36 dwaynebailey * convert/ical2po.py, convert/ini2po.py: Align naming 2008-10-07 16:31 dwaynebailey * convert/accesskey.py, convert/dtd2po.py, convert/po2dtd.py, convert/test_accesskey.py: Change accesskey function names to something more readable: get_label_and_accesskey => extract combine_label_accesskey => combine 2008-10-07 16:28 dwaynebailey * convert/accesskey.py, convert/dtd2po.py, convert/test_accesskey.py: Move the accesskey+label combining functionaity out of dtd2po and into the generic accesskey module. Adjust dtd2po to use this function. Include tests for the combining. 2008-10-07 16:22 dwaynebailey * convert/accesskey.py, convert/po2dtd.py, convert/test_accesskey.py: Remove the getlabel and getacceskey functions. We'd rather use the combined function. po2dtd.py is adapted with some unused variables, these will probably disappear as we refactor that code. 2008-10-07 16:19 dwaynebailey * convert/accesskey.py, convert/test_accesskey.py: Deal with the empty string 2008-10-07 16:18 dwaynebailey * convert/accesskey.py, convert/test_accesskey.py: Make everything Unicode. There are some asserts which should probably be removed in the future. 2008-10-07 16:16 dwaynebailey * convert/accesskey.py: Merge functions from getlabel and getaccesskey into get_label_and_accesskey. They were mostly identical anyway. 2008-10-07 16:14 dwaynebailey * convert/accesskey.py, convert/test_accesskey.py: Create a combined function that returns botht the label and accesskey 2008-10-07 16:12 dwaynebailey * convert/accesskey.py, convert/test_accesskey.py: Allow the accesskeyto be specified, also set default to '&' 2008-10-07 16:10 dwaynebailey * convert/accesskey.py, convert/po2dtd.py, convert/test_accesskey.py: Move getlabel and getaccesskey functions out into its own module. Provide tests. Adjust po2dtd.py to use the new module. 2008-10-07 16:04 dwaynebailey * convert/oo2po.py, convert/oo2xliff.py, convert/po2oo.py, convert/xliff2oo.py, storage/oo.py, storage/test_oo.py: Move the 4 makekey functions into the storage class. Create a test to validate that it works. 2008-10-07 15:36 dupuy * .cvsignore: ignore generated files 2008-10-07 12:23 friedelwolff * convert/pot2po.py: Massive renaming to clarify store vs file. Also got rid of several PO references. 2008-10-07 12:00 friedelwolff * filters/checks.py: Use unicode literals - this provides a small speedup, and is just good in general 2008-10-06 13:03 friedelwolff * ChangeLog: Update ChangeLog before the release of 1.2.0 2008-10-06 12:58 friedelwolff * __version__.py: Version 1.2.0 2008-10-06 12:37 friedelwolff * CREDITS: Credit Miklos for work on version control 2008-10-06 10:14 friedelwolff * filters/checks.py: Make 100% sure the xliff imported successfully. Pofilter should now work correctly when lxml is not installed. 2008-10-06 10:12 friedelwolff * filters/checks.py: Deal properly with unicode arguments to exceptions, even for Python 2.3 that doesn't have .args 2008-10-06 09:55 friedelwolff * filters/spelling.py: Force the multistring to unicode to avoid problems with Python 2.3 and enchant 2008-10-05 22:34 dwaynebailey * storage/ts2.py: Add mimetype for .ts 2008-10-04 13:12 friedelwolff * storage/base.py: Add a default 'Name' field for the store (to be overridden) and document all store-level variables 2008-10-04 13:11 dwaynebailey * storage/mo.py: Improve docstring. Point to the Gettext information on MO and say something about hashing. 2008-10-04 13:08 friedelwolff * storage/base.py, storage/mo.py, storage/qm.py: Use a variable _binary in the store to indicate if file access should be binary (non-binary by default, overridden for mo and qm). This fixes bug 538. 2008-10-03 11:53 winterstream * storage/statsdb.py: The stats database code checks to see whether the database version matches the current toolkit build and deletes the database if it does not. If however the database is empty, this cannot be verified. The database layout needs to be fixed though. We'll do that later. This patch should fix things in the mean time. 2008-10-02 22:40 friedelwolff * filters/checks.py: Cast multistring to plain unicode to simplify things. Ensure failures have unicode messages. Fix incorrectly ordered parameters 2008-10-02 12:13 friedelwolff * storage/qph.py: Remove methods that override methods that work fine in the parent class. This fixes bug 533. 2008-10-02 12:12 friedelwolff * storage/ts2.py: Ensure source and target is always unicode 2008-10-01 08:56 dwaynebailey * tools/pogrep.py: Catch strings(source/target) that are None and don't try to search them. 2008-10-01 08:54 dwaynebailey * lang/data.py: unicodedata.normalize does not accept None so make sure we catch this. 2008-10-01 08:52 dwaynebailey * storage/txt.py: Actually use the encoding that we supply in __init__ 2008-09-30 20:21 dwaynebailey * misc/optrecurse.py, tools/pocount.py: Exclude GIT, Mercurial and Bazaar RCS special directories 2008-09-30 20:17 dwaynebailey * tools/pocount.py: Ignore Mercurial and GIT hidden directories. 2008-09-30 19:42 dupuy * share/stoplist-en: remove second "second" from comment add 'th' to ordinal number part of regex to ignore/exclude 4th 19th 100th 2008-09-30 17:26 dupuy * share/stoplist-en: better comments for regexes 2008-09-30 09:43 dupuy * tools/poterminology.py: fix proper handling of default stoplist with no -S options that was broken by r8553 (I botched the split-up of the poterminology into "orthogonal" patches) 2008-09-30 07:26 dupuy * tools/poterminology.py: change default case mapping behavior to -F/--fold-titlecase add new -C/--preserve-case mapping behavior for old default multiple -C/-F/-I options can now be given, the last one wins 2008-09-30 07:19 dupuy * tools/poterminology.py: add new -u/--update argument; file is used for both input and output (currently "-u XXX" is mostly equivalent to "-i XXX -o XXX" but this can be made smarter later on; for now, -u argument does not increase default --inputs-needed to 2) -- only one of -u/-o can be used in any command line refuse to overwrite existing output file implicitly specified by freestanding arguments; this provides protection against shell wildcard expansion accidents 2008-09-30 07:06 dupuy * share/stoplist-en: minor adjustments to default stoplist: enhanced self-documenting comments use new case mapping directive to enable title-case folding allow phrases with 'ad' (e.g. 'ad hoc') ignore phrases with 'eg' 'qv' 'vs' 'would' 2008-09-30 07:01 dupuy * tools/poterminology.py: support specification of multiple stoplist files enhance format of stoplist file to include case mapping directive (for upper-/title-/lower-case mapping of words before stoplist comparison) 2008-09-29 21:15 friedelwolff * storage/poheader.py: Indicate the correct position in the header for the new 'Language' field 2008-09-29 19:04 friedelwolff * storage/ts2.py: Work around the default output options to align better with Qt .ts defaults. +DOCTYPE, -XML decleration 2008-09-29 17:24 friedelwolff * lang/fr.py: Correct the case where URIs were incorrectly spaced for punctuation translation (' ://' -> '://') 2008-09-29 17:23 friedelwolff * lang/test_fr.py: Test that URIs are not spaced incorrectly due to punctuation translation 2008-09-29 17:21 friedelwolff * lang/common.py: Add a note about plural defaults 2008-09-29 17:20 friedelwolff * lang/common.py: Minor tweak for punctuation translation at the end of text. This fixes ellipses for Chinese. 2008-09-29 17:16 friedelwolff * lang/test_zh.py: Test some more cases with full stops (.) and ellipses (...) 2008-09-29 15:04 friedelwolff * storage/pocommon.py: Add another MIME type 'text/x-gettext-translation' as that is currently used by other apps in the ~/.recently_used.xbel 2008-09-29 14:01 friedelwolff * storage/mo.py: Return an empty unicode instead of normal string 2008-09-29 08:28 friedelwolff * storage/ts2.py: Return an empty unicode instead of normal string 2008-09-29 08:27 friedelwolff * storage/ts2.py: Fix incorrect variable name 2008-09-29 08:18 friedelwolff * storage/qph.py: Return an empty unicode instead of normal string 2008-09-27 09:19 dwaynebailey * tools/poswap.py: docstring: use literal blocks 2008-09-27 09:15 dwaynebailey * search/indexing/CommonIndexer.py: docstring: add @raise, various indent fixes 2008-09-27 09:11 dwaynebailey * search/indexing/PyLuceneIndexer.py: docstring: add @riase, correct list and add some links 2008-09-27 09:08 dwaynebailey * search/indexing/PyLuceneIndexer1.py: docstring: create list and add links 2008-09-27 09:02 dwaynebailey * search/indexing/XapianIndexer.py: docstring: fix some varibales incorrectly names, indentation and add @raise 2008-09-27 08:58 dwaynebailey * search/indexing/__init__.py: docstring: use @raise markup and add a link 2008-09-27 08:46 dwaynebailey * search/lshtein.py: docstring: fix indentation and list 2008-09-27 08:42 dwaynebailey * lang/common.py, lang/data.py: docstring: format and layout fixes 2008-09-27 08:35 dwaynebailey * storage/html.py: docstring: convert some examples to literals 2008-09-27 08:33 dwaynebailey * storage/cpo.py: docstring: fix indentation and return values 2008-09-27 08:30 dwaynebailey * storage/lisa.py: docstring: fix reference links 2008-09-27 08:25 dwaynebailey * storage/lisa.py: docstring fixes 2008-09-27 08:22 dwaynebailey * storage/properties.py: docstring: Fix epydoc rendering issues and escaping 2008-09-27 08:10 dwaynebailey * storage/statsdb.py: docstring: Indent correctly and remove stale documentation 2008-09-27 08:07 dwaynebailey * storage/test_wordfast.py: Fix docstring indentation 2008-09-27 08:05 dwaynebailey * storage/versioncontrol/__init__.py: epoydoc cleanups 2008-09-27 07:59 dwaynebailey * storage/wordfast.py: Add explanation of Wordfast tools base on MS Word 2008-09-27 07:57 dwaynebailey * storage/wordfast.py: Add section on encoding 2008-09-27 07:53 dwaynebailey * storage/wordfast.py: Document UTF-16 tab constant 2008-09-27 07:52 dwaynebailey * storage/wordfast.py: Add many cross reference to the actual functions 2008-09-27 07:40 dwaynebailey * storage/wordfast.py: Fix _char_to_wf docstring 2008-09-27 07:35 dwaynebailey * storage/wordfast.py: Add implementation docstring 2008-09-27 07:15 dwaynebailey * storage/ical.py: Add docstring 2008-09-27 06:56 dwaynebailey * storage/ical.py: Fix misnamed variable 2008-09-26 14:22 dwaynebailey * README: Add notes about vobject for ical2po Add ical2po and ini2po to the list of converters 2008-09-24 20:27 friedelwolff * storage/poheader.py: Add accessors to manipulate the targetlanguage of a poheader implementation. This feature will appear in gettext 0.18. 2008-09-24 20:25 friedelwolff * storage/poheader.py: When updating a header with plural information, add the Plural-Forms entry if it is not yet there 2008-09-24 16:16 friedelwolff * storage/test_ts2.py: Unit tests for the new ts2.py 2008-09-24 14:27 dwaynebailey * convert/ical2po, convert/ical2po.py, convert/po2ical, convert/po2ical.py, storage/ical.py: Add iCalendar conversion support: * This uses the vobject library to access .ics files. * We only process relevant text properties in VEVENT objects. We could process other entries but why? * vobject should be >= 0.6.5 On a positive note, these where implemented based on ini.py and the limited amount that needed to be implemented for ical.py and po2ical/ical2po highlighted that we are close to making this generic enough that by simply adding a format we get a converter at not extra cost. Happy localising of Calendars! 2008-09-22 16:44 friedelwolff * lang/test_or.py: Test that a country code doesn't mix up the factory in the case of special codes (python reserved words) 2008-09-22 14:11 sumpfralle * storage/versioncontrol/bzr.py, storage/versioncontrol/hg.py, storage/versioncontrol/svn.py: adding version dependencies for the "author" attribute: * svn: since v1.5 * bzr: sinve v0.91 * cvs: not supported * darcs: at least since v1.09 according to changelog (this version is in debian stable - thus a check does not seem to be important) * git: since v1.4.3 (this is way older than the package in debian stable, thus a check should not be necessary) * hg: since v1.0 2008-09-21 12:55 dwaynebailey * storage/qph.py: Return an empty string if the unit is untranslated 2008-09-21 12:47 dwaynebailey * storage/ts2.py: Return an empty string if the translation is empty 2008-09-21 02:11 dwaynebailey * storage/ts2.py: Manage empty context name 2008-09-21 01:19 dwaynebailey * storage/factory.py, storage/qph.py: Add .qph - Qt Phrase Book support based on ts2 2008-09-20 23:48 dwaynebailey * storage/ts2.py: Fixes to get plural entries working in virtaal: * Add list of languages and plural forms, include reference to source. This might be better placed in lang/data.py but since it is hard coded for all of Qt this is probably a better spot. * Implement getsource: this allows us to force the source into a multistring, in .ts the source will always be a single entry never multiple as in PO. With this the generic hasplural will work * Add decorators for source and target, seems we get the parent ones if not added * Add nplural fuction to find the language and return the number of plural forms * Retrieve the nplural value if we are editing a .ts store. 2008-09-20 20:34 friedelwolff * storage/factory.py: Add format support for detecting .ts content 2008-09-20 20:20 friedelwolff * storage/factory.py: Add support for ts2 as ts 2008-09-20 20:14 friedelwolff * storage/ts2.py: Initial support for new Qt linguist (.ts) files 2008-09-20 13:29 dwaynebailey * convert/po2dtd.py: Update copyright dates 2008-09-20 10:26 dwaynebailey * storage/benchmark.py: Remove unused imports 2008-09-20 09:02 dwaynebailey * storage/benchmark.py: s/profile/cProfile/ 2008-09-19 21:40 friedelwolff * storage/lisa.py: Ensure that we return unicode strings when dealing using xpath("string()") 2008-09-19 21:39 friedelwolff * tools/test_pogrep.py: Bring in something non-ASCII for better testing 2008-09-19 15:32 friedelwolff * __version__.py: Version 1.2.0-rc1 2008-09-19 14:59 winterstream * storage/pypo.py: quote.extractstr is called very often. The underlying function is quite heavyweight and adds quite a bit of runtime overhead. And yet, all we need is to find the left " (the quote) and the right " in a string and to return a string with the quotes intact. This is done much faster as done in the new little extractstr implementation in pypo.py. 2008-09-19 14:56 winterstream * __version__.py, storage/statsdb.py: 1. Change the members 'keys' and 'values' in Record to 'record_keys' and 'record_values', so as to avoid confusion with the methods named 'keys' and 'values'. 2. Added the callback compute_derived_values to Record, so that it can compute values which are derived from its other values and keep these up to date. The class FileTotals makes use of this; the method FileTotals._compute_derived_values computes values for "total", "totalsourcewords" and "review" from the values retrieved from the database. 3. Renamed OTHER to UNTRANSLATED. 4. Renamed Record.db_repr to Record.as_string_for_db. 5. Updated get_unit_stats to retrieve targetwords from the database, since FileTotals now also requires this value. 6. Changed the values stored inside the database. 7. Bumped up the toolkit build number. 2008-09-19 14:44 winterstream * storage/statsdb.py: If we bump up the toolkit's version number, we delete the current stats cache database, if it has an old version number. This is not ideal and in the future, we'll probably name stats cache database files differently as we change the database layout, so that multiple versions of the toolkit software will be able to coexist. 2008-09-19 10:32 friedelwolff * tools/poterminology.py: +Link to wiki in poterminology's docstring (and therefore also --help text) 2008-09-15 20:27 dwaynebailey * storage/benchmark.py: Benchmark the creation of files 2008-09-15 10:56 friedelwolff * storage/xliff.py: Add an accessor for the file tag's date attribute 2008-09-15 10:53 friedelwolff * filters/test_checks.py: Test that purepunc won't barf on numeric translation with stupid GNOME context markers 2008-09-15 10:51 friedelwolff * filters/test_checks.py: Ensure that we fail if a translation contains two accelerators 2008-09-15 10:51 friedelwolff * filters/checks.py: Rewrite radically to simplify and optimise. Correct the incorrect use of decoration.ispurepunctuation 2008-09-15 10:46 friedelwolff * filters/decoration.py: ispurepunctuation() should not be true for numeric strings. Rewrite in more modern style. 2008-09-15 06:41 friedelwolff * filters/checks.py: All messages must be unicode (check line 114) 2008-09-12 06:48 dwaynebailey * storage/qm.py: Raise and error if our file is to short 2008-09-12 05:03 dwaynebailey * storage/mo.py: No need to declare self.units inheritted from base.py 2008-09-12 04:23 dwaynebailey * storage/benchmark.py: Remove all the Pootle stuff Make the script format agnostic Allow command line to specify which storage format you want to profile 2008-09-12 04:18 dwaynebailey * storage/benchmark.py: Copy old benchmarking script from Pootle 2008-09-11 11:41 dwaynebailey * lang/data.py: Add Kyrgyz 2008-09-08 12:59 winterstream * storage/statsdb.py: _cacheunitstats adds stats totals, so we should only subtract the value of the old stats in recacheunit. 2008-09-03 19:42 winterstream * storage/statsdb.py: Added file_fails_test which does a quick test to determine whether any units in a file fail the test passed in the name parameter. Since file_fails_test also needs to ensure that file checks have been run before doing its work, the common code from filechecks was factored out so that both file_fails_test and filechecks can use it. 2008-09-03 19:38 winterstream * storage/statsdb.py: Store the file totals in the database. This uses a simple ORM scheme and will soon be replaced by something better (from Mozilla). Storing the totals in the database should help to fix some of the out-of-date stats problems that we had. 2008-08-28 16:11 friedelwolff * tools/poconflicts.py: Ensure that there is still some source string left after self.flatten(). If there is nothing left (for a string such as '...' we probably want to ignore it anyway. 2008-08-28 06:29 dwaynebailey * filters/pofilter.py: Do user expansion of input filename to allow ~ expansion to user home directory. 2008-08-27 09:33 dwaynebailey * README: Don't forget Windows RC file support 2008-08-27 08:10 friedelwolff * README: Some updates - supported formats +poterminology, etc. 2008-08-26 15:14 friedelwolff * __version__.py: Version 1.2-beta2 2008-08-26 14:57 friedelwolff * search/indexing/test_indexers.py: Adapt import to new module name 2008-08-26 14:55 friedelwolff * search/indexing/test_indexers.py: Adapt import to new module name 2008-08-26 14:54 dwaynebailey * convert/po2oo.py, convert/xliff2oo.py: Allow .sdf files as templates and output for onefile OOo conversion. Fixes bug 487 2008-08-26 14:53 friedelwolff * search/indexing: Restore translate/search/indexer of revision 8187 at translate/search/indexing to maintain version history 2008-08-26 14:50 friedelwolff * search/indexer: Remove directories in incorrect state after directory rename git-svn (version history was discarded) 2008-08-26 14:49 friedelwolff * search/indexing: Remove directories in incorrect state after directory rename git-svn (version history was discarded) 2008-08-26 14:44 friedelwolff * search/indexing/CommonIndexer.py, search/indexing/PyLuceneIndexer.py, search/indexing/PyLuceneIndexer1.py, search/indexing/XapianIndexer.py, search/indexing/__init__.py, search/indexing/test_indexers.py: Remove files that were incorrectly added by git-svn (version history was discarded) 2008-08-26 14:37 winterstream * search/indexer/CommonIndexer.py, search/indexer/PyLuceneIndexer.py, search/indexer/PyLuceneIndexer1.py, search/indexer/XapianIndexer.py, search/indexer/__init__.py, search/indexer/test_indexers.py, search/indexing, search/indexing/CommonIndexer.py, search/indexing/PyLuceneIndexer.py, search/indexing/PyLuceneIndexer1.py, search/indexing/XapianIndexer.py, search/indexing/__init__.py, search/indexing/test_indexers.py: Rename the module named indexer to indexing. 2008-08-26 08:09 winterstream * misc/quote.py: dict.fromkeys(lst).keys() is equal to lst, but slower! So we'll just substitute and gain speed! 2008-08-25 22:31 sumpfralle * storage/versioncontrol/__init__.py, storage/versioncontrol/cvs.py, storage/versioncontrol/git.py, storage/versioncontrol/git_old.py: versioncontrol interface: * simplify chdir to specific working directories for different VCS (based on a patch of Wynand Winterbach) * remove obsolete "git_old" module 2008-08-25 15:41 dwaynebailey * storage/properties.py: Revert r7983 seems those docs just went and disappeared 2008-08-25 15:37 walter_l * storage/test_mo.py: Commented out a test-case, because the hash-size is different compared to gettext, since we're not counting untranslated units. 2008-08-25 15:35 walter_l * storage/mo.py: Applied sumpfralle's patch (http://bugs.locamotion.org/attachment.cgi?id=214&action=view) to use prime numbers in hashing .mo files. 2008-08-25 15:34 friedelwolff * CREDITS: Credit Walter Leibbrandt and Wynand Winterbach 2008-08-25 11:24 walter_l * storage/test_mo.py: Fixed .mo test to anticipate the fact that pocompile ignores empty .po files. 2008-08-25 10:58 walter_l * storage/test_mo.py: Cosmetic changes - removed unnecessary trailing spaces. 2008-08-22 16:40 winterstream * storage/statsdb.py: filetotals should return an empty dictionary if it fails to compute the stats for a file. This is what pocount expects, since otherwise pocount reports stats for non-translation files. 2008-08-21 15:32 friedelwolff * __version__.py: up the build number 2008-08-21 15:05 friedelwolff * misc/progressbar.py: Fix the example code to run 2008-08-20 15:34 friedelwolff * __version__.py: Version 1.2-beta1 2008-08-20 11:36 friedelwolff * storage/mo.py: Fix indentation, typo, stale comment about not support hash tables 2008-08-20 10:56 friedelwolff * convert/pot2po.py: Increase the length of translations considered for reuse from the old PO file (this does not affect the limits of the TM macher). This mostly fixes bug 346. 2008-08-19 14:51 friedelwolff * storage/statsdb.py: Remove the use of collections.defaultdict (only available from Python 2.5) 2008-08-19 09:43 friedelwolff * tools/poterminology.py: Support pot files 2008-08-15 15:51 walter_l * tools/poterminology.py: Set stopwords-en to be loaded by default in poterminology.py unless -S was specified. 2008-08-15 14:54 walter_l * share, share/stoplist-en: Added translate/share and included its content as data files in setup.py. 2008-08-15 12:38 winterstream * storage/statsdb.py: Renamed emptystats to emptyfiletotals so that there is symmetry in the naming of the functions which return empty stats structures. Let emptyfilechecks return a defaultdict so that other code won't fail when trying to access tests which are non-existant. Finally, directorytotals - which was never used - was removed. 2008-08-15 11:28 friedelwolff * search/match.py: Make matcher a new-style class 2008-08-15 10:38 friedelwolff * convert/test_po2xliff.py: Rewrite the testing for the approved attribute slightly to also work with left out attributes (meaning 'no' - not approved) 2008-08-15 10:37 friedelwolff * storage/xliff.py: Don't set the approved attribute unnecessarily. Before this could add an approved=no where there was nothing before (defaulting to no according to the XLIFF specification) 2008-08-14 23:36 sumpfralle * search/indexer/CommonIndexer.py, search/indexer/test_indexers.py: add support for multiple terms in a field (given as a list) 2008-08-14 23:31 sumpfralle * search/indexer/CommonIndexer.py, search/indexer/PyLuceneIndexer.py, search/indexer/PyLuceneIndexer1.py, search/indexer/XapianIndexer.py, search/indexer/test_indexers.py: add support for unicode terms and a corresponding test 2008-08-14 14:33 friedelwolff * TESTING: Some notes for testing. See bug 475 for the inspiration. 2008-08-14 14:28 friedelwolff * CREDITS: Expand Alexander Dupuy's activities 2008-08-14 14:10 friedelwolff * filters/checks.py: [Contributed by Alexander Dupuy] Fix runtests() for testing from __main__. 2008-08-14 14:05 friedelwolff * filters/checks.py: [Contributed by Alexander Dupuy] Be more lenient in the simplecaps test. This fixes the currently failing test. 2008-08-14 14:02 friedelwolff * filters/checks.py, filters/test_checks.py: [Contributed by Alexder Dupuy] Support omitting format specifiers in plural form translations. Check bug 475. 2008-08-14 13:57 friedelwolff * filters/checks.py: Only support unicode.isupper since input must be unicode strings 2008-08-12 11:36 friedelwolff * filters/checks.py: [Contributed by Alexader Dupuy] Return the correct filterresult if a test failed without filtermessages (when no FilterFailure) is raised). See bug 345 for more detail. 2008-08-12 11:33 friedelwolff * filters/test_checks.py: Augment the spellcheck test to more deliberately show what we want. The test broke if you happened to have 'Mozilla' in your personal wordlist for aspell for Afrikaans where you execute the tests. 2008-08-08 15:55 dwaynebailey * storage/wordfast.py: Python <2.5 needs us to be more specific about the dialect options. The missing requirements are now added which should prevent failure in factory.py. 2008-08-06 13:33 dwaynebailey * storage/wordfast.py: Add a Wordfast CSV dialect. This solves bug #472. * Wordfast now correctly handles the roundtripping of quoted characters. * It also sorts out a newline issue. 2008-08-05 10:05 dwaynebailey * tests/xliff_conformance/test_xliff_conformance.py: Ensure we can run the test from outside of the test directory 2008-08-04 18:09 dwaynebailey * storage/properties.py: Update reference to .properties specification 2008-08-04 18:06 dwaynebailey * storage/dtd.py: Check the DTD file for validity by parsing it returing __str__ 2008-08-04 10:35 winterstream * tests/xliff_conformance/test_xliff_conformance.py: Schema validation is now done with lxml's facilities instead of by invoking xmllint. 2008-08-04 10:26 winterstream * storage/xliff.py: Modified the XLIFF output to conform to the XLIFF 1.1 schema. 2008-08-04 10:02 dwaynebailey * storage/lisa.py, storage/xliff.py: Fix FutureWarning error by using: if elem is not None 2008-08-04 09:14 winterstream * tests/xliff_conformance/af-pootle.po, tests/xliff_conformance/test_xliff_conformance.py: Added a test to check the output of po2xliff. Sadly, it currently fails, which means that we're outputtting invalid XLIFF files. 2008-08-04 09:02 winterstream * tests, tests/xliff_conformance, tests/xliff_conformance/en-US.sdf, tests/xliff_conformance/test_xliff_conformance.py, tests/xliff_conformance/xliff-core-1.1.xsd: Added a basic functional test to ensure that our tools produce valid XLIFF 1.1 files. Currently, there is only one test, which uses oo2xliff to convert an OpenOffice.org SDF file to a set of XLIFF files. xmllint then checks each of these files against the XLIFF 1.1 Schema. 2008-08-04 08:57 dwaynebailey * tools/podebug.py: Create class methods that will return available rewrite functions and ignore rules. Adapt optparse section to use these functions. 2008-08-04 08:54 dwaynebailey * tools/podebug.py: Add Unicode rewrite style. This converts all plain ASCII chars to characters in the Unicode range that look the same as the ASCII. This would allow a translator or programmer to build a test translation that can validate the use of Unicode characters in translated strings. 2008-07-24 20:11 friedelwolff * lang/data.py: [Contributed by Suresh Chandrasekharan] Move the language matching code from Pootle to the toolkit 2008-07-23 17:09 sumpfralle * storage/versioncontrol/svn.py: [Contributed by Daniel Schafer] add versioned svn property "translate:author" 2008-07-21 00:35 sumpfralle * storage/versioncontrol/__init__.py, storage/versioncontrol/bzr.py, storage/versioncontrol/cvs.py, storage/versioncontrol/darcs.py, storage/versioncontrol/git.py, storage/versioncontrol/git_old.py, storage/versioncontrol/hg.py, storage/versioncontrol/svn.py: add support for the 'author' tag to various revision control systems (contributed by Miklos Vajna) 2008-07-18 12:40 winterstream * storage/statsdb.py: Added a default field to emptystats() 2008-07-17 17:46 winterstream * storage/test_statsdb.py: Updated the statsdb test to reflect the change in the database layout 2008-07-17 17:45 winterstream * storage/statsdb.py: Added these functions to allow users of the stats code to use default values for the various stats functions. This is useful if an error is raised when 2008-07-17 17:44 winterstream * storage/statsdb.py: Removed the HORRIBLE hack whereby one could pass parameters to the stats code in order to get it not to throw an exception. I ought to have my coding licence revoked. But at least until then, I can try to restore my karma by restoring the code to a better state. So anyway, if you call one of the stats functions on a non-existant or illegal file, it's your responsibility to deal with the exceptions that might pop out. 2008-07-17 17:43 winterstream * storage/statsdb.py: Simplified the stats handling code related to suggestion files. If a user modifies a suggestion file without using our tools, she simply has to ask the toolkit to recompute the stats (and this will only affect the has-suggestion test). If she doesn't the toolkit will have out-of-date suggestion stats, but that's okay. 2008-07-17 17:43 winterstream * storage/statsdb.py: Instead of storing a Python tuple in the database, simply store the data into two separate columns. 2008-07-17 17:12 dwaynebailey * tools/podebug.py: Add Mock Swedish rewrite style 2008-07-17 16:57 dwaynebailey * storage/factory.py, storage/mo.py, storage/pocommon.py, storage/tbx.py, storage/tmx.py, storage/wordfast.py, storage/xliff.py: Implent a function to return all known multilingual formats, their extensions and mimetypes Add names to formats (to be localised sometime in the future) Add missing extensions and mimetypes Remove knowledge for formats from virtaal 2008-07-17 14:53 friedelwolff * storage/base.py: Keep a reference in unit._store to the containing translation store. Provide accessors in the unit class that enables us to access the source and target language of the containing document. 2008-07-17 14:21 friedelwolff * storage/cpo.py: Provide access to the libgettextpo version and use this to enable workarounds for bugs related to notes in certain libgettextpo versions. [Contributed by George Yoshikazu Kussumoto as part of GSoC2008] 2008-07-17 13:01 friedelwolff * storage/lisa.py: Inherit base.py's addunit() instead of duplicating some of it here 2008-07-17 12:58 friedelwolff * storage/lisa.py: Reword parameter in setsource to text to align more with settarget() 2008-07-17 08:42 sumpfralle * storage/versioncontrol/bzr.py: fix typo in bzr module 2008-07-17 08:32 friedelwolff * storage/base.py: Initialise .sourcelanguage and .targetlanguage to None. They are mostly not yet used anyway. 2008-07-17 08:09 friedelwolff * convert/oo2po.py, convert/oo2xliff.py: Set the source and target language of the output files 2008-07-17 08:07 friedelwolff * convert/oo2xliff.py: Merge in changes in handling of the input filename from oo2po.py 2008-07-17 08:02 friedelwolff * convert/oo2xliff.py: Merge in changes in error messages from oo2po.py 2008-07-17 07:58 friedelwolff * tools/pogrep.py: Typo in variable names 2008-07-17 07:55 friedelwolff * tools/pogrep.py: Set the source and target language of the filtered file for the sake of formats where this matters. 2008-07-17 07:51 friedelwolff * filters/pofilter.py: Set the source and target language of the filtered file for the sake of formats where this matters. 2008-07-17 07:44 friedelwolff * storage/base.py, storage/lisa.py: Move .setsourcelanguage() and .settargetlanguage() from lisa.py to base.py 2008-07-17 07:41 friedelwolff * storage/lisa.py: Add a parameter to .addunit() to indicate if the unit needs to be added to the XML structure 2008-07-17 07:40 friedelwolff * storage/lisa.py: +Helper fucntion to get the xml:lang attribute of an lxml node 2008-07-17 07:38 friedelwolff * storage/test_mo.py: Rewrite file access for proper functioning with py.test. +More debugging information. 2008-07-14 09:33 winterstream * storage/base.py, storage/csvl10n.py, storage/mo.py, storage/pocommon.py, storage/qm.py, storage/tbx.py, storage/tmx.py, storage/wordfast.py, storage/xliff.py: Added mimetype and file extension information for the stores. 2008-07-11 17:31 friedelwolff * CREDITS: Credit Alexander Dupuy, Danschafer and Geoffrey Hutchison 2008-07-11 17:16 danschafer * convert/test_html2po.py, storage/html.py: Modifications to html.py and test_html2po.py related to PHP parsing; see https://bugzilla.mozilla.org/show_bug.cgi?id=437342 2008-07-04 03:37 sumpfralle * storage/versioncontrol/git.py, storage/versioncontrol/git_old.py: for git v1.5.2 (and below): chdir to the directory of the target file before executing git 2008-07-04 02:16 sumpfralle * storage/versioncontrol/__init__.py: catch OSError (e.g. executable not found) when using "subprocess" for execution - this simplifies error handling for all RCS modules 2008-07-04 02:00 sumpfralle * storage/versioncontrol/__init__.py, storage/versioncontrol/git.py, storage/versioncontrol/git_old.py: add "git_old" (unfinished) to the repository add version checks for the two available git modules 2008-07-04 01:37 sumpfralle * storage/versioncontrol/bzr.py, storage/versioncontrol/cvs.py, storage/versioncontrol/darcs.py, storage/versioncontrol/git.py, storage/versioncontrol/hg.py, storage/versioncontrol/svn.py: fix misleading variable name 2008-07-04 01:32 sumpfralle * storage/versioncontrol/__init__.py, storage/versioncontrol/bzr.py, storage/versioncontrol/cvs.py, storage/versioncontrol/darcs.py, storage/versioncontrol/git.py, storage/versioncontrol/hg.py, storage/versioncontrol/svn.py: add "is_available" function to all version control modules (this allows separate modules for different versions of an RCS client) This change should also speed up version control handling in general, since version control systems that are not installed (-> no local client available) are ignored after initialization. 2008-07-04 01:04 sumpfralle * storage/versioncontrol/__init__.py: small improvements of the version control systems handling: - fix improper except statement (exceptions tuple instead of a list) - avoid lists as default parameter values - add function for collecting the list of available version control systems - print the list of available VCS if __init__.py is executed without parameters 2008-07-02 23:48 sumpfralle * storage/versioncontrol/git.py: fix git support for v1.5.3 (or higher) by setting "--work-tree" this patch was contributed by Miklos Vajna 2008-07-01 20:08 winterstream * storage/statsdb.py: Improved the mod_info storage scheme to store a tuple of the mtime and size of a file instead of the truly ugly integer scheme that I cooked up in what could only have been the result of too many hours of coding (and hence the concomitant loss of reason). 2008-07-01 20:06 winterstream * storage/statsdb.py: _getfileid of a directory will raise an AssertionError. We deal with this by adding AssertionError to the list of exceptions caught in _getfileid. 2008-06-24 13:11 winterstream * storage/test_mo.py: Added a test to ensure that the output of msgfmt and pocompile are identical for files of 1, 2, 3, 4 and 5 units. 2008-06-23 12:49 winterstream * storage/statsdb.py: Modified get_mod_info to raise an exception when it is passed a directory. 2008-06-23 12:47 winterstream * storage/base.py, storage/pypo.py, storage/statsdb.py: Added some robustness to the stasistics code to handle corrupt files. The boolean parameter errors_return_empty can be passed to a number of the methods in Statdb; if errors_return_empty is true, then they will not raise exceptions, but instead return empty or zero values. Created a ParseError exception which should be raised by parsers which run into parsing problems. So far, only pypo.py does this (and in a somewhat rudimentary way). 2008-06-21 23:14 sumpfralle * storage/test_base.py: revert r7643 - the comment was obsolete due to the previous commit r7635 sorry for the noise! 2008-06-21 11:18 sumpfralle * storage/test_base.py: test_tmx: add a comment regarding a failed test 2008-06-21 10:50 sumpfralle * convert/po2html.py: po2html: add comment for failed test 2008-06-21 10:17 sumpfralle * convert/test_dtd2po.py: added comment to a failed test 2008-06-21 09:43 sumpfralle * search/indexer/XapianIndexer.py, search/indexer/test_indexers.py: remove references to obsolete xapian (v0.x) interface 2008-06-21 09:42 sumpfralle * search/indexer/__init__.py: fix unsafe use of a default argument 2008-06-20 23:13 sumpfralle * misc/zipfileext.py: fix test for python2.5 2008-06-20 22:43 sumpfralle * storage/test_directory.py: fix tests: directory 2008-06-20 22:30 sumpfralle * storage/cpo.py: add comments add a note regarding a difference between the pypo and the cpo implementation 2008-06-20 18:32 friedelwolff * storage/test_tmx.py: Leave the target out entirely to satisfy the expectations of test_base.py. This fixes the last broken test. 2008-06-20 18:30 friedelwolff * storage/test_tmx.py: Leave the target segment empty to satisfy the expectations of test_base.py. This fixes a broken test. 2008-06-20 17:38 walter_l * storage/mo.py: Attempt to fix bug #326 based on the gettext source. 2008-06-20 16:05 sumpfralle * storage/cpo.py, storage/test_po.py: ignore notes without non-space characters (Closes: #417) 2008-06-20 15:54 sumpfralle * storage/cpo.py: fixed: the first character of each note was cutted - this should only happen for a space character 2008-06-20 14:18 friedelwolff * filters/checks.py: Fix an issue introduced in commit 7623 - don't raise FilterFailure with an empty list of messages. 2008-06-20 14:15 sumpfralle * storage/versioncontrol/git.py: add comment for git version requirement (Closes: #347) 2008-06-20 13:47 friedelwolff * filters/checks.py: [Contributed by Nicolas François] Test all plural forms of a plural unit, even if some errors occurred in the first form. Combine all messages into one FilterFailure which is propagated up. This completely fixes bug 345. 2008-06-20 13:01 friedelwolff * filters/checks.py: [Contributed by Nicolas François] Test all plural forms of a plural unit, even if some errors occurred in the first form. Combine all messages into one FilterFailure which is propagated up. This completely fixes bug 345. 2008-06-20 12:14 friedelwolff * filters/checks.py: Convert each plural form to unicode before passing to individual tests. This fixes the worst part of bug 122. More to come. 2008-06-20 11:30 walter_l * storage/poheader.py, storage/test_poheader.py: Moved translate.storage.poheader.poheader.tzstring() out of its parent class to translate.storage.poheader.tzstring() (directly to the poheader sub-module). The function does not use the class or an instance, anyway. 2008-06-20 09:21 walter_l * filters/checks.py, filters/test_checks.py: Replaced usage of exception.message with exception.args[0], which is equivalent within this commit's context. This fixes bug 424. 2008-06-19 23:28 sumpfralle * search/indexer/test_indexers.py: indexer: adapted tests for new directory layout 2008-06-19 20:52 sumpfralle * search/indexer/CommonIndexer.py, search/indexer/PyLuceneIndexer.py, search/indexer/XapianIndexer.py, search/indexer/__init__.py: use different sub-directories for databases of different indexing engines rename the indexing directory from ".poindex-PROJECT-LANGUAGE" to ".translation_index" note for UPGRADING: you have to remove old indexing directories manually these changes are meant to ease migrations from one indexing engine to another and to allow different indexing engines to be on the same server 2008-06-18 14:12 winterstream * filters/checks.py: Moved the results_cache clearing code to the appropriate method. It should afterall be in the run_filters method of the base class. 2008-06-14 09:20 friedelwolff * search/indexer/__init__.py: Merge new indexing work from translate-search-indexer-generic-merging branch. A total rewrite of __init__ unrelated to the previous implementation. 2008-06-14 09:18 friedelwolff * search/indexer/__init__.py: Remove old indexing code inherited from jToolkit. 2008-06-14 09:15 friedelwolff * search/indexer/XapianIndexer.py: Merge new indexing work from translate-search-indexer-generic-merging branch. Trying to maintain the version history by copying. 2008-06-14 09:15 friedelwolff * search/indexer/test_indexers.py: Merge new indexing work from translate-search-indexer-generic-merging branch. Trying to maintain the version history by copying. 2008-06-14 09:14 friedelwolff * search/indexer/PyLuceneIndexer.py: Merge new indexing work from translate-search-indexer-generic-merging branch. Trying to maintain the version history by copying. 2008-06-14 09:14 friedelwolff * search/indexer/PyLuceneIndexer1.py: Merge new indexing work from translate-search-indexer-generic-merging branch. Trying to maintain the version history by copying. 2008-06-14 09:13 friedelwolff * search/indexer/CommonIndexer.py: Merge new indexing work from translate-search-indexer-generic-merging branch. Trying to maintain the version history by copying. 2008-06-12 13:09 friedelwolff * __version__.py: Version 1.2-alpha3 2008-06-12 11:12 friedelwolff * lang/common.py: Ensure that the sentence iterator works if passed None (possible with some translation formats) 2008-06-12 10:46 friedelwolff * storage/tmx.py: Implement .copy() for the TMX translation unit. This fixes bug 414. 2008-06-12 09:34 friedelwolff * storage/pypo.py: While we don't have an encoding for processing a header, let's decode it as ASCII while ignoring errors. We redo it later properly, so this is just to get the initial encoding. 2008-06-12 09:32 friedelwolff * storage/test_poheader.py: Remove failing test for Cordoba, Argentina - probably a dailight savings issue, or something. Probably not so interesting while the others all pass. 2008-06-11 13:29 friedelwolff * README: Explain Windows installation better 2008-06-11 10:28 friedelwolff * misc/_csv.c, misc/csv.py, storage/csvl10n.py: Remove old CSV modules that are part of Python since version 2.3 (the minimum we support). Adapt improts. 2008-06-10 08:46 friedelwolff * lang/common.py: Trim some docstrings to sane widths 2008-06-09 16:44 winterstream * filters/checks.py: A number of methods in UnitChecker were called very, very frequently and this contributed a lot to the running time of checks. Now, the results of a number of these methods are memoized (by the decorator cache_results). The cached results are cleared every time that TranslationChecker.run_test is called. On a small OpenOffice project, this has sliced the computation time of stats quite a lot and it should never result in a slow-down. Note that the decorator is deliberately specialized to accept only single argument methods. This is to avoid the runtime cost of unpacking arbitrary numbers of parameters. 2008-06-09 12:35 winterstream * filters/decoration.py, filters/test_checks.py: An underscore is a valid variable name character. filtermarkedvariables did not allow for this. The current code would work for variable names with underscores, if these variables were the last tokens in the string; the unit tests happened only to have tested this case, which made them pass. The fix is simple: simply add a check for the underscore character. Also added unit tests to cover this bug. 2008-06-09 12:25 winterstream * storage/pypo.py: Read the first unit from a po file without decoding the characters; that is, everything is read into a Python str type. Then check to see if there is a header; if there is, then try to determine the file encoding from that and set the file encoding. Otherwise, leave the file encoding at the default (UTF-8). Then, decode the file contents and restart the parsing. Originally, the parser would assume a UTF-8 encoding until it hit a Content-Type declaration which specified the file encoding. Only then would it change the decoding scheme. This worked fine for non-UTF-8 files which contained only ASCII characters in the header (which appeared before the Content-Type declaration), but raised an exception if any non-ASCII characters appeared there, since a UTF decoding error occured. This patch both simplifies the original code and fixed this bug. 2008-06-09 12:21 winterstream * storage/pypo.py: Po parsing now works directly with an array of lines. The previous version split the entire file contents into an array of lines, only to join subarrays into strings, which it would pass to the unit parser, which in its turn would split the strings into arrays of lines. This inefficiency was remedied by simply factoring out the line array handling code of the unit parsing code and calling that directly on the main array of lines (from the file parsing method). 2008-06-06 14:25 dwaynebailey * filters/checks.py, filters/test_checks.py: Make all error messages Unicode. Adapt test and remove function that convert Unicode error messages 2008-06-06 09:24 winterstream * storage/test_statsdb.py: Added some tests for StatsDB. 2008-06-06 09:23 winterstream * storage/statsdb.py: StatsDb._getstoredfileid could return None. This was a problem in methods which used _getstoredfileid, since some expected the return value not to be None. It turns out that there is no use for a None return value. So if there is no stored fileid, then we simply generate it with cachestore. Since we're not just returning stored fileids, _getstoredfileid was renamed to _getfileid. Naturally, those methods that handled the case where None was returned could have that code removed. 2008-06-06 09:23 winterstream * storage/statsdb.py: Originally, statsdb compared the mtime of a file to the mtime it had stored in the DB to see whether the file changed. On some file systems, mtime only has one second resolution, which means that if a file changes quickly enough after the statsdb has stored its mtime, the statsdb won't realize that the file has changed, and it will therefore supply incorrect stats about the file. In order for this to be ameliorated, we now also take the file size into account and we store a value which contains mtime bits as well as file size bits into the database. The only files which can now slip past the system are files which are modified soon enough and which retain their sizes. And honestly, such files, if they are valid translation files, are so unlikely to contain significant changes which maintain the file size that they can be ignored. 2008-06-06 09:22 winterstream * storage/poheader.py: Change poheader to a new-style class. 2008-06-05 17:10 friedelwolff * convert/test_ts2po.py: Add new commandline option 2008-06-05 16:18 friedelwolff * storage/poheader.py: Fix dictionary used as function argument. This fixes the broken test in test_pomerge. 2008-06-05 16:15 friedelwolff * tools/poterminology.py: Some small, mostly cosmetic changes 2008-06-05 14:13 friedelwolff * convert/ts2po.py: Handle duplicates properly [contributed by Geoffrey Hutchison] 2008-06-05 08:18 dwaynebailey * filters/test_checks.py: Add ability to validate that is we fail or fail_serious that the error message is correct. If the message is not correct we will still fail, also added tests to exercise this new path in both type. 2008-06-04 18:56 dwaynebailey * filters/checks.py, filters/test_checks.py: Don't spellcheck notranslatewords 2008-06-04 11:43 friedelwolff * filters/checks.py, filters/spelling.py: Improve the error checking in the case of absent checkers or absent dictionaries for specific languages 2008-06-03 09:34 walter_l * storage/cpo.py: One of two commits for bug 350's fix (other commit will be for Pootle). Use of the tempfile module has replaced the use of os.tmpnam(), which is apparently insecure. 2008-06-02 13:44 friedelwolff * storage/poheader.py: When merging headers in .mergeheaders(), take into account that the Plural-Forms header might not be there 2008-05-30 18:36 dwaynebailey * filters/checks.py: Initialise lang data first 2008-05-30 18:35 dwaynebailey * filters/checks.py: Fix brokeness 2008-05-30 18:32 dwaynebailey * filters/checks.py: Cleanup CheckerConfig initialisation by creating a method to initialise paramaters that can be set to a default value if none is supplied 2008-05-30 18:30 dwaynebailey * filters/checks.py: Cleanup CheckerConfig initialisation by creating a method to initialise lists 2008-05-26 20:33 dwaynebailey * misc/wStringIO.py: Fix indentation 2008-05-26 20:32 dwaynebailey * misc/test_zipfileext.py: Fix indentation 2008-05-26 20:29 dwaynebailey * misc/progressbar.py: Fix indentation 2008-05-26 20:25 dwaynebailey * misc/test_quote.py: Fix indentation 2008-05-26 20:18 dwaynebailey * misc/xmlwrapper.py: Fix whitespace indentation 2008-05-26 20:14 dwaynebailey * misc/quote.py: Fix some broken whitespace 2008-05-26 20:11 dwaynebailey * misc/optrecurse.py: Fix remaining whitespace issues 2008-05-26 16:41 dwaynebailey * filters/helpers.py: Remove isalnum_u - unused 2008-05-26 10:52 friedelwolff * search/match.py: Small cleanups and comments. A small improvement for the case where we already have MAX_CANDIDATES candidates (likely in some cases with pot2po where MAX_CANDIDATES==1, for example). 2008-05-26 10:42 friedelwolff * search/match.py: Replace the code that searches for the starting position of the search range with a binary search. Thisgives a noticable performance increase for a large TM. 2008-05-26 09:54 winterstream * storage/statsdb.py: Pootle requires a way to determine precomputed property values PER UNIT (as opposed to StatsCache.filestats which supplies only sets of unit indices which correspond to given properties). This is necessary for example, if one wants to compute the source word count of a unit. For this reason, StatsCache.unitstats was added to supply arrays which map unit indices to property values. This may therefore return dictionaries such as { 'sourcewordcount': [4, 1, 10, 20], 'targetwordcount': [0, 0, 0, 0] } indicating that the source word count of unit 0 is 4, unit 1 is 1, etc. and that the target word counts for all units are 0. 2008-05-26 07:54 friedelwolff * search/lshtein.py: Remove assert - gives small performance improvement, and we might end up doing these things with decorators later 2008-05-23 13:33 dwaynebailey * filters/checks.py, filters/helpers.py, filters/prefilters.py, filters/test_checks.py: Allow proper filtering of accelerators for test such as spell checking Adapted filteraccelerators to take an option paramater containing valid accelerators Changed multifilter to allow it to take other arguments that it would pass to the filter function Bug 395 has been raised to audit the use of filteraccelerators and perhaps change its behaviour to simply remove all accelerators not just valid accelerators. 2008-05-22 07:51 dwaynebailey * filters/checks.py, filters/decoration.py, filters/prefilters.py, filters/test_checks.py, filters/test_decoration.py, lang/common.py, lang/fi.py: Fixes bug 289 Adds the concept of an validaccel list and checks found accelerators against this list. By default validaccel is None in which case the old codepath is followed, languages must override this setting to get language specific lists of acceptable characters. 2008-05-15 15:59 friedelwolff * misc/dictutils.py, misc/optrecurse.py, misc/quote.py, misc/xmlwrapper.py: Change spacing convention on inhouse files to be four spaces instead of two 2008-05-15 15:23 friedelwolff * storage/pypo.py: Remove possibility of joining with linebreaks in unquotefrompo(). Adapt last user to not use it. 2008-05-14 08:50 friedelwolff * filters/test_checks.py: Test some Vietnamese quoting issues that we didn't handle before 2008-05-14 08:45 friedelwolff * lang/fr.py: Implement punctuation translation for 'single' and `weird single' quoting -> French guillemets (« ») 2008-05-14 08:42 friedelwolff * lang/test_fr.py: Lots of more tests for French quoting, espacially 'single' and `weird single' quoting 2008-05-14 08:37 friedelwolff * lang/test_vi.py: Test Vietnamese quoting more by including 'single' and `weird single' quoting in the tests 2008-05-12 22:42 dwaynebailey * filters/prefilters.py, filters/test_prefilters.py: Add tests for removekdecomments and assert input is unicode 2008-05-12 10:18 friedelwolff * filters/prefilters.py: Simplify filterwordswithpunctuation() - this fixes the failing unit test 2008-05-12 09:06 friedelwolff * storage/ts.py: Mention that the the currently supported .ts format is not the newest 2008-05-12 09:04 friedelwolff * lang/test_vi.py: Update tests to new punctuation spacing rules as explained by Clytie Siddall 2008-05-12 09:02 friedelwolff * lang/af.py, lang/am.py, lang/ar.py, lang/el.py, lang/fa.py, lang/fr.py, lang/he.py, lang/hy.py, lang/ja.py, lang/km.py, lang/ko.py, lang/ml.py, lang/ur.py, lang/vi.py, lang/zh.py: Removed unnecessary declerations of code, fullname, nplurals and pluralequation in the language modules. Also remove some unused imports. 2008-05-11 23:53 dwaynebailey * filters/decoration.py, filters/test_decoration.py: Add test for isvalidaccelerator 2008-05-11 23:36 dwaynebailey * filters/test_decoration.py: Add tests for getfunction() 2008-05-11 23:28 dwaynebailey * filters/test_decoration.py: Test getnumbers function 2008-05-11 23:28 dwaynebailey * filters/test_decoration.py: Test all sorts of spaces 2008-05-11 22:43 dwaynebailey * filters/checks.py: Spell checking is only in unicode because of earlier forceunicode so drop unicode checking and adapt message creation to be all unicode. 2008-05-11 20:08 dwaynebailey * filters/checks.py: Remove unicode manipulation from notranslatewords check. All tests are forced to unicode by forceunicode function so no asserts have been added. 2008-05-11 20:03 dwaynebailey * filters/autocorrect.py, filters/test_autocorrect.py: Remove old correct() which only did Unicode -> Str manipulations. Rename simplecorrect() -> correct() and only accept unicode strings. Change tests. 2008-05-11 19:57 dwaynebailey * filters/prefilters.py, filters/test_prefilters.py: Make filterwordwithpunctuation only work with Unicode strings 2008-05-09 11:07 friedelwolff * lang/vi.py: Rewrite punctuation transformation to not space '?', reuse the new fr.py code correctly 2008-05-09 11:04 friedelwolff * lang/fr.py: Factor out the guillemets transformation into a separate function for better reuse 2008-05-09 10:45 friedelwolff * lang/common.py, lang/factory.py: Move to using objects instantiated as singletons (per language) 2008-05-09 09:58 friedelwolff * storage/statsdb.py: Mark the _caches class variable as private 2008-05-09 08:10 friedelwolff * filters/decoration.py: Simplify getnumbers() to only work with unicode 2008-05-05 14:19 friedelwolff * filters/test_checks.py: Add failing test for endpunc in Vietnamese 2008-05-05 14:18 friedelwolff * filters/test_checks.py: Add a failing test for test_singlequoting 2008-05-05 14:01 friedelwolff * filters/checks.py: Add some TODO notes to improve the acronyms test 2008-05-02 09:06 friedelwolff * storage/tmx.py: Implement .istranslatable() 2008-05-02 09:05 friedelwolff * storage/tmx.py: Implement .getid() 2008-05-02 08:04 friedelwolff * convert/pot2po.py: Test that the inputpot actually has units before using them 2008-05-02 08:03 friedelwolff * convert/pot2po.py: Refactor code slightly to make direct use of previously created stores possible 2008-05-02 07:14 friedelwolff * storage/statsdb.py: Fix typo in comment 2008-04-22 14:53 friedelwolff * __version__.py: 1.2-alpha2 2008-04-22 14:51 friedelwolff * storage/oo.py: Add rules for handling and found in OOo 3.0 translations 2008-04-21 11:43 friedelwolff * storage/wordfast.py: Fix epydoc type statement 2008-04-18 08:37 dwaynebailey * __version__.py: Well we're not really beta ready so lets be a little more honest and make this alpha. 2008-04-18 08:16 dwaynebailey * __version__.py: Up the version number for a release. 2008-04-17 16:02 friedelwolff * storage/mo.py: Fix wrongly encoded character in comments 2008-04-14 07:37 dwaynebailey * storage/rc.py: Manage -1 named enties properly by using the source text with spaces escaped with underscore 2008-04-14 07:35 dwaynebailey * storage/rc.py: Handle: * space at end of STRINGTABLE entities * A L"string" entry 2008-04-14 07:32 dwaynebailey * convert/po2rc.py: Add --lang and --sublang options to deal with the LANGUAGE entry 2008-04-14 07:29 dwaynebailey * convert/rc2po.py: Add 'nls' as an input format 2008-04-14 06:15 friedelwolff * storage/poheader.py: Ensure that Content-Type and Content-Transfer-Encoding is always set to sane values after a call to updateheader() 2008-04-10 07:03 dwaynebailey * convert/dtd2po.py, convert/html2po.py, convert/odf2po.py, convert/oo2po.py, convert/oo2xliff.py, convert/po2dtd.py, convert/po2html.py, convert/poreplace.py, convert/test_convert.py, convert/test_dtd2po.py, convert/test_html2po.py, convert/test_moz2po.py, convert/test_mozfunny2prop.py, convert/test_odf2po.py, convert/test_oo2po.py, convert/test_php2po.py, convert/test_po2dtd.py, convert/test_po2moz.py, convert/test_pot2po.py, convert/test_prop2po.py, convert/ts2po.py, convert/txt2po.py, convert/xliff2po.py, search/lshtein.py, search/match.py, storage/csvl10n.py, storage/dtd.py, storage/lisa.py, storage/poxliff.py, storage/pypo.py, storage/test_monolingual.py, storage/test_po.py, storage/test_pypo.py, storage/test_zipfile.py, storage/ts.py, tools/test_pocount.py, tools/test_pomerge.py: Fix indentation. All except misc/ now follow 4 space convention. 2008-04-10 06:57 dwaynebailey * convert/test_po2ts.py: Add test for --context option 2008-04-09 12:58 dwaynebailey * convert/roundtrip-OOo: Actually download the OOo SDF files in the roundtrip test. 2008-04-06 19:34 dwaynebailey * convert/rc2po.py: Add --charset option to rc2po. Defaults to cp1252, the default codepage for English. 2008-04-06 19:31 dwaynebailey * convert/po2rc.py: Add --charset output option to allow user to choose the output encoding, defaults to utf-8 2008-04-06 19:27 dwaynebailey * convert/po2rc.py, storage/rc.py: Store the actual match object with a unit Convert matches by replacing the value in the match with the translation, then replacing the actual match in the original text with the new string. Implemnt #pragma to ensure that the output rc can be in UTF-8 2008-04-06 19:21 dwaynebailey * storage/rc.py: After second language section drop all remaining blocks. 2008-04-06 19:19 dwaynebailey * storage/rc.py: Catch comments within DIALOG item names. 2008-04-06 19:17 dwaynebailey * storage/rc.py: Add escping for Python to RC conversion. 2008-04-04 04:33 dwaynebailey * convert/po2rc.py: Properly instantiate the rc store. 2008-04-04 04:32 dwaynebailey * convert/test_oo2po.py: Test for roundtripping OOo whitespace. Disabled for now because of some oo class issues. 2008-04-03 06:58 friedelwolff * tools/poterminology, tools/poterminology.py: [Contributed by Alexander Dupuy] poterminology: a terminology extraction tool with several options 2008-04-02 15:21 dwaynebailey * __init__.py: Fix hyperlink 2008-03-28 14:18 dwaynebailey * convert/test_po2dtd.py: Add test for bug 351 2008-03-28 12:49 dwaynebailey * convert/po2rc, convert/po2rc.py, convert/rc2po, convert/rc2po.py, storage/rc.py: Add rc2po implementation: * rc2po works well * po2rc is not complete (i.e. it doesn't work at all) 2008-03-28 12:01 dwaynebailey * convert/po2ini.py: Remove unused import 2008-03-28 03:10 sumpfralle * storage/versioncontrol/__init__.py, storage/versioncontrol/hg.py: added mercurial (hg) versioncontrol support (contributed by Miklos Vajna) 2008-03-27 13:04 friedelwolff * CREDITS: Credit Torsten Martinsen. Remove reference to cvs. 2008-03-27 13:00 friedelwolff * convert/po2ts.py: [Contributed by Torsten Martinsen] Add --context parameter to specify explicit context instead of obtaining it from the location (#:) comments. See bug 294. 2008-03-27 07:18 friedelwolff * README: Rewrite bug reporting section, pointing to the wiki 2008-03-26 09:52 friedelwolff * ChangeLog: Update Changelog before release of 1.1.1 2008-03-18 21:26 friedelwolff * lang/data.py: Correct plural information for Hungarian 2008-03-18 14:27 friedelwolff * __version__.py: Version 1.1.1 2008-03-18 12:01 friedelwolff * search/indexer/__init__.py: Disable support for lucene 2.3 while we don't yet support it. 2008-03-17 07:44 dwaynebailey * tools/podebug.py: Break "ignore" rules into application soecific rules. Add all infrastructure to allow a user to specify which ignore rules to apply. Implement ignore rules for Mozilla. 2008-03-14 16:57 dwaynebailey * tools/podebug.py: Fix getattr to work when we don't have any rewritestyle. 2008-03-14 15:20 dwaynebailey * tools/podebug.py: Cleaner use of getattr 2008-03-14 13:31 dwaynebailey * tools/podebug.py: Add a 'blank' rewrite style. This will simply remove the translations from a PO file. 2008-03-14 12:52 friedelwolff * lang/test_ar.py: Test Arabic (ar) punctuation translation and sentence segmentation 2008-03-14 12:50 friedelwolff * lang/test_am.py: Test Amharic (am) punctuation translation and sentence segmentation 2008-03-14 12:48 friedelwolff * lang/ml.py: Basic support for Malayalam (disabling case-related tests) 2008-03-14 12:38 friedelwolff * lang/ur.py: Update copyright date and remove comments inherited from fa.py 2008-03-13 14:21 friedelwolff * lang/ur.py: Basic support for Urdu (punctuation) 2008-03-13 12:39 friedelwolff * storage/base.py: Simplify TranslationStore.isempty() - hopefully a small performance improvement 2008-03-13 09:39 friedelwolff * setup.py: Install pocommentclean 2008-03-13 08:56 friedelwolff * storage/cpo.py: Temporarily disable freeing the memory - this still causes segmentation faults. The current code will leak memory, but mostly works and leaves things available for somebody to finish this development work. 2008-03-13 08:06 larskr * search/indexer/__init__.py: change the version check from "PYLUCENE_VERSION" to "VERSION" (tested for v1.9, v.2.2 and v.2.3) support for PyLucene v2.3 added (the module name changed) print warning and skip loading for PyLucene v2.3.0/1 - these versions cause a segmentation fault 2008-03-12 21:12 dwaynebailey * filters/pofilter.py: Improve doc string 2008-03-12 21:07 dwaynebailey * tools/pocompile.py, tools/poconflicts.py, tools/pocount.py, tools/podebug.py, tools/pogrep.py, tools/pomerge.py, tools/porestructure.py, tools/posegment.py, tools/poswap.py: Update doc strings for better manpage creation. Added wiki URLs for all docs. 2008-03-12 20:53 friedelwolff * CREDITS: Credit Lars Kruse 2008-03-12 20:42 dwaynebailey * misc/optrecurse.py: Fixe a typo in the first (commented line) of the generated manpages, eliminates some error message from generated documentation. Patch contributed by Nicolas FRANCOIS. 2008-03-12 13:36 dwaynebailey * convert/roundtrip-OOo: Add a roundtrip scrip that will download and test rountrip. If you see any lines following the analysis phase then there are issues that need to be fixed. No lines means we're A OK. 2008-03-12 13:34 dwaynebailey * convert/po2oo.py, convert/test_po2oo.py: Handle entities that are just spaces correctly. This should fix ' ' non-breaking space and friends. A test is included but it is disabled becuase of issues in pypo chain (isempty, isblank, isblankmsgstr) 2008-03-12 11:50 friedelwolff * storage/oo.py: Add '' as an exception for escaping in helpcontent 2008-03-12 11:47 friedelwolff * convert/test_po2oo.py: Test for special non-escaped string with '' from OOo300DEVm2, reported by Kevin Scannell 2008-03-11 11:27 dwaynebailey * convert/test_dtd2po.py, storage/dtd.py: Fix so that multiline entries can end on '[space]> if needed. 2008-03-05 14:13 friedelwolff * storage/lisa.py: Force writing out an XML decleration. This fixes bug 344 and restores compatibility with at least OmegaT and WF. 2008-03-03 13:18 friedelwolff * search/match.py: Revert r7040 that broke comments migration inpot2po. Add comment explaining the problem. 2008-02-29 13:08 friedelwolff * __version__.py: Version 1.1.1rc4 2008-02-29 08:31 friedelwolff * search/match.py: Add all notes to TM matches (this shows #. comments from the terminology project in the tooltips of Pootle terminology matches, for example) 2008-02-29 07:40 friedelwolff * convert/pot2po.py: Test that the template PO file actually has any units before trying to use them 2008-02-29 07:37 friedelwolff * search/indexer/__init__.py: Update code to work both with PyLucene 1 and 2. Contributed by Nicolas François and Lars Kruse. 2008-02-18 11:08 friedelwolff * storage/oo.py: Rather allow spaces only before the '/' in self closing tags 2008-02-18 10:10 friedelwolff * filters/checks.py: Attempt to continue as meaningfully as possible when lxml is not installed 2008-02-18 09:24 friedelwolff * __version__.py: Version 1.1.1rc3 2008-02-18 09:22 friedelwolff * storage/oo.py: Allow more liberal spacing around properties and closing tags for helpcontent tags 2008-02-18 09:21 friedelwolff * convert/oo2po.py: Improve error message on missing languages 2008-02-18 09:20 friedelwolff * convert/test_po2oo.py: Test escaping of helpcontent with unusual spacing around properties and closing tags 2008-02-18 07:43 friedelwolff * convert/po2oo.py, convert/xliff2oo.py: Don't add lines corresponding to untranslated units. (basically a revert of revision 6863) 2008-02-15 14:40 friedelwolff * storage/cpo.py: Reenable the code to free memory. Fix it by setting the references to None 2008-02-15 13:57 friedelwolff * storage/cpo.py, storage/pypo.py, storage/test_po.py: Don't take plurals into consideration for pounit.getid(). Gettext does not consider the plural to determine duplicates, only the msgid. For generation of .mo files, we might want to use the plural code to generate the entry for the hash table, but for now, it is commented out for conformance to duplicate detection in gettext. 2008-02-15 13:45 friedelwolff * storage/cpo.py: Ensure that pounit.getid() never returns None 2008-02-15 13:44 friedelwolff * storage/cpo.py: Rewrite pounit.isheader() to work with non-ascii msgids 2008-02-15 13:43 friedelwolff * storage/test_po.py: Test pounit.isheader() 2008-02-15 13:42 friedelwolff * storage/test_po.py: More uniform testing in test_id(). +Header test. 2008-02-15 09:39 friedelwolff * storage/cpo.py: Raise exceptions on on all gettext PO errors, not just fatal ones. Now we should fail on format errors, etc. This closes bug 299. 2008-02-15 09:28 friedelwolff * storage/cpo.py: Fix incorrect variable name in xerror2_cb() 2008-02-15 09:27 friedelwolff * storage/cpo.py: Align variables of xerror2_cb() with those in gettext 2008-02-15 09:15 friedelwolff * storage/cpo.py: Update docstring for the module so people (me) know where to find the header file in gettext. Also mention necessary versions. 2008-02-15 08:59 friedelwolff * storage/cpo.py: use find_library on Windows as well, and make sure we can use libraries loaded from LD_LIBRARY_PATH or with LD_PRELOAD 2008-02-15 08:27 friedelwolff * storage/cpo.py: Implement pounit.getid() for cpo. This closes bug 308. 2008-02-15 08:25 friedelwolff * storage/pypo.py: Take plurals into consideration in unit.getid() 2008-02-15 07:29 friedelwolff * storage/test_po.py: Tets getid implementation for PO (must correspond to mo) 2008-02-14 18:08 dwaynebailey * setup.py: Package ini2po 2008-02-13 15:24 friedelwolff * storage/xliff.py: Add notes about refactoring possibilities 2008-02-11 13:54 friedelwolff * storage/tmx.py: Support errors in TMX (this should complete pofilter support for TMX) 2008-02-11 09:46 friedelwolff * storage/tmx.py: Support notes in TMX 2008-02-07 07:23 friedelwolff * __version__.py: Version 1.1.1rc2 2008-02-07 05:17 dwaynebailey * convert/test_dtd2po.py: Slightly change test to pass with current \n processing code. 2008-02-06 12:50 dwaynebailey * storage/dtd.py: Fixes the premature termination of DTD entities. 2008-02-02 12:32 dwaynebailey * convert/test_dtd2po.py: Add test for bug 331; losing last part of a DTD entry. 2008-01-31 14:54 friedelwolff * filters/checks.py: Don't cause duplicate accelerators when updating a checker configuration 2008-01-31 09:10 friedelwolff * tools/test_pomerge.py: Adapt to API change in pomerge. Renaming almost complete, just some customisation left for some xliff tests 2008-01-31 09:08 friedelwolff * tools/pomerge.py: Terminolgy update (file/po -> store) 2008-01-31 09:07 friedelwolff * tools/pogrep.py: Support TMX, reflow formats dictionary 2008-01-31 09:06 friedelwolff * filters/pofilter.py: Also support TMX 2008-01-30 16:25 friedelwolff * tools/pocompile.py, tools/podebug.py: Complete API change for translate.tools (convertfile -> convertstore) 2008-01-30 10:44 friedelwolff * filters/test_pofilter.py: Test TMX support. Bypass some methods that are not relevant to TMX. 2008-01-30 10:42 friedelwolff * filters/test_pofilter.py: Factor out helper methods to make it easier to extend things 2008-01-30 09:44 friedelwolff * storage/base.py: Return {} in .geterrors() as API demands 2008-01-30 09:29 friedelwolff * tools/pomerge.py: remove unnecessary mergexliff() and adapt mergepo() to function for all file types 2008-01-29 16:11 friedelwolff * search/segment.py: +Comment to mark deprecation 2008-01-29 16:07 friedelwolff * search/terminology.py: Remove unnecessary import and commented code. Update comments. 2008-01-29 16:05 friedelwolff * storage/factory.py: Move comment about poxliff to the new place where it is imported 2008-01-29 15:36 friedelwolff * search/lshtein.py: Print a warning to stderr if python-Levenshtein is not found 2008-01-28 07:52 friedelwolff * tools/pocompile.py: Write .mo files in binary mode 2008-01-24 21:22 friedelwolff * setup.py: Include subpackages storage.version and search.indexer 2008-01-24 21:09 friedelwolff * __version__.py: Version 1.1.1rc1 2008-01-23 11:10 friedelwolff * README: Update URL for downloading python-Levenshtein 2008-01-23 07:05 dwaynebailey * README: Add a number of missing tools 2008-01-23 06:31 dwaynebailey * storage/properties.py: Remove uneeded units list 2008-01-22 08:56 friedelwolff * ChangeLog: Update ChangeLog before release of 1.1.0 2008-01-22 07:03 friedelwolff * __version__.py: Version 1.1.0 2008-01-22 07:01 friedelwolff * README: Mention dependency on iniparse 2008-01-22 06:52 friedelwolff * storage/statsdb.py: Implement some logic to provide a better directory name on Windows 2008-01-21 14:33 friedelwolff * lang/am.py: Some minor changes that seem to be better while we wait for feedback 2008-01-21 07:33 friedelwolff * storage/factory.py, storage/lisa.py: Try to continue without XML support if importing the XML formats fail 2008-01-21 06:28 friedelwolff * filters/test_checks.py: Fix typo 2008-01-18 10:25 friedelwolff * storage/test_po.py: Rewrite some tests to use proper helper methods 2008-01-16 06:45 dwaynebailey * convert/po2php.py, convert/test_php2po.py, convert/test_po2php.py, storage/php.py, storage/test_php.py: Allow php arrays to contain spaces in the array syntax, e.g. $lang[ 'name '] 2008-01-15 20:37 friedelwolff * filters/checks.py: Use a language's own checker if it has one 2008-01-15 20:36 friedelwolff * lang/common.py: Placeholder for a language's own checker 2008-01-15 20:22 friedelwolff * filters/pofilter.py: Pass the language through to the TeeChecker as well. 2008-01-15 15:19 friedelwolff * setup.py: Install po2wordfast, php2po and po2php 2008-01-15 15:16 friedelwolff * __version__.py: Version 1.1.0rc2. Also increase the buildnumber to 11000 2008-01-15 15:14 friedelwolff * convert/php2po, convert/po2php: Add command wrappers for php2po and po2php 2008-01-15 15:03 friedelwolff * convert/po2php.py: Fix a logic bug and replace 0/1 with real booleans 2008-01-15 14:45 friedelwolff * convert/convert.py: Change default duplicate style to msgctxt and adapt help text 2008-01-15 13:56 friedelwolff * storage/cpo.py: check the complete msgid (including msgidcomments) as well as msgctxt in .isheader() 2008-01-15 13:50 friedelwolff * storage/pypo.py: Also test for the presence of msgctxt and sourcecomments in pounit.isheader(). This solves bug 307 2008-01-15 13:41 friedelwolff * convert/test_dtd2po.py: Check that removeduplicates() gets it right with empty translation strings 2008-01-15 13:06 friedelwolff * convert/po2php.py: Be more flexible with detection of statement endings 2008-01-15 12:14 friedelwolff * convert/dtd2po.py, convert/test_dtd2po.py: Revert r6750 restoring multiline DTDs. We should review whitespace stripping. 2008-01-15 08:21 friedelwolff * lang/common.py: Add punctuation set 'ethiopicpunc' used in Amharic and other Ethiopian languages 2008-01-15 08:20 friedelwolff * lang/code_or.py: import re as needed 2008-01-15 08:09 friedelwolff * lang/common.py, lang/hy.py: Move Armenian specific puncutation data to hy.py since no reuse is likely for other languages. This should provide a small speedup as well. 2008-01-15 08:05 friedelwolff * lang/hy.py: Add HORIZONTAL ELLIPSIS (…) to sentenceend 2008-01-15 08:00 friedelwolff * README: Mention that lxml has dependencies on libxml2 and libxslt 2008-01-15 07:52 friedelwolff * lang/ko.py, lang/test_ko.py: Basic support for Korean (basically just disabling startcaps and simplecaps) 2008-01-15 07:40 friedelwolff * lang/code_or.py, lang/el.py, lang/ja.py, lang/zh.py: Add HORIZONTAL ELLIPSIS (…) to sentenceend where it was missing 2008-01-14 16:31 friedelwolff * lang/code_or.py, lang/test_or.py: Add basic support for Oriya (or) 2008-01-14 16:27 friedelwolff * lang/he.py: Add basic hebrew support (disabling startcaps and simplecaps) 2008-01-14 15:20 friedelwolff * convert/test_oo2po.py: Specify the duplicate style explicitely in case the default gets changed (anticipated) 2008-01-14 12:15 friedelwolff * lang/hy.py: Fix some typos (using fullwidth characters) and implement sentenceend and sentencere 2008-01-14 11:49 friedelwolff * lang/common.py, lang/km.py: Move Khmer specific puncutation data to km.py since no reuse is likely for other languages. This should provide minimal speedup as well. 2008-01-14 11:43 friedelwolff * lang/test_km.py: Print debugging output in test 2008-01-14 11:14 friedelwolff * lang/el.py: Specify the sentencere so to take customised sentenceend into consideration 2008-01-14 11:13 friedelwolff * lang/test_el.py: Test the Greek (el) language module 2008-01-14 08:18 dwaynebailey * convert/php2po.py, convert/po2php.py, convert/test_php2po.py, convert/test_po2php.py, storage/php.py, storage/test_php.py: First version of php2po converter. Will convert php style arrays usually used for localisation into PO files and back. One bug remains in the backconversion; lines with trailing comments are not correctly replaced output i.e ...blah';//some comment 2008-01-12 08:41 friedelwolff * tools/posegment.py: Remove debugging output 2008-01-11 16:22 friedelwolff * lang/af.py, lang/common.py, lang/ja.py, lang/zh.py: Use re flag 's' (DOTALL) to ensure that newlines don't confuse segmentation 2008-01-11 16:16 friedelwolff * lang/test_common.py: Test sentences are segmented correctly accross newlines ('\n') 2008-01-11 15:15 dwaynebailey * convert/po2oo.py, convert/xliff2oo.py: Remove code that eliminated whitespace only translations. 2008-01-11 14:22 friedelwolff * tools/posegment.py: Add and implement options --language, --source-language and --stripspaces 2008-01-11 13:39 friedelwolff * tools/podebug.py, tools/pomerge.py: Change current spacing convention of double spaces to four spaces 2008-01-11 13:25 friedelwolff * convert/oo2po.py, convert/oo2xliff.py, convert/po2dtd.py, convert/po2ts.py: Fix a few spacing errors that slipped through 2008-01-11 13:18 friedelwolff * convert/convert.py: Change current spacing convention of double spaces to four spaces 2008-01-11 13:17 dwaynebailey * convert/po2wordfast.py: Using POT files doesn't make much sense here. 2008-01-11 13:10 dwaynebailey * convert/csv2po.py, convert/html2po.py, convert/moz2po.py, convert/oo2po.py, convert/po2csv.py, convert/po2html.py, convert/po2moz.py, convert/po2oo.py, convert/po2prop.py, convert/po2tmx.py, convert/po2ts.py, convert/po2txt.py, convert/po2wordfast.py, convert/po2xliff.py, convert/pot2po.py, convert/prop2po.py, convert/ts2po.py, convert/txt2po.py, convert/xliff2po.py: Add URLs to the wiki documentation in all __doc__ strings. 2008-01-11 13:09 friedelwolff * filters/checks.py: Fix mixed spacing to all be four spaces 2008-01-11 13:01 friedelwolff * storage/csvl10n.py, storage/dtd.py, storage/html.py, storage/poheader.py, storage/properties.py, storage/pypo.py, storage/ts.py, storage/xpi.py: Change current spacing convention of double spaces to four spaces 2008-01-11 12:50 dwaynebailey * convert/csv2po.py, convert/csv2tbx.py, convert/html2po.py, convert/ini2po.py, convert/moz2po.py, convert/odf2po.py, convert/oo2po.py, convert/oo2xliff.py, convert/po2csv.py, convert/po2html.py, convert/po2ini.py, convert/po2moz.py, convert/po2oo.py, convert/po2prop.py, convert/po2tmx.py, convert/po2ts.py, convert/po2txt.py, convert/po2wordfast.py, convert/po2xliff.py, convert/pot2po.py, convert/prop2po.py, convert/ts2po.py, convert/txt2po.py, convert/xliff2oo.py, convert/xliff2po.py: Fix first line __doc__ strings to ensure that we have a good and consistent converter descriptor (needed by --manpage and help option) Tool descriptions can now be developed and URLs added. 2008-01-11 12:44 friedelwolff * storage/xliff.py: Fix mixed spacing to all be four spaces 2008-01-11 12:40 friedelwolff * storage/txt.py: Fix mixed spacing to all be four spaces 2008-01-11 12:35 friedelwolff * storage/qm.py: Fix mixed spacing to all be four spaces 2008-01-11 12:27 friedelwolff * storage/pocommon.py: Fix mixed spacing to all be four spaces 2008-01-11 12:24 friedelwolff * storage/ini.py: Fix wrong indentation (should be four spaces like the rest of the file) 2008-01-11 12:18 friedelwolff * storage/cpo.py: Fix mixed spacing to all be four spaces 2008-01-11 12:12 friedelwolff * services/lookupclient.py: Change current spacing convention of double spaces to four spaces 2008-01-11 12:08 friedelwolff * convert/csv2po.py, convert/csv2tbx.py, convert/dtd2po.py, convert/html2po.py, convert/ini2po.py, convert/moz2po.py, convert/mozfunny2prop.py, convert/odf2po.py, convert/oo2po.py, convert/oo2xliff.py, convert/po2csv.py, convert/po2dtd.py, convert/po2html.py, convert/po2ini.py, convert/po2moz.py, convert/po2oo.py, convert/po2prop.py, convert/po2tmx.py, convert/po2ts.py, convert/po2txt.py, convert/po2xliff.py, convert/poreplace.py, convert/pot2po.py, convert/prop2mozfunny.py, convert/prop2po.py, convert/ts2po.py, convert/txt2po.py, convert/xliff2oo.py, convert/xliff2po.py: Change current spacing convention of double spaces to four spaces 2008-01-11 11:52 friedelwolff * misc/optrecurse.py: Generate the DESCRIPTION section of man pages from the part of the docstring following two newlines (\n\n) 2008-01-11 10:46 friedelwolff * convert/ini2po.py: Correct copyright date (was totally incorrect before) - should only be 2007 2008-01-11 10:43 friedelwolff * convert/ini2po.py: Update copyright date 2008-01-11 10:33 friedelwolff * filters/test_autocorrect.py: Change current spacing convention of double spaces to four spaces 2008-01-11 10:29 friedelwolff * filters/autocorrect.py, filters/checks.py, filters/decoration.py, filters/helpers.py, filters/pofilter.py, filters/prefilters.py: Change current spacing convention of double spaces to four spaces 2008-01-11 10:18 friedelwolff * filters/checks.py: Remove TODO, add comment 2008-01-11 10:10 friedelwolff * filters/checks.py: Fix some weird spacing in assignments 2008-01-11 10:04 friedelwolff * filters/checks.py: Precompile regular expressions 2008-01-11 08:18 friedelwolff * tools/pocompile.py, tools/poconflicts.py, tools/pocount.py, tools/podebug.py, tools/pogrep.py: Change current spacing convention of double spaces to four spaces 2008-01-11 08:16 friedelwolff * tools/posegment.py: Fix inconsistent spacing to be four spaces 2008-01-11 08:15 friedelwolff * tools/poclean.py: Fix incorrect spacing in commented code 2008-01-11 08:03 friedelwolff * tools/pogrep.py: Update copyright dates 2008-01-11 07:47 friedelwolff * tools/podebug.py: Remove unnecessary space between methods 2008-01-11 07:25 friedelwolff * tools/poconflicts.py: Fix spacing around '=' 2008-01-11 07:23 friedelwolff * tools/posegment.py: Support tmx files as well 2008-01-10 11:49 friedelwolff * storage/oo.py: Fix inconsistent spacing and long lines. Moving to standard spacing for this file. 2008-01-10 09:19 dwaynebailey * convert/test_oo2po.py: Add some roundtrip examples with >> ' and " in the text and in some attributes. 2008-01-09 19:30 dwaynebailey * storage/oo.py: Move encoding checking to a function encode_if_needed_utf8() 2008-01-09 15:22 friedelwolff * storage/factory.py: Revert r6822, and explain why the poxliff import is needed 2008-01-09 15:15 friedelwolff * convert/convert.py, convert/dtd2po.py, convert/html2po.py, convert/ini2po.py, convert/moz2po.py, convert/oo2po.py, convert/prop2po.py: (Partially) revert commit 6780, just to play safe. 2008-01-09 14:08 friedelwolff * lang/data.py: Leave a comment about possible extra sources of useful information on language codes 2008-01-09 14:06 friedelwolff * README: Mention the new dependencies: lxml, pysqlite, libgettextpo 2008-01-09 14:04 friedelwolff * storage/statsdb.py: Declare the object variables .con and .cur explicitly 2008-01-09 14:03 friedelwolff * storage/factory.py: Remove an unused import 2008-01-09 14:00 friedelwolff * storage/lisa.py, storage/tmx.py, storage/xliff.py: Fix some pylint complaints (mostly argument spacing) 2008-01-09 13:58 friedelwolff * storage/mo.py: Better docstring. Correct some issues shown by pylint (indentation and bad names) 2008-01-09 13:08 friedelwolff * convert/test_xliff2po.py: Replace convertfile with convertstore 2008-01-09 09:39 friedelwolff * convert/xliff2po.py: Rename convertfile to convertstore as done elsewhere in commits 6782 and 6783 2008-01-09 09:37 friedelwolff * convert/xliff2oo.py: Rename convertfile to convertstore as done elsewhere in commits 6782 and 6783 2008-01-09 09:07 friedelwolff * doc/index.html: Update and slightly rewrite index for documentation 2008-01-09 08:35 friedelwolff * storage/oo.py: Don't attempt to support other encodings, SDF files must be UTF-8 2008-01-09 08:31 friedelwolff * convert/oo2po.py, convert/oo2xliff.py: Write error output to sys.stderr 2008-01-09 08:24 friedelwolff * tools/posegment: Set svn:executable for posegment 2008-01-09 08:16 friedelwolff * convert/test_oo2xliff.py: Test for oo2xliff overriding test_oo2po. Might dissappear in future if oo2xliff is merged into oo2po. 2008-01-09 08:15 friedelwolff * convert/test_oo2po.py: Adapt tests to enable easier overriding and customisation (for upcoming test_oo2xliff) 2008-01-09 08:10 friedelwolff * convert/oo2xliff.py: Change usepots to False (no more -P --pot option) 2008-01-09 08:09 friedelwolff * tools/posegment.py: Rename convertfile to convertstore as done elsewhere in commits 6782 and 6783 2008-01-09 08:08 friedelwolff * convert/oo2xliff.py: Rename convertfile to convertstore as done elsewhere in commits 6782 and 6783 2008-01-09 08:05 friedelwolff * convert/oo2xliff.py: Align oo2xliff with the new escaping as done in oo2po 2008-01-09 08:00 friedelwolff * convert/po2ts.py, convert/test_po2ts.py: Change usepots to False (no more -P --pot option) 2008-01-09 07:58 friedelwolff * convert/po2tmx.py, convert/test_po2tmx.py: Change usepots to False (no more -P --pot option) 2008-01-09 06:45 friedelwolff * convert/oo2po.py: Update the copyright date 2008-01-09 06:40 friedelwolff * storage/oo.py: Improve docstings 2008-01-09 06:31 friedelwolff * convert/oo2po.py: Remove escaping from converter (now done in the storage class, oo.py) 2008-01-09 06:29 friedelwolff * convert/test_oo2po.py: Change the test to the new expected behaviour in terms of escaping (especially for helpcontent2) 2008-01-09 06:23 friedelwolff * storage/oo.py: Implement new rules for escaping and unescaping of SDF files. Different rules are used for strings from .xhp (helpcontent2) sourcefiles, and all escaping and unescaping is now done here instead of in the converters. 2008-01-09 06:21 friedelwolff * convert/test_convert.py: Take differences between differernt versions of optparse into account for testing converter help text in test_help() 2008-01-08 13:43 friedelwolff * lang/af.py: Specify Afrikaans punctuation more exactly overriding base language 2008-01-08 13:42 friedelwolff * convert/pot2po.py: Accept **kwargs in convertpot for the sake of the changes done in r6780 2008-01-08 13:39 friedelwolff * __init__.py: Update copyright date 2008-01-08 12:37 friedelwolff * misc/optrecurse.py: Only catch IO errors - we don't want anything else 2008-01-08 12:35 friedelwolff * misc/optrecurse.py: Put back get_prog_name() that got lost somewhere 2008-01-07 13:34 dwaynebailey * setup.py lang/common.py, tools/posegment, tools/posegment.py: Add posegment tool 2008-01-07 13:33 friedelwolff * __version__.py: Update version to 1.1.0rc1 2008-01-07 12:54 friedelwolff * storage/mo.py: Implement .istranslatable() 2008-01-07 12:53 friedelwolff * storage/poheader.py: Partially rewrite updatecontributor(). The 'Contributors:' line is removed and updating from files with existing headers should work. The msgmerge template ('FIRST AUTHOR , YEAR.') is now replaced with the first entry. 2008-01-07 12:50 friedelwolff * storage/statsdb.py: Print errors out to stderr instead of stdout 2008-01-07 12:46 friedelwolff * tools/pogrep.py: Search through all comments, not just translator comments 2008-01-03 14:27 friedelwolff * storage/poheader.py: Adapt to proper notes strings now that .getnotes() is used 2008-01-03 14:10 friedelwolff * storage/poheader.py: Don't update header in .updatecontributor() if no header is found 2008-01-03 14:09 friedelwolff * storage/poheader.py: Use .getnotes() accessor in .updatecontributor() 2008-01-03 06:04 dwaynebailey * misc/optrecurse.py: Fix manpage generation after upgrade to latest optparse 2007-12-21 15:30 dwaynebailey * convert/csv2po.py, convert/dtd2po.py, convert/ini2po.py, convert/odf2po.py, convert/oo2po.py, convert/prop2po.py, convert/test_csv2po.py, convert/test_dtd2po.py, convert/test_oo2po.py, convert/test_po2csv.py, convert/test_prop2po.py, convert/test_txt2po.py, convert/txt2po.py: Change: convertfiles -> convertstore 2007-12-21 15:21 dwaynebailey * convert/po2csv.py, convert/po2dtd.py, convert/po2html.py, convert/po2ini.py, convert/po2oo.py, convert/po2prop.py, convert/po2ts.py, convert/po2txt.py, convert/po2xliff.py, convert/test_po2csv.py, convert/test_po2dtd.py, convert/test_po2oo.py, convert/test_po2prop.py, convert/test_po2ts.py, convert/test_po2xliff.py: Rename: convertfile -> convertstore 2007-12-21 14:32 dwaynebailey * misc/optrecurse.py: get_prog_name is a class method now not a function. 2007-12-21 13:11 dwaynebailey * convert/convert.py, convert/dtd2po.py, convert/html2po.py, convert/ini2po.py, convert/moz2po.py, convert/oo2po.py, convert/oo2xliff.py, convert/prop2po.py: Move passthrough into function and out of converters. 2007-12-21 13:07 dwaynebailey * convert/test_convert.py, convert/test_csv2po.py, convert/test_dtd2po.py, convert/test_moz2po.py, convert/test_po2dtd.py, convert/test_po2html.py, convert/test_po2moz.py, convert/test_po2oo.py, convert/test_po2prop.py, convert/test_po2tmx.py, convert/test_po2ts.py, convert/test_po2txt.py, convert/test_pot2po.py, convert/test_prop2po.py: Fix help text tests to take into account changes in newer optparse.py. This means that these tests will probably fail in older versions of Python. 2007-12-21 12:57 dwaynebailey * convert/convert.py: Set the deafult for multifile option correctly 2007-12-21 12:49 dwaynebailey * storage/xpi.py, tools/poconflicts.py, tools/porestructure.py: Remove reference to our version of optparse and import optparse from optrecurse as needed. 2007-12-21 12:34 dwaynebailey * misc/optparse.py, misc/optrecurse.py: Move toolkit specific changes in optparse to optrecurse, change reference accoringly. Use system optparse (correct version has been available since Python 2.3, which is the lowest version we currently support) 2007-12-21 06:37 dwaynebailey * convert/test_pot2po.py: Catch last option. 2007-12-15 16:32 friedelwolff * storage/qm.py: Output error message to stderr 2007-12-15 16:02 friedelwolff * storage/test_base.py: Remove test_store_stats() that was testing the old statistics API (now removed) 2007-12-15 15:31 friedelwolff * storage/statsdb.py: [Contributed by Nicolas François] Store the default database filename to avoid unnecessary filesystem activity 2007-12-15 12:23 friedelwolff * storage/statsdb.py: Use os.path.realpath() instead of os.path.abspath() - this resolves names taking links and non-canonical names into account (// in the name, for example). This could avoid some duplicates. 2007-12-15 11:40 friedelwolff * storage/cpo.py: Rewrite a generator expression for compatibility with python 2.3 2007-12-15 11:23 friedelwolff * storage/base.py: Don't override the (unused) Statistics class for translation stores - just overhead that isn't used at the moment 2007-12-15 10:51 friedelwolff * storage/cpo.py: Rather write out error messages to stderr 2007-12-14 15:17 friedelwolff * storage/statsdb.py: Remove statefromdb() and all users - rather use a dictionary 2007-12-14 12:30 friedelwolff * storage/statsdb.py: +directorytotals() to provide totals for all files combined in the given directory (no mtimes are checked; no file presense is tested) 2007-12-13 16:33 dwaynebailey * storage/ini.py: Add copyright header and some descriptive text. 2007-12-12 15:37 dwaynebailey * convert/dtd2po.py, convert/test_dtd2po.py: Make ordinary LOCALIZATION NOTE comments into developer comments. Now all comments from the source dtd file should go into #. comments in PO. 2007-12-12 15:33 dwaynebailey * convert/dtd2po.py, convert/test_dtd2po.py: Line continuations in .dtd should not carry over a \n into PO, they are now just treated as pretty printing and removed before PO processing. 2007-12-10 08:57 friedelwolff * lang/fr.py: Ignore XML properties ('=' before quotes) for quote translation 2007-12-10 08:56 friedelwolff * lang/test_fr.py: Test properly that quoted XML properties are not changed 2007-12-06 06:23 dwaynebailey * convert/csv2po.py, convert/dtd2po.py, convert/html2po.py, convert/ini2po.py, convert/odf2po.py, convert/oo2po.py, convert/pot2po.py, convert/prop2po.py, convert/ts2po.py, convert/txt2po.py, convert/xliff2po.py: Change headerpo -> targetheader in all *2po convertors, prep to ensure target agnostic convertors. 2007-12-06 06:21 dwaynebailey * convert/dtd2po.py, convert/html2po.py, convert/ini2po.py, convert/odf2po.py, convert/pot2po.py, convert/prop2po.py, convert/ts2po.py, convert/txt2po.py, convert/xliff2po.py: Change thepofile -> thetargetfile in all *2po convertors. 2007-12-06 06:15 dwaynebailey * storage/pocommon.py: Add copyright header. 2007-12-06 05:56 dwaynebailey * convert/ini2po, convert/ini2po.py, convert/po2ini, convert/po2ini.py, misc/ini.py, storage/ini.py: Add ini file parser class and functions. 2007-12-06 05:53 dwaynebailey * misc/ini.py: Add ini.py from iniparse module. This will allow us to modify it until changes make it into upstream. 2007-12-06 05:50 dwaynebailey * convert/oo2xliff.py, convert/xliff2oo.py, storage/xliff.py: Implement addlocation in xliff.py and adjust xliff2oo and oo2xliff to use these. 2007-12-06 05:45 dwaynebailey * filters/pofilter.py: Remove xlff file type support, it is not a vlid type of file. 2007-12-06 05:28 dwaynebailey * convert/TODO: Update TODO list 2007-12-06 05:25 dwaynebailey * storage/TODO-merge-cPO: Add a new issue 2007-11-26 11:19 friedelwolff * storage/cpo.py, storage/pypo.py: Always use empty unicode strings (u"") instead of empty normal strings ("") 2007-11-26 11:18 friedelwolff * storage/cpo.py: Decode msgid comments so that they are unicode strings 2007-11-23 10:46 dwaynebailey * lang/data.py: Add Thai 2007-11-21 16:26 dwaynebailey * storage/factory.py: Sort the class imports alphabetically. 2007-11-17 09:46 friedelwolff * storage/pypo.py: Ensure that returned notes are unicde, even if empty. This ensures that unicodedata.normalize() doesn't complain 2007-11-16 19:37 friedelwolff * __version__.py: Update version number to 1.1.0beta1 2007-11-16 19:31 friedelwolff * storage/poheader.py: Don't add Plural-Forms header unless specifically given 2007-11-16 19:27 friedelwolff * storage/cpo.py: Improve library loading on Windows and raise ImportError if we can't import libgettextpo 2007-11-16 08:36 friedelwolff * filters/checks.py: Implement a credits check that identifies units with translation credits instead of normal translations. Implement identification for GNOME and KDE (GUI and documentation) 2007-11-16 08:31 friedelwolff * filters/test_checks.py: Check for translator credits 2007-11-15 14:47 friedelwolff * storage/cpo.py: Ensure that only unicode data is used to set notes. Decode comments using the internal decoding. 2007-11-15 14:46 friedelwolff * storage/pypo.py: Ensure that only unicode strings are ever parsed. This ensures correct handling of non-ascii comments, for example. Remove the incorrect decoding of comments, which sould be unicode. 2007-11-15 14:18 friedelwolff * filters/checks.py, filters/pofilter.py: Add wxWidgets as a checker type (identical to the KDE checker) 2007-11-15 14:15 friedelwolff * filters/test_pofilter.py: Test that the preconditions work correctly and tests aren't run unnecessarily 2007-11-15 13:52 friedelwolff * filters/checks.py: Fix the printf detection to only check for single character type specifiers 2007-11-15 13:48 friedelwolff * filters/test_checks.py: check that spacing doesn't trigger the print test 2007-11-15 13:36 friedelwolff * lang/ar.py, lang/fa.py: Fix incorrect percentage signs for Arabic (ar) and Persian (fa) (÷ -> ٪) 2007-11-15 13:30 friedelwolff * storage/statsdb.py: Fix wrong logic for non-existant suggestions files 2007-11-15 13:30 friedelwolff * storage/statsdb.py: Reimplement instantiation of StatsCache by limiting it to one cache per statsfile 2007-11-13 10:00 friedelwolff * storage/lisa.py, storage/poxliff.py, storage/tbx.py, storage/tmx.py, storage/xliff.py: Rewrite the minidom specific parts of the XML storage types with lxml code for performance. 2007-11-13 09:49 friedelwolff * convert/test_po2tmx.py, convert/test_po2xliff.py, storage/test_xliff.py: Adapt tests for the move from minidom to lxml 2007-11-13 09:48 friedelwolff * convert/test_xliff2po.py: Also test with an XLIFF file without an xmlns attribute 2007-11-13 09:45 friedelwolff * convert/oo2xliff.py: Handle requirement for target language slightly different than for oo2po 2007-11-12 16:36 dwaynebailey * storage/test_cpo.py, storage/test_pypo.py: import cpo and pypo directly don't hide behind: import xpo as po 2007-11-09 08:38 friedelwolff * filters/test_checks.py: Adapt calls to forceunicode() 2007-11-09 08:37 friedelwolff * lang/data.py: forceunicode() moved here from filters/checks.py 2007-11-09 08:36 friedelwolff * filters/checks.py: Move forceunicode() to lang.data 2007-11-03 10:17 dwaynebailey * storage/test_cpo.py, storage/test_po.py, storage/test_pypo.py: Move test_merge_mixed_sources to test_po.py 2007-11-03 10:05 dwaynebailey * storage/test_cpo.py, storage/test_po.py, storage/test_pypo.py: Move test_kde_context to test_po.py 2007-11-03 09:59 dwaynebailey * storage/test_cpo.py, storage/test_po.py, storage/test_pypo.py: Move test_parse_context and test_parse_advanced_context to test_po.py 2007-11-03 09:51 dwaynebailey * storage/test_po.py, storage/test_pypo.py: Move test_multiline_obsolete to the common test_po 2007-11-03 09:42 dwaynebailey * storage/cpo.py, storage/test_cpo.py, storage/test_po.py, storage/test_pypo.py: Delete units that where removed in removeduplicates by creating a new cpo file and copying them to that (since there is no delete function in cpo). Move the test for merging to test_po.py. 2007-11-03 08:53 dwaynebailey * storage/cpo.py, storage/pypo.py: Rename: element -> unit 2007-10-31 15:03 friedelwolff * convert/test_po2xliff.py: Rewrite slightly to make transition to lxml easier 2007-10-30 13:59 friedelwolff * storage/test_xliff.py: Rewrite tests slightly to enable easier migration to lxml 2007-10-29 15:24 friedelwolff * storage/test_poxliff.py: Rewrite ID test slightly to enable transition to lxml 2007-10-29 15:23 friedelwolff * storage/test_po.py: Test escapes in the header. 2007-10-27 11:56 dwaynebailey * storage/TODO-merge-cPO: Update: all convert/ tests passing at the same rate for cpo as pypo 2007-10-27 10:44 dwaynebailey * storage/test_cpo.py, storage/test_po.py, storage/test_pypo.py: Move test_makeobsolete* into the common test_po.py module. 2007-10-27 09:47 dwaynebailey * storage/cpo.py: Change padding hack to only add whitespace padding if the comment is not a blank line. 2007-10-27 09:35 dwaynebailey * storage/cpo.py: Name the obsolete workaround function more clearly. 2007-10-26 16:22 dwaynebailey * storage/cpo.py: Work around libgettetpo bug in that it doens't remove #: and #. entries for obsolete entries on output. This hack makes it behanve like msgmerge 2007-10-26 16:04 dwaynebailey * convert/test_prop2po.py: Remove test_emptyentry, its duplicaed in test_emptyproperty Make tests for detailed instead of: 'blah' in str(unit) 2007-10-26 15:59 dwaynebailey * convert/test_prop2po.py: Remove accesors to msg* and replace with source/target 2007-10-26 15:56 dwaynebailey * convert/test_prop2po.py: Merge form toolkit-C-po branch: 6538 - Replace direct access to po.automaticcomments with getnotes("developer") in various tests. 2007-10-26 15:42 dwaynebailey * convert/po2csv.py: Merge from toolkit-C-po 6574 - Use base class accessors. 2007-10-26 15:37 dwaynebailey * convert/test_csv2po.py: Fix tests to remove pypo specific accesors. 2007-10-26 15:35 dwaynebailey * convert/csv2po.py: Merge from toolkit-C-po branch 6566 - Use base class accesors. 2007-10-26 15:34 dwaynebailey * convert/test_csv2po.py: Merge from toolkit-C-po branch: 6539 - Remove direct po.sourcecomment usage and replace with getlocations() 2007-10-26 15:24 dwaynebailey * convert/po2txt.py: Merge from toolkit-C-po branch: 6543 - Simplify the logic. 2007-10-26 09:51 dwaynebailey * storage/TODO-merge-cPO: TODO list for the cPO merging 2007-10-26 05:26 dwaynebailey * storage/cpo.py: Add note about libgettextpo obsolete behaviour 2007-10-26 05:25 dwaynebailey * storage/cpo.py: Only do libgettext workaround if we have data to process. 2007-10-26 05:22 dwaynebailey * tools/test_pomerge.py: Use po.lsep to manage format output differences between cpo and pypo 2007-10-26 05:16 dwaynebailey * tools/test_pomerge.py: Add location test 2007-10-25 22:54 dwaynebailey * convert/test_dtd2po.py: Merge from toolkit-C-po branch 6669 - Adjust test to not user old pypo style accesors but use base class methods. 2007-10-25 22:48 dwaynebailey * convert/dtd2po.py: Merge from toolkit-C-po branch 6540 - Remove the use of po.othercomments and replace with getnotes("translator") 6569 - Use base class accessors to be able to dump various escaping functions (po.escapeforpo, simplequotestr). Use methods addlocations(), addnote() instead of direct access to the lists. 2007-10-25 22:42 dwaynebailey * convert/test_po2dtd.py: Merge from toolkit-C-po branch: 6539:6540 {A number of additional tests} 2007-10-25 22:31 dwaynebailey * convert/po2dtd.py: Merge from toolkit-C-po branch: 6539 - Remove direct po.sourcecomment usage and replace with getlocations() 6540 - Remove the use of po.othercomments and replace with getnotes("translator") 6541 - Cleanup code around po.typecomments 6542 - Remove unquotefrompo from po2dtd convertor. 6568 - Use po.isfuzzy() and po._extract_msgidcomments() instead of direct access to po.typecomments and po.msgidcomments 2007-10-25 22:14 dwaynebailey * convert/test_pot2po.py: Work around cpo iability to select a range over the iterbale units. 2007-10-25 22:07 dwaynebailey * convert/test_pot2po.py, storage/cpo.py, storage/pypo.py: Hack to define lsep a variable that holds the seperator for #: entries. cpo - [space] pypo - \n#:[space] This allows the test to run on both implemenations. 2007-10-25 21:51 dwaynebailey * convert/test_pot2po.py: Add #. comments to obsoleting test. 2007-10-25 21:49 dwaynebailey * convert/pot2po.py: Merge from toolkit-C-po branch: r6563: Add newly obsolete units using addunit(). 2007-10-25 21:21 dwaynebailey * convert/test_po2xliff.py: Merge from toolkit-C-po branch: r6658 - Correct a test PO entry 2007-10-25 21:19 dwaynebailey * convert/test_xliff2po.py: Merge branch toolkit-C-po: r6538 - Replace direct access to po.automaticcomments with getnotes("developer") in various tests. r6540 - Remove the use of po.othercomments and replace with getnotes("translator") 2007-10-25 21:16 dwaynebailey * convert/xliff2po.py: Merge from toolkit-C-po r6565 - Make the source blank in PO for a header entry. Reverse the logic to make it readable. 2007-10-25 20:46 dwaynebailey * convert/test_oo2po.py: Merge toolkit-C-po branch (r6549:6538) - Replace direct access to po.automaticcomments with getnotes("developer") in various tests 2007-10-25 15:20 dwaynebailey * convert/test_oo2po.py: Fix bug_url test since we now properly escape and wrap PO header entries. 2007-10-25 15:09 dwaynebailey * storage/pocommon.py, storage/pypo.py: Privatise encoding 2007-10-25 13:14 dwaynebailey * storage/cpo.py: Work around where libgettextpo needs all added comments to have a leading space. 2007-10-25 13:09 dwaynebailey * storage/test_cpo.py: Adjust tests to remove leading spaces 2007-10-25 13:06 dwaynebailey * storage/cpo.py: Work around the problem that current libgettextpo returns a leading space with all notes. 2007-10-25 12:48 dwaynebailey * storage/cpo.py: Use needtmpfile for tmpfile sections, easier to understand. 2007-10-25 12:47 dwaynebailey * storage/cpo.py: Correctly handle case when the input is a file. i.e. you only need to remove temporary files if the input was a string. 2007-10-22 15:45 dwaynebailey * tools/podebug.py: Remove executable property 2007-10-22 15:26 friedelwolff * convert/test_po2ts.py: test that we can handle duplicates in the same context block 2007-10-22 15:24 friedelwolff * convert/po2ts.py: Determine unit usability with .istranslated() rather than .isfuzzy() 2007-10-22 15:18 friedelwolff * setup.py: Install oo2xliff and xliff2oo 2007-10-22 14:42 friedelwolff * storage/cpo.py, storage/pocommon.py, storage/pypo.py: Move makeheader to pocommon.py. It contains no implementation specific code now. 2007-10-22 13:24 friedelwolff * tools/pomerge.py: Use the correct extention for output XLIFF files (.xlf) 2007-10-22 12:03 friedelwolff * storage/pypo.py: Don't handle quoting and escaping in makeheader(). This solves a problem with the '\' character in certain header values causing it to be interpreted as an escaped cariage return. 2007-10-19 15:36 dwaynebailey * tools/podebug.py: Add two new options: --rewrite - currently has two modes 'en' which does the same as msgen and copies source to target, and 'xxx' which adds xxx as affixes to the source string and places it in the target. Any other rewrite functions can be added by coding a rewrite_XXX method. --hash - adds a hash to the start of the target based on 1) first location if present else 2) source. 2007-10-12 06:25 dwaynebailey * filters/checks.py, filters/test_checks.py: Ignore text that looks like an option but isn't (e.g. --blank-- ) by checking that it end in an alpha numeric character. 2007-10-11 21:09 dwaynebailey * search/indexer/__init__.py: Fix comment indent 2007-10-11 13:28 dwaynebailey * convert/txt2po.py: Convert --flavour option to a choice. Now catches errors where the flavour is not known. 2007-10-11 10:35 dwaynebailey * misc/quote.py, misc/test_quote.py: Add functions to encode and decode HTML entities in a string. It does not yet handle numeric style escaping Ӓ just the list of XHTML 1.0 entity definitions. 2007-10-09 21:17 larskr * lang, services, storage/versioncontrol: ignore pre-compiled python files for svn 2007-10-08 23:34 larskr * search/indexer/__init__.py, storage/versioncontrol/cvs.py, storage/versioncontrol/darcs.py: improve some comments 2007-10-06 09:30 larskr * search/indexer, search/indexer/__init__.py: imported 'jToolkit/data/indexer.py' from jToolkit 0.7.8 added a copyright note to the new file imports of 'indexer' adapted 2007-10-06 03:02 larskr * storage/factory.py: fix error ("TypeError: unsubscriptable object") for "storefile" being a file object instead of a string 2007-10-05 12:15 larskr * storage/mo.py: clarified copyright and license of mo.py code 2007-10-01 12:51 dwaynebailey * storage/po.py, storage/test_po.py: Merge from toolkit-C-po r6458:6622 - second attempt to merge from the branch. 2007-10-01 12:16 dwaynebailey * convert/csv2po.py, convert/po2tmx.py, convert/po2txt.py, convert/ts2po.py, tools/poconflicts.py: Merge from branch toolkit-C-po r6536 (Remove all usage of isblankmsgstr) 2007-09-30 17:34 dwaynebailey * storage/base.py, storage/cpo.py: Revert isempty change in base.py and implement in cpo.py 2007-09-30 05:09 dwaynebailey * storage/test_factory.py: Correct reference to class. 2007-09-29 14:25 dwaynebailey * storage/cpo.py: Remove debug code 2007-09-29 14:18 dwaynebailey * storage/base.py, storage/cpo.py, storage/po.py, storage/pocommon.py, storage/pypo.py, storage/test_cpo.py, storage/test_po.py, storage/test_pypo.py: Merge branch/toolkit-C-po changes r6459:6622 into trunk. These are only the PO related files. All users of the PO classes still need to be migrated. The tools still use the Python PO implementation but by using the environment variables USECPO=1 you can force the tools to use the C PO version (USECPO=0 forces the use of Python PO). Using USECPO will report the implementation being used, without USECPO operation continue as normal. Common tests are in test_po while implementation specific test or tests that differ slightly are in test_pypo and test_cpo. The next steps will be to merge changes made to the tools the use po.py into trunk. This will be done slowly to ensure that tests and operation continue as normal. On the branch almost all tests are functioning correctly. This will not be so on trunk until all tests have been ported. 2007-09-28 20:11 dwaynebailey * storage/ts.py: Add notes refering to replaceables. 2007-09-28 20:08 dwaynebailey * storage/test_wordfast.py: Add difficult escapes and fix another test. 2007-09-28 19:57 dwaynebailey * convert/po2wordfast, convert/po2wordfast.py: Fix indentation 2007-09-28 19:49 dwaynebailey * convert/po2wordfast.py: Correct class reference 2007-09-28 19:42 dwaynebailey * convert/po2wordfast, convert/po2wordfast.py, storage/factory.py, storage/test_factory.py, storage/test_wordfast.py, storage/wordfast.py: Add Wordfast TM format - storage class for Wordfast TM - Convertor for PO to Wordfast format - Adapt factory to detect Wordfast, includes changes to help explore file content if the class cannot be fully determined from the file extension. 2007-09-28 09:56 larskr * storage/versioncontrol/__init__.py: committing and updating of whole directories is now possible TODOs updated 2007-09-26 14:57 friedelwolff * storage/ts.py: Handle duplicate entries separately. This fixes a bug seen with Virtualbox files. 2007-09-26 09:29 dwaynebailey * storage/factory.py: Privatise functions within the factory. 2007-09-25 08:49 friedelwolff * convert/pot2po.py: Test whether we got nplurals before using it 2007-09-25 08:38 friedelwolff * convert/pot2po.py: Don't catch exceptions during construction of fuzzyglobalmatcher. Only attempt to construct the TM if we have a file. 2007-09-25 07:38 friedelwolff * storage/po.py: Correct the header handling logic in removeduplicates() 2007-09-19 14:59 friedelwolff * convert/po2xliff.py: Fix a typo in a comment 2007-09-19 10:37 friedelwolff * convert/pot2po.py: Don't obsolete the header 2007-09-19 10:36 friedelwolff * convert/pot2po.py: Ensure that we initialise plural units with the correct number of parts. This fixes bug 238. 2007-09-19 10:35 friedelwolff * convert/test_pot2po.py: Test that we initialise plural units with the correct number of parts (bug 238) 2007-09-18 14:26 dwaynebailey * storage/po.py: Remove unquotefrompo and use base class accessors. 2007-09-18 14:08 dwaynebailey * storage/po.py: Fix forgotten msgstrlen -> _msgstrlen 2007-09-18 13:31 friedelwolff * convert/pot2po.py: Use fuzzy units for fuzzy matching. This solves bug 237. 2007-09-18 12:50 friedelwolff * convert/test_pot2po.py: Test for proper migration of a fuzzy plural unit with changing msgid and changing location (bug 239). 2007-09-18 12:49 friedelwolff * search/match.py: Allow the matcher class to optionally use fuzzy units 2007-09-18 10:51 dwaynebailey * storage/po.py: When removing duplicates bail out early for a header. 2007-09-18 10:00 dwaynebailey * storage/po.py: Privatise msgstrlen and msgidlen 2007-09-14 09:42 friedelwolff * convert/xliff2oo.py: Update to new pofilter checker API 2007-09-14 09:08 friedelwolff * storage/versioncontrol, storage/versioncontrol/__init__.py, storage/versioncontrol/bzr.py, storage/versioncontrol/cvs.py, storage/versioncontrol/darcs.py, storage/versioncontrol/git.py, storage/versioncontrol/svn.py: [Contributed by Larse Kruse] Move the version control code from Pootle to the translate toolkit. This splits the code into different files for each version control sytem, and implements the public functions in the module (__init__). 2007-09-12 08:13 dwaynebailey * convert/po2oo.py: pofilter now returns a dict not a list. 2007-09-11 14:15 friedelwolff * convert/csv2tbx.py: Remove unnecessary and unused code 2007-09-11 10:51 friedelwolff * filters/checks.py: Remove 'options' from the precondition of 'unchanged' - this could hide errors 2007-09-11 09:15 friedelwolff * filters/checks.py: add options to the test preconditions 2007-09-11 09:12 friedelwolff * filters/checks.py: Don't trigger the options test for lone '--' words 2007-09-11 09:08 friedelwolff * filters/test_checks.py: Test that the options test isn't triggered for lone '--' words 2007-09-11 08:07 friedelwolff * filters/test_checks.py: Test Afrikaans specific startcaps more exhaustively 2007-09-11 07:48 friedelwolff * filters/checks.py: Don't overwrite config.lang in update() - this could loose the language information 2007-09-10 18:02 dwaynebailey * convert/csv2po.py, convert/po2csv.py: Use getlocations instead of units.sourcecomments 2007-09-10 10:32 friedelwolff * convert/csv2tbx.py: Simplify by not handling encoding here (it is done in the storage format) 2007-09-10 10:08 friedelwolff * filters/decoration.py: Fix typo and spacing 2007-09-10 09:14 friedelwolff * filters/prefilters.py: Restore varnone() (it is used in checks.py) 2007-09-10 09:06 friedelwolff * storage/statsdb.py: Refactor several pieces and implement recacheunit() for use from Pootle (currently only on the diet branch) 2007-09-10 08:01 dwaynebailey * convert/po2dtd.py, convert/po2ts.py, convert/test_po2ts.py, convert/test_ts2po.py, convert/ts2po.py, storage/po.py: Remove visible comments (#_ ). This is from the very early days of the toolkit and was only really used by Qt TS conversion. It is not standard and better handled using proper structures in PO. po2dtd - were not used by the code ts2po - change '#_ OBSOLETE' to use a '#. (obsolete)' automatic comment. This should eventually use proper PO obsoleting. Also handle the reverse. Add tests for obsolete messages. po.py - remove all structure and code for visiblecomments 2007-09-10 07:37 dwaynebailey * convert/po2ts.py, convert/po2xliff.py, convert/test_po2ts.py, convert/ts2po.py, convert/xliff2po.py: Change direct list based comment access to use getnotes() Expand po2ts testing to test: - comments/notes, - check that we've put the data into the correct TS tags. - fuzzy conversion 2007-09-07 13:39 friedelwolff * filters/prefilters.py: Improve layout of code and docstrings 2007-09-07 11:06 dwaynebailey * filters/checks.py, filters/test_checks.py: Expand options test to catch --input=FILE type options and check that the paramter has been translated. Raise nice errors if the test fails. 2007-09-07 10:53 friedelwolff * filters/checks.py: Simplify and reflow some docstrings. Mention the wiki page that describes the tests. 2007-09-07 10:28 dwaynebailey * filters/checks.py, filters/test_checks.py: Add 'options' test that ensures the command line options e.g. --help remain untranslated. 2007-09-07 10:15 friedelwolff * filters/checks.py: Remove unnecessary punctuation filtering - the word iterator filters it already. 2007-09-07 10:14 friedelwolff * lang/common.py: Add grave accent (U+0060) to list of common punctuation. This would have prevented bug 283. 2007-09-07 10:04 friedelwolff * filters/checks.py: filter out punctuation in aconyms test. This fixes bug 283. 2007-09-07 10:03 friedelwolff * filters/test_checks.py: Test that punctuation doesn't cause confusion for the acronyms test (bug 283) 2007-09-07 08:40 dwaynebailey * convert/po2csv.py, convert/po2dtd.py: Default second paramater for unquotefrompo, joinwithlinebreak is False. Thus remove all explicit setting to False. 2007-09-07 07:41 dwaynebailey * convert/csv2po.py, convert/dtd2po.py, convert/moz2po.py, convert/mozfunny2prop.py, convert/oo2po.py, convert/oo2xliff.py, convert/po2csv.py, convert/po2dtd.py, convert/po2moz.py, convert/po2oo.py, convert/pot2po.py, convert/prop2mozfunny.py, convert/prop2po.py, convert/xliff2oo.py: Remove property svn:executable 2007-09-06 17:35 dwaynebailey * convert/po2prop.py: Cleanup for readability 2007-09-06 17:33 dwaynebailey * convert/csv2po.py, convert/dtd2po.py, convert/html2po.py, convert/odf2po.py, convert/oo2po.py, convert/po2csv.py, convert/po2dtd.py, convert/ts2po.py, convert/txt2po.py, convert/xliff2po.py, storage/csvl10n.py: Change unit.append to base class addunit() 2007-09-06 17:31 dwaynebailey * convert/po2csv.py, convert/po2dtd.py, convert/po2html.py, convert/po2prop.py, convert/po2tmx.py, convert/po2ts.py, convert/po2xliff.py: Convert the po side and some of the other side to generic names: thepofile -> inputstore thepo -> unit/inputunit etc. 2007-09-06 17:10 dwaynebailey * convert/test_convert.py, misc/optrecurse.py, misc/xmlwrapper.py, search/lshtein.py, storage/csvl10n.py, storage/html.py, storage/test_tmx.py, storage/test_xliff.py, storage/txt.py, tools/poconflicts.py, tools/pogrep.py, tools/test_pomerge.py: Cleanup: operrator not preceded by a space. 2007-09-06 17:09 dwaynebailey * convert/csv2po.py, convert/po2oo.py, convert/prop2po.py, convert/test_dtd2po.py, convert/test_html2po.py, convert/xliff2oo.py, filters/checks.py, misc/optrecurse.py, tools/pocount.py, tools/pomerge.py: Correct: operator not followed by a space. 2007-09-06 17:08 dwaynebailey * tools/test_pogrep.py: Fix indentation 2007-09-06 17:05 dwaynebailey * convert/odf2po.py, convert/poreplace.py, convert/ts2po.py, convert/xliff2po.py: Align convertXXX functions. 2007-09-06 17:01 dwaynebailey * convert/dtd2po.py, convert/txt2po.py: Align main functions in convertors. 2007-09-06 16:57 dwaynebailey * convert/test_csv2po.py, convert/test_txt2po.py, storage/po.py, storage/test_po.py, tools/test_pomerge.py: Make po.getouput private. Change calls to po.getouput to rather use str(store) 2007-09-06 16:52 dwaynebailey * storage/po.py, storage/test_po.py: Make extract_msgidcomments private. 2007-09-06 16:49 dwaynebailey * storage/po.py: Make encodeifneccessary private 2007-09-06 16:47 dwaynebailey * storage/po.py: Make getmsgpartstr private 2007-09-06 16:45 dwaynebailey * storage/po.py: Make initallcomments private. 2007-09-06 16:43 dwaynebailey * convert/csv2po.py, convert/test_csv2po.py, convert/test_dtd2po.py, convert/test_oo2po.py, convert/test_prop2po.py, tools/test_pomerge.py: Remove po.unquotefrompo used outside of po.py and replace with po.target and po.source instead 2007-09-06 16:20 dwaynebailey * convert/csv2tbx.py, convert/oo2po.py, convert/oo2xliff.py, convert/poreplace.py, convert/xliff2oo.py: Remove uneeded temporary string variables. 2007-09-06 16:17 dwaynebailey * convert/csv2po.py, convert/csv2tbx.py, convert/dtd2po.py, convert/html2po.py, convert/odf2po.py, convert/oo2po.py, convert/oo2xliff.py, convert/po2csv.py, convert/po2dtd.py, convert/po2html.py, convert/po2oo.py, convert/po2prop.py, convert/po2ts.py, convert/po2xliff.py, convert/poreplace.py, convert/prop2po.py, convert/ts2po.py, convert/txt2po.py, convert/xliff2oo.py, convert/xliff2po.py: Convert all format specific eg inputpo naming to a format agnostic form i.e. inputsource. Align names: *source is a TranslationStore *file is a file object 2007-09-05 07:10 dwaynebailey * storage/test_po.py: Fix closing quote in a test. 2007-09-04 13:21 dwaynebailey * filters/checks.py, filters/test_checks.py, lang/data.py, storage/po.py, tools/pogrep.py, tools/test_pogrep.py: Normalise unicode data in searches and tests. This allows composed characters, with different unicode values, to be compared correctly. 2007-08-31 15:26 friedelwolff * filters/checks.py: Configure more test preconditions 2007-08-31 14:18 friedelwolff * storage/statistics.py: Update statistics.py to the pofilter::run_filters() API change of r6334 2007-08-31 14:11 friedelwolff * storage/test_base.py: Adapt base class test so that it can work for MO files: - MO files only store translated strings, so we need to have target strings - MO files store source strings in a sorted way, so writing the file can cause reordering of the units, so we need to presort them to avoid surprises. 2007-08-31 13:50 friedelwolff * storage/mo.py: Don't encode the target unless it is unicode 2007-08-31 10:03 friedelwolff * filters/checks.py, filters/pofilter.py, storage/statsdb.py: Change checks::run_filters() API to return a dictionary 2007-08-31 07:50 dwaynebailey * storage/test_base.py: Add missing comma 2007-08-28 14:54 friedelwolff * storage/po.py: Handle merging of certain duplicate message lines slightly better 2007-08-28 14:36 friedelwolff * convert/test_pot2po.py: Test for correct handling of empty comment lines and of type comments 2007-08-28 11:40 friedelwolff * storage/statsdb.py: Pass information to the checker about Pootle style .pending files for the new hassuggestions check in the case of PO files. Do proper handling of the mtimes of both files. 2007-08-28 08:19 friedelwolff * storage/test_factory.py: Lessen the noise when testing on Python 2.3 that doesn't support BZ2File 2007-08-28 07:05 dwaynebailey * storage/factory.py, storage/qm.py: Add pasrsing support for Qt .qm file format. 2007-08-28 06:25 dwaynebailey * storage/mo.py: We do handle plural forms. 2007-08-28 06:17 dwaynebailey * storage/mo.py: Remove redundant statement. 2007-08-28 05:42 dwaynebailey * tools/podebug.py: Correctly handle plural tagging. 2007-08-27 14:39 friedelwolff * filters/checks.py: +hassuggestion test to implement the pootle functionality here. +setsuggestionstore to allow external users to set the file to use to look for suggestions. 2007-08-27 14:21 friedelwolff * storage/mo.py: Don't reencode the msgid as utf-8. This solves the traceback with files with non-ascii characters in a msgid 2007-08-27 10:52 dwaynebailey * misc/quote.py: Change <> to != 2007-08-27 10:51 dwaynebailey * misc/quote.py: Correct [comma] to be [comma][space] for readability 2007-08-27 10:50 dwaynebailey * misc/quote.py: Correct indentation 2007-08-27 09:19 friedelwolff * lang/ja.py, lang/zh.py: Transform punctuation more correctly by also removing spaces when double width punctuation is used. 2007-08-27 07:45 dwaynebailey * README: Update the README to refer to also refer to XLIFF work and add some tools that where not listed. 2007-08-27 05:59 dwaynebailey * convert/nb2po, convert/nb2po.py, convert/po2nb, convert/po2nb.py: No longer used and clutering refactoring. 2007-08-24 14:35 dwaynebailey * convert/csv2po.py, convert/dtd2po.py, convert/html2po.py, convert/nb2po.py, convert/odf2po.py, convert/oo2po.py, convert/po2csv.py, convert/po2dtd.py, convert/po2oo.py, convert/prop2po.py, convert/ts2po.py, convert/txt2po.py, convert/xliff2po.py: Remove temporary variables for store to string conversion. 2007-08-24 14:24 dwaynebailey * convert/po2txt.py: Use factory class and add ability to use XLIFF files as input. 2007-08-24 14:22 dwaynebailey * convert/po2txt.py: Remove unused file position call. 2007-08-24 14:20 dwaynebailey * convert/po2txt.py: Rename: inputpo -> inputstore, outputtxt -> outputstring 2007-08-24 14:17 dwaynebailey * convert/po2txt.py: Rename: *po -> *store, pounit -> unit 2007-08-24 14:13 dwaynebailey * convert/po2txt.py: Fix indentation 2007-08-24 14:11 dwaynebailey * convert/pot2po.py: Simple code cleanup 2007-08-24 14:10 dwaynebailey * convert/pot2po.py: Use .addunit instead of .units.append 2007-08-24 13:32 dwaynebailey * storage/po.py: Rename: pe -> unit 2007-08-24 13:28 dwaynebailey * storage/po.py: Remove unused todict function 2007-08-24 13:25 dwaynebailey * storage/po.py: remove executable flag 2007-08-24 07:45 dwaynebailey * storage/properties.py: Remove executable 2007-08-24 07:34 dwaynebailey * tools/podebug.py: Comment about the lack of plural tagging support 2007-08-24 07:26 dwaynebailey * tools/podebug.py: Typo 2007-08-24 07:22 dwaynebailey * tools/podebug.py: Rename: thepofile -> store, thepo -> unit 2007-08-24 07:18 dwaynebailey * tools/podebug.py: quote no longer used 2007-08-24 07:17 dwaynebailey * tools/podebug.py: Simplify by removing msgstr/msgid convolution. Remove the need for unquotefrompo and makes it base class friendly. 2007-08-24 07:13 dwaynebailey * tools/podebug.py: Rename: thepo -> unit 2007-08-24 07:12 dwaynebailey * tools/podebug.py: Rename: convertelement -> convertunit 2007-08-24 06:51 dwaynebailey * tools/podebug.py: Remove our mangling of sourcecomments and replace it with getlocations. Remove convertsource as its not needed. In openofficeignore, s/source/location/ 2007-08-24 06:40 dwaynebailey * tools/podebug.py: Use factory to load appropriate storage class 2007-08-24 06:33 dwaynebailey * tools/podebug.py: Rename: inputpo -> inputstore, etc 2007-08-24 06:29 dwaynebailey * tools/pomerge.py: Rename: p{1,2} -> store{1,2}, po{1,2} -> unit{1,2} 2007-08-24 06:26 dwaynebailey * tools/pomerge.py: Use isempty() 2007-08-24 06:25 dwaynebailey * tools/pomerge.py: inputpo -> inputstore, outputpo -> outputstore, templatepo -> templatestore (same for *xliff) 2007-08-24 06:12 dwaynebailey * tools/pomerge.py: Add docstring to str2bool 2007-08-24 06:08 dwaynebailey * tools/pogrep.py: element -> unit Remove redundant comment 2007-08-23 07:38 dwaynebailey * storage/base.py: Fix indentation 2007-08-23 07:37 dwaynebailey * storage/base.py: Put statements on their own lines. 2007-08-23 07:36 dwaynebailey * storage/base.py: Fix docstring 2007-08-23 07:35 dwaynebailey * storage/base.py: Use cPickle and fallback to pickle if needed. 2007-08-23 07:23 dwaynebailey * storage/base.py, storage/csvl10n.py, storage/dtd.py, storage/html.py, storage/lisa.py, storage/mo.py, storage/po.py, storage/properties.py, storage/txt.py: Remove parsestring from derived classes and implement a generic version in base.py. Implemented basic parse method in base.py and adjusted txt.py to the new parsestring. 2007-08-21 14:22 friedelwolff * storage/statsdb.py: select unit errors based on the correct configuration identifier 2007-08-21 10:39 friedelwolff * storage/statsdb.py: Return an empty dictionary in case of error conditions 2007-08-21 09:39 friedelwolff * filters/checks.py: Correct or simplify some docstrings 2007-08-15 13:39 friedelwolff * lang/common.py: Rather use str.replace() for punctranslate(). This allows for replacing multi-character strings which is necessary for collapsing the punctuation spacing for Chinese and Japanese. This also seems slightly faster. 2007-08-13 13:10 friedelwolff * storage/statsdb.py: Prepend check names with 'check-' according to the convention in Pootle. 2007-08-10 12:50 dwaynebailey * storage/mo.py: Don't output units without any target. 2007-08-10 10:15 dwaynebailey * storage/test_mo.py: Test derived class correctly. 2007-08-08 23:08 dwaynebailey * convert/test_po2dtd.py: Removed test. This example is not present in the Mozilla DTD files and in fact would it seem not be a valid DTD in its own right. 2007-08-08 22:51 dwaynebailey * storage/statistics.py: Revert and add import of language factory. Needed by lschtein distance measurements. 2007-08-08 22:28 dwaynebailey * convert/csv2po.py, convert/csv2tbx.py, convert/dtd2po.py, convert/html2po.py, convert/moz2po.py, convert/odf2po.py, convert/po2dtd.py, convert/po2moz.py, convert/po2nb.py, convert/po2prop.py, convert/po2tmx.py, convert/po2ts.py, convert/po2txt.py, convert/po2xliff.py, convert/prop2mozfunny.py, convert/prop2po.py, convert/test_csv2po.py, convert/test_dtd2po.py, convert/test_html2po.py, convert/test_moz2po.py, convert/test_odf2po.py, convert/test_po2csv.py, convert/test_po2html.py, convert/test_po2moz.py, convert/test_po2oo.py, convert/test_po2prop.py, convert/test_po2tmx.py, convert/test_po2ts.py, convert/test_po2txt.py, convert/test_po2xliff.py, convert/test_pot2po.py, convert/test_ts2po.py, convert/test_txt2po.py, convert/test_xliff2po.py, convert/ts2po.py, convert/txt2po.py: Tabs -> Spaces Remove unused imports 2007-08-08 22:06 dwaynebailey * tools/poclean.py, tools/pocount.py, tools/podebug.py, tools/test_pocount.py: Remove uneeded imports 2007-08-08 22:02 dwaynebailey * storage/po.py, storage/poheader.py, storage/statistics.py, storage/test_csvl10n.py, storage/test_dtd.py, storage/test_mo.py, storage/test_monolingual.py, storage/test_odf.py, storage/test_poxliff.py, storage/test_properties.py, storage/test_tmx.py, storage/test_txt.py, storage/test_xliff.py: Remove uneeded imports 2007-08-08 21:48 dwaynebailey * storage/tbx.py: Tabs - > Spaces Remove unused import of base 2007-08-08 21:42 dwaynebailey * storage/dtd.py: Prefer != to <> 2007-08-08 21:38 dwaynebailey * storage/test_po.py: Tabs -> Spaces 2007-08-08 21:36 dwaynebailey * storage/test_tbx.py: Tabs -> Spaces. Remove unused imports 2007-08-08 21:33 dwaynebailey * filters/prefilters.py: Remove unused import 2007-08-08 21:18 dwaynebailey * lang/common.py, lang/hy.py: Remove unused imports 2007-08-08 20:40 dwaynebailey * convert/oo2xliff.py: Remove unused imports 2007-08-08 20:38 dwaynebailey * convert/xliff2oo.py: Remove unused imports 2007-08-08 20:35 dwaynebailey * convert/oo2po.py: Remove unused imports 2007-08-08 20:34 dwaynebailey * convert/po2oo.py: Remove unused imports 2007-08-08 20:31 dwaynebailey * convert/convert.py: Remove unused imports 2007-08-08 20:25 dwaynebailey * filters/TODO: Fixed previously we don't see double variables as an error. 2007-08-07 14:29 friedelwolff * convert/test_po2xliff.py: +test_approved() 2007-08-07 14:23 friedelwolff * convert/po2xliff.py: Mark an untranslated PO unit as not approved in the XLIFF file 2007-08-07 14:22 friedelwolff * storage/xliff.py: Add method xliffunit.markapproved() to set the approved attribute. Use it in markfuzzy() 2007-08-07 12:50 friedelwolff * convert/pot2po.py: Support developer (automatic) comments in the header 2007-08-07 12:04 friedelwolff * filters/pofilter.py: Fix a problem when run with --header 2007-08-07 11:32 dwaynebailey * convert/test_dtd2po.py: Fix a test related to KDE comment disambiguation to test for #. and msgctxt entries instead. 2007-08-07 09:45 friedelwolff * convert/dtd2po.py: Merge automaticcomments for mixed units (units merged with their accelerators). Typo. 2007-08-06 08:37 dwaynebailey * storage/mo.py: Hanlde non-multistring text. Use addunit instead of appening units. 2007-08-04 08:09 dwaynebailey * tools/poswap.py: Fix indentation 2007-08-04 08:08 dwaynebailey * tools/porestructure.py: Fox indentation 2007-08-04 08:06 dwaynebailey * tools/pomerge.py: Fox indentation 2007-08-04 08:05 dwaynebailey * tools/pogrep.py: Fix indentation 2007-08-04 08:04 dwaynebailey * tools/podebug.py: Fix indentation 2007-08-04 08:02 dwaynebailey * tools/pocount.py: Fix indentation 2007-08-04 07:56 dwaynebailey * tools/poconflicts.py: Fix indentation 2007-08-04 07:53 dwaynebailey * tools/pocompile.py: Remove undeeded imports of struct and array, ineeded MESSAGES dict. Fix indents. Rename variables for clarity. 2007-08-03 11:26 friedelwolff * lang/common.py: Use plain for instead of enumerate() - provides a small speedup 2007-08-03 10:22 friedelwolff * filters/TODO: Update the TODO list (perhaps more to remove/add) 2007-08-03 10:13 friedelwolff * filters/checks.py: Ensure that we have a proper exit condition if no tests failed in a plural unit 2007-08-02 13:34 dwaynebailey * convert/prop2mozfunny.py: Fix to align with changes made to properties storage class 2007-08-02 09:28 friedelwolff * lang/am.py, lang/ar.py, lang/fa.py, lang/hy.py, lang/ja.py, lang/zh.py: Add appropriate list seperators for Japanese (ja), Amharic (am), Arabic (ar), Armenian (hy), Chinese (zh) and Persian (fa) 2007-08-02 09:26 friedelwolff * lang/common.py: Add .listseperator - a simple string that can be used to join lists of strings in an appropriate way for the language 2007-08-02 09:25 friedelwolff * lang/common.py: Change __repr__() to include the language code if present 2007-08-01 14:55 friedelwolff * storage/statsdb.py: Add tables (checkerconfigs, uniterrors) and initial implementations to deal with more complete unit statistics. 2007-08-01 10:53 dwaynebailey * storage/test_po.py: Test to ensure that we can parse Uniforum style PO files. We don't dso anything sensible with the # File: syntax and probably won't ever :) 2007-07-31 15:30 friedelwolff * tools/pocount.py: Remove dead code that was left by accident 2007-07-31 15:25 friedelwolff * filters/checks.py: Store the configuration in the TeeChecker for the sake of comparing checker configurations 2007-07-31 15:23 friedelwolff * lang/common.py: Implement __repr__() for lang.common.Common to enable us to create meaningful text representations of checker configurations 2007-07-31 09:52 friedelwolff * CREDITS: Credit Kaloian Doganov 2007-07-30 15:46 friedelwolff * convert/po2html.py: [Contributed by Kaloian Doganov] Honour the --nofuzzy option 2007-07-30 09:51 dwaynebailey * convert/prop2po.py: Prefer msgctxt merging of duplicates when merging two properties files into one PO file. 2007-07-30 09:45 dwaynebailey * storage/properties.py: Use addunit instead of units.append Convert 0/1 to False/True Remove temporary variable lines - to make things cleaner 2007-07-29 13:04 dwaynebailey * storage/properties.py: Rename msgid -> value 2007-07-29 12:58 dwaynebailey * storage/properties.py: Reflow some text 2007-07-29 12:49 dwaynebailey * storage/properties.py: Add a note with some good references to .properties files. 2007-07-29 12:44 dwaynebailey * storage/properties.py: Uneeded import of sys 2007-07-29 12:35 dwaynebailey * convert/prop2po.py: Prefer msgctxt for disambiguation of units 2007-07-29 12:34 dwaynebailey * convert/test_prop2po.py: We are storing these notes in 'developer' comments - so this requirement is no longer needed. 2007-07-29 11:57 dwaynebailey * convert/csv2po.py, convert/dtd2po.py, convert/odf2po.py, convert/oo2po.py, convert/prop2po.py, convert/txt2po.py: Add 'extracted from' as a translator comment so that its know that this is automatically created and can be discarded. 2007-07-29 11:34 dwaynebailey * convert/prop2po.py, convert/test_prop2po.py, storage/po.py: Properly ignore DONT_TRANSLATE i.e. using a return value of 'discard' but should fix storage class to not return empty units, fix test. Make all source comments into 'developer' comments: #. in PO, ensure that we keep the same comment order by adding a 'position' option to adding comments in PO. This is hackish and needs to be fixed in the storage class. Comments from target .properties files should be added as translator comments, but doesn't work yet, needs some thought and logic to discard comments that are actually developer comments in translator comment style. 2007-07-28 20:38 dwaynebailey * convert/prop2po.py: Use base class addunit() instead of units.append() 2007-07-26 11:24 friedelwolff * storage/statsdb.py: Small cleanups. Use istranslatable(). 2007-07-26 11:09 friedelwolff * storage/test_xliff.py: Create an XLIFF skeleton string for easier testing. Test .istranslatable() 2007-07-26 11:08 friedelwolff * storage/test_po.py: Test .istranslatable() 2007-07-26 11:03 friedelwolff * storage/po.py, storage/xliff.py: +implementations of .istranslatable() for PO and XLIFF 2007-07-26 11:00 friedelwolff * storage/base.py: Add unit method .istranslatable() to indicate whether the unit can be translated. 2007-07-25 10:45 friedelwolff * misc/multistring.py: Fix comparissons in python 2.5 by implementing __ne__ and __eq__ and rewriting __cmp__ 2007-07-24 13:51 friedelwolff * misc/autoencode.py: Avoid using Exception.message that is only available in Python 2.5 2007-07-24 13:27 friedelwolff * filters/spelling.py: Avoid duplicate name ('checker') in namespace after importing enchant 2007-07-24 06:19 dwaynebailey * convert/csv2po.py, convert/csv2tbx.py, convert/html2po.py: Indent correctly (pylint) 2007-07-24 06:17 dwaynebailey * filters/checks.py, filters/decoration.py, filters/pofilter.py, filters/test_checks.py, filters/test_pofilter.py: Indent correctly and some changes with comma seperated lists and spacing around equals signs (pylint errors) 2007-07-23 15:34 friedelwolff * README: Correct the information about Python versions 2007-07-23 13:59 friedelwolff * lang/data.py: Add plural information for Malagasy (mg) and Papiamento (pap) 2007-07-23 13:26 friedelwolff * storage/statsdb.py: Move the file modification detection to a separate function 2007-07-23 13:24 friedelwolff * storage/mo.py: Fix a typo in a docstring 2007-07-23 09:37 friedelwolff * filters/checks.py: Use the spell checking code that moved to a seperate module 2007-07-23 09:34 friedelwolff * filters/spelling.py: Move spelling functionality from checks.py into a seperate file 2007-07-22 12:11 dwaynebailey * storage/mo.py: Cleanup naming for clarity and data extraction to only extract version once. 2007-07-22 11:26 dwaynebailey * convert/xliff2oo.py: Rename function to match po2oo.py fix 2007-07-22 11:24 dwaynebailey * misc/autoencode.py, misc/test_autoencode.py: Throw an exception if we don't know the encoding. 2007-07-21 07:43 dwaynebailey * lang/data.py: Spelling corrections 2007-07-20 14:16 friedelwolff * filters/checks.py, filters/test_checks.py: Move the helper methods for the tests (passes(), fails(), fails_serious()) to test_checks.py. No other change. 2007-07-20 08:09 friedelwolff * filters/test_checks.py: Adapt the tests for nplurals now that it is a unit level test 2007-07-20 08:08 friedelwolff * filters/checks.py: Simplify the nplurals test and move it to StandardUnitChecker where it should be 2007-07-18 13:29 friedelwolff * filters/checks.py: Cache unit.hasplural() for minor speedup in TranslationChecker 2007-07-18 12:58 friedelwolff * filters/checks.py: Optimise puncspacing - a very expensive test. This reduces runtime for this test by more than 20%. 2007-07-18 12:50 friedelwolff * convert/po2oo.py: Rename filterelement -> filterunit 2007-07-18 12:22 friedelwolff * lang/common.py: Only do punctranslate() if we have data to work with 2007-07-18 12:12 friedelwolff * filters/checks.py: Make TranslationChecker to be UnitChecker and derive TranslationChecker to enable an important optimisation as a simple customisation 2007-07-18 11:32 friedelwolff * convert/po2oo.py, convert/xliff2oo.py: Rename POChecker -> UnitChecker 2007-07-18 11:20 friedelwolff * filters/checks.py, filters/pofilter.py, filters/test_pofilter.py: Move pocount.POChecker -> checks.UnitChecker and pocount.StandardPOChecker -> checks.StandardUnitChecker. Renaming 'element' and 'thepo' -> unit 2007-07-18 11:01 friedelwolff * filters/checks.py, filters/pofilter.py: Remove run_filters() from POChecker and implement run_test() to account for the differences that are necessary in POChecker and TranslationChecker 2007-07-18 09:36 friedelwolff * filters/pofilter.py: Remove POTeeChecker - not needed anymore 2007-07-18 09:31 friedelwolff * filters/checks.py, filters/pofilter.py: Change run_filtes() to always accept a unit. This should pave the way for a single implementation. +Minor cleanups. 2007-07-18 08:17 friedelwolff * filters/pofilter.py: Add better error handling to POChecker::run_filters() by syncing with TranslationChecker::run_filters() 2007-07-17 10:43 friedelwolff * tools/pocount.py: Enable the new caching code and remove the duplicated word counting code 2007-07-17 07:27 friedelwolff * tools/test_pocount.py: Adapt the test to use statsdb.wordsinunit() as it will be removed from pocount 2007-07-17 07:15 friedelwolff * tools/pocount.py: Provide an alternative implementation of calcstats() that uses statsdb. Move some error handling around to accomplish this. 2007-07-16 15:28 friedelwolff * storage/statsdb.py: An initial implementation for a database cache for translation statistics 2007-07-16 12:22 friedelwolff * storage/po.py: Fix variable declaration order for .getid() 2007-07-14 17:07 dwaynebailey * convert/dtd2po.py: Move last of the kdecomments to developer comments. 2007-07-13 15:18 dwaynebailey * convert/dtd2po.py: Add these notes as developer comments and use the base class API. A first small step towards being target format agnostic and opening up XLIFF. 2007-07-13 14:26 friedelwolff * storage/base.py: Try to ensure that the store always has a .filename attribute 2007-07-12 08:58 friedelwolff * storage/po.py: Fix a typo with the generation of a unit ID with msgid comment 2007-07-11 14:08 friedelwolff * storage/po.py: Implement .getid() for a pounit to use msgid comments and msgctxt with the source string to form a unique id 2007-07-11 14:07 friedelwolff * storage/base.py: Add method unit.getid() to return an identifier for the unit. The default implementation returns the source 2007-07-10 10:25 friedelwolff * misc/xmlwrapper.py: Fix the ElementTree import for Python 2.5 2007-07-10 07:24 dwaynebailey * misc/xmlwrapper.py: Fix ElementTree import for Python 2.5 2007-07-09 16:20 friedelwolff * storage/html.py: Rewrite some regular expressions for compatibility with Python 2.3 2007-07-09 16:19 friedelwolff * convert/test_po2tmx.py, convert/test_po2xliff.py: Remove the unused import of xmlval and xmlproc 2007-07-09 10:56 friedelwolff * filters/test_autocorrect.py: Specify the file encoding to make python 2.5 happy 2007-07-09 10:45 friedelwolff * convert/test_dtd2po.py, convert/test_oo2po.py, convert/test_po2txt.py, convert/test_ts2po.py: Specify the file encoding and indicate unicode strings to make python 2.5 happy 2007-07-09 08:23 friedelwolff * convert/test_convert.py, convert/test_dtd2po.py, convert/test_po2prop.py: Specify the file encoding to make python 2.5 happy 2007-07-06 11:59 friedelwolff * storage/factory.py: Test for bz2 support for compatibility with Python 2.3 2007-06-29 06:26 friedelwolff * tools/test_pocount.py: Adapt to new wording in pocount.py 2007-06-29 06:25 friedelwolff * tools/pocount.py: Lots of rewording for format neutrality. No functional change. 2007-06-28 14:26 friedelwolff * lang/factory.py: Support languages that have a language code that is a reserved word like Oriya (or) and Icelandic (is). By convention, their modules will be called code_or.py or code_is.py. 2007-06-27 14:59 friedelwolff * tools/poconflicts.py: Remove po specific terminology. Almost ready to work with xliff. 2007-06-27 09:02 friedelwolff * storage/po.py: Handle units that are not seperated by an empty line. This fixes bug 256 2007-06-27 08:53 friedelwolff * storage/test_po.py: Test that we handle units that aren't separated by an empty line (bug 256) 2007-06-26 14:36 dwaynebailey * tools/pocount.py: Its CVS not CSV :) 2007-06-26 12:30 friedelwolff * lang/common.py: Add some Indic (Devanagari) punctuation 2007-06-26 12:18 friedelwolff * tools/pocount.py: Limit line length for readability 2007-06-26 11:07 dwaynebailey * storage/factory.py: Add .mo support to the factory. Also clean up the lists of files a bit. 2007-06-26 07:52 friedelwolff * search/match.py: Update copyright dates 2007-06-26 07:51 friedelwolff * convert/csv2tbx.py: Replace unnecessary call to .settarget() with normal member assignment (.target =) 2007-06-26 06:22 dwaynebailey * convert/oo2po.py, convert/oo2xliff.py, convert/po2oo.py, convert/xliff2oo.py, storage/po.py: Alignment of oo2{xlf,po}: These are two tools, they should be one and they share a lot of code. This first commit aligns comments: XLIFF/PO -> target/source format, and aligns variable names between each instance: poelement -> unit and xliffunit -> unit etc. Removed unquotefrompo (this needs further testing but should be OK) Each convertor po2oo and xliff2oo can actually do both formats as we've used the factory class. We now only add units that actually exits otherwise we return none from maktargetunit(): This solves the blank unit problem in oo2xliff and removes, removeblanks() and isnotblank() from the po class. We now use 'xlf' not 'xliff' for the format extension. 2007-06-25 14:39 dwaynebailey * storage/mo.py, tools/pocompile.py: Move mounpack helper to the mo class. 2007-06-25 14:38 friedelwolff * lang/data.py: +Comment to explain the @ modifier in locales 2007-06-25 13:51 friedelwolff * filters/test_pofilter.py, tools/test_pocount.py: Replace unnecessary calls to .settarget() with normal member assignments (.target =) 2007-06-25 13:50 friedelwolff * storage/test_csvl10n.py, storage/test_dtd.py, storage/test_monolingual.py, storage/test_properties.py, storage/test_tbx.py, storage/test_tmx.py, storage/test_txt.py: Remove the tests test_markreview() and test_errors() that were expecting exceptions before 2007-06-25 13:47 friedelwolff * storage/test_base.py, storage/test_po.py, storage/test_xliff.py: Remove test_markreview() and test_errors() from test_base and move to test_po and test_xliff. Replace unnecessary calls to settarget() with normal member assignments. 2007-06-25 13:46 dwaynebailey * storage/mo.py, storage/test_mo.py, tools/pocompile.py: Add Gettext .mo (Machine Object), the compiled PO format as a base class derived format. Move code from pocompile into the .mo class and adjust pocompile to use the storage class. The test_mo is basic and needs tests added for the various things found in an MO file. 2007-06-25 13:44 friedelwolff * storage/base.py: Give sane default implementations to adderror(), geterrors(), markreviewneeded() 2007-06-25 08:56 dwaynebailey * tools/pocount.py: Prevent potential divide by zero errors in the percentage calculations. 2007-06-22 15:10 dwaynebailey * tools/pocompile.py: Remove references to PO 2007-06-22 15:05 dwaynebailey * tools/pocompile.py: Less references to PO since we can also compile from XLIFF 2007-06-22 14:58 dwaynebailey * tools/pocompile.py: Make sure that the --fuzzy option works again. Again a PO specific hack that isn't elegant. 2007-06-22 14:28 dwaynebailey * tools/pocompile.py: Add handling of msgctxt and KDE style comments in the compilation. We can now compile all types of PO files into MO files. This is hackish and the format specific stuff should go elsewhere but its a good start. 2007-06-22 14:07 dwaynebailey * tools/pocompile.py: Make pocompile able to compile plural messages Also ensure that it can compile PoXliff and normal XLIFF files into MO A few fixes to ensure that we add headers correctly, that we only use translated entries and that the headers or source strings can be UTF-8. Add an mounpack helper funtion to convert an MO file into hex 2007-06-21 08:25 dwaynebailey * convert/odf2po, convert/odf2po.py, convert/test_odf2po.py, storage/odf.py, storage/test_odf.py: Pull the ODF parser from the convertor and add it as a base class derived format. It is not fully base class compliant. There is a base class test but as yet it doesn't mean much. Major renaming across the files to change element -> unit, sxw -> odf and refer to the generic odf as apposed to Writer/sxw/etc. The extraction to PO still works but there is off course still no po2odf available but hopefully as we clean up the class we'll get there. Till then its not much use except for testing. The main problem now with our created PO file is that we are stripping all XML tags, which in most cases is OK but we lose in paragraph markings, style changes, etc. We shouldn't do that. What does seem to be emerging though is that this could become a generic xml2{xliff,po} convertor as there seem to be some standard recipes for what needs to be translated. We'll see. 2007-06-21 08:02 dwaynebailey * convert/test_odf2po.py: Migrate sxw2po -> odf2po (this somehow got left out) 2007-06-21 07:53 dwaynebailey * convert/odf2po, convert/odf2po.py, convert/sxw2po, convert/sxw2po.py, convert/test_sxw2po.py: Migrate sxw2po -> odf2po 2007-06-20 17:33 dwaynebailey * storage/txt.py: We also do Mediawiki so update comment Remove redundant setting of .units 2007-06-20 17:27 dwaynebailey * storage/poheader.py: Cleanup some comments Add a conceptial updatecontributor method - needs testing and checking, its not used and I'm not 100% sure its wxactly what we want. 2007-06-20 17:03 dwaynebailey * convert/dtd2po.py: Change element -> unit 2007-06-20 16:59 dwaynebailey * convert/csv2po.py, convert/dtd2po.py, convert/oo2po.py, convert/prop2po.py, convert/txt2po.py: Make sure "extracted from" comments are added using addnote function calls 2007-06-20 16:58 dwaynebailey * convert/dtd2po.py, convert/nb2po.py, convert/oo2po.py, convert/prop2po.py, convert/sxw2po.py, convert/ts2po.py, convert/xliff2po.py: Change direct comment access to addlocation function calls 2007-06-20 16:56 dwaynebailey * convert/oo2po.py: Replace direct comment access with addnote call 2007-06-20 16:29 dwaynebailey * convert/odfxml: Tool to unpack and ODF file for l10n analysis 2007-06-20 08:49 friedelwolff * ChangeLog: Update ChangeLog with the latest changes before 1.0.1 2007-06-20 07:57 dwaynebailey * convert/po2txt.py: Fix docstrings 2007-06-19 14:55 friedelwolff * setup.py: Fix typo in translatebashscripts 2007-06-19 14:41 friedelwolff * setup.py: Install poglossary 2007-06-19 11:46 friedelwolff * ChangeLog: Update ChangeLog before release of 1.0.1 2007-06-19 10:45 friedelwolff * search/terminology.py: Revert accidental commit to terminology.py as part of r5895 2007-06-19 10:30 friedelwolff * search/lshtein.py, search/terminology.py, search/test_lshtein.py: Make use of a module level distance function to avoid instancemethod that gives problem with pickling 2007-06-19 08:39 friedelwolff * __version__.py: Version 1.0.1 2007-06-19 08:38 friedelwolff * lang/af.py, lang/common.py: Always allow multiple characters of whitespace after sentence end. Layout comments pretier. 2007-06-19 08:25 friedelwolff * lang/af.py: Edit the punctuation and regular expression for detecting sentence boundaries to work properly with the indefinite article ('n) 2007-06-19 08:24 friedelwolff * lang/test_af.py: Test for more cases of the indefinite article ('n) 2007-06-19 08:20 friedelwolff * lang/test_fr.py: Extra test for French quoting and spacing 2007-06-19 08:17 friedelwolff * misc/optrecurse.py: Also skip over the _darcs directory by default 2007-06-19 08:06 friedelwolff * tools/pocount.py: Also skip over the _darcs directory by default 2007-06-18 18:31 dwaynebailey * storage/po.py: Improve comments for getlocations and addlocation 2007-06-18 09:05 friedelwolff * search/lshtein.py: Update copyright dates 2007-06-17 14:53 dwaynebailey * storage/ts.py: Add links to TS format documentation 2007-06-14 15:06 friedelwolff * README: Mention bugzilla and the --manpage options 2007-06-14 15:01 friedelwolff * misc/optparse.py, misc/optrecurse.py: [Contributed by Nicolas François] Provide proper groff output for the --manpage option of the converters 2007-06-14 14:56 friedelwolff * tools/pocompendium: Use msgfilter with --keep-header to avoid editing of the header that can break things 2007-06-12 14:11 friedelwolff * filters/pofilter.py, tools/pocompile.py, tools/poconflicts.py, tools/pogrep.py: [Contributed by Nicolas François] Provide docstring descriptions for tools that didn't have. This is used to generate the man pages and help text of these tools. 2007-06-12 08:48 friedelwolff * lang/common.py: Fix typo in docstring 2007-06-11 16:04 friedelwolff * __version__.py: Version 1.0.1rc1 2007-06-11 13:11 friedelwolff * convert/txt2po.py: Use base class API instead of manipulating the PO comments directly 2007-06-11 13:05 friedelwolff * convert/pot2po.py: Pass parameter allowmissingtemplate=True to ConvertOptionParser to allow matching input (POT) with non-existing template (PO). This solves bug 248. 2007-06-11 13:03 friedelwolff * convert/convert.py, misc/optrecurse.py: Add an option 'allowmissingtemplate' which allows matching an input with a 'None' template. This is part of the solution for bug 248.. 2007-06-11 11:13 friedelwolff * lang/common.py: Fix typo in docstring 2007-06-11 10:22 friedelwolff * convert/oo2po.py: Decode utf-8 string before assigning to source and target of po unit. Would also solve bug 249, but now only for performance 2007-06-11 10:09 friedelwolff * storage/xliff.py: Strip notes to avoid unnecessary newlines 2007-06-11 10:01 friedelwolff * storage/po.py: Ensure that we decode incoming source and target strings before using. Fix for bug 249 2007-06-11 08:00 dwaynebailey * convert/pot2po.py: Clarify option messages 2007-06-11 07:22 dwaynebailey * tools/pomigrate2: Correct spelling mistake 2007-06-08 12:36 friedelwolff * filters/test_checks.py: Add failing simplecaps test 2007-06-08 12:34 friedelwolff * filters/checks.py: Give more descriptive messages in doublewords and sentencecount checks 2007-06-08 10:44 andreaspauley * storage/poheader.py, storage/test_poheader.py: Calculated timezone offset to cater for the fact that time.strftime('%z') on Windows does not supply the same info as on Linux. Added some time related unit tests and fixed two bugs that popped up with these tests. 2007-06-07 15:48 friedelwolff * filters/checks.py: Mention the number of sentences in sentencecount for the benefit of the user 2007-06-07 14:18 friedelwolff * filters/checks.py: Use the end of sentence punctuation in the configuration's source language to fix incorrect squashing of English' capital 'I' after question marks 2007-06-07 14:16 friedelwolff * filters/test_checks.py: Test that we also handle English 'I' correctly after question mark 2007-06-07 14:09 friedelwolff * filters/checks.py: Don't test for endpunc if endwhitespace failed 2007-06-07 12:51 friedelwolff * filters/checks.py: Also trigger the purepunc test if the translation only contains punctuation and the source didn't 2007-06-07 12:49 friedelwolff * filters/checks.py, filters/test_checks.py: For languages without plurals, only trigger simpleplurals if '(s)' is present in the translation. Test with Vietnamese examples. 2007-06-07 12:35 friedelwolff * filters/test_checks.py: Test that we can access language specific startcaps testing 2007-06-07 12:32 friedelwolff * filters/checks.py, filters/test_pofilter.py: Don't test simplecaps if startcaps failed. Update test that expected it differently. 2007-06-07 12:31 friedelwolff * filters/checks.py: in startcaps(), use capsstart() in the language module to determine if something stats with a capital letter 2007-06-07 12:28 friedelwolff * lang/af.py: Override capsstart() to deal correctly with the indefinite article ('n) 2007-06-07 12:27 friedelwolff * lang/test_af.py: Test that the indefinite article('n) doesn't confuse capsstart() 2007-06-07 12:26 friedelwolff * lang/test_common.py: Test capsstart() 2007-06-07 12:25 friedelwolff * lang/common.py: Make capsstart() a classmethod 2007-06-07 12:01 friedelwolff * lang/common.py: Add capsstart() which can be a language dependent check to see if text starts with a capital letter 2007-06-07 11:58 friedelwolff * filters/test_checks.py: Move tests with pure punctuation in source or targets from startpunc test to purepunc test 2007-06-04 15:07 friedelwolff * tools/poswap: Fix copyright dates to be correct 2007-06-01 12:21 dwaynebailey * tools/pocount.py: Bug 245. Fix problems with pocount --csv Mostly errors in print statements after fix to put the stats in a dictionary. Now works as expected. 2007-06-01 03:42 dwaynebailey * tools/pogrep.py: Add option --header, to add a header to the output from pogrep 2007-05-31 08:12 dwaynebailey * tools/pocount.py: Add percentage values to the raw word and string counts 2007-05-31 08:11 dwaynebailey * convert/po2ts.py: Correct docstring 2007-05-31 06:59 dwaynebailey * convert/sxw2po.py: Extract headers, allow odt documents to be processed. 2007-05-25 10:29 friedelwolff * ChangeLog: Update ChangeLog before 1.0 release 2007-05-24 15:49 friedelwolff * __version__.py: Version 1.0 2007-05-24 15:44 friedelwolff * setup.py: Add poclean to tools for installation 2007-05-24 15:01 friedelwolff * tools/poclean, tools/poclean.py: Add poclean to create clean files from unclean file (Trados/Wordfast) by stripping out the tw4win indicators 2007-05-24 14:57 friedelwolff * lang/hy.py: Add basic support for Armenian (hy) 2007-05-24 14:34 friedelwolff * setup.py: Add poswap to tools for installation 2007-05-24 14:33 friedelwolff * tools/poswap, tools/poswap.py: Add poswap - a tool that enables translating from another source langauge besides English 2007-05-24 11:49 friedelwolff * filters/test_checks.py: Remove tests for msgid comments (kde style comments) to reflect the new functionality of the checks 2007-05-24 11:48 friedelwolff * filters/test_pofilter.py: Test that we definitely don't pass the msgid comment (kde style comment) to pofilter 2007-05-24 11:47 friedelwolff * filters/checks.py: Remove unnecessary code to remove msgid comments (kde style comments). This is already done when parsing PO files 2007-05-24 11:40 friedelwolff * storage/po.py: Fix weird wrapping bug 2007-05-24 11:39 friedelwolff * storage/test_po.py: Test for weird wrapping bug 2007-05-23 13:29 friedelwolff * tools/pocount.py: Ignore CSV and .svn directories 2007-05-23 13:06 friedelwolff * setup.py: Package all the non-python tools as well 2007-05-23 12:42 friedelwolff * __version__.py: Version 1.0rc3 2007-05-23 12:29 friedelwolff * storage/factory.py: Raise a ValueError on unknown filetype 2007-05-23 12:29 friedelwolff * tools/pocount.py: Deal better with certain errors (like unknown file type) 2007-05-23 11:44 friedelwolff * lang/common.py: Comment out debug messages in preparation for release 2007-05-23 10:56 friedelwolff * README: Note about common installation failure 2007-05-23 10:47 friedelwolff * README: Mention psyco, fix incorrect version number 2007-05-23 10:15 friedelwolff * README: Fix python-Levenshtein URL and mention optional iso-codes dependency 2007-05-23 10:01 friedelwolff * tools/pocount.py: Handle non-PO flavoured XLIFF files properly 2007-05-23 09:02 friedelwolff * convert/pot2po.py: Add the option --nofuzzymatching to disable fuzzy matching entirely 2007-05-23 09:00 friedelwolff * services/lookupservice.py: Ensure that we are dealing with unicode strings 2007-05-23 08:57 friedelwolff * services/lookupservice.py: Deal better with errors in the called functions 2007-05-23 08:56 friedelwolff * README: Update information on Python versions and mention python-Levenshtein 2007-05-23 08:52 friedelwolff * search/match.py: Convert multistrings to unicode to avoid problems with the native Levenshtein implementation. This might also help with plural matches. 2007-05-23 08:50 friedelwolff * search/match.py: Update to new lshtein module name. Tidy up imports. 2007-05-23 08:48 friedelwolff * search/test_Levenshtein.py, search/test_lshtein.py: Move test_Levenshtein.py to test_lshtein.py for uniformity. 2007-05-23 08:46 friedelwolff * search/test_Levenshtein.py: Update to new lshtein module name 2007-05-23 08:44 friedelwolff * search/Levenshtein.py, search/lshtein.py: Move Levenshtein.py to lshtein.py to avoid clash with external package name. 2007-05-23 08:41 friedelwolff * search/Levenshtein.py: Use the fast C implementation if it is available. 2007-05-23 07:25 friedelwolff * tools/pocount.py: Use psyco if it is available 2007-05-22 11:24 andreaspauley * storage/test_base.py: Added an assertion to test_markup(). 2007-05-22 11:19 friedelwolff * search/Levenshtein.py: Optimise the test for the stop condition. Allow for speedup with 100% required match 2007-05-22 08:18 andreaspauley * storage/txt.py: Removed unused import of textwrap. 2007-05-22 07:18 friedelwolff * convert/pot2po.py: Build the index for the pot file for better performance 2007-05-22 07:15 friedelwolff * convert/pot2po.py: Make min_similarity actually work properly 2007-05-21 15:15 andreaspauley * storage/po.py, storage/test_po.py: Fix a spacing issue in po files. Lines should not start with a space. 2007-05-18 16:13 friedelwolff * __version__.py: Change build number to a number for easy comparison. This fixes the problem of Pootle not complaining when used with old translate toolkit 2007-05-18 16:09 friedelwolff * __version__.py: Version 1.0rc2 2007-05-18 08:58 friedelwolff * tools/pocount.py: Use precompiled re's 2007-05-18 08:53 friedelwolff * storage/po.py: Disable code to minimise diffs (using a template to fit new postring to) 2007-05-18 08:49 friedelwolff * tools/test_pomerge.py: Don't test for minimal diffs - we rather try to follow gettext output closely. 2007-05-16 11:05 friedelwolff * lang/data.py: Provide functions to translate language names, even with country name in brackets 2007-05-15 14:47 friedelwolff * CREDITS: Convert to UTF-8. Expand the contribution of Nicolas François 2007-05-15 13:32 friedelwolff * storage/po.py: [Contributed by Nicolas François] Rewrite isheader() for performance 2007-05-15 13:26 friedelwolff * tools/test_pomerge.py: +test_comments_with_blank_lines 2007-05-09 15:41 friedelwolff * storage/xliff.py: Comment out istranslted() with explanation. This way xliff statistics should be correct. 2007-05-09 15:27 friedelwolff * storage/po.py: Simplify a parsing loop somewhat for performance. This avoids unnecessary creation of translation units 2007-05-09 14:50 friedelwolff * storage/po.py: Ensure that all multistring parts in the source is unicode 2007-05-09 14:48 friedelwolff * storage/test_po.py: Test that all multistring parts are unicode 2007-05-09 12:14 friedelwolff * storage/base.py, storage/test_base.py: Don't make a unit a statistics object as this affects performance quite badly 2007-05-09 10:16 andreaspauley * convert/test_oo2po.py, storage/oo.py: Fixed a bug where the filename got lost during oo2po conversion. 2007-05-08 09:34 friedelwolff * README: Add comment about documentation in the doc/ directory 2007-05-08 09:29 friedelwolff * search/test_match.py: Test extendtm() 2007-05-08 09:29 friedelwolff * search/match.py: Add method extendtm(units, store) to extend the TM with more units. 2007-05-07 10:38 friedelwolff * storage/base.py: Close file after reading in parsefile() 2007-05-07 10:13 dwaynebailey * convert/test_ts2po.py, convert/ts2po.py: Make sure we can carry \n from TS file to PO. We were using .msgid and .msgstr changed to .source and .target and solved the problem 2007-05-05 11:58 friedelwolff * lang/el.py: [contributed by Rail Aliev] Fix typo in dictionary decleration 2007-05-03 19:40 friedelwolff * __version__.py: Change the version to 1.0rc1 2007-05-03 12:08 andreaspauley * storage/statistics.py, storage/test_base.py: Patch contributed by Hok Kakada: Updated statistics to do lazy classification of units. Also changed method names to be more logical. 2007-05-02 09:20 friedelwolff * lang/ja.py: Some basic punctuation rules for Japanese 2007-05-02 09:18 friedelwolff * lang/test_vi.py, lang/vi.py: Some basic punctuation rules for Vietnamese 2007-05-02 09:12 friedelwolff * lang/el.py: Some basic punctuation rules for Greek 2007-05-02 09:10 friedelwolff * lang/am.py: Some basic punctuation rules for Amharic 2007-05-02 08:25 friedelwolff * convert/pot2po.py: Don't use any obsolete units the pot file might have for some reason 2007-05-02 08:16 friedelwolff * storage/base.py: Account for cases where .notes do not exist 2007-05-02 07:38 friedelwolff * filters/pofilter.py: Mentions that --language is not only for spell checking 2007-05-02 07:36 friedelwolff * filters/decoration.py: Test more elaborately for valid accelerator characters by trying to decompose to catch letters with diacritics 2007-05-02 07:35 friedelwolff * filters/test_checks.py: Test that we fail with an accelerator on a letter with a diacritic (like ê) 2007-05-02 07:14 friedelwolff * filters/test_checks.py: Test for more quoting style possibilities in combination with xml attributes 2007-05-02 07:10 friedelwolff * filters/checks.py: Ensure we are using unicode strings in fails_serious() 2007-05-02 07:08 friedelwolff * filters/checks.py: Filter out any xml before testing for valid double quotes. Incorrect attribute quoting will be tested by the xmltags test. 2007-04-25 17:20 andreaspauley * convert/html2po.py, filters/checks.py, filters/decoration.py, filters/prefilters.py, search/terminology.py, storage/po.py, storage/poheader.py, storage/properties.py, storage/xpi.py, tools/poconflicts.py, tools/pocount.py, tools/podebug.py, tools/pogrep.py: Changed sre references to re. 2007-04-23 12:33 andreaspauley * storage/statistics.py: Speed improvements by Nicolas Francois. 2007-04-23 10:16 andreaspauley * convert/oo2po.py, convert/test_oo2po.py: Fixed backslash escaping on oo2po. This fixes bug #230. 2007-04-23 10:10 andreaspauley * convert/test_po2oo.py: Updated the roundtripstring method. The targetlanguage needs to be supplied for the tests to accurately mimic what happens on the command line. 2007-04-23 09:59 andreaspauley * convert/test_oo2po.py: Change test_escapes_helpcontent2 so that it reflects what is happening in the official OpenOffice.org pot files supplied by Pavel. 2007-04-19 11:26 friedelwolff * filters/checks.py: Use lang.punctranslate to adapt the punctuation style before testing punctuation related things. 2007-04-19 06:40 friedelwolff * lang/data.py: Add Lingala plural information 2007-04-17 15:53 friedelwolff * lang/test_zh.py: Test basic Chinese punctuation translation and sentence segmenting 2007-04-17 15:44 friedelwolff * lang/zh.py: Basic support for Chinese (all types) 2007-04-13 15:47 friedelwolff * filters/test_checks.py: Test for some possible confusions with French and Chinese puntuation 2007-04-13 15:42 friedelwolff * lang/common.py: Add horizontal ellips unicode 0x2026 to sentenceend (used in test_checks) 2007-04-13 15:38 friedelwolff * lang/common.py: Add horizontal ellips unicode 0x2026 to miscpunc (used in test_checks) 2007-04-13 15:37 friedelwolff * filters/checks.py: Rather get the punctuation characters from the language module 2007-04-13 15:32 friedelwolff * filters/checks.py: Deal better with encoding problems by ensuring that strings for testing are always unicode. 2007-04-13 14:28 friedelwolff * lang/common.py: Fix syntax error in joining of punctuation lists 2007-04-13 14:28 friedelwolff * lang/test_factory.py: Test that we can correctly import Icelandic (the code 'is' is a reserved word in python and used to cause problems) 2007-04-13 14:27 friedelwolff * lang/factory.py: Handle language codes that are reserved words in python 2007-04-13 10:07 friedelwolff * lang/common.py: Add inverted (Spanish) punctuation that got dropped a few commits ago 2007-04-13 09:10 friedelwolff * lang/common.py: Add Armenian punctuation 2007-04-13 08:39 friedelwolff * lang/common.py: Split out different punctuation types for legibility and improve documentation 2007-04-13 07:36 friedelwolff * lang/common.py: Don't yield sentences that are just whitespace 2007-04-13 06:37 friedelwolff * filters/checks.py: Accept a language parameter in TeeChecker to update the configuration of each checker 2007-04-12 18:42 friedelwolff * tools/pocount.py: Catch all br tag styles. Update copyright and comments 2007-04-12 18:41 friedelwolff * tools/test_pocount.py: Test with different styles of br-tags (


) 2007-04-12 18:37 friedelwolff * tools/test_pocount.py: Remove two invalid tests: test_punctuation_only: puntuation is not a word, test_kde_comments_are_not_counted: the PO class handles the kde comments and never passes them here 2007-04-12 16:35 friedelwolff * lang/fa.py: Basic punctuation support for Persian (fa) 2007-04-12 16:19 friedelwolff * lang/common.py: Add Greek middot to puntuation list 2007-04-12 15:46 friedelwolff * lang/common.py: Add fullwidth puntuation marks as well as Arabic question mark 2007-04-12 13:50 andreaspauley * storage/lisa.py: Set the object encoding to the value found in the parsed xml string. External code that uses self.encoding with po files can now do so on lisa-based files as well. 2007-04-12 07:06 friedelwolff * storage/po.py: Ensure that we don't start with an empty "" unnecessarily 2007-04-11 06:11 andreaspauley * setup.py: Removed obsolete reference to editor, this has since been reneamed to pootling. 2007-04-10 11:47 andreaspauley * setup.py: The spelling directory should not be part of the toolkit distribution. 2007-04-05 14:14 friedelwolff * tools/pocount.py: Don't try to remove kde (msgid) comments - the PO class already handles that. 2007-04-05 14:12 friedelwolff * tools/pocount.py: Rewrite pocount sanely. Don't recount stats, don't recount totals, split display from counting 2007-04-05 10:11 andreaspauley * tools/pomerge.py: Change xliff file extension to .xlf 2007-04-04 14:12 friedelwolff * storage/statistics.py: Use a dictionary .classification to store the states. Now we don't reclassify all units each time we iterate through some set. Disable some of the code about pofilter checks and don't call classifyunits in the constructor. 2007-04-04 14:03 friedelwolff * storage/test_base.py: Add in extra calls to classifyunits() to ensure that statistics are newly calculated before it is used 2007-04-04 13:52 friedelwolff * convert/xliff2po.py: Rather test for isfuzzy() as this should have the correct semantics. Currently it calls isapproved() anyway 2007-04-04 13:51 friedelwolff * convert/po2xliff.py: Always call markfuzzy() for newly created XLIFF units to ensure that the approved attribute is always set 2007-04-04 13:46 friedelwolff * storage/test_xliff.py: Update testing to reflect new fuzzy behaviour. If the approved attribute is not specified, it is 'no' and the unit is considered fuzzy 2007-04-04 13:43 friedelwolff * storage/xliff.py: Update the behaviour of isfuzzy() and markfuzzy(). According to version 1.2 of the PO representation guide, only the approved attribute should be considered fuzzyness for backconversion to PO. This is the approach we now take in xliff. We still set the state and state-qualifier if there is a target, but this way we don't need a target. 2007-04-04 13:42 andreaspauley * __version__.py: Bumped version number for the release of beta 2. 2007-04-04 12:59 friedelwolff * filters/test_pofilter.py: Mark test units as approved to make them effectively not-fuzzy 2007-04-04 11:35 andreaspauley * doc/api/index.html, doc/user/toolkit-index.html: Added href's to the urls in the html placeholder documentation. 2007-04-04 11:22 andreaspauley * src/trunk/setup.py, doc/README, doc/api/index.html, doc/user/toolkit-index.html: Made changes to the setup script and some default doc files to allow setup.py to be run directly from a subversion checkout. 2007-04-03 14:01 friedelwolff * convert/xliff2po.py: Moved some comment code to poxliff and made xliff2po work with any xliff file 2007-04-03 13:51 friedelwolff * storage/lisa.py, storage/poxliff.py: Seek to start of file before reading, and don't close file after reading 2007-04-03 13:50 friedelwolff * storage/poxliff.py: Try to support the general notion of translator and developer comments and notes. Mostly carried over from xliff2po 2007-04-03 11:32 friedelwolff * convert/test_xliff2po.py: Test using a StringIO file 2007-04-03 09:34 andreaspauley * convert/xliff2po.py: Ensure that the input parameter for xliff2po conversion is a string. This is a workaround due to inconsistencies in the different conversion methods. 2007-04-02 14:12 friedelwolff * storage/xliff.py: Use the XLIFF id as the default location in XLIFF files 2007-04-02 03:17 hokkakada * storage/base.py: add more properties to base.py 2007-04-02 02:45 hokkakada * search/match.py: add more info for TM such as: filepath, translator, date, unitindex 2007-03-30 12:22 friedelwolff * storage/test_xliff.py: Test basic parsing of an xliff file with empty tag 2007-03-30 12:15 friedelwolff * storage/poxliff.py: Use iterator correctly in case of no plurals 2007-03-30 12:02 friedelwolff * storage/lisa.py: Only create a text node before a ph tag if there is text 2007-03-30 12:00 andreaspauley * storage/lisa.py: Only set the filename if it hasn't already been set. This fixes a bug in Pootle where jToolkit cannot send xliff files in plaintext to the browser because the filename has been lost. 2007-03-30 10:47 friedelwolff * storage/poxliff.py: Fix parsing of plural units. This fixes the wrong conversion of plurals from PO style XLIFF files back to PO. 2007-03-29 14:15 friedelwolff * convert/test_po2xliff.py: Test that messages with variables are converted correctly 2007-03-29 14:14 friedelwolff * misc/ourdom.py: Detect text nodes more acurately by searching through all children. Fixes the bug with variables at the start of the message 2007-03-29 11:38 friedelwolff * misc/ourdom.py: More attempts at making the XML output pretty: only indent for non-text nodes 2007-03-29 11:02 friedelwolff * storage/base.py: Implement generic isblank() correctly. This solves the problem of untranslated XLIFF units not displaying in Pootle 2007-03-29 09:47 andreaspauley * storage/base.py: Fix call to incorrect builtin method. 2007-03-27 15:11 friedelwolff * storage/lisa.py: Only append a text node if it contains anything. This avoids problems of incorrectly indenting empty fields for the purposes of pretty printing. 2007-03-27 08:28 friedelwolff * doc: Forward port doc/ directory from wordforge-0-10-branch 2007-03-26 12:32 friedelwolff * convert/test_txt2po.py: Expect the location comment in PO 2007-03-26 05:58 friedelwolff * misc/ourdom.py: Use _intern function from expatbuilder 2007-03-20 10:48 andreaspauley * convert/po2xliff.py: Change file extension from .xliff to .xlf 2007-03-12 12:14 andreaspauley * filters/checks.py, filters/test_checks.py: Added a checker for Creative Commons licenses. 2007-03-09 15:25 friedelwolff * convert/txt2po.py: Add location comments from the line numbers of the unit in the text file 2007-03-09 15:24 friedelwolff * storage/txt.py: Catch all dokuwiki headings. Implement .getlocations() 2007-03-09 14:01 friedelwolff * filters/checks.py: Remove startcaps<->simplecaps ignore entry 2007-03-09 09:33 friedelwolff * convert/test_oo2po.py: Test for bug 230 2007-03-01 12:25 andreaspauley * convert/test_po2csv.py: Test round-trip conversion (po2csv2po) with newlines. 2007-03-01 11:29 friedelwolff * lang/data.py: Fix typo where Turkish plural equation is not a string 2007-03-01 10:47 andreaspauley * convert/test_csv2po.py: Update the csv2po test to reflect the changes made yesterday to csv2po. 2007-03-01 10:47 friedelwolff * lang/test_factory.py: Test that the plural equation is retrieved from the data module 2007-03-01 10:47 friedelwolff * lang/common.py: Fix typo 2007-02-28 15:21 andreaspauley * storage/csvl10n.py: Don't remove newlines and carriage returns in field values. 2007-02-28 15:17 friedelwolff * convert/csv2po.py: Properly convert cvs unit with base class methods without doing the escaping here. 2007-02-27 13:36 friedelwolff * filters/checks.py: More preconditions to ignore certain tests. Update the target language correctly in the config. 2007-02-26 13:29 andreaspauley * convert/test_html2po.py, storage/html.py: Ensure that text containing the charset is not seen as translatable text. 2007-02-26 13:24 andreaspauley * storage/html.py: Introduce addhtmlblock() as a replacement for addcurrentblock(), and ensure that it is used troughout the code. 2007-02-26 12:54 friedelwolff * lang/factory.py: Try to simplify language code and construct an object if necessary. This now supports country codes and dialect codes. 2007-02-26 12:52 friedelwolff * lang/test_factory.py: Test more languages (country code and non-existing module) 2007-02-26 12:51 friedelwolff * lang/common.py: Use language data when constructing a language object 2007-02-26 12:48 friedelwolff * lang/data.py: Add language data (currently only plural information) 2007-02-26 12:12 andreaspauley * storage/html.py: Make strip_html() search over multiple lines. 2007-02-26 11:22 andreaspauley * convert/test_html2po.py, storage/html.py: Remove unnecessary html when converting from html to po. 2007-02-23 13:38 andreaspauley * setup.py: Include api documentation in the binary distribution. 2007-02-22 15:24 andreaspauley * storage/test_csvl10n.py, storage/test_dtd.py, storage/test_monolingual.py, storage/test_properties.py, storage/test_tbx.py, storage/test_tmx.py, storage/test_txt.py: Remove setup_method() in subclasses, in favour of the method in test_base.py 2007-02-22 15:08 andreaspauley * storage/test_base.py: Make use of the unit created by setup_method(). 2007-02-21 14:54 andreaspauley * storage/test_tmx.py: Remove some whitespace in the tmx source string. 2007-02-21 14:46 andreaspauley * storage/test_tmx.py: Make a new test class for TMX units where the unit is obtained using parsestring(), as is done with factory.getobject(). This will ensure that the way LISA units is typically obtained in the wild is also used in our tests. Currently this test class only triggers the new test_isfuzzy() in a sensible way. 2007-02-21 14:41 andreaspauley * storage/base.py, storage/test_base.py: Make base just return False when doing fuzzy queries, include a base test for isfuzzy(). 2007-02-21 14:19 andreaspauley * storage/test_base.py: Only test fuzzy counting for units that can be set as fuzzy. 2007-02-21 12:50 friedelwolff * convert/test_html2po.py: Improve two docstrings 2007-02-21 12:50 friedelwolff * search/terminology.py: Sort terminology suggestions according to their position in the string 2007-02-20 17:40 andreaspauley * setup.py: Include our documentation in the source distribution. 2007-02-20 17:20 andreaspauley * setup.py: Remove pootling files from our toolkit distribution. 2007-02-20 15:37 friedelwolff * lang/test_common.py: Test that apostrophes and hyphenation doesn't confuse the word segmentation. 2007-02-20 15:32 friedelwolff * lang/test_af.py: Add test for Afrikaans sentence segmentation with "'n". 2007-02-20 15:30 friedelwolff * lang/ar.py: Add module for Arabic with initial punctuation information. 2007-02-20 15:09 friedelwolff * storage/txt.py: Initial work to support better format preservation. 2007-02-20 14:54 friedelwolff * storage/txt.py: Fix flavourless text files (uninitialised variable) 2007-02-20 14:03 friedelwolff * filters/checks.py, storage/po.py: Fix encoding problem with non-ascii messages in filter messages 2007-02-20 13:39 andreaspauley * setup.py: Remove subversion directories from our distribution. 2007-02-20 09:52 hokkakada * lang/test_common.py: Use unicode instead of normal strings 2007-02-20 08:14 friedelwolff * lang/test_fr.py: Use unicode instead of normal strings 2007-02-19 15:59 friedelwolff * filters/test_checks.py: Count a sentence without an ending fullstop as a single sentence. The error should be checked by endpunc, not sentencecount. 2007-02-19 15:57 friedelwolff * filters/checks.py: Rewrite sentencecount() to use the sentence segmentation from the lang/ module 2007-02-19 12:54 friedelwolff * lang/af.py: Remove wrong comment from docstring. 2007-02-19 12:46 friedelwolff * lang/test_km.py: Test sentence segmentation in Khmer. 2007-02-19 12:45 friedelwolff * lang/test_km.py: Test punctuation translation for Khmer. 2007-02-19 12:25 friedelwolff * lang/test_fr.py: Test sentence segmentation with spaced punctuation. 2007-02-19 12:24 friedelwolff * lang/test_fr.py: Test punctuation translation from French 2007-02-19 12:23 friedelwolff * lang/fr.py: Add French specific punctuation translation (space before two part punctuation). Also handle french quotes (guillemets). 2007-02-19 12:20 friedelwolff * lang/fr.py: Add module for French (fr) 2007-02-19 12:18 friedelwolff * lang/test_common.py: Test sentence segmentation. 2007-02-19 12:18 friedelwolff * lang/test_common.py: Test word segmentation. 2007-02-19 12:13 friedelwolff * lang/common.py: Improve sentece segmentation with more involved regular expression. Derive Common from object. 2007-02-19 12:09 friedelwolff * lang/km.py: Remove wrong comment from docstring. 2007-02-16 12:34 andreaspauley * storage/base.py: Remove the need to override the __str__ and parsestring methods. 2007-02-14 14:50 friedelwolff * storage/base.py: Reorder calls to parent constructors. Handle None better in .gettargetlen(). Remove NotImplementedException. 2007-02-14 14:46 friedelwolff * storage/properties.py: Handle None source and target better. 2007-02-14 13:37 andreaspauley * setup.py: Add the lang module to setup.py 2007-02-14 11:43 friedelwolff * storage/statistics.py: Deal correctly with missing plurals. 2007-02-14 11:41 friedelwolff * storage/statistics.py: Refactor code from Pootle/statistics.py for unit classification. Everything except has-suggestion is ported. Improve constructor for languages and checker. 2007-02-14 10:55 friedelwolff * storage/statistics.py: Small cleanups. Add licence, docstrings, handle plurals, etc. 2007-02-14 09:32 andreaspauley * storage/test_factory.py, storage/xliff.py: Fixed a recursion error that was triggerred when an xliff file did not have any origin attribute in the file tag, as well as no restype attribute in trans-unit. 2007-02-14 09:10 friedelwolff * storage/base.py: Rewrite filename handling and class instantiation in .save() to work with gzip. 2007-02-14 08:00 andreaspauley * storage/base.py: Add getcontext() to base. 2007-02-14 07:51 friedelwolff * storage/base.py, storage/test_base.py: Rewrite .save() for readability and ease testing by hiding .fileobj from pickle. +Test. 2007-02-14 07:51 andreaspauley * storage/statistics.py: Use the unit iterator. 2007-02-14 07:15 friedelwolff * storage/base.py: Implement .save() to allow a file to save back to the original file. Useful for compressed formats and future database storage formats. 2007-02-14 06:39 friedelwolff * storage/po.py: Reimplement unit_iter for po to ignore obsolete units. 2007-02-13 16:00 friedelwolff * storage/test_zip.py, storage/zip.py: Module that provides the ZIPFile class that represents the archive like a directory. +Test 2007-02-13 15:53 friedelwolff * storage/directory.py, storage/test_directory.py: Test the unit iterator better and fix iterator bug. 2007-02-13 15:09 andreaspauley * lang/factory.py: Replace dash with underscore in language codes. 2007-02-13 15:06 andreaspauley * storage/base.py, storage/csvl10n.py, storage/dtd.py, storage/po.py, storage/properties.py, storage/statistics.py, storage/test_base.py, storage/test_txt.py, storage/txt.py, storage/xliff.py: Initial statistics support for the toolkit. 2007-02-13 10:58 friedelwolff * storage/factory.py, storage/test_factory.py: Support directories in factory. +test. 2007-02-13 10:41 friedelwolff * storage/test_factory.py: Test that the factory works correctly with gz and bz2 compressed files. 2007-02-13 10:08 friedelwolff * storage/base.py, storage/factory.py: Support opening a single file compressed as .bz2 or .gz. For example pt_BR.po.gz 2007-02-13 09:19 friedelwolff * storage/factory.py: Remove TODO that is already done (format guessing) 2007-02-13 09:17 friedelwolff * storage/base.py: Provide unified unit accessors for use in statistics 2007-02-13 09:10 friedelwolff * storage/directory.py, storage/test_directory.py: Initial support for directories. This provides a unified way to access files in a directory structure, and basic support for getting directory wide statistics. 2007-02-13 07:49 friedelwolff * tools/pocount.py: Use the language module to count words. 2007-02-11 10:38 friedelwolff * lang/km.py: Ignore 'startcaps' and 'simplecaps' in pofilter for Khmer 2007-02-11 10:36 friedelwolff * filters/checks.py: When gathering tests, start by ignoring specific tests for this language. Retrieve .ignoretests from the language module. 2007-02-11 10:34 friedelwolff * lang/common.py: Add .ignoretests - a list of pofilter tests for this language that must be ignored. 2007-02-11 10:32 friedelwolff * lang/common.py: Improve documenation for class variables. Update list of supported features. 2007-02-11 09:09 friedelwolff * filters/checks.py, filters/test_checks.py: Use .punctranslate() from the language to improve the endpunc test. Add a test for Khmer. 2007-02-11 08:51 friedelwolff * lang/km.py: Define .puncdict for .punctranslate() to work for Khmer 2007-02-11 08:48 friedelwolff * lang/common.py: Add .punctranslate() to convert punctuation to the rules of the language. 2007-02-11 08:46 friedelwolff * lang/factory.py: Only catch import errors while looking for a language module. Deal correctly with None 2007-02-11 07:07 friedelwolff * filters/checks.py: Use the word segmentation from the lang module rather than split(). 2007-02-11 07:06 friedelwolff * filters/test_checks.py: Add extra test for acronyms with punctuation 2007-02-11 07:03 friedelwolff * lang/common.py: Move character, word and sentence segmentation from search/ to common. Word segmentation works reasonably for most languages. 2007-02-11 07:01 friedelwolff * lang/test_factory.py: Expand test with None as language code 2007-02-10 11:18 andreaspauley * storage/factory.py: Docstring improvement. 2007-02-10 10:47 friedelwolff * filters/checks.py, filters/test_checks.py: Add nplurals test that uses the lang module to determine that we have the correct number of plural forms in the target 2007-02-10 10:00 friedelwolff * lang, lang/__init__.py, lang/af.py, lang/common.py, lang/factory.py, lang/km.py, lang/test_factory.py: Initial language infrastructure in module lang 2007-02-10 07:15 andreaspauley * storage/base.py, storage/xliff.py: Some docstring improvements. 2007-02-10 07:12 hokkakada * storage/po.py: update doc strings 2007-02-08 09:42 andreaspauley * storage/html.py: Improve the check for untranslatable content. 2007-02-08 09:27 andreaspauley * convert/test_html2po.py, storage/html.py: Ignore untranslatable content in html2po. 2007-02-07 16:39 andreaspauley * storage/html.py: Use a case-insensitive regex to guess the file encoding. 2007-02-07 15:19 andreaspauley * convert/html2po.py, convert/test_html2po.py, storage/html.py: Decode html text using the supplied charset found in the meta tag. 2007-02-06 16:50 andreaspauley * convert/test_html2po.py, convert/test_txt2po.py, storage/html.py, storage/txt.py: Ensure that carriage return characters doesn't appear in po files when converting from text or html. 2007-02-05 11:16 friedelwolff * convert/test_po2txt.py: Expect --encoding parameter 2007-02-05 11:08 friedelwolff * convert/test_txt2po.py, convert/txt2po.py: Add --encoding parameter 2007-02-05 10:45 friedelwolff * storage/txt.py: Make text class more encoding aware 2007-02-05 07:16 friedelwolff * convert/po2txt.py: Support different encodings for the template file, but assume utf-8 as default 2007-02-02 15:25 friedelwolff * convert/txt2po.py, storage/txt.py: Support for MediaWiki syntax 2007-02-02 14:55 friedelwolff * convert/test_txt2po.py: Test correct conversion of dokuwiki text to PO 2007-02-02 14:54 friedelwolff * convert/txt2po.py: Add support for text file flavours 2007-02-02 14:42 friedelwolff * storage/txt.py: Initial support for wiki style syntax 2007-02-02 07:46 friedelwolff * storage/base.py: Rewrite sourceindex code to allow for any number of noun forms in the source language. Update copyright information 2007-02-02 07:32 friedelwolff * convert/txt2po.py: Fix typo 2007-02-01 10:13 friedelwolff * storage/txt.py: Add the encoding, copyright, and docstring 2007-01-31 15:21 friedelwolff * convert/test_pot2po.py: Test that automatic comments get converted correctly when the location changes 2007-01-31 15:20 friedelwolff * search/match.py: Only gather the translator notes (comments), otherwise we might end up getting programmer notes in the translator notes if the unit is used 2007-01-30 17:35 dwaynebailey * convert/po2txt.py, convert/test_po2txt.py, convert/test_txt2po.py, convert/txt2po.py, storage/test_txt.py, storage/txt.py: Create a txt.py based on the base class and adapt txt2po and po2txt to use this. There might be some minor incompatabilities but this paves the way for txt to be a fully fledged base class derived storage format. 2007-01-30 14:00 andreaspauley * README, convert/po2html.py, convert/test_po2html.py: Fix po2html so that the translations in a po file can be merged back into an html template. Used htmltidy on the html output. 2007-01-29 11:11 andreaspauley * convert/test_html2po.py, storage/html.py: Line breaks within html text were not treated correctly. Wrote some tests and a fix. 2007-01-29 11:05 andreaspauley * convert/html2po.py: Assume a file with a nonstandard extension will be in html format. I mean, the convertor IS called html2po. This is needed because the static html files used by Apache for content negotiation is named (for example) index.html.en by default. 2007-01-26 07:41 andreaspauley * storage/po.py, storage/poheader.py, tools/pomerge.py, tools/test_pomerge.py: Allows pomerge to merge po headers. This fixes TestPOMerge().test_merging_header_entries 2007-01-25 07:11 friedelwolff * search/match.py: Update the docstring to reflect new return type, etc. 2007-01-24 12:55 andreaspauley * storage/po.py, tools/test_pomerge.py: Remove any kde-style msgidcomments from the translation when merging. 2007-01-24 12:25 andreaspauley * storage/po.py, storage/test_po.py: Merged the two extract_msgidcomments methods into one. 2007-01-24 11:08 andreaspauley * storage/po.py, storage/test_po.py, tools/test_pomerge.py: Cater for kde-style msgid comments in translations. This fixes TestPOMerge().test_merging_dont_merge_kde_comments_found_in_translation. 2007-01-23 16:43 andreaspauley * tools/test_pomerge.py: Changed a test for tabs in pomerge so that the desired behaviour copy that of gettext. Marked the test as inactive for now, because making it pass breaks a lot of the layout/minimal diff tests. 2007-01-22 15:35 andreaspauley * storage/po.py: This fixes test_pomerge.test_merge_dos2unix 2007-01-22 15:32 andreaspauley * convert/pot2po.py: Small docstring change. 2007-01-22 15:03 andreaspauley * storage/factory.py: Increase the number of characters to look at when trying to guess the file type. 2007-01-22 14:31 andreaspauley * convert/test_pot2po.py: Fixed some tests. 2007-01-22 13:47 dwaynebailey * storage/test_po.py: Add a wishlist test for bug 191 - handling KDE style plurals. 2007-01-22 11:39 andreaspauley * misc/optrecurse.py: Docstring changes to RecursiveOptionParser. 2007-01-19 09:40 andreaspauley * storage/test_base.py, storage/test_properties.py: Split test_escapes() into 2 seperate tests, and force a pass for test_properties.py. Created bug 223 so as not to forget about the issue. 2007-01-19 08:38 friedelwolff * storage/xliff.py: Fix tab -> spaces 2007-01-19 08:11 friedelwolff * storage/xliff.py: Adapt remove notes to always only remove translator notes (like PO does) 2007-01-19 07:26 friedelwolff * storage/xliff.py: rewrite removenotes() to take origin parameter into account 2007-01-19 07:23 andreaspauley * __init__.py: Moved the licence text out of the docstring, and just put in a URL to to GPL. 2007-01-18 14:33 friedelwolff * storage/xliff.py: Indicate that method is for internal use only 2007-01-18 14:06 andreaspauley * __init__.py, storage/base.py: Updated some docstrings to improve the epydoc generated API documentation. 2007-01-17 09:20 friedelwolff * storage/xliff.py: Don't call getElementsByTagName on document.childNodes[0], since we might get a doctype and not a node [Fix for bug 221] 2007-01-17 08:51 friedelwolff * convert/xliff2po.py: Change expected extention from .xliff to .xlf 2007-01-15 10:43 friedelwolff * README: Fix link to toolkit documentation on the wiki 2007-01-11 15:11 friedelwolff * tools/pomerge.py: Fix tab -> spaces 2007-01-11 15:09 friedelwolff * __version__.py: Up the version to 1.0beta 2007-01-11 14:53 friedelwolff * README: Some updates to the old README file. Could use more attention. 2007-01-11 14:49 friedelwolff * storage/xliff.py: Mention that the official recommended file name extention is .xlf. Mark a TODO 2007-01-11 14:45 friedelwolff * storage/factory.py: Simplify the file type guessing code to just work with file extention 2007-01-05 14:56 friedelwolff * storage/xliff.py: Take out old modifications to minidom class and adapt file to use the new ourdom code 2007-01-05 14:27 andreaspauley * storage/po.py, storage/test_po.py: Made kde-style msgid comments available via getcontext(). 2007-01-05 12:28 friedelwolff * storage/lisa.py, storage/poxliff.py, storage/tbx.py, storage/tmx.py: Remove references to minidom and replace (where necessary) with misc/ourdom 2007-01-05 11:58 friedelwolff * storage/test_factory.py: Remove roundtrip formatting test. Add assert to test for correct objects when we don't have a name 2007-01-05 09:38 friedelwolff * misc/ourdom.py: Fix the wrong layout of text nodes with nested tags and add some notes about use. 2007-01-04 16:07 dwaynebailey * storage/po.py: Add "previous msgid" structure to example PO layout. Add comments about which version of Gettext adds new features. Correct the docstring for setsource. 2007-01-04 16:00 dwaynebailey * misc/ourdom.py: Better docstring and remove reference to .ts 2007-01-04 14:39 friedelwolff * storage/ts.py: Take out the dom manipulations that are now in misc/ourdom.py and adapt to the new location 2007-01-04 14:30 friedelwolff * misc/ourdom.py: Add helper class that reimplements some dom functionalities. This is mostly just moved from storage/ts.py 2007-01-04 11:06 andreaspauley * storage/po.py, storage/test_po.py: Added message context (msgctxt) support for po. 2007-01-03 14:23 dwaynebailey * storage/test_properties.py: Fix failing test. We need to check more closely on what the spec says but until then Bye bye test. 2007-01-02 11:06 friedelwolff * storage/xliff.py: Remove specialised parsefile to rather use the inherited one, since no specialisation is necessary anymore 2006-12-28 15:03 friedelwolff * filters/checks.py: Ensure that the filtermessage is a string to avoid encoding problem in pofilter 2006-12-28 08:29 friedelwolff * convert/po2oo.py: Make unicode location a string before printing to screen. Fix for bug 211 2006-12-27 14:09 friedelwolff * storage/po.py: Detect the encoding from the header somewhat earlier. Fix for bug 193 2006-12-27 11:45 friedelwolff * storage/test_xliff.py: Typo 2006-12-27 11:43 friedelwolff * storage/xliff.py: Typo 2006-12-24 10:14 andreaspauley * storage/properties.py: Made the properties unit class call it's base constructor. 2006-12-24 10:10 andreaspauley * storage/csvl10n.py, storage/dtd.py, storage/test_csvl10n.py, storage/test_dtd.py: Made the unit classes for dtd and csv call their base class constructors, and this made some tests obsolete that previously had to override the desired behaviour. 2006-12-22 10:34 friedelwolff * storage/test_xliff.py: Update test for alt-trans implementation. Translations are now accessed with .source and .target like normal units 2006-12-22 10:33 friedelwolff * storage/xliff.py: Update support for alt-trans tags. Correctly construct target tag inside alt-trans tag. getalttrans() now returns simple units to be able to access source and target (and more in future). +delalttrans(). +Some TODO 2006-12-21 20:32 dwaynebailey * storage/ts.py: Implement writexml for .TS files so that and tags are not wrapped. 2006-12-19 07:39 jens_herden * storage/poxliff.py: undo my last commit. It turned out that the bug did not exist. I am not sure which bug I saw in the past. 2006-12-19 07:18 jens_herden * storage/poxliff.py: fix for bug 208 now the header is also parsed please review! 2006-12-14 12:15 dwaynebailey * convert/test_txt2po.py: Add some new tests 2006-12-12 14:13 jens_herden * storage/po.py, storage/poheader.py, storage/poxliff.py, storage/test_po.py, storage/test_poheader.py: - introduce a new class poheader - remove the old poheader form po.py - use the class in pofile and PoXliffFile - create tests for poheader (not ready for PoXliffFile because of bug 208) 2006-12-12 13:43 jens_herden * misc/dictutils.py, misc/test_dictutils.py: implement the missing pop() and test it 2006-12-12 13:31 andreaspauley * convert/xliff2oo, convert/xliff2oo.py: Initial hackish implementation of xliff2oo, based on a copy of xliff2po. Proper refactoring to follow. 2006-12-12 13:28 jens_herden * misc/dictutils.py, misc/test_dictutils.py: - fix remove in ordereddict, entry was not removed from list - create test for the fix 2006-12-12 13:15 andreaspauley * convert/oo2xliff, convert/oo2xliff.py: Initial hackish implementation of oo2xliff, based on a copy of oo2po. Proper refactoring to follow. 2006-12-12 12:22 andreaspauley * storage/xliff.py: Removed target-language from the xliff skeleton, as it is an optional attribute according to the xliff spec. 2006-12-12 12:08 dwaynebailey * convert/po2csv.py: the{po,csv} -> {po,csv}unit 2006-12-12 12:02 dwaynebailey * convert/po2csv.py: element -> unit 2006-12-12 12:00 dwaynebailey * convert/csv2po.py: the{po,csv} -> {po,csv}unit 2006-12-12 11:04 dwaynebailey * convert/csv2po.py: element -> unit 2006-12-12 10:22 dwaynebailey * convert/po2dtd.py: Convert: the{po,dtd} -> {po,dtd}unit 2006-12-12 09:41 dwaynebailey * convert/prop2po.py: Name cleanup the{po,prop} -> {po,prop}unit 2006-12-12 09:34 andreaspauley * convert/test_po2xliff.py: Specified the target language in the tests. This fixes test_language_tags. 2006-12-12 09:24 andreaspauley * storage/xliff.py: Allowed the target language to be specified for xliff. 2006-12-11 09:19 andreaspauley * tools/pocompile.py, tools/poconflicts.py, tools/pocount.py, tools/podebug.py, tools/pogrep.py, tools/pomerge.py, tools/porestructure.py: Enabled .py files in tools to be run directly, without needing the wrapper script. 2006-12-11 09:10 andreaspauley * services/lookupservice.py: Enabled lookupservice.py to be run directly, without needing the wrapper script. 2006-12-11 09:07 andreaspauley * filters/pofilter.py: Enabled pofilter.py to be run directly, without needing the wrapper script. 2006-12-11 08:58 andreaspauley * convert/csv2po.py, convert/csv2tbx.py, convert/html2po.py, convert/moz2po.py, convert/nb2po.py, convert/oo2po.py, convert/po2csv.py, convert/po2html.py, convert/po2moz.py, convert/po2nb.py, convert/po2oo.py, convert/po2tmx.py, convert/po2ts.py, convert/po2txt.py, convert/pot2po.py, convert/sxw2po.py: Enabled .py files in convert to be run directly, without needing the wrapper script. 2006-12-11 08:34 andreaspauley * convert/po2xliff.py: Enabled po2xliff.py to be run directly, without needing the wrapper script. 2006-12-08 11:19 andreaspauley * convert/test_po2xliff.py: Changed tabs to spaces. 2006-12-07 07:34 andreaspauley * storage/factory.py: Made the return value for guesstype() a bit more descriptive. 2006-12-06 14:59 andreaspauley * storage/factory.py: The previous storage factory commit broke quite a few of our tests in convert, this fixes it. 2006-12-06 12:39 andreaspauley * tools/pomerge.py: Removed a factory method inside pomerge, changed the code to rather use the updated storage factory. 2006-12-06 12:38 andreaspauley * storage/factory.py, storage/test_factory.py: The storage factory can now guess the filetype by looking at the contents of a file. Implemented for xliff and po. Wrote some new factory tests and refactored the factory tests. 2006-12-05 09:26 andreaspauley * filters/pofilter.py, filters/test_pofilter.py: Updated pofilter and the tests to use adderror() and geterrors() from the storage api, rather than add po-specific translator comments. 2006-12-05 09:23 andreaspauley * storage/base.py, storage/po.py, storage/test_base.py, storage/test_csvl10n.py, storage/test_monolingual.py, storage/test_properties.py, storage/test_tbx.py, storage/test_tmx.py, storage/xliff.py: Added 2 new methods to the base api: adderror and geterrors. Primarily for the use of pofilter. Wrote base class test for these methods, and implemented it in po and xliff. 2006-12-04 12:30 andreaspauley * storage/base.py: Replaced tabs with spaces. 2006-12-01 09:55 andreaspauley * storage/base.py, storage/properties.py, storage/test_base.py, storage/test_csvl10n.py, storage/test_dtd.py, storage/test_poxliff.py, storage/test_xliff.py, storage/xliff.py: Made sure that getnotes() behaves consistently across all storage implementations. 2006-11-30 20:56 dwaynebailey * filters/test_checks.py: Remove duplicate test 2006-11-30 16:43 andreaspauley * storage/poxliff.py: Removed unnecessary code from poxliff.py 2006-11-30 15:25 andreaspauley * storage/xliff.py: Replaced tabs with spaces in parsestring(). 2006-11-28 09:57 andreaspauley * filters/pofilter.py, filters/test_pofilter.py: Made pofilter work with xliff. Refactored test_pofilter so that base class tests can be run for any file format. 2006-11-28 09:54 andreaspauley * storage/base.py, storage/po.py, storage/test_base.py, storage/test_csvl10n.py, storage/test_dtd.py, storage/test_monolingual.py, storage/test_tbx.py, storage/test_tmx.py, storage/xliff.py: Added a markreviewneeded() method to the base API, implemented it in xliff.py and po.py 2006-11-23 12:17 dwaynebailey * convert/test_pot2po.py: Mark a wishlist test 2006-11-23 12:15 dwaynebailey * convert/test_convert.py: Make sure Psyco doesn't get in the way 2006-11-23 11:51 dwaynebailey * convert/po2prop.py: Return the exit status from the parent function. 2006-11-23 09:00 andreaspauley * tools/pogrep.py, tools/test_pogrep.py: Removed all po-specific usage and naming conventions from pogrep. 2006-11-22 23:08 dwaynebailey * convert/po2txt.py, convert/test_po2txt.py: Correctly handle the non template version of po2txt. Without a template we simply use the source text. We now are able to use the source properly is the message is untranslated or fuzzy. 2006-11-22 22:39 dwaynebailey * convert/po2txt.py, convert/test_po2txt.py: When merging .txt translations into a template we will no longer use blank messages. We can optionally use fuzzy messages with teh --fuzzy and --nofuzzy options. 2006-11-22 19:39 dwaynebailey * filters/test_checks.py: Add references to bug 178 and also add some more tests for 'unchanged' issues (all of which now passs) 2006-11-22 19:20 dwaynebailey * filters/checks.py, filters/test_checks.py: Filter abbreviations of the form a.b.c. from sentences before counting sentences. 2006-11-22 19:05 dwaynebailey * filters/checks.py, filters/test_checks.py: Check that once variables and spaces are removed, that if we are left with only punctuation that we don't consider this a candidate for the 'unchanged' test. 2006-11-22 18:56 dwaynebailey * filters/checks.py, filters/test_checks.py: Ignore accronyms in teh 'unchanged' test 2006-11-22 11:53 dwaynebailey * convert/test_html2po.py: Added a wishlist test to check that we can extract items within nested tags ie

This

And this
Currently we only extract the first item. 2006-11-22 11:47 dwaynebailey * convert/test_html2po.py: Add test for
tag 2006-11-22 07:14 dwaynebailey * convert/po2moz.py, convert/po2prop.py, convert/prop2mozfunny.py, convert/test_po2prop.py: po2prop now has the ability to output files according to the Java spec (escaped Unicode) or Mozilla (Unicode chars). The --personality option gives this ability with the default being "java". Added a test to test for the two styles. Added a wrapper function to do the Mozilla style easily and adjusted po2moz and prop2mozfunny to use this function. 2006-11-22 06:50 dwaynebailey * misc/optrecurse.py: Ignore Subversion .svn directories 2006-11-21 14:27 friedelwolff * storage/poxliff.py: Add .getheaderplural() to mimic PO 2006-11-21 12:01 andreaspauley * tools/pogrep, tools/pogrep.py, tools/test_pogrep.py: Modified pogrep to work with po and xliff interchangeably. 2006-11-21 08:56 friedelwolff * storage/lisa.py: Whitespace cleanup 2006-11-21 08:51 friedelwolff * convert/pot2po.py: Revert incorrect patch from revision 4069 to always use Project-Id-Version from the POT 2006-11-21 08:22 andreaspauley * storage/base.py, storage/po.py: Moved isempty() from po.py to base.py, and rewrote it slightly to be more generic. Added an addunit() method to base.py. 2006-11-20 12:06 friedelwolff * storage/po.py: Rewrite the plural handling logic in settarget to distinguish clearly between a single plural form language and a single (simple) string passed in a list 2006-11-20 10:03 friedelwolff * filters/checks.py: Remove debug statements commited by accident 2006-11-17 08:22 dwaynebailey * filters/checks.py, filters/test_checks.py: Change 'fails' to only work for normal failures. Rename seriousfails to 'fails_serious' to make it clearer that it realtes to 'fails'. Change all tests that create SeriousFilterFailures so that they use fails_serious. 2006-11-16 15:08 friedelwolff * filters/decoration.py, filters/test_checks.py: Don't report an empty string as purepunc. +test 2006-11-16 14:50 friedelwolff * filters/checks.py, filters/decoration.py, filters/test_checks.py: Ignore punctuation trailing functions. Example: funcA(), funcB(), and funcC(). vs. funcA(), funcB() en funcC() something. 2006-11-16 14:20 friedelwolff * filters/test_checks.py: Test that the new simpleplurals logic allows a simple valid case. 2006-11-16 14:16 friedelwolff * filters/checks.py: Allow certain simpleplurals in target language. This paves the way for more flexible simpleplurals test. 2006-11-16 12:42 friedelwolff * filters/test_checks.py: Test that a failure for accelerators in Mozilla is a serious failure 2006-11-16 12:39 friedelwolff * filters/checks.py: Add the ability to mark tests as critical, and use it mark variables test critical for Mozilla 2006-11-16 10:48 dwaynebailey * filters/test_checks.py: Another Mozilla variables style - already trapped by '$(', ')' style checks but here for tracking 2006-11-16 10:42 dwaynebailey * filters/test_checks.py: Make double sure we can also detect $_VAR type variables that seem to appear in Mozilla 2006-11-16 09:50 friedelwolff * storage/po.py: Redo the logic of .isblank() to return False if there are msgidcomments. Remove weird logic. 2006-11-16 08:11 dwaynebailey * filters/test_checks.py: Add test to make sure that we can trap a kde comment even of the msgid is actually a blank msgid eg: msgid "_: comment\n" msgstr "_: comment\n" 2006-11-16 06:53 jens_herden * storage/base.py: fix indentation error 2006-11-16 02:39 varsist * storage/xliff.py: Variable name change from 'suggestion' based variables names to alttrans based 2006-11-15 06:51 varsist * storage/test_xliff.py, storage/xliff.py: Added methods to support the xliff alt-trans (suggestions) tag. Added test cases for xliff alt-trans/suggestions work 2006-11-14 15:27 friedelwolff * storage/po.py: When merging, take on the fuzzy status of the other unit 2006-11-13 15:05 friedelwolff * storage/xliff.py: Remove debugging statements that were commited by accident 2006-11-13 12:13 friedelwolff * storage/xliff.py: Move detection of PO style XLIFF files to .parsestring() 2006-11-13 10:13 friedelwolff * storage/poxliff.py: Improve logic in __eq__ for a few corner cases 2006-11-13 06:21 friedelwolff * filters/checks.py: Don't test for tabs or newlines if the message is not translated 2006-11-10 15:50 friedelwolff * storage/po.py: Don't add an empty translator comment if no string is supplied 2006-11-10 15:17 friedelwolff * storage/test_po.py: Test more PO comments functionality 2006-11-08 09:41 friedelwolff * storage/po.py: Move the plural accessor (getheaderplural()) to the poheader class to enable reuse from the poxliff class. 2006-11-06 13:35 friedelwolff * storage/lisa.py: Only parse the XML string if it contains something (return empty store object otherwise) 2006-11-03 16:12 dwaynebailey * filters/checks.py: tags2 should not have kdecomments removed Also changed tags to tags1 or tags2 as appropriate as reusing the vartiable will just create confusion. 2006-11-03 11:48 friedelwolff * filters/checks.py: If the first string contains no xml tags, check that the second also contains none. Fix for currently failing test. 2006-11-02 11:01 friedelwolff * storage/po.py: Use the dictionary with corrected keys [reported and patch by Hok Kakada] 2006-11-02 10:26 friedelwolff * storage/lisa.py: Pass constructor parameter correctly 2006-11-01 07:10 friedelwolff * filters/test_checks.py: Add an extra test that should trigger xmltags failure 2006-10-31 21:44 dwaynebailey * tools/test_pomerge.py: Fix test to work by adding some none header entries 2006-10-31 21:37 dwaynebailey * tools/test_pomerge.py: Fix test related to merging KDE comments to match new layout Add test to check that we do the right thing when mergin in header entries. 2006-10-31 21:31 dwaynebailey * tools/pocount.py: Remove references to msgid and msgstr and replave with source and target. This in preperation for making pocount less PO centric. 2006-10-31 19:28 dwaynebailey * convert/csv2po.py, convert/dtd2po.py, convert/html2po.py, convert/oo2po.py, convert/prop2po.py: Use msgctxt as our default disambiguator in the various convertors. 2006-10-31 07:51 friedelwolff * storage/base.py: Add .isblank() for PO compatibility - might be temporary 2006-10-31 07:48 friedelwolff * storage/base.py: Add .gettargetlen() to access the length of the target string and possible plural forms 2006-10-30 14:50 friedelwolff * storage/xliff.py: Fix typo (unbalanced parentheses) 2006-10-30 14:20 friedelwolff * storage/xliff.py: Implement initial .isreview() for xliff units 2006-10-30 14:19 friedelwolff * filters/pofilter.py: Don't unnecessarily check for pofilter marked comment (.isreview() already does that) 2006-10-30 13:11 friedelwolff * storage/base.py, storage/lisa.py: Use and pass unitclass parameters 2006-10-29 12:10 dwaynebailey * search/match.py: Disable verbose debugging output 2006-10-28 14:26 dwaynebailey * filters/test_checks.py: Iits a tabs test not an escapes test 2006-10-27 07:38 friedelwolff * tools/pocount.py: Fix wrong logic of .fuzzymessages() that caused pocount to always give 0 fuzzy messages 2006-10-26 14:01 friedelwolff * filters/checks.py, filters/test_checks.py: Seperate newlines test (\r and \n) and tabs test (\t) from the escapes test 2006-10-26 11:29 dwaynebailey * storage/test_dtd.py: Turn some tests into wishlist wtest_ items 2006-10-26 11:26 dwaynebailey * storage/lisa.py, storage/test_xliff.py, storage/xliff.py: Add ability to set the target language. 2006-10-26 07:15 friedelwolff * convert/test_po2oo.py: Test conversion with escpaes of \t, \r and \n 2006-10-25 16:17 friedelwolff * storage/oo.py: Escape \r and \t correctly with output 2006-10-25 15:29 dwaynebailey * convert/test_html2po.py: Change some items to wishlist by changing to wtest_ 2006-10-25 15:20 dwaynebailey * convert/test_po2oo.py: Fix test to cater for change from 'exclude' to 'exclude-all' 2006-10-25 15:13 dwaynebailey * convert/test_prop2po.py: Disable some wishlist tests by using wtest_ 2006-10-25 06:13 dwaynebailey * convert/convert.py, convert/pot2po.py, convert/test_pot2po.py, storage/po.py, storage/test_po.py: Add a concept of an authoritative merge to po::merge. If the po file is authoritative then we abandon all sourcecomments and automaticcomments from the file being merged into the authoritative one. By default we continue with the old behaviour. Added 'msgctxt' as a duplicate style which will use Gettext 0.15.x's ability to use context information to disambiguate duplicates. This will become the default mode in the future, but requires further testing. 2006-10-24 16:04 friedelwolff * storage/po.py: Remove incorrect extra unescaping 2006-10-24 06:38 dwaynebailey * filters/decoration.py: Only pull variables from a (startmaker, None) style variable if the length of the variable is > 1. Use (startmarker, 0) if you need zero length variables. This change makes all the variable tests pass. 2006-10-24 05:44 dwaynebailey * storage/po.py, storage/test_po.py: Add ability to handle msgctxt Add test for copying a msg and for making msgctxt obsolete. 2006-10-23 18:05 dwaynebailey * filters/checks.py, filters/test_checks.py: Handle the case where we have xmltag false positives. E.g. "" which looks like XML/HTML but should actually be translated. These are handles by 1) identifying them as being the same length as the source text, 2) not containing any '=' sign. Thus the following would not be detected by this hack. "An occured" "" But these ones need human eyes anyway. 2006-10-23 17:26 dwaynebailey * convert/po2oo.py: Make the defalt filter action = none ie do nothing and don't warn. Until we have a way of clearly marking false positives we'll have to diable this funtionality. Also renamed exclude to exclude-all so that it is clearer what it does ie it excludes 'all' vs excludes 'serious'. 2006-10-20 08:35 dwaynebailey * storage/po.py, storage/test_po.py: Handle reflow of \n related sentences (with test). Not the cleanest hack, this section has gotten quite messy. 2006-10-20 07:35 dwaynebailey * misc/textwrap.py: Update to the lastest Python Subversion (fixes some performance issues) Reimplement the drop_whitespace feature 2006-10-20 06:49 dwaynebailey * misc/textwrap.py, storage/po.py, storage/test_po.py: Use our custom textwrap and add feature to allow the preservation of whitespace text chunks (default version clean up leading and trailing whitespace) Add test for wrapping long lines Add ability to wrap lines when we have no \n style lines. Still need to deal with message that have been broken into \n seperated lists. 2006-10-20 06:05 dwaynebailey * storage/po.py, storage/test_po.py: Add tests to check for \n newline wrapping (already works correctly) Added test and fix to place firstline > 71 chars on a wrap line ie start with msgid "" (fix and test work) 2006-10-16 07:01 varsist * convert/test_xliff2po.py, convert/xliff2po.py: xliff tags now supported 2006-10-13 12:03 friedelwolff * convert/pot2po.py: Always use Project-Id-Version from the POT 2006-10-12 14:52 friedelwolff * storage/base.py, tools/pocount.py: Change .istranslated() to only return True if not fuzzy. Also adapt users 2006-10-09 09:33 varsist * convert/test_po2xliff.py, convert/xliff2po.py: getnotes() origin use 2006-10-09 09:29 varsist * storage/test_xliff.py, storage/xliff.py: correctorigin() function implemented, boolean origin check. 2006-10-09 09:26 varsist * storage/poxliff.py, storage/test_poxliff.py: getnotes() now returns notes based on origin and removes duplicate notes 2006-10-07 14:54 dwaynebailey * convert/test_pot2po.py: Make sure we are handling comments correctly when we obsolete 2006-10-07 14:29 dwaynebailey * convert/test_dtd2po.py: Fix kdecomment_merge test Disable accelerator_keys_not_in_sentence test and make it a wtest_ ie a wish 2006-10-06 08:26 friedelwolff * convert/po2txt.py: Encode output before writing to file [Reported and contributed by Maxim V. Dziumanenko] 2006-10-06 08:24 friedelwolff * convert/test_po2txt.py: Test for basic conversion and nonascii text 2006-10-05 12:11 friedelwolff * convert/pot2po.py: fix uninitialised variable 2006-10-04 10:08 friedelwolff * __version__.py: Up to mystical version 0.10.90 (just for current HEAD) 2006-09-29 07:48 varsist * storage/xliff.py: getnotes() now returns notes based on 'origin' value 2006-09-29 07:44 varsist * storage/test_xliff.py: Updated test_notes() to integrate getnotes origin parameter usage 2006-09-28 07:46 friedelwolff * storage/poxliff.py: Implement parseheader() and updateheader() for the PO header in a PO style XLIFF file 2006-09-28 06:33 varsist * storage/po.py: Additional test case in settarget() 2006-09-26 07:34 friedelwolff * convert/pot2po.py: Use correct variable and catch more specific exceptions 2006-09-26 07:32 friedelwolff * search/match.py, search/terminology.py, storage/factory.py: Small fixes to improve Pootle's use of terminology matching 2006-09-26 05:38 friedelwolff * storage/po.py: Use new poheader.header_order 2006-09-21 13:18 friedelwolff * storage/po.py: Move more header handling to new poheader class 2006-09-20 14:52 friedelwolff * storage/po.py: Move some initial PO header functionality into a seperate class 2006-09-20 11:13 varsist * storage/base.py: paramater update of getnotes() 2006-09-20 10:37 varsist * storage/test_po.py: po.getnotes parameter test 2006-09-20 10:36 varsist * storage/po.py: getnotes() manipulation to return selected comments/notes 2006-09-20 07:03 varsist * storage/test_po.py: plural check added for po.py changes in settarget method 2006-09-20 07:01 varsist * storage/po.py: Added plural check against source vs target from removed setunquotedmsgstr method 2006-09-15 11:27 friedelwolff * tools/pocount.py: Remove incorect reference to self 2006-09-14 12:58 friedelwolff * storage/po.py: Fix typo in .istranslated() 2006-09-13 08:21 friedelwolff * storage/xliff.py: Fix typo 2006-09-13 07:02 friedelwolff * storage/po.py, storage/xliff.py: Add unit.removenotes() for po and xliff 2006-09-13 06:56 friedelwolff * storage/base.py, storage/po.py: Add unit.istranslated() for base and po 2006-09-13 06:50 friedelwolff * tools/pocount.py: Factor out some counting methods [Contributed by -editor programmers] 2006-09-13 05:45 friedelwolff * storage/lisa.py: Always return a multistring from getText to simplify things elsewhere. Now .source and .target will always return multistrings 2006-09-09 19:36 dwaynebailey * convert/test_ts2po.py: Add fuziness assert for the blank message case Add a test to see that we handle 'unfinished' yet fuzzy TS entries 2006-09-09 19:30 dwaynebailey * convert/test_ts2po.py: Test for an entry that is 'unfinished' 2006-09-09 19:04 dwaynebailey * convert/test_ts2po.py: Add test for location information 2006-09-07 09:37 friedelwolff * convert/test_ts2po.py: Test for basic conversion 2006-09-05 07:22 dwaynebailey * storage/po.py: Do not merge msgidcomments. 2006-09-01 06:48 dwaynebailey * filters/test_checks.py: Test for escape checing were wrong. Added a real life example that was not being detected. Seems most of the problem was using raw strings in the tests. Most of that has been removed. Some that remain need to be checked. The test now fails correctly. 2006-09-01 06:16 friedelwolff * search/terminology.py: A few basic manipulations to have more matches 2006-09-01 06:14 friedelwolff * search/test_terminology.py: Tests for cases that are harder to match 2006-08-31 06:30 dwaynebailey * convert/test_pot2po.py: Ensure that we can merge comments with blank lines correctly. 2006-08-29 15:07 dwaynebailey * convert/test_pot2po.py: Change in position of the accelerator in the source should not make a message fuzzy. Accelerators in the target langauge are usually independent of those of the source language. 2006-08-29 10:04 friedelwolff * ChangeLog: Forward port the relevant entries from the ChangeLog from before 0.10 branch 2006-08-29 08:32 friedelwolff * storage/ts.py: Only call getElementsByTagName if the node has children 2006-08-29 06:55 friedelwolff * CREDITS: Credit Clytie Siddall 2006-08-29 06:53 friedelwolff * storage/ts.py: use basestring instead of StringTypes 2006-08-29 06:51 friedelwolff * convert/pot2po.py, convert/test_pot2po.py: [forwardport 3828:3829 and 3830:3831 from 0-10-branch] Merge identical strings if msgid comments match. Fix test to not expect fuzzy 2006-08-28 18:27 dwaynebailey * convert/test_po2prop.py: Test to ensure that we create an empty property file if the template is empty and we have no associated PO file. 2006-08-28 08:59 friedelwolff * convert/po2prop.py: Strip the end of line character(s) so we can add a \n 2006-08-28 07:39 dwaynebailey * convert/po2prop.py: Covnert tabs to spaces 2006-08-28 07:22 dwaynebailey * convert/test_po2prop.py: Test to see that we merge fuzzy entries correctly. 2006-08-28 07:20 dwaynebailey * convert/test_po2prop.py: Add a test for the simplest merge 2006-08-28 07:13 dwaynebailey * convert/test_po2prop.py: Test to check that when we merge entries that are in fact blank that we do not mess with the layut from the template by adding newlines. 2006-08-28 07:06 dwaynebailey * convert/test_po2prop.py: Test to ensure that we preserve space around the equal signs from the template properties file in the new output properties file. 2006-08-24 21:28 friedelwolff * setup.py: prune editor and lingua directories 2006-08-24 12:20 friedelwolff * storage/test_po.py: Edit and disable test_makeobsolete_untranslated 2006-08-23 14:48 friedelwolff * storage/po.py: Remove type comments correctly with possible comma following 2006-08-23 14:46 friedelwolff * storage/test_po.py: Also test the simple case of removing fuzzyness 2006-08-23 14:44 friedelwolff * storage/test_po.py: Test that we remove fuzzy marker correctly 2006-08-23 13:03 friedelwolff * __version__.py: Version 0.10rc4 2006-08-23 13:01 friedelwolff * setup.py: Remove obsolete 'includebeta' variable 2006-08-23 08:47 friedelwolff * convert/pot2po.py: Don't obsolete untranslated messages 2006-08-23 08:45 friedelwolff * convert/test_pot2po.py: Test that we don't obsolete untranslated messages 2006-08-22 20:31 dwaynebailey * storage/test_po.py: If a message is untranslated and we make it obsolete it should just disappear and not be part of the obsolete section. The asserts in this test are probably wrong. 2006-08-22 18:26 friedelwolff * search/Levenshtein.py: Tab -> spaces 2006-08-22 18:25 friedelwolff * search/Levenshtein.py, search/match.py: Various checks and tweaks to deal with zero sized strings, etc. 2006-08-22 16:19 dwaynebailey * convert/test_pot2po.py: Test to see that if we resurect an obsolete message that we can insert it into multiple messages even if they have msgidcomments 2006-08-22 15:25 friedelwolff * storage/factory.py: Make getobject() more robust by handling a storefile as parameter 2006-08-22 12:57 friedelwolff * convert/test_pot2po.py: Test for the new commandline options 2006-08-22 12:42 dwaynebailey * convert/pot2po.py: Add ability to have a global TM for fuzzy matching. Path by Friedel Wolff tweeks by Dwayne Bailey 2006-08-22 10:17 dwaynebailey * convert/test_pot2po.py: Check that we can reuse translations even if the msgidcomment changes. Tests that we mke them fuzzy as msgidcomments might be a disambiguator. 2006-08-22 08:08 friedelwolff * tools/test_pomerge.py: Reformat expected result in test_merging_dont_merge_kde_comments_found_in_translation with msgid comment (kde style comment) as msgmerge would. (test still fails) 2006-08-22 06:32 friedelwolff * tools/test_pomerge.py: Adapt tests with msgid comments (KDE style comments) to expect multiline msgids as msgmerge does them 2006-08-22 06:00 friedelwolff * storage/poxliff.py: Receive kwargs in constructor and set sourcelanguage to en-US if absent. Ignore sourcelanguage parameter in createfilenode 2006-08-22 05:54 friedelwolff * convert/po2xliff.py: Pass kwargs to poxliff constructor (to enable source language) 2006-08-22 05:52 friedelwolff * convert/test_po2xliff.py: Pass the source language to the converter 2006-08-22 04:40 friedelwolff * filters/checks.py: Handle end punctuation seperately from normal punctuation 2006-08-21 20:43 friedelwolff * filters/checks.py: xmltags: Consider '/' to be part of tagname to catch missing close tag 2006-08-21 12:30 friedelwolff * src/trunk/Pootle/html/pootle.css, src/trunk/Pootle/templates/adminlanguages.html, src/trunk/Pootle/templates/adminprojects.html, src/trunk/Pootle/templates/adminusers.html, misc/test_zipfileext.py: Remove some executable properties and #! where it isn't a script 2006-08-21 10:24 friedelwolff * convert/po2xliff.py: Specify the origin of the comments for automatic (#.) and normal (# ) comments 2006-08-21 04:22 friedelwolff * storage/xliff.py: Add .istranslated() [Kakada Hok] 2006-08-20 13:32 dwaynebailey * convert/po2prop.py: Preserve spaces around = in properties files. 2006-08-19 17:48 dwaynebailey * convert/test_pot2po.py: Test to check that we can merge msgidcomments correctly. 2006-08-19 14:11 friedelwolff * storage/po.py: Don't deal with msgid comments (KDE style comments) in the other unit's .target when merging. This converts the multistring to a string and we lost plurals. Fixes plural merging in pot2po. 2006-08-19 14:11 dwaynebailey * convert/test_pot2po.py: Add test for simple merging of plurals 2006-08-19 13:39 friedelwolff * storage/po.py: Preserve msgid comments (KDE style comments) during obsoletion and resurection 2006-08-19 13:38 friedelwolff * storage/test_po.py: Fix expected result in test_makeobsolete_msgidcomments 2006-08-19 13:08 dwaynebailey * storage/test_po.py: Test to check that we preserve msgidcomments when obsoleting. 2006-08-19 07:24 friedelwolff * storage/base.py: Return None for unfound unit if we use .sourceindex 2006-08-18 10:51 friedelwolff * convert/pot2po.py: Ensure that newly obsoleted messages are moved to the end of the file 2006-08-18 10:46 friedelwolff * convert/test_pot2po.py: Test that newly obsoleted messages are moved to the end of the file 2006-08-17 12:03 gintautasm * src/trunk, trunk: Moved trunk (3/3). 2006-08-17 09:55 friedelwolff * storage/po.py: Parse and generate multiline obsoleted messages correctly 2006-08-17 09:52 friedelwolff * storage/test_po.py: Test that multiline obsolete comments are parsed and generated correctly 2006-08-16 16:10 friedelwolff * trunk/Pootle/__version__.py, __version__.py: Version 0.10rc3 2006-08-16 16:04 friedelwolff * convert/test_pot2po.py: Enable test_merging_location_change and fix test (was really working) 2006-08-16 11:54 friedelwolff * convert/pot2po.py: Resurrect obsolete comments before merging, so they can be considered 2006-08-16 11:53 friedelwolff * storage/po.py: Rewrite support for obsolete messages. This is done in a way to be as non-invasive as possible 2006-08-16 09:15 friedelwolff * storage/test_po.py: Fix test_obsolete 2006-08-15 17:10 friedelwolff * storage/po.py: Mandate that there be no msgidcomments (KDE style comments) for a unit to be a header 2006-08-15 08:23 friedelwolff * convert/pot2po.py: Indicate if a unit was reused so we don't have unnecessary obsolete messages 2006-08-15 08:23 friedelwolff * convert/pot2po.py: Use fuzzy matching to to find possibly matches 2006-08-15 08:21 friedelwolff * storage/po.py: If merging from unit with different .source, mark as fuzzy 2006-08-15 06:45 friedelwolff * filters/test_checks.py: Extra xml test that should fail 2006-08-14 12:49 friedelwolff * convert/pot2po.py: Use .source rather than unquotefrompo 2006-08-14 11:55 friedelwolff * filters/pofilter.py: Check the correct number of plurals, all against the source's singular 2006-08-13 08:48 dwaynebailey * convert/pot2po.py, convert/test_pot2po.py: Recreat header initialisation test to be more specific and cover the whole header Correct carry over of plural form Set fuzzy status correctly based on the status of the template header 2006-08-12 23:33 dwaynebailey * convert/pot2po.py: Rename variables for clarity 2006-08-12 23:05 dwaynebailey * convert/test_dtd2po.py: Fix test. This type is actually incorrect and should be fixed in the source. 2006-08-12 22:59 dwaynebailey * convert/test_dtd2po.py: Correct test for case where DONT_TRANSLATE refers to a word not the whole message 2006-08-12 22:51 dwaynebailey * convert/pot2po.py: Carry over the header comments from the template PO file into the output PO file otherwise if there are no comments use the ones from the input POT file. We should probably use standard Gettext headers and move the comment blocks etc to be part of the first string. Make Project-Id-Version carry over from the template. Still need to check the general header for conformance. 2006-08-12 13:46 dwaynebailey * convert/pot2po.py: Copy the PO-Revision-Date from the template 2006-08-12 13:44 dwaynebailey * convert/pot2po.py: Do not initialise the PO-Revision-Date from the template. 2006-08-12 13:39 dwaynebailey * convert/pot2po.py: Change inputpo -> inputpot 2006-08-12 13:36 dwaynebailey * convert/pot2po.py: Reword so that we stop getting confused about what is a pot and what is not. 2006-08-12 13:28 dwaynebailey * convert/test_pot2po.py: Check that we can merge messages even if the accesskey changes. 2006-08-12 13:16 dwaynebailey * convert/test_pot2po.py: Check to see that if the msgid changes and that the only changes in teh msgid are whitespace changes that we can still merge the two. 2006-08-12 13:07 dwaynebailey * convert/test_pot2po.py: Add test to enable reuse of obsolete messages 2006-08-12 13:00 dwaynebailey * convert/test_pot2po.py: Add test to check that we don't mess with the headers when initialising files. ie we should not change the PO-Revision-Date 2006-08-12 12:02 dwaynebailey * storage/po.py, storage/test_po.py: Add 2 tests: - Check that we can place and extract double comments ie something that itself contains the # comment char - Check that we add 'msgid ""' before adding a msgid_comment on a new line. Implement feature to fix the second test. 2006-08-11 20:30 friedelwolff * trunk/Pootle/__version__.py, __version__.py: Version 0.10rc2 2006-08-11 15:02 friedelwolff * convert/po2html.py: [forwardport] Deal slightly better with encoding issues. Sort of fixes bug 175 for the case without a template. 2006-08-11 14:05 friedelwolff * convert/po2html.py: [forwardport] Deal slightly better with encoding issues. Sort of fixes bug 175 2006-08-10 14:18 friedelwolff * search/match.py: add and use sourcelencmp function to properly enable sorting with python 2.3 2006-08-10 13:26 friedelwolff * search/match.py, search/terminology.py: Tweak parameters for terminology matching. Only terms between 3 and 30 characters long are considered, and only the first 500 characters of a message is searched for terminology 2006-08-10 10:22 friedelwolff * search/match.py: Make it work with Python 2.3 2006-08-10 07:17 dwaynebailey * filters/checks.py: Skip printf test if the message is untranslated or has compendium conflicts. 2006-08-08 16:43 dwaynebailey * convert/test_po2html.py: Correct wrong expect result in test 2006-08-08 06:56 friedelwolff * storage/factory.py: Handle unicode filename as well 2006-08-05 07:21 dwaynebailey * storage/test_po.py: Test all the blank header functionality. Move the plural equation semi colon test into a single test that also tests the normla situation. 2006-08-04 23:11 friedelwolff * services/lookupservice.py: Take into account that candidates are now stored as a translation store 2006-08-04 23:10 friedelwolff * services/lookupclient.py: print output correctly now that score is sent as a string 2006-08-04 23:09 friedelwolff * search/match.py: Only add comments if there actually is something to add 2006-08-04 14:38 friedelwolff * services/lookupservice.py: update to accept match score as preformatted string 2006-08-04 09:53 friedelwolff * search/terminology.py: Explain terminology matching and pitfalls clearly. Remove comment and provide commented example using segmenting. 2006-08-04 09:19 friedelwolff * storage/test_po.py: Test that we work with plural equations that span more than one line (works) 2006-08-04 09:13 friedelwolff * storage/po.py: Deal with plural equations without the final semicolon 2006-08-04 09:11 friedelwolff * storage/test_po.py: Test that we work can deal with plural equations without the final semicolon 2006-08-04 06:35 friedelwolff * search/match.py: Use a base.TranslationStore to store candidates with their comments. This eliminates the problem with case change in the source strings of the terminology base. Support list of stores 2006-08-04 06:32 friedelwolff * storage/base.py: Add basic comment support so that the base classes can actually be used for storing comments 2006-08-03 13:54 friedelwolff * search/test_match.py: Test matching with muliple sources 2006-08-03 07:41 friedelwolff * misc/optrecurse.py: Warn if file is skipped because no template exists 2006-08-02 15:51 friedelwolff * trunk/Pootle/__version__.py, __version__.py: Version 0.10rc1 2006-08-02 15:27 friedelwolff * filters/checks.py: Fix the logic of the printf test 2006-08-02 08:18 friedelwolff * convert/po2prop.py: Ensure we return strings to send back to file 2006-08-02 08:00 friedelwolff * misc/optrecurse.py: Drop a file if it is not present in the template 2006-08-02 05:53 friedelwolff * misc/optrecurse.py: Work with files with no extention, like README 2006-07-31 12:30 dwaynebailey * filters/checks.py: Add 2 new variable style introduced in the new Mozilla installer work. 2006-07-31 09:30 dwaynebailey * misc/quote.py: Correct comments 2006-07-31 09:17 friedelwolff * storage/dtd.py: Use warnings module rather than writing to stderr 2006-07-28 14:16 friedelwolff * storage/properties.py: Strip all whitespace left of property value (not just space) 2006-07-28 13:18 dwaynebailey * convert/test_prop2po.py: Add tests for tabs at the start of property values Add test for unassociated comments Add correct output for folded .target Removed some unused variables picked up by pychecker 2006-07-28 13:01 friedelwolff * misc/quote.py: Split java and mozilla properties behaviour on non-ascii encode 2006-07-28 13:00 friedelwolff * storage/properties.py: Test if '\u' is left in msgid before writing output 2006-07-28 12:59 friedelwolff * storage/test_properties.py: [forwardport] Test for correct (unescaped) non-ascii 2006-07-28 09:39 friedelwolff * storage/dtd.py: Only skip element on processing, don't halt. Fix for bug 161. 2006-07-28 07:23 friedelwolff * trunk/Pootle/__version__.py, __version__.py: version 0.10beta3 2006-07-27 11:39 friedelwolff * storage/poxliff.py: Implement .isheader() and .header() for better PO functionality 2006-07-27 11:37 friedelwolff * storage/base.py: Add classmethod buildfromunit() to base Unit API. This allows a native unit to be constructed from a foreing one. (Build a PO unit out of an xliff unit, for example.) 2006-07-27 11:35 friedelwolff * storage/base.py: Add isheader() to base Unit API 2006-07-27 11:33 friedelwolff * storage/xliff.py: Better PO xliff detection, +getdatatype(), +getfilenames() 2006-07-27 11:28 friedelwolff * storage/base.py: Rewrite access mode detection to work wth IOString 2006-07-26 09:58 friedelwolff * storage/po.py: Fix for bug 171 (encoding error when removing duplicates) 2006-07-26 09:57 friedelwolff * convert/test_oo2po.py: Test for bug 171 (encoding error when removing duplicates) 2006-07-25 19:05 dwaynebailey * filters/checks.py, filters/test_checks.py: Enable spellcheck test testing Add some logic to deal with unicode strings 2006-07-25 18:29 dwaynebailey * filters/checks.py, filters/test_checks.py: The printf test can now manage variable reordering. 2006-07-25 16:43 friedelwolff * convert/html2po.py: Use more of base class API 2006-07-25 16:08 friedelwolff * storage/html.py: Move closer to base class compliance 2006-07-25 14:17 dwaynebailey * filters/test_checks.py: Test for reordering in printf variables. 2006-07-25 11:46 dwaynebailey * convert/dtd2po.py, convert/moz2po.py, convert/po2dtd.py, convert/pot2po.py: Pychecker fixes: Remove unused imports Make sure mime_version info get used and implemented in pot2po Remove unused variables. 2006-07-25 11:04 dwaynebailey * convert/test_html2po.py: Removed multiline test. This goes against the general idea that HTML places no significance in line breaks. It is probably also going to add complexity that offers little return in value. 2006-07-25 10:56 dwaynebailey * convert/test_dtd2po.py: Add two tests. The first to try to pick up mismatched encodings (test doesn't seem to do exactly what I wanted). The second to highlight the problem when you are processing files using a template approach and the template is missing. We are currently adding the translation as the source string. We should be abandonign the translation. 2006-07-25 06:12 friedelwolff * storage/base.py: Typo: locatin->location 2006-07-24 17:22 dwaynebailey * convert/test_moz2po.py, convert/test_po2moz.py, convert/test_po2prop.py, convert/test_po2tmx.py, convert/test_po2txt.py, convert/test_txt2po.py: Remove unused variables and imports picked up by pychecker 2006-07-24 15:46 dwaynebailey * convert/test_po2xliff.py: Some fixes picked up by pychecker Add test to pick up the setting of XLIFF languages based on input PO file. 2006-07-24 09:48 friedelwolff * trunk/Pootle/__version__.py, __version__.py: Version up to 0.10beta2 2006-07-23 08:41 dwaynebailey * storage/base.py: Correctly addlocation in the case where location is not a list. 2006-07-23 07:48 dwaynebailey * filters/test_decoration.py: pychecker: vars -> variables as vars is builtin 2006-07-21 15:33 friedelwolff * storage/po.py: Always get encoding if parsing header. Fix for bug 163 2006-07-21 12:44 friedelwolff * convert/oo2po.py: [forwardport] Temporary solution for escaping madness 2006-07-21 12:35 friedelwolff * convert/oo2po.py, storage/oo.py, storage/test_oo.py: Naming more consistent with base class, even if not converted yet 2006-07-21 12:00 friedelwolff * convert/test_po2csv.py: Fix test for escaped \ 2006-07-20 07:37 friedelwolff * search/match.py: Return original units to retain comments 2006-07-19 09:06 friedelwolff * trunk/Pootle/tools/updatetm.py, search/match.py, search/test_match.py, services/lookupservice.py: Adapt matcher to return real units rather tuples, adapt users 2006-07-18 11:53 friedelwolff * search/terminology.py, search/test_terminology.py: Very basic terminology matching 2006-07-18 11:51 friedelwolff * search/test_match.py: Test terminology matching, update old tests to new api 2006-07-18 11:50 friedelwolff * search/match.py: Add terminology matcher 2006-07-18 11:22 dwaynebailey * misc/optrecurse.py, misc/progressbar.py: Fix for bug #164 Change progressbar to output to stderr. Thus avoiding the problem of progress output appearing in the output file when running e.g.: txt2po file.txt > file.po Also made some other progress verbage output to stderr. 2006-07-17 18:08 dwaynebailey * filters/checks.py, filters/test_checks.py: Implement printf checking based on a patch by contributed by Matt Chisholm - matt at bittorrent dot com. Improved the regex to understand more fully all the options but left the final printf "type" as \w so that we can capture any character, not only those we know about. Added test to pick up most issues and moved a Mozilla variable test that was really a printf test to test_printf(). The regex is based on the syntax outlined at http://en.wikipedia.org/wiki/Printf Ideally the printf test should be rolled into the variable test. But this is good for now. Also in future it would be good to allow projects to define whether they in fact have print style variables and also to make use of the #, c-syntax type comments in PO files. 2006-07-13 08:38 friedelwolff * storage/dtd.py: Temporary fix to allow better testing with base class tests 2006-07-13 08:17 friedelwolff * convert/dtd2po.py: Fix problem with accelerators if labels changed 2006-07-11 20:01 friedelwolff * trunk/Pootle/__version__.py, __version__.py: Version 0.10beta (for testing) 2006-07-11 10:31 dwaynebailey * storage/test_dtd.py: Add a test to check for correct failing behaviour when a DTD ENTITY is not well formed. 2006-07-11 09:00 friedelwolff * convert/dtd2po.py: Fix the problem of not merging in translations with accelerators 2006-07-11 07:47 dwaynebailey * convert/po2txt.py: Make sure we can output to stdout Convert last msgstr reference to target Add checks to not use fuzzy or blank (This doesn;t work :) we should add the --fuzzy and --nofuzzy options. 2006-07-11 07:44 dwaynebailey * convert/txt2po.py: Make sure we can output to stdout 2006-07-10 18:10 dwaynebailey * convert/test_dtd2po.py: Add test for the case where translation does not contain the character used as accelerator. Convert to "XXXXX (&A)" for now. Still needs some thought on the reverse ie PO -> DTD 2006-07-10 18:01 dwaynebailey * convert/test_dtd2po.py: Add test to check that we can manage folding accelerators for foreign languages. 2006-07-10 17:38 dwaynebailey * convert/test_dtd2po.py: Add some acclerator checks 1) To check that we manage accesskeys that we cannot merge 2) To highlight when we are merging something that in the transalted DTD is mergable but due to changes in entity names is no longer mergable. Check that we can manage the new non-merging. 2006-07-10 16:06 dwaynebailey * convert/prop2po.py: Only process if we have a prop Only do comment related work if theprop actually has a commnent. 2006-07-10 14:11 friedelwolff * search/match.py: Check to see if any usable units for translation memory is available 2006-07-10 14:10 friedelwolff * storage/factory.py: Add the ability to ignore a part of a filename (like .gz) 2006-07-10 13:58 friedelwolff * storage/base.py: Only read file if 'r' in mode. Fix tabs 2006-07-05 18:07 dwaynebailey * filters/prefilters.py: A fiex for Bug #153: sre.finditer seems to not accept the third and optional flags= paramater in Python 2.3.x. So reverted to including the flags in the actual regex using the (?xxx) syntax 2006-07-04 18:50 dwaynebailey * convert/test_dtd2po.py: Add reference to bug number 2006-07-03 13:49 dwaynebailey * convert/test_dtd2po.py: Add test for merging translated DTD with a template. Add tests to expose bug when merging translations with a template into a PO that also include an accelerator key. 2006-07-03 07:33 friedelwolff * search/Levenshtein.py: Comment out more advanced similarity calculations, minor cleanup 2006-07-03 07:14 friedelwolff * search/match.py: Consider maximum length, remove duplicates, sort candidates, limit seach to similar length strings (huge performance improvement) 2006-07-03 06:14 friedelwolff * storage/csvl10n.py: Speed up SimpleDictReader.next() 2006-07-03 06:08 friedelwolff * misc/sparse.py: Speed up seperatetokens (notable difference in csv parsing) 2006-06-30 16:08 friedelwolff * services/lookupclient.py: Use unicode for search text 2006-06-30 16:05 friedelwolff * services/lookupservice.py: Lookup: use index and return unicode 2006-06-30 15:18 friedelwolff * storage/base.py: Add isfuzzy() to base class - returns False 2006-06-30 15:18 friedelwolff * storage/csvl10n.py: Work internally with unicode 2006-06-30 15:17 friedelwolff * services/lookupclient.py: Encode unicode from the server for printout 2006-06-30 15:16 friedelwolff * services/lookupservice.py: Always return unicodes - multistrings are not marshalled 2006-06-30 10:56 friedelwolff * services/lookupservice.py: Catch all errors, always convert to string (might have multistrings) 2006-06-30 10:51 friedelwolff * services/lookupservice.py: Adapt to new matcher API 2006-06-30 10:49 friedelwolff * storage/factory.py: Test better if file is usable 2006-06-30 10:48 friedelwolff * search/match.py: Filter out usable units, convert to fast format, factor out (re)initialisation code 2006-06-28 15:15 friedelwolff * storage/test_factory.py: Test that a PoXliffFile can be constructed 2006-06-28 15:13 friedelwolff * storage/xliff.py: parsefile() must return a PoXliffFile when applicable 2006-06-28 15:12 friedelwolff * storage/factory.py: Make distinction between file and filename clearer 2006-06-28 13:54 friedelwolff * storage/po.py: Implement addlocation() for po 2006-06-28 13:53 friedelwolff * storage/base.py: Add addlocation() and addlocations() to base unit 2006-06-28 13:29 friedelwolff * storage/factory.py: Factor out method to retrieve filename 2006-06-28 10:42 friedelwolff * storage/factory.py, storage/test_factory.py: Factory for classes and objects conforming to base.py 2006-06-28 09:48 friedelwolff * storage/base.py: Use sourceindex for findunit() if available 2006-06-23 08:46 friedelwolff * storage/base.py, storage/po.py, storage/test_po.py, storage/xliff.py: More uniform support for notes (comments). Whitespace fixups. 2006-06-20 09:14 friedelwolff * ChangeLog: Remove duplicate entries beloning to 0.9 branch 2006-06-20 09:29 dwaynebailey * convert/test_csv2po.py: Test that we don't lose KDE comments when merging from CSV Test for --duplicates option 2006-06-20 08:53 dwaynebailey * convert/test_po2csv.py: Test to ensure that we drop KDE comments when converting to CSV 2006-06-20 08:42 dwaynebailey * convert/: __init__.py, convert.py, csv2po, csv2po.py, csv2tbx, dtd2po.py, html2po, html2po.py, moz2po, moz2po.py, mozfunny2prop.py, nb2po, nb2po.py, oo2po.py, po2csv, po2csv.py, po2dtd.py, po2html, po2html.py, po2moz, po2moz.py, po2nb, po2nb.py, po2oo.py, po2prop.py, po2tmx, po2tmx.py, po2ts, po2ts.py, po2txt, po2txt.py, po2xliff, po2xliff.py, poreplace.py, pot2po, pot2po.py, prop2mozfunny.py, prop2po.py, sxw2po, sxw2po.py, ts2po, ts2po.py, txt2po, txt2po.py, xliff2po: Update, add all copyright headers. 2006-06-19 17:57 dwaynebailey * convert/test_dtd2po.py: Test merging of the different variants of accelerator key labels 2006-06-19 15:34 dwaynebailey * convert/test_po2dtd.py: Test for accelerator unmerging of the various types. 2006-06-19 15:04 dwaynebailey * convert/Makefile: Remove Makefile that ran test. Now we're using test_* style tests. 2006-06-19 14:52 dwaynebailey * convert/csv2po.py: Add --duplicatestyle options so that we can create valid PO files from CSV file that contain duplicates. 2006-06-19 14:35 dwaynebailey * tools/: __init__.py, detectencoding, oosetupmerge, pocompile, pocompile.py, poconflicts.py, pocount, pocount.py, podebug, podebug.py, pogrep, pogrep.py, pomerge, pomerge.py, porestructure.py, pydiff, pydiff.py: [Forwardport] Copyright correction, updates, etc 2006-06-19 13:18 friedelwolff * ChangeLog: Update ChangeLog for everything since 0.8 2006-06-19 12:49 friedelwolff * ChangeLog.pre-0.9: Update pre-0.9 ChangeLog up until 0.8 release 2006-02-20 2006-06-19 11:01 friedelwolff * ChangeLog.pre-0.9: Move ChangeLog to isolate all changes before 0.9 2006-06-15 16:58 dwaynebailey * services/lookupservice: [Forwardport] Fix copyright dates. 2006-06-15 16:54 dwaynebailey * misc/: autoencode.py, multistring.py, optrecurse.py, progressbar.py, quote.py, stdiotell.py, wStringIO.py, xmlwrapper.py, zipfileext.py: [Forwardport] Update/add copyright headers. 2006-06-15 16:42 dwaynebailey * __init__.py: [Forwardport] Update copyright dates. 2006-06-15 16:39 dwaynebailey * filters/: autocorrect.py, checks.py, decoration.py, helpers.py, pofilter, pofilter.py, prefilters.py: [Forwardport] Update copyright headers to correctly reflect changes in CVS 2006-06-15 16:11 dwaynebailey * __version__.py: Makre sure that you have the correct version of Translate Toolkit before you can run PootleServer. Bump the toolkit build number up. 2006-06-15 15:14 dwaynebailey * storage/: __init__.py, base.py, csvl10n.py, dtd.py, html.py, oo.py, po.py, properties.py, tmx.py, ts.py, xliff.py, xpi.py: [Forwardport] Fix up copyright header date and missing headers. Match them to CVS checkin dates and old mozpotools. 2006-06-12 23:52 dwaynebailey * filters/autocorrect.py: [Forward port] Make autocorrect work with new puncend method. 2006-06-12 23:46 dwaynebailey * filters/: checks.py, decoration.py, helpers.py, test_checks.py: Enable testing of more exotic start and end punc: - Allow funcmatch to accept *args - Send config.punctuation to start and end punc functions - Simplify decorations/punc{start,end} by eliminating the limitchar and using supplied punctuation instead - Fix tests for endpunc. Add similar test for startpunc 2006-06-12 13:10 friedelwolff * storage/po.py: We don't want unicode keys in dictionary 2006-06-12 10:15 davidfraser * convert/dtd2po.py, convert/po2dtd.py, convert/test_dtd2po.py, storage/po.py: rename dtdelements to units for consistency and change method names from element to unit likewise renamed pofile elementclass to unitclass 2006-06-12 09:46 dwaynebailey * filters/: checks.py, test_checks.py: [Forwardport] Variable only messages do not raise unchanged error. 2006-06-12 09:41 dwaynebailey * filters/: checks.py, test_checks.py: [Forwardport] Drop case of 'I' to 'i' so that English sentences don't mess with simplecaps test. Uses simplistic regular expression which copes with 'I' at the start of a sentence. 2006-06-12 09:10 dwaynebailey * filters/: checks.py, test_checks.py: [Forwardport] Double variables no longer trip doublewords test. Used removevariables in test funtion and enabled disabled test. [Forwardport] disbaled acceleratedvariables tests. Checks still in palce as they should be moved to the accelerator test. 2006-06-12 06:53 davidfraser * storage/: dtd.py, test_dtd.py: convert to use base classes, some cleanup some tests currently fail as the base class tests assume construction of a unit without a location is valid for dtds, we currently return a blank string if there is no .entity (==location in other files) this needs to work better with base class expectations 2006-06-12 06:51 davidfraser * storage/: properties.py, test_properties.py: remove propelement stuff as it isn't used anywhere 2006-06-12 06:29 davidfraser * storage/: dtd.py, test_dtd.py: don't allow reentry of dtd quoted strings - e.g. "test me""now" is actually invalid for now, just ignore the reentry - in future, should raise an error 2006-06-12 06:29 davidfraser * misc/quote.py: [Forward port for wordforge-0-9] replace 0 and 1 arguments to extract and extractwithoutquotes with False and True added allowreentry parameter to extract and extractwithoutquotes (allows better DTD parsing) add default argument to escape in extractwithoutquotes 2006-06-09 21:57 friedelwolff * convert/test_pot2po.py, filters/test_pofilter.py, storage/test_po.py, tools/test_pogrep.py, tools/test_pomerge.py: Adapt tests to new pofile output without the unnecessary newline at the end 2006-06-09 21:56 friedelwolff * storage/po.py: Don't output an unnecessary newline at end of PO file 2006-06-09 19:38 friedelwolff * tools/pogrep.py: Rewrite filterelement to use base class (solves unit tests) 2006-06-09 19:17 friedelwolff * convert/: test_oo2po.py, test_po2oo.py: [forwardport] Correct and expand tests for OpenOffice.org converters 2006-06-09 17:35 friedelwolff * filters/test_checks.py: Fix wrong musttranslate test 2006-06-09 16:15 friedelwolff * storage/test_base.py: More roundtrip tests 2006-06-09 14:31 davidfraser * storage/ts.py: worked out how to override xml classes properly (create our own expatbuilder etc etc) this means we don't any longer modify the underlying classes note that writexml is not overridden any more, but thats just a formatting issue 2006-06-09 14:26 davidfraser * storage/test_ts.py: added basic test for constructing ts file 2006-06-09 12:05 friedelwolff * convert/test_po2dtd.py: Newlines are not escaped in DTD's - tests adapted 2006-06-09 11:38 friedelwolff * convert/po2html.py: remove unnecessary import 2006-06-08 16:45 friedelwolff * convert/html2po.py, storage/html.py: Provisional, incomplete, move to base class for HTML 2006-06-08 16:09 friedelwolff * storage/po.py: Fix merging of kdecomments (necessary due to escaping changes) 2006-06-08 10:36 friedelwolff * storage/po.py: Don't strip comments (fix some tests), typo) 2006-06-08 10:33 friedelwolff * tools/test_pomerge.py: Fix test_preserve_format_minor_start_and_end_of_sentence_changes (needed extra newline) 2006-06-08 00:31 dwaynebailey * filters/checks.py: [Forwardport] Disable acceleratedvariables check - it never really worked and should actually be part of the accelerators test. 2006-06-07 23:32 dwaynebailey * tools/pocompile.py: [Forwardport] Add the ability to include or exclude fuzzy translations 2006-06-07 23:08 dwaynebailey * tools/pocompile.py: [Forwardport] Fix of pocompile by updating to msgfmt v1.1 2006-06-07 19:32 friedelwolff * convert/prop2po.py: Implement DONT_TRANSLATE 2006-06-07 18:25 friedelwolff * convert/: po2prop.py, prop2po.py: Use base API more 2006-06-07 18:24 friedelwolff * storage/properties.py: Make .source and .target work, store internal representation 2006-06-07 18:07 friedelwolff * convert/test_prop2po.py: Use base API and change tab and space tests to how we understand them now 2006-06-07 17:58 friedelwolff * storage/test_base.py: Encode console output, extra roundtrip tests 2006-06-07 17:55 friedelwolff * storage/test_properties.py: Rather test with base class api 2006-06-07 15:29 dwaynebailey * convert/oo2po.py: [Forwardport] Make help string clearer 2006-06-06 16:15 dwaynebailey * convert/test_po2html.py: Fix PO file input to be a valid PO file. Also correct a spelling error. 2006-06-06 15:29 friedelwolff * convert/test_po2html.py: Test po escapes (broken) 2006-06-06 15:18 friedelwolff * convert/test_po2html.py: Test for handling of html entities (broken) 2006-06-05 16:29 friedelwolff * storage/test_properties.py: Inherit tests from (monolingual) base class 2006-06-05 16:28 friedelwolff * storage/test_monolingual.py: First version to serve as superclass for test_properties.py 2006-06-05 16:24 friedelwolff * convert/prop2mozfunny.py, storage/test_properties.py: base API naming conventions 2006-06-05 16:23 friedelwolff * storage/properties.py: Implement parsestring(), warn on use of deprecated API, don't create empty units unnecessarily 2006-06-05 16:05 friedelwolff * convert/prop2po.py: .propelements -> .units 2006-06-05 14:46 friedelwolff * convert/prop2po.py: Use locationindex from base class 2006-06-05 14:45 friedelwolff * storage/properties.py: Use base class makeindex() 2006-06-05 13:48 friedelwolff * storage/properties.py: indentation fix 2006-06-05 13:44 friedelwolff * storage/properties.py: Move to base class. Retain backwards compatibility (tests pass unchanged) 2006-06-02 17:51 friedelwolff * storage/po.py: rewrite parseheader() to rather use base class API 2006-06-02 17:48 friedelwolff * storage/test_po.py: test a bit of poheader functionality 2006-06-01 21:09 dwaynebailey * convert/test_prop2po.py: Enable tests for Bugs #115 and #116 2006-06-01 20:57 dwaynebailey * filters/: checks.py, prefilters.py, test_checks.py: [Forwardport] Allow variables to be deleted. This is probably a suboptimal approach but works - This fixes some simplecaps tests that are now enabled We now ignore 'unchanged' items of len == 1 if the word is in a notranslate list - Enabled test for this Remove a bad stratcaps test 2006-06-01 19:16 davidfraser * storage/test_dtd.py: added test for roundtrip of quoting / escaping problems 2006-06-01 16:41 dwaynebailey * filters/test_checks.py: Correct test 2006-06-01 16:27 dwaynebailey * convert/html2po.py: Make sure that we split lines on
for a better PO editing experience. 2006-06-01 14:53 dwaynebailey * filters/: checks.py, test_checks.py: Can now handle the allcaps case of simplecaps errors 2006-06-01 14:51 davidfraser * storage/: po.py, test_po.py: replace escaping/unescaping with system that is actual symmetrical this utilises the new ability of extractwithoutquotes to actually get the escaping via another function fixed tests for msgid comments - they now expect a real newline rather than \\n 2006-06-01 14:40 dwaynebailey * filters/: checks.py, test_checks.py: REmove KDE comments before checking for capitals Changed failing simplecaps tests to use the OOo checker as their failing most probably relates to the fact that we do not remove variables when checking for capitals (Removing vars is still TODO). 2006-06-01 14:36 davidfraser * misc/: quote.py, test_quote.py: change includeescapes to return the actual escaped/unescaped value rather than simply whether to escape it or not (this probably requires an argument name change, and better explanation - see change to isnewlineortabescape in test) the old method of returning a boolean is still supported, but deprecated and needs removing once fixed elsewhere this gives more flexibility in handling escaping warn when invalid named unicode escapes are encountered, rather than raising an error 2006-06-01 14:11 davidfraser * storage/test_po.py: added test that quoteforpo and unquotefrompo round string strings properly (strings same as in test_base.py) 2006-06-01 13:54 friedelwolff * storage/test_base.py: Test string roundtripping 2006-06-01 13:06 dwaynebailey * filters/: decoration.py, test_decoration.py: Allow fullstops inside a variables eg $pluginWizard.label; 2006-06-01 12:23 dwaynebailey * filters/prefilters.py: Make the regular expression consider Unicode, so that \w identifies non-ascii letter characters. 2006-06-01 10:59 dwaynebailey * storage/po.py: Make sure we don't merge KDE comments if we find them in the translation. 2006-06-01 10:46 dwaynebailey * tools/test_pomerge.py: Add test to ensure that we merge KDE disambiguations correctly. 2006-06-01 10:45 dwaynebailey * tools/test_pocount.py: Add UTF-8 header marker 2006-05-31 13:56 dwaynebailey * convert/test_oo2po.py: Test of a \\r entry in helpcontent2 which gets messed in PO as it appears as \\\r it makes the roundtrip but its not actually what is required. We really need \\\\r. 2006-05-31 13:46 dwaynebailey * storage/test_oo.py: Test that we roundtrip \\r quotes properly. 2006-05-30 17:59 davidfraser * storage/po.py: clarify parsestring usage (not a normal method) don't overwrite filename if input doesn't really tell us a filename 2006-05-30 15:39 davidfraser * storage/po.py: use template for quoteforpo for plural targets too 2006-05-30 15:37 davidfraser * storage/: po.py, test_po.py: added test that checks the current behaviour of setting target multistrings (the behaviour itself needs checking, see the FIXME) make quoting with templates work if self.msgstr is currently a plural dictionary but a singular target is submitted 2006-05-24 11:44 friedelwolff * convert/: oo2po.py, test_oo2po.py: Handle \n, \t, and \r better. Test differently for them. 2006-05-24 11:39 friedelwolff * storage/po.py: Handle \r just like \n and \t 2006-05-24 11:15 friedelwolff * storage/html.py: Add "content" as attribute to include (fix one test) 2006-05-23 17:35 davidfraser * convert/: mozfunny2prop.py, prop2mozfunny.py: mozillapropertiesencode now treats \n as part of the string, so strip off any before passing and add back later 2006-05-23 17:22 davidfraser * convert/dtd2po.py: avoid double-escaping quotes - they are already escaped in escapeforpo 2006-05-23 17:20 davidfraser * convert/test_dtd2po.py: added test for quoting problem that came up in roundtrip 2006-05-23 17:09 davidfraser * convert/dtd2po.py: remove empty lines at start or end of dtd 2006-05-23 17:06 davidfraser * convert/dtd2po.py: ignore SYSTEM parameters () 2006-05-23 17:01 davidfraser * storage/po.py: fix odd inconsistency in escaping characters add TODO about changing encoding in msgid (just a check) 2006-05-23 16:51 davidfraser * convert/dtd2po.py: handle inconsistency between mixed entities in original and translation if an entity is mixed but not found in the originals, delete it from mixed entities so it is just treated ordinarily (these results in Nones being passed to convertelement, which seems to make sense to return None from rather than adding special cases before calling it) 2006-05-23 16:31 davidfraser * convert/dtd2po.py: try to use underlying escapeforpo function rather than escaping ourselves get rid of \r in dtd definitions directly slight clean up of line stripping use .target property which is simpler 2006-05-23 13:47 davidfraser * convert/test_prop2po.py: .source now represents \n as a newline (although it is escaped in the underlying po file) 2006-05-23 13:45 davidfraser * misc/quote.py: make mozillapropertiesencode convert control characters back to their escaped form this is safe now that the whole line isn't passed through 2006-05-23 13:44 davidfraser * storage/properties.py: do stripping of end lines before handling the line (this means we don't have to distinguish between real endlines and escaped ones in the strings) only do mozillapropertiesencode on the actual property values (this may break keys that use it but I don't think I've seen that) only strip spaces of properties so as not to strip of end lines 2006-05-23 13:42 dwaynebailey * convert/test_html2po.py: Some new tests to make sure we ignore stuff that shouldn't be localised. Also some tests to make sure we can reflow HTML properly and not end up with very odd messgages. 2006-05-23 13:06 davidfraser * storage/dtd.py: try and ensure consistency in the number of blank lines we output (successfully, it seems...) 2006-05-23 13:02 davidfraser * storage/test_dtd.py: try and be more consistent with other tests (and pass!) by including a \n in the dtdsource for test_comment_newline_space_closing 2006-05-23 12:56 davidfraser * storage/po.py: cleaning up blank space 2006-05-23 12:53 davidfraser * storage/dtd.py: don't throw away comments and unparsed lines just because no real entity followed them... note that this adds a number of new lines that we don't want, so fails tests, but the failures aren't so bad and can be fixed 2006-05-23 12:46 davidfraser * misc/: quote.py, test_quote.py: tested extracting starting in a string with a start/end quote the first character fixed lastpos being initialized to 0 as this matches erroneously (None won't match any position) 2006-05-17 00:58 dwaynebailey * tools/test_pomerge.py: When we merge from PO files with a literal tab we end up converting tehm to \t which is incorrect. 2006-05-16 19:19 dwaynebailey * misc/quote.py: Recovering from SF CVS crash: Origianl 1.35 commit: The problem being corrected occurs when start and end delimeters are not the same lenght eg in HTML (3). In this corner we have a line '[space]-->' and we are already in the string. So lastpos != pos = lenstart is 0 != 4 - 4 ie we get confused. I think this fix is correct in that it ignores the case when our last delimeter was at pisition 0. Because we only do this when we are instring I don't think it will mess with other cases. Original 1.36 commit: rather fix this by checking whether lastpos really is a startdelim... 2006-05-16 14:55 dwaynebailey * convert/test_po2csv.py: We should not be escaping \ escapes that are already escaped. 2006-05-16 08:08 friedelwolff * convert/test_xliff2po.py: fix test: rename ids -> locations 2006-05-15 17:08 dwaynebailey * filters/test_checks.py: We should not get confused with variable names that are also must translate words Unicode test for musttranslate 2006-05-15 13:12 dwaynebailey * tools/test_pocount.py: Remove all the FIXME comments for things that are now fixed. 2006-05-15 12:52 friedelwolff * tools/test_pocount.py: fix tab/spaces 2006-05-15 12:49 dwaynebailey * convert/test_dtd2po.py: More tests: - Check that we don't include ENTITY includes for translation - Check that we handle pretty printed entities that have start and end blank newlines. 2006-05-15 08:28 friedelwolff * storage/ts.py: Comment out modifications to minidom classes 2006-05-15 08:27 friedelwolff * tools/test_pomerge.py: Fix tabs/spaces 2006-05-07 08:58 dwaynebailey * storage/test_dtd.py: Test the strange condition of losing comments and subsequent entities if the preceding closing comment is ^[space]--> 2006-05-07 08:53 dwaynebailey * misc/test_quote.py: Multiline comments in a dtd like this: End up losing the comment and all the following entities. The culprit is the space before the end comment marker. If you remove that then it extracts correctly. This test uncovers the problem. We're calling it line by line from the parser in dtd.py and thus we are already in the string with we need to extract. This one is breaking our otherwise very good language packs. 2006-05-06 22:37 dwaynebailey * convert/: moz2po.py, po2moz.py: Make sure we also process .html files 2006-05-05 16:18 davidfraser * convert/test_html2po.py: added helper for checking single elements, to make this file a lot shorter 2006-05-05 16:09 davidfraser * convert/test_prop2mozfunny.py: check that uncommenting of MOZ_LANGPACK_CONTRIBUTORS works OK when converting back too... (bug 118) 2006-05-05 16:02 davidfraser * convert/: mozfunny2prop.py, prop2mozfunny.py, test_mozfunny2prop.py: handle commented out #defines in inc files (just converting to properties, not back, so added TODO for fun) deal with the special case of MOZ_LANGPACK_CONTRIBUTORS, and auto-uncomment it - added test for this rename "prop" variables to "inc" in test_mozfunny2prop.py 2006-05-05 15:52 davidfraser * convert/test_mozfunny2prop.py: added simple test for mozfunny2prop 2006-05-05 15:38 davidfraser * misc/quote.py: handle no escape (and make default argument) in extract 2006-05-05 15:32 davidfraser * convert/test_html2po.py: standard multiline msgid starts with a blank entry for first line 2006-05-05 15:30 davidfraser * convert/html2po.py: need to quote line by line 2006-05-05 15:16 davidfraser * convert/prop2mozfunny.py: leave out blank lines at the end of inc files 2006-05-05 15:12 davidfraser * convert/test_prop2mozfunny.py: added test_prop2mozfunny with test for extra end of lines (bug 144) 2006-05-05 01:35 dwaynebailey * tools/: pocount.py, test_pocount.py: Test and fix to ensure that we count old style KDE plurals correctly Fix counting of words in KDE comments style source strings 2006-05-04 23:31 dwaynebailey * filters/: checks.py, decoration.py, prefilters.py, test_checks.py: Change accelerator test to report if an accelerator is present but located before a bad accelerator character eg a space Add an associated test for such a condition Also add tests for newlines located within a string 2006-05-04 22:59 dwaynebailey * tools/test_pomerge.py: Add further tests for multiline KDE comments 2006-05-04 16:03 dwaynebailey * tools/test_pomerge.py: Add another short line add something at the start case 2006-05-04 14:52 dwaynebailey * filters/checks.py: Do not run doublewords test if the message is unchanged. 2006-05-04 14:38 dwaynebailey * tools/test_pomerge.py: We shouldn't be merging KDE comments if somehow the translator included them in their translations. 2006-05-04 10:43 friedelwolff * storage/po.py: Default to unix newline if there are no entries in template list 2006-05-04 09:59 dwaynebailey * tools/test_pomerge.py: Test to see that we don't mess with unnosociated comments that have dos vs unix line endings. 2006-05-04 09:42 friedelwolff * storage/po.py: In simple case, don't minimise diff 2006-05-04 09:39 dwaynebailey * tools/test_pomerge.py: When merging in new comments we should respect the line ending convention of the template file. 2006-05-04 09:35 friedelwolff * tools/test_pomerge.py: Use double newlines in test for now 2006-05-04 09:22 dwaynebailey * filters/prefilters.py: This fixes a bug because sometimes we supply 'unicode' not 'str' to the function. This code is on a critical path so I'd like someone to look at it and make it more robust if possible. I initially thought it might be related to multistring functionality but it seems not. 2006-05-04 09:16 friedelwolff * storage/po.py: Redo lineend handling during merge (fix test_preserve_comments_layout) 2006-05-04 09:14 friedelwolff * tools/test_pomerge.py: Use double trailing newlines in test for now 2006-05-04 09:09 dwaynebailey * filters/test_checks.py: We should ignore/remove quotes that surround words in endpunc checking as it create too many false positives. 2006-05-04 07:43 friedelwolff * tools/pocount.py: Fix some cases 2006-05-04 07:21 friedelwolff * tools/pocount.py: Use base class API 2006-05-04 02:38 dwaynebailey * tools/test_pomerge.py: Add test to check that we aren't making silly merging decisions for small changes at start and end of a strings Check that we preserve the layout of comments when we add '# (pofilter)' style comments 2006-05-04 02:05 dwaynebailey * filters/: checks.py, test_checks.py: Remove words with punctuations after we've removed variables and accelerators. 2006-05-04 01:53 dwaynebailey * filters/test_checks.py: Reenable a test for singlequotes Add test for some failing simplecaps 2006-05-04 01:43 dwaynebailey * filters/test_prefilters.py: Test to ensure that we remove apastrophes from words that comtain unicode characters. 2006-05-03 17:48 friedelwolff * tools/test_pocount.py: enable tests, fix tabs 2006-05-03 13:20 friedelwolff * tools/test_pomerge.py: Fix test to expect correct po 2006-05-03 13:11 friedelwolff * storage/po.py: Fix trailing newlines and empty ("") strings 2006-05-03 11:56 friedelwolff * tools/test_pomerge.py: test cross format merging 2006-05-03 11:54 friedelwolff * storage/test_po.py: fix test_merge_blanks to have escaped newlines 2006-05-03 11:53 friedelwolff * tools/test_pomerge.py: remove dummy filenames, fix expectedpo with kde comments 2006-05-03 11:49 friedelwolff * storage/po.py: don't use lineend unnecessarily (fixes merging of KDE comments) 2006-05-03 11:46 friedelwolff * tools/pomerge.py: remove debug print statement 2006-05-03 11:16 friedelwolff * filters/pofilter.py: Use base class API in filterelement() 2006-05-03 00:02 dwaynebailey * tools/test_pomerge.py: Tests to detect spurious end of file newlines. 2006-05-02 23:55 dwaynebailey * tools/test_pomerge.py: Add a test for preserving format where strings end with hardcoded newlines Another variant of msgstr "" 2006-05-02 21:45 dwaynebailey * tools/test_pomerge.py: Add tests for merging strings with KDE style comments. 2006-05-02 12:15 friedelwolff * tools/pomerge.py: supply format pairs to parser for xliff->po 2006-05-02 12:13 friedelwolff * tools/pomerge.py: guess dummy filename if none available (mostly for tests) 2006-05-02 12:11 friedelwolff * storage/po.py: revert to basic merging if not merging with pounit 2006-05-02 09:44 friedelwolff * tools/test_pomerge.py: Initial infrastructure and first test for merging into xliff 2006-05-02 09:28 friedelwolff * tools/pomerge.py: Allow merging to xliff, factor out inputfilefactory 2006-05-02 09:25 friedelwolff * storage/base.py: Enable basic merge 2006-05-02 09:24 friedelwolff * storage/xliff.py: Enable merge, fix small bug in settranslated() 2006-04-28 18:31 friedelwolff * storage/poxliff.py, convert/xliff2po.py: rename getreferences() to getlocations (like baseclass) 2006-04-28 17:55 friedelwolff * storage/: base.py, po.py: move makeindex() to base.py, add getlocations() to baseunit 2006-04-28 17:37 friedelwolff * storage/po.py, tools/pomerge.py: Rename: * po.sourceindex -> locationindex (and related uses) * po.msgidindex -> sourceindex * pounit.getids() -> getlocations() (and related uses) 2006-04-28 17:26 friedelwolff * storage/poxliff.py: -debug print statement 2006-04-28 17:21 friedelwolff * convert/dtd2po.py, convert/po2dtd.py, convert/po2nb.py, convert/po2oo.py, convert/po2ts.py, convert/po2xliff.py, convert/pot2po.py, convert/test_xliff2po.py, storage/test_po.py: Rename: * po.sourceindex -> locationindex (and related uses) * po.msgidindex -> sourceindex * pounit.getids() -> getlocations() (and related uses) 2006-04-28 15:38 davidfraser * misc/: quote.py, test_quote.py: fix test for passing function to extractwithoutquotes (was including quotes) implement callable includeescapes in new version of function 2006-04-28 15:31 davidfraser * misc/test_quote.py: missed out some of the functionality extractwithoutquotes is meant to support - a function that determines whether or not to include a given escape 2006-04-28 14:12 davidfraser * misc/: quote.py, test_quote.py: added fix for startdelim directly following enddelim (needs to handle in same loop) did same enhancements to extractwithoutquotes as have been done to extract took out TODO for failing test 2006-04-28 14:10 davidfraser * misc/test_quote.py: added test for quotes starting just after closing, more escape handling tests changed expected behaviour of hanging escape in extractwithoutquotes(includeescapes=False) 2006-04-28 14:08 dwaynebailey * __version__.py: Bump up the version number to prevent confusion between HEAD and 0.9 2006-04-28 13:56 davidfraser * misc/test_quote.py: added extra quote to test_extract, and added test_extractwithoutquotes (uncovering a bug in the process for fun) 2006-04-28 13:49 davidfraser * filters/prefilters.py: was overkill using a heavy tokenizer here, and filterwordswithpunctuation gets called very often replaced with quote.for_all and a regular expression for words with apostrophe's... makes filtering nearly 3 times faster 2006-04-28 13:46 davidfraser * filters/test_prefilters.py: added tests for words with apostrophe in the middle 2006-04-28 13:18 davidfraser * misc/quote.py: rstripeol could be simpler... add TODO for extractwithquotes 2006-04-28 13:15 davidfraser * misc/quote.py: slight improvements and comments to extract function 2006-04-28 13:10 davidfraser * misc/quote.py: use the significant locations we find to hop and skip through the string ... 2006-04-28 12:58 davidfraser * misc/: quote.py, test_quote.py: added tests for find_all and extract, so I can try speed them up further improved docstrings 2006-04-28 12:46 davidfraser * misc/quote.py: use find_all to precache important locations in string rather than running find over and over there's some more code that could be used to not iterate over every character (next task) 2006-04-28 11:11 friedelwolff * tools/pomerge.py: remove dead code 2006-04-28 09:53 friedelwolff * tools/pomerge.py: Use api rather than direct data access 2006-04-28 09:20 dwaynebailey * filters/test_checks.py: Add check for escaped newlines. 2006-04-28 08:58 friedelwolff * tools/test_pomerge.py: Make failing test work (perhaps temporarily) before big changes 2006-04-26 15:10 friedelwolff * storage/po.py: unquoteforpofromtemplate: ensure we're always using unicode (fix one failing test) 2006-04-26 14:52 friedelwolff * storage/po.py: remove old merge code left by accident 2006-04-26 14:49 friedelwolff * storage/po.py: when merging, use newline style of self. +comments 2006-04-26 14:45 friedelwolff * tools/test_pomerge.py: Fix test to have correct ordering of comments (only expected is important) 2006-04-25 14:58 friedelwolff * storage/test_po.py: fix accidental cvs commit 2006-04-25 14:26 dwaynebailey * tools/test_pomerge.py: Test that we can merge from a DOS file without adding new lines simply because they have DOS line endings. 2006-04-25 14:24 friedelwolff * filters/test_pofilter.py, misc/test_multistring.py, storage/po.py, storage/test_po.py, storage/test_xliff.py: +quoteforpofromtemplate() to use preferred formatting 2006-04-25 14:18 friedelwolff * tools/test_pomerge.py: Extra test with "" preceding msgstr 2006-04-25 12:22 friedelwolff * tools/test_pomerge.py: More reflowing tests for single character change 2006-04-25 09:51 friedelwolff * storage/po.py: don't update msgstr if it is unchanged 2006-04-25 07:45 friedelwolff * tools/test_pomerge.py: test_preserve_format 2006-04-24 16:37 friedelwolff * storage/test_base.py: add test for non-ascii source and target - please review 2006-04-24 16:18 friedelwolff * storage/: lisa.py, poxliff.py, tbx.py, tmx.py, xliff.py: Always decode strings for xml text elements 2006-04-24 13:35 friedelwolff * convert/test_po2xliff.py: Do test with poxliff. Test number of units (in case of plurals) remove testing of plural translation 2006-04-24 12:58 friedelwolff * storage/xliff.py: take into account that source and target tags are intertwined (only affects poxliff) 2006-04-24 11:45 friedelwolff * storage/poxliff.py: Preserve ids with assigning non-germanic plurals (fix test_ids) 2006-04-24 11:41 friedelwolff * storage/test_poxliff.py: extra failing ids test 2006-04-24 11:09 friedelwolff * storage/xliff.py: Change id styles from messages_3[1] to 3[1]. 2006-04-24 11:05 friedelwolff * convert/test_xliff2po.py: test plural conversion 2006-04-24 10:54 friedelwolff * storage/poxliff.py: Change id styles from messages_3[1] to 3[1]. Make it recurse in the case of plurals. 2006-04-24 10:46 friedelwolff * storage/test_poxliff.py: test ids 2006-04-24 10:44 friedelwolff * storage/xliff.py: +getid(), +TODO: comment 2006-04-24 10:31 friedelwolff * storage/poxliff.py: Parse differently in poxliff to do plurals (not perfect yet) 2006-04-24 10:19 friedelwolff * storage/test_poxliff.py: test plurals 2006-04-24 08:14 friedelwolff * storage/po.py: internalise newline and tab escaping - reflowing changes! , check plural exists before assigning 2006-04-24 08:05 friedelwolff * convert/xliff2po.py: Remove dead code, use poxliff, support comments 2006-04-21 16:58 dwaynebailey * filters/checks.py: Add precondition checks for: emails, simpleplurals, urls 2006-04-21 15:17 dwaynebailey * filters/test_checks.py: Test that we can find accronyms inside brackets. 2006-04-21 15:16 friedelwolff * storage/xliff.py: Expand code for fuzzy and approved states 2006-04-21 15:10 friedelwolff * convert/test_xliff2po.py: test fuzzy conversion 2006-04-21 14:57 friedelwolff * storage/poxliff.py: +accessor for other comments gettranslatorscomments() 2006-04-21 14:55 friedelwolff * storage/poxliff.py: +accessor: getautomaticcomments() 2006-04-21 14:53 friedelwolff * storage/poxliff.py: accessor for location references getreferences() 2006-04-21 14:48 friedelwolff * storage/poxliff.py: Minor cleanups and fixes 2006-04-21 14:37 friedelwolff * storage/: test_xliff.py, xliff.py: test setting unit with empty target funny, add comments 2006-04-21 13:08 friedelwolff * storage/xliff.py: Hack to indicate fuzzyness in the absense of a target tag (suggested in XLIFF 1.1 Representation guide for gettext PO 2006-04-21 11:39 friedelwolff * convert/test_xliff2po.py: test location comments 2006-04-21 09:53 friedelwolff * misc/: multistring.py, test_multistring.py: add support (and tests) for .replace() 2006-04-21 09:17 friedelwolff * convert/test_xliff2po.py: Unit tests for xliff2po 2006-04-21 08:02 friedelwolff * storage/xliff.py: +2 accessors getcontextgroups(), getrestype() 2006-04-19 17:02 friedelwolff * convert/xliff2po.py: Initial change to new xliff class (not poxliff yet) 2006-04-19 14:39 friedelwolff * storage/poxliff.py: Fix infinite recursion, __eq__, createfromxmlElement 2006-04-19 14:26 friedelwolff * storage/test_poxliff.py: Unit test for poxliff.py 2006-04-19 14:10 friedelwolff * storage/test_xliff.py: remove commented code, reindent file 2006-04-19 13:50 friedelwolff * storage/test_xliff.py: Unit tests for xliff.py 2006-04-19 13:47 friedelwolff * convert/test_po2xliff.py: Unit tests for po2xliff 2006-04-19 13:46 friedelwolff * convert/po2xliff.py: Almost complete rewrite of po2xliff using new poxliff class, with some code factored out to lisa.py 2006-04-19 13:42 friedelwolff * storage/poxliff.py: xliff class for storing PO information 2006-04-19 13:34 friedelwolff * storage/xliff.py: Complete rewrite of xliff based on lisa class 2006-04-19 11:38 friedelwolff * convert/test_po2tmx.py: rename test (testing non-ascii) 2006-04-19 11:35 friedelwolff * storage/test_po.py: Adapt test to work with hidden po escaping 2006-04-19 11:33 friedelwolff * storage/po.py: hide newline and tab escaping from users 2006-04-19 11:32 friedelwolff * convert/test_po2csv.py: Adapt tests to work with hidden po escaping 2006-04-19 11:22 friedelwolff * convert/test_po2tmx.py: tabs-> spaces, test unicode 2006-04-19 11:21 friedelwolff * convert/po2tmx.py: remove unnecessary decoding of source and target 2006-04-19 09:01 friedelwolff * convert/test_po2tmx.py: use easy translate() in base class 2006-04-19 08:58 friedelwolff * storage/: tbx.py, tmx.py: accept (but ignore) purpose tag in createlanguageNode 2006-04-19 08:56 friedelwolff * storage/lisa.py: Add support for placeholder tags (from old xliff class) Factor out getlanguageNodes Factor out getText to some extent - now outside class for external users Add "purpose" paramater to createlanguageNode 2006-04-19 08:45 friedelwolff * storage/: base.py, test_base.py: extentions to base and test_base 2006-04-19 01:21 dwaynebailey * convert/: po2prop, prop2po: Add command line .properties convertor wrappers to allow us to work directly with .properties files. 2006-04-18 22:32 dwaynebailey * tools/test_pocount.py: Update the comments for not yet implemented tests 2006-04-18 22:18 dwaynebailey * tools/poconflicts.py: Ignore single letter strings when searching for conflicts. This eliminates Mozilla accelerators and such like. 2006-04-18 18:17 dwaynebailey * trunk/setup.py: Install prop2po and po2prop as command line applications to allow .properties processing. 2006-04-11 16:00 dwaynebailey * convert/: test_po2oo.py, po2oo.py: We now output GSI files using the default date of 2002-02-02 02:02:02 unless requested to keep dates or another date is supplied. The date format now also uses dashes between date parts. 2006-04-11 14:51 dwaynebailey * convert/test_sxw2po.py: Add a test framework. 2006-04-11 14:50 dwaynebailey * convert/: test_moz2po.py, test_po2moz.py: Fix bad comments 2006-04-11 14:49 dwaynebailey * convert/sxw2po.py: Add a description for the program 2006-04-11 14:09 dwaynebailey * convert/test_ts2po.py: Add basic test for ts2po 2006-04-11 14:06 dwaynebailey * convert/: test_po2txt.py, test_txt2po.py: Add basic tests for txt2po and po2txt. Mainly just testing command line options. 2006-04-11 13:59 dwaynebailey * convert/: test_csv2po.py, test_dtd2po.py, test_po2csv.py, test_po2dtd.py, test_po2prop.py, test_po2tmx.py, test_po2ts.py, test_pot2po.py, test_prop2po.py: Make sure we do command line help testing for all programs that have test_* tests. There are still some missing that do not have test harnesses. 2006-04-11 13:34 dwaynebailey * convert/: test_convert.py, test_html2po.py, test_moz2po.py, test_oo2po.py, test_po2html.py, test_po2moz.py, test_po2oo.py: Rework the help text options checking so that we have to account for each option. If any remain at the end of checking then the test will fail. 2006-04-11 11:49 dwaynebailey * filters/: checks.py, test_checks.py: Expamd 'long' and 'short' test to cover instanaces of single characters. ie a msgid of length 1 will trigger a 'long' error if the msgstr is longer then 1. Similarly a msgid longer than 1 but with a msgtre of 1 character will trigger the 'short' error. 2006-04-11 11:23 dwaynebailey * convert/html2po.py, convert/test_html2po.py, misc/quote.py, misc/test_quote.py: Add ability to process multiline blocks from html2po by adding ability to wrap a list in double quotes. 2006-04-11 10:39 dwaynebailey * convert/test_html2po.py: Test to check that we place quotes around lines from multiline html content. 2006-04-11 10:15 dwaynebailey * convert/prop2mozfunny.py: po2ini must return a value. 2006-04-06 15:28 friedelwolff * storage/test_tmx.py: Fix indentatin 2006-04-05 11:28 friedelwolff * storage/test_po.py: test unassociated comment is present in __str__ 2006-04-05 10:19 davidfraser * storage/po.py: made sure we don't skip single lone comments also if there are othercomments, we should return them even if the rest of the unit is blank added TODOs - this parser is whacky 2006-04-05 10:02 friedelwolff * storage/test_po.py: test_unassociated_comments() 2006-04-05 09:50 friedelwolff * __version__.py: Version up to 0.9a2 2006-04-05 09:45 friedelwolff * storage/po.py: Factor out pofile.initallcomments() and use (needed in pootle) 2006-04-05 09:14 friedelwolff * storage/po.py: Factor out pofile.header() and use 2006-03-29 18:16 friedelwolff * storage/po.py: Fix own typos 2006-03-29 18:01 friedelwolff * storage/po.py: reword encoding test during parse 2006-03-29 17:50 friedelwolff * storage/po.py: always check that encoding is sane 2006-03-29 11:13 friedelwolff * storage/po.py: use utf-8 if encoding is None 2006-03-29 10:47 friedelwolff * filters/checks.py: add the unicode ellips as punctuation character, remove duplicate dollar sign 2006-03-28 13:30 friedelwolff * storage/po.py: use utf-8 as encoding if header still contains "CHARSET" 2006-03-27 16:19 davidfraser * convert/mozfunny2prop.py: need to return the result otherwise the converter will think the file is empty 2006-03-24 16:55 friedelwolff * tools/pogrep.py: make pogrep encoding aware 2006-03-24 16:31 dwaynebailey * convert/: oo2po.py, test_oo2po.py: Automatic comment must have a \n at the end otherwise htey jsut role into the #: location comment on the next line. 2006-03-23 21:51 dwaynebailey * convert/: oo2po.py, test_oo2po.py: Add the ability to merge x-comment languag entries into #. entries in PO files. 2006-03-23 20:23 dwaynebailey * convert/: oo2po.py, test_oo2po.py: Add msgid bug reporting entry to PO headers for OOo files. 2006-03-23 16:12 dwaynebailey * convert/test_po2ts.py: Add simple po2ts tests. Shoudl really be doing this with an XML parser. 2006-03-23 15:16 dwaynebailey * tools/pogrep.py: Can now handle Unicode search or regex strings. Nasty assumptions made about supplied encoding of search string. Should probably be using users system encoding. 2006-03-23 14:44 dwaynebailey * tools/test_pogrep.py: Add unicode checking for when we do regex checking 2006-03-23 12:22 friedelwolff * filters/prefilters.py: Don't group quoted strings as single tokens 2006-03-23 12:13 friedelwolff * filters/test_prefilters.py: test broken filterwordswithpunctuation() 2006-03-23 10:17 friedelwolff * convert/test_prop2po.py: tabs-> spaces, use base api 2006-03-23 08:24 friedelwolff * convert/pot2po.py: Take care of obsolete messages 2006-03-22 16:55 friedelwolff * storage/: po.py, test_po.py: Test and implementation of pounit.makeobsolete() 2006-03-22 16:01 friedelwolff * convert/test_pot2po.py: Fix test_merging_new_before_obsolete and test more 2006-03-22 15:48 friedelwolff * convert/test_pot2po.py: Correct classname: TestPO2DTD -> TestPOT2PO 2006-03-22 15:41 friedelwolff * convert/test_pot2po.py: reorder obsoleting tests 2006-03-22 15:38 friedelwolff * convert/test_pot2po.py: add test_merging_obsoleting_messages (from test_po.py) 2006-03-22 15:38 friedelwolff * storage/test_po.py: remove test_merging_obsoleting_messages (now in test_pot2po). Add test_obsolete for basic obsolete functionality 2006-03-22 13:25 friedelwolff * storage/test_po.py: correct merging test order 2006-03-22 13:19 friedelwolff * storage/po.py: don't merge automaticcomments. self is the authority 2006-03-22 13:01 friedelwolff * convert/pot2po.py: Allow pot files without #: location comments 2006-03-22 11:48 friedelwolff * convert/prop2mozfunny.py: fix syntax error with po2ini 2006-03-21 17:13 dwaynebailey * tools/test_pogrep.py: Tests to ensure we can cover all the permutations of Unicode chars in pogrep (search string and text) 2006-03-21 17:02 dwaynebailey * storage/test_properties.py: Make sure we do the right thingTM with spaces around properties and values. 2006-03-20 12:22 dwaynebailey * convert/: po2moz.py, moz2po.py, mozfunny2prop.py, prop2mozfunny.py: Mozilla ini files are in UTF-8. Make sure we handle .ini files separate from .it files. Treat them all as UTF-8 encoded files. 2006-03-19 23:24 dwaynebailey * convert/test_dtd2po.py: Add test for a DTD that has an accelerator in the translation but not the template DTD. Currrently it crashes the convertor, we should be simply dropping he accelerator. 2006-03-19 15:08 dwaynebailey * convert/test_po2prop.py: New test set for po2prop 2006-03-19 14:59 dwaynebailey * convert/test_prop2po.py: Ensure that literal \n that appear in properties files make it into PO files. 2006-03-17 15:53 friedelwolff * convert/: po2oo.py, test_po2oo.py: integrate pofilter with po2oo. Extra commandline option 2006-03-17 15:52 friedelwolff * filters/checks.py: move *config.accelmarkers and .varmatches to lists 2006-03-17 15:26 friedelwolff * convert/test_po2oo.py: some unit tests for filteraction 2006-03-17 15:14 friedelwolff * filters/test_pofilter.py: -unused poexpected, some tabs-> spaces 2006-03-17 10:47 dwaynebailey * tools/test_pomerge.py: When we merge PO files we are removing unassociated comments. Ie comments in the original PO file (template -t) that are not directly linked to a message. So if you have # Unassociated comment # Comment msgid "Blah" msgstr "Blee" Then the output PO file will have the unassociated comment removed. 2006-03-17 09:11 friedelwolff * filters/checks.py: Typo: excluefilters -> excludefilters 2006-03-16 17:12 dwaynebailey * filters/test_checks.py: Correct a closing bracket 2006-03-16 13:26 dwaynebailey * convert/test_prop2po.py: Add tests to make sure that we include blank properties eg: credit= 2006-03-16 09:54 dwaynebailey * filters/test_checks.py: Test to check that we identify when variables appear inside variables eg &browserName; 2006-03-16 01:38 dwaynebailey * convert/test_pot2po.py: Add tests for merging automatic comments Add test to validate that obsolete messages are placed at the bottom of a pofile. 2006-03-16 01:27 dwaynebailey * convert/test_prop2po.py: Tests to check that we place comments in the correct place in PO files Test (currently disabled) to validate that we are placing LOCALIZATION NOTES in KDE style comments. 2006-03-16 00:40 dwaynebailey * convert/: po2html.py, po2moz.py, test_po2html.py, test_po2moz.py: Complete po2html integration into po2moz: - Allow po2html to ignore fuzzy messages when merging PO into HTML - Add stdiotell wrapper for correct operation with stdout - Add xhtml as a valid file type - Add xhtml parsing to po2moz - Add the start of test_ for po2moz and po2html 2006-03-15 23:35 friedelwolff * misc/wStringIO.py, storage/po.py, filters/test_pofilter.py: Commit workaround for headerless po's. See filters/test_pofilter.py::test_unicode 2006-03-15 21:50 dwaynebailey * filters/test_pofilter.py: If there is no header specifying the encoding then pofilter gets very confused. This test tries to parse a UTF-8 snippet and the lack of encoding information confuses pofilter. 2006-03-15 21:39 dwaynebailey * filters/checks.py: No need to remove variables when checking for double spacing problems. 2006-03-15 21:31 dwaynebailey * filters/test_checks.py: Add checks for variables that mess with double spacing Another variable false positive added for later correction 2006-03-15 16:44 dwaynebailey * convert/: html2po.py, moz2po.py, test_moz2po.py: Make moz2po work with html files. Alter html2po.py so that it works in the moz2po family. 2006-03-15 13:25 davidfraser * convert/html2po.py: use stdiotell to prevent seek error 2006-03-15 13:24 davidfraser * misc/stdiotell.py: added simple wrapper for stdout that remembers position 2006-03-14 21:07 dwaynebailey * storage/test_po.py: We should be able to obsolete message when we retire them, otherwise our Pootle PO files just grow and grow. 2006-03-14 20:15 dwaynebailey * storage/: po.py, test_po.py: Automatic comments are never merged, they are overwritten by the new file. Which makes sense since they come from the source code and shouldn't be edited but at the source. 2006-03-14 16:38 dwaynebailey * storage/: po.py, test_po.py: Separate automactic comments (#.) from other comments (#[space]). This will allow us to do more Gettext like operations on our PO files such as merging #. comments properly (new comment overrides the old comment) 2006-03-14 15:22 dwaynebailey * convert/test_pot2po.py: Test to check that we merge automatic comments (#.) correctly. 2006-03-13 11:31 friedelwolff * convert/: dtd2po.py, po2dtd.py, po2nb.py, po2oo.py, po2ts.py, po2xliff.py, pot2po.py: rename source(s) (i.t.o. source location) to id(s) 2006-03-13 11:27 friedelwolff * storage/: po.py, test_po.py: rename source(s) (i.t.o. source location) to id(s) 2006-03-13 11:20 friedelwolff * services/lookupservice.py: pass open file to storagebuilder 2006-03-10 17:23 friedelwolff * convert/test_csv2po.py, storage/csvl10n.py, storage/dtd.py, storage/oo.py, storage/properties.py, tools/test_pomerge.py: Rename source (i.t.o. __str__) to output 2006-03-10 15:47 friedelwolff * storage/: po.py, test_po.py: Rename source (i.t.o __str__) to output 2006-03-10 14:22 friedelwolff * filters/: checks.py, test_checks.py: Test and fix openoffice visibility xml tag. More comments 2006-03-10 11:15 friedelwolff * filters/checks.py: Also update punctuation configuration 2006-03-10 10:47 friedelwolff * filters/: checks.py, test_checks.py: Implement xml/html checking with specific configuration for OpenOffice.org 2006-03-08 16:33 dwaynebailey * convert/test_dtd2po.py: Add a test for a DONT_TRANSLATE case that should be translated :( Probably needs to be corrected. 2006-03-08 16:20 dwaynebailey * convert/dtd2po.py: Now also handle cases where DONT_TRANSLATE is followed by some other explanatory text 2006-03-07 23:25 dwaynebailey * storage/: test_dtd.py, test_properties.py: Added some tests picked up during roundtripping Mozilla -> moz2po -> po2moz -> New files - Comments that appear on the same line as an entity definition should remain in that position in our generated files - We are losing hard coded \n at the start and end of properties defintions 2006-03-07 22:25 dwaynebailey * storage/test_dtd.py: Test to check that we can handle entitie reference eg &blah; in the DTD file. 2006-03-07 15:08 dwaynebailey * storage/html.py, convert/test_html2po.py: Allow the abbr tag to be localised (Use in tables to provide abbreviated forms for the content of a TH or TD tag) 2006-03-07 14:46 friedelwolff * storage/: po.py, test_po.py: Unit test and solution for multiple source location styles 2006-03-07 12:22 dwaynebailey * filters/test_checks.py: Som new tests that pick up problems with: - endpunc - not all punctuation is considered - singlequotes - 'n in Afrikaans is confusing this one when they should have been removed - variabkes - entities with dots eg &file.name; are not checked 2006-03-06 23:39 dwaynebailey * storage/po.py: Revert #: merging code. It didn't work so good. 2006-03-06 23:02 dwaynebailey * convert/: html2po.py, test_html2po.py: Add duplicate handling to html2po. This is a good thingTM. We can now begin to look at adding xhtml as a convertor for moz2po 2006-03-06 22:29 dwaynebailey * convert/test_html2po.py: Add helpers countunits and compareunit Convert all test to use the helpers Remove some unuseful tests Add a command line testing class inheritect from test_convert Add test_help 2006-03-06 12:03 dwaynebailey * storage/html.py: In object entities the standby attribute should be translated. The attr tags will probably come into their own when we can compress entities to show a translator only the bit they should change. Till then its in here more for tracking. 2006-03-06 11:05 dwaynebailey * storage/html.py, convert/html2po.py, convert/test_html2po.py: Add a number of new tags: h4, h5, h6, th, dt, dd, address, caption Removed: span, lang Addeded attrs: summary This should give us full covererage of tables. Removing 'lang' removes a number of spurious errors. xhtml is now a valid suffix for files processed by html2po Cleanup test_html.py Made all tests work Added tests for all the new tags added 2006-03-06 02:02 dwaynebailey * convert/test_dtd2po.py: Add a failing DONT_TRANSLATE style Test how we handle .acceskeys that are mimatched ie don't appear in .label Check the the .source is correct when we fold normal access keys 2006-03-03 22:36 dwaynebailey * storage/po.py, tools/test_pomerge.py: Allow source comments to be split at the line level and then merged. This ensures that we don't duplicate source locations if they appear in two different styles eg one per line merged with multiple per line. 2006-03-03 15:48 friedelwolff * storage/: html.py, properties.py, xliff.py: Fix up accidental commit of wrong files 2006-03-03 14:47 charlvn * convert/test_html2po.py: [no log message] 2006-03-03 14:42 friedelwolff * storage/: html.py, po.py, properties.py, ts.py, xliff.py: po.py 2006-03-03 14:33 friedelwolff * storage/test_po.py: Test more for plurals 2006-03-03 12:59 dwaynebailey * CREDITS, tools/pogrep.py, tools/test_pogrep.py: [Tom Cato Amundsen tca at gnu dot org] - Patch to allow pogrep to search in other sections. 2006-03-03 09:05 dwaynebailey * storage/test_dtd.py: Test to ensure we can roundtrip localisation notes 2006-03-03 09:01 dwaynebailey * filters/test_checks.py: Extend the startcaps tests to check that we can handle Unicode in the Latin Extended Additional block (ie pure Unicode) (this passes) Detect entity style variables of the type &blah.lable; correctly (currently fails) Add a test for variables in quotes eg \"%S\" (this passes) 2006-03-02 19:56 dwaynebailey * convert/test_csv2po.py: Whoops it actually is 'comment' not 'source' 2006-03-02 19:24 dwaynebailey * convert/test_csv2po.py: Make sure we can see the source when we fail checks in singleelement. Correct the header: the first column is called 'source' not 'comment'. Make sure we test with and without the header 2006-03-02 11:29 davidfraser * filters/: decoration.py, test_decoration.py: modified decoration.find_marked_variables to be able to handle 0-length variable markers (# or % in openoffice) added simple test for this to new test_decoration module this now makes the checks for those variables pass in test_checks 2006-03-02 11:12 davidfraser * convert/po2csv.py, storage/csvl10n.py, storage/test_base.py, storage/test_csvl10n.py: fixed up handling spreadsheet escapes - do it in the base class, not the converter also add in escapes when generating source added more detailed output when error in comparing sources (and fix comparing source2 units to source2 units instead of source1 units!) 2006-02-28 15:12 dwaynebailey * filters/: checks.py, test_checks.py: Ensure that we remove KDE comments before checking if something is untranslated (also added test) Allow numbers to be reordered (also added test Added test for messages that are blank but contain a KDE comment 2006-02-28 14:52 friedelwolff * storage/po.py: always use encoding with multistring 2006-02-28 13:42 friedelwolff * convert/: convert.py, po2moz.py: Move reversed splitinputext from convert.py to po2moz.py 2006-02-28 08:15 friedelwolff * storage/po.py: Fix pounit.gettarget() 2006-02-24 16:04 friedelwolff * storage/: po.py, test_po.py: Initial moves to new multistring 2006-02-24 11:38 davidfraser * misc/: multistring.py, test_multistring.py: rename alt to strings, changed representation 2006-02-24 11:26 davidfraser * misc/: multistring.py, test_multistring.py: include the string itself in its list of alternative strings 2006-02-24 11:11 davidfraser * misc/test_autoencode.py: add test docstrings check constructor creates unique objects 2006-02-24 11:03 davidfraser * misc/: autoencode.py, multistring.py, test_autoencode.py: de-tabify, clean up tests can't consruct basestring, use type for comparison for unknown types 2006-02-24 10:58 davidfraser * misc/: multistring.py, test_multistring.py: added multistring type that stores alternate strings in a list 2006-02-24 10:25 davidfraser * misc/: autoencode.py, test_autoencode.py: added autoencode subclass of unicode that knows which encoding to use by default when converting to string