/install localization
Localization (l10n) (Deep Workflow)
Localization is engineering + content + QA—not “send strings to translators.” Plan for concatenation, plural/gender, context, and layout early to avoid expensive rework.
When to Offer This Workflow
Trigger conditions:
- New markets/languages; translation backlog
- Broken plurals, overflow, RTL layout bugs
- Date/currency errors; sort order issues
Initial offer:
Use six stages: (1) strategy & scope, (2) extraction & keys, (3) ICU & placeholders, (4) formatting & locale data, (5) layout & RTL, (6) QA & launch process. Confirm TMS (Phrase, Lokalise, etc.) and release cadence.
Stage 1: Strategy & Scope
Goal: Which locales, what ships together, quality bar.
Decisions
- Locale list vs language only; regional variants (pt-BR vs pt-PT)
- Tier: full UI vs partial; legal must-have strings
- Fallback chain:
es-MX→es→en
Exit condition: Scope document and priority locales for launch.
Stage 2: Extraction & Keys
Goal: Stable keys, developer context for translators.
Practices
- No string concatenation across translations—one message id per sentence
- Descriptions for translators: where shown, max length hint if UI constrained
- Namespaces per feature; avoid reusing ambiguous English in multiple keys
Workflow
- Freeze strings for release branches; diff notifications for late changes
Exit condition: Naming convention for keys; PR checklist for new strings.
Stage 3: ICU & Placeholders
Goal: Grammatically correct in all target languages.
Patterns
- Plural, select, ordinal rules via ICU MessageFormat (or platform equivalent)
- Variables named (
{userName}), reordered per locale rules—never positional%ssoup for user-visible text
Pitfalls
- Nested plurals; gender agreement languages—linguist review when needed
Exit condition: Lint or test that parses ICU per message.
Stage 4: Formatting & Locale Data
Goal: Numbers, dates, currency, units follow locale—not manual strings.
Practices
- Intl APIs (JS), babel / ICU (other stacks); timezone policy explicit (UTC vs user local)
- First day of week, calendars where relevant
Exit condition: Golden tests for format snapshots per locale sample.
Stage 5: Layout & RTL
Goal: UI works in long translations and RTL.
Practices
- Flexible layouts; truncate with tooltip only when necessary—German expands
- RTL: mirror icons/direction; bidirectional text in mixed content
- Vertical space for CJK line breaks when needed
Exit condition: Visual QA checklist per template; screenshots in worst-case language often de or fi for length stress.
Stage 6: QA & Launch
Goal: Linguistic + functional QA before traffic.
Process
- Pseudo-localization in CI: expand strings, accent—catches truncation early
- In-context review (on-device) when possible
- Smoke tests per locale on critical paths post-deploy
Final Review Checklist
- Locale scope and fallbacks defined
- Keys and translator context disciplined
- ICU for plurals/gender; no unsafe concatenation
- Intl formatting for numbers/dates/currency
- RTL and long-string layout verified
- QA process for each release train
Tips for Effective Guidance
- Concatenation is the #1 source of untranslatable bugs.
- English plural ≠ other languages—always use ICU.
- Legal copy may need jurisdiction review—flag early.
Handling Deviations
- Single extra language: still use ICU and Intl—habits scale.
- Community translations: glossary and style guide critical.
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install localization - 安装完成后,直接呼叫该 Skill 的名称或使用
/localization触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
Localization 是什么?
Deep localization workflow—locale strategy, string extraction, ICU and placeholders, formatting, RTL and layout, translation QA, and continuous delivery with... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 181 次。
如何安装 Localization?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install localization」即可一键安装,无需额外配置。
Localization 是免费的吗?
是的,Localization 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。
Localization 支持哪些平台?
Localization 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。
谁开发了 Localization?
由 clawkk(@clawkk)开发并维护,当前版本 v1.0.0。