You are here: Home
Short URL: https://scripts.sil.org/default
Welcome to Computers and Writing Systems
Writing Systems Technology (formerly known as the Non-Roman Script Initiative)
WSTech is a department of SIL International, whose task is to provide assistance, research and development for SIL International and its partners to support the use of non-Roman and complex scripts in language development.
Our vision is that language communities are effectively using their preferred writing system on computers without technical barriers.
Recent additions and updates
The following list is no longer kept up-to-date. For the most recent information follow the links from our new Writing Systems Technology pages.
Ukelele is a Unicode keyboard layout editor for Mac OS X versions 10.2 and later. The latest beta release version, 3.4b2, is available for download, and can be used on Mac OS X 10.9 and later. The previous stable releases of Ukelele, version 3.3 (for macOS 10.9 and later), version 3.2.7 (for Mac OS X 10.8 and later), version 2.2.8 (universal binary, for Mac OS 10.4 and later) and version 1.8.4 (universal binary, for Mac OS X 10.2 and later) are still available for download. This version works on Mac OS X 10.9 (Mavericks) and later.
Here is where the current version of TECkit can be obtained. Version 2.5.10, released 13 May 2020, updates the supported character repertoire (for normalization and character names) to Unicode 13.
The FontUtils package provides a plethora of command line tools for manipulating TrueType fonts. These tools are essential to NRSI's font development processes.
SIL Corporate PUA Assignments
Reference information on Unicode private-use character assignments used within SIL International. Revised for Unicode 9.0
Padauk 4.000 has just been released.
Unicode 8.0 Latin and Cyrillic characters – sorted
PDF documents with tables of Latin and Cyrillic characters from Unicode 8.0 sorted in Unicode Collation Algorithm default order. Useful for finding characters in Unicode.
Smith is a framework to help build fonts and keyboards.
This package provides tools through which you can change the encoding, font, and/or script of text in Microsoft Word and other Office documents, XML documents, and SFM text and lexicon documents. It also installs a system-wide repository to manage your encoding converters and transliterators (TECkit, CC, ICU, Perl, or Python-based, as well as support for adding custom transduction engines).
Andika New Basic 5.500 — Andika New Basic is a limited-character-set (no extended IPA or Cyrillic) version of Andika that includes regular, bold, italic and bold-italic faces. Andika New Basic gives a preview of what a whole range of new weights will eventually look like.
SIL Font Subsets — SIL's Writing Sysytems Technology team has created very comprehensive fonts for Latin and Cyrillic character sets. These are very large fonts that cover just about every need we know about in the Latin and Cyrillic world. Now, as we move into the age of mobile phone and web usage, everyone wants fonts that are small and compact. Our fonts are over a megabyte each and that is considered much too large for mobile phone usage. We have now created subsets of our fonts for different regions of the world. Each regional font only contains the characters (and glyphs) that are known to be used in that region of the world. We have attempted to use the most common glyph required for that region.
The ShiShan fonts provide support for all Miao (Pollard) characters which are in Unicode 6.1.
Roman Script to Arabic Script Conversion
The SIL Converters software provide the framework to convert your texts from Roman script to Arabic script. This document is not a manual of SIL Converters or the TECkit mapping language but attempts to highlight some principles that need to be considered when converting text from Roman script to Arabic script.
New and improved Graphite website! Most recently: Version 4.2 of the Graphite compiler has been released for Windows, and Firefox 11+ now includes Graphite support.
Unicode BMP Fallback Font
Intended for debugging, this font contains a glyph for every character in the Basic Multilingual plane (including Private Use Area) of Unicode 6.1, each glyph consisting of a box enclosing the four hex digits identifying the Unicode scalar value.
Encore2Unicode update for Unicode 6.1.
Encore2Unicode is a command-line utility for Windows that can examine a font built using the Encore font system and create a draft TECkit mapping table for converting data using that font to (and back from) Unicode.
Unicode Character Properties Excel Workbook
Various files from the Unicode Character Database (6.1) compiled into an Excel workbook.
Using SIL Fonts on Web Pages
SIL fonts can be successfully used on web pages. There are many strategies available, and some tricks to making them work well.
Basic Set of characters needed in a Non-Roman font
Some people have asked what a basic character set for a Non-Roman font should include (besides the Non-Roman characters). The chart on this page is our recommendation for a basic set of characters. It includes the union of Windows CP1252 and Mac-Roman.
SIL TypeTuner Web
TypeTuner Web (or TTW) is a web delivery system for customized versions of SIL fonts. Now including: Andika, Charis SIL, Doulos SIL, Gentium Plus, Lateef and Scheherazade.
Articles of general interest
The NRSI Model for Implementing Writing Systems
Over its short history, the Non-Roman Script Initiative of SIL International has developed a model for using computers to implement the various writing systems that are needed for text input, storage, processing, and output.
The Digital Divide
SIL chartered the Non-Roman Script Initiative (NRSI) to enable ethnic minorities to bridge the digital divide. NRSI participates in the work of the Unicode Consortium, an international nonprofit founded to establish a universal standard for representing each character of all the world's writing systems on the computer.
An introduction to keyboard layout design theory: What goes where?
Designing a keyboard layout is relatively easy: you just allocate codepoints to keystrokes. The difficulty comes when trying to decide what codepoints to assign to what keystrokes. Do you design based around the characters on the keytops of a user's keyboard or the relative position of the keys? What do you do if you want to be able to type more characters than there are keys in your keyboard?
A glossary of terms associated with implementing writing systems compiled by the NRSI.
© 2003-2021 SIL International, all rights reserved, unless otherwise noted elsewhere on this page.