2012-04-11 143 views
-1

我需要創建一些知識數據庫更新(使用PHP和MySQL)。 Im使用數據庫來存儲HTML格式的每個更新。 正在使用該系統的人員使用不同的語言(關於用戶的信息存儲在數據庫中)。 有時候,更新包含應考慮用戶正在使用的語言進行翻譯和顯示的文本。尋找解決方案,以避免eval()

你會建議什麼方法,記住我想避免在數據庫中存儲PHP和HTML。

我正在考慮爲每種語言創建一個列,並在那裏存儲每個更新的翻譯,但會發生什麼更新包含2個不同的翻譯。

原型的更新:

一些初始文本


翻譯文本


一些文字


二翻譯的某些部分的


最後更新文本

+0

超過避免EVAL在PHP + HTML代碼數據庫。不要做。如果您找不到其他選項,請廢棄該項目。 (還有其他選項) – DampeS8N 2012-04-11 17:14:13

+0

對不起,但我完全不理解這個問題。你打算使用eval()來做什麼? – Daniel 2012-04-11 17:16:03

+0

我正在考慮存儲數據庫PHP代碼,它將顯示整個更新並選擇需要使用用戶的登錄信息(語言)顯示的翻譯。例如if($ _ SESSION ['language'] =='FR')echo「Bla bla」; – Boris 2012-04-11 17:18:48

回答

0

我將創造語言表和更新表。然後創建一個將語言鏈接到更新的表格。一列爲id,一列爲語言id,一列爲更新id。然後,您將可以使用多種翻譯處理更新。

+0

不錯,但有時我需要在更新中顯示翻譯。例如更新文本,翻譯,更新文本,翻譯2 ... – Boris 2012-04-11 17:20:53

0

另一種解決方案是使用某種類型的cdata標籤,或者您可以輕鬆解析的東西。但這將是一個非常「基於維基」的解決方案,所以有模式可以遵循以避免混合。

實施例:

[English<-[This is the best update ever]->] 
[Swedish<-[Detta är den bästa uppdateringen någonsin]->] 
+0

是的,這是我能想到的唯一解決方案,但不是太蹩腳? – Boris 2012-04-11 17:22:24

+0

這一切都取決於你。 SO用粗體和粗體文字表示你,你是裁判;) – Daniel 2012-04-11 17:24:13