terriorGet an API key
Region-level localization API

Write the way a region writes.

Terrior rewrites any text toward the way one region writes its language. Send text and a region, and get back the rewritten text, the swaps it made, and the swaps it did not make, each with the reason it did not.

One sentence, one region
eng-in-05-chandigarh
Your text

The forthcoming update comprises fixes for everyone impacted by last week's outage, and our colleagues will subsequently bolster support for anyone attempting to move their account.

What comes back

The upcoming update includes fixes for everyone affected by last week's outage, and our colleagues will later strengthen support for anyone trying to move their account.

WordWhat happened to it
forthcoming → upcomingChanged.
comprises → includesChanged.
impacted → affectedChanged.
colleagues → membersFlagged, not changed. 'members' and 'colleagues' may differ in meaning here, not only in which one the region writes; check before using; the two words are not written beside the same neighbouring words, so the swap could leave a nearby word that no longer fits; check before using
subsequently → laterChanged.
bolster → strengthenChanged.
attempting → tryingChanged.
Converted by this service when the page loaded. A flag is a word to look at, not an error. You decide what to do with it.
126
Regions
13
Languages
18
Countries

Counted from the profiles this service has loaded.

EnglishengHindihinPortugueseporSpanishspaRomanianronTamiltamGermandeuzhozhoMarathimarPolishpolCatalancatHungarianhunRussianrus
ARBRBYCHCNCODEESGBHUINKEMXNGPLRORUUS
One call

Text and a region in. Text, swaps and flags out.

There is no style guide to write and none to keep up to date. Word choice changes, and syntax and structure do not.

curl https://terrior.app/v1/convert \
  -H 'Authorization: Bearer tk_live_…' \
  -H 'Content-Type: application/json' \
  -d '{"region":"eng-in-05-chandigarh","text":"The forthcoming update comprises fixes for everyone impacted by last week'\''s outage, and our colleagues will subsequently bolster support for anyone attempting to move their account."}'

200 OK
{
  "applied": [
    {
      "concept": "upcoming~forthcoming",
      "offset": 4,
      "original": "forthcoming",
      "replacement": "upcoming"
    },
    {
      "concept": "includes~comprises",
      "offset": 23,
      "original": "comprises",
      "replacement": "includes"
    },
    {
      "concept": "affected~impacted",
      "offset": 52,
      "original": "impacted",
      "replacement": "affected"
    },
    {
      "concept": "later~subsequently",
      "offset": 108,
      "original": "subsequently",
      "replacement": "later"
    },
    {
      "concept": "strengthen~bolster",
      "offset": 121,
      "original": "bolster",
      "replacement": "strengthen"
    },
    {
      "concept": "trying~attempting",
      "offset": 148,
      "original": "attempting",
      "replacement": "trying"
    }
  ],
  "convert_ms": 0.0335,
  "flagged": [
    {
      "concept": "members~colleagues",
      "offset": 92,
      "original": "colleagues",
      "reason": "'members' and 'colleagues' may differ in meaning here, not only in which one the region writes; check before using; the two words are not written beside the same neighbouring words, so the swap could leave a nearby word that no longer fits; check before using",
      "replacement": "members"
    }
  ],
  "region": "eng-in-05-chandigarh",
  "text": "The upcoming update includes fixes for everyone affected by last week's outage, and our colleagues will later strengthen support for anyone trying to move their account."
}
What you get back

Rewritten text

Your input with every safe swap made. The meaning and the sentence structure stay as you wrote them.

The swaps it made

Each change, with the concept behind it and where in your input the word was.

The swaps it did not make

Words the region writes differently that were left as you wrote them, because the swap might not be safe. Each one says why.

Convert once

The same text for the same region always converts the same way. Keep the result; plans are priced by region, not by call.

Plans
PlanPriceRegionsRequests / minuteConcurrent
Starter€29 / month3 regions you choose604
Growth€149 / month15 regions you choose60016
Scale€499 / monthEvery region, now and laterNo per-minute limit64

Conversions are not counted or billed. You choose your regions after signup and can swap one once it has been held 30 days; Scale includes every region, including the ones added after you subscribe. Limits and billing are set out in full in the API reference.

Convert your own copy.

One endpoint, and one key to call it with.
Get an API key