API Maker
The backend engine for the AI era
i18nEpisode 34 3:56 9 chapters October 2026
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
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 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.
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.
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.
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.
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.
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.
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.
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.
Length 3:28Masking
Length 6:22Migrations
Length 4:37Multi-tenant
Length 6:56Architecture