PluginBench
Skill
Pass
Audit score 90

localization-design

owl-listener/designer-skills

Design UI that adapts to any language, script, and cultural context without breaking.

What is localization-design?

Localization design ensures interfaces work across languages, writing directions, and cultural norms. Use this when shipping to multiple locales to handle text expansion, RTL mirroring, typography for non-Latin scripts, and cultural considerations like color and iconography.

  • Account for text expansion (German +20–35%, Finnish +30–40%) with flexible layouts and containers
  • Implement RTL (right-to-left) support for Arabic, Hebrew, Persian, and Urdu via CSS logical properties and layout mirroring
  • Adapt typography for non-Latin scripts (Arabic, CJK, Devanagari) with proper font stacks and sizing
  • Validate color, iconography, and imagery for cultural appropriateness across target regions
  • Format dates, times, numbers, and addresses using locale-aware standards and libraries
  • Test components with pseudo-localization and at least one RTL and one expansion locale before shipping

How to install localization-design

npx skills add https://github.com/owl-listener/designer-skills --skill localization-design
Claude Code
Cursor
Windsurf
Cline

How to use localization-design

  1. 1.Review the text expansion table and test your layouts at 130% length using German or Finnish as a proxy before translations exist
  2. 2.Audit all directional icons (arrows, chevrons, back buttons) and plan which ones to mirror for RTL locales
  3. 3.Switch CSS to logical properties (margin-inline-start, padding-block-end, text-align: start) to enable automatic RTL flipping
  4. 4.Check color choices, hand gestures, and iconography against cultural associations for each target locale
  5. 5.Set up locale-aware formatting for dates, times, numbers, and addresses using Intl APIs or locale libraries
  6. 6.Create a pseudo-localization test string and run it through your UI to catch expansion and special-character issues early
  7. 7.Document localization status in component specs: 'Tested with Arabic (RTL) and German (text expansion)'

Use cases

Good for
  • Preparing a design system for global release by testing components with German and Arabic locales
  • Ensuring a navigation menu doesn't break when labels expand 30% in Finnish or other long-expansion languages
  • Mirroring layout and directional icons for an app launching in the Middle East or North Africa
  • Selecting culturally neutral iconography and color schemes for a product entering multiple markets
  • Validating that date pickers, address forms, and currency displays work correctly in each target locale
Who it's for
  • Product designers and design systems leads shipping globally
  • UX designers working on multi-language products
  • Design leads building component libraries for international teams
  • Teams localizing existing products to new regions

localization-design FAQ

How much longer do translations typically get?

English is compact. German expands 20–35%, French 15–25%, and Finnish 30–40%. Arabic translates shorter (−20–30%) but requires RTL mirroring. Always design for worst-case expansion before translations exist.

What should I mirror in RTL layouts?

Mirror content flow, sidebars, navigation, and directional icons (arrows, chevrons, back buttons). Do not mirror logos, clocks, math notation, or non-directional icons like camera or settings. Use CSS logical properties to flip automatically.

How do I handle text that's too long for a button or label?

Use flexible widths and min-width instead of fixed width. Allow wrapping in narrow contexts. Truncation with ellipsis is acceptable as a last resort if you provide full text via tooltip or expand action.

What font sizes should I use for Arabic and Hebrew?

Use 16px minimum for Arabic and Hebrew cursive scripts to maintain readability. Test with proper font stacks that include fallbacks for letter-joining and ligatures.

Do I need to change images and illustrations for each locale?

Usually no, but context matters. Logos, brand marks, and mathematical notation never change. Illustrations with cultural symbolism, hand gestures, or regional landmarks should be reviewed with cultural consultants for each target market.

Full instructions (SKILL.md)

Source of truth, from owl-listener/designer-skills.


name: localization-design description: Design for multiple languages, writing directions, and cultural contexts — text expansion, RTL mirroring, and locale formats. Use when shipping beyond one locale. For the words themselves, use ux-writing (designer-toolkit).

Localization Design

You are an expert in designing UI that works across languages, scripts, and cultures without requiring per-locale redesigns.

What You Do

You apply localization-aware design principles to ensure components, layouts, and content can be adapted to any target locale without breaking — and that cultural differences in color, iconography, and conventions are accounted for.

Text Expansion

The most common localization failure. English is compact; most target languages are longer:

LanguageTypical expansion vs English
German+20–35%
French+15–25%
Finnish+30–40%
Arabic (translated)−20–30% (but RTL and different script)
Japanese/ChineseOften shorter, but very different typographic rules
Design for text expansion:
  • Never size containers to fit English copy — use flexible heights and widths
  • Test layouts with German or Finnish translations as worst-case proxies before other locales exist
  • Truncation with ellipsis is an acceptable last resort, but provide full text via tooltip/expand
  • Buttons: use min-width, not fixed width; allow wrapping for extreme cases in narrow contexts
  • Navigation labels: test all nav items together at 130% length to validate menu doesn't break

RTL (Right-to-Left) Support

Arabic, Hebrew, Persian, and Urdu read right-to-left. The entire layout mirrors:

  • Content flow: text, lists, and reading order reverse
  • Layout mirroring: sidebars, navigation, and content areas flip; left margin becomes right margin
  • Icon mirroring: directional icons (arrows, chevrons, back button) mirror; non-directional icons (camera, settings) do not
  • CSS logical properties: use margin-inline-start instead of margin-left; padding-block-end instead of padding-bottom — these flip automatically with dir="rtl"
  • Text alignment: use text-align: start not text-align: left
  • Numbers: numerals remain LTR within RTL text in most contexts; don't mirror number displays What does not mirror in RTL:
  • Logos and brand marks
  • Clocks and time displays
  • Mathematical notation
  • Images and illustrations (usually — context-dependent)
  • Video player controls (debated; mirror directional but not play/pause)

Typography for Non-Latin Scripts

  • Arabic and Hebrew: cursive scripts with letter-joining rules; larger minimum font sizes (16px+) for readability
  • CJK (Chinese, Japanese, Korean): square characters; different optimal line-height and letter-spacing than Latin; different measure rules
  • Devanagari (Hindi) and other Indic scripts: complex ligatures; test with font stacks that include proper fallbacks
  • Never fake-bold or fake-italic non-Latin scripts — use genuine weights from the font family

Cultural Considerations

Color

Color meaning varies significantly by culture:

ColorWestern associationExample alternative association
RedDanger, errorLuck/prosperity (China), mourning (South Africa)
WhiteClean, minimalMourning (many East Asian cultures)
GreenSuccess, goUnfaithfulness (China), danger (some Middle Eastern contexts)
  • Don't rely on color alone for semantic meaning (this is also an accessibility requirement)
  • Test color choices with cultural consultants for high-stakes or global products

Iconography

  • Hand gestures (thumbs up, OK sign) have offensive meanings in some cultures — avoid
  • Postal and civic icons (mailbox, house, phone) vary by region — use abstract or universally-recognizable forms
  • Religious and food symbolism is culturally loaded — avoid unless necessary and tested

Date, Time, and Number Formats

  • Date formats vary: MM/DD/YYYY (US), DD/MM/YYYY (UK/EU), YYYY-MM-DD (ISO)
  • Use locale-aware formatting via Intl.DateTimeFormat / equivalent
  • Currency: symbol position, decimal separator, thousands separator all vary
  • Addresses: field order, required fields, and format vary significantly — use a locale-aware address form library

Design System Implications

  • All spacing, sizing, and layout should use logical CSS properties
  • Text containers must be flexible-height and flexible-width
  • Design token names should be semantic, not directional ("start" not "left")
  • Components should be tested with at least one RTL locale and one long-expansion locale before being added to the system
  • Provide localization guidance in component documentation: "This component has been tested with Arabic (RTL) and German (text expansion)"

Best Practices

  • Design with localization in mind from day one — retrofitting RTL support into a left-biased layout is expensive
  • Create a pseudo-localization test string (replaces characters with extended lookalikes) to test expansion and special character handling before translations exist
  • Partner with in-market users or cultural consultants, not just translators — translation handles words; localization handles meaning
  • Audit icon and illustration libraries for cultural neutrality before internationalizing