I’m trying to enable automatic content localization (AI translation backfill) on my self-hosted Discourse instance and I’ve followed all the available guidelines, but I’m not seeing any translations appear.
Here’s what I’ve done so far:
Enabled content localization enabled
Selected at least one language in content localization supported locales
Enabled ai translation enabled
Chosen a working ai translation model (test is successful)
Set ai_translation_backfill_hourly_rate to a number greater than 0 (using the environment variable method in app.yml)
Set ai translation max age days to a large value
After saving and rebuilding, I posted topics in a different language than my user language preference, but nothing gets translated. I don’t see any evidence of translation jobs running (tried checking Sidekiq scheduled/queues), and the user-facing content remains untranslated.
Is there anything else I should check, or any way to better diagnose why the translation backfill is not triggering?
What is your ai_translation_backfill_hourly_rate – can you try 20 to begin with? It would help if you could share all the values.
Are all your posts public and not in restricted categories? If ai_translation_backfill_limit_to_public_content is disabled, you won’t have any posts translated.
SiteSetting.ai_translation_verbose_logs=true will show some details when it’s successful.
Alternatively if you have data explorer, you can try the following to see
if there are any LLM calls to translate
or if post locales are getting detected but the posts are not translated
SELECT COUNT(*)
FROM ai_api_audit_logs
WHERE feature_name = 'translation'
SELECT COUNT(*)
FROM posts
WHERE (locale IS NOT NULL AND locale <> '')
Yes, I can see these jobs in Sidekiq under /sidekiq/scheduler:
Jobs::PostLocalizationBackfill
Jobs::TopicLocalizationBackfill
Jobs::TopicsLocaleDetectionBackfill
They all appear with status “OK” and have recently run.
I also noticed that the topic titles are being translated correctly, but the post content itself is not translated yet.
Should I simply wait longer for the content to be processed, or is there another setting that I need to check for post content translation?
I have the a similar problem after making all the same changes in my hosted instance. In this case I’m using openai 4o. It seems to translate only the past 3 or 4 posts and nothing further. I still have plenty of credit available on my api key.
Where I’m at currently. I ran the test with the API key it’s fine. Like I said, translated like 3-4 pots then no others, also new posts are being added and no translations on those.
At the moment GPT-5 is so slow that its use shound be targeted to different type things. But sure, that is matter of taste and it depends.
But I’m using Chat GPT/GPT-5 in Finnish every now and then. Earlier 4x-series where actually quite good with a small and hard language such Finnish. Now… I would never use it for translations. Perhaps GPT-5 and next generations evolve and do better job in the future and perhaps it is already spotless between major languages.
But sure, that was totally off topic, but perhaps it can be allowed this one time. You did find needed solution after all. But my vague point is this topic should never born, because , at the moment and by my experiences, no one should never use GPT-5 for translations in the first place.
As mentioned by @GrahamMai_translation_backfill_hourly_rate needs to be set by your site admin as it is a hidden setting.
Other than what’s mentioned in the FAQ, could you folks check -
Check the graph at https://your-site.com/admin/plugins/discourse-ai/ai-translations. How many eligible posts are there? If it doesn’t show up, you’ll need to update
Run this query in discourse-data explorer if you have it:
SELECT
a.id,
a.created_at,
a.raw_request_payload,
a.raw_response_payload,
a.post_id
FROM ai_api_audit_logs a
WHERE a.created_at > '2025-09-01'
AND a.feature_name = 'translation'
ORDER BY a.created_at DESC
LIMIT 100
open a post is a backfill candidate, is the locale detected?
I’ve made sure that AI translation is enabled, backfills days (10 per hour) and limits (10000 days) are all set. I’ve added Spanish translations but it still says that backfill is disabled and I don’t see any jobs in sidekiq. Do I need to rebuild? I didn’t a rebuild 3 days ago. Most posts are public to read.
We’ve most recently unhidden the setting ai_translation_backfill_hourly_rate in this PR.
That setting defaults to 0, and was originally hidden so that only hosters (who know what they’re doing) can set that value. You’ll need to update that to a value like 100.
Yes I saw that and changed it from 0 to 10 (see the screenshots above) and it’s still saying that backfill is disabled with no scheduled jobs. Is there some way to kick start it or is something else required?
The whole site in general, want to use users options to see posts in different languages. Not bot or private, 1000’s of public posts.
Now this is very weird, when I see the dashboard now (19 hours later), I see this. It’s saying backfill is disabled but seems to have started doing some posts but it’s saying only 11 posts; is that how many are done or is that the total number it’s targeting or are those new posts?