Going live

Multilingual & Internationalization (i18n)

Build a global website. Learn how to configure languages, translate interface text, and create multilingual content with HugoBlox's i18n support.

Create a truly global site by customizing the interface language or translating your content into multiple languages. HugoBlox supports 35+ languages out of the box.

Interface Language

The interface language controls site text that isn't part of your content (e.g., "Read More", "Next Page").

Setting the Language

  1. Configure Languages: Edit config/_default/languages.yaml to define which languages your site supports.
  2. Set Default: In hugo.yaml, set defaultContentLanguage to your primary language code (e.g., en, zh, es).

Customizing Translations

You can modify existing translations or create new language packs.

  1. Create the i18n Folder Create an i18n folder at your site root.

  2. Download or Create a File Download a language file (e.g., en.yaml) and save it to i18n/.

    en.yaml
    zh.yaml
  3. Edit Translations Open the YAML file and modify the text strings.

Language files use ISO/RFC5646 identifiers (e.g., en, fr, zh-Hans).

Multilingual Content

Serve your content in multiple languages.

Directory Structure

Organize your content/ folder using language codes.

_index.md
my-post.md
_index.md
my-post.md
  1. Migrate Existing Content Move your default content into a subfolder named after its language code (e.g., content/en/).

  2. Create Translations Create parallel folders for other languages (e.g., content/zh/) and add translated Markdown files.

  3. Configure Content Directories Update config/_default/languages.yaml to map each language to its content directory.

Multilingual Menus

You can create separate menus for each language.

  1. Default Menu: config/_default/menu.yaml
  2. Translated Menus: Create files like menu.zh.yaml or menu.es.yaml.

When a user switches languages, the corresponding menu will be displayed automatically.

A language switcher will automatically appear in the navigation bar and footer when multiple languages are configured.

Translating Data Files

Data files (such as author profiles) can also be translated per language. Place language-specific versions in subdirectories named by language code under data/.

me.yaml # Default author profile
me.yaml # French translation (override fields only)
me.yaml # Chinese translation

The translated file only needs to contain the fields you want to override (e.g., title, role, bio). All other fields are inherited from the default file.

See the Authors guide for a detailed example of translating author profiles.

Was this page helpful?

From the makers of

© 2026 Lore Labs.

On this page