最近我一直在努力sfDoctrineGuardPluginSymfony可用。问题在于插件的翻译。Symfony,sfDoctrineGuardPlugin和翻译(I18N/I10N)
sfDoctrineGuardPlugin背后的人们对i18n有明显的想法,因为他们在他们的项目中提供了proper directory的翻译。但问题是,并非所有的文本元素都被翻译过。更具体地说,登录/登录表单只是部分翻译。
我为挪威语(为了简单起见)添加了一个翻译文件,将其放入插件i18n目录中。只要我把所有的项目都翻译好,我会尽快将它移出去,但那是另一回事。
我的登录表单(默认一个sfDoctrineGuardPlugin)看起来像这样渲染(样式简单删除)时:
正如你可以看到,首标元素以及在signin-按钮被翻译,但用户名/电子邮件和密码字段不。
在sfDoctrineGuardPlugin/LIB /形式/教义/碱/ 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两段起来保证了国际化的系统是无法在它应该插入我的翻译。
是否将sfDoctrineGuardPlugin设置为从sf_guard.XX.xml以外的其他目录替换了文本?
你有什么你为了让翻译工作?如果可以避免的话,我真的不想修改sfDoctrineGuardPlugin源代码(所以我有干净的依赖关系)。
任何指针表示赞赏。
现在尝试了这一点,无论我如何命名该文件,它都不会提取所有翻译。从我的自定义sf_guard.nb.xml文件中,它将拾取标题字段和按钮文本,但不是字段的标签。的bizzare。但是,我确实尝试将翻译复制到我自己的nb/messages.xml文件中,并且工作正常。我会毫不犹豫地尝试追查这里的罪魁祸首,并让module/symfony的开发人员在read-me文件中澄清一些事情。 – Christopher 2011-05-14 22:40:48