What the tool does

It turns text typed as “Turkce karakter duzeltme” into “Türkçe karakter düzeltme”. Typical sources are messages written on a foreign keyboard, legacy database exports and product descriptions from older systems that stripped Turkish letters.

The result is a suggestion. Every change carries a class: certain, contextual suggestion, ambiguous or user dictionary. You can review changes in a highlighted diff view and accept or undo each one. The tool is not a spell checker; it only puts missing Turkish letters back.

How to use

  • Paste the text into the input field and press “Fix”.
  • With “Keep URLs, e-mails and code” enabled, links, e-mail addresses, backtick code and HTML tags are not changed.
  • Add proper names to the user dictionary in their correct spelling, for example Balçın or Kadıköy.
  • Read the result. “Show changed words” highlights every difference in colour.
  • Pick an option for each word in the change table; ambiguous words stay as typed by default.
  • Copy the text, download it as .txt, or create a share link that optionally includes your input.

After you edit the input, the result is marked as outdated until you press “Fix” again.

Restoring Turkish characters

In ASCII-only Turkish six letter pairs collapse: c/ç, g/ğ, i/ı, o/ö, s/ş and u/ü. In capitals the pair I/İ joins them. The tool only toggles these letters; it never adds or removes characters, so every word keeps its length.

Words that already contain a Turkish letter are skipped on purpose. A word such as “Şişli” or “güzel” is treated as typed on a Turkish keyboard, and correct Turkish letters are never converted back to ASCII. Capitalised words follow Turkish case rules: “ISTANBUL” becomes “İSTANBUL” and “Isik” becomes “Işık”.

Dictionary and rule-based suggestions

Decisions come from four layers, in this order of priority:

PrioritySourceClass
1Your user dictionaryUser dictionary
2Ambiguous word list (sık/şık, acı/açı, koy/köy…)Ambiguous
3Built-in lexicon (türkçe, istanbul, için, gerçekten…)Certain
4Context decision listsContextual suggestion

The context layer uses the decision lists Deniz Yuret built for the Turkish mode of Emacs. They were learned from news text and look at up to ten characters on each side of a letter. The data is MIT-licensed, and its source, version and checksum are recorded in the site’s repository. The built-in lexicon and the ambiguous list were written for this tool and are intentionally small. When a lexicon word carries an apostrophe suffix (“Istanbul’da”), the stem comes from the lexicon and the suffix from the context layer.

Reviewing ambiguous words

Some ASCII spellings match more than one real Turkish word. “sik” can be “sık” (frequent) or “şık” (stylish), “koy” can be “koy” (bay) or “köy” (village), and “oldu” can be “oldu” (became) or “öldü” (died). The tool does not decide these on its own: the word stays as typed, its row in the table is highlighted, and the candidates appear in a drop-down. The context layer’s preference is listed first but not selected.

To always get the same spelling, add it to the user dictionary: the entry şık turns every “sik” into “şık” and overrides the ambiguous list. To keep a word unchanged, enter its ASCII form, such as Turkce. If two entries share an ASCII form, the first wins and a warning is shown. Any decision can be undone in the table.

Example and interpretation

The note below was processed with protection enabled:

Input : Bu hafta Istanbul'da hava gercekten guzeldi; aksam yemeginde sik bir restorana gittik. Menu icin: https://ornek.com/menu-sik
Output: Bu hafta İstanbul'da hava gerçekten güzeldi; akşam yemeğinde sik bir restorana gittik. Menü için: https://ornek.com/menu-sik

“gerçekten”, “akşam” and “için” came from the built-in lexicon as certain. “güzeldi”, “yemeğinde” and “Menü” were suggested by the context lists. “sik” is ambiguous, so it was left unchanged and the table offers “sık” and “şık”. The context layer prefers “sık” here, yet the sentence (“we went to a stylish restaurant”) needs “şık”. That is exactly why ambiguous words are left to you. The link stayed untouched because of the protection option.

Limits and privacy

  • Up to 50,000 characters per run; the user dictionary accepts up to 500 words.
  • No full spell checking, meaning resolution or perfect accuracy is claimed. Context lists can be wrong, especially for names and foreign words.
  • No percentage confidence is shown; classes only explain where a decision came from.
  • The decision lists are loaded as a separate file on the first run. That request does not contain your text.
  • Your text and user dictionary are not sent to a server or written to browser storage. They travel in a share link only if you choose so.

Frequently asked questions

Why did the tool leave “sik” unchanged?

“sik” can be “sık” or “şık”. Because the meaning cannot be resolved reliably, the word stays as typed and both candidates are offered in the change table.

Will it damage text that already has Turkish letters?

No. Words containing Turkish letters are skipped and correct letters are never turned back into ASCII. For the same reason, a half-corrected word is not completed.

Why are links and code not changed?

With “Keep URLs, e-mails and code” on, addresses, e-mails, backtick code, HTML tags and calls such as FUNCTION( are skipped. Turn it off to process them like normal text.

Where is my user dictionary stored?

Nowhere. It exists only in this page’s memory in your browser and disappears on reload; keep a copy in your own notes if you reuse it.

Do I need to know Turkish to use it?

It helps. Common words are usually restored correctly, but every change is a suggestion, and ambiguous words need someone who understands the sentence.

Published: · Updated: