<?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>mat janson blanchet &#187; Localization</title>
	<atom:link href="http://jansensan.net/category/localization/feed" rel="self" type="application/rss+xml" />
	<link>http://jansensan.net</link>
	<description></description>
	<lastBuildDate>Mon, 06 Feb 2012 00:50:12 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>How to improve localization</title>
		<link>http://jansensan.net/how-to-improve-localization</link>
		<comments>http://jansensan.net/how-to-improve-localization#comments</comments>
		<pubDate>Wed, 02 Nov 2011 18:19:24 +0000</pubDate>
		<dc:creator>mat janson blanchet</dc:creator>
				<category><![CDATA[Localization]]></category>
		<category><![CDATA[Opinion]]></category>
		<category><![CDATA[Strategy]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[UX]]></category>

		<guid isPermaLink="false">http://jansensan.net/?p=294</guid>
		<description><![CDATA[
I've been meaning to write about this for a while. Even though it is not specifically about development, user experience is something that creative developers should take into account when developing websites, games or other interactive experiences. Let's look at a couple of different ways of offering the user localized content, and try to analyze whether [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter" title="Hendrick van Cleve - The Construction of the Tower of Babel" src="http://jansensan.net/images/blog/post0028-babel.jpg" alt="Hendrick van Cleve - The Construction of the Tower of Babel" width="640" height="360" /></p>
<p>I've been meaning to write about this for a while. Even though it is not specifically about development, user experience is something that creative developers should take into account when developing websites, games or other interactive experiences. Let's look at a couple of different ways of offering the user localized content, and try to analyze whether these options fall flat on their face or offer enough flexibility to answer your client's and their customers's needs.</p>
<p>Clients that offer services in multiple countries require their content to be localized, and for a good reason: inhabitants of all regions of the world want to be respected and obtain content in their own language. And I agree, it's a simple matter of respect.</p>
<p><strong>The usual suspects</strong></p>
<p>The way localization is most often achieved is by detecting the user's country automatically. This can either be done by localizing the <a title="Wikipedia - IP" href="http://en.wikipedia.org/wiki/Internet_Protocol" target="_blank">IP</a> address (<a title="IP Address Localization" href="http://ip.bd0.net/" target="_blank">see an example</a>), soon by simpler means with HTML5's geolocation (<a title="HTML5 Geolocation Demo" href="http://html5demos.com/geo" target="_blank">see an example</a>) or by asking the user to select a country.</p>
<p><a title="LaCie" href="http://www.lacie.com/" target="_blank">LaCie</a> does just that.</p>
<p><img class="aligncenter" title="LaCie's landing page" src="http://jansensan.net/images/blog/post0028-lacie.jpg" alt="LaCie's landing page" width="640" height="360" /></p>
<p>I think that this last option is lazy, both on the company's and on the developer's part. The user should not have to make such choices, especially when there are ways to make such a selection invisible.</p>
<p>What happens from there is that the website content is presented in the language relative to the country. It mostly works, but there are some situations where this logic is not sufficient. Let's take the example of some European countries, like Belgium and Greece. In Belgium, French, Dutch (<a title="Wikipedia - Flemish" href="http://en.wikipedia.org/wiki/Flemish" target="_blank">Flemish</a>) and German are the official languages. In Greece, where obviously Greek is the language, there is also need for a <a title="Wikipedia - Greek Alphabet" href="http://en.wikipedia.org/wiki/Greek_alphabet" target="_blank">specific alphabet</a>.</p>
<p>From <a title="adidas.com" href="http://adidas.com" target="_blank">adidas</a>'s country selection page, if either Greece or Belgium is chosen, the user has no choice but to visit an English website.</p>
<p><img class="aligncenter" title="adidas language selection page" src="http://jansensan.net/images/blog/post0028-adidas-01.jpg" alt="adidas language selection page" width="640" height="360" /></p>
<p>To adidas's credit, there is the option to change country at any time, the site even offers you a choice whether or not you want the cookie to remember your country selection.</p>
<p><img class="aligncenter" title="adidas asks if the chosen country is to be remembered for next time" src="http://jansensan.net/images/blog/post0028-adidas-02.jpg" alt="adidas asks if the chosen country is to be remembered for next time" width="430" height="255" /></p>
<p>Some websites, such a <a title="nike.com" href="http://www.nike.com/" target="_blank">Nike</a>'s may offer a simpler solution, only choose your language, not the country.</p>
<p><img class="aligncenter" title="Nike's website offers to choose a language, not a country" src="http://jansensan.net/images/blog/post0028-nike.jpg" alt="Nike's website offers to choose a language, not a country" width="640" height="360" /></p>
<p>All these options ask an action from the user before they can even see your products or services, and that small irritant is the first interaction they have with your website.</p>
<p><strong>The mistaken</strong></p>
<p>In all online stores (let's not call these e-commerce no more, please?), there comes a moment where you want to write your shipping address to obtain your purchases. If you have offered your clients a multilingual website, it's just normal that the input fields should support special characters too, regardless of the language the client chose.</p>
<p>When I moved back from Amsterdam to Montréal, I had to change many addresses for many of my services, both physical and online.</p>
<p>Apple requires me to have a valid credit card in the country that I select, as their products availabilities are based on the locale. However, their form failed when I entered my address.</p>
<p><img class="aligncenter" title="Apple's address form" src="http://jansensan.net/images/blog/post0028-apple.jpg" alt="Apple's address form" width="620" height="360" />I get informed that the city, that I wrote "Montréal", contains illegal characters. Obviously, this turned out to be that I should not use the accent. This is ridiculous, the user should not be told there is something wrong when in fact there is not. How complicated is it really to handle accented characters? I mean, if you want to provide multilingual services, get your act together and do it everywhere.</p>
<p><strong>The ignorant</strong></p>
<p>There is also the peculiar case of Urban Outfitters. The american company has oftentimes been vilified for stealing designs from indie designers or for shamelessly using native names in their product names, so what I will present here should not come as a surprise.</p>
<p>In Québec, a law states that if a business has a brick and mortar store in the province, the business is responsible to also have a French side to it's website. As mentioned in my introduction, it's a matter of respect to your clients in the locale in which you offer your products and services.</p>
<p>Urban Outfitters did not, and when legally instructed to do so, they decided to simply not offer their clients in Québec with <a title="Urban Outfitters's Québec &quot;Website&quot;" href="http://www.urbanoutfitters.com/urban/html/quebec.html" target="_blank">no access to their website whatsoever</a>. Just go to the store.</p>
<p><img class="aligncenter" title="Urban Outfitters's fuck you to Quebeckers" src="http://jansensan.net/images/blog/post0028-urban.jpg" alt="Urban Outfitters's fuck you to Quebeckers" width="640" height="360" /></p>
<p>That is one stupid way to use geolocation! You disrespect a locale and it's language, and at the same time you prevent those in the locale who can speak and read English from having access to your products. Great way to prevent sales!</p>
<p><strong>The road ahead</strong></p>
<p>Of these different approaches I make the following conclusion and add a recommendation for multilingual website and software creators: first, indeed do geolocation to offer the most relevant content to the user. Do give options to change not only the country, but also the language. <a title="Paypal" href="https://www.paypal.com/" target="_blank">Paypal</a> is the closest to this idea. If you change your location to Canada, you can then change the language to the available languages is that country, namely French and English.</p>
<p>But here is where I want to get to with this post: why stop there? Indeed, do present the most logical languages relevant to that area, but do not block the other languages from being available, especially since you have them in the database already. I understand that it may be mostly be relevant for expats and travelers, but I strongly believe that this kind of market is growing.</p>
<p>The iTunes Store is built in order to lock you into a language depending on your country. Websites like <a title="YesAsia.com" href="http://yesasia.com/" target="_blank">YesAsia</a> are built with the idea that the content should be available to everyone, even if the clients are not from Hong Kong, Japan or Korea, where their offices are. They offer not only options for locales and languages, but a reference to the value of the currency so the customers may have a general idea of what they will pay.</p>
<p><img class="aligncenter" title="YesAsia's options" src="http://jansensan.net/images/blog/post0028-yesasia.jpg" alt="YesAsia's options" width="640" height="283" /></p>
<p>In the case of Paypal, as I said before languages are chosen by country. They have many more languages, they should offer them. I can understand that there may be issues in doing so. For example, English is not legally bounding in the Netherlands, so important options are not available, not even deleting an account. How about presenting all languages, and just like YesAsia does it, add a note that explains that whatever is said in translations, the version in the official language(s) of the locale prevail?</p>
<p>Ultimately, it's always about how much you really care about your clients. For example, Asian countries dislike it when they are presented with English text rather than localized. Ask your markets to help you make a better localized version of your products, don't just expect your clients to swallow whatever you feed them. This is the kind of stuff metrics will not really show in numbers, this is an analysis you can make from talking with your markets.</p>
]]></content:encoded>
			<wfw:commentRss>http://jansensan.net/how-to-improve-localization/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>adidas Originals publishes Women&#8217;s Lookbook</title>
		<link>http://jansensan.net/adidas-originals-womens-lookbook-ss10</link>
		<comments>http://jansensan.net/adidas-originals-womens-lookbook-ss10#comments</comments>
		<pubDate>Wed, 17 Mar 2010 12:19:55 +0000</pubDate>
		<dc:creator>mat janson blanchet</dc:creator>
				<category><![CDATA[Commercial Works]]></category>
		<category><![CDATA[Localization]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[ActionScript 3.0]]></category>
		<category><![CDATA[adidas]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[FWA]]></category>
		<category><![CDATA[Sid Lee]]></category>

		<guid isPermaLink="false">http://jansensan.net/?p=167</guid>
		<description><![CDATA[


After two arduous months of work—and during the hassle of me moving to Amsterdam nonetheless!—we finally managed complete the production of the adidas Originals Women's Lookbook SS10!
Lots of thought went into the architecture of that project so it would be easy to debug. I chose a homebrew MVC pattern for the structure, which worked well. [...]]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;">
<div><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="480" height="351" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="FlashVars" value="culture=us" /><param name="allowScriptAccess" value="always" /><param name="flashvars" value="culture=us" /><param name="src" value="http://www.adidas.com/campaigns/originals_ss10/content/microsites/womenslookbook/embed/AdidasWLB_Loader.swf" /><embed type="application/x-shockwave-flash" width="480" height="351" src="http://www.adidas.com/campaigns/originals_ss10/content/microsites/womenslookbook/embed/AdidasWLB_Loader.swf" allowscriptaccess="always" flashvars="culture=com"></embed></object></div>
</div>
<p>After two arduous months of work—and during the hassle of me moving to Amsterdam nonetheless!—<a title="Sid Lee" href="http://www.sidlee.com/" target="_blank">we</a> finally managed complete the production of the <a title="adidas Originals Women's Lookbook SS10" href="http://www.adidas.com/originals/womenslookbook" target="_blank">adidas Originals Women's Lookbook SS10</a>!</p>
<p>Lots of thought went into the architecture of that project so it would be easy to debug. I chose a homebrew <a title="MVC pattern" href="http://en.wikipedia.org/wiki/Model–view–controller" target="_blank">MVC pattern</a> for the structure, which worked well. Looking at <a title="My colleague, Antti Kupila" href="http://www.anttikupila.com/" target="_blank">my colleague</a> working with <a title="Robot Legs" href="http://www.robotlegs.org/" target="_blank">RobotLegs</a>, I believe this is what I'll look into next.</p>
<p>The localization worked like a charm with the <a title="Of localization and locale mapping" href="http://jansensan.net/locale-mapping" target="_blank">locale mapping logic I wrote about before</a>. The only issue I found is that since there were no specific fonts for non latin languages, there had to be a check to see what alphabet was used, to  make sure that the fonts were not embedded if said alphabet was non latin.</p>
<p>The video had to stream in this case since we needed to jump at any moment in time in the video. Also, we faced an inconvenience when <a title="BitmapData.draw() AS3 Documentation" href="http://help.adobe.com/en_US/AS3LCR/Flash_10.0/flash/display/BitmapData.html#draw()" target="_blank">trying to get a bitmap from a streaming video</a>, the <a title="Fixing BitmapData.draw() Security Sandbox Violation" href="http://www.thebluepipe.com/Developer/tutorials/as3/Crossdomain-Video-Snapshot-Fixing-BitmapData-draw-Security-Sandbox-Violation.html" target="_blank">solutions were on the server side</a>.</p>
<p>Integrating the whole project into an existing parent SWF was also a challenge, since the class definitions would be kept in the appdom memory and causing issues when loading the site a second time. The solution to this was to apply an application domain when loading the microsite (<a title="Being a Successful Development Team in Flash with Application Domains" href="http://codeendeavor.com/archives/468" target="_blank">link 1</a>, <a title="Application Domain and External SWF Loading" href="http://annafilina.com/blog/application-domain-and-external-swf-loading/" target="_blank">link 2</a>).</p>
<p>As I was looking for solutions, I found that <a title="maashaack - ActionScript 3 framework, tools, libraries and utilities" href="http://code.google.com/p/maashaack/wiki/Main" target="_blank">wiki</a> that is discussing about things like thinking in AS3, metadata, singletons, application domains and all sorts of interesting subjects.</p>
<p>All in all, that project was a good challenge, one I had been looking forward to for a while now.</p>
<p>The embeddable version seen in this post actually has been produced by <a title="Département" href="http://www.departement.ca/" target="_blank">Département</a> in Montréal.</p>
]]></content:encoded>
			<wfw:commentRss>http://jansensan.net/adidas-originals-womens-lookbook-ss10/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Of localization and locale mapping</title>
		<link>http://jansensan.net/locale-mapping</link>
		<comments>http://jansensan.net/locale-mapping#comments</comments>
		<pubDate>Sun, 21 Feb 2010 14:06:35 +0000</pubDate>
		<dc:creator>mat janson blanchet</dc:creator>
				<category><![CDATA[Localization]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Workflow]]></category>
		<category><![CDATA[ActionScript 3.0]]></category>
		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://jansensan.net/?p=132</guid>
		<description><![CDATA[When creating web content for international clients, it is more than likely that you will have to think of localized versions of your website. This mostly means that the copy has to be translated into multiple languages.
In this post I will try to present what I believe is a simple way to deal with localization [...]]]></description>
			<content:encoded><![CDATA[<p>When creating web content for international clients, it is more than likely that you will have to think of localized versions of your website. This mostly means that the copy has to be translated into multiple languages.</p>
<p>In this post I will try to present what I believe is a simple way to deal with localization and minimize file copying etc.</p>
<p>I learned of localization when I was working at an e-commerce production shop previously. That company had most of its clients in Canada and in the US, meaning that we only had to deal with a minimal amount of localization, namely "en-US", "en-CA" and "fr-CA".</p>
<p>If you have no idea what those codes are about, the first two letters represent the language (following the <a title="ISO 639-2" href="http://en.wikipedia.org/wiki/ISO_639-2" target="_blank">ISO 639-2</a> codes) and the las two letters represent the country (following the <a title="ISO 3166-1" href="http://en.wikipedia.org/wiki/ISO_3166-1" target="_blank">ISO 3166-1</a> codes).</p>
<p>Recently I had to complete projects for an employee that left the company I currently work for. I had actually never dealt with localization in Europe and obviously, that means a lot more languages. I also discovered that some countries reuse copy. For example, the swedish and greek localization of one of our client's site reuse the english copy. The way the project was set up at that moment was to have one directory per country, meaning that we had to remember to duplicate the english copy into all the directories that used that language as well.</p>
<p>A recipe for disasters.</p>
<p>Here is where the idea of mapping becomes useful. In the site's config file, I simply thought of adding a node that would contain the locale mapping, meaning what country is associated to what language etc.</p>
<p>XML:</p>
<blockquote>
<pre class="actionscript">&lt;localeMapping&gt;
     &lt;locale country=<span style="color: #ff0000;">&quot;ca&quot;</span> <span style="color: #0066CC;">language</span>=<span style="color: #ff0000;">&quot;en&quot;</span> alphabet=<span style="color: #ff0000;">&quot;latin&quot;</span> /&gt;
     &lt;locale country=<span style="color: #ff0000;">&quot;cf&quot;</span> <span style="color: #0066CC;">language</span>=<span style="color: #ff0000;">&quot;fr&quot;</span> alphabet=<span style="color: #ff0000;">&quot;latin&quot;</span> /&gt;
     &lt;locale country=<span style="color: #ff0000;">&quot;fr&quot;</span> <span style="color: #0066CC;">language</span>=<span style="color: #ff0000;">&quot;fr&quot;</span> alphabet=<span style="color: #ff0000;">&quot;latin&quot;</span> /&gt;
     &lt;locale country=<span style="color: #ff0000;">&quot;jp&quot;</span> <span style="color: #0066CC;">language</span>=<span style="color: #ff0000;">&quot;ja&quot;</span> alphabet=<span style="color: #ff0000;">&quot;japanese&quot;</span> /&gt;
     &lt;locale country=<span style="color: #ff0000;">&quot;kr&quot;</span> <span style="color: #0066CC;">language</span>=<span style="color: #ff0000;">&quot;ko&quot;</span> alphabet=<span style="color: #ff0000;">&quot;korean&quot;</span> /&gt;
     &lt;locale country=<span style="color: #ff0000;">&quot;se&quot;</span> <span style="color: #0066CC;">language</span>=<span style="color: #ff0000;">&quot;en&quot;</span> alphabet=<span style="color: #ff0000;">&quot;latin&quot;</span> /&gt;
     &lt;locale country=<span style="color: #ff0000;">&quot;uk&quot;</span> <span style="color: #0066CC;">language</span>=<span style="color: #ff0000;">&quot;en&quot;</span> alphabet=<span style="color: #ff0000;">&quot;latin&quot;</span> /&gt;
     &lt;locale country=<span style="color: #ff0000;">&quot;us&quot;</span> <span style="color: #0066CC;">language</span>=<span style="color: #ff0000;">&quot;en&quot;</span> alphabet=<span style="color: #ff0000;">&quot;latin&quot;</span> /&gt;
&lt;/localeMapping&gt;</pre>
</blockquote>
<p>The alphabet tag is not relative to any specific standard, but just actually the logic part of what I use to load the fonts and the CSS (see <a title="Loading assets dynamically (part 4: fonts and CSS)" href="http://jansensan.net/loading-assets-dynamically-part-4" target="_self">previous post</a>).</p>
<p>So far as the logic goes, once the config file is loaded it is easy to associate a country with a language and load the related files. If a user comes to a website and there a script that detects France, it is then possible to know what to load: the french copy, the latin font set and the latin CSS. Same goes for any country.</p>
<p><a title="Antti Kupila" href="http://www.anttikupila.com/" target="_blank">Antti Kupila</a>, a colleague of mine, believes that it is kind of cheating to reload a a whole website to change the locale. I agreed when he explained how to realize this.</p>
<p>Whenever a TextField is added in the application, it is registered and a reference to it is kept in memory somewhere. When the user changes the locale, there is no need to reload all assets, just the necessary copy, the font set and the CSS (or TextFormat, depending). Once all is loaded, update the TextFields.</p>
<p>Here you go Internets, another way to organize and simplify your life.</p>
]]></content:encoded>
			<wfw:commentRss>http://jansensan.net/locale-mapping/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

