Мне удалось сделать мой URL-адрес i18n
совместимым с помощью Zend_Controller_Router
.
То есть: en/user/login
становится fr/utilisateur/connexion
, и оба URL ведут к одному и тому же controller
/action
.
Проблема, с которой я столкнулся, заключается в следующем
У меня есть переключатель языка, который отображается следующим образом:
Français
English
Italiano
etc.
Текущий активный язык не имеет тега anchor
, но все остальные имеют.
Для языков, на которых есть anchor
, я создаю URL-адрес и хочу, чтобы они были переведены на их конкретные языки.
В настоящее время, если я нахожусь в French
, все URL-адреса строятся на французском языке, даже если я устанавливаю ключ @local
в качестве параметра в помощнике просмотра URL (tried "@locale" => 'en'
, "@locale" => new Zend_Locale('en')
)
en/utilisateur/connexion
it/utilisateur/connexion
вместо
en/user/login
it/utente/collegamento
потому что локаль, используемая при построении URL-адреса, определяется для всего приложения.
ИЗМЕНИТЬ
Я копнул немного глубже в своей проблеме и обнаружил, что только текущая локаль добавляет загруженные ресурсы, что означает, что я не могу получить маршрут на правильном языке, чтобы маршрут был построен на правильном языке.
Моя новая проблема: как мне загрузить ресурсы для перевода на несколько языков?
(Я планирую внедрить кеш в далеком будущем (ближе к выпуску), так что я могу добиться лучшей производительности)