How do I run a multi-language blog on VeloCMS?
Practical guide to setting up a multi-language blog on VeloCMS — i18n configuration, per-post translations, hreflang tags, and locale URL patterns.
VeloCMS supports multi-language blogs through its i18n configuration system. You define your supported locales in Admin → Settings → Languages, publish posts in each language with locale-prefixed slugs (/en/my-post, /de/mein-post), and VeloCMS automatically injects the correct hreflang tags for search engines. It's not automatic translation — you write or import the translated content yourself — but the plumbing for correct multi-language SEO is built in.
How do I configure supported languages?
Go to Admin → Settings → Languages and add your locale codes (e.g., en, de, fr, tr). Set one language as the primary locale — this is what readers see when they visit your root URL without a language prefix. VeloCMS uses ISO 639-1 two-letter codes for languages and ISO 3166-1 alpha-2 for regional variants (e.g., en-US, en-GB, pt-BR). When you add a second language, the locale switcher widget becomes available in your theme's navigation settings.
How do I publish a translated post?
From the post editor, open the Settings panel and find the 'Translations' section. Click 'Add translation', select the target language, and a new draft opens in the editor linked to the original. The slug for the translated post is automatically prefixed with the locale code (/fr/mon-article for a French translation of /en/my-article). You can write the translation directly in the editor or paste in translated content. The two posts stay linked — in analytics they report as language variants of the same piece of content, not as separate independent posts.
VeloCMS's AI writing assistant can draft translated versions if you provide the source text and target language in the prompt. It's not one-click translation, but it substantially speeds up the process compared to writing from scratch.
How does hreflang work in VeloCMS?
When a post has one or more translations linked to it, VeloCMS automatically generates the hreflang link elements in the HTML head of every language variant. For a post available in English, German, and French, each page includes hreflang attributes pointing to all three variants including an x-default pointing to the primary locale. This tells Google which version to serve in which regional search. You don't configure this manually — it's derived from the linked translation relationships you set up in the editor.
What URL pattern should I use?
VeloCMS defaults to subdirectory-based locale URLs — yourdomain.com/en/post-slug and yourdomain.com/de/post-slug. This is the pattern Google most clearly understands and is the safest choice for a new multi-language blog. Subdomain-based locales (en.yourdomain.com) are also supported but require DNS configuration for each subdomain, which adds complexity. Separate domains per language (yourdomain.de, yourdomain.fr) are the most powerful but most work-intensive option and aren't needed unless you have strong regional brand reasons. Start with subdirectory pattern.
Frequently asked questions
- Does VeloCMS auto-translate posts? No — translations are written by you (or via AI assistance). The platform handles URL structure and hreflang, not content translation.
- Can I have different themes per language? No — the theme applies to the entire blog. You can customize CSS per locale using locale-scoped CSS classes if needed.
- What happens if a post doesn't have a translation in a requested locale? The reader is served the primary locale version, not a 404.
- Can I use right-to-left (RTL) languages? RTL support (Arabic, Hebrew, Persian) is in beta — the editor handles RTL text input, but theme RTL mirroring requires CSS customization.
- Does multi-language affect my member count limits? No — a French reader subscribing counts the same as an English reader toward your plan's member limit.