2011-08-12 83 views
0

我正在用Symfon 1.4/Doctrine構建一個多語種網站,並且定義爲主要的英語語言。 其他語言的內容翻譯會逐漸添加,並且在請求的語言翻譯所請求的內容不可用時,通常會出現這種情況。我想在這些情況下以英文顯示請求的內容。 這是可以在全球範圍內實現的,例如所有國際內容?Symfony/Doctrine:國際化內容的默認文化回退

正如Grad van Horck所指出的,這在接口轉換時默認工作正常。 我需要的是與DB中存儲的內容相同的功能(具有「actAs i18n」行爲的模型)。

回答

0

默認的方式允許完美的。只要確保所有文字都是英文的,默認情況下,並在需要的地方翻譯。所以只要做<?php echo __('Hello'); ?>,然後翻譯它,如果你想。如果找不到翻譯,它就會回落到原來的位置。

要在你的數據庫中做同樣的事情,你可能最好是複製i18n的行爲(模板/監聽器)並添加你自己的邏輯來回退英語。

+0

謝謝,但我的意思是如何對數據庫中的內容做同樣的操作。編輯我的問題更加精確。 –

+0

查看我更新的答案:) –

0

這是可能的設置sfDoctrineRecord默認文化(見http://trac.symfony-project.org/ticket/5458

sfDoctrineRecord::setDefaultCulture('nl'); // default = 'en' 

這改變了國際化後備當翻譯是不是在數據庫中。

+1

這不是正確的方法:),默認情況下,它使用settings.yml中設置的'sf_default_culture',正如我現在看到的。然而有點混亂的是使用規範化的文化,例如。 'en'和'en_EN'最終是相同的文化,但在symfony文檔中混合使用... –