Multiple language support with ProcessWire

Multi-language page names (URLs) and multi-language text fields make developing a multilingual site as easy as developing a single language site. 

ProcessWire's multi-language support includes a full gettext-style translation system, but with the translation tools built into the CMS, and without actually using gettext. You can also install (or create) alternate language packs for the admin side of ProcessWire.

Multi-language support is installed with core modules available in the admin: Modules > Language > Language Support. If you just want to install alternate language packs, then all you need is the base Language Support module. If you want to support multi-language fields in your own site, then you should also install the Language Support Fields module. We also recommend installing Language Support Page Names module for multi-language URLs.

  • Code i18n

    This page provides detailed documentation on everything you need to know to make your template files or modules translatable using ProcessWire's translation tools.
  • Multi-language fields

    Here we look in detail at multi-language fields and language-alternate fields, as well as how to use them. Also includes a video overview and examples of how to use language fields to create full multi-language websites.
  • Multi-language URLs

    Multi-language URLs and page names enable you to maintain different/translated URLs for each page, based on the language. It also lets you produce your site easily, as the language is determined automatically by the URL.
  • Language Packs

    Language packs for use with the ProcessWire admin.
  • Multi-Language Support Forum

    A place to get support and chat about multi-language capabilities in ProcessWire.

Twitter updates

  • New post: This week we take a look at what’s in ProcessWire 3.0.126 which focuses largely on resolving issue reports, but also includes a handy new Page if() method— More
    15 February 2019
  • New post: ProcessWire 3.0.125 has several useful new Sanitizer methods & options, plus new ways to access them directly from the Input API variable. This makes handling user input even easier than before. Plus updates to our i18n functions & API docs— More
    25 January 2019
  • New post: In this week’s post, we’ll take a look a look at the new website and focus on some parts of it and how they were built. Then we’ll dive into the latest version of ProcessWire on the dev branch, version 3.0.124— More
    11 January 2019

Latest news

  • ProcessWire Weekly #249
    In the 249th issue of ProcessWire Weekly we're going to walk you through the latest core updates (ProcessWire 3.0.126), introduce a new third party module called Page Access Releasetime, and pick a new site of the week. Read on!
    Weekly.pw / 16 February 2019
  • ProcessWire 3.0.126 core updates
    This week we take a look at what’s in ProcessWire 3.0.126 which focuses largely on resolving issue reports, but also includes a handy new $page->if() method. 
    Blog / 15 February 2019
  • Subscribe to weekly ProcessWire news

I just love the easy and intuitive ProcessWire API. ProcessWire rocks!” —Jens Martsch, Web developer