Notice

This page show a previous version of the article

Extracting UI Strings

These instructions describe how to extract UI strings so that they can be translated. The original source of these instructions, stored on Assembla, is here: 1

Markup for internationalized strings in the code

In the code, whenever developers write strings that will have to be translated, they use a special function whose name consists of a double underscore. A script (CakePHP's "i18n extract" script) can later be run to scan the code and extract the strings that are passed to this function.

__() function

CakePHP has several functions in this vein, but this is the function we will use most of the time. Note the pair of underscores.

__(‘some text’) => echo ‘some text’;
__(‘some text’, true) => return ‘some text’;

The language used in the code will be English.

Running cake i18n

  • Open a console on a Linux machine or Linux virtual machine.
  • Type : /var/http/tatoeba/cake/console/cake i18n
  • Choose : E (Extract POT file from source)
  • When asked if you want to merge all translations into a single file, say yes
  • Type in the path to app: /home/tatoeba/tatoeba-www/app
  • Type in the path to locale: /home/tatoeba/tatoeba-www/app/locale
  • Choose a name for the file that will be generated (in this example, default.pot): default.pot
  • Choose: Q (quit)