Translate Toolkit & Pootle

Tools to help you make your software local

User Tools


Random Stuff to Remember

  • po2xliff: put po's ”# (review)” comments in the right xliff tags.
  • Test unit.removenotes() on an xliff unit without any notes.
  • pomerge with xliff → the output doesn't contain all xliff units.

Discussion Points

  • In storage/base.py, make methods that don't do real work raise a NotImplementedError.
  • Creating a new xliffunit creates a TU without a target element.

This means that you have to do “unit.target=whatever” after creating a unit. It also means that all code in xliff.py dealing with target nodes have to test if targetnode is not None. And although it is explicitly tested (in test_xliff.test_fuzzy) not to have a target on initial creation, I'm wondering if it is really the desired behavior, and if so, why? My expected behavior would be to create an empty target node.

Example code snippet (current behavior):

>>> unit = xliff.xliffunit('sourcestring')

>>> print unit
<trans-unit><source>sourcestring</source></trans-unit>

Example code snippet (my expected behavior):

>>> unit = xliff.xliffunit('sourcestring')

>>> print unit
<trans-unit><source>sourcestring</source><target></target></trans-unit>

ToDo List

Continuous

  • Replace tabs with spaces in code.
  • Rename po-specific names:
    • element → unit
    • msgid → source
    • msgstr → target
    • source → locations
    • comments → notes

18-22 December 2006

  • Build OpenOffice 2.1

11-15 December 2006

Monday

  • Weekly planning meeting
  • Allow target language to be specified in xliff.

Tuesday

  • Allow target language to be specified in xliff. r4480, r4481
  • Commit initial hackish implementation of oo2xliff.
  • Commit initial hackish implementation of xliff2oo.
  • Refactor oo2po: replace po-specific code with base-api code that can be used for xliff and po.
  • Implement oo2xliff inside oo2po.

Wednesday

  • Refactor po2oo: replace po-specific code with base-api code that can be used for xliff and po.
  • Implement xliff2oo inside po2oo.

Thursday

  • Define context accessors in base.py

Friday

  • Define context accessors in base.py

4-8 December 2006

Monday

  • Weekly planning meeting
  • Review Capel's “alt-trans sane pass xliff files/suggestions” code.
    • Waiting for the finished patch, will review on Tuesday.
  • Put pofilter error reports in the correct xliff tags, remove po-specific references.
  • Send diff about the above pofilter work to Capel for review.

Tuesday

  • Implement Capel's suggestions for Monday's storage api+pofilter work.
    • Commit storage api work.
  • Review Capel's “alt-trans sane pass xliff files/suggestions” code.
  • Discuss and commit Capel's “read and pass xliff files and suggestions”.
  • Review code from Capel: “create sane delete method”
  • Review code from Capel: “write xliff files correctly”
  • Double check all the pofilter tests, they should use the new adderror() and geterrors() from the storage api.
    • Send patch for review (if any).
    • Commit pofilter work.
  • Create better support for pofilter's review comments in xliff. Nothing needed to be done.
    • Send patch for review.
    • Separate commit for pofilter/review update.
  • Make pomerge work with multiple filetypes.
    • Send patch for review.

Wednesday

  • Discuss and commit Capel's “sane delete method”.
  • Discuss and commit Capel's “write xliff files correctly”.
  • Review code from Capel: “merging of xliff files”.
  • Discuss and commit my updated pofilter tests. Done on Tuesday.
  • Discuss and commit my pofilter/xliff review-comments update. Nothing needed to be done.
  • Discuss and commit my pomerge update.
  • Write oo2xliff using oo2po. Did a hackish implementation using a copy of oo2po.
    • Send initial patch for review.

Thursday

  • Discuss and commit Capel's “merging of xliff files”.
  • Discuss and commit my xliff2oo functionality.
  • Review code from Capel: Translation Memory stuff.
  • Implement the functionality of xliff2oo, inside po2oo. Did a hackish implementation using a copy of po2oo.
    • Send patch for review.

Friday

  • Discuss and commit Capel's TM stuff.
  • Discuss and commit my initial oo2xliff patch.
  • Review whatever code Capel did at the start of his Friday.
  • Continue writing oo2xliff, finalize if possible.
    • Send patch for review.

27 November - 1 December 2006

  • Finish pofilter-related changes to the storage API
  • Finish xliff review support for pofilter.
  • Add other pofilter error reports to their correct places in xliff.
  • Find and squash newline bug in unit.addnote() or unit.getnotes()
  • Bug 194
  • Review patches from other developers.

20-24 November 2006

  • Make pogrep work with PO or xliff interchangeably.
  • Make pofilter work with PO or xliff interchangeably.
    • Discuss details with Friedel.
  • Plural submition issue (Friedel fixed this).
  • Do the new pootle release as soon as it's ready.
    • Get Capel's file upload changes.

13-17 November 2006

  • Create my own ToDo wiki page to complement my dead-tree version. Hmmm… done.
  • Fix a bug that Friedel found, involving comments that doesn't display in all circumstances. SVN rev 4241.
  • Write some tests for the translation of plurals.
  • Write a test for our refactored updateunit() method in pootlefile.py r4268
  • Create a few bugzilla entries for some bugs we stumbled upon.
  • Make pogrep work with PO or xliff interchangably.
  • Make pofilter work with PO or xliff interchangably.
  • Plural submition issue (Friedel will help to fix).
  • Do the new pootle release as soon as it's ready.