【问题标题】:Symfony, sfDoctrineGuardPlugin and translations (I18N / I10N)Symfony、sfDoctrineGuardPlugin 和翻译 (I18N / I10N)
【发布时间】:2011-08-23 21:52:22
【问题描述】:

最近我一直在为Symfony 提供的sfDoctrineGuardPlugin 苦苦挣扎。问题在于插件的翻译。

sfDoctrineGuardPlugin 背后的人显然已经想到了 i18n,因为他们在他们的项目中的proper directory 中提供了一些翻译。然而,问题在于并非所有文本元素都被翻译。更具体地说,登录/登录表单仅被部分翻译。

我添加了一个挪威语的翻译文件(为了简单起见),将它放在插件 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 源代码(所以我有干净的依赖项)。

感谢任何指针。

【问题讨论】:

    标签: php symfony1 internationalization symfony-1.4 sfdoctrineguard


    【解决方案1】:

    我不确定确切的原因,但是如果您将翻译从插件文件夹移到应用程序翻译文件夹中,那么一切都应该是魅力所在。

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

    最好的问候。

    【讨论】:

    • 现在试过了,无论我如何命名文件,它都不会提取所有的翻译。从我的自定义 sf_guard.nb.xml 文件中,它将获取标题字段和按钮文本,但不会获取字段的标签。离奇。但是,我确实尝试将翻译复制到我自己的 nb/messages.xml 文件中,并且成功了。我肯定会尝试在这里追查罪魁祸首,并让模块/symfony 的开发人员澄清自述文件中的一些内容。
    猜你喜欢
    • 1970-01-01
    • 2014-03-29
    • 2012-11-12
    • 1970-01-01
    • 2021-04-22
    • 1970-01-01
    • 1970-01-01
    • 2011-08-21
    • 1970-01-01
    相关资源
    最近更新 更多