September 29th, 2003

Why you can’t rotate text

In a previous entry, I said that the word “Start” disappears because the alternative is worse.

Somebody in a comment asked, “Why not draw the text vertically?”

Ah, now you get to learn about the exciting world of vertical text.

We originally intended to run text vertically in the new XP Start menu. In original designs for the menu, your name ran vertically up the left side of the menu instead of running across the top.

Rotating text is problematic in languages that traditionally run vertically, such as Chinese. Since you probably don’t have Chinese fonts installed, pretend that X, Y, and Z are the Chinese characters for your name. In traditional vertical text, it would be written as shown in Example 1 below. Notice that the English text is rotated clockwise. This preserves the top-to-bottom reading order.

X
Y
Z
(Amy Smith)
Amy Smith
XYZ (Amy Smith)
Example 1 Example 2 Example 3

As a concession to Western influences, it is permissible to render Chinese characters left-to-right, in which case your name would be written as “XYZ (Amy Smith)”.

Compare this to the traditional Western way of rotating text. Text which would normally be rendered as “Amy Smith” is rotated counter-clockwise and rendered as shown in Example 2.

Now consider what happens if you take a Chinese name rendered the Western way, “XYZ (Amy Smith)”, then rotate the Western way, resulting in Example 3. Notice that from a Chinese point of view, everything is upside-down! The character that is supposed to be at the top (X) is now at the bottom.

Windows for many years now has been multilingual. This means that the same underlying code runs regardless of language. Changing a language merely changes the strings being displayed. This means that there can be no language-specific UI. In this case, it means that we can’t have separate rotation rules for Chinese as opposed to English or German.

(And even if we were allowed to have separate rotation rules, we would have to be able to tell whether the name was in the form above or was in the form “Amy Smith (XYZ)”. In this form, we should rotate it as in example 2, since this is an English string with Chinese characters embedded; as opposed to our example above where we had a Chinese string with English characters embedded. Those of you who have seen Arabic and English mixed together get to see punctuation marks bandied about with similar degrees of confusion.)

Multilingual support also explains why you see things like “1 folder(s)” instead of “1 folder” and “2 folders”. Why not have two format strings, one for when the number of items is exactly one, and one for when the number of items is two or more?

Well, for one, that would significantly increase the number of strings we would have to carry around. (If you say “just add s to make the plural” then you really need to get out more!)

For two, some languages (such as Slovene) have a “dual” number in addition to singular and plural. The Lahir language has singular (one), dual (two), trial (three), paucal (a few), and plural (many). So now you have to have perhaps five versions of every string that contains a replaceable number.

This also explains why you see a lot of strings of the form “Property: Value” (for example, “Last modified: Monday, September 29, 2003”) instead of a phrase (“Last modified on Monday, September 29, 2003”). This is necessary to avoid problems caused by grammar. If you attempt to compose a phrase, you have to worry about subject/verb agreement, gender and number agreement, declensions, all sorts of things that computers aren’t good at. The only safe solution is to avoid it entirely and use the “Property: Value” notation instead.

We did get one special exception to the “grammar independence” rule: Personalized folders. When you view somebody else’s “My Documents” folder, it says “Chris’s Documents”. We made this request to the translators and they worked really hard to make sure that the templates for possessive forms were accurate in all the languages we support. (Fortunately, we didn’t have to deal with languages where the form of the template depended on us knowing whether Chris is a man or a woman.)

Topics
History

Author

Raymond has been involved in the evolution of Windows for more than 30 years. In 2003, he began a Web site known as The Old New Thing which has grown in popularity far beyond his wildest imagination, a development which still gives him the heebie-jeebies. The Web site spawned a book, coincidentally also titled The Old New Thing (Addison Wesley 2007). He occasionally appears on the Windows Dev Docs Twitter account to tell stories which convey no useful information.

0 comments

Discussion are closed.