You write a post in Spanish, schedule it for Tuesday morning, and it goes out tagged as English. Nothing warns you. Now the Translate button shows up for the wrong people, and screen readers may try to pronounce your Spanish as English. Anyone who filters their Mastodon timeline to Spanish might never see the post at all.
A scheduled Mastodon post uses whatever language your scheduling tool sends with it. If the tool sends no language, Mastodon falls back to your account’s default posting language, then to your server’s default, and it doesn’t try to detect the language from the text. The fix is to set the language on each post when you schedule it, and keep a default posting language set in Mastodon’s preferences as a backup.
What a Mastodon Post’s Language Tag Does
A Mastodon post’s language is a two-letter ISO 639-1 code, like en, es, or de, attached to every status. Mastodon’s API documentation describes the language field as simply the “ISO 639-1 language code for this status.”
Two letters, three jobs:
- Translation. Mastodon’s built-in translation (added in Mastodon 4.0) relies on the tag. According to fedi.tips, people who speak other languages “will only be able to translate your post if you use the correct settings.”
- Screen readers. Blind and partially sighted readers hear posts through screen-reader software, which may only pronounce a post correctly if the language tag is right. (That’s the same audience alt text is for, and Fedica has a guide to automatically generating alt text too.)
- Language filters. Readers can choose to see only certain languages on public timelines, per Mastodon’s preferences documentation. A post with the wrong tag gets filtered out for exactly the people it was written for.
Why Scheduled Mastodon Posts End Up With the Wrong Language
Mastodon doesn’t guess. When a post arrives, the server picks its language in a fixed order:
| Order | Where the language comes from | When it applies |
|---|---|---|
| 1 | The language value sent with the post | Your scheduler or app sent one |
| 2 | Your account’s default posting language | Nothing was sent, and you’ve set a default |
| 3 | Your server’s default locale, chosen by the server’s admin | Nothing was sent and you have no default |
There’s no step where Mastodon reads the text to work out what language it’s in. Mastodon’s own documentation admits “language detection can be very imprecise,” which is a fair reason not to trust it with your posts.
The web composer does offer one safety net. When the detected language doesn’t match the one you picked, the language button glows yellow, as fedi.tips describes. That warning only exists in Mastodon’s web interface, though, and scheduled posts are written somewhere else, so they never see it.
Posts queued with Mastodon’s built-in scheduling (the method apps like Tusky use) have one more quirk. Mastodon stores the post’s settings and runs the language step above when the post publishes, not when you schedule it, according to the code Mastodon uses to publish scheduled posts. If the app sent no language, whatever default you have set on publish day is what the post gets. Change your default on Monday, and Wednesday’s already-queued posts change with it.
This isn’t a rare complaint, either. A Mastodon GitHub issue titled “I always forget to set post language” has been open since November 2022, and plenty of multilingual posters would recognize themselves in it.
How to Set the Language on a Scheduled Mastodon Post in Fedica
Fedica’s composer has a language picker for every Mastodon post you schedule, so the right code goes out with the post instead of relying on a fallback. Here’s how it works:
- Open the Fedica composer from Create Post under Publish.
- Select Mastodon at the top. If you pick several platforms, you get QuickPost, which sends one post to all of them.
- Write the post, add any media, and add alt text to every image.
- Click Custom Post and choose the posting language from the popup.
- Click Schedule and pick Add to Pipeline or Specific Date, or let Fedica pick the best time.

The same Custom Post panel is where you add a content warning, which Fedica’s guide to scheduling content warnings on Mastodon and Bluesky walks through.
Fedica holds scheduled posts in its own queue and sends each one to Mastodon at publish time, with the language you picked attached.
Fedica has scheduled Mastodon posts since it added Mastodon support in December 2022. The full feature set, including threads, polls, and content warnings, is listed on Fedica’s Mastodon scheduler page, and the analytics side lives with the rest of Fedica’s Mastodon tools.
Setting Your Default Posting Language as a Safety Net
Your default posting language is the fallback for any post that arrives without a language, scheduled or not. Mastodon’s documentation puts it plainly: “If you primarily or exclusively post in a certain language, it is a good idea to set that language here.”
To set it on the web:
- Log in to your Mastodon server’s website.
- Go to Preferences, then Posting defaults.
- Under Posting language, pick the language you use most.
- Click Save changes.
If you post in two or three languages, set the default to the one you use most and switch per post for the rest. Mastodon has no “ask me every time” setting yet. A feature request for one has been open on GitHub since November 2022.
Fixing the Language on a Post That’s Already Scheduled or Published
How you fix a wrong tag depends on where the post is sitting.
Queued on your Mastodon server. A post scheduled through Mastodon’s built-in system can’t have its language changed. Mastodon’s scheduled-post API only accepts a new publish time. You’ll have to delete the post and schedule it again with the right language.
Queued in Fedica. Fedica’s queue isn’t on your Mastodon server, so Mastodon’s restriction doesn’t apply. Open the scheduled post and change the language in Custom Post before it publishes.
Already published. Edit the post and change its language. Editing a post’s language has been supported since Mastodon 4.0, per the statuses API, so you don’t have to delete a post that’s already collecting boosts and replies.
Frequently Asked Questions
Does Mastodon detect the language of scheduled posts automatically?
No, Mastodon goes by the language sent with the post, then your default posting language, then the server’s default, and the yellow hint in the web composer never switches it for you.
Why are my scheduled Mastodon posts tagged as English?
Usually because your scheduling tool didn’t send a language and you haven’t set a default posting language, so the post fell through to your server’s default locale, which the server’s admin picks. Set your default in Preferences and pick a language per post when you schedule. One catch: posts already queued with Mastodon’s built-in scheduling and no language attached will pick up the new default when they publish.
What language codes does Mastodon use?
Two-letter ISO 639-1 codes, like en for English, fr for French, and ja for Japanese.