Skip to content

StemDeck does not speak Korean #501

Description

@thcp

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions