<?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>Blog &#187; l10n</title>
	<atom:link href="http://blog.cliffano.com/tag/l10n/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.cliffano.com</link>
	<description>Geeking, Living, Travelling</description>
	<lastBuildDate>Thu, 26 Jan 2012 10:18:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>BuildMonitor v0.9.1 &#8211; Oui!</title>
		<link>http://blog.cliffano.com/2008/11/23/buildmonitor-v091-oui/</link>
		<comments>http://blog.cliffano.com/2008/11/23/buildmonitor-v091-oui/#comments</comments>
		<pubDate>Sun, 23 Nov 2008 12:27:36 +0000</pubDate>
		<dc:creator>Cliffano Subagio</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[buildmonitor]]></category>
		<category><![CDATA[hudson]]></category>
		<category><![CDATA[l10n]]></category>

		<guid isPermaLink="false">http://blog.cliffano.com/?p=292</guid>
		<description><![CDATA[BuildMonitor v0.9.1 was released yesterday. This is the first version with French l10n bundled, thanks to Eric Lefevre who submitted the translations. I added a new &#8216;Build&#8217; menu to trigger the build of a particular job. This menu item only comes up on a job feed. Another little improvement is a new option on the [...]]]></description>
			<content:encoded><![CDATA[<p><a href="https://addons.mozilla.org/en-US/firefox/addon/7522">BuildMonitor</a> v0.9.1 was released yesterday. This is the first version with French l10n bundled, thanks to <a href="http://ericlefevre.net">Eric Lefevre</a> who submitted the translations.</p>
<p>I added a new &#8216;Build&#8217; menu to trigger the build of a particular job. This menu item only comes up on a job feed.</p>
<p><img class="alignnone" src="http://lh6.ggpht.com/_fXOvW0MYmrY/SSk4-UcvkUI/AAAAAAAABiE/xcGDRhSPOSU/s400/091buildmonitor_build.jpg" alt="" width="250" height="165" /></p>
<p>Another little improvement is a new option on the preference window to hide the feed name on Firefox status bar. This is useful when you need to monitor many feeds.</p>
<p><img class="alignnone" src="http://lh6.ggpht.com/_fXOvW0MYmrY/SSk4-hzCyVI/AAAAAAAABiM/cZeyYY5fmfc/s400/091buildmonitor_hidenameorb.jpg" alt="" width="352" height="42" /></p>
<p><img class="alignnone" src="http://lh6.ggpht.com/_fXOvW0MYmrY/SSk4_M_s0RI/AAAAAAAABiU/cVPHjVaBi2E/s400/091buildmonitor_hidenameweather.jpg" alt="" width="352" height="42" /></p>
<p>&#8230; starting to look like a weather forecast.</p>

<p class="FacebookLikeButton"><fb:like href="http%3A%2F%2Fblog.cliffano.com%2F2008%2F11%2F23%2Fbuildmonitor-v091-oui%2F" layout="standard" show_faces="false" width="450" action="like" colorscheme="light"></fb:like></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.cliffano.com/2008/11/23/buildmonitor-v091-oui/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XStringBundle NS_ERROR_FAILURE</title>
		<link>http://blog.cliffano.com/2008/11/16/xstringbundle-ns_error_failure/</link>
		<comments>http://blog.cliffano.com/2008/11/16/xstringbundle-ns_error_failure/#comments</comments>
		<pubDate>Sun, 16 Nov 2008 10:36:34 +0000</pubDate>
		<dc:creator>Cliffano Subagio</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[buildmonitor]]></category>
		<category><![CDATA[byte-order mark]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[l10n]]></category>
		<category><![CDATA[stringbundle]]></category>
		<category><![CDATA[utf-8]]></category>

		<guid isPermaLink="false">http://blog.cliffano.com/?p=260</guid>
		<description><![CDATA[I got this error message on Firefox Error Console after adding fr-FR locale to BuildMonitor, which caused it to fail initialising the status bar feeds. Googling gave me some clues but still nothing obvious to solve the problem. At first I thought it has something to do with the non-ASCII characters, so I did a [...]]]></description>
			<content:encoded><![CDATA[<p>I got this error message on Firefox Error Console after adding fr-FR locale to BuildMonitor, which caused it to fail initialising the status bar feeds.</p>
<pre class="brush: plain; title: ; notranslate">
1=&quot;[Exception...&quot; 2=&quot;Component&quot; 3=&quot;returned&quot; 4=&quot;failure&quot; 5=&quot;code:&quot; 6=&quot;0x80004005&quot; 7=&quot;(NS_ERROR_FAILURE)&quot; 8=&quot;[nsIStringBundle.&quot; 9=&quot;&lt;div&quot; id=&quot;:sd&quot; 10=&quot;class=&quot;ArwC7c&quot; 11=&quot;ckChnd&quot;&gt;GetStringFromName&quot; language=&quot;Error:&quot;]&quot;  nsresult: &quot;0x80004005 (NS_ERROR_FAILURE)&quot;  location: &quot;JS frame :: XStringBundle :: getString :: line 17&quot;  data: no] Source File: XStringBundle Line: 17&lt;/div&gt;
</pre>
<p>Googling gave me some clues but still nothing obvious to solve the problem. At first I thought it has something to do with the non-ASCII characters, so I did a binary-replace on the property values, but still no luck. It&#8217;s only after I cat-ed the file then I noticed an empty space before the first property key. This empty space turned out to be a weird character that didn&#8217;t show up on Eclipse text editor, gedit, and vi.</p>
<p>I still don&#8217;t know what that character is. Here&#8217;s what Eclipse compare editor showed when I compared the cleaned up line with the original line, notice the non-ASCII character before monitor.init property key.</p>
<p><img class="alignnone" src="http://lh3.ggpht.com/_fXOvW0MYmrY/SRwmcm80fdI/AAAAAAAABgI/4kCOmUPvdKk/s400/unknownchar.jpg" alt="" width="400" height="101" /></p>
<p>And BuildMonitor speaks French after that character is removed. Parlez-vous anglais?</p>
<p><img class="alignnone" src="http://lh6.ggpht.com/_fXOvW0MYmrY/SRwmcYV0VuI/AAAAAAAABgA/V20aR6_D9hc/s400/fr-FR.jpg" alt="" width="286" height="168" /></p>
<p><strong>Update (20/11/2008):</strong> This problem kinda irked me, so I investigated it further.</p>
<p>The weird character is actually the ISO-8859-1 character for UTF-8 <a href="http://en.wikipedia.org/wiki/Byte-order_mark">byte-order mark</a>. It seems like XStringBundle expects ISO-8859-1 property file, hence interpreting the BOM as part of the monitor.init property key.</p>
<p>A handy tool to inspect the BOM is <a href="http://www.gsp.com/cgi-bin/man.cgi?section=1&amp;topic=od">octal dump</a>, where you should be able to see EF BB BF hex at the beginning of the file. And instead of manually cleaning up the property key, I should&#8217;ve used <a href="https://native2ascii.dev.java.net/">native2ascii</a>.</p>

<p class="FacebookLikeButton"><fb:like href="http%3A%2F%2Fblog.cliffano.com%2F2008%2F11%2F16%2Fxstringbundle-ns_error_failure%2F" layout="standard" show_faces="false" width="450" action="like" colorscheme="light"></fb:like></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.cliffano.com/2008/11/16/xstringbundle-ns_error_failure/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>BuildMonitor v0.9 &#8211; Usage Video</title>
		<link>http://blog.cliffano.com/2008/11/10/buildmonitor-v09-usage-video/</link>
		<comments>http://blog.cliffano.com/2008/11/10/buildmonitor-v09-usage-video/#comments</comments>
		<pubDate>Mon, 10 Nov 2008 13:36:18 +0000</pubDate>
		<dc:creator>Cliffano Subagio</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[buildmonitor]]></category>
		<category><![CDATA[hudson]]></category>
		<category><![CDATA[l10n]]></category>
		<category><![CDATA[recordmydesktop]]></category>

		<guid isPermaLink="false">http://blog.cliffano.com/?p=251</guid>
		<description><![CDATA[BuildMonitor v0.9 has been released, you can get it from the usual place. The most useful improvement from this release is the ability to add new feed via right click menu of a link. Other improvements include the ability to remove the feed via status bar right click menu or from preferences menu. It&#8217;s also [...]]]></description>
			<content:encoded><![CDATA[<p>BuildMonitor v0.9 has been released, you can get it from <a href="https://addons.mozilla.org/en-US/firefox/addon/7522">the usual place</a>.</p>
<p>The most useful improvement from this release is the ability to add new feed via right click menu of a link. Other improvements include the ability to remove the feed via status bar right click menu or from preferences menu. It&#8217;s also now possible to rearrange the order of the feeds via preferences menu.</p>
<p>I made a quick video (using <a href="http://recordmydesktop.sourceforge.net">recordMyDesktop</a>) showing how easy it is to monitor Hudson feeds using the Firefox Add-on.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="350" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.youtube.com/v/3T1yohkJdLs" /><embed type="application/x-shockwave-flash" width="425" height="350" src="http://www.youtube.com/v/3T1yohkJdLs"></embed></object></p>
<p>On l10n front, BuildMonitor has been translated to Japanese. Thank you, <a href="http://d.hatena.ne.jp/ssogabe/">Sogabe-san</a>.</p>
<p><img class="alignnone" src="http://lh3.ggpht.com/_fXOvW0MYmrY/SRg0mSjdujI/AAAAAAAABfg/5-BtPXfp5Ns/s400/buildmonitor09-jajp.jpg" alt="" width="292" height="153" /></p>
<p>I had to borrow a laptop with Windows to take this screenshot. I think Firefox 3.0.3 locale switching on Ubuntu is borked, the web pages do pick up the correct locale, but the add-ons ignore it.</p>

<p class="FacebookLikeButton"><fb:like href="http%3A%2F%2Fblog.cliffano.com%2F2008%2F11%2F10%2Fbuildmonitor-v09-usage-video%2F" layout="standard" show_faces="false" width="450" action="like" colorscheme="light"></fb:like></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.cliffano.com/2008/11/10/buildmonitor-v09-usage-video/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>BuildMonitor Development Notes</title>
		<link>http://blog.cliffano.com/2008/06/29/buildmonitor-development-notes/</link>
		<comments>http://blog.cliffano.com/2008/06/29/buildmonitor-development-notes/#comments</comments>
		<pubDate>Sat, 28 Jun 2008 14:23:50 +0000</pubDate>
		<dc:creator>Cliffano Subagio</dc:creator>
				<category><![CDATA[Projects]]></category>
		<category><![CDATA[buildmonitor]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[hudson]]></category>
		<category><![CDATA[l10n]]></category>

		<guid isPermaLink="false">http://blog.cliffano.com/?p=117</guid>
		<description><![CDATA[Usage Scenario When I first developed BuildMonitor, I thought that the typical users would be something like a team of 5-10 developers working on a project, and they would be located in the same building. After v0.1 was released and feedback started coming in, I learned that some users want to monitor 10-20 projects on [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Usage Scenario</strong></p>
<p>When I first developed <a href="http://hudson.gotdns.com/wiki/display/HUDSON/Firefox+Add-on+Build+Monitor">BuildMonitor</a>, I thought that the typical users would be something like a team of 5-10 developers working on a project, and they would be located in the same building.</p>
<p>After v0.1 was released and feedback started coming in, I learned that some users want to monitor 10-20 projects on the same Hudson instance, there are projects with developers scattered across different time zones, and there was someone who asked for non-English translations since Hudson itself has been translated to 7 languages.</p>
<p><strong>Feed Processing</strong></p>
<p>On v0.1 BuildMonitor attempted to parse a complete Atom feed using jFeed &amp; jQuery, which was ok on my tiny test feed, but failed misserably on real projects with lots of builds resulting in large feed. The full Atom feed parsing slowed Firefox for several seconds and froze the user interface, specially on low-spec machines.</p>
<p>This had since been fixed by parsing only the minimum required elements and by limiting the number of builds to parse. I also decided to use plain DOMParser instead of jFeed.</p>
<p><strong>Testing</strong></p>
<p>Javascript and XUL coding was the fun part of the add-on development, testing was the annoying part. I haven&#8217;t found any way to automate Firefox Add-on testing, and as everyone knows, manual UI testing sucks.</p>
<p><strong>Mozilla Add-ons Policy<br />
</strong></p>
<p>Mozilla has been doing a great job with ensuring the quality of the add-ons with their <a href="https://addons.mozilla.org/en-US/firefox/pages/policy">policy</a> which protects Firefox users from malicious add-ons. The policy requires user reviews for public access nomination, but at the same time the site requires user registrations / login to download a sandboxed add-on, something that most people like to avoid.</p>
<p>This introduces a chicken or egg situation. Add-on needs users to test and review the site, but the potential users and reviewers are chased away by the requirement to login. This is even worse for BuildMonitor because the intended audience is targeted to Hudson users, a much smaller portion of Firefox users.</p>
<p><strong>L10N</strong></p>
<p>New translation can easily be added to BuildMonitor by adding new locale files to /trunk/hudson/extras/firefox-extension/buildmonitor/src/chrome/locale/ .</p>
<p>As someone who is quite fluent in Indonesian, I attempted to translate BuildMonitor to Bahasa Indonesia (id-ID locale). And it turned out that translating IT terms to Indonesian wasn&#8217;t easy, even with the use of <a href="http://pusatbahasa.diknas.go.id/glosarium/">Glosarium</a>. I left Indonesia before the era of Internet, and by now there are tons of Indonesian technical terms that I&#8217;ve never heard of before.</p>
<p><strong>What&#8217;s Next</strong></p>
<p>Figure out a way to implement automated unit testing, at least for the javascript code, consider using JSMock and JsUnit. Try using Maven to build BuildMonitor, to make it consistent with the rest of Hudson.</p>

<p class="FacebookLikeButton"><fb:like href="http%3A%2F%2Fblog.cliffano.com%2F2008%2F06%2F29%2Fbuildmonitor-development-notes%2F" layout="standard" show_faces="false" width="450" action="like" colorscheme="light"></fb:like></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.cliffano.com/2008/06/29/buildmonitor-development-notes/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

