Skip to content
<UK/>

Internationalisation bug museum

Dotless ı

Eleven exhibits of software that breaks in Turkish. Each one runs live in your browser: pick a repair and watch whether it holds.

  • Every output is computed by your browser’s own String, RegExp and Intl code
  • The apps in the stories are fictional
  • Your browser’s default locale: detecting…
Case pairs of the letter i
UpperLower
English and most Latin alphabetsIU+0049iU+0069
Turkish and AzerbaijaniIU+0049ıU+0131
İU+0130iU+0069

Exhibit 01Case mapping

The capital that lost its dot

A fictional travel app prints destinations in capitals on its e-tickets. Every Turkish city with an i in its name comes out misspelled.

The fictional appAs shipped

Runs when the page has loaded in your browser…

As shipped

const text = "istanbul · izmir · diyarbakır"
text.toUpperCase()

Runs when the page has loaded in your browser…

Unicode’s default case conversion: i → I.

The same rule in CSS: set the ticket’s lang attribute

istanbul · izmir · diyarbakır

text-transform: uppercase, drawn by your browser. With lang="tr" each i should become İ. Support for language-specific casing varies between browsers.

Pick a repair

Each option runs the moment you choose it. Edit the input above to test it further.

Your repair

Choose a repair to run it here.

How this room works

Nothing on this page is pre-recorded. When it loads, your browser runs every snippet with its own implementation of String, RegExp and Intl, so an answer can differ slightly between browsers and versions. You edit the data and choose the repair; the page never evaluates text you type as code. The C# exhibit is shown in C# and run as the equivalent JavaScript casing rule. This site ships in English and Turkish, so each of these bugs is one careless line away from it.

Unicode and platform references