Languages
Your application, in your customer's language.
You type your captions the way you always did. One button fills the translations — on your Mac, offline — and what a human translated, the machine never touches again. That one rule is the whole system.
A single-language application needs no command, no files, no ceremony. The base language is a project setting — “this application is written in German” — and it only says what you type. Every text stays exactly where you wrote it.
Every table's branch in the navigator ends with a Translations entry: every text of that module, one column per language, typeable in place. The list is enumerated from your forms, reports and menus — you never maintain it, and it is never stale.
Fill Missing Translations translates what is empty — offline, on your machine, nothing leaves it. Machine work is marked gray and may be redone; the moment you type over an entry it is yours, for ever. Change a base text later and your translation is not silently replaced — it turns yellow and asks.
In code, only you know which string is for a person's eyes.
language.text("Saved!") is the mark — the string itself is the base
language, no invented keys — and placeholders travel with the translation:
language.text("Invoice {number} saved", …). A translation that
loses a placeholder is reported before it ships.
One checkbox per language in the build — with an honest footer: “12 of 480 entries missing — the base text shows there.” A built application follows the Mac in front of its user, within the ticked languages; a missing translation shows your base text, never a blank.
The backup window, the standard dialogs, the find and export editors and every error message a person can be shown speak nine languages out of the box — English, German, French, Spanish, Italian, Portuguese, Dutch, Polish, Turkish — and follow the same choice your texts do. Your customer's data is never translated: it belongs to the person who typed it.
The long form — the editor, the states, the exact rules — is a chapter of its own in the manual.