2011-08-25 90 views
1

在CakePHP 1.3中構建網站。我的要求是有一個阿拉伯語和英語支持的網站。我希望如果用戶使用阿拉伯文輸入信息,那麼當英文用戶看到相同的信息時,應該用英文,反之亦然。Cakephp網站,英文和阿拉伯語支持相同的數據庫

就本地化標籤我做了使用po文件。它非常直接。 但是對於使用Cakephp內置的Translate Behavior的數據庫。但它再次不會翻譯任何內容,並使用當前正在使用的語言環境創建另一個數據副本。

請幫我在哪個方向移動。

我想知道這種情況下應該遵循的最佳實踐。 可能是翻譯數據庫值不是最好的解決方案,應該保存這些值,不管他們來自哪種語言。

任何幫助和建議將不勝感激。

+0

你想* automagic翻譯任何*用戶可能會進入? – deceze

+0

是的,如果我在網站上有阿拉伯語和英語支持。然後,如果用戶輸入阿拉伯語文本,那麼其英文翻譯也應該得到保存,反之亦然。 –

+6

這是*方式*超出了Cake TranslateBehavior的功能。首先,您需要尋找一個圖書館,或者更有可能是Google翻譯API來進行實際翻譯。機器翻譯是一個**硬**問題,不會讓你的期望值提高。 – deceze

回答

1

實際上CakePHP不能自動轉換輸入的數據。

Translate Behavior允許您使用多種語言輸入相同的內容,然後根據您當前在配置中設置的語言從數據庫中檢索相應的語言。它實際上並沒有爲你翻譯任何東西。

理論上,您可以在Model :: beforeSave()回調中添加一個函數,該函數將阿拉伯文本提交給Google Translate等服務,然後將阿拉伯文和英文版保存到適當的表中,不一定非常好。正如@deceze在他對你的問題的評論中所說的,機器翻譯是一個難題。