Skip to content

Spanish is missing from a nine-language app #468

Description

@thcp

The problem

StemDeck ships English, Polish, Japanese, Simplified Chinese, German, French, Portuguese (Brazil and Portugal) and Indonesian. It does not ship Spanish.

By speaker count that is the largest gap in the set, and it is not a close call. Anyone who works in Spanish opens a fully translated app in a language they did not pick, with no indication that the absence is an oversight rather than a decision.

Why it is not just another table

The bar here is not a string dump, and #415 already established why. Spanish runs noticeably longer than English, which is the same pressure that forced the language dropdown and device select to be widened. A translation that is correct and overflows is still a regression, and the places it would show first are the settings tabs and the mixer.

There is also vocabulary that goes wrong when translated literally rather than by someone who has stood in a studio. Two English pairs collapse into one Spanish word and have to be pulled apart deliberately:

  • track and stems both want to become "pista", across roughly 60 and 53 keys respectively
  • key and pitch both want to become "tono"

And several terms are spoken in English by Spanish-speaking musicians. Mute, Solo, Fader, Loop, Click and Stems read as jargon translated and as normal speech left alone, while full sentences around them still have to read naturally.

Constraints for a fix

  • Full key parity against the English table, verified rather than assumed. The parity script in .claude/rules/i18n.md compares plural families, not raw keys, because the per-language buckets differ on purpose.
  • Spanish has no few/many bucket. plural() only routes those for Polish, so Spanish takes one/other, the same shape as German and Portuguese.
  • Placeholders must survive. A {count} dropped in translation produces a literal brace in the UI and no error anywhere.
  • One neutral table rather than regional variants, which means avoiding vocabulary that marks it as Spain or Latin America specifically.
  • _detectDefault needs a branch or the table ships unreachable. See French never gets picked automatically, and nothing would catch the next one #467, which is the same gap for French.

Offered and drafted by @diegoarusso in #447.

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

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions