Chinese, Japanese & Korean
Composer-based CJK input with a candidate bar and on-device learning.
Chinese and Japanese aren’t typed directly: you type a reading (pinyin, bopomofo, a radical code, romaji) and pick the character it means from a candidate bar. Korean is different: Hangul jamo assemble into syllable blocks on their own, so it types and suggests like any other language. This page covers both.
Two different input flows
Section titled “Two different input flows”Conversion input methods (Pinyin, T9 Pinyin, Zhuyin, Cangjie, Cangjie Quick, Stroke for Chinese; Jyutping for Cantonese; Romaji, Flick, and Kana JIS for Japanese) hold what you type in a composing buffer and replace the entire suggestion strip with ranked character/word candidates. Nothing commits until you pick a candidate, press space, or otherwise flush the buffer.
Korean types the other way. HangulComposer composes jamo directly into syllable blocks (ㄱ + ㅏ + ㄴ → 간) with no reading step and no candidate list. There’s nothing to convert. Korean typing gets the ordinary word-suggestion and autocorrect strip instead, backed by a real downloadable dictionary (see Downloadable dictionaries). If you’ve used a Chinese or Japanese IME before, don’t expect Korean to work the same way: it’s a direct phonetic keyboard, not a conversion one.
Chinese input schemes
Section titled “Chinese input schemes”Enable Chinese from the language catalogue and you get six layouts, switchable per your typing style:
| Layout | Reading unit | Buffer commits |
|---|---|---|
| Pinyin | Romanized syllables (ni, hao) | Prefix: a multi-syllable buffer offers the whole phrase plus its leading syllables |
| T9 Pinyin | Same syllables on a 9-key/T9 grid (ABC/DEF/GHI…) | Prefix |
| Zhuyin (Bopomofo) | ㄅㄆㄇㄈ… symbols, with four dedicated tone-mark keys (ˇˋˊ˙) | Prefix |
| Cangjie (倉頡) | Up to five radical keys, a–y, each printed as its radical glyph | Whole buffer: one code run is one character |
| Cangjie Quick (速成) | Just the first and last radical of a character | Whole buffer |
| Stroke (笔画) | Five stroke-class keys (一丨丿丶乙) plus a * wildcard for an uncertain stroke | Whole buffer |
Pinyin, T9 Pinyin, and Zhuyin are all prefix-commit: type nihao and the strip offers 你好 first, then leading-syllable candidates like 你 alone: tapping one only consumes the part of the buffer it covers and re-converts the rest, so you don’t have to clear the buffer between characters. Cangjie, Cangjie Quick, and Stroke are the opposite: shape and stroke codes map to exactly one character each, so a commit always consumes everything you’ve typed.
Zhuyin and T9 Pinyin don’t need their own dictionary; they reuse the Pinyin pack and translate each segmented syllable to its pinyin spelling. Cangjie and Cangjie Quick share one radical-code table. Stroke and Jyutping (below) each have their own pack.
Cantonese: Jyutping
Section titled “Cantonese: Jyutping”Cantonese is a separate language entry (not a Chinese sub-option) with one layout: standard QWERTY plus a digit row for tone numbers 1–6. It’s a prefix-commit conversion scheme like Pinyin, with its own 163k-entry Jyutping→Hanzi dictionary.
Double Pinyin
Section titled “Double Pinyin”For Pinyin typists who want fewer keystrokes, Double Pinyin encodes every syllable as exactly two keys (one for the initial, one for the final), which the composer expands to full Pinyin before segmenting as usual. Five real schemes are available: Microsoft, Sogou (identical key table to Microsoft), Xiaohe (小鹤), Ziranma, and Pinyin++. Turning one on replaces the syllable-typing rules on the same Pinyin layout; it isn’t a separate keyboard.
Fuzzy Pinyin and lazy Jyutping
Section titled “Fuzzy Pinyin and lazy Jyutping”Two independent toggles relax reading matching for imprecise typing:
- Fuzzy Pinyin treats commonly-confused sounds as equivalent (zh↔z, ch↔c, sh↔s, n↔l, an↔ang, in↔ing, and similar pairs), so a syllable typed loosely still finds its characters.
- Lazy pronunciation (懶音), Cantonese-only, matches the sound mergers common in Hong Kong speech: n↔l, an initial ng- that can drop entirely (我 ngo5 → o5), gw→g before -o, and the -ng/-n and -k/-t final pairs.
Both are off by default and only change ranking, not what you can type; a precisely-typed reading still works exactly as before.
Traditional characters and regional wording
Section titled “Traditional characters and regional wording”A single toggle switches candidate output from Simplified to Traditional Han, applied character-by-character as each composer builds its candidate list (not as a find-and-replace afterward, which would break prefix-commit matching). The mapping is genuinely one character to many possible traditional forms depending on context: the keyboard picks the more common one, so occasional mismatches (like 发 mapping to 發 in most contexts but needing 髮 in a word like hair) are a known limitation, not a bug to report.
With Traditional on, a second control appears: a region picker (Standard / Taiwan / Hong Kong) that goes beyond character shape to swap regional vocabulary: Taiwan’s 計程車 instead of the mainland’s 出租車 for “taxi,” for instance. This affects whole dictionary words, not individual characters, so it only kicks in where the candidate is a complete match in the regional phrase table.
Both the Traditional toggle and the region picker also appear on the Japanese language screen, but they have no effect there. Japanese candidates never pass through this conversion at all.
Japanese input
Section titled “Japanese input”Japanese ships three layouts, all feeding the same composer:
- Romaji — type romanized Japanese on a standard QWERTY layout; keystrokes transduce to hiragana as you type (handling doubled consonants as っ, disambiguating ん, and recognizing yōon combinations like きゃ).
- Flick — a 12-key pad with kana glyphs directly on the keys; flicking a key in a direction reaches its row-mates (あ flicks left/up/right/down to い/う/え/お).
- Kana JIS — each key emits a kana glyph directly, matching the physical JIS Japanese keyboard layout.
All three read the same kana or romaji into JapaneseComposer, which converts kana readings to kanji/word candidates using a Mozc-derived dictionary. If nothing in the dictionary matches (or before you’ve downloaded the pack at all), the reading still commits as plain hiragana, katakana, or half-width katakana, so every Japanese layout works as a bare kana keyboard with zero setup.
The candidate bar
Section titled “The candidate bar”Whenever a conversion composer has a non-empty buffer, the usual word-suggestion strip is replaced by a horizontally-scrolling row of ranked candidates, sized to their text and packed from the left rather than evenly spaced or centered: the best candidate stays in a consistent spot instead of jumping around as the list length changes. A chevron at the end (outside the scrolling area, so it never scrolls off) opens an expanded view: a wrapping grid that covers the key rows while it’s open, the same way Sogou, Baidu, and QQ handle it: at this point you’re choosing a character, not typing one. There’s no page-by-page paging in either view, just scrolling.
Tapping a candidate (in the strip or the grid) resolves by its position in the ranked list, not by its text, because the same word can legitimately appear twice at different reading lengths (a Japanese reading might list 行 for both い and いき). Only the part of your typed buffer that candidate actually covers gets deleted; the rest re-converts. Pressing space is the fast path: it commits the top-ranked candidate for the leading syllable(s) and moves on, so repeated space presses walk a whole sentence through without ever opening the strip. No path here adds a trailing space, since Chinese and Japanese don’t put spaces between words. Any other commit (punctuation, Enter, moving the cursor, switching layout, or leaving the field) instead flushes the whole buffer by repeatedly taking the top candidate until nothing’s left, so you’re never stuck holding an unconverted reading.
If a reading has no dictionary match at all, it always falls back to committing what you typed as-is (raw pinyin letters, kana, or a stroke code) rather than trapping you in an empty buffer.
Learning from your picks
Section titled “Learning from your picks”Every time you tap a candidate other than the top-ranked one, the keyboard remembers it. The next time the same reading comes up, your previously-chosen candidates move to the front (most-picked first) while everything else keeps the order the dictionary gave it. It’s a reordering of your own history, not a blended relevance score, so a candidate you’ve never picked never gets promoted just because it’s common in general.
Learning is scoped separately per reading system (pinyin, T9 Pinyin, zhuyin, jyutping, and Japanese kana readings each keep their own history), because the same word can be spelled several different ways depending on which Chinese scheme you’re using. Cangjie, Cangjie Quick, and Stroke don’t participate in learning at all: their radical and stroke codes map deterministically to one character, so there’s no ambiguity to learn from.
This history is governed by the same setting as ordinary word learning:
WM KeyboardPrivacyOn-device learningLearn from typingTurning it off, using incognito mode, or typing into a field that opts out of learning all stop new picks from being recorded, exactly as they do for the regular word suggestion history.
Options
Section titled “Options”Opening a Chinese, Cantonese, or Japanese entry from the Languages screen shows a dedicated options group (this group doesn’t appear for Korean, since there’s no conversion dictionary to configure):
| Setting | Default | Applies to |
|---|---|---|
| Conversion dictionary download | Not downloaded | Chinese, Cantonese, Japanese (see below) |
| Traditional characters | Off | Shown for Chinese, Cantonese, and Japanese; only has an effect on Chinese and Cantonese |
| Regional wording (Standard / Taiwan / Hong Kong) | Standard | Same, only shown once Traditional is on |
| Lazy pronunciation (懶音) | Off | Cantonese only |
| Fuzzy Pinyin | Off | Chinese only |
| Double Pinyin scheme | Off (full Pinyin) | Chinese only |
To clear everything the keyboard has learned from your CJK picks:
WM KeyboardPrivacyYour dataClear learned wordsThis also clears your regular typed-word history and emoji usage in the same action: CJK picks live in their own file, so a future “clear learned words” tap intentionally names it explicitly rather than leaving it behind by accident.
Conversion dictionaries are downloads, not bundled data
Section titled “Conversion dictionaries are downloads, not bundled data”None of the conversion dictionaries ship in the app. Until you download the matching pack, a conversion layout still composes and shows the buffer, but the candidate list stays empty.
| Language | Pack | Approx. size | Coverage |
|---|---|---|---|
| Chinese | Pinyin (also covers Zhuyin & T9 Pinyin) | ~2.5 MB | ~120k entries, CC-CEDICT-derived |
| Chinese | Stroke | ~450 KB | Stroke-order table |
| Chinese | Cangjie (also covers Cangjie Quick) | ~350 KB | ~29k characters |
| Cantonese | Jyutping | ~3.4 MB | ~163k entries |
| Japanese | Kana → kanji | ~42 MB | ~1.08M entries, Mozc-derived |
Each download is checksum-verified before it’s used and, once on disk, needs no further network access. See Network policy for what the keyboard contacts and when, and Downloadable dictionaries for how the separate word-list system (which does have entries for plain Japanese and Korean word suggestions, just not for the conversion dictionaries here) works.
Details & edge cases
Section titled “Details & edge cases”- A Japanese word-list download exists but does nothing for typing. Japanese has its own entry in the ordinary downloadable-dictionary catalog (see Downloadable dictionaries), but because Japanese is a conversion input method, the regular suggestion engine never runs for it. That download currently has no effect on any of the three Japanese layouts. Korean’s word list, by contrast, is fully active, since Korean isn’t a conversion method.
- The Traditional/region toggles show on the Japanese screen but are inert there.
JapaneseComposernever applies the Han-variant conversion, so leave those settings alone if you’re a Japanese-only typist. They were placed above the Chinese-specific options rather than gated per-language, but they simply have nothing to act on for Japanese. - Cangjie Quick needs the same dictionary as full Cangjie. With only one key typed, Quick behaves like an ordinary prefix search (the “last” radical isn’t known yet); the second key turns it into a first-and-last shape match, typically narrowing to a handful of candidates.
- The candidate depth differs by scheme. Pinyin, Zhuyin, T9 Pinyin, Jyutping, and Japanese all rank up to 100 deep in the expanded grid; Cangjie and Stroke, which look candidates up from a fixed code table rather than a ranked lattice, cap at 24.
- There’s no “lock” or “pin” on a candidate. Once you commit one, it only affects future ranking through the learning history above. There’s no separate pinning feature to hold a candidate in place.
