# Internationalization (i18n) URL: /bengal/docs/0.4.3/content/i18n/ Section: i18n -------------------------------------------------------------------------------- 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. 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 Quickstart PO file setup, locale config, and translation workflow. Arrow Clockwise RTL Layout CSS authoring for Arabic, Hebrew, and bidirectional sites. Translator Guide How to contribute translations and PO file conventions. -------------------------------------------------------------------------------- Metadata: - Author: lbliii - Word Count: 274 - Reading Time: 1 minutes