2012-04-05 98 views
1

我目前正在創建一個應用程序,在這個應用程序上,會說不同語言的人訪問信息。這些信息將非常獨特,因此使用翻譯工具將不夠好。所有信息都需要使用不同的語言,並且當用戶登錄時,信息將根據其設置顯示。現在,該應用程序基於Django和MySQL。我看到Django具有本地化功能,但我不太明白。它是在調用翻譯機制還是什麼?我不明白。針對Python/Django的數據庫本地化(多語言)設計

把它放在一邊,我想知道什麼是解決這個問題的最佳方法。現在不知道不同語言的數量。所以我不認爲在中存儲每列的確切翻譯,但是一個表是一個好主意,儘管它可以節省查詢時間。 (沒有內部聯接等)。

1)我應該看看Django本地化功能嗎?究竟是什麼? [我真的不想將翻譯存儲到文件中。]

2)什麼數據庫設計最適合多語言應用程序?我發現這些的:

如何,人們通常解決這個問題?非常感謝!

編輯:我不是特別尋找那些易於使用的東西。主要是爲了高性能的東西,不會在我的數據庫中造成巨大的混亂......這可能嗎?

+0

你見過[django-hvad](https://github.com/KristianOellegaard/django-hvad)嗎? – ilvar 2012-04-05 03:59:59

+0

我並不特別喜歡那些易於使用的東西。主要是爲了高性能的東西,不會在我的數據庫中造成巨大的混亂......這可能嗎? – abisson 2012-04-05 04:24:32

回答

0

1)Django i18n機制用於允許靜態文本標籤在模板,字段名稱,錯誤消息中的本地化 - 基本上每個文本都不存儲在數據庫中。對於數據庫內容的翻譯沒有多大幫助。

2)在多語種Django模型我已經看到了每一個主要的努力,使用下列方法之一:

  • 添加modlename_lang列到同一個表。
  • 將共享字段存儲在一個表中並在另一個表中翻譯。

我會建議你決定你更喜歡哪些方法,並且使用最好的文檔模型翻譯應用程序來選擇方法。

如果您打算使用幾種語言,那麼我建議您採用第一種方法。另一方面,如果語言的數量變大,第二種方法可能更加可行。