Intereting Posts
Как отправить переменную из JavaScript в PHP-скрипт с использованием AJAX CakeResque – Resque не найден в … app / Plugin / CakeResque / Lib / CakeResque.php в строке 82 Как получить последние видео с нескольких каналов Youtube в одном API-интерфейсе Узел больше не существует с помощью SimpleXML JqueryAjax и php-логика Оберните текст каждые 2500 символов в <div> для разбивки на страницы, используя PHP или javascript Необходимая информация о структуре базы данных Могу ли я использовать MS SQL Server в качестве базы данных поддержки для Joomla? удалите новую строку при отправке запроса на сервер через Ajax Post с помощью JQuery В чем разница между консервативным кешированием и прогрессивным кешированием в joomla 2.5? Если index.php, покажите «это», если нет, покажите «это», Сбой PHP (или MySQL) при извлечении большой записи базы данных (~ 5 МБ) Подготовленный оператор select mysqli в поле longtext возвращается пустым Проблемы с кодировкой CodeIgniter и URL-адрес перезаписи Тестирование, если сеть в записи cidr перекрывает другую сеть

Локализация CakePhp

Я устанавливаю локализацию на веб-сайте, но у меня проблемы.

Я нашел учебник, который делает именно то, что мне нужно: http://nuts-and-bolts-of-cakephp.com/2008/11/28/cakephp-url-based-language-switching-for-i18n- и-l10n-интернационализация и локализация / (непосредственно язык после имени хоста).

Поэтому я сделал все, что написано на этом сайте:

  1. Я создал файл pot с этим файлом в горшке, я создаю три файла po (eng, ger и fre) с помощью PoEdit, я перевел два поля тестов.
  2. Я поместил эти файлы в app / locale / eng | fre | ger
  3. Я добавил маршрут Router :: connect ('/: language /: controller /: action / *', array (), array ('language' => '[az] {3}')); в правильном файле
  4. Я установил язык по умолчанию: Configure :: write ('Config.language', 'fre');
  5. Я создал три ссылки для изменения языка: link ('Français', array ('language' => 'fre')); ?>
  6. Я установил метод _setLanguage в свой appController (и назвал его в beforeFilter ())
  7. Я создал appHelper, который не должен указывать каждый раз на текущем языке

Мои ссылки хорошо сгенерированы, у меня нет каких-либо исключений / ошибок, файлы моих локалей читабельны, но когда я перехожу к шаблону, где я пытаюсь использовать переменную (), я просто вижу «testTranslation» как текст, не переведенный текст.

Почему это не работает? Похоже, он не может найти мои файлы, но я не знаю, почему 🙁

Любая помощь могла бы быть полезна!

Редактирование: я сделал некоторую отладку cakePhp, и кажется, что когда вызывается метод перевода файла i18n.php, я получаю $ domain = default_ger var. Мои переводы все в файлах default.po, и я полагаю, что он ищет default_ger.po? почему это? как я могу заставить его читать файл default.po?

Edit: Я нашел что-то: у меня была проблема с моим контроллером, я забыл объявить родительский :: beforeFilter () в моем детском контроллере, тогда метод в контроллере не был вызван, и язык всегда был немецким. После того, как я исправил это, французский и английский работают нормально, но немецкий язык по-прежнему отображает только ключ, а не значения, которые у меня есть в файле перевода. Это действительно странно, я удалил все файлы в кеш, удалил папку my / app / locale / ger и скопировал файл my / app / locale / fre в / app / locale / ger (без изменения чего-либо в файлах), и это все равно не работает. Что может быть иначе?

Попробуйте этот макет файла:

***\app\locale>tree /F ├───eng │ └───LC_MESSAGES │ default.po │ └───spa └───LC_MESSAGES default.po 

Я, наконец, нашел проблему:

Мой контроллер приложений не был вызван, поэтому немецкий язык всегда использовался (потому что он работал один раз при смене языка на немецкий язык и регистрировал его через файлы cookie).

Все другие языки, кроме немецкого, правильно отображали мои ценности.

Поэтому я искал эту проблему, и я пытался использовать «deu» вместо «ger», и это сработало!

Папка locale должна быть «deu», значение языка может быть deu or ger.

Это очень странно, потому что для французов у ​​меня есть «fre» (FREnch), а не «fra» (FRAnçais), и это работает.

Во всяком случае, эта работа с этим изменением