Template:Unicode
Templates related to Unicode include:
- {{IPA}}, formats symbols of the International Phonetic Alphabet
- {{PUA}}, marks characters from the Private Use Area that should be retained
- {{transl}}, generic romanization
- {{script}}, scripts in Unicode navigation box
- {{unichar}}, formats a Unicode character description
- {{Unicode templates}}, a navbox linking to multiple Unicode templates, shown below
Template:Unicode was created to improve the presentation of Unicode characters on some very old browsers (especially IE6). It took one parameter, which was a string which could contain Unicode characters beyond the ASCII subset. It simply passed through its parameter for most browsers, but for older browsers could add HTML code to improve that browser's presentation of the characters.
After IE6 was deemed too old to support, this template was deprecated, and its implementation was made into a pure identity function, just passing through its parameter. Usages of the template were removed from all articles; the template had been used on at least 60,000 to 100,000 articles.
Sometime after that, this template was changed again, to start showing a list of other templates that might be of interest (in the form of a so-called "template disambiguation"). This had the unfortunate effect of breaking the displayability of millions of old revisions of tens of thousands of articles. (The template change replaced a string or single unicode character in the displayed revision with a large mass of unrelated text, plus error messages, at each place the template was used in the old article revision.)
To correct that problem, the template was made into the current form, which again passes through its parameter when invoked but also when the template page itself is viewed shows the list of other templates of interest.