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