Text Expansion Buffer i18n-001
Design UI to accommodate 30-40% longer text in German/Finnish translations. Fixed-width containers will truncate or break with translated strings.
10 patterns in this category — each with its illustration, what it is, and the fields that matter when you build or review one. Part of the UX pattern catalogue; the raw, agent-readable version is ux-pattern-catalogue/i18n-patterns.json.
Design UI to accommodate 30-40% longer text in German/Finnish translations. Fixed-width containers will truncate or break with translated strings.
Use CLDR plural categories, not simple if/else. Different languages have vastly different plural rules — English has 2 forms, Arabic has 6, Japanese has 0 distinct forms.
Use one "Full name" field instead of splitting into first/last name. Name structures vary wildly across cultures — mononymous names, patronymics, multi-part family names, and name order all break the first/last assumption.
Accept flexible phone input, store in E.164 format, and display in locale-appropriate format. International phone numbers have wildly different lengths, groupings, and prefix rules.
Render address fields dynamically based on the selected country. Address formats vary dramatically — field names, order, required fields, and postal code formats all change by country.
Use Intl.NumberFormat for all displayed numbers. Thousands separators and decimal marks vary by locale and mixing them up causes data entry errors or misreading.
Use Intl.DateTimeFormat for all displayed dates. The ambiguity of numeric date formats causes real-world confusion — 03/05/2026 means March 5 in the US but May 3 in most of Europe.
Use Intl.NumberFormat with style: "currency" for all monetary values. Symbol position, spacing, decimal rules, and symbol itself all vary by locale.
Use CSS logical properties and dir="rtl" for Arabic, Hebrew, and Farsi layouts. Physical CSS properties create broken layouts when content direction is reversed.
Provide a visible language/locale switcher that persists the user's choice across navigation. The switcher should be easy to find and respect browser language preferences for the initial selection.