Используйте встроенный переводчик.
Например, настройте переводчик в вашем конфигурационном файле для использования простого массива
; Translations
resources.translate.data = APPLICATION_PATH "/lang"
resources.translate.adapter = "Array"
resources.translate.options.scan = "directory"
resources.translate.options.disableNotices = "1"
Это сообщает плагину ресурсов приложения Translate, что вы хотите
- сохраняйте переводы в
APPLICATION_PATH/lang
- , используйте адаптер Array (самый простой)
- сканируйте каталог перевода на языки / locales
- ignoreошибки о неизвестных переводах (т. е. пользователь предпочитает en_AU, но у вас нет конкретного файла перевода для этого языка)
Теперь создайте папки для любых языков, которые вы хотите поддерживать.Как минимум, вы захотите application/lang/en
.Например,
application
lang
en
en_AU
en_US
В каждой языковой папке создайте файл translate.php
.Этот файл будет содержать (и возвращать) массив пар ключ / значение для каждого перевода.Вы можете найти ключи для каждого сообщения валидатора в классе валидатора.Вот пример для валидатора Alnum
<?php
// application/lang/en/translate.php
return array(
Zend_Validate_Alnum::NOT_ALNUM => 'Not alnum!!',
Zend_Validate_Alnum::INVALID => 'Not valid!!'
);
Для всех валидаторов Zend вы также можете использовать заполнитель %value%
в своем сообщении, например,
Zend_Validate_Alnum::NOT_ALNUM => "'%value%' is not alpha-numeric"