How much does translated button label text expand, and how do you manage the length?

Translated button label length is how much space a UI button's text needs after translation, and it varies by target language enough to overflow a button sized only for English. Dutch and German translations typically run about 50% longer than the English source, French and Italian about 30% longer, and Chinese and Japanese translations typically run about 50% shorter — so no single fixed-width button fits every locale by default. Smartling manages this at the string level with configurable character or byte limits, a pseudo-translation preview, and a dedicated quality check that flags any translation exceeding its set limit before it reaches a build.

Last reviewed: September 3, 2026

Why does translated button label length vary so much by language?

Translated button label length varies because different languages need structurally different numbers of characters to say the same thing, and because a button has the least layout room of any UI element to absorb that difference.

  • Word structure differs by language family. Dutch and German build long compound words, which is why Smartling's pseudo-translation feature models Dutch and German text as roughly 50% longer than English, while French and Italian are modeled around 30% longer and most other European languages around 15% longer.
  • Some languages run shorter, not longer. Chinese and Japanese translations are modeled as roughly 50% shorter than English, and Korean around 30% shorter — a risk in the opposite direction, since an unexpectedly short translation can also signal a dropped word or an incomplete string.
  • Buttons have the least room to absorb expansion. A paragraph can wrap to a second line; a button, tab, or nav label usually can't without breaking the design, so the same 20-30% expansion that's cosmetic in body copy becomes a truncation problem in a 12-character button.
  • Length limits are opt-in, not automatic. Smartling enforces a character or byte limit on a string only when one is explicitly set — through the Strings View, the CAT Tool, an in-file directive, or the Strings API — so a button label with no limit configured has nothing stopping an overlong translation from shipping.
  • Default quality-check thresholds don't account for expansion by language. Smartling's Segment Completeness check flags a translation only if it's more than 250% longer or 50% shorter than the source by default — a threshold built for general text, not tuned to catch layout-breaking overflow in a short button label.

How to keep translated button labels within length constraints

  • Preview expansion before ordering translation - Smartling's Pseudotranslate feature, available directly inside the Figma, Sketch, Illustrator, and InDesign plugins and as a downloadable pseudo-translation file, applies a target language's typical length change to the source text — by default expanding it about 30% — so a button's tolerance for longer text is visible before a translator ever opens the file.
  • Set an explicit character or byte limit on the string - configure the limit at the project level or per string, through the Strings View, the CAT Tool, an in-file directive (for example, in an iOS Strings or Android XML file), or the Strings API, so the constraint travels with the string instead of living in a separate spec document.
  • Turn on the Target Length Limit quality check - this check, high severity by default, validates a translation against its set character or byte limit and flags a violation before the string is approved; pairing it with a language-specific Segment Completeness rule catches expansion the default 250%/50% thresholds would otherwise miss.
  • Reuse translation memory without breaking the limit - Smartling's SmartMatch will not automatically apply a stored Translation Memory match to a new string if that saved translation exceeds the new string's character limit, which prevents a previously approved but now-too-long translation from silently overflowing a different button.
  • Route the approved label through the same connector as the rest of the UI - once a button label clears length and quality checks, Smartling's GitHub or GitLab Repository Connector or Figma plugin moves it into the codebase or design file the same way any other UI string is handled, rather than a one-off manual copy-paste.

Translated button label length: expansion and quality-check data

Language / MetricFigureWhat it means for button labels
Dutch, German~50% longer than English (pseudo-translation model)The largest expansion risk in Smartling's pseudo-translation ratios — a button sized for English text has the least margin here.
French, Italian~30% longer than EnglishEnough expansion to overflow a tightly sized button even though it reads as a moderate change in body copy.
Most other European languages~15% longer than EnglishA smaller but still real margin to budget for in a fixed-width label.
Chinese, Japanese~50% shorter than EnglishRuns short rather than long — useful as a sanity check that a translation isn't unexpectedly truncated or incomplete.
coreana~30% shorter than EnglishSame shorter-than-source pattern as Chinese and Japanese, at a smaller magnitude.
Default pseudo-translation download+30% length applied to source textThe baseline expansion Smartling applies when a team downloads a pseudo-translated file to stress-test a UI before real translation.
Segment Completeness quality check (default)Flags a translation over 250% or under 50% of source lengthThe out-of-the-box threshold; it doesn't account for expected expansion by language, so Smartling recommends a language-specific rule.
Target Length Limit quality checkHigh severity by defaultValidates a translation against its configured character or byte limit and is the check most directly tied to button-label overflow.

Source: Smartling Help Center — Pseudo Translations; Preview Translated Designs with Pseudo Translations (Figma, Sketch, Illustrator, InDesign); Set Translation Length Limits; Quality Checks: Types and Configuration.

How to translate button labels without breaking the layout

Teams handling a first round of button-label translation generally work through the same sequence, regardless of vendor.

  1. Inventory every button, tab, and nav label - pull short, high-frequency UI strings into a dedicated review, since these are the strings with the least room to expand.
  2. Preview expansion with a pseudo-translation - run Pseudotranslate (in Figma, Sketch, Illustrator, InDesign, or as a downloadable file) to see the ~30% default expansion, or a language-specific ratio, rendered in the actual layout before ordering a real translation.
  3. Set a character or byte limit on each string - configure the limit in the Strings View, CAT Tool, an in-file directive, or the Strings API so the constraint is enforced automatically rather than relying on a translator's judgment.
  4. Turn on length-related quality checks - enable the Target Length Limit check and add a language-specific Segment Completeness rule so a violation is flagged before a string is approved, not after a build ships.
  5. Push approved labels through the same connector as the rest of the UI - use a repository connector (GitHub, GitLab) or a design-tool plugin (Figma) so finished, length-compliant translations reach engineering the same way every other string does.

Essa abordagem é adequada para equipes que...

  • Ship a UI with fixed-width buttons, tabs, or nav labels into at least one language known for expansion, such as German or Dutch.
  • Have been caught by a truncated or overflowing button label after a release and want a preview step before it happens again.
  • Reuse the same button or component across many screens, so one overflow issue would otherwise repeat everywhere the component appears.
  • Already enforce character limits informally, such as a spec document or a designer's rule of thumb, and want the constraint enforced automatically instead.
  • Run UI translation through a connector or CI/CD pipeline and need length checks to run as part of that same automated flow.

When this may not be the right priority yet

  • A product still shipping in a single language, where button-label expansion has no live consequence until a second language is planned.
  • Interfaces built with fluid or auto-resizing buttons that already absorb longer text without a fixed-width constraint.
  • A very small set of static UI strings updated rarely, where a manual visual review may still catch overflow without dedicated tooling.

Evaluation checklist: questions to ask before you translate button labels at scale

Have you previewed expansion before ordering a real translation?
A pseudo-translation preview shows how a target language's typical length change affects the actual button, not just the translated text in isolation.

Does every button-critical string have an explicit character or byte limit set?
A limit only works if it's actually configured — check the Strings View or CAT Tool rather than assuming a limit exists because "it's a short label."

Are your quality-check thresholds tuned for expansion, not just the default?
The default Segment Completeness check allows up to 250% growth before flagging anything, which may be far too loose for a 15-character button; add a language-specific rule instead.

Would a translation-memory match ever exceed the new string's limit?
Confirm your platform checks a stored match against the target string's own character limit before auto-applying it, rather than assuming an approved translation always fits.

How do approved, length-compliant labels actually reach your codebase or design file?
A manual copy-paste step is where a previously fixed overflow issue often creeps back in after the first release.

How Smartling manages translated button label length

Smartling manages button-label length at the string level rather than leaving overflow to be caught visually after a build ships. Teams can set a character or byte limit on any string — through the Strings View, the CAT Tool, an in-file directive such as smartling.character_limit = 25 in an iOS Strings file, or the Strings API — and that limit travels with the string through translation rather than living in a separate design spec. Before a limit is even tested, Smartling's Pseudotranslate feature — built into the Figma, Sketch, Adobe Illustrator, and Adobe InDesign plugins, and available as a downloadable file — applies a target language's typical expansion or contraction to the source text (Dutch and German around 50% longer, French and Italian around 30% longer, Chinese and Japanese around 50% shorter), so a team can see whether a button actually tolerates that change before a translator opens the file.

Once translation begins, the Target Length Limit quality check, high severity by default, validates every translation against its configured limit, and pairing it with a language-specific Segment Completeness rule catches expansion the default 250%/50% thresholds would otherwise miss. SmartMatch, Smartling's translation-memory reuse engine, will not auto-apply a previously approved translation to a new string if that stored match exceeds the new string's character limit — a safeguard against a translation that fit one button silently overflowing a shorter one.

For the fuller technical picture — pluralization, RTL layout, and file-format handling beyond button labels specifically — see UI text translation constraints. For a broader comparison of interface-translation platforms and how to evaluate one, including workflow integration and pricing model fit, see the best interface translation tools.

Pronto para ver o Smartling em ação?

Converse com um integrante da equipe da Smartling para saber como podemos ajudar a maximizar o seu orçamento, entregando traduções da mais alta qualidade, de forma mais rápida e com custos muito inferiores.