Publishing
Multilingual
Svalla supports multiple languages natively — manage translations, language-specific URLs, and global translation strings without plugins.
Multi-Language Support
Built-in, not bolted on
Multilingual support is a core feature of Svalla, not an add-on. Every piece of content — pages, sections, blocks, forms, categories — supports translations from day one.
Key principles:
- Each project can have unlimited languages
- Content is managed independently per language — a translation can exist without all others
- Each language has its own publication status — you can publish English while keeping Portuguese as draft
- A default language serves as the primary content language
Content Translations
Translate pages and sections
When you create a page, it's created for a specific language. To add translations:
- Open the page in the content editor
- Switch to another language using the language selector
- Enter the translated content for each section
- Publish the translation independently
Each translation has its own revision history, so changes to one language don't affect others. You can also have different editors working on different languages simultaneously.
Language-Specific URLs
SEO-friendly multilingual URLs
Each page can have a different URL slug per language. For example:
- English:
/about-us - Portuguese:
/sobre-nos - Spanish:
/sobre-nosotros
Post types also have language-specific slug prefixes:
- English:
/blog/my-article - Portuguese:
/artigos/meu-artigo
This ensures your URLs are optimized for SEO in each language, rather than using generic URL parameters or prefixes.
Global Translations (i18n)
Manage UI strings centrally
Beyond page content, websites have interface strings — button labels, error messages, navigation text — that need to be translated. Svalla provides a Global Translations system for this:
- Define translation keys (e.g., "read_more", "contact_us", "search_placeholder")
- Add translations for each language
- Access translations through the API
Your frontend application fetches these translations and uses them for all UI elements that aren't part of page content. This keeps all translations in one place — the Svalla back-office.
API and Language
Querying content by language
The GraphQL API supports language-aware queries:
- Request content for a specific language
- Fetch a page by its language-specific slug
- Get all available translations for a page
- Query global translations for a specific language
This makes it straightforward to build multilingual frontends — your application passes the current language to the API and receives properly translated content in return.