Instructions for setting up Puppy to allow typing in non-latin character sets, such as Chinese, Japanese, Korean, Thai, Arabic, etc. This is different from a localization because the underlying system is still in English or other Western language.

You might want to do this if:

you share a computer with friends or family members who speak different languages from you.

you are learning a new language or languages, and don't yet feel knowledgeable enough to handle menus in the new language(s).

you are running an internet café, or a multi-lingual workplace. You may want have several languages available to users, and still have the underlying system in the local language for support purposes.

In June 2008, Puppy celebrated its 5th Birthday. It was born as an (Australian) English speaker. For the first 2 years, it remained that way. Then it slowly learned to speak a few more languages. For Puppy, learning new languages was not that easy, initially.

First, it had to allow the Locale of a new language to get integrated into itself. Then, it had to allow specific key input methods to work properly with the many applications it had. The many keyboard layouts available out there had to be integrated also. Its Window Manager and the File Manager had to be translated. It had to become Unicode compatible. And, finally, its own Genetic Code - namely its Scripts - needed translation.

The need to create a German language Puppy pushed Mark Ulrich to explore and work on topics like 1) Windows Managers and Filer Systems, 2) Language Locales.. The original Puppy remained contented with Joe's Windows Manager and ROX Filer System. Mark's exploration resulted in introducing first KDE Desktop Environment to Puppy. ICE Windows Manager
was introduced simultaneously and was adopted by many Puplet develepors.

This initiative induced many to search for newer Windows Managers other than the default JWM of Puppy Linux. Xfce, Enlightenment, Fluxbox, Gnome Desktop were worked upon and adopted by these Pioneers for use in Puppy subsequently. Developers and Users of other Linux distros have translated many of these WM and Filer Systems into most other languages. However, to use these translated WM and Filer Systems readily, Puppy had to have working Locale Files for all these languages.

Making Non-English Locales (especially UTF based ones) work in Puppy remained a difficult problem till Puppy Version 3. When that Puppy Version was released, and was found to work easily with Slackware packages, a great rush to bring in Slack packages into Puppy ensued. The most notable package that was grabbed from Slack for Puppy was the "Locale" files that Slack was using. While the locale files from other Linux Distros refused to synchronise and work in Puppy, Mark Ulrich had found the Slack Locale files working perfectly in Puppy. Since then, one of the main impediments to have User Interface of Puppy in non-English languages- namely having working Locale files of these Languages - remains removed once and for all.

Apart from these practical achievements, the most important achievement of these two works was that they had highlighted the need to support Unicode Encoding System by Puppy.

Creation of Vietnamese Hacao Puppy highlighted this issue for the first time. After much work by Hacao, Mark Ulrich and others Vietnamese Input was made possible in Puppy. However, other language users had to struggle to adopt their language specific Input Methods for Puppy once again. (Eg: Russian, Greek)

When the work on Chinese and Japanese Puppies began, this lack was felt acutely. Nyu was the first Puppian who set out to explore Smart Common Input Method (SCIM) for its adoption into Puppy. His work and the work by YoN of Japanese Puppy brought SCIM into Puppy for the first time. However, their work was Chinese and Japanese specific, even though SCIM had the capacity to support 41 language inputs.

Appearance of non-English Puppies created a necessity where it was felt that any new application developed exclusively for Puppy Linux should contain scripts written in a way so that they could be translated into languages other than English without much pain. The leader of this thought process was Zigbert (Sigmund Berglund) of Norway. As an avid Puppy lover, he began to write in early 2007, the now popular 'P' series of softwares (like PFind and PBurn) exclusively for Puppy. These applications were translated immediately into French, German, Russian and Japanese. These applications supported Unicode.

Clarion call for rewriting the mono-lingual Scripts of Puppy Linux to accept Multi-Language translation was sounded by Nathan F, Mark Ulrich and the Russian Puppy team in 2007. Nathan F has given an open call to all Puppians for taking up this task. Mark has proposed more than once, how this could be done. The Russian Puppy team had succeeded in translating the Puppy's Boot English Scripts into Russian. However, much remains to be done in this front.

Works on Localisation and non-English Input Methods from 2006 to early 2008 has brought in much into Puppy. However, on the Input Methods side still much needed to be done. For example, there was no easy way to input say Indic, Amharic, Arabic and many other languages in Puppy even as late as March 2008.

Besides this, no concerted effort had been taken till March 2008 to check whether all the applications used in Puppy would be able to receive non-Latin inputs.

Work on finding an input method that could be used by most Language users started in April 2008. Smart Common Input Method (SCIM) was found to fit this requirement. Compiling it for Puppy began. GTK version of SCIM was compiled for Puppy 2, 3 and 4 easily. However, compiling it with QT-3 and QT-4 toolkits was immensely difficult. David Muggins worked relentlessly over a month and solved this issue forthright. Compiling QT-3 input module for Puppy 3 remained an unsolved issue solved in early July 2008.

Listing the applications that are basically necessary for Puppy began in May 2008. Swarup had proposed that a Full Text Search application, a Text Editor with continuous spell checking function and a light weight Database application must be included in the ML Puppy. RR Koothady had wanted poedit, touch typing tutor and font encoding converters to be an integral part of the ML Puppy. Apart from this, it was felt, that all the applications used in Puppy (that is, in Puppy 2, 3 and 4) should be tested with the SCIM compiled with GTK and QT toolkits.

Google Desktop Search tool was compiled and tested successfully but was not accepted by the ML Puppy team members because of its "closed" source nature. After a long search, the team settled for RECOLL text search application and it was successfully compiled and packaged for Puppy by David muggins. poedit was compiled and packaged successfully for the first time for Puppy
Extensive testing brought out some of the previously unknown and much valuable/interesting information.

Abiword 2.6.2 was found initially to render Indic fonts correctly (earlier versions had lacked this). However, on further testing it was soon found out that Abiword is unusable with SCIM for Indic languages.

Open Office was successfully tested with SCIM.

Owing to Oo's size it and the non-usability of Abiword, it was decided to give priority to "text editor + Desktop Publishing" application combination rather than to the Word Processors. This decision prompted the team to search for a Text Editor with dynamic spell check functionality. It was however found that not many text editors in Linux have this functionality. TEA and Geany were shortlisted finally.

TEA was packaged for Puppy by David muggins immediately. However its spell check tool was found to be cumbersome, so it was decided to approach the Geany Developers to include a spell checker in their editor. Enrico Trogger, the chief developer of Geany readily agreed, and started working on the spell checker. Nathan F and David muggins had packaged the test versions for Puppy. Nathan F has made an easily installable pet package out of the every available aspell language dictionary. Aspell and Geany put together has been found promising and fine tuning of Geany's spell checker codes is being pursued currently. Nathan F has evinced interest to compile Hunspell and Myspell Dictionaries for Puppy. These Dictionaries are used by Open Office applications.

Compiling Scribus with QT-3 and QT-4 toolkits was taken up by David muggins. The work is in progress.

Work on testing Portabase's compatibility with SCIM is in progress. Work to know whether klavaro Touch Typing tutor (compiled by David muggins) can be used for non-Latin languages is also being pursued. Work on Font encoding converters is yet to begin.

Nathan F has evinced his interest to compile SKIM for those Puppies that may prefer to use the KDE Desktop Environment. He has also promised to compile Fontforge - the only decent Font Making Tool in Linux - for Puppy.

Mark Ulrich has recently come out with a method by which the Windows Manager of Puppy can be switched from one to the other on the fly. This will be a great boon to ML Puppy.

For example,it was found that some Windows Managers work comfortably with the Unicode Encoding Standard and that they tend to render non-Latin fonts correctly. Also, Windows Managers and Desktop Environments like KDE, Gnome and Xfce have been translated fully or at least partially into most non-English languages. Having Mark's multiple WM solution means having these Desktp Environments as Squash File System (SFS) files on the hard disk drive and choosing the required DE from Mark's Multiple WM Console. So, as and when new Puppy Versions are released with their default Windows Managers (mostly JWM, ICEWM), multi-language Puppians need not worry. They can use Mark's solution and have their own preferred Desktop Environment.