String Intelligence Engine
Context-aware AI that reads before it writes
String Intelligence analyzes the full context of every string — surrounding keys, UI component type, and your character constraints — before generating a single character of translation.
| checkout.header | Order summary |
| → checkout.cta | Complete purchase |
| checkout.back | Back to cart |
Core capabilities
Everything String Intelligence handles automatically
Character-limit enforcement
Set max_chars per key, per locale. The engine constrains its output. A warning badge flags any translation that pushes the limit. No silent overflows.
Variable preservation
ICU MessageFormat, printf %s/%d, {{mustache}}, Ruby %{name}, and HTML tags — all detected, preserved verbatim in the output string. No stripping.
Plural rule engine
CLDR plural categories (zero/one/two/few/many/other) are applied per locale. Arabic gets 6 forms. Slavic languages get correct few/many distinctions.
UI component awareness
Tag strings with component type (button, tooltip, label, heading). The engine adjusts register and length accordingly — buttons stay short, headings can be longer.
Brand glossary
Define protected terms — product names, trademarks, technical terms. They pass through untranslated. Overrides are scoped per locale and per key.
Sibling-key context window
The engine reads the surrounding string keys in your source file before translating the target. A CTA labeled checkout.cta that sits between checkout.header and checkout.back gets translated in payment-flow register — not support-page register.
Variable syntax support
Every interpolation format, handled
String Intelligence auto-detects which variable syntax your strings use. No configuration needed. The detected syntax is preserved exactly in translated output.
{{variable}}
Mustache / Handlebars
{count, plural, one{# item} other{# items}}
ICU MessageFormat
%s, %d, %1$s
printf / sprintf
%{name}
Ruby i18n interpolation
// Source (English)
"greeting": "Hello, {{first_name}}!"
// Output (German) — variable intact
"greeting": "Hallo, {{first_name}}!"
// Output (Japanese) — variable intact
"greeting": "こんにちは、{{first_name}}!"
// Output (Arabic, RTL) — variable intact
"greeting": "مرحبا، {{first_name}}!"