Text Input
How can a keyboard with a
hundred or so keys be used to type thousands of different
Chinese characters? How do I type accent marks correctly
so I can pass Spanish class? These questions and more will
be answered on this page.
Keyboard Basics
If you (want to) write a lot of another language, you
should learn a dedicated keyboard layout for multi-lingual
input. For typing Spanish/French/German/etc. I use the US
International keyboard. Using a language like Russian or
Arabic will require learning a new keyboard layout. You
should learn the standard layouts for these languages
rather than trying to learn some "phonetic" QWERTY-like
variant, given the choice.
Chinese, Japanese, and Korean all have complicated scripts
that must incorporate an additional software level to read
in keypresses and then compose (in the case of
Korean) or select (in the case of Chinese and
Japanese) glyphs. I wrote a descriptive article
on Korean Input
Methods, which describes some specifics of typing
Korean, which makes use of its own non-Latin alphabet.
If you don't have to type that many special
characters, making use of a compose
key can be a non-intrusive way to get multilingual
text powers. On Linux, I map this key to the right Windows
key on my (full-sized) keyboard.
Platform Specific Notes
The more different scripts you make use of, the more
complicated your setup will necessarily become. If it is
not too much trouble to do, if is often easier to isolate
the contexts in which you use particular languages (e.g.
set up Korean input on one account/computer and do Arabic
only from your phone). The world can handle bilingualism,
but jumping between too many languagse will likely have
you working against your technology.
Windows
Windows has pretty good default mutli-lingual support.
Yet, in many ways it seems to be a mess, reflecting
different histories of keyboard support with different
languages.
Four Different Default Input Method Switching Keys
These are default keys on MS Windows; for some languages you
can modify them, for others you can't
-
Chinese: Shift key toggles Pinyin/Chinese and underlying QWERTY
-
Japanese: without a Japanese keyboard, Alt +
backtick toggles Japanese input and underlying QWERTY;
there are ways to toggle Katakana/Hiragana but I don't
think people do this much—they justly rely on
predictive text
-
Korean right Alt key is to toggle between
Korean/QWERTY input. The right Ctrl key does Korean
hangul to hanja (Chinese character) conversion; this
is rarely used by most people. Because the right
modifiers are used for language-related things, doing
stuff like programing and the like, you have to use
ctrl + alt on the left hand
-
Russian (and other European languages): to
switch keyboard layouts, you will have to press
Windows + Space; this is also how you switch between
Russian and other languages (such as those listed
above)
Linux
Switching between different "underlying" keyboard layouts
(e.g. English, Russian) can be done using included
software of most distributions. To enter in complex input
like Chinese/Japanese/Korean, you'll probably need to make
use of fcitx
, ibus
or some other
software package. I have not had success getthing these
packages to also work with changing an underlying keyboard
layout—everything gets complicated and my computer
crashes. So, now I only do European languages on Linux.
Windows is my borg Asian language machine 🤖
Emacs
Emacs, which can be installed on all major operating
systems, provides multilingual input out-of-the-box,
provided you have the correct fonts installed. This can be
useful for working with other languages and not changing
too many configs. Emacs also contains input methods for
doing things like typing Hànyǔ Pīnyīn (Romanized
Chinese standard) which is not easily done with default
OS's multilingual support.
Google's Noto
fonts are freely available and work well with pretty
much any language/script.
The *-prefix
input methods are similar to
using the US international keyboard (with "dead keys").
Using the
spanish-prefix
method, for instance, I can type
pi~nata
and it will give me
piñata.
Combined with a tool
like pandoc, this is a
great way to smash out assignments in a foreign language
with very little config, especially if you're already
using/familiar with emacs for other things.