Several pages on Wikipedia use Indic scripts to illustrate the native representation of names, places, quotes and literature. Unicode is the encoding used on Wikipedia and it contains support for a number of Indic scripts. However, before Indic scripts can be viewed or edited, support for complex text layout must be enabled on your operating system, otherwise mojibake will appear. Some older operating systems do not support complex text rendering and you should not use such systems to edit Indic scripts.

This page lists the methods for enabling complex text rendering based on the operating environment or browser you are using. Many of the methods highlighted can also be used for non-Indic complex scripts such as Arabic.

Check for existing support

The following table compares how a correctly enabled computer would render the following scripts with how your computer renders them:

Script Example of
rendering
macOS
inbuilt support
Linux or BSD
inbuilt support
Windows
inbuilt support
Correct rendering Your computer 10.7 10.13 KDE
with
Qt
GNOME
with
Pango
XP Vista 7 8/8.1 10 11
Devanagari
Complex Text Rendering - Devanagari.svg
क + िकि Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
Tamil
Complex Text Rendering - Tamil.svg
க + ேகே Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
Gujarati
Complex Text Rendering - Gujarati.svg
ક + િકિ Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
Gurmukhi
Complex Text Rendering - Gurmukhi.svg
ਕ + ਿਕਿ Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
Kannada
Complex Text Rendering - Kannada.svg
ಕ + ಿಕಿ Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
Telugu
Complex Text Rendering - Telugu.svg
య + ీయీ Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
Bengali[disambiguation needed],
Assamese[disambiguation needed]
Complex Text Rendering - Bengali.svg
ক + িকি Yes Yes Yes Yes Yes (SP2) Yes Yes Yes Yes Yes
Malayalam
Complex Text Rendering - Malayalam.svg
ക + െകെ Yes Yes Yes Yes Yes (SP2) Yes Yes Yes Yes Yes
Tibetan
Complex Text Rendering - Tibetan.svg
ར + ྐ + ྱརྐྱ Yes Yes needs font needs font needs patch (SP2) Yes Yes Yes Yes Yes
Sinhala
Complex Text Rendering - Sinhala.svg
ඵ + ේඵේ Yes Yes Yes Yes needs font (SP2) Yes Yes Yes Yes Yes
Odia
Complex Text Rendering - Odia.svg
କ + େକେ Yes Yes Yes Yes needs font (SP2) Yes Yes Yes Yes Yes
Thai
Complex Text Rendering - Thai.svg
ฐ + ูฐู Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
Lao
Complex Text Rendering - Lao.svg
ກ + ົ + ້ກົ້ Yes Yes Yes Yes needs font (SP2) Yes Yes Yes Yes Yes
Khmer
Examples.of.complex.text.rendering.Khmer.svg
ម + ្ + ស + ៅ → ម្សៅ Yes Yes Yes Yes needs font (SP2) Yes Yes Yes Yes Yes
Burmese
Complex Text Rendering - Burmese.svg
+ ဃြ Yes Yes No needs font needs font (SP2) needs font needs font Yes Yes Yes
Javanese
Examples.of.complex.text.rendering.Javanese.png
+ + + + ꦧꦾꦺꦴꦂ Un­known Yes Un­known Un­known No No No Yes (8.1) Yes Yes
Balinese
Examples.of.complex.text.rendering.Balinese.png
+ + + + + ᬩ᭄ᬬᭀᬃ Un­known Yes Un­known Un­known Un­known Un­known needs font needs font needs font needs font
Sundanese
Examples.of.complex.text.rendering.Sundanese.png
+ + + ᮘᮡᮦᮁ Un­known Yes Un­known Un­known needs font (SP2) needs font needs font needs font needs font needs font

If the rendering on your computer matches the rendering in the images for the scripts, then you have already enabled complex text support. You should be able to view text correctly in that script. However, this does not mean you will be able to edit text in that script. To edit such text you need to have the appropriate text entry software on your operating system.

Devanagari bilingual Keyboard InScript layout

To type in Devanagari script, use of InScript इन्स्क्रिप्ट keyboard is a permanent and easy solution. Inscript is standard developed by CDAC and approved by Government of India.

A bilingual InScript keyboard
A bilingual InScript keyboard

This keyboard can be configured to work with Windows 2000, Windows XP, Ubuntu Linux and fedora Linux etc. See below sections for detailed instructions.

Windows XP and Server 2003

Supports: Bengali (XP SP2)[disambiguation needed], Devanagari, Gujarati, Gurmukhi, Kannada, Malayalam (XP SP2), Tamil, Telugu. The default Bengali font, Vrinda, appears too small, so it might be desirable to install another font. Oriya works with SP2 and later if you install unicode fonts.

Viewing Indic text (Manual method)

  1. Install at least one Unicode font in your system, associated with the language that you want to view correctly, or install a Unicode font which contains large character set for many different languages.
  2. Go to Start → Control Panel.
  3. If you are in "Category View" select the icon that says "Date, Time, Language and Regional Options" and then select "Regional and Language Options".
  4. If you are in Classic View select the icon that says "Regional and Language Options".
  5. Select the "Languages" tab and make sure you select the option saying "Install files for complex script and right-to-left languages (including Thai)". A confirmation message should now appear - press "OK" on this confirmation message.
  6. Allow the OS to install necessary files from the Windows XP CD and then reboot if prompted.
  7. Install or Enable your Language(Script) support on your web-browser software:
    • On Internet Explorer 6: Go to Tools → Internet Options → General → Languages, and add your particular language(s) that you want to view correctly.
    • On Firefox 3.0: Go to Tools → Options → Content → Languages → Choose ..., and add your particular languages(s) that you want to view correctly. Doesn't work for Firefox 3.6.13 though!
  8. Go to your web-browser's "view" menu and set the "character encoding" or "encoding" feature to: Unicode (UTF-8).

In Firefox, if Indic Scripts are still appearing incorrectly, you may then use the latest version of usp10.dll on your system and it may also be necessary to install a Unicode OpenType font.

This is an optional step, only when you want to use a specific Unicode font for your chosen particular language(s) for viewing webpages.

  1. To use a specific font for webpages:
    • For Internet Explorer 6: Go to Tools → Internet options → Fonts, choose your particular language from the Language Script pulldown menu and select a font from one of the available fonts for that particular language in your system.
    • For Firefox 1.5: Go to Tools → Options → Content tab → Advanced ... in the Fonts and colors section. In the pop up window titled "Fonts", select your particular language from the "Fonts for:" pulldown Menu and set a font that is associated with your particular language of your choice, for various kinds of fields like Serif, Sans Serif, Monospace, etc. to be used for showing webpages.
    • For Opera 9: Go to Tools → Preferences → Advanced tab → Fonts → International fonts → choose your particular language from the drop down list. Select a font for your language of your choice. In most of the cases, Opera automatically detects if you have enabled Unicode support and installed fonts, so you may not require this step.

Tibetan is properly supported since Firefox 4.

Inputting Indic text

Windows XP has inbuilt InScript Keyboards for nearly all Indian languages. You can add them via Control Panel. You must follow the steps above before you perform the remaining steps.

You can use the combination Alt+⇧ Shift to switch between different keyboard layouts (e.g. from a UK Keyboard to Gurmukhi and vice versa). If you want a language bar, you can select it by pressing the "Language Bar ..." button on the "Text Services and Input Languages" dialog and then selecting "Show the language bar on my desktop". The language bar enables you to visually select the keyboard layout you are using.

Baraha and PramukhIME are Phonetic based software and includes nearly all of Indic languages. Baraha Direct included in Baraha Package supports both ANSI & Unicode while Baraha IME supports only Unicode.

Windows Vista and Windows 7

Supports: Bengali[disambiguation needed], Devanagari, Gujarati, Gurmukhi, Kannada, Malayalam, Oriya, Sinhala, Tamil, Telugu, Tibetan. The default Bengali font, Vrinda, appears too small, so it might be desirable to install another font. The same applies to the default Tibetan font.

Complex text support is automatically enabled.

Viewing Indic text

Burmese

This page contains Burmese script. Without proper rendering support, you may see question marks, boxes, or other symbols instead of Burmese script.

You do not need to do anything to enable viewing of Indic text, except Burmese script (examples: + ဃြ and မြန်မာအက္ခရာ) which needs a font not pre-installed on Vista. Follow the help provided in the template to the right.

Khmer

The pre-installed Khmer fonts in Windows Vista and Windows 7 are generally considered illegible because of their tiny default point. If desired these fonts may be replaced with other Khmer Unicode fonts available online. See http://www.selapa.net/khmerfonts/ for a list of Khmer Unicode fonts.

Tibetan

This page contains Tibetan script. Without proper rendering support, you may see very small fonts, misplaced vowels or missing conjuncts instead of Tibetan characters.

The pre-installed Tibetan fonts in Windows Vista and Windows 7 known as "Microsoft Himalaya" is generally considered illegible because of their tiny default point. If desired the font may be replaced with a fix to the size - "Big Microsoft Himalaya". See http://www.yalasoo.com/English/docs/yalasoo_en_bigger_himalaya_font.html to replace "Microsoft Himalaya" with "Big Microsoft Himalaya".

Inputting Indic text

Windows Vista, like Windows XP, has inbuilt InScript keyboards for nearly all Indian languages. You can add them via the Control Panel.

  1. Go to Start → Control Panel
  2. If you are in normal view, select ⟨Change keyboards or other input methods⟩ from under ⟨Clock, Language and Region⟩.
  3. If you are in Classic view, select ⟨Regional and Language Options⟩.
  4. Select the ⟨Keyboards and Languages⟩ tab if it is not already selected.
  5. Select the ⟨Change keyboards ...⟩ button.
  6. Choose you desired language(s) from the list and expand them using the '+' sign. Then, expand the item which says ⟨Keyboard⟩ and tick your preferred keyboard layout(s).
  7. Select ⟨OK⟩, and ⟨OK⟩ again to save the changes.

The default hot key combination for switching between languages is Alt+⇧ Shift.

This video clip can help you in understanding how to activate Wikipedia ULS feature for typing certain indic languages on wiki projects; Click on the 'cc to change the subtitle languages to Marathi, English, Sanskrit, Kokani,Ahirani.

The following software allows typing in Indian scripts:

Another alternative is User:Keymanweb/Keymanweb which provides a web-based keyboard that is integrated into Wikipedia and supports 300 languages, including most of the complex scripts listed on this page. The ISIS keyboards are available through Keymanweb.

macOS

Inbuilt support:

Additional fonts:

Note: Additional fonts for these scripts have to be in /Library/Fonts in order for text to be displayed.

Viewing Indic text

You do not need to do anything to enable viewing of Indic text as long as you have installed a suitable font. The Indic text will be displayed by Safari or most other Cocoa applications, which fully support rearrangement and substitution for AAT-based fonts, and it will be displayed by Firefox after 4.0 which fully supports rearrangement and substitution for OpenType-based fonts by using HarfBuzz. Opera also provides some support, although considerable bugs remain as of version 11.01 (though Opera at least renders the glyphs).

Carbon applications such as Microsoft Word and Adobe Photoshop do not generally support Indic script.

Inputting Indic text

Specific keyboard layouts can be enabled in System Preferences, in the International pane. Switching among enabled keyboard layouts is done through the input menu in the upper right corner of the screen. The input menu appears as an icon indicating the current input method or keyboard layout — often a flag identified with the country, language, or script. Specific instructions are available from the "Help" menu (search for "Writing text in other languages").

Mac OS 10.4 system software comes with two installable Keyboard input options for Tamil: Murasu Anjal and Tamilnet 99. One needs to do the following steps to activate them:

i) Open "international" located within System Preferences and select "language". Select the "edit list", select "Tamil" from the list of languages shown and click OK.

ii) Select "input menu" to see a list of keyboard options available. Select "Anjal" and "Tamilnet99" keyboards under Murasu Anjal Tamil and Click OK.

iii) Anjal and Tamilnet99 keyboard icons appear immediately in the list of keyboards to select under the country flag in the top menu bar.

An alternative way to activate the keyboard(s) for Devanagari (Hindi etc.):

i) Open "International" located within System Preferences and select the "Input Menu" tab. (ii) Check the option for "Devanagari" and/or "Devanagari - QWERTY". (iii) Check the "Show input menu in menu bar" option at the bottom of the "International" panel. Close the panel, and the new keyboard(s) should be available for selection when you click on the menu bar icon (upper right corner).

SIL distributes a freeware Ukelele that allows anyone to design their own input keyboard for macOS. For Telugu input method using ukelele two types of keyboard layouts PraSankar has been developed by navataramgam team to encourage their readers to post comments in Telugu.

Linux

GNOME

Supports: Bengali[disambiguation needed], Devanagari, Gujarati, Gurmukhi, Kannada, Malayalam, Oriya, Tamil, Telugu, Tibetan

Viewing Indic text

You do not need to do anything to enable viewing of Indic text in GNOME 2.8 or later. Older versions may have support for some, but not all Indic scripts. Ensure you have appropriate Unicode fonts for each script you wish to view or edit.

Some web browsers may require you to enable Pango rendering to view Indic text properly.

For instance, to support Kannada display, the following is sufficient:
sudo apt-get install language-pack-kn language-support-kn language-pack-gnome-kn ttf-kannada-fonts
Similarly, to support Tamil display, the following is sufficient:
sudo apt-get install language-pack-ta language-support-ta language-pack-gnome-ta ttf-tamil-fonts
And to support Telugu display, the following is sufficient:
sudo apt-get install language-pack-te language-support-te language-pack-gnome-te ttf-telugu-fonts
  • For SUSE 10.1 you have to add the MOZ_ENABLE_PANGO=1 to your .profile to make the effect permanent.
    1. Go to your home directory, then edit the .profile file -it is a hidden file.
    2. Scroll down to the last line of the file and add: export MOZ_ENABLE_PANGO=1
    3. Save the .profile file. Restart for the effect to take place

Inputting Indic text

Using SCIM

Another option is to use SCIM. To enable it,

For more check (on Fedora) http://www.ruturaj.net/fedora-6-hindi-support-scim on Fedora, or (on Debian/Ubuntu) http://dev.sampada.net/Baraha_like_Input_on_Linux

KDE

Supports: Bengali[disambiguation needed], Devanagari, Gujarati, Gurmukhi, Kannada, Malayalam, Oriya, Tamil, Telugu.

Viewing Indic text

You do not need to do anything to enable viewing of Indic text. Ensure you have appropriate Unicode fonts for each script you wish to view or edit.

Inputting Indic text

Distribution-specific advice

Debian (and derivatives like Ubuntu)

Supports: Bengali[disambiguation needed], Devanagari, Gujarati, Gurmukhi (including the variants for Punjabi), Kannada, Malayalam, Oriya, Tamil, Telugu, Tibetan.

Viewing Indic text

Enter

sudo apt-get install fonts-indic
Restarting X Server in Debian

1. Go to a Virtual Terminal, say Ctrl+Alt+F1 (anything from F1 to F6). You will see a console. Login with your user credentials. 2. Then enter the following commands as root or sudo

service kdm|gdm3|xdm|lightdm force-reload

The package name for the TrueType font of Thai is fonts-thai-tlwg

For viewing Tibetan script

Enter as root:

apt-get install fonts-dzongkha

For Mozilla and Firefox, see the comments above under "gnome". Rendering should work correctly "out of the box" as of Debian-4.0 (etch).

Inputting Indic text

Smart_Common_Input_Method supports text input in Indic languages including phonetic layout. SCIM should be working by default in recent distributions. More instructions on using and configuring SCIM can be found on help.ubuntu.com [1]

Fedora

Supports: Bengali[disambiguation needed], Devanagari, Gujarati, Gurmukhi (including the variants for Punjabi), Kannada, Malayalam, Oriya, Tamil, Telugu among others.

Installing Indic fonts

For example, to install Kannada fonts, Simply enter as root on the console and type in the command:

yum install fonts-Kannada

This will download the Kannada fonts from the repositories and install it.

Similarly, for Hindi, say, enter as root on the console and type in the command:

yum install fonts-Hindi
Keyboard support

Start the Add/Remove software applet. For example, in KDE, say, navigate to System and then Add/Remove software. In the applet window, select Languages on the list box to your left hand side. In the right hand side list box, select the Indian languages of interest to you.

For example, to have Kannada key board support, check the box for Kannada Support. Similarly, for Hindi support, say, check the box for Hindi Support.

It has been observed that for Kannada, Fedora not only puts in Kannada keyboard support, but also provides transliteration support and also the keyboard support for KGP (Kannada Ganaka Parishad) keyboards. With this feature, users can directly type in Kannada words in Roman script to be transliterated to Kannada text in the application of your choice. For example, into your browser, text editor, document editor, email client etc. Users can also use native Kannada keyboards, KGP based or otherwise to type in Kannada texts directly.

Arch Linux

Supports: Bengali (including the variants for Assamese[disambiguation needed]), Gujarati, Gurmukhi (including variants for Punjabi), Devanagari (for Hindi and Sanskrit), Kannada, Malayalam, Marathi, Odia, Tamil, Telugu.

To install Indic fonts:

pacman -S ttf-indic-otf

To enter Indic text in GNOME/KDE, follow the instructions in the respective sections above.

Gentoo

Supports: Assamese, Bengali, Gujarati, Hindi, Kannada, Malayalam, Marathi, Oriya, Punjabi, Tamil, Telugu,

Installing Indic fonts
emerge lohit-fonts

Note: The lohit-fonts package was earlier named media-fonts/fonts-indic.


Installing Tibetan fonts

The fonts above do not include Tibetan scripts used in Wikipedia, additional package needs to be emerged for those:

emerge Tibetan-machine-font
Inputting Indic text
emerge -av scim-tables scim-m17n

Study the USE flags and the LINGUAS flags and set them accordingly depending on your desktop environment and language support needed. The following needs to be set whenever you login (append it to your .xinitrc or .xsession).

export XMODIFIERS=@im=SCIM    #case matters for this variable!
export GTK_IM_MODULE=scim
export QT_IM_MODULE=scim

Mozilla apps and precompiled software such as acroread might not play well with scim (C++). In such cases, make use of scim-bridge (C - avoiding C++ ABI issues) [2].

emerge scim-bridge

and startup Firefox as:

% GTK_IM_MODULE=scim-bridge Firefox

You might have to start the scim daemon manually. (Add it your session's startup)

scim -d

SCIM is a unified frontend for currently available input method libraries.

Slacko Puppy Linux

Slacko PPM (Puppy Package Manager) will install packages from the Slackware Repository, including the indic fonts package . If the package lists are up to date, and PPM is set to show the Slackware repository, searching for the word "indic" in PPM will show the package to click on if PPM is set to show the Slackware repository (There is no package for indic fonts in the Puppy Slacko repository .).

Puppy Package Manager showing indic fonts package from Slackware 14.0 is already installed on Slacko Puppy Linux

Slackware

Slackware uses slapt-get instead of apt-get , and it is used the same way apt-get is used in Debian based systems . By following the Debian instructions above for using apt-get, one should be able to figure out how to install indic fonts with slapt-get . (i.e. Just do the same thing except add the letters "sl" at the beginning .)

FreeBSD

Supports: Assamese, Bengali, Gujarati, Hindi, Kannada, Malayalam, Marathi, Oriya, Punjabi, Tamil, Telugu.

Installing Indic fonts

cd /usr/ports/x11-fonts/fonts-indic && make install clean

The binary package of Firefox (when you do pkg_add -r Firefox) might give the same problems as in Gentoo's bin package (needs confirmation)

cd /usr/ports/x11-fonts/fonts-te && make install clean

The above port is for Telugu Pothana2000 Fonts.

Inputting Indic text

See Gentoo's section above.

NetBSD, DragonFlyBSD, pkgsrc

Similar to FreeBSD

cd /usr/pkgsrc/fonts/lohit-fonts && make install clean

Unicode OpenType fonts

This section lists OpenType fonts, supported by Microsoft Windows and most Linux distributions. For AAT fonts (required for the Apple Macintosh), see the macOS section above.

If you have followed the instructions for your computer system as mentioned above and you still cannot view Indic text properly, you may need to install a Unicode font:

The governmental Department of Information Technology (India) has provided Unicode Indic fonts for four of the Indic scripts used in India (several versions for Devanagari, one version for each of Kannada, Malayalam and Tamil).

WAZU JAPAN's Gallery of Unicode Fonts is an excellent resource for all Indic scripts.

References

External links

Other information

Fonts

Other input methods

Online transliteration/input

Browser plugins

Installable software

Cross-platform
Windows-only