<?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>Dejan on Technology &#187; i18n</title>
	<atom:link href="http://www.vesic.org/english/blog/category/i18n/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.vesic.org/english/blog</link>
	<description>dotNet, ASP.Net, Programming, Software ...</description>
	<lastBuildDate>Mon, 01 Mar 2010 09:07:14 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Transliteration easy way &#8211; Microsoft Transliteration Utility</title>
		<link>http://www.vesic.org/english/blog/c-sharp/transliteration-easy-way-microsoft-transliteration-utility/</link>
		<comments>http://www.vesic.org/english/blog/c-sharp/transliteration-easy-way-microsoft-transliteration-utility/#comments</comments>
		<pubDate>Sun, 03 Feb 2008 22:26:12 +0000</pubDate>
		<dc:creator>Dejan Vesić</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[i18n]]></category>
		<category><![CDATA[Microsoft]]></category>

		<guid isPermaLink="false">http://www.vesic.org/english/blog/c/transliteration-easy-way-microsoft-transliteration-utility/</guid>
		<description><![CDATA[If you are lucky enough :-) to have not one, but two alphabets in daily use, your regular task in programming will be <a href="http://en.wikipedia.org/wiki/Transliteration">transliteration</a> - transformation of text from one script  (alphabet) to another.

In Serbia, we are using Latin as well as <a href="http://en.wikipedia.org/wiki/Cyrillic">Cyrillic</a> alphabet ...]]></description>
			<content:encoded><![CDATA[<p>If you are lucky enough <img src='http://www.vesic.org/english/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  to have not one, but two alphabets in daily use, your regular task in programming will be <a href="http://en.wikipedia.org/wiki/Transliteration">transliteration</a> &#8211; transformation of text from one script  (alphabet) to another.</p>
<p>In Serbia, we are using Latin as well as <a href="http://en.wikipedia.org/wiki/Cyrillic">Cyrillic</a> alphabet (and that is <a href="http://www.tipometar.org/kolumne/Unicode/IndexEng.html">not same Cyrillic</a> as Russian one) and common task is conversion from one to another and vice-versa.</p>
<p>This is not too complicated request; you can easily create necessary procedures; however, there is a better way:</p>
<p><a href="http://www.microsoft.com/globaldev/tools/translit.mspx">Microsoft Transliteration Utility</a> (MTU) is not widely known, but very useful tool for just that purpose: transliteration. It can easily transliterate text either typed in a text box or from one file to another.</p>
<p>There is set of predefined translations:</p>
<ul>
<li>Serbian Cyrillic to Latin / Serbian Latin to Cyrillic</li>
<li>Bosnian Cyrillic to Latin / Bosnian Latin to Cyrillic</li>
<li>Hangul to Romanization</li>
<li>Inuktitut to Romanization / Romanization to Inuktitut</li>
<li>Malayalam to Romanization / Romanization to Malayalam</li>
</ul>
<p>You are not limited to above set; you can easily create your own translations, using Module Development Console:</p>
<p><a href='http://www.vesic.org/english/blog/wp-content/uploads/2008/02/microsoft-transliteration-utility-01.png' title='Microsoft Transliteration Utility - Module Development Console'><img src='http://www.vesic.org/english/blog/wp-content/uploads/2008/02/microsoft-transliteration-utility-01-small.png' alt='Microsoft Transliteration Utility - Module Development Console' /></a><br />
<small>(click on image for larger version)</small></p>
<p>Creating simple textual file, you can use full power of MTU&#8217;s parsing engine: definitions of input and output characters, rules for transliteration including definitions of new states for translation state machine.</p>
<p>This is not the end &#8211; you can even use MTU programmatically (although please check EULA for commercial usage):</p>
<ul>
<li> Add reference to <strong>MSTranslitTools.DLL</strong> (it can be found in <em>%programfiles%\Microsoft Transliteration Utility</em>)</li>
<li>Add <em>using System.NaturalLanguage.Tools;</em></li>
<li>Current translation files (.tms) can be found in <em>%CommonProgramFiles%\Transliteration\Modules\Microsoft\</em></li>
<li>Here is simple code fragment to demonstrate:</li>
</ul>
<pre><code>TransliteratorSpecification specification =
   TransliteratorSpecification.FromSpecificationFile("Serbian Latin to Cyrillic.tms");

Transliterator transliterator = Transliterator.FromSpecification(specification);
string rezultat = transliterator.Transliterate("Vesic.Org");

Console.WriteLine(rezultat);</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://www.vesic.org/english/blog/c-sharp/transliteration-easy-way-microsoft-transliteration-utility/feed/</wfw:commentRss>
		<slash:comments>25</slash:comments>
		</item>
		<item>
		<title>Breaking changes for language codes in KB928365, KB928366</title>
		<link>http://www.vesic.org/english/blog/net/language-code-breaking-changes-kb928365-kb928366/</link>
		<comments>http://www.vesic.org/english/blog/net/language-code-breaking-changes-kb928365-kb928366/#comments</comments>
		<pubDate>Wed, 11 Jul 2007 11:33:10 +0000</pubDate>
		<dc:creator>Dejan Vesić</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[i18n]]></category>

		<guid isPermaLink="false">http://www.vesic.org/english/blog/net/dotnet-language-code-breaking-changes-kb928365-kb928366/</guid>
		<description><![CDATA[Some security updates are not just security updates. If you installed (or you have Automatic Update turned on) yesterday&#8217;s updates: KB928365 &#8211; Security update for the .NET Framework 2.0 for Windows Server 2003, Windows XP, and Windows 2000 KB928366 &#8211; Security update for the .NET Framework 1.1 for Windows XP and Windows 2000 you will [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.vesic.org/blog/upload/ikona-dotnet.jpeg" alt=".Net Framework" width="89" height="50" class="imageRight" />Some security updates are not just security updates.</p>
<p>If you installed (or you have Automatic Update turned on) yesterday&#8217;s updates:</p>
<ul>
<li><a href="http://support.microsoft.com/kb/928365">KB928365</a> &#8211; Security update for the .NET Framework 2.0 for Windows Server 2003, Windows XP, and Windows 2000</li>
<li><a href="http://support.microsoft.com/kb/928366">KB928366</a> &#8211; Security update for the .NET Framework 1.1 for Windows XP and Windows 2000</li>
</ul>
<p>you will get security update (nice) and breaking changes (not so nice) regarding some of the languages in the framework. More precise, some of specific cultures changed their codes:</p>
<table style="border: 1px solid black;">
<tr style="border: 1px solid black;">
<td><em>LCID</em></td>
<td><em>Old code</em></td>
<td><em>New code</em></td>
<td><em>Old / New description</em></td>
</tr>
<tr>
<td><strong>2074</strong></td>
<td><strong>sr-SP-Latn</strong></td>
<td><strong>sr-Latn-CS</strong></td>
<td><strong>Serbian (Latin, Serbia and Montenegro)</strong> / <br /><strong>Serbian (Latin, Serbia)</strong></td>
</tr>
<tr>
<td><strong>3098</strong></td>
<td><strong>sr-SP-Cyrl</strong></td>
<td><strong>sr-Cyrl-CS</strong></td>
<td><strong>Serbian (Cyrillic, Serbia and Montenegro)</strong> / <br /><strong>Serbian (Cyrillic, Serbia)</strong></td>
</tr>
<tr>
<td>1068</td>
<td>az-AZ-Latn</td>
<td>az-Latn-AZ</td>
<td>Azeri (Latin, Azerbaijan)</td>
</tr>
<tr>
<td>1091</td>
<td>uz-UZ-Latn</td>
<td>uz-Latn-UZ</td>
<td>Uzbek (Latin, Uzbekistan)</td>
</tr>
<tr>
<td>1025</td>
<td>div-MV</td>
<td>dv-MV</td>
<td>Divehi (Maldives)</td>
</tr>
<tr>
<td>2092</td>
<td>az-AZ-Cyrl</td>
<td>az-Cyrl-AZ</td>
<td>Azeri (Cyrillic, Azerbaijan)</td>
</tr>
<tr>
<td>2115</td>
<td>uz-UZ-Cyrl</td>
<td>uz-Cyrl-UZ</td>
<td>Uzbek (Cyrillic, Uzbekistan)</td>
</tr>
<tr>
<td>7194</td>
<td>sr-BA-Cyrl</td>
<td>sr-Cyrl-BA</td>
<td>Serbian (Cyrillic) (Bosnia and Herzegovina)</td>
</tr>
<tr>
<td>5146</td>
<td>bs-BA-Latn</td>
<td>bs-Latn-BA</td>
<td>Bosnian (Bosnia and Herzegovina)</td>
</tr>
<tr>
<td>6170</td>
<td>sr-BA-Latn</td>
<td>sr-Latn-BA</td>
<td>Serbian (Latin) (Bosnia and Herzegovina)</td>
</tr>
<tr>
<td>9225</td>
<td>en-CB</td>
<td>en-029</td>
<td>English (Caribbean)</td>
</tr>
</table>
<p>(this Caribbean change looks very suspicious, but code says so)</p>
<p>Those changes will cause you problems if you have satellite assemblies for given languages in your application &#8211; after client installs update(s), those translations will simply cease to work &#8211; recompile and distribution of new ones is mandatory.</p>
<p>I appreciate updates but some sort of warning or information on official patch pages would be, at least, nice.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.vesic.org/english/blog/net/language-code-breaking-changes-kb928365-kb928366/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

