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

  • ProcessWire 3.0.133 adds a useful new Page::meta() method for a new type of page-specific persistent data storage, adds the ability for users to create their own bookmarks in Lister, and has a handy and time saving update for the asmSelect input type— More
    14 June 2019
  • New post: This week we’ll take a look at 3 different WEBP image strategies that you can use in ProcessWire 3.0.132+. Then we’ll dive into a major update for the Google Client API module, and finish up by outlining some useful new updates in FormBuilder— More
    31 May 2019
  • New post: This week we've added WEBP support in ProcessWire thanks to a GitHub pull request from Horst Nogajski. This enables you to have highly optimized image output in PW and I think you’ll really like the difference it makes— More
    24 May 2019

Latest news

  • ProcessWire Weekly #267
    In the 267th issue of ProcessWire Weekly we're going to cover the latest changes in the development branch of ProcessWire, introduce a new module called MarkupMenu, and highlight a brand new site of the week. Read on!
    Weekly.pw / 22 June 2019
  • ProcessWire 3.0.133 core updates
    ProcessWire 3.0.133 adds a useful new $page->meta() method for a new type of page-specific persistent data storage, adds the ability for users to create their own bookmarks in Lister, and has a handy and time saving update for the asmSelect input type. Read on for all the details, examples and screenshots.
    Blog / 14 June 2019
  • Subscribe to weekly ProcessWire news

“We were really happy to build our new portfolio website on ProcessWire! We wanted something that gave us plenty of control on the back-end, without any bloat on the front end - just a nice, easy to access API for all our content that left us free to design and build however we liked.” —Castus, web design agency in Sheffield, UK