Menu
Platform
AI
App store purchases
Credits
Database
Flags
Generated Assets
Monitoring
Notifications
Organizations
Payments
- Payments
- Payments quickstart
- Checkout policies
- Checkout sessions
- Customer subscriptions
- Entitlement grants
- Exchange rates
- Licence keys
- Licence tokens
- Merchant accounts
- Portal sessions
- Price catalogs
- Revenue
- Revenue facts
- Revenue sources
- Tax threshold statuses
- Usage events
- Usage invoices
- Usage meter prices
- Usage meters
- Usage reservations
- Usage settings
- Usage tiers
Sandboxes
Webhooks
Getting Started
Authentication
KV Store
Deploy & Infrastructure
Reference
On this page
Localization
What a catalog is, how a sync translates it, and where to go next.
A Catalog is your app's string catalog: one source
locale, the locales to translate into, and how to translate them. Your build
sends the source files to :sync; Sylphx Localization translates what is new
or changed and checks every translation; :export returns one file per locale
for you to commit. There is nothing to deploy and no translation vendor to
sign up with: one key in your project is enough.
#What a catalog gives you
- Only the delta is translated. Each message is keyed by its source text and a hash of it, so a sync translates new and changed messages and reuses the rest. Translations already in the translation memory are free.
- Checked before it ships. Every translation is checked for syntax, placeholders, markup, plural forms, length and glossary terms, and repaired once when it fails. A translation that still fails is never exported.
- Your edits win. Commit a changed translation and the next sync records it as a pinned human override, so it is never translated over.
- Real plurals. Messages are Unicode MessageFormat 2; ICU MessageFormat 1
files (ICU JSON, gettext
.po) and XLIFF 2.0 are read and written through the same catalog. - A voice and a glossary.
spec.toneandspec.locale_guidancesteer the wording; a Glossary fixes how a term is translated, keeps it untranslated, or forbids it. - Pseudo-locales.
en-XA(longer, accented),ar-XB(right to left) andzh-XW(full width) are generated at export to test layouts, never stored. - Bounded calls. A sync works within a fixed time; call it again until
pendingis 0. It is idempotent, so a CI retry is safe.
#Names and ids
- Catalog
- orgs/{org}/projects/{project}/envs/{env}/catalogs/{catalog}
- Catalog id
- cat_<cell><ulid>
- Entry
- …/catalogs/{catalog}/entries/{entry}
- Glossary
- orgs/{org}/projects/{project}/envs/{env}/glossaries/{glossary}
#The scopes
localization:write— creating and changing catalogs and glossaries,:sync, and pinning a translation.localization:read— reading catalogs, entries and glossaries, and:export.
Translation is billed by the source characters translated per target locale
(usage.translated_characters on each sync); memory matches are free.
Keys and scopes covers the two kinds of key.