<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Chris Norton &#187; Tips</title>
	<atom:link href="http://www.chnorton.com.au/category/tips/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.chnorton.com.au</link>
	<description>A blog about software engineering, web development, education and my otaku interests.</description>
	<lastBuildDate>Tue, 07 Dec 2010 11:45:28 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.4</generator>
		<item>
		<title>Fixing Magento&#8217;s admin panel</title>
		<link>http://www.chnorton.com.au/2009/01/23/fixing-magentos-admin-panel/</link>
		<comments>http://www.chnorton.com.au/2009/01/23/fixing-magentos-admin-panel/#comments</comments>
		<pubDate>Fri, 23 Jan 2009 02:43:33 +0000</pubDate>
		<dc:creator>Chris Norton</dc:creator>
				<category><![CDATA[Tips]]></category>
		<category><![CDATA[magento]]></category>

		<guid isPermaLink="false">http://www.chnorton.com.au/?p=306</guid>
		<description><![CDATA[Problem with your Magento admin panel? Try this brute force solution.]]></description>
			<content:encoded><![CDATA[<p>Several times now I have had issues with the Magento admin panel not working as expected. In almost all of these cases the solution has been to simply upload all the core code files again, overwriting what&#8217;s there. This is about as brute force an approach as I can imagine &#8211; using a hammer instead of a surgeon&#8217;s knife if you will &#8211; but it seems to do the job in most instances. I recommend doing this as one of your first troubleshooting steps.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.chnorton.com.au/2009/01/23/fixing-magentos-admin-panel/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Westpac PayWay extension</title>
		<link>http://www.chnorton.com.au/2008/09/10/westpac-payway-extension/</link>
		<comments>http://www.chnorton.com.au/2008/09/10/westpac-payway-extension/#comments</comments>
		<pubDate>Wed, 10 Sep 2008 07:23:30 +0000</pubDate>
		<dc:creator>Chris Norton</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[magento]]></category>

		<guid isPermaLink="false">http://www.chnorton.com.au/?p=248</guid>
		<description><![CDATA[On Monday I released the Fontis Westpac PayWay payment gateway integration extension. Since the set up for this extension is bit more involved than some of the others I thought I&#8217;d post some more detailed instructions on how to get it up and running. Installation Install extension through Magento Connect. Create var/log/ directory and make [...]]]></description>
			<content:encoded><![CDATA[<p>On Monday I released the <a href="http://www.magentocommerce.com/extension/506" rel="external nofollow">Fontis Westpac PayWay</a> payment gateway integration extension. Since the set up for this extension is bit more involved than some of the others I thought I&#8217;d post some more detailed instructions on how to get it up and running.</p>
<p><span id="more-248"></span><br />
<h3>Installation</h3>
<ol>
<li>Install extension through Magento Connect.</li>
<li>Create var/log/ directory and make it world writable.</li>
<li>Log in to PayWay.</li>
<li>Go to Setup API -> Security. This page will provide you with the username and password to enter into the extension configuration.<br />
<a href="http://www.chnorton.com.au/wp-content/uploads/2008/09/payway-security-information.gif"><img src="http://www.chnorton.com.au/wp-content/uploads/2008/09/payway-security-information-300x177.gif" alt="" title="payway-security-information" width="300" height="177" class="alignnone size-medium wp-image-252" /></a></li>
<li>Add the IP address for your server to the access list. (You can get this by making a test transaction and recording the rejected address shown in the error message.)</li>
<li>Go to Setup API -> Certificate.<br />
<a href="http://www.chnorton.com.au/wp-content/uploads/2008/09/payway-certificate-details.gif"><img src="http://www.chnorton.com.au/wp-content/uploads/2008/09/payway-certificate-details-300x163.gif" alt="" title="payway-certificate-details" width="300" height="163" class="alignnone size-medium wp-image-253" /></a></li>
<li>Set &#8220;Choose your API Technology&#8221; to &#8220;PHP&#8221; and click &#8220;Go&#8221;.</li>
<li>Click &#8220;Download PHP Certificate&#8221; and save the file somewhere.</li>
<li>Upload this file to a location off the main Magento directory. By default the extension will look for the file var/certs/ccapi.pem but this is configurable.</li>
<li>Go to the Magento Admin Panel and to System -> Configuration -> Payment Methods.<br />
<a href="http://www.chnorton.com.au/wp-content/uploads/2008/09/magento-admin-payment-methods1.png"><img src="http://www.chnorton.com.au/wp-content/uploads/2008/09/magento-admin-payment-methods1-214x300.png" alt="" title="magento-admin-payment-methods1" width="214" height="300" class="alignnone size-medium wp-image-259" /></a></li>
<li>Enter merchant ID, username and password into extension settings.</li>
<li>Ensure the extension is enabled and that the certificate setting has the correct pathname for the file you uploaded previously.</li>
</ol>
<h3>Usage</h3>
<p>Usage is just like other credit card modules &#8211; the customer enters their credit card details during checkout. These details are then sent to the PayWay gateway and processed when the customer clicks &#8220;Place Order&#8221; at the end of checkout.</p>
<p>Hopefully this provides you with enough information to get it running on your site. If you have any problems or feedback, please leave a comment.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.chnorton.com.au/2008/09/10/westpac-payway-extension/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Running arbitrary database queries</title>
		<link>http://www.chnorton.com.au/2008/06/18/running-arbitrary-database-queries/</link>
		<comments>http://www.chnorton.com.au/2008/06/18/running-arbitrary-database-queries/#comments</comments>
		<pubDate>Wed, 18 Jun 2008 09:14:47 +0000</pubDate>
		<dc:creator>Chris Norton</dc:creator>
				<category><![CDATA[Tips]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[magento]]></category>

		<guid isPermaLink="false">http://www.chnorton.com.au/?p=243</guid>
		<description><![CDATA[As part of a larger modification I have been working on I decided to use straight database queries from inside Magento rather than try and find out (and spend time debugging) what the proper &#8220;Magento way&#8221; to achieve the same thing was. After a bit of investigation I came up with what I think will [...]]]></description>
			<content:encoded><![CDATA[<p>As part of a larger modification I have been working on I decided to use straight database queries from inside Magento rather than try and find out (and spend time debugging) what the proper &#8220;Magento way&#8221; to achieve the same thing was. After a bit of investigation I came up with what I think will be most generally useful and should work from almost anywhere in a Magento system.</p>
<p><span id="more-243"></span>What I came up with was to get one of the core MySQL and retrieve the database connector from it. This connector is an instance of a <a href="http://framework.zend.com/apidoc/core/Zend_Db/Adapter/Zend_Db_Adapter_Abstract.html" rel="external nofollow">Zend_Db_Adapter_Abstract</a> class.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$conn</span> <span style="color: #339933;">=</span> Mage<span style="color: #339933;">::</span><span style="color: #004000;">getModel</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Core/Mysql4_Config'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getReadConnection</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$conn</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">query</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;YOUR QUERY&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>You can also use:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$conn</span> <span style="color: #339933;">=</span> Mage<span style="color: #339933;">::</span><span style="color: #004000;">getModel</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Core/Mysql4_Config'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getReadConnection</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$resultArray</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$conn</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">fetchAll</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;YOUR QUERY&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Pretty simple really. I was worried that you&#8217;d only be able to read from the database since it specifies a &#8220;read connection&#8221; but there didn&#8217;t seem to be a corresponding <code>getWriteConnection</code> so I went with what I had. You can also recover database connection settings through the same connection with:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$config</span> <span style="color: #339933;">=</span> Mage<span style="color: #339933;">::</span><span style="color: #004000;">getModel</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Core/Mysql4_Config'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getReadConnection</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getConfig</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>The ability to run arbitrary database queries is only really useful for tables you&#8217;ve defined yourself, or to make minor tweaks. Anything more advanced and you&#8217;d be advised to spend the time to learn how to achieve it through Magento objects as the interrelations of tables in the database is a dark magic that is quite capable of blowing your mind if you dig too deep.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.chnorton.com.au/2008/06/18/running-arbitrary-database-queries/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Accordion Navigation</title>
		<link>http://www.chnorton.com.au/2008/06/14/accordion-navigation/</link>
		<comments>http://www.chnorton.com.au/2008/06/14/accordion-navigation/#comments</comments>
		<pubDate>Sat, 14 Jun 2008 05:39:50 +0000</pubDate>
		<dc:creator>Chris Norton</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[magento]]></category>
		<category><![CDATA[navigation]]></category>

		<guid isPermaLink="false">http://www.chnorton.com.au/?p=229</guid>
		<description><![CDATA[Yesterday at work I spent far too much time working on getting an accordion vertical navigation working in a new Magento design. In the interest of public education, here&#8217;s a walkthrough of how I went about getting this to work. Basically what was required was a simple form of an accordion menu where only the [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday at work I spent far too much time working on getting an accordion vertical navigation working in a new Magento design. In the interest of public education, here&#8217;s a walkthrough of how I went about getting this to work.</p>
<p><span id="more-229"></span>Basically what was required was a simple form of an accordion menu where only the top-level categories will be visible initially but clicking on one will open up a submenu showing its children. It will also set that category as the current one and display the content for it.</p>
<p>Getting the basics up and running was fairly easy but I kept running into problems when I attempted to smooth out the rough edges. I ran into the old problem of Magento being very poorly documented, so trying to find out what avenues I could pursue took far longer than it should have. I also ran into a definite bug where there exist several functions for retrieving the parent of a category but they don&#8217;t actually work. I believe this stems from the fact that the parent_id values for categories are not entered into the database in the first place. Odd, and it shows that Magento really does have plenty of jagged edges.</p>
<p>I started out with <a href="http://www.magentocommerce.com/boards/viewreply/17585/" rel="external nofollow">this post</a> on the Magento forums. That set up a vertical list of top-level categories but displays the rest of the menu in much the same manner as the horizontal one in the default Magento design &#8211; as a popup nested list. Not what I was looking for.</p>
<p>Because I only wanted the current category to show up I added in a condition to check whether or not a category was &#8220;active&#8221; before displaying its children. Doing this works but unfortunately I was using a call to <code>$this->getCurrentChildren()</code> to retrieve the children of the top-level active category. This works when you click on the top-level links &#8211; the children are displayed correctly on the loaded page &#8211; but <em>doesn&#8217;t</em> work  when you navigate to one of the child categories, since obviously they are then set to the current category and will have different children to the top-level category.</p>
<p>I then came up with the simple idea of calling <code>$_category->getParentCategory()</code> and getting the children of that. This is when I ran into the aforementioned bug with the parent categories (<a href="http://www.magentocommerce.com/bug-tracking/issue?issue=2173" rel="external nofollow">see bug #5182</a>) which meant it was impossible to use that way.</p>
<p>After thinking through (and trying out) a few crazy ideas like building my own tree of categories and querying it, or overriding the majority of the Magento catalog navigation classes, I eventually realised the answer was actually quite simple, at least for the two level system I required (I haven&#8217;t tried it for more levels). All I had to do was check if each top-level category was active and had children and, if so, display the children. This works since a parent category is still active if one of it&#8217;s children is active. (I assume this functionality was added to make it easier to set highlighting styles on these categories.)</p>
<p>Here&#8217;s my modified <i class="file">vert_nav.phtml</i> file:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">&lt;div class=&quot;vertical-nav-container box base-mini&quot;&gt;
	&lt;div class=&quot;vertical-nav&quot;&gt;
		&lt;div class=&quot;head&quot;&gt;
		&lt;h4&gt;&lt; ?php echo $this-&gt;__('Navigation') ?&gt;&lt;/h4&gt;
		&lt;/div&gt;
		&lt;ul id=&quot;nav_vert&quot;&gt;
		&lt; ?php foreach ($this-&gt;getStoreCategories() as $_category): ?&gt;
			&lt; ?php $open = $this-&gt;isCategoryActive($_category) &amp;&amp; $_category-&gt;hasChildren(); ?&gt;
			&lt;li&gt;&lt;a href=&quot;<span style="color: #000000; font-weight: bold;">&lt;?=</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getCategoryUrl</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_category</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><span style="color: #000000; font-weight: bold;">?&gt;</span>&quot;&lt; ?php if($open) { echo ' class=&quot;open&quot;'; } ?&gt;&gt;&lt; ?=$_category-&gt;getName();?&gt;&lt;/a&gt;
			&lt; ?php if ($open): ?&gt;
        		&lt;ul&gt;
				&lt; ?php foreach ($_category-&gt;getChildren() as $child): ?&gt;
					&lt; ?php $childCat = Mage::getModel('catalog/category')-&gt;load($child); ?&gt;
					&lt;li&gt;&lt;a href=&quot;<span style="color: #000000; font-weight: bold;">&lt;?=</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getCategoryUrl</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$childCat</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><span style="color: #000000; font-weight: bold;">?&gt;</span>&quot;&gt;&lt; ?=$childCat-&gt;getName();?&gt;&lt;/a&gt;&lt;/li&gt;
				&lt; ?php endforeach; ?&gt;
				&lt;/ul&gt;
			&lt; ?php endif; ?&gt;
			&lt;/li&gt;
		&lt; ?php endforeach ?&gt;
		&lt;/ul&gt;
	&lt;/div&gt;
&lt;/div&gt;</pre></div></div>

<p>Originally I also tried to use <code>$_category->getAllChildren()</code> as this sounded more like what I wanted but this returned nothing so I went with what I have above, which works. It would be nice if there was a method that directly returned the children as category objects, rather than having to load them as an extra step &#8211; if such a method exists I didn&#8217;t find it so let me know if it is in there!</p>
<p>Everything else is roughly the same as the other vertical navigation tutorial. You&#8217;ll need to tweak your <abbr title="cascading stylesheets">CSS</abbr> to achieve a nicer nesting effect. I used left margins to indent the child category links.</p>
<p>Here are some images from the final product:<br />

<a href='http://www.chnorton.com.au/2008/06/14/accordion-navigation/topmenu/' title='topmenu'><img width="150" height="150" src="http://www.chnorton.com.au/wp-content/uploads/2008/09/topmenu-150x150.gif" class="attachment-thumbnail" alt="topmenu" title="topmenu" /></a>
<a href='http://www.chnorton.com.au/2008/06/14/accordion-navigation/submenu-dvd/' title='submenu-dvd'><img width="150" height="150" src="http://www.chnorton.com.au/wp-content/uploads/2008/09/submenu-dvd-150x150.gif" class="attachment-thumbnail" alt="submenu-dvd" title="submenu-dvd" /></a>
</p>
]]></content:encoded>
			<wfw:commentRss>http://www.chnorton.com.au/2008/06/14/accordion-navigation/feed/</wfw:commentRss>
		<slash:comments>35</slash:comments>
		</item>
		<item>
		<title>Image uploading bug in Magento on Firefox</title>
		<link>http://www.chnorton.com.au/2008/06/03/image-uploading-bug-in-magento-firefox/</link>
		<comments>http://www.chnorton.com.au/2008/06/03/image-uploading-bug-in-magento-firefox/#comments</comments>
		<pubDate>Tue, 03 Jun 2008 03:06:13 +0000</pubDate>
		<dc:creator>Chris Norton</dc:creator>
				<category><![CDATA[Tips]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[magento]]></category>

		<guid isPermaLink="false">http://www.chnorton.com.au/?p=228</guid>
		<description><![CDATA[Attempting to upload images to Magento in Firefox results in problems - upgrading Flash was the solution I found.]]></description>
			<content:encoded><![CDATA[<p>Today I discovered a problem with the way Magento allows you to upload images to attach to products: whenever I attempted to do so my entire browser would crash. (I&#8217;m using Firefox 2 on Linux.) Booting into Windows and using IE7 didn&#8217;t suffer from this problem so it was clearly an issue with Firefox. Looking into it a bit further, Magento uses Flash/Flex to allow file uploads so this is likely the root cause of the issue.</p>
<p>Upgrading to the latest version of Flash &#8211; 9.0.124.0 at the time I wrote this &#8211; solves the problem and allows image uploads. So if you&#8217;re having issues with getting this feature to work in Firefox I&#8217;d suggest upgrading Flash as the first thing to try.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.chnorton.com.au/2008/06/03/image-uploading-bug-in-magento-firefox/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Bazaar Love</title>
		<link>http://www.chnorton.com.au/2008/04/29/bazaar-love/</link>
		<comments>http://www.chnorton.com.au/2008/04/29/bazaar-love/#comments</comments>
		<pubDate>Tue, 29 Apr 2008 04:58:52 +0000</pubDate>
		<dc:creator>Chris Norton</dc:creator>
				<category><![CDATA[Reviews]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[bazaar]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[subversion]]></category>

		<guid isPermaLink="false">http://www.chnorton.com.au/?p=226</guid>
		<description><![CDATA[Bazaar doesn't store metadata under every directory which makes my life so much easier!]]></description>
			<content:encoded><![CDATA[<p>The last few months I have been keen to move my existing version control activities over to <a href="http://bazaar-vcs.org/" rel="external">Bazaar</a>, away from <a href="http://subversion.tigris.org/" rel="external">Subversion</a>. Today that desire was rather firmly set in stone when I discovered that Bazaar doesn&#8217;t create a <i class="file">.bzr</i> directory under every subdirectory in the tree like Subversion does with its <i class="file">.svn</i> directories. This makes things so much easier to work with when you have to, say, upgrade your version of WordPress and you need to use FTP to transfer the files. Clearly you don&#8217;t want to transfer your <abbr title="Version Control Software">VCS</abbr> data as well so previously I had resorted to creating a sync script that disregarded the unwanted directories. So, thank you Bazaar for making my life that little bit easier!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.chnorton.com.au/2008/04/29/bazaar-love/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Magento 1.0 en_AU Translation</title>
		<link>http://www.chnorton.com.au/2008/04/03/magento-10-en_au-translation/</link>
		<comments>http://www.chnorton.com.au/2008/04/03/magento-10-en_au-translation/#comments</comments>
		<pubDate>Wed, 02 Apr 2008 23:29:01 +0000</pubDate>
		<dc:creator>Chris Norton</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[australia]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[magento]]></category>

		<guid isPermaLink="false">http://www.chnorton.com.au/?p=222</guid>
		<description><![CDATA[I am having some issues with the Magento translation tool &#8211; mostly that it doesn&#8217;t allow for version 1.0 translations &#8211; so I am posting this unofficial translation here. It&#8217;s fairly complete spelling-wise and is only lacking a look over for grammatical changes and places where entirely different words are used, rather than just a [...]]]></description>
			<content:encoded><![CDATA[<p>I am having some issues with the Magento translation tool &#8211; mostly that it doesn&#8217;t allow for version 1.0 translations &#8211; so I am posting this unofficial translation here. It&#8217;s fairly complete spelling-wise and is only lacking a look over for grammatical changes and places where entirely different words are used, rather than just a spelling change. An example that springs to mind is &#8220;State/Province&#8221; possibly being changed to &#8220;State/Territory&#8221;.</p>
<p><span id="more-222"></span>Download: <a href='http://www.chnorton.com.au/wp-content/uploads/2008/04/en_au_10.zip'>en_AU_10</a></p>
<p>It should install like any other translation. Hopefully I can get this uploaded to the official list soon enough.</p>
<p>One interesting thing that came up while doing the translation was how powerful the shell (bash) was for assisting me in finding places to correct words. I ended up using the following code to find misspellings in all the <abbr title="Comma Separated Value">CSV</abbr> files:</p>
<p><code>cat *.csv | cut -d ',' -f 2 | aspell -l en_AU list | sort | uniq</code></p>
<p>Basically it will output all the text in the files into a single stream which gets piped into cut to extract the second column (the text that needs to be translated) which is then sent to <a href="http://aspell.net/" rel="external">aspell</a> for spell checking. The output from aspell is then sorted and duplicate words removed. You therefore end up with a nice list of the words that are wrong &#8211; or at least that aspell thinks are wrong &#8211; which you can put into grep to find exact lines locations:</p>
<p><code>grep -in word *.csv</code></p>
<p>This will find all the occurrences of &#8220;word&#8221; in all of the CSV files and print output which tells you the file where it was found and the line numbers. For example:</p>
<p><code>Mage_FileName.csv:25:"This is a line where word appears."</code></p>
<p>Since some of the lines can get quite long, which are then wrapped, and can make it harder to read, I like to cut off the output of the line itself:</p>
<p><code>grep -in word *.csv | cut -d ':' -f 1,2</code></p>
<p>The only problem with using aspell is that it doesn&#8217;t actually have a dictionary for Australian English! Thus I had to use grep (in a similar method to above) to hunt down words that needed changing. The ones I found are: catalog, color, honor, initialise, authorise (etc), initialization (etc), canceled, and check (=> cheque). The good thing about using aspell is that it does pick up words that are simply misspelt &#8211; so the Australian translation is currently more correct than the US English version! Running the same commands over the en_US version will pick up a few spelling mistakes that can be corrected.</p>
<p>I hope this could help someone in doing their own translation &#8211; I&#8217;m often amazed at how much effort is discarded by a few simple shell commands.</p>
<p>Finally, please let me know if you find any problems with the translation I have created. I&#8217;m interested in feedback on any grammatical issues and whether we should have things like Province => Territory.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.chnorton.com.au/2008/04/03/magento-10-en_au-translation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Magento Australia Locale HOWTO</title>
		<link>http://www.chnorton.com.au/2008/03/06/magento-australia-locale-howto/</link>
		<comments>http://www.chnorton.com.au/2008/03/06/magento-australia-locale-howto/#comments</comments>
		<pubDate>Thu, 06 Mar 2008 00:27:57 +0000</pubDate>
		<dc:creator>Chris Norton</dc:creator>
				<category><![CDATA[Tips]]></category>
		<category><![CDATA[australia]]></category>
		<category><![CDATA[magento]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://www.chnorton.com.au/2008/03/06/magento-australia-locale-howto/</guid>
		<description><![CDATA[Update: Please note that en_AU is now included by default in Magento so all this is unnecessary. Simple tip here on how to enable the &#8220;English (Australia)&#8221; locale in Magento: simply go to app/etc/config.xml and, under config->global->locale->allow->codes add in the text &#60;en_AU/&#62;. Your config file should have something similar to the following: &#60;config&#62; &#60;global&#62; &#60;locale&#62; [...]]]></description>
			<content:encoded><![CDATA[<p><b>Update:</b> Please note that en_AU is now included by default in Magento so all this is unnecessary.</p>
<p>Simple tip here on how to enable the &#8220;English (Australia)&#8221; locale in Magento: simply go to <i class="filename">app/etc/config.xml</i> and, under <i>config->global->locale->allow->codes</i> add in the text <code>&lt;en_AU/&gt;</code>. Your config file should have something similar to the following:</p>
<p><code></p>
<pre>
&lt;config&gt;
    &lt;global&gt;
        &lt;locale&gt;
            &lt;allow&gt;
                &lt;codes&gt;
                    &lt;en_AU/&gt;
</pre>
<p></code></p>
<p>You can even do this before installation to allow the selection of the Australian locale during the install process.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.chnorton.com.au/2008/03/06/magento-australia-locale-howto/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>CoreAVC for Linux</title>
		<link>http://www.chnorton.com.au/2007/12/20/coreavc-for-linux/</link>
		<comments>http://www.chnorton.com.au/2007/12/20/coreavc-for-linux/#comments</comments>
		<pubDate>Thu, 20 Dec 2007 13:23:13 +0000</pubDate>
		<dc:creator>Chris Norton</dc:creator>
				<category><![CDATA[Tips]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://www.chnorton.com.au/2007/12/20/coreavc-for-linux/</guid>
		<description><![CDATA[If anyone has attempted to watch H.264 video on an older PC you know what a frustrating experience it can be due to the ridiculous amount of CPU the decoding eats up. CoreAVC is a Windows codec that dramatically reduces that load. Being a Windows codec we Linux users are left in the cold (we&#8217;re [...]]]></description>
			<content:encoded><![CDATA[<p>If anyone has attempted to watch <a href="http://en.wikipedia.org/wiki/H.264/MPEG-4_AVC" rel="external nofollow">H.264</a> video on an older PC you know what a frustrating experience it can be due to the ridiculous amount of CPU the decoding eats up. <a href="http://www.coreavc.com/" rel="external nofollow">CoreAVC</a> is a Windows codec that dramatically reduces that load. Being a Windows codec we Linux users are left in the cold (we&#8217;re getting used to it) &#8211; but I just discovered a project that rectifies that situation! The aptly named <a href="http://code.google.com/p/coreavc-for-linux/" rel="external">CoreAVC for Linux</a> is a set of patches for mplayer, etc to allow them to load the CoreAVC codec through DirectShow emulation. Or something.</p>
<p>I haven&#8217;t tried it out myself as I watch all my videos on my desktop, which is more than capable of handling <abbr title="High Definition">HD</abbr> H.264 videos, even with inefficient decoding. Someone give it a go and let me know if it works!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.chnorton.com.au/2007/12/20/coreavc-for-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Backup Solutions for Linux</title>
		<link>http://www.chnorton.com.au/2007/11/09/backup-solutions-for-linux/</link>
		<comments>http://www.chnorton.com.au/2007/11/09/backup-solutions-for-linux/#comments</comments>
		<pubDate>Thu, 08 Nov 2007 15:23:18 +0000</pubDate>
		<dc:creator>Chris Norton</dc:creator>
				<category><![CDATA[Tips]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://www.chnorton.com.au/2007/11/09/backup-solutions-for-linux/</guid>
		<description><![CDATA[Now that Leopard has been released a few people are commenting on the usability of Time Machine as a backup system for &#8220;ordinary people&#8221;. As is usually the case, what Apple have done here is slap a GUI on functionality that Linux and UNIX systems have had for years. Naturally though, because Time Machine looks [...]]]></description>
			<content:encoded><![CDATA[<p>Now that <a href="http://www.apple.com/macosx/" rel="external nofollow">Leopard</a> has been released a few people are commenting on the usability of <a href="http://www.apple.com/macosx/features/timemachine.html" rel="external nofollow">Time Machine</a> as a backup system for &#8220;ordinary people&#8221;. As is usually the case, what Apple have done here is slap a GUI on functionality that Linux and UNIX systems have had for years. Naturally though, because Time Machine looks so pretty and is grabbing more headlines that the humble <a href="http://samba.anu.edu.au/rsync/">rsync</a>, there are some efforts to bring a similar system to Linux.</p>
<p><span id="more-175"></span>Two that I&#8217;ve found are <a href="https://wiki.ubuntu.com/TimeVault">TimeVault</a> and the newer <a href="http://code.google.com/p/flyback/">FlyBack</a>, which makes no excuse about being a lame Time Machine clone &#8230; without the actual <em>clone</em> part since it&#8217;s not nearly as nice looking.</p>
<p>Of course, if you don&#8217;t go in for all this pretentious GUI crap, you can also use tools which do the same thing but are designed to run as simple daemons. Some popular ones are <a href="http://dirvish.org/">Dirvish</a> and <a href="http://rsnapshot.org/">rsnapshot</a>. If you want to get really fancy and space efficient you can even go for something like <a href="http://www.nongnu.org/rdiff-backup/">rdiff-backup</a>, which only stores the change deltas of older versions of files.</p>
<p>Personally I store all my important work in a Subversion repository since I normally do development work with it anyway. It&#8217;s not very space efficient but a lot more powerful.</p>
<p>What backup system do you use? If you&#8217;re a Linux user, did I miss any good ones?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.chnorton.com.au/2007/11/09/backup-solutions-for-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

