<?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>robskelly.com &#187; Localization</title>
	<atom:link href="http://blog.robskelly.com/category/localization/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.robskelly.com</link>
	<description>Flash, Flex, Geography and GIS</description>
	<lastBuildDate>Fri, 19 Mar 2010 06:10:24 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>On-the-fly Localization</title>
		<link>http://blog.robskelly.com/2008/08/on-the-fly-localization/</link>
		<comments>http://blog.robskelly.com/2008/08/on-the-fly-localization/#comments</comments>
		<pubDate>Mon, 18 Aug 2008 20:10:09 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Localization]]></category>

		<guid isPermaLink="false">http://robskelly.com/blog/?p=7</guid>
		<description><![CDATA[So, what if you want your users to be able to change locales on-the-fly? I&#8217;ve put together a simple component that loads and manages translations via XML.

Here&#8217;s how it works&#8230;
Somewhere in your code, you must set up your languages:
import com.robskelly.text.LocalTextField;

LocalTextField.addLanguage('en_us','lang/en_us.xml');
LocalTextField.addLanguage('es','lang/es.xml');
Now you can set a language:
LocalTextField.setLanguage('en_us');
LocalTextField won&#8217;t load the language file until you call setLanguage.
LocalTextField itself [...]]]></description>
			<content:encoded><![CDATA[<p>So, what if you want your users to be able to change locales on-the-fly? I&#8217;ve put together a simple component that loads and manages translations via XML.</p>
<div><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="370" height="250" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="id" value="myId" /><param name="src" value="samples/lang/lang.swf" /><embed id="myId" type="application/x-shockwave-flash" width="370" height="250" src="samples/lang/lang.swf"></embed></object></div>
<p><span id="more-7"></span>Here&#8217;s how it works&#8230;</p>
<p>Somewhere in your code, you must set up your languages:</p>
<pre lang="actionscript">import com.robskelly.text.LocalTextField;

LocalTextField.addLanguage('en_us','lang/en_us.xml');
LocalTextField.addLanguage('es','lang/es.xml');</pre>
<p>Now you can set a language:</p>
<pre lang="actionscript">LocalTextField.setLanguage('en_us');</pre>
<p>LocalTextField won&#8217;t load the language file until you call setLanguage.</p>
<p>LocalTextField itself is a component that wraps a flash.text.TextField instance. You can drag an instance of LocalTextField onto the stage, set its ID parameter, and off you go!</p>
<p>The language files are XML and look like this:</p>
<pre lang="xml">&lt;strings&gt;
	&lt;string id="1"&gt;This is a string.&lt;/string&gt;
	&lt;string id="2"&gt;This is also a string.&lt;/string&gt;
	&lt;string id="3" html="true"&gt;This is a string with &lt;b&gt;HTML&lt;b /&gt;&lt;/string&gt;
&lt;/strings&gt;</pre>
<p>Download a sample <a title="Download LocalTextField sample." href="files/lang.zip">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.robskelly.com/2008/08/on-the-fly-localization/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Changing Character Set Embedding in a Flash Document</title>
		<link>http://blog.robskelly.com/2008/08/changing-character-set-embedding-in-a-flash-document/</link>
		<comments>http://blog.robskelly.com/2008/08/changing-character-set-embedding-in-a-flash-document/#comments</comments>
		<pubDate>Fri, 15 Aug 2008 17:35:07 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Localization]]></category>

		<guid isPermaLink="false">http://robskelly.com/blog/?p=6</guid>
		<description><![CDATA[Here&#8217;s a little JSFL script that you can use to change the character-set embedding in all the input and dynamic TextFields in an entire Flash document. When you run it, it&#8217;ll pick the active document and pop up a prompt asking for the character-set IDs.
This is a pipe-delimited string of integers, so for one character [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a little JSFL script that you can use to change the character-set embedding in all the input and dynamic TextFields in an entire Flash document. When you run it, it&#8217;ll pick the active document and pop up a prompt asking for the character-set IDs.</p>
<p><span id="more-6"></span>This is a pipe-delimited string of integers, so for one character set, say, &#8220;Basic Latin,&#8221; enter:</p>
<p><img style="margin: 10px;" src="http://blog.robskelly.com/files/prompt1.jpg" alt="Character Embed Range Prompt" width="263" height="140" /></p>
<p>For more than one character set, say, &#8220;Basic Latin,&#8221; plus &#8220;Armenian,&#8221; enter:</p>
<p><img style="margin: 10px;" src="http://blog.robskelly.com/files/prompt2.jpg" alt="Character Embed Range Prompt" width="263" height="140" /></p>
<p>This script uses the IDs from the UnicodeTable.xml file in C:\Documents and Settings\[username]\Local Settings\Application Data\Adobe\Flash CS3\en\Configuration\FontEmbedding. You can create your own character sets by copying or adding glyphRange elements.</p>
<p>For example, I wanted to extend the Basic Latin character set with some European characters. I simply copied the Basic Latin glyphRange element and gave it a new name and ID. Then I opened the charmap utility in Windows (C:\WINDOWS\system32\charmap.exe) and found the Unicode codes for the characters I wanted. The codes in charmap are in the format &#8220;0+0000.&#8221; Just change the &#8220;+&#8221; to an &#8220;x.&#8221; Since the characters in charmap are listed in order of their Unicode codes, you can use the first and last IDs of a range of characters and all those in between will be included. Here&#8217;s my &#8220;Basic Latin plus European&#8221; glyphRange:</p>
<pre lang="xml">&lt;glyphRange name="Basic Latin Plus European" id="30" &gt;
&lt;!-- Ranges copied from "Basic Latin" --&gt;
&lt;range min="0x0020" max ="0x002F" /&gt;
&lt;range min="0x0030" max ="0x0039" /&gt;
&lt;range min="0x003A" max ="0x0040" /&gt;
&lt;range min="0x0041" max ="0x005A" /&gt;
&lt;range min="0x005B" max ="0x0060" /&gt;
&lt;range min="0x0061" max ="0x007A" /&gt;
&lt;range min="0x007B" max ="0x007E" /&gt;
&lt;!-- New ranges --&gt;
&lt;range min="0x00C0" max="0x0259" /&gt;
&lt;range min="0x1E80" max="0x1EF9" /&gt;
&lt;/glyphRange&gt;</pre>
<p>Download the script <a title="Download ReplaceTextFormat.zip" href="http://blog.robskelly.com/files/ReplaceTextFormat.zip">here</a>.<br />
Place the file in C:\Documents and Settings\[username]\Local Settings\Application Data\Adobe\Flash CS3\en\Configuration\Commands and run it from the &#8220;Commands&#8221; menu in Flash.</p>
<p><strong>Update:</strong> If you get an error like this: </p>
<pre>
At line 1 of file "/Users/dan/Downloads/ReplaceTextFormat.jsfl":
TypeError: fl.findObjectInDocByType is not a function
</pre>
<p>there&#8217;s a quick fix. Find the file ObjectFindAndSelect.jsfl in en/Configuration/Javascript and edit the function FlashUtils_findObjectInTimeline, adding this in the first line of the body (around line 29):</p>
<pre lang="javascript">
if(!objTimeline)return;
</pre>
<p>This method performs a bunch of operations on that object but fails to check if it&#8217;s null first. According to a user in the <a href="http://livedocs.adobe.com/flash/9.0/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&#038;file=00004151.html" title="Livedocs">comments on the livedoc entry for fl.findObjectInDocByType()</a>, pngs in the fla timeline will cause objTimeline to be null. I tested it with a png and, by golly, it&#8217;s true. Thanks Dan!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.robskelly.com/2008/08/changing-character-set-embedding-in-a-flash-document/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dynamic Font Loading in Flash 9</title>
		<link>http://blog.robskelly.com/2008/06/dynamic-font-loading-in-flash-9/</link>
		<comments>http://blog.robskelly.com/2008/06/dynamic-font-loading-in-flash-9/#comments</comments>
		<pubDate>Thu, 19 Jun 2008 01:22:15 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[FLEX]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Localization]]></category>
		<category><![CDATA[font embedding]]></category>

		<guid isPermaLink="false">http://robskelly.com/blog/?p=3</guid>
		<description><![CDATA[One of the biggest headaches in localizing Flash sites is setting up to dynamically load and easily use embedded fonts. Recently, in order to build a site that will need localization for an as-yet-undecided number of countries, I finally decided to dive in and solve this problem once and for all.

There are several problems with [...]]]></description>
			<content:encoded><![CDATA[<p>One of the biggest headaches in localizing Flash sites is setting up to dynamically load and easily use embedded fonts. Recently, in order to build a site that will need localization for an as-yet-undecided number of countries, I finally decided to dive in and solve this problem once and for all.</p>
<p><span id="more-3"></span></p>
<p>There are several problems with creating loadable font modules for Flash:</p>
<ul>
<li>If you embed fonts in a TextField, there&#8217;s no way to access the Font instance or class from the swf.</li>
<li>If you create a font library symbol, there&#8217;s no way to alter the character set, other than changing your machine&#8217;s locale.</li>
<li>If you set the same font in a library symbol and a TextField, the charset in the symbol will actually override that in the TextField, and an incomplete charset will be baked into the swf (whaa?)</li>
</ul>
<p>So, how do you create an accessible font in an swf? <strong>FLEX!</strong></p>
<p>Flex allows you to specify specific charsets for embedded fonts, and requires that you define a class for the embedded font. The font can easily be retrieved from the swf after loading. Here&#8217;s a usage example.</p>
<div class="codesnip-container" >
<div class="actionscript codesnip" style="font-family:monospace;"><span class="co1">// load an swf that has a font embedded in it (see below)</span><br />
<span class="kw2">function</span> loadFont<span class="br0">&#40;</span>fontURL:<span class="kw3">String</span><span class="br0">&#41;</span>:<span class="kw3">void</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> loader : Loader = <span class="kw2">new</span> Loader<span class="br0">&#40;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; loader .<span class="me1">contentLoaderInfo</span>.<span class="me1">addEventListener</span><span class="br0">&#40;</span>Event.<span class="me1">INIT</span>,fontLoaded<span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; loader .<span class="kw3">load</span><span class="br0">&#40;</span><span class="kw2">new</span> URLRequest<span class="br0">&#40;</span>fontURL<span class="br0">&#41;</span><span class="br0">&#41;</span>;<br />
<span class="br0">&#125;</span></p>
<p><span class="co1">// when the swf is loaded&#8230;</span><br />
<span class="kw2">function</span> fontLoaded<span class="br0">&#40;</span>evt:Event<span class="br0">&#41;</span>:<span class="kw3">void</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// get the loader</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> loader : Loader = <span class="br0">&#40;</span>evt.<span class="kw3">target</span> as LoaderInfo<span class="br0">&#41;</span>.<span class="me1">loader</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// remove events</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; loader .<span class="me1">contentLoaderInfo</span>.<span class="me1">removeEventListener</span><span class="br0">&#40;</span>Event.<span class="me1">INIT</span>,fontLoaded<span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// cast the loader content to the IFontSource type. IFontSource defines a getFont() method that</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// we can use to retrieve the font. DO NOT use the swf&#8217;s actual main class here. if the main class</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// is referenced anywhere in the current swf, things will break down (a subject for another lecture&#8230;)</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> fontSource : IFontSource = <span class="br0">&#40;</span>loader.<span class="me1">content</span> as IFontSource<span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// retrieve the font class from the swf.</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> <span class="kw3">font</span> : <span class="kw2">Class</span> = fontSource.<span class="me1">getFont</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// register the loaded font with the fonts list. </span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">Font</span>.<span class="me1">registerFont</span><span class="br0">&#40;</span><span class="kw3">font</span><span class="br0">&#41;</span>;<br />
<span class="br0">&#125;</span></div>
</div>
<p>The font is now registered in the current swf and ready for use.</p>
<p>Now you can do this:</p>
<div class="codesnip-container" >
<div class="actionscript codesnip" style="font-family:monospace;"><span class="co1">// create and populate a text field using the given text and font (which we loaded in the previous listing)</span><br />
<span class="kw2">function</span> fillTextField<span class="br0">&#40;</span><span class="kw3">text</span>:<span class="kw3">String</span>,<span class="kw3">font</span>:<span class="kw3">String</span><span class="br0">&#41;</span>:<span class="kw3">void</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// prepare a new text field</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> <span class="kw3">textField</span> : <span class="kw3">TextField</span> = <span class="kw2">new</span> <span class="kw3">TextField</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">textField</span>.<span class="kw3">width</span> &nbsp;= <span class="nu0">200</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">textField</span>.<span class="kw3">height</span> = <span class="nu0">25</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// create and assign a TextFormat using the submitted font name</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">textField</span>.<span class="me1">defaultTextFormat</span> = <span class="kw2">new</span> <span class="kw3">TextFormat</span><span class="br0">&#40;</span><span class="kw3">font</span>,12,0<span class="br0">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// embed the font</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">textField</span>.<span class="kw3">embedFonts</span> = <span class="kw2">true</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// etc&#8230;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">textField</span>.<span class="kw3">text</span> = <span class="kw3">text</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; addChild<span class="br0">&#40;</span><span class="kw3">textField</span><span class="br0">&#41;</span>;<br />
<span class="br0">&#125;</span></div>
</div>
<p>There&#8217;s only one catch here. You have to be careful what font name you use. It must be the font&#8217;s internal name. Fortunately, there&#8217;s an easy way to retrieve it:</p>
<div class="codesnip-container" >
<div class="actionscript codesnip" style="font-family:monospace;"><span class="co1">// instantiate the font</span><br />
<span class="kw2">var</span> <span class="kw3">font</span> : <span class="kw3">Font</span> = <span class="kw2">new</span> MySpecialFont<span class="br0">&#40;</span><span class="br0">&#41;</span>;<br />
<span class="co1">// retrieve the font&#8217;s internal name</span><br />
<span class="kw2">var</span> fontName : <span class="kw3">String</span> = <span class="kw3">font</span>.<span class="me1">fontName</span>;</div>
</div>
<p>You can use fontName in the TextFormat object.</p>
<p>Now, some code:</p>
<p>Create an interface that your target movie will use to retrieve fonts.</p>
<div class="codesnip-container" >
<div class="actionscript codesnip" style="font-family:monospace;"><span class="kw3">public</span> <span class="kw3">interface</span> IFontSource<span class="br0">&#123;</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">function</span> getFont<span class="br0">&#40;</span><span class="br0">&#41;</span>:<span class="kw2">Class</span>;</p>
<p><span class="br0">&#125;</span></div>
</div>
<p>Now make an abstract class for the font swfs. This will be a base class for the MXML application. You can use an interface in the application&#8217;s default declaration, but if you inherit from Sprite, you can drop some baggage.</p>
<div class="codesnip-container" >
<div class="actionscript codesnip" style="font-family:monospace;"><span class="kw3">public</span> <span class="kw2">class</span> FontSource <span class="kw3">extends</span> Sprite <span class="kw3">implements</span> IFontSource<span class="br0">&#123;</span></p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">public</span> <span class="kw2">function</span> getFont<span class="br0">&#40;</span><span class="br0">&#41;</span>:<span class="kw2">Class</span><span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// not implemented yet&#8230;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="kw2">null</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></p>
<p><span class="br0">&#125;</span></div>
</div>
<p>Now, create an mxml file that implements everything. The application inherits from FontSource.</p>
<div class="codesnip-container" >
<div class="xml codesnip" style="font-family:monospace;"><span class="sc3"><span class="re1">&lt;?xml</span> <span class="re0">version</span>=<span class="st0">&quot;1.0&quot;</span> <span class="re0">encoding</span>=<span class="st0">&quot;utf-8&quot;</span><span class="re2">?&gt;</span></span><br />
<span class="sc3"><span class="re1">&lt;font:FontSource</span></span><br />
<span class="sc3">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">xmlns:mx</span>=<span class="st0">&quot;http://www.adobe.com/2006/mxml&quot;</span> </span><br />
<span class="sc3">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">xmlns:font</span>=<span class="st0">&quot;*&quot;</span><span class="re2">&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;mx:Script<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc2">&lt;![CDATA[</span><br />
<span class="sc2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; [Embed(systemFont=&quot;Bwhebb&quot;,fontName=&quot;hebrew&quot;,mimeType=&quot;application/x-font&quot;,unicodeRange=&quot;Hebrew&quot;)]</span><br />
<span class="sc2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; public var hebrew : Class;</span><br />
<span class="sc2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><br />
<span class="sc2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; public override function getFont():Class{</span><br />
<span class="sc2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return hebrew;</span><br />
<span class="sc2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }</span><br />
<span class="sc2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><br />
<span class="sc2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ]]&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;/mx:Script<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
<span class="sc3"><span class="re1">&lt;/font:FontSource<span class="re2">&gt;</span></span></span></div>
</div>
<p>The new swf contains the font class (with glyphs) and a mechanism to retrieve it.</p>
<p>In order to publish the font swf, you have to edit your [flex sdk]/frameworks/flex-config.xml file so that it contains the appropriate character ranges. Some charsets are already provided in the [flex sdk]/frameworks/flash-unicode-table.xml file. You simply copy and paste elements from this file (or create your own) and paste them into flex-config.xml.</p>
<p>In flash-unicode-table.xml, you&#8217;ll copy the language-range element (in this case, all uppercase latin characters):</p>
<div class="codesnip-container" >
<div class="xml codesnip" style="font-family:monospace;"><span class="sc3"><span class="re1">&lt;flash-unicode-table<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;language-range<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;lang<span class="re2">&gt;</span></span></span>Uppercase<span class="sc3"><span class="re1">&lt;/lang<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;range<span class="re2">&gt;</span></span></span>U+0020,U+0041-U+005A<span class="sc3"><span class="re1">&lt;/range<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;/language-range<span class="re2">&gt;</span></span></span><br />
<span class="sc3"><span class="re1">&lt;/flash-unicode-table<span class="re2">&gt;</span></span></span></div>
</div>
<p>Paste the copied element into flex-config.xml:</p>
<div class="codesnip-container" >
<div class="xml codesnip" style="font-family:monospace;"><span class="sc3"><span class="re1">&lt;flex-config<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;languages<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;language-range<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;lang<span class="re2">&gt;</span></span></span>Uppercase<span class="sc3"><span class="re1">&lt;/lang<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;range<span class="re2">&gt;</span></span></span>U+0020,U+0041-U+005A<span class="sc3"><span class="re1">&lt;/range<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;/language-range<span class="re2">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="sc3"><span class="re1">&lt;/languages<span class="re2">&gt;</span></span></span><br />
<span class="sc3"><span class="re1">&lt;/flex-config<span class="re2">&gt;</span></span></span></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.robskelly.com/2008/06/dynamic-font-loading-in-flash-9/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
