Я устанавливаю локализацию на веб-сайте, но у меня есть некоторые проблемы.
Я нашел учебник, который делает именно то, что мне нужно: http://nuts -and-bolts-of-cakephp.com/2008/11/28/cakephp-url-based-language-switching-for-i18n-and-l10n-internationalization-and-localization/ (имеющий непосредственно язык после имени хоста).
Итак, я сделал все, что написано на этом сайте:
- Я сгенерировал файл банка, с помощью этого файла я создаю три файла po (eng, gerи fre) с помощью PoEdit я перевел два поля тестов.
- Я поместил эти файлы в app / locale / eng | fre | ger
- Я добавил маршрут Router :: connect('/: language /: controller /: action / *', array (), array ('language' => '[az] {3}'));в правильном файле
- Я установил язык по умолчанию: Configure :: write ('Config.language', 'fre');
- Я создал три ссылки для изменения языка: link ('Français', array ('language' => 'fre'));?>
- Я установил метод _setLanguage в моем appController (и вызвал его в beforeFilter ())
- Я создал appHelper, чтобы не указывать каждый раз текущийlanguage
Мои ссылки хорошо сгенерированы, у меня нет исключений / ошибок, мои локальные файлы читабельны, но когда я захожу на шаблон, где я пытаюсь использовать variable (), я просто вижу«testTranslation» как текст, без переведенного текста.
Почему это не работает?Похоже, он не может найти мои файлы, но я не знаю, почему: (
Любая помощь будет очень признательна! *
Редактировать: я провел некоторую отладку с помощью cakePhp, и похоже, чтокогда вызывается метод translate файла i18n.php, я получаю переменную $ domain = default_ger. Все мои переводы находятся в файлах default.po, и я предполагаю, что он ищет в default_ger.po «почему это», как я могузаставить его читать в файле default.po?
Редактировать: Я нашел кое-что: у меня была проблема с моим контроллером, я забыл объявить parent :: beforeFilter () в моем дочернем контроллере, затем методв контроллере не вызывался и язык всегда был немецкий. После того, как я это исправил, французский и английский работают нормально, но немецкий по-прежнему отображает только ключ, а не значения, которые есть в файле перевода.Это действительно странно, я удалил все файлы в кеше, удалил папку / app / locale / ger и скопировал мой / app / locale / fre в / app / locale / ger (без изменения каких-либовещь в файлах), и это все еще не работает.Что может быть другим?