<p>Imagine you're creating a presentation that will be translated into a dozen different languages, including ones with non-latin characters (Chinese, for instance). The client's branding style guide dictates that certain fonts are acceptable for certain languages. The content itself is required to be externalized, so that the text can be replaced without ever opening a .fla, or re-saving a graphic.</p>

<p>So we're talking dynamic TextField s, populated from XML, with the font swapped out to accommodate the viewer's locale - what's the most painless way to dynamically load only the fonts required (regardless of the filesize), and apply them as necessary? I'm looking for solutions using <strong>Flash only, not Flex</strong>.</p>

Well, you'll some how have to know what language you're loading. Autodetection can be quite difficult.
Assuming you know what language the content is you can register fonts to be used in runtime using
Font.registerFont()
; With this you can load a swf that contains a font, register it, and it's available for future use in all textfields.
print("code sample");
```
```
[Embed(src="someFont.ttf", fontFamily="myFont", mimeType="application/x-font")]
private var fontClass:Class;

...

Font.registerFont(fontClass);
```
```
Note that you'll have to compile using the flex compiler to support the Embed tag.
A good utility in addition is
Font.hasGlyphs()
, which you can use to check if the characters you are using are available in an embedded fonts. This can be used to either jump back to a system font or display a warning to you as the developer (if you forgot some characters or whatever). Subclassing TextField to do this check automatically may be a good idea.
If this is going to be online, in general embedding Chinese is something you should think about twice. Embedding all characters will increase the filesize
a lot
and afaik there aren't that many complete Chinese fonts available anyway. The technique above is of course still useful for many other languages.