Недавно я боролся с sfDoctrineGuardPlugin , доступным для Symfony .Проблема заключается в переводе плагина.
Люди, стоящие за sfDoctrineGuardPlugin, очевидно, подумали о i18n, так как они предоставили некоторые переводы в правильном каталоге в своем проекте.Проблема, однако, заключается в том, что не все текстовые элементы переведены.Точнее, форма входа / входа в систему переведена только частично.
Я добавил файл перевода для норвежского языка (и для простоты) поместил его в каталог плагинов i18n.Я переместу его оттуда, как только все элементы будут переведены должным образом, но это уже другая история.
Моя форма входа в систему (по умолчанию sfDoctrineGuardPlugin) выглядит так, когда она отображается (стили удалены для простоты)):
Как вы можете видеть, заголовок, а также кнопка входа переводятся, но поля для имени пользователя / адреса электронной почты и пароля - нет.
В sfDoctrineGuardPlugin / lib / form / doctrine / base / BasesfGuardFormSignin.class.php присутствует следующий код:
if (sfConfig::get('app_sf_guard_plugin_allow_login_with_email', true))
{
$this->widgetSchema['username']->setLabel('Username or E-Mail');
}
Это один из текстовых элементов, которые не переведены.В моем sg_guard.nb.xml я перевел все строки, которые можно найти в примерах переводов в sfDoctrineGuardPlugins svn-repository.Для вышеупомянутой метки у меня есть следующее:
<trans-unit>
<source>Username or E-Mail</source>
<target>Brukernavn eller epost</target>
</trans-unit>
Я предполагаю, что использование setLabel на две секции вверх гарантирует, что i18n-система не сможет вставить мой перевод туда, куда должна.
Установлено ли в sfDoctrineGuardPlugin текст, замененный из какого-либо другого каталога, кроме sf_guard.XX.xml?
Что вы сделали, чтобы заставить работать переводы?Я действительно не хочу изменять исходный код sfDoctrineGuardPlugin, если его можно избежать (поэтому у меня чистые зависимости).
Любые указатели приветствуются.