Common errors
A translated URL returns a 404
Work through these in order:
- Is the domain licensed? On any domain other than
localhost/127.0.0.1, language URLs 404 unless a valid licence covers that domain (or a parent of it). Check the Umbraco Translator panel on the settings page. "Not licensed" or "Licensed, but not for this domain" means this is the cause. See Licence key. - Are you using the URL prefix, not the ISO code? These are two independent fields (see Managing languages). A language with ISO code
caand URL prefixcatalanis only reachable at/catalan/..., not/ca/.... Check the URL prefix column on the settings page. - Does the untranslated page exist?
/fr/about-usis the page at/about-us, translated. If/about-usitself 404s (unpublished, or a different URL), so will the translation.
"Licensed, but not for this domain"
The licence is valid, but the domain you're viewing the backoffice on isn't one of its three or a subdomain of one. Translation still works on the licensed domains. Common causes:
- you're using a hosting provider's URL (e.g.
*.azurewebsites.net), a preview URL or an IP address that isn't one of the licensed domains - the site is on a different domain from the one licensed, e.g.
client-site.co.ukwhen the licence namesclient-site.com. Subdomains are covered automatically, but other domains need their own slot.
Translation stopped after upgrading the package
If translation stopped straight after a package upgrade, and the settings page says "Not licensed" with "This license includes updates released up to…", the new version was released after your licence's 12 months of updates ended. Your key is still valid for versions released before that date.
- Downgrade to a version released on or before your "updates until" date; translation comes back on the next start. Or
- renew your licence to use the new version.
See Updates and expiry.
"No Weglot API key configured" on the settings page
WeglotTranslations:WeglotApiKey is missing or empty, or the site hasn't restarted since it was set. See Configuration.
Translations have stopped appearing, with no error on the page itself
A failed translation call doesn't break the page. The original, untranslated content is served instead, so nothing looks wrong to a visitor. Check the logs (see Checking the logs) for an Unable to translate page error. The two most common causes:
- The word limit on your Weglot plan has been reached. The log says something like
"You have reached your words limit, you need to upgrade.". Check your usage on the Weglot dashboard. - The API key is invalid or revoked. Check the key value, and that it belongs to an active project in your Weglot account.
Translations still missing after fixing the problem
Untranslated results from failed calls are cached like successful ones, so pages can stay untranslated for up to CacheDurationInSeconds after you fix the cause. Wait for the cache to expire, or restart the site to clear the default in-memory cache. See Caching.
A translated page shows old content after publishing
Translated pages are cached and aren't cleared when content is published. The new content appears once the cache entry expires. See Caching.
One page under a language prefix isn't translated
If a published page already exists at that exact path (for example, a page whose URL is /fr/contact), Umbraco serves it as-is instead of translating /contact. See A real page always wins.
Translations are poor, or Weglot rejects the language pair
Pages are always sent to Weglot as English. If your site's original content is in another language, the translations will be wrong or fail. See How translation works.
Some text on the page isn't translated
Check whether it's one of the things the translator deliberately leaves alone: text inside <script>/<noscript>, attributes such as placeholder or aria-label, text added by JavaScript after load, or anything inside a data-wg-notranslate element. See What doesn't get translated.
The language switcher shows the wrong "original language" label
The link back to the untranslated page is labelled with a fixed string, "English", in the shipped partial (see Set up your front end). The package doesn't store what your site's original language is called; only the translation targets are stored. To change the label, override the partial. See Creating your own selector.
A language's own name shows up mistranslated in the switcher
A custom selector (see Creating your own selector) is missing the data-wg-notranslate attribute. Without it, the translator treats a language's display name as ordinary page text and translates it with everything else, so the French version of a page could show "Espagnol" instead of "Español". Wrap the switcher's markup in an element carrying data-wg-notranslate. See Excluding content.
Nothing is translated at all, whichever language you visit
- Confirm the API key is configured (see above).
- Confirm the domain is covered by your licence, or that you're on
localhost. - Confirm at least one language exists on the settings page, and that you're visiting its exact URL prefix.
- Turn on debug logging and check whether a
Translation startedline appears for the request.