The Fastest Way to Localize a WordPress Theme's .po File Online
A ten-minute browser workflow with no Poedit, no WP-CLI and no local environment — and it opens by telling you to check whether the job is already done, because a theme from the WordPress.org directory may already have a free language pack waiting behind Settings → General. For everything else: finding the theme's .pot, getting your exact locale string the reliable way rather than guessing at underscores and _formal variants, and the POT → PO → translate → MO chain done entirely online. Then the step that actually breaks: a theme translation needs two different filenames depending on where it lives, because WordPress branches on the path — inside the theme folder it must be nl_NL.mo with no domain, and in wp-content/languages/themes it must be mytheme-nl_NL.mo with one. That is the opposite of plugins, which use the domain-prefixed form in both places, so a habit carried over from plugin work produces a file WordPress silently ignores. The rule is quoted from _load_textdomain_just_in_time() in WordPress 7.1 source rather than repeated from a forum. Plus why the theme folder is the wrong place regardless (updates wipe it), the optional .l10n.php format WordPress now prefers over .mo, child themes and the parent/child domain question, what block themes put outside the .po entirely including site-editor content, a ten-row still-in-English diagnosis table with the thirty-second rename test, and an honest comparison against translation plugins and Poedit.