Sophie

Sophie

distrib > Mageia > 4 > x86_64 > by-pkgid > f9d20baf2d42bbb9f9c5746dba0abad5 > files > 179

python-translate-doc-1.10.0-3.mga4.noarch.rpm


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    
    <title>Important Changes &mdash; Translate Toolkit 1.9.0 documentation</title>
    
    <link rel="stylesheet" href="_static/basic.css" type="text/css" />
    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
    <link rel="stylesheet" href="_static/bootstrap.css" type="text/css" />
    <link rel="stylesheet" href="_static/bootstrap-sphinx.css" type="text/css" />
    
    <script type="text/javascript">
      var DOCUMENTATION_OPTIONS = {
        URL_ROOT:    '',
        VERSION:     '1.9.0',
        COLLAPSE_INDEX: false,
        FILE_SUFFIX: '.html',
        HAS_SOURCE:  true
      };
    </script>
    <script type="text/javascript" src="_static/jquery.js"></script>
    <script type="text/javascript" src="_static/underscore.js"></script>
    <script type="text/javascript" src="_static/doctools.js"></script>
    <script type="text/javascript" src="_static/bootstrap.js"></script>
    <script type="text/javascript" src="_static/bootstrap-sphinx.js"></script>
    <link rel="top" title="Translate Toolkit 1.9.0 documentation" href="index.html" />
    <link rel="next" title="History of the Translate Toolkit" href="history.html" />
    <link rel="prev" title="tools" href="api/tools.html" /> 
  </head>
  <body>
  <div id="navbar" class="navbar navbar-fixed-top">
    <div class="navbar-inner">
      <div class="container-fluid">
        <a class="brand" href="index.html">Translate Toolkit</a>
        <span class="navbar-text pull-left"><b>1.9.0</b></span>
          <ul class="nav">
            <li class="divider-vertical"></li>
            
              <li class="dropdown">
  <a href="#" class="dropdown-toggle" data-toggle="dropdown">Site <b class="caret"></b></a>
  <ul class="dropdown-menu globaltoc"><ul class="simple">
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="features.html">Features</a></li>
<li class="toctree-l1"><a class="reference internal" href="installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="commands/index.html">Converters</a></li>
<li class="toctree-l1"><a class="reference internal" href="commands/index.html#tools">Tools</a></li>
<li class="toctree-l1"><a class="reference internal" href="commands/index.html#scripts">Scripts</a></li>
<li class="toctree-l1"><a class="reference internal" href="guides/index.html">Use Cases</a></li>
<li class="toctree-l1"><a class="reference internal" href="formats/index.html">Supported formats</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="styleguide.html">Translate Styleguide</a></li>
<li class="toctree-l1"><a class="reference internal" href="styleguide.html#documentation">Documentation</a></li>
<li class="toctree-l1"><a class="reference internal" href="development/building.html">Building</a></li>
<li class="toctree-l1"><a class="reference internal" href="development/contributing.html">Contributing</a></li>
<li class="toctree-l1"><a class="reference internal" href="development/developers.html">Translate Toolkit Developers Guide</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="api/index.html">API</a></li>
</ul>
<ul class="current">
<li class="toctree-l1 current"><a class="current reference internal" href="">Important Changes</a></li>
<li class="toctree-l1"><a class="reference internal" href="history.html">History of the Translate Toolkit</a></li>
<li class="toctree-l1"><a class="reference internal" href="license.html">License</a></li>
</ul>
</ul>
</li>
              
<li class="dropdown">
  <a href="#" class="dropdown-toggle" data-toggle="dropdown">Page <b class="caret"></b></a>
  <ul class="dropdown-menu localtoc"><ul>
<li><a class="reference internal" href="#">Important Changes</a><ul>
<li><a class="reference internal" href="#changelog-1-10">1.10</a><ul>
<li><a class="reference internal" href="#mozilla-dtd-files-change">Mozilla DTD files change</a></li>
</ul>
</li>
<li><a class="reference internal" href="#changelog-1-6-0">1.6.0</a><ul>
<li><a class="reference internal" href="#po-files-now-always-have-headers">PO files now always have headers</a></li>
</ul>
</li>
<li><a class="reference internal" href="#changelog-1-4-1">1.4.1</a><ul>
<li><a class="reference internal" href="#csv-column-header-names">CSV column header names</a></li>
</ul>
</li>
<li><a class="reference internal" href="#changelog-1-4-0">1.4.0</a><ul>
<li><a class="reference internal" href="#java-and-mozilla-properties">Java and Mozilla .properties</a></li>
<li><a class="reference internal" href="#hashing-in-podebug">Hashing in podebug</a></li>
</ul>
</li>
<li><a class="reference internal" href="#changelog-1-3-0">1.3.0</a></li>
<li><a class="reference internal" href="#changelog-1-2">1.2</a><ul>
<li><a class="reference internal" href="#new-formats">New formats</a></li>
<li><a class="reference internal" href="#stats-database-change">Stats database change</a></li>
<li><a class="reference internal" href="#valid-accelerators">Valid accelerators</a></li>
</ul>
</li>
<li><a class="reference internal" href="#branches">branches</a><ul>
<li><a class="reference internal" href="#toolkit-c-po">toolkit-C-po</a></li>
</ul>
</li>
<li><a class="reference internal" href="#changelog-1-1-1">1.1.1</a><ul>
<li><a class="reference internal" href="#premature-termination-of-dtd-entities">Premature termination of DTD entities</a></li>
</ul>
</li>
<li><a class="reference internal" href="#changelog-1-1">1.1</a><ul>
<li><a class="reference internal" href="#oo2po-help-helpcontent2-escaping-fixed">oo2po Help (helpcontent2) escaping fixed</a></li>
<li><a class="reference internal" href="#prop2po-uses-developer-comments">prop2po uses developer comments</a></li>
<li><a class="reference internal" href="#moz2po-no-longer-uses-kde-comments">moz2po no longer uses KDE comments</a></li>
<li><a class="reference internal" href="#read-and-write-mo-files">Read and Write MO files</a></li>
<li><a class="reference internal" href="#read-qt-qm-files">Read Qt .qm files</a></li>
</ul>
</li>
<li><a class="reference internal" href="#changelog-1-0-1">1.0.1</a><ul>
<li><a class="reference internal" href="#pot2po-will-create-new-empty-po-files-if-needed">pot2po will create new empty PO files if needed</a></li>
</ul>
</li>
<li><a class="reference internal" href="#changelog-1-0">1.0</a><ul>
<li><a class="reference internal" href="#improved-xliff-support">Improved XLIFF support</a></li>
<li><a class="reference internal" href="#pretty-xml-output">Pretty XML output</a></li>
<li><a class="reference internal" href="#fuzzy-matching-in-pot2po-is-optional">Fuzzy matching in pot2po is optional</a></li>
<li><a class="reference internal" href="#old-match-levenshtein-py-can-cause-name-clash">Old match/Levenshtein.py* can cause name clash</a></li>
<li><a class="reference internal" href="#po-file-layout-now-follows-gettext-more-closely">PO file layout now follows Gettext more closely</a></li>
<li><a class="reference internal" href="#language-awareness">Language awareness</a></li>
<li><a class="reference internal" href="#new-pofilter-tests-newlines-and-tabs">New pofilter tests: newlines and tabs</a></li>
<li><a class="reference internal" href="#merging-can-change-fuzzy-status">Merging can change fuzzy status</a></li>
<li><a class="reference internal" href="#pofilter-will-make-mozilla-accelerators-a-serious-failure">pofilter will make Mozilla accelerators a serious failure</a></li>
<li><a class="reference internal" href="#po2prop-can-output-mozilla-or-java-style-properties">po2prop can output Mozilla or Java style properties</a></li>
<li><a class="reference internal" href="#support-for-compressed-files">Support for compressed files</a></li>
</ul>
</li>
<li><a class="reference internal" href="#changelog-0-11">0.11</a><ul>
<li><a class="reference internal" href="#po2oo-defaults-to-not-check-for-errors">po2oo defaults to not check for errors</a></li>
<li><a class="reference internal" href="#pofilter-xmltags-produces-less-false-positives">pofilter xmltags produces less false positives</a></li>
</ul>
</li>
<li><a class="reference internal" href="#changelog-0-10">0.10</a><ul>
<li><a class="reference internal" href="#po-to-xliff-conversion">PO to XLIFF conversion</a></li>
<li><a class="reference internal" href="#pot2po-can-replace-msgmerge">pot2po can replace msgmerge</a></li>
<li><a class="reference internal" href="#properties-pretty-formatting">.properties pretty formatting</a></li>
</ul>
</li>
<li><a class="reference internal" href="#changelog-0-9">0.9</a><ul>
<li><a class="reference internal" href="#escaping-dtd-files-are-no-longer-escaped">Escaping &#8211; DTD files are no longer escaped</a></li>
<li><a class="reference internal" href="#migration-to-base-class">Migration to base class</a></li>
<li><a class="reference internal" href="#duplicate-merging-in-po-files-merge-now-the-default">Duplicate Merging in PO files &#8211; merge now the default</a></li>
<li><a class="reference internal" href="#properties-files-no-longer-use-escaped-unicode">.properties files no longer use escaped Unicode</a></li>
</ul>
</li>
<li><a class="reference internal" href="#changelog-0-8">0.8</a></li>
</ul>
</li>
</ul>
</ul>
</li>
            
            
              
  <li><a href="api/tools.html"
         title="previous chapter">&laquo; tools</a></li>
  <li><a href="history.html"
         title="next chapter">History of the Translate Toolkit &raquo;</a></li>
            
            
              
            
          </ul>
          
            
<form class="navbar-search pull-right" action="search.html" method="get">
  <input type="text" name="q" placeholder="Search" />
  <input type="hidden" name="check_keywords" value="yes" />
  <input type="hidden" name="area" value="default" />
</form>
          
          </ul>
        </div>
      </div>
    </div>
  </div>

<div class="container content">
   
  <div class="section" id="important-changes">
<span id="changelog"></span><span id="id1"></span><h1>Important Changes<a class="headerlink" href="#important-changes" title="Permalink to this headline">¶</a></h1>
<p>The Translate Toolkit might have changed how it functions in certain cases.
This page lists what has changed, how it might affect you and how to work
around the change either to bring your files in line or to use the old
behaviour if required.</p>
<div class="section" id="changelog-1-10">
<span id="id2"></span><h2>1.10<a class="headerlink" href="#changelog-1-10" title="Permalink to this headline">¶</a></h2>
<ul class="simple">
<li>The matching criterion when merging units can now be specified with the
<tt class="docutils literal"><span class="pre">X-Merge-On</span></tt> header. Available values for this header are <cite>location</cite> and
<cite>id</cite>. By default merges will be done by matching IDs. This supersedes the
effects of the <tt class="docutils literal"><span class="pre">X-Accelerator</span></tt> header when merging and establishes an
explicit way to set the desired matching criterion.</li>
</ul>
<div class="section" id="mozilla-dtd-files-change">
<span id="changelog-mozilla-dtd-files-change"></span><h3>Mozilla DTD files change<a class="headerlink" href="#mozilla-dtd-files-change" title="Permalink to this headline">¶</a></h3>
<p>We now preserve spaces in DTD files i.e.:</p>
<div class="highlight-python"><pre>&lt;!ENTITY          some.label          "definition"&gt;</pre>
</div>
<p>Will preserve the spaces around the entity name <tt class="docutils literal"><span class="pre">some.lable</span></tt></p>
<p>You probably want to run po2moz once to isolate the space changes from real
translations.</p>
</div>
</div>
<div class="section" id="changelog-1-6-0">
<span id="id3"></span><h2>1.6.0<a class="headerlink" href="#changelog-1-6-0" title="Permalink to this headline">¶</a></h2>
<div class="section" id="po-files-now-always-have-headers">
<span id="changelog-po-files-now-always-have-headers"></span><h3>PO files now always have headers<a class="headerlink" href="#po-files-now-always-have-headers" title="Permalink to this headline">¶</a></h3>
<p>Generated PO files now always contain headers. This will mainly affect the
output of pofilter and pogrep. This should allow better interoperability with
gettext tools, and allowed for some improvement in the code.  You should still
be able to use headerless files in msgmerge, although it is recommended that PO
files are consistently handled with headers wherever possible.</p>
</div>
</div>
<div class="section" id="changelog-1-4-1">
<span id="id4"></span><h2>1.4.1<a class="headerlink" href="#changelog-1-4-1" title="Permalink to this headline">¶</a></h2>
<div class="section" id="csv-column-header-names">
<span id="changelog-csv-column-header-names"></span><h3>CSV column header names<a class="headerlink" href="#csv-column-header-names" title="Permalink to this headline">¶</a></h3>
<p>The names given to CSV column headers have been changed. Early releases of
<a class="reference internal" href="commands/csv2po.html"><em>csv2po</em></a> would name the columns &#8220;comment,original,translation&#8221;.
This was done mostly to make it easy for non-technical translators.  However,
comments in the command line help used terms like source and target.  This
release changes the column header names to &#8220;location,source,target&#8221;, this
aligns with terms used throughout the toolkit.</p>
<p>If you have CSV file generated by older versions of the toolkit then a header
entry of &#8220;comment,original,translation&#8221; will be turned into a unit instead of
being ignored.  You can either change your CSV file to use the headers
&#8220;location,source,target&#8221; or delete the header row completely.  Once this is
done the files will work as expected.</p>
</div>
</div>
<div class="section" id="changelog-1-4-0">
<span id="id5"></span><h2>1.4.0<a class="headerlink" href="#changelog-1-4-0" title="Permalink to this headline">¶</a></h2>
<div class="section" id="java-and-mozilla-properties">
<span id="changelog-java-and-mozilla-properties"></span><h3>Java and Mozilla .properties<a class="headerlink" href="#java-and-mozilla-properties" title="Permalink to this headline">¶</a></h3>
<p>Unusual keys, separators and spacing should all be handled correctly now. Some
Mozilla .properties files might now have changed. Regenerate your Mozilla l10n
files from fresh POT files without any changes to your PO files to ensure that
you can see and review these changes.</p>
</div>
<div class="section" id="hashing-in-podebug">
<span id="changelog-hashing-in-podebug"></span><h3>Hashing in podebug<a class="headerlink" href="#hashing-in-podebug" title="Permalink to this headline">¶</a></h3>
<p>The <tt class="docutils literal"><span class="pre">--hash</span></tt> option in <a class="reference internal" href="commands/podebug.html"><em>podebug</em></a> has been replaced by a
format specifier %h to be able to better control the positioning of the hash
value.</p>
</div>
</div>
<div class="section" id="changelog-1-3-0">
<span id="id6"></span><h2>1.3.0<a class="headerlink" href="#changelog-1-3-0" title="Permalink to this headline">¶</a></h2>
<p>Several duplicate styles were removed as has been warned about long before.
Please check the recommendations posted at the time that msgctxt was added on
how to migrate.</p>
</div>
<div class="section" id="changelog-1-2">
<span id="id7"></span><h2>1.2<a class="headerlink" href="#changelog-1-2" title="Permalink to this headline">¶</a></h2>
<div class="section" id="new-formats">
<span id="changelog-new-formats"></span><h3>New formats<a class="headerlink" href="#new-formats" title="Permalink to this headline">¶</a></h3>
<p>The toolkit now supports:</p>
<ul class="simple">
<li><a class="reference internal" href="formats/qt_phrase_book.html"><em>Qt Phrase Book (.qph)</em></a></li>
<li><a class="reference internal" href="formats/ts.html"><em>Qt .ts</em></a> v1.1</li>
</ul>
<p>This allows reading, counting and working on these formats.  The
<a class="reference internal" href="commands/ts2po.html"><em>ts2po</em></a> converter has not been changed so you will not be able
to benefit from the new .ts support. However, you can use the format for
translation memory, etc as its is now fully base class compliant.</p>
</div>
<div class="section" id="stats-database-change">
<span id="changelog-stats-database-change"></span><h3>Stats database change<a class="headerlink" href="#stats-database-change" title="Permalink to this headline">¶</a></h3>
<p>There were some changes in the database used by pocount for storing statistics.
The location of the database might also have changed, depending on what the
last version is that you used. Remove the file stats.db from any of
~/.translate_toolkit, ~/.wordforge (or the corresponding directories on your
Windows installation.</p>
</div>
<div class="section" id="valid-accelerators">
<span id="changelog-valid-accelerators"></span><h3>Valid accelerators<a class="headerlink" href="#valid-accelerators" title="Permalink to this headline">¶</a></h3>
<p>The <a class="reference internal" href="commands/pofilter.html"><em>pofilter</em></a> accelerator test is now able to make use of a
list of valid accelerators.  This allows translators to control the behaviour
of the test for their language and add or remove characters that can be used as
accelerators.  Please define <tt class="xref doc docutils literal"><span class="pre">l10n/valid</span> <span class="pre">accelerators</span></tt> for your language
and these will then be included in future releases of the toolkit.  By default
the old process if followed so if you take no action then this check will
continue to work as expected.</p>
</div>
</div>
<div class="section" id="branches">
<span id="changelog-branches"></span><h2>branches<a class="headerlink" href="#branches" title="Permalink to this headline">¶</a></h2>
<p>These are branches that contain quite invasive changes that will most likely be
merged into the main development and be released sometime in the future.</p>
<div class="section" id="toolkit-c-po">
<span id="changelog-toolkit-c-po"></span><h3>toolkit-C-po<a class="headerlink" href="#toolkit-c-po" title="Permalink to this headline">¶</a></h3>
<p>Converting the current Python based PO parser to the Gettext C based parser for
PO.  This offers quite a dramatic speed improvement and conformance to the
output found in Gettext itself.  For most users there will be a number of
changes in layout of the files as they will now conform fully to Gettext
layout.  The &#8216;keep&#8217; option in <tt class="docutils literal"><span class="pre">--duplicatestyle</span></tt> will no longer be
supported as this is not valid Gettext output.</p>
</div>
</div>
<div class="section" id="changelog-1-1-1">
<span id="id8"></span><h2>1.1.1<a class="headerlink" href="#changelog-1-1-1" title="Permalink to this headline">¶</a></h2>
<div class="section" id="premature-termination-of-dtd-entities">
<span id="changelog-premature-termination-of-dtd-entities"></span><h3>Premature termination of DTD entities<a class="headerlink" href="#premature-termination-of-dtd-entities" title="Permalink to this headline">¶</a></h3>
<p>Although this does not occur frequently a case emerged where some DTD entities
where not fully extracted from the DTD source.  This was fixed in <a class="reference external" href="http://bugs.locamotion.org/show_bug.cgi?id=331">bug 331</a>.</p>
<p>We expect this change to create a few new fuzzy entries.  There is no action
required from the user as the next update of your PO files will bring the
correct text into your translations, if you are using a translation memory your
translation might be recovered from obsolete translations.</p>
</div>
</div>
<div class="section" id="changelog-1-1">
<span id="id9"></span><h2>1.1<a class="headerlink" href="#changelog-1-1" title="Permalink to this headline">¶</a></h2>
<div class="section" id="oo2po-help-helpcontent2-escaping-fixed">
<span id="changelog-oo2po-help-helpcontent2-escaping-fixed"></span><h3>oo2po Help (helpcontent2) escaping fixed<a class="headerlink" href="#oo2po-help-helpcontent2-escaping-fixed" title="Permalink to this headline">¶</a></h3>
<p>OpenOffice.org Help (helpcontent2) has notoriously contained some unreadable
esacping, e.g. <tt class="docutils literal"><span class="pre">\\\\&lt;tag</span> <span class="pre">attr=\\&quot;value\\&quot;\\\\&gt;</span></tt>.  The escaping has been fixed
and oo2po now understands helpcontent2 escaping while leaving the current GUI
escape handling unaltered.</p>
<p>If you have not translated helpcontent2 then you are unaffected by this change.
If you have translated this content then you will need to follow these
instructions when upgrading.</p>
<p>If you follow normal procedures of creating POT files and upgrading your PO
files using pot2po then your strings will not match and you will obtain files
with many fuzzies.  To avoid this do the following:</p>
<ol class="arabic simple">
<li>Make sure your PO files contain no fuzzy entries</li>
<li>Use po2oo from the previous release to create and SDF file</li>
<li>Upgrade to the latest Translate Toolkit with new po2oo</li>
<li>Use <tt class="docutils literal"><span class="pre">po2oo</span> <span class="pre">-l</span> <span class="pre">xx-YY</span> <span class="pre">your.sdf</span> <span class="pre">po</span></tt> to create a new set of PO files with
correct escaping</li>
</ol>
<p>You can choose to do this with only your helpcontent2 PO files if needed, this
will allow you to leave your GUI work in its current state.  Simply do the
above procedure and discard all PO files except helpcontent2, then move these
new helpcontent2 files into your current work.</p>
</div>
<div class="section" id="prop2po-uses-developer-comments">
<span id="changelog-prop2po-uses-developer-comments"></span><h3>prop2po uses developer comments<a class="headerlink" href="#prop2po-uses-developer-comments" title="Permalink to this headline">¶</a></h3>
<p>prop2po used to place comments found in the source .properties file in
traditional translator comments, they should of course go into developer
comments.    The reason for this change is twofold, it allows these comments to
be correctly managed and it is part of the process of cleaning up these formats
so that they are closer to the base class and can thus work with XLIFF.</p>
<p>For the user there will be fairly large changes as one comment format moves to
the next.  It is best to <a class="reference internal" href="guides/cleanup_translator_comments.html"><em>cleanup translator comments</em></a> and get your translations into a fit
state, i.e. no fuzzies, and then proceed with any migrations.</p>
</div>
<div class="section" id="moz2po-no-longer-uses-kde-comments">
<span id="changelog-moz2po-no-longer-uses-kde-comments"></span><h3>moz2po no longer uses KDE comments<a class="headerlink" href="#moz2po-no-longer-uses-kde-comments" title="Permalink to this headline">¶</a></h3>
<p>moz2po has traditionally used KDE style comments for storing comments aimed at
translators.  Many translators confuse these and try to translate them.  Thus
these have been moved into automatic or developer comments.  The result for
many people migrating Mozilla PO files will be that many strings will become
fuzzy, you can avoid much of this by using pot2po which should intelligently be
able to match without considering the KDE comments.</p>
<p>The best strategy is to get your translations into a relatively good shape
before migration.  You can then migrate them first to a new set of POT files
generated from the same source files that the translation is based on.
Eliminate all fuzzies as these should only relate to the changes in layout.
Then proceed to migrate to a new set of POT files.  If you cannot work against
the original source files then the best would be to also first eliminate fuzzy
matches before proceeding to translation.  Your fuzzies will include changes in
layout and changes in content so proceed carefully.</p>
<p>At the end of this you should have PO files that conform to the Gettext
standard without KDE comments.</p>
</div>
<div class="section" id="read-and-write-mo-files">
<span id="changelog-read-and-write-mo-files"></span><h3>Read and Write MO files<a class="headerlink" href="#read-and-write-mo-files" title="Permalink to this headline">¶</a></h3>
<p>You can read and write Gettext MO files (compiled PO files).  Thus pocount can
now count files on your filesystem and you can also compile MO files using
pocompile.  MO files can be compiled from either PO or XLIFF sources.</p>
<p>MO will now also produce correct output for msgctxt and plural forms found in
PO files.</p>
</div>
<div class="section" id="read-qt-qm-files">
<span id="changelog-read-qt-qm-files"></span><h3>Read Qt .qm files<a class="headerlink" href="#read-qt-qm-files" title="Permalink to this headline">¶</a></h3>
<p>We can now read Qt .qm files, thus pocount can count the contents of compiled
files.  We cannot however write .qm files at this time.</p>
</div>
</div>
<div class="section" id="changelog-1-0-1">
<span id="id10"></span><h2>1.0.1<a class="headerlink" href="#changelog-1-0-1" title="Permalink to this headline">¶</a></h2>
<div class="section" id="pot2po-will-create-new-empty-po-files-if-needed">
<span id="changelog-pot2po-will-create-new-empty-po-files-if-needed"></span><h3>pot2po will create new empty PO files if needed<a class="headerlink" href="#pot2po-will-create-new-empty-po-files-if-needed" title="Permalink to this headline">¶</a></h3>
<p>From version 1.0.1, pot2po will create empty PO files corresponding to new POT
files that might have been introduced. If some new POT files are present in the
input to pot2po, you will see a new PO file appear in your output directory
that was not in your old PO files.  You will not lose any data but in the worst
case you will see new files on projects that you thought were fully translated.</p>
</div>
</div>
<div class="section" id="changelog-1-0">
<span id="id11"></span><h2>1.0<a class="headerlink" href="#changelog-1-0" title="Permalink to this headline">¶</a></h2>
<div class="section" id="improved-xliff-support">
<span id="changelog-improved-xliff-support"></span><h3>Improved XLIFF support<a class="headerlink" href="#improved-xliff-support" title="Permalink to this headline">¶</a></h3>
<p>Many toolkit tools that only worked with PO files before, can now also work
with XLIFF files. pogrep, pocount, pomerge, and pofilter all work with XLIFF,
for example.</p>
</div>
<div class="section" id="pretty-xml-output">
<span id="changelog-pretty-xml-output"></span><h3>Pretty XML output<a class="headerlink" href="#pretty-xml-output" title="Permalink to this headline">¶</a></h3>
<p>All XML formats should now be more human readable, and the converters to Qt .ts
files should work correctly again.</p>
</div>
<div class="section" id="fuzzy-matching-in-pot2po-is-optional">
<span id="changelog-fuzzy-matching-in-pot2po-is-optional"></span><h3>Fuzzy matching in pot2po is optional<a class="headerlink" href="#fuzzy-matching-in-pot2po-is-optional" title="Permalink to this headline">¶</a></h3>
<p>Fuzzy matching can now be entirely disabled in <a class="reference internal" href="commands/pot2po.html"><em>pot2po</em></a> with the
<tt class="docutils literal"><span class="pre">--nofuzzymatching</span></tt> parameter. This should make it much faster, although
pot2po is <strong>substantially</strong> faster than earlier versions, especially if
<a class="reference internal" href="commands/levenshtein_distance.html"><em>python-Levenshtein</em></a> is installed.</p>
</div>
<div class="section" id="old-match-levenshtein-py-can-cause-name-clash">
<span id="changelog-old-match-levenshtein-py-can-cause-name-clash"></span><h3>Old match/Levenshtein.py* can cause name clash<a class="headerlink" href="#old-match-levenshtein-py-can-cause-name-clash" title="Permalink to this headline">¶</a></h3>
<p>The file previously called match/Levenshtein.py was renamed to lshtein.py in
order to use the python-Levenshtein package mentioned above. If you follow the
basic installation instructions, the old file will not be overwritten, and can
cause problems. Ensure that you remove all files starting with Levenshtein.py
in the installation path of the translate toolkit, usually something like
/usr/lib/python2.4/site-packages/translate/search/. It could be up to three
files.</p>
</div>
<div class="section" id="po-file-layout-now-follows-gettext-more-closely">
<span id="changelog-po-file-layout-now-follows-gettext-more-closely"></span><h3>PO file layout now follows Gettext more closely<a class="headerlink" href="#po-file-layout-now-follows-gettext-more-closely" title="Permalink to this headline">¶</a></h3>
<p>The toolkits output PO format should now resemble Gettext PO files more
closely.  Long lines are wrapped correctly, messages with long initial lines
will start with a &#8216;msgid &#8220;&#8221;&#8217; entry.  The reason for this change is to ensure
that differences in files relate to content change not format change, no matter
what tool you use.</p>
<p>To understand the problem more clearly.  If a user creates POT files with e.g.
<a class="reference internal" href="commands/oo2po.html"><em>oo2po</em></a>.  She then edits them in a PO editor or manipulate them
with the Gettext tools.  The layout of the file after manipulation was often
different from the original produced by the Toolkit.  Thus making it hard to
tell what where content changes as opposed to layout changes.</p>
<p>The changes will affect you as follows:</p>
<ol class="arabic simple">
<li>They will only impact you when using the Toolkit tools.</li>
<li>You manipulate your files with a tool that follows Gettext PO layout<ul>
<li>your experience should now improve as the new PO files will align with
your existing files</li>
<li>updates should now only include real content changes not layout changes</li>
</ul>
</li>
<li>You manipulate your files using Toolkit related tools or manual editing<ul>
<li>your files will go through a re-layout the first time you use any of the
tools</li>
<li>subsequent usage should continue as normal</li>
<li>any manipulation using Gettext tools will leave your files correctly layed
out.</li>
</ul>
</li>
</ol>
<p>Our suggestion is that if you are about to suffer a major reflow that your
initial merge contain only reflow and update changes.  Do content changes in
subsequent steps.  Once you have gone through the reflow you should see no
layout changes and only content changes.</p>
</div>
<div class="section" id="language-awareness">
<span id="changelog-language-awareness"></span><h3>Language awareness<a class="headerlink" href="#language-awareness" title="Permalink to this headline">¶</a></h3>
<p>The toolkit is gradually becoming more aware of the differences between
languages. Currently this mostly affects pofilter checks (and therefore also
Pootle) where tests involving punctuation and capitalisation will be more aware
of the differences between English and some other languages. Provisional
customisation for the following languages are in place and we will welcome more
work on the language module: Amharic, Arabic, Greek, Persian, French, Armenian,
Japanese,  Khmer, Vietnamese, all types of Chinese.</p>
</div>
<div class="section" id="new-pofilter-tests-newlines-and-tabs">
<span id="changelog-new-pofilter-tests-newlines-and-tabs"></span><h3>New pofilter tests: newlines and tabs<a class="headerlink" href="#new-pofilter-tests-newlines-and-tabs" title="Permalink to this headline">¶</a></h3>
<p>The escapes test has been refined with two new tests, <tt class="docutils literal"><span class="pre">newlines</span></tt> and
<tt class="docutils literal"><span class="pre">tabs</span></tt>.  This makes identifying the errors easier and makes it easier to
control the results of the tests.  You shouldn&#8217;t have to change your testing
behaviour in any way.</p>
</div>
<div class="section" id="merging-can-change-fuzzy-status">
<span id="changelog-merging-can-change-fuzzy-status"></span><h3>Merging can change fuzzy status<a class="headerlink" href="#merging-can-change-fuzzy-status" title="Permalink to this headline">¶</a></h3>
<p>pomerge now handles fuzzy states:</p>
<div class="highlight-python"><pre>pomerge -t old -i merge -o new</pre>
</div>
<p>Messages that are fuzzy in <em>merge</em> will now also be fuzzy in <em>new</em>.  Similarly
if a fuzzy state is present in <em>old</em> but removed in <em>merge</em> then the message in
<em>new</em> will not be fuzzy.</p>
<p>Previously no fuzzy states were changed during a merge.</p>
</div>
<div class="section" id="pofilter-will-make-mozilla-accelerators-a-serious-failure">
<span id="changelog-pofilter-will-make-mozilla-accelerators-a-serious-failure"></span><h3>pofilter will make Mozilla accelerators a serious failure<a class="headerlink" href="#pofilter-will-make-mozilla-accelerators-a-serious-failure" title="Permalink to this headline">¶</a></h3>
<p>If you use <a class="reference internal" href="commands/pofilter.html"><em>pofilter</em></a> with the <tt class="docutils literal"><span class="pre">--mozilla</span></tt> option then
accelerator failures will produce a serious filter error, i.e. the message will
be marked as <tt class="docutils literal"><span class="pre">fuzzy</span></tt>.  This has been done because accelerator problems in
your translations have the potential to break Mozilla applications.</p>
</div>
<div class="section" id="po2prop-can-output-mozilla-or-java-style-properties">
<span id="changelog-po2prop-can-output-mozilla-or-java-style-properties"></span><h3>po2prop can output Mozilla or Java style properties<a class="headerlink" href="#po2prop-can-output-mozilla-or-java-style-properties" title="Permalink to this headline">¶</a></h3>
<p>We have added the <tt class="docutils literal"><span class="pre">--personality</span></tt> option to allow a user to select output
in either <tt class="docutils literal"><span class="pre">java</span></tt>, or <tt class="docutils literal"><span class="pre">mozilla</span></tt> style (Java property files use escaped
Unicode, while Mozilla uses actual Unicode characters).  This functionality was
always available but was not exposed to the user and we always defaulted to the
Mozilla style.</p>
<p>When using <a class="reference internal" href="commands/moz2po.html"><em>po2moz</em></a> the behaviour is not changed for
the user as the programs will ensure that the properties convertor uses Mozilla
style.</p>
<p>However, when using <a class="reference internal" href="commands/prop2po.html"><em>po2prop</em></a> the default style is now
<tt class="docutils literal"><span class="pre">java</span></tt>, thus if you are converting a single <tt class="docutils literal"><span class="pre">.properties</span></tt> file as part of a
Mozilla conversion you will need to add <tt class="docutils literal"><span class="pre">--personality=mozilla</span></tt> to your
conversion.  Thus:</p>
<div class="highlight-python"><pre>po2prop -t moz.properties moz.properties.po my-moz.properties</pre>
</div>
<p>Would become:</p>
<div class="highlight-python"><pre>po2prop --personality=mozilla -t moz.properties moz.properties.po my-moz.properties</pre>
</div>
<div class="admonition note">
<p class="first admonition-title">Note</p>
<p class="last">Output in java style escaped Unicode will still be usable by Mozilla
but will be harder to read.</p>
</div>
</div>
<div class="section" id="support-for-compressed-files">
<span id="changelog-support-for-compressed-files"></span><h3>Support for compressed files<a class="headerlink" href="#support-for-compressed-files" title="Permalink to this headline">¶</a></h3>
<p>There is some initial support for reading from and writing to compressed files.
Single files compressed with gzip or bzip2 compression is supported, but not
tarballs.  Most tools don&#8217;t support it, but pocount and the <tt class="docutils literal"><span class="pre">--tm</span></tt>
parameter to pot2po will work with it, for example. Naturally it is slower than
working with uncompressed files. Hopefully more tools can support it in future.</p>
</div>
</div>
<div class="section" id="changelog-0-11">
<span id="id12"></span><h2>0.11<a class="headerlink" href="#changelog-0-11" title="Permalink to this headline">¶</a></h2>
<div class="section" id="po2oo-defaults-to-not-check-for-errors">
<span id="changelog-po2oo-defaults-to-not-check-for-errors"></span><h3>po2oo defaults to not check for errors<a class="headerlink" href="#po2oo-defaults-to-not-check-for-errors" title="Permalink to this headline">¶</a></h3>
<p>In po2oo we made the default <tt class="docutils literal"><span class="pre">--filteraction=none</span></tt> i.e. do nothing and
don&#8217;t warn.  Until we have a way of clearly marking false positives we&#8217;ll have
to disable this functionality as there is no way to quiet the output or mark
non errors.  Also renamed exclude to exclude-all so that it is clearer what it
does i.e. it excludes &#8216;all&#8217; vs excludes &#8216;serious&#8217;.</p>
</div>
<div class="section" id="pofilter-xmltags-produces-less-false-positives">
<span id="changelog-pofilter-xmltags-produces-less-false-positives"></span><h3>pofilter xmltags produces less false positives<a class="headerlink" href="#pofilter-xmltags-produces-less-false-positives" title="Permalink to this headline">¶</a></h3>
<p>In the xmltags check we handle the case where we had some false positives. E.g.
&#8220;&lt;Error&gt;&#8221; which looks like XML/HTML but should actually be translated. These
are handled by</p>
<ol class="arabic simple">
<li>identifying them as being the same length as the source text,</li>
<li>not containing any &#8216;=&#8217; sign.  Thus the following would not be detected by
this hack. &#8220;An &lt;Error&gt; occurred&#8221; -&gt; &#8220;&lt;Error name=&#8221;bob&#8221;&gt;&#8221;, but these ones need
human eyes anyway.</li>
</ol>
</div>
</div>
<div class="section" id="changelog-0-10">
<span id="id13"></span><h2>0.10<a class="headerlink" href="#changelog-0-10" title="Permalink to this headline">¶</a></h2>
<div class="section" id="po-to-xliff-conversion">
<span id="changelog-po-to-xliff-conversion"></span><h3>PO to XLIFF conversion<a class="headerlink" href="#po-to-xliff-conversion" title="Permalink to this headline">¶</a></h3>
<p>Conversion from PO to XLIFF is greatly improved in 0.10 and this was done
according to the specification at
<a class="reference external" href="http://xliff-tools.freedesktop.org/wiki/Projects/XliffPoGuide">http://xliff-tools.freedesktop.org/wiki/Projects/XliffPoGuide</a> &#8211; please let us
know if there are features lacking.</p>
</div>
<div class="section" id="pot2po-can-replace-msgmerge">
<span id="changelog-pot2po-can-replace-msgmerge"></span><h3>pot2po can replace msgmerge<a class="headerlink" href="#pot2po-can-replace-msgmerge" title="Permalink to this headline">¶</a></h3>
<p><a class="reference internal" href="commands/pot2po.html"><em>pot2po</em></a> has undergone major changes which means that it now
respects your header entries, can resurrect obsolete messages, does fuzzy
matching using <a class="reference internal" href="commands/levenshtein_distance.html"><em>Levenshtein distance</em></a>
algorithm, will correctly match messages with KDE style comments and can use an
external Translation Memory.  You can now use pot2po instead of Gettext&#8217;s
msgmerge and it can also replace <a class="reference internal" href="commands/pomigrate2.html"><em>pomigrate2</em></a>.  You may still
want to use pomigrate2 if there where file movements between versions as pot2po
can still not do intelligent matching of PO and POT files, pomigrate2 has also
been adapted so that it can use pot2po as it background merging tool.</p>
<div class="highlight-python"><pre>pomigrate2 --use-compendium --pot2po &lt;old&gt; &lt;pot&gt; &lt;new&gt;</pre>
</div>
<p>This will migrate file with a compendium built from PO files in <em>&lt;old&gt;</em> and
will use pot2po as its conversion engine.</p>
</div>
<div class="section" id="properties-pretty-formatting">
<span id="changelog-properties-pretty-formatting"></span><h3>.properties pretty formatting<a class="headerlink" href="#properties-pretty-formatting" title="Permalink to this headline">¶</a></h3>
<p>When using templates for generating translated .properties files we will now
preserve the formatting around the equal sign.</p>
<div class="highlight-properties"><div class="highlight"><pre><span class="c"># Previously if the template had</span>
<span class="na">property</span>     <span class="o">=</span>      <span class="s">value</span>
</pre></div>
</div>
<div class="highlight-properties"><div class="highlight"><pre><span class="c"># We output</span>
<span class="na">property</span><span class="o">=</span><span class="s">translation</span>
</pre></div>
</div>
<div class="highlight-properties"><div class="highlight"><pre><span class="c"># We will now output</span>
<span class="na">property</span>     <span class="o">=</span>      <span class="s">translation</span>
</pre></div>
</div>
<p>This change ensures that there is less noise when checking differences against
the template file.  However, there will be quite a bit of noise when you make
your first .properties commits with the new pretty layout.  Our suggestion is
that you make a single commit of .properties files without changes of
translations to gt the formatting correct.</p>
</div>
</div>
<div class="section" id="changelog-0-9">
<span id="id14"></span><h2>0.9<a class="headerlink" href="#changelog-0-9" title="Permalink to this headline">¶</a></h2>
<div class="section" id="escaping-dtd-files-are-no-longer-escaped">
<span id="changelog-escaping-dtd-files-are-no-longer-escaped"></span><h3>Escaping &#8211; DTD files are no longer escaped<a class="headerlink" href="#escaping-dtd-files-are-no-longer-escaped" title="Permalink to this headline">¶</a></h3>
<p>Previously each converter handled escaping, which made it a nightmare every
time we identified an escaping related error or added a new format.  Escaping
has now been moved into the format classes as much as possible, the result
being that formats exchange Python strings and manage their own escaping.</p>
<p>I doing this migration we revisited some of the format migration.  We found
that we were escaping elements in our output DTD files.  DTD&#8217;s should have no
escaping i.e. <tt class="docutils literal"><span class="pre">\n</span></tt> is a literal <tt class="docutils literal"><span class="pre">\</span></tt> followed by an <tt class="docutils literal"><span class="pre">n</span></tt> not a newline.</p>
<p>A result of this change is that older PO files will have different escaping to
what po2moz will now expect. Probably resulting in bad output .dtd files.</p>
<p>We did not make this backward compatible as the fix is relatively simple and is
one you would have done for any migration of your PO files.</p>
<ol class="arabic">
<li><p class="first">Create a new set of POT files</p>
<div class="highlight-python"><pre>moz2po -P mozilla pot</pre>
</div>
</li>
<li><p class="first">Migrate your old PO files</p>
<div class="highlight-python"><pre>pomigrate2 old new pot</pre>
</div>
</li>
<li><p class="first">Fix all the fuzzy translations by editing your PO files</p>
</li>
<li><p class="first">Use pofilter to check for escaping problems and fix them</p>
<div class="highlight-python"><pre>pofilter -t escapes new new-check</pre>
</div>
</li>
<li><p class="first">Edit file in new-check in your PO editor</p>
<div class="highlight-python"><pre>pomerge -t new -i new-check -o new-check</pre>
</div>
</li>
</ol>
</div>
<div class="section" id="migration-to-base-class">
<span id="changelog-migration-to-base-class"></span><h3>Migration to base class<a class="headerlink" href="#migration-to-base-class" title="Permalink to this headline">¶</a></h3>
<p>All filters are/have been migrate to a base class.  This move is so that it is
easier to add new format, interchange formats and to create converters.  Thus
xx2po and xx2xlf become easier to create.  Also adding a new format should be
as simple as working towards the API exposed in the base class. An unexpected
side effect will be the Pootle should be able to work directly with any base
class file (although that will not be the normal Pootle operation)</p>
<p>We have checks in place to ensure the the current operation remains correct.
However, nothing is perfect and unfortunately the only way to really expose all
bugs is to release this software.</p>
<p>If you discover a bug please report it on Bugzilla or on the Pootle mailing
list.  If you have the skills please check on HEAD to see if it is not already
fixed and if you regard it as critical discuss on the mailing list backporting
the fix (note some fixes will not be backported because they may be too
invasive for the stable branch).  If you are a developer please write a test to
expose the bug and a fix if possible.</p>
</div>
<div class="section" id="duplicate-merging-in-po-files-merge-now-the-default">
<span id="changelog-duplicate-merging-in-po-files-merge-now-the-default"></span><h3>Duplicate Merging in PO files &#8211; merge now the default<a class="headerlink" href="#duplicate-merging-in-po-files-merge-now-the-default" title="Permalink to this headline">¶</a></h3>
<p>We added the <tt class="docutils literal"><span class="pre">--duplicatestyle</span></tt> option to allow duplicate messages to be
merged, commented or simply appear in the PO unmerged.  Initially we used the
msgid_comments options as the default.  This adds a KDE style comment to all
affected messages which created a good balance allowing users to see duplicates
in the PO file but still create a valid PO file.</p>
<p>&#8216;msgid_comments&#8217; was the default for 0.8 (FIXME check), however it seemed to
create more confusion then it solved.  Thus we have reverted to using &#8216;merge&#8217;
as the default (this then completely mimics Gettext behaviour).</p>
<p>As Gettext will soon introduce the msgctxt attribute we may revert to using
that to manage disambiguation messages instead of KDE comments.  This we feel
will put us back at a good balance of usefulness and usability.  We will only
release this when msgctxt version of the Gettext tools are released.</p>
</div>
<div class="section" id="properties-files-no-longer-use-escaped-unicode">
<span id="changelog-properties-files-no-longer-use-escaped-unicode"></span><h3>.properties files no longer use escaped Unicode<a class="headerlink" href="#properties-files-no-longer-use-escaped-unicode" title="Permalink to this headline">¶</a></h3>
<p>The main use of the .properties converter class is to translate Mozilla files,
although .properties files are actually a Java standard.  The old Mozilla way,
and still the Java way, of working with .properties files is to escape any
Unicode characters using the <tt class="docutils literal"><span class="pre">\uNNNN</span></tt> convention.  Mozilla now allows you to
use Unicode in UTF-8 encoding for these files.  Thus in 0.9 of the Toolkit we
now output UTF-8 encoded properties files. <a class="reference external" href="http://bugs.locamotion.org/show_bug.cgi?id=114">Bug 114</a> tracks the
status of this and we hope to add a feature to prop2po to restore the correct
Java convention as an option.</p>
</div>
</div>
<div class="section" id="changelog-0-8">
<span id="id15"></span><h2>0.8<a class="headerlink" href="#changelog-0-8" title="Permalink to this headline">¶</a></h2>
</div>
</div>


</div>
<hr>

<footer class="footer">
  <div class="container">
    <p class="pull-right"><a href="#">Back to top ↑</a></p>
    <ul class="unstyled muted">
      <li><small>
        &copy; 2012, Translate.org.za.<br/>
      </small></li>
      <li><small>
      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3.
      </small></li>
    </ul>
  </div>
</footer>
  </body>
</html>