gettext переводить только на английский в Stack Overflow

Я испанец, и я делаю тесты, интернационализирующие текст шириной PHP, я только переводю его на английский.
Я получил эту структуру файлов:

locale/en_US/LC_MESSAGES/con los ficheros messages.mo y messages.po
locale/es_ES/LC_MESSAGES/con los ficheros messages.mo y messages.po
locale/fr_FR/LC_MESSAGES/con los ficheros messages.mo y messages.po

В каждом файле есть ключевое слово «Servicios», переведенное на каждый язык.

И в PHP у меня есть этот код:

<?php
putenv("LANG=en_US");
setlocale(LC_ALL, "en_US");
bindtextdomain("messages", "locale");
textdomain("messages");
?>

Когда я ставлю код «en_US», показываю хороший перевод, но когда я изменяю его на «es_ES» или «fr_FR» таким образом:

<?php
putenv("LANG=es_ES");
setlocale(LC_ALL, "es_ES");
?>

или же

<?php
putenv("LANG=fr_FR");
setlocale(LC_ALL, "fr_FR");
?>

все еще показываю перевод на английский

Я работаю над Widnows 7 и функцией

echo $_SERVER['HTTP_ACCEPT_LANGUAGE'] ;

возвращается к
«ES-ES, ES; д = 0,8» всегда,

Какая проблема это может быть?
Спасибо

2

Решение

Вполне вероятно, что языки не установлены на сервере, на котором вы запускаете скрипт — есть ли у вас доступ к серверу? Тогда попробуй

locale -a

чтобы увидеть, какие локали установлены. Также посмотрите здесь Можно ли полагаться на setlocale и полагаться на устанавливаемые локали?

НОТА:

будь осторожен с LC_ALL установка, так как это может привести к нежелательным преобразованиям. Например, я использовал

setlocale (LC_ALL, "Dutch");

чтобы получить мои будни в голландском на странице. С этого момента (как я узнал много часов спустя) мои значения с плавающей запятой из MYSQL интерпретировались как целые числа, потому что голландская локаль требует запятой (,) вместо точки (.) Перед десятичными знаками. Я старался printf, number_format, floatval…. все безрезультатно. 1.50 всегда был напечатан как 1.00 🙁

Когда я устанавливаю свою локаль на:

setlocale (LC_TIME, "Dutch");

мои рабочие дни хороши и мои значения с плавающей точкой тоже.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]