Let's look at this again. Here is the current ls -lRa. Unless I am blind, everything in this tree is either owned by www-data and www-data has write permission or it is in group www-data and the www-data group has write permission.
drwxrwxr-x 5 fyl www-data 4096 Sep 1 18:01 .
drwxrwxr-x 23 fyl www-data 4096 Sep 1 18:19 ..
drwxrwxr-x 3 fyl www-data 4096 Sep 1 17:13 en_US
drwxrwxr-x 3 www-data www-data 4096 Sep 1 18:01 es_MX
-rwxrwxr-x 1 fyl www-data 46 Mar 21 2007 index.php
-rwxrwxr-x 1 fyl www-data 699 Sep 1 18:01 installed_languages.inc
drwxrwxr-x 3 fyl www-data 4096 Sep 1 17:13 new_language_template
./en_US:
total 16
drwxrwxr-x 3 fyl www-data 4096 Sep 1 17:13 .
drwxrwxr-x 5 fyl www-data 4096 Sep 1 18:01 ..
drwxrwxr-x 2 fyl www-data 4096 Sep 1 17:13 LC_MESSAGES
-rwxrwxr-x 1 fyl www-data 853 Jun 6 09:12 stylesheet.css
./en_US/LC_MESSAGES:
total 12
drwxrwxr-x 2 fyl www-data 4096 Sep 1 17:13 .
drwxrwxr-x 3 fyl www-data 4096 Sep 1 17:13 ..
-rwxrwxr-x 1 fyl www-data 797 Apr 13 15:56 en_US.mo
./es_MX:
total 12
drwxrwxr-x 3 www-data www-data 4096 Sep 1 18:01 .
drwxrwxr-x 5 fyl www-data 4096 Sep 1 18:01 ..
drwxrwxrwx 2 www-data www-data 4096 Sep 1 18:01 LC_MESSAGES
./es_MX/LC_MESSAGES:
total 556
drwxrwxrwx 2 www-data www-data 4096 Sep 1 18:01 .
drwxrwxr-x 3 www-data www-data 4096 Sep 1 18:01 ..
-rw-r--r-- 1 www-data www-data 130652 Sep 1 18:01 es_MX.mo
-rw-r--r-- 1 www-data www-data 419946 Sep 1 18:01 es_MX.po
./new_language_template:
total 16
drwxrwxr-x 3 fyl www-data 4096 Sep 1 17:13 .
drwxrwxr-x 5 fyl www-data 4096 Sep 1 18:01 ..
drwxrwxr-x 2 fyl www-data 4096 Sep 1 17:13 LC_MESSAGES
-rwxrwxr-x 1 fyl www-data 853 Jan 15 2004 stylesheet.css
./new_language_template/LC_MESSAGES:
total 532
drwxrwxr-x 2 fyl www-data 4096 Sep 1 17:13 .
drwxrwxr-x 3 fyl www-data 4096 Sep 1 17:13 ..
-rwxrwxr-x 1 fyl www-data 531542 Apr 7 02:26 empty.po
So, that rules out a permission problem assuming apache is running as www-data in group www-data. From ps -g www-data or ps -u www-data, I get:
PID TTY TIME CMD
7276 ? 00:00:00 apache2
7277 ? 00:00:00 apache2
7278 ? 00:00:00 apache2
7279 ? 00:00:00 apache2
7280 ? 00:00:00 apache2
7281 ? 00:00:00 apache2
7282 ? 00:00:00 apache2
9013 ? 00:00:00 apache2
9014 ? 00:00:00 apache2
9015 ? 00:00:00 apache2
Is gettext installed?
gettext is /usr/bin/gettext
from php5 -m, gettext is in the list. But, of course, that is shell php5. So, finally, from a phpinfo(); call, I get
GetText Support enabled
So, what am I missing/not checking?