The problem
StemDeck ships in nine languages and Korean is not one of them. A Korean user
gets the English table for all 474 keys, because t() falls back to English for
anything missing.
Korea has one of the larger populations of the people this app is for: the
bedroom producers, cover artists and practising musicians who want a backing
track without the vocal, or the vocal without the track. There is no reason the
app should speak to them in a second language.
What it takes
A tenth entry in LANGUAGES, a tenth table, and the code in TRANSLATIONS.
Nothing about the machinery needs to change; it was built to take another
language.
What is easy to get wrong
The plural shape. Korean does not inflect nouns for number. It belongs with
ja, zhHans and id, which define only .other for every plural family, not
with en and de (.one / .other) or pl (.one / .few / .many).
Copying the English key set would produce a table full of .one keys the plural
resolver never reads, and the coverage check compares plural families rather
than raw keys precisely so this does not look like a gap.
Register. This is a tool someone uses while playing an instrument, not an
enterprise console. The existing tables are plain and direct, and the Korean
should be too: 해요체 rather than the stiff 합니다체 for interface text, and
ordinary words where an English loanword would be pretentious. But the loanwords
that are genuinely standard in Korean audio work, 보컬, 드럼, 베이스, 마스터,
루프, should stay loanwords, because translating them would read as odd to
anyone who has opened a DAW.
Placeholders. {placeholders} carry word order. Korean is verb-final, so
several strings need real reordering rather than substitution in place, and the
placeholder names have to survive it exactly.
Constraints
- Every key in
en must exist in the new table, or that string silently ships in
English with nothing failing.
- The
plural() resolver reads .other for languages without number agreement.
- Strings with HTML in them, like the reset confirmation, must keep their tags.
The problem
StemDeck ships in nine languages and Korean is not one of them. A Korean user
gets the English table for all 474 keys, because
t()falls back to English foranything missing.
Korea has one of the larger populations of the people this app is for: the
bedroom producers, cover artists and practising musicians who want a backing
track without the vocal, or the vocal without the track. There is no reason the
app should speak to them in a second language.
What it takes
A tenth entry in
LANGUAGES, a tenth table, and the code inTRANSLATIONS.Nothing about the machinery needs to change; it was built to take another
language.
What is easy to get wrong
The plural shape. Korean does not inflect nouns for number. It belongs with
ja,zhHansandid, which define only.otherfor every plural family, notwith
enandde(.one/.other) orpl(.one/.few/.many).Copying the English key set would produce a table full of
.onekeys the pluralresolver never reads, and the coverage check compares plural families rather
than raw keys precisely so this does not look like a gap.
Register. This is a tool someone uses while playing an instrument, not an
enterprise console. The existing tables are plain and direct, and the Korean
should be too: 해요체 rather than the stiff 합니다체 for interface text, and
ordinary words where an English loanword would be pretentious. But the loanwords
that are genuinely standard in Korean audio work, 보컬, 드럼, 베이스, 마스터,
루프, should stay loanwords, because translating them would read as odd to
anyone who has opened a DAW.
Placeholders.
{placeholders}carry word order. Korean is verb-final, soseveral strings need real reordering rather than substitution in place, and the
placeholder names have to survive it exactly.
Constraints
enmust exist in the new table, or that string silently ships inEnglish with nothing failing.
plural()resolver reads.otherfor languages without number agreement.