Symfony, sfDoctrineGuardPlugin и переводы (I18N / I10N) - PullRequest
1 голос
/ 12 мая 2011

Недавно я боролся с sfDoctrineGuardPlugin , доступным для Symfony .Проблема заключается в переводе плагина.

Люди, стоящие за sfDoctrineGuardPlugin, очевидно, подумали о i18n, так как они предоставили некоторые переводы в правильном каталоге в своем проекте.Проблема, однако, заключается в том, что не все текстовые элементы переведены.Точнее, форма входа / входа в систему переведена только частично.

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

Моя форма входа в систему (по умолчанию sfDoctrineGuardPlugin) выглядит так, когда она отображается (стили удалены для простоты)):

Login form as rendered

Как вы можете видеть, заголовок, а также кнопка входа переводятся, но поля для имени пользователя / адреса электронной почты и пароля - нет.

В 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, если его можно избежать (поэтому у меня чистые зависимости).

Любые указатели приветствуются.

1 Ответ

1 голос
/ 13 мая 2011

Я не уверен в точной причине этого, но если вы переместите свои переводы из папки плагинов в папку переводов вашего приложения, все должно работать как очаровательно.

По крайней мере, так обстоит дело с моим приложением symfony 1.4.11.

С уважением.

...