Skip to content

Getting AI Output in Brazilian Portuguese Instead of European Portuguese

9 min read · updated August 11, 2026

Brazilian and European Portuguese share almost all of their vocabulary and, since the 1990 orthographic agreement, most of their spelling. What separates them is syntax, and that is why output built from a swap list still reads as European to a Brazilian.

Why a word list is not enough

The Acordo Ortográfico da Língua Portuguesa of 1990, implemented in Brazil and Portugal over the following two decades, removed most of the systematic spelling differences between the two — the silent consonants that gave facto against fato, much of the divergent accentuation. What it did not touch, because orthography reform cannot, is grammar.

So the reliable signals are structural. A text can use only words found in both varieties and still be unmistakably one or the other, because the pronouns, the verb constructions and the position of object clitics differ throughout. Those features appear in nearly every sentence, which is what makes them both the strongest tell and the thing to put in the prompt.

The three syntactic tells

  • Second person: você versus tu. Standard Brazilian addresses one person as você, taking third-person verb agreement (você fala). European Portuguese uses tu with second-person agreement (tu falas) for the informal, reserving você for a formal or distant register where a Brazilian would hear nothing unusual. Because the agreement differs, this propagates to every verb in the text. Related: the possessive follows — Brazilian seu/sua where European uses teu/tua.
  • Progressive aspect: gerund versus a + infinitive. Brazilian says estou fazendo; European says estou a fazer. This is the single fastest tell in a body of text, it appears constantly in instructional and conversational writing, and no vocabulary substitution will produce it. If you specify one thing, specify this.
  • Clitic placement: proclisis versus enclisis. Brazilian puts object pronouns before the verb, including at the start of a sentence — me diga, te amo, se chama. European prefers them after, hyphenated: diga-me, amo-te, chama-se. European also uses mesoclisis in future and conditional forms (dir-te-ei), a construction essentially absent from Brazilian writing and an immediate giveaway.

A fourth, softer signal: Brazilian frequently drops the definite article before possessives (meu carro) where European keeps it (o meu carro). It is less consistent than the three above but it accumulates over a document.

Vocabulary that does differ

The lexical differences that survive are concentrated in everyday nouns and in technical terms, and they are worth listing in the prompt because they are the ones a reader trips over:

concept        Brazilian (pt-BR)     European (pt-PT)
-----------------------------------------------------------
mobile phone   celular               telemóvel
bus            ônibus                autocarro
train          trem                  comboio
screen         tela                  ecrã
file           arquivo               ficheiro
mouse          mouse                 rato
team           time                  equipa
breakfast      café da manhã         pequeno-almoço
juice          suco                  sumo
ice cream      sorvete               gelado
to record      gravar                gravar / registar
user           usuário               utilizador
to plan        planejar              planear

Note usuário against utilizador in particular: it appears in almost every software interface string, so a single wrong choice is visible on every screen of a product. Note also that a handful of spelling differences did survive the agreement, mostly around unstressed vowels — Brazilian planejar and gênero against European planear and género.

Numbers, dates and money

The variety instruction does not touch locale data, and locale data is what a reader notices on any screen with figures on it. The two Portuguese locales agree on more of this than the Spanish pair does, but not on all of it.

  • Decimal and thousands marks. Both use a decimal comma and a thousands point: 1.234,56. This is one of the few places where you do not need to intervene, and it is worth knowing so you do not spend effort on it.
  • Currency. Brazil uses the real, written R$ 1.234,56 with the symbol before the amount and a space after it. Portugal uses the euro, conventionally written after the amount: 1 234,56 €. Note that Portugal also commonly uses a space rather than a point as the thousands separator in the euro convention, so the two differ in both symbol position and grouping character. Getting this wrong is the single most visible formatting error in a commercial application.
  • Dates. Both use day-first, but the separator differs in practice — DD/MM/YYYY is standard in Brazil, DD-MM-YYYY and DD/MM/YYYY both appear in Portugal. Month names in Brazilian usage are conventionally lowercase (15 de março de 2026), which is the same in both.
  • Time. Both use the 24-hour clock, but Brazil conventionally writes 14h30 or 14:30 where Portugal more often uses 14h30. Where a clock time appears in generated prose rather than in a formatted field, say which you want.
  • Phone and postal formats. Brazilian numbers are +55 with a two-digit area code and a nine-digit mobile number; Portuguese are +351 with nine digits and no trunk prefix. Brazilian postal codes are the eight-digit CEP written 00000-000; Portuguese are 0000-000. A validation regex written for one rejects the other, which is a common and avoidable bug — see postal code validation by country.

The general rule is to format numbers, dates and currency with a locale-aware library rather than asking the model to produce them as text, and to reserve the prompt for the linguistic choices it is actually good at. A model asked to write prose and format currency will get one of them wrong somewhere in a long document, because formatting is not a linguistic decision and there is nothing in the sampling process that keeps it consistent.

Specifying it reliably

  1. Use the locale tag, not the language name. Write “Brazilian Portuguese (pt-BR)” rather than “Portuguese”. The BCP 47 tag is a strong, unambiguous token that appears throughout localisation data in training corpora. RFC 5646 defines the tag syntax.
  2. State the three syntactic rules explicitly. “Use você with third-person agreement. Use the gerund for progressive aspect (estou fazendo), never estar + a + infinitive. Place object pronouns before the verb (me diga), never enclitically.”
  3. Forbid mesoclisis by name. It is rare enough that a single instruction removes it, and it is the most jarring European construction for a Brazilian reader.
  4. Give a two-sentence example in the target variety. One correct sentence containing você, a gerund and a proclitic pronoun sets the pattern more effectively than the rules do.
  5. Name the audience, not just the variety. “Write for a Brazilian software user” picks up register and terminology choices that a variety label alone does not, in the same way described in specifying formal and informal register.

Holding it across a long document

Variety adherence decays over length for the same reason spelling conventions do: each token is sampled given the preceding context, and a single European construction that slips in raises the probability of the next one. The practical countermeasures are to generate in sections rather than in one pass, to repeat the variety instruction at the end of each user turn, and to run a mechanical check afterwards.

The check is easy here, which is unusual. Search the output for the string " a " preceded by a form of estar, for hyphenated enclitic pronouns (-me, -te, -se, -lhe at word end), and for the vocabulary in the right-hand column above. Any hit is European Portuguese, and unlike most variety checks it produces almost no false positives. A separate pass with a deterministic substitution list is the reliable fix, for the reasons argued in holding a spelling convention across a long document.

One thing not to do: generate in European Portuguese and convert. The syntactic differences are not substitutions — converting estou a fazer to estou fazendo requires parsing, and converting mesoclisis requires rebuilding the verb form. Specify the variety at generation time and the problem does not arise.