Content is translated by the author in the admin. A theme’s own strings — “Read more”, “Search”, “All rights reserved” — are translated by the theme, in templates/locales/<language>.json:
{ "Read more": "Ler mais", "Search": "Pesquisar", "Change language": "Mudar idioma" }
Wrap the phrase in {{ t('Read more') }} and it renders in the visitor’s language. A phrase missing from that language’s file falls back to the primary language’s file, and then to the phrase itself — so a half-translated theme still renders, just in English where a translation has not been written yet. The files travel with the theme when it is exported.