1

最近我一直在努力sfDoctrineGuardPluginSymfony可用。问题在于插件的翻译。Symfony,sfDoctrineGuardPlugin和翻译(I18N/I10N)

sfDoctrineGuardPlugin背后的人们对i18n有明显的想法,因为他们在他们的项目中提供了proper directory的翻译。但问题是,并非所有的文本元素都被翻译过。更具体地说,登录/登录表单只是部分翻译。

我为挪威语(为了简单起见)添加了一个翻译文件,将其放入插件i18n目录中。只要我把所有的项目都翻译好,我会尽快将它移出去,但那是另一回事。

我的登录表单(默认一个sfDoctrineGuardPlugin)看起来像这样渲染(样式简单删除)时:

Login form as rendered

正如你可以看到,首标元素以及在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源代码(所以我有干净的依赖关系)。

任何指针表示赞赏。

回答

1

我不确定这个的确切原因,但是如果您将翻译件从插件文件夹中移出并放入应用程序翻译文件夹中,则所有内容都应该用作“魅力”。

至少这是我的symfony 1.4.11应用程序的情况。

此致敬礼。

+1

现在尝试了这一点,无论我如何命名该文件,它都不会提取所有翻译。从我的自定义sf_guard.nb.xml文件中,它将拾取标题字段和按钮文本,但不是字段的标签。的bizzare。但是,我确实尝试将翻译复制到我自己的nb/messages.xml文件中,并且工作正常。我会毫不犹豫地尝试追查这里的罪魁祸首,并让module/symfony的开发人员在read-me文件中澄清一些事情。 – Christopher 2011-05-14 22:40:48