# Internationalization (i18n) URL: /bengal/docs/build-sites/structure/i18n/ Section: i18n Tags: persona-operator -------------------------------------------------------------------------------- Internationalization Bengal supports multi-language sites with directory-based content, gettext PO/MO translation files, plural-aware translations via nt(), and full RTL (right-to-left) layout support for Arabic, Hebrew, and other bidirectional languages. Do I Need This? Note Note Skip this if: Your site is single-language only. Read this if: You need translated content, hreflang SEO, RTL layouts, or a translator workflow. Quick Start Configure languages in bengal.toml: [i18n] default_language = "en" strategy = "prefix" content_structure = "dir" languages = [ { code = "en", name = "English", weight = 1 }, { code = "es", name = "Español", weight = 2 }, { code = "ar", name = "العربية", weight = 3, rtl = true }, ] Create content per locale: content/ ├── en/ │ ├── _index.md │ └── about.md ├── es/ │ ├── _index.md │ └── about.md └── ar/ ├── _index.md └── about.md Add PO translation files for UI strings: i18n/ ├── en/LC_MESSAGES/messages.po ├── es/LC_MESSAGES/messages.po └── ar/LC_MESSAGES/messages.po Use t() in templates: <nav> <a href="/">{{ t("Home") }}</a> <a href="/about/">{{ t("About") }}</a> </nav> Compile and build: bengal i18n compile bengal build Translation Workflow Step Command Description Extract bengal i18n extract Scan templates for t() calls, generate .pot Translate Edit .po files Add translations with a PO editor (e.g. Poedit) Compile bengal i18n compile Compile .po → .mo for faster loading Status bengal i18n status Check translation coverage per locale Build bengal build Generate site Key Concepts Content structure: dir (content/en/, content/es/) or file (about.en.md, about.es.md) URL strategy: prefix (/en/, /es/) or subdomain (en.example.com) Fallback: When a key is missing, Bengal falls back to the default language RTL: Arabic and Hebrew get dir="rtl" on <html> automatically Guides File i18n Quickstart Set up a bilingual site with gettext PO/MO in 5 minutes File RTL Layout Support CSS authoring for Arabic, Hebrew, and bidirectional sites File Translator Contributor Guide How to contribute translations and PO file conventions Globe Multilingual Sites Serve your documentation in multiple languages with proper URL routing and translations -------------------------------------------------------------------------------- Metadata: - Author: lbliii - Word Count: 325 - Reading Time: 2 minutes