PHP本地化和动态数据

时间:2011-06-10 15:06:55

标签: php localization dynamic-data

所以我需要以不同语言提供网站。使用PHP 5.x和MySQL 5.x.我相信我将使用gettext,这对于整个站点的静态文本似乎很好,但是存储在db中的动态数据呢?我指的是诸如故事,活动商业列表等的东西。我如何让这些用不同的语言显示?我最初的想法是在后端让他们能够输入故事,事件或列表的多个版本,一个用于他们想要在网站上使用的每种语言。但是,他们想要显示多少种语言可能会有数千个条目。是否有人能指出我更好的解决方案/想法?

我想到的另一个问题是目前该网站允许您搜索事件/故事/列表,如何在不同的语言中工作?我假设如果有人选择该网站以西班牙语显示他们将使用西班牙语搜索该网站,但如果数据库中的信息是英文我不知道这将工作。有什么建议吗?

2 个答案:

答案 0 :(得分:0)

如果您希望故事在所有语言中都是正确的,那么您需要以所有语言存储这些故事,并提供后端进行翻译或按照您最初的想法输入不同语言的故事。

如果您不喜欢,可以在页面中添加google translate element,以提供自动(不正确)的翻译。

对于搜索问题,我只会使用与用户相同的语言在数据库的字段中搜索关键字。如果Joe正在用英语访问您的页面,则只查找数据库的title_en,content_en,description_en字段中的搜索项(如果每篇文章有一行并且数据库中有翻译,则查找带有language ='en'的搜索项,而不是每篇文章一行(内有所有翻译))。显然,这只有在您将所有翻译放在数据库上时才有效。

答案 1 :(得分:0)

我所看到的最好的解决方案就是这个。

正如您所描述的i18n CMS网站处于不断变化的状态,添加了新文章,其中一些文章已在某些语言中进行了翻译。

如果所选语言的文章尚未翻译,则显示默认语言(英语?)。

然后选择任何对您的案件有吸引力的想法:

a)如果以英文显示默认文章,也会在页面上输入一个输入框,并邀请您的观众为您翻译。

b)如果以英文显示默认文章,还会在页面上添加一条内容,以便将内容发送到谷歌翻译以及执行a)上面

c)对翻译给予赏金,并选择a)和/或b)。