Php和Mysql多语言页面

时间:2012-11-11 12:09:46

标签: multilingual

我是PHP的新手我已经在一些教程之后创建了一个MVC框架,我真的学到了很多东西。我知道有一个像Zend这样的内置框架,我认为这样做很容易。所以我接下来要做的是建立一个多语言网站。首先,只会使用罗马尼亚语和英语等语言。

我遇到的问题是,我会有一个选项,巫师用户可以在审查其中一个管理员后向网站添加新页面,这里的基本语言将是罗马尼亚语。因此,将有至少200个单词的文本,并且可以存在与数据库可以保持的页数一样多的页面。所以应该有类似自动翻译的东西,但这不足以认为这将是一个演示网站。

我已经研究过这方面的教程和示例但是id不能解决我的问题。我的页面内容将从数据库生成。在一些错误的解决方案之后,我想到了一个解决方案,只在数据库中保留一些id而不是单词/短语,并且该id与转换表中的某些id相对应。这不是一个好的选择,认为从一种语言到另一种语言的适应不会有好处。

你能给我一些解决方案吗?或者你能给我一些好的教程/例子来映射我的问题吗?

谢谢

1 个答案:

答案 0 :(得分:0)

我只会向在罗马尼亚语中使用英语和罗马尼亚语内容的人们显示英语内容。如果我使用英文网站并转到您的个人资料,我会看到您的所有文章,甚至是罗马尼亚文章。但是,当我浏览latestpopular时...我只看到那些用英语写的。

数据库结构:

语言表

language_id | language_name | langauge_code
-------------------------------------------
     1      |    English    |      en
     2      |     Român     |      ro
     3      |    Spanish    |      es

发布表格

post_id | user_id | language_id | post_title | post_content
------------------------------------------------------------
   23   |    7    |      2      |     ...    |     ...
   24   |    5    |      1      |     ...    |     ...

如果您真的想要翻译所有内容,请添加第三个表,那么您将拥有原始语言,其中包含以下选项:也可用于罗马尼亚语作者:John Doe 翻译:Jane Doe ...

翻译表

trans_id | post_id | user_id | language_id | post_title | post_content
----------------------------------------------------------------------
    4    |    23   |    4    |      1      |     ...    |     ...
    5    |    23   |    5    |      3      |     ...    |     ...

你不能过分担心翻译,我只会翻译静态内容(页眉,页脚,导航,按钮...),让用户以他们想要的语言发布,如果你对你的网站有评论他们会有很多语言。其他网站不担心(facebook,twitter,...)。

您可能还希望使用gettext查看.po.mo个文件,您可以生成可以与Poedit一起使用的翻译文件

希望这有帮助。