The International Character Toolbar (ICT) is a little add-in my team recently released. It provides Word and PowerPoint with a set of toolbars containing the accented characters for official European languages and a couple of others, allowing users to easily insert these characters into their documents without fiddling around with the Insert Symbol dialog or messing around swapping keyboard (real or virtual). The link above is for the English version but ICT is also available in French, Italian, German and Spanish.
There is a not so obvious link on the download page to a whitepaper which describes how you can provide your own definitions for ICT thereby extending it to other languages and sets of specialized characters.
I’ve seen a few posts on the net asking if its possible to add support for this language and that; so taking as a random example oooh… Icelandic, lets build a small piece of XML so that ICT can display and insert Icelandic characters.
A quick Google on “Icelandic alphabet” turned up this site, so we’ll use the information there as the basis for the alphabet and we’ll assume that it’s sorted correctly.
First we create the basic XML structure for the definition.
<?xml version="1.0"?><ACT xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://tempuri.org/act.xsd"> <ID>E12CF322-F930-4e1d-B9CB-7CC0024508C3</ID> <NAMES> <NAME locale="1033">Icelandic</NAME> </NAMES> <SYMBOLS> </SYMBOLS></ACT>
As it stands the above XML is not complete, so don’t try to use it yet.
(If you're wondering why the root element is ACT and not ICT it's because for a long while ICT was going to be the Alphabets and Characters Toolbar.)
The ID tag is very important. If you are planning on adding your own sets to ICT do not reuse the ID’s used in the default set of sets shipped. This will lead to problems. You must generate a new GUID for the ID using something like GUIDGEN or UUIDGEN. You can use the GUID in the sample above for this set though, as I did generate it afresh.
The NAMES collection allows you to specify the name of the set to appear in the Select Sets dialog for any given locale. Here I’ve just specified 1033 (US English), but if your locale isn’t listed don’t worry, if there isn’t a match ICT will either fall back to 1033 or if there is only a single NAME element it will use that.
Now we need to specify the values of the symbols themselves. Each SYMBOL element has a value attribute and an optional shifted attribute. The convention is to put the lower case symbol in the value attribute and the upper case symbol (if there is one) in the shifted attribute.
A conscious decision was taken to make these XML files flat ASCII and use the decimal Unicode values for the SYMBOL attributes. This removed the complication of XML file encodings and code page support.
Here’s the complete XML for our sample Icelandic.
<?xml version="1.0"?><ACT xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://tempuri.org/act.xsd"> <ID>E12CF322-F930-4e1d-B9CB-7CC0024508C3</ID> <NAMES> <NAME locale="1033">Icelandic</NAME> </NAMES> <SYMBOLS> <SYMBOL value="225" shifted="193" /> <SYMBOL value="273" shifted="272" /> <SYMBOL value="233" shifted="201" /> <SYMBOL value="237" shifted="205" /> <SYMBOL value="243" shifted="211" /> <SYMBOL value="250" shifted="218" /> <SYMBOL value="253" shifted="221" /> <SYMBOL value="254" shifted="222" /> <SYMBOL value="509" shifted="508" /> <SYMBOL value="246" shifted="214" /> </SYMBOLS></ACT>
Save this file in the .\sets folder where you installed ICT to. Make sure all instances of Word and/or PowerPoint are shutdown (close Outlook as well as this can hold a Word process open). Restart Word and/or PowerPoint and bring up the Select Sets dialog. You should now see Icelandic.
Cheers,
Jeff