What a release note is actually for
A release note is the short message that tells people what changed, what the change means for them, and what they should do next. New writers often confuse it with a changelog line or an internal ticket title. A ticket title might say fix empty state on billing screen, while a release note says that the billing screen no longer looks broken when there is nothing to show yet. One is written for the team, the other is written for the person using the product.
Once that message needs to live in two languages, the job grows. You are no longer polishing a single sentence. You are making sure two audiences walk away with the same understanding. A reader in one language should not get a warmer, clearer or more complete note than a reader in the other one. That goal sounds obvious, but it falls apart quickly when translation happens at the last minute, from a half-finished draft, by someone who never saw the product.
The good news is that bilingual release notes reward plain writing. Short sentences, concrete verbs and everyday words translate cleanly in any direction. Flowery language, idioms and insider jokes do not. If you want the two versions to match, start by making the source version easy to copy.
Write one source draft before any translation
Pick one language as the source and finish that draft first. Do not translate while the content is still changing, because every edit in the source has to be carried over by hand, and small drifts are how the two versions slowly become different notes. Wait until the feature is settled, the wording is agreed, and someone has read the note out loud without stumbling.
While you write, keep the sentences short and the structure flat. Lead with the change, then the benefit, then anything the reader must do. A working order looks like this:
- The change in one plain sentence that says what is new or fixed.
- The effect in one sentence that says what a person can now do or what problem is gone.
- The action in one sentence covering steps, limits or anything worth knowing before the next run.
Freeze the source draft before translation begins, and say so out loud to everyone involved. When a late change is unavoidable, send a note about it instead of quietly editing one version. Tools can help you move faster here. A pay-as-you-go relay such as SwiftRelay gives you access to models like GPT-5.6 Sol and Gemini 3.1 Pro from the same interface you already use, and billing is per token, so a short drafting session costs what it costs. Sign up for SwiftRelay and you get a small gift credit to try a first draft.
Keep one terminology list for both languages
Most bilingual release notes go wrong on words, not on grammar. The feature is called one thing in the interface and another thing in the note, and the translation adds a third label. Readers who switch between the app and the note feel lost even if every individual sentence reads well.
Build a tiny terminology list before you write. It does not need to be large. Ten or fifteen entries cover most release notes. For each entry, record the approved term in the source language, the approved term in the second language, and the exact string as it appears in the product. Keep product names, plan names and button labels untouched by translation.
- Keep technical terms such as token, API key and rate limit consistent every time they appear.
- Keep feature names exactly as the interface shows them, including capitals and spacing.
- Decide once whether a word like credit is translated or kept, and follow that rule everywhere.
Write the list down, even in a plain text file. A list in someone's head only works while that person is the one translating. The moment a teammate, a contractor or a model helps with the draft, the list becomes the instruction set that keeps both versions aligned. Add new terms as they appear, and delete entries for features that no longer exist.
Handle numbers, names and code the same way
Some parts of a release note must never change shape between languages. Code samples, file paths, commands and host names belong in the reader's terminal exactly as written, so keep them in code blocks or plain text and refuse any urge to translate them. The same applies to model names. If a change affects Claude Sonnet 5.5, that name stays as it is in every version of the note.
Connection details are a common source of confusion, so copy them carefully. Claude Code and Gemini CLI take the bare host, https://api.fastapirelay.com, while OpenAI-compatible SDKs add /v1 to the path. If a release note mentions switching tools, keep that detail identical in both languages, because a reader who copies a translated path will get a very confusing error message.
- Copy URLs, keys and commands without translating or rewrapping them.
- Use the same date format in both versions, and name the month if the format could be read two ways.
- Check that numbers, percentages and credit amounts match exactly across versions.
Also watch the invisible things. Decimal separators, thousands separators and plural forms differ between languages, and a number that looks fine in one can read strangely in another. Read the second version as a fresh reader and ask a simple question: does this promise the same thing as the first one?
A checklist before both notes go live
Before the green light, run both versions through the same short checklist. It is faster to fix a missing action sentence now than to answer the same support question twice tomorrow.
- Both versions open with the change, not with background or context.
- Both versions contain the same three parts: change, effect and action.
- The terminology list matches both notes, word for word.
- Code, hosts, paths and model names are identical in both versions.
- Numbers, dates and credit amounts agree across languages.
- Every claim in one version has a matching claim in the other.
- Someone fluent has read the second version without seeing the source first.
That last item is the most valuable. A fresh reader notices the things a translator stops seeing: a missing step, a doubled sentence, a tone that turned formal by accident. If no fluent reader is free, read the second version aloud anyway and listen for anything you would not say to a user face to face.
Treat the two notes as one release with two faces. Draft once, translate once, check twice, then publish. The habit takes a few extra minutes per release and saves you from the slow, expensive kind of fix: a public message that means two different things to the people who read it.