<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:admin="http://webns.net/mvcb/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:html="http://www.w3.org/1999/html" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>Ross Burton</title><link>http://www.burtonini.com/blog</link><description>A potted account of Ross' life</description><language>en</language><ttl>60</ttl><dc:creator>Ross Burton</dc:creator><admin:generatorAgent rdf:resource="http://pyblosxom.sourceforge.net/"/><admin:errorReportsTo rdf:resource="mailto:ross+web@burtonini.com"/><item><title>Tasks In GNOME SVN</title><guid isPermaLink="false">computers/tasks-2008-10-17-20-15</guid><link>http://www.burtonini.com/blog/computers/tasks-2008-10-17-20-15</link><description>Thanks to the heroic work of Olav and Thomas, Tasks (along with Contacts and Dates) is now in GNOME SVN. ...</description><content:encoded><![CDATA[<p>
  Thanks to the heroic work of Olav and Thomas, Tasks (along with Contacts and
  Dates) is now in GNOME SVN.  Translators, feel free to do your thing.  Oh, and
  would it be possible to get Tasks added to Damned Lies?
</p>
]]></content:encoded><category domain="http://www.burtonini.com">/computers</category><dc:date>2008-10-17T19:15:00Z</dc:date></item><item><title>What A Difference A Day Makes</title><guid isPermaLink="false">life/difference-2008-10-06-11-22</guid><link>http://www.burtonini.com/blog/life/difference-2008-10-06-11-22</link><description>Saturday: Sunday:</description><content:encoded><![CDATA[<p>
  Saturday:
</p>
<p>
  <a class="noline" href="http://www.flickr.com/photos/rossburton/2918387214/" title="Week 38 + 3 by Ross Burton, on Flickr">
    <img class="thumbnail" src="http://farm4.static.flickr.com/3229/2918387214_4ae87f386f.jpg" width="333" height="500" alt="Week 38 + 3" />
  </a>
</p>

<p>
  Sunday:
</p>
<p>
  <a class="noline" href="http://www.flickr.com/photos/rossburton/2918392898/" title="Alexander Dylan Burton by Ross Burton, on Flickr">
    <img class="thumbnail" src="http://farm4.static.flickr.com/3157/2918392898_fd75aa484c.jpg" width="500" height="333" alt="Alexander Dylan Burton" />
  </a>
</p>
]]></content:encoded><category domain="http://www.burtonini.com">/life</category><dc:date>2008-10-06T10:22:00Z</dc:date></item><item><title>Translation Nightmare</title><guid isPermaLink="false">computers/tasks-2008-10-01-21-17</guid><link>http://www.burtonini.com/blog/computers/tasks-2008-10-01-21-17</link><description>I just got a new bug titled Very weird translation template, need comments in .pot file to clarify , and ...</description><content:encoded><![CDATA[<p>
  I just got a new bug titled <cite>Very weird translation template, need
  comments in .pot file to clarify</cite>, and giggled to myself.  I was
  wondering how long it would be for this bug to be filed.  The problem is that
  whilst most of the translatable strings in Tasks are pretty boring: "Tasks",
  "today", "Priority" and so on, all of a sudden the template goes a bit mental:
</p>
<pre>"^(?&lt;task&gt;.+) (?:by|due|on)? (?&lt;month&gt;\\w+) (?&lt;day&gt;\\d{1,2})(?:st|nd|rd|th)?$"</pre>
<p>
  Apparently the average translator doesn't think that learning PCRE-style
  regular expressions, and reading the source that uses this string to understand
  how it is to be used, is appropriate. [note: this is sarcasm]
</p>
<p>
  Maybe I should have added some translator comments to clarify exactly what I
  meant by this.  These monster strings (all in <tt>koto-date-parser.c</tt>)
  are <tt>GRegex</tt> regular expressions which are used to parse the user's
  input to try and extract meaningful date information.  To translate these
  strings you'll need to have a basic understanding of regular expressions: if
  you don't then skip them and hopefully someone who does will finish the
  translation.  If you know regular expressions then translating these strings
  is easy, honest.
</p>
<p>
  The golden rule is to never translate the words which look like
  this: <tt>(?&lt;foo&gt;</tt>.  These are markers which identify portions of
  the input (such as task or month) and need to remain in English, although they
  can be moved around if required.  The rest of the strings are translatable.
  I'll give an example using the French translation by St&eacute;phane
  Raimbault.  First, the string in English and a worked example:
</p>
<pre>"^(?&lt;task&gt;.+) (?:by|due|on)? (?&lt;day&gt;\\d{1,2})(?:st|nd|rd|th)? (?&lt;month&gt;\\w+)$"</pre>
<p>
  First, we have a sequence of any characters identified
  as <tt>task</tt>, which magically expands to be as many as possible.  This is
  optionally followed by one of the words "by", "due" or "on".  This is followed
  by one or two digits identified as <tt>day</tt> followed by "st", "nd", "rd"
  or "th".  Finally a sequence of characters which is identified
  as <tt>month</tt>.  If the user had entered "pay
  bills on 2nd june" then <tt>task</tt> would be "pay bills", <tt>day</tt> would
  be "2", and <tt>month</tt> would be "june".  Tasks can then turn "june" into a
  month number through other translations, and it now knows what date the user
  entered.   In French, this translates as follows:
</p>
<pre>"^(?&lt;task&gt;.+) (?:pour|prévu|pour le)? (?&lt;day&gt;\\d{1,2})(?:er|e)? (?&lt;month&gt;\\w+)$"</pre>
<p>
  See, I said it was easy!  All I need now is a legion of translators who
  understand regular expressions enough to correctly translate the new Tasks... [this, again, is sarcasm]
  Luckily, plans are afoot to move the Tasks source to the GNOME Subversion
  server, so the full fury of the GNOME translation team can attack this.
</p>

<p>
  <small>NP: <cite>Trailer Park</cite>, Beth Orton</small>
</p>
]]></content:encoded><category domain="http://www.burtonini.com">/computers</category><dc:date>2008-10-01T20:17:00Z</dc:date></item></channel></rss>