Added the i18n foundation: config, content, data, and routing, so this site serves English at the root and Japanese under /ja/. The same work brought alias redirects, hreflang tags, and the top-bar language switcher, with localized feeds and a sitemap following shortly after.
The rule I settled on is that every page exists in both languages. A page is translated where a .ja.md file exists and falls back to English where it does not, so adding a translation later never breaks a link.
Doing it in my own generator meant I could keep the URL story simple instead of bending the site around a plugin's assumptions.