API Maker

The backend engine for the AI era

i18nEpisode 34 3:56 9 chapters October 2026

Translate API Error Messages into Every Language with One Header

Every error of your APIs in the language of the person who called them, without one line of translation in your code. Build a French dictionary, see what a dictionary holds, translate the errors of your own custom APIs, and pick the language with one request header.

In the playlists The complete course Migrations & tenants

Chapters

What you will learn

  • A French dictionary in i18N Management
  • What a dictionary holds
  • One save, three languages
  • Your own errors, translated
  • Translated on the way out, picked by one header
  • No language in your code
In the docsInternationalization
Transcript514 words · click a time to play from there

Intro

Every error of your APIs in the language of the person who called them, without one line of translation in your code. In this video, the dictionaries of API Maker.

Translated errors, the usual way

Translated errors usually mean a check of the language before every message, the messages of the framework left in English, because nobody can reach them, and a release for every new sentence. With API Maker, one dictionary per language, for every message, yours and API Maker's, picked by one header of the request, and changed without a deploy. In this video : i18N Management and a French dictionary, what a dictionary holds, one save, in three languages, and the errors of your own custom APIs.

A French dictionary

APIs and Logic, i18N Management : no dictionary yet. Add New starts from a sample : every message API Maker can send, and the errors of the account's own custom APIs, here the two of Apply Coupon. The name, fr : a request picks it with the header x-am-internationalization colon fr. The dictionary : two names, the two errors of Apply Coupon, and two messages of API Maker, in French.

Save.

What a dictionary holds

A dictionary has four parts. Messages of API Maker have an id and a template with placeholders, like the maximum length of a field. The dictionary gives the template in French. COMMON translates what fills the placeholders : status becomes statut. And CUSTOM_API_ERRORS translates your own errors, text for text. The fixed texts of API Maker have their own part, CONSTANT_ERRORS.

One save, three languages

API Testing : postgres, crm, customers, Save single or multiple. The body : a customer with no city, and a status of fourteen letters where twelve are allowed. The Header tab, without the language header. Send : two errors, in English, and nothing is saved. With the header, fr : the same errors in French, with the French names of the fields. And hi : Hindi. The field key stays city_id : apps keep reading it.

Your own errors

Apply Coupon lists its errors in errorList, and its code throws them in plain English. No language in the code. From an app, the coupon SPRING15 : expired. With fr : ce coupon a expiré. With hi : the same, in Hindi. An unknown coupon : coupon introuvable. And a language without a dictionary, de : English, and no error.

Good to know

Once a dictionary exists, API Testing sends the first one by default : untick the row for English. A dictionary is TypeScript run when it is saved : a mistake is refused, with its line. Dictionaries travel in git with the project. Only the message changes : the type, the field and the code of an error stay as they are.

Built on standards

Code throws plain English, listed in errorList. Translations live in one file per language, for every API kind. So an AI assistant writes no language checks : the same rule for every endpoint it adds.

Recap

To sum up. One dictionary per language. Every message, yours and API Maker's. Picked by one header. No language in your code. Next : database name masking. API Maker. Build faster, spend smarter, deliver better.