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