• Documentation
  • Third-party integrations
  • CakePHP


Outdated article

All developer documentation has moved to Transifex Developer Hub. Read this article here.

Localizing with CakePHP's built-in i18n support

Before getting started, you'll want to follow the CakePHP documentation and internationalize your website. Once you've done this, there will be at least one source file under a path that looks like myapp/locale/en/LC_MESSAGES/default.po, assuming English is your source language.

The source file will be the foundation for setting up the Transifex Client, which lets you send and receive files over Transifex's REST API. In order to set up your Transifex Client configuration, you first need a project in Transifex and the Transifex Client installed.

After finishing all the steps above, follow the set of commands below to set up your repository configuration in a file called .tx/config. In this example, we named our project in Transifex mytxproject.

$ git clone
$ cd myapp
$ tx init
$ tx set --auto-local -r mytxproject.defaultpo 'locale/<lang>/LC_MESSAGES/default.po' \
--source-lang en --type PO --source-file locale/en/LC_MESSAGES/default.po

You should commit the .tx/config file to your repository so the next time you want to push new source content, you can simply use the following commands

$ cd myapp
$ ./ makemessages -l en
$ tx push -s

The tx commands should always be executed from the directory in your repository where the .tx/ folder is located.

To download translations once their are complete in Transifex, use:

$ cd myapp
$ tx pull -t -a

Community integrations

The CakePHP Transifex Plugin is a community supported plugin. The plugin repository and installation instructions are maintained here via Github.

Brief notes from project README: A CakePHP 2.x Plugin that works with Transifex and pulls/pushes translations. It uses the Transifex API v2

Please note: New functionality has been tested against latest CakePHP v2.x only. Please upgrade if possible.