PHP本地化和动态数据

PHP本地化和动态数据,php,localization,dynamic-data,Php,Localization,Dynamic Data,因此,我需要使一个网站在不同的语言可用。使用PHP5.x和MySQL 5.x。我相信我会使用gettext,它似乎适合整个站点的静态文本,但是数据库中存储的动态数据呢?我指的是故事、事件、商业清单等。我如何让它们以不同的语言显示?我最初的想法是在后台让他们能够输入一个故事、事件或列表的多个版本,每个版本对应他们想在网站上使用的语言。但是他们想要展示多少种语言,可能会有成千上万的条目。有没有更好的解决方案/想法可供我参考 另外一个我一直在思考的问题是,目前该网站允许您搜索事件/故事/列表,这在不同

因此,我需要使一个网站在不同的语言可用。使用PHP5.x和MySQL 5.x。我相信我会使用gettext,它似乎适合整个站点的静态文本,但是数据库中存储的动态数据呢?我指的是故事、事件、商业清单等。我如何让它们以不同的语言显示?我最初的想法是在后台让他们能够输入一个故事、事件或列表的多个版本,每个版本对应他们想在网站上使用的语言。但是他们想要展示多少种语言,可能会有成千上万的条目。有没有更好的解决方案/想法可供我参考


另外一个我一直在思考的问题是,目前该网站允许您搜索事件/故事/列表,这在不同的语言中是如何工作的?我假设如果有人选择了用西班牙语显示的网站,他们会用西班牙语来搜索网站,但是如果数据库中的信息是英语的,我不知道这是否可行。对此有何建议?

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

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


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

我见过的最好的解决方案就是这样

正如你所描述的i18n CMS站点处于不断变化的状态,新文章不断增加,其中一些已经用一些语言进行了翻译

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

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

a) 如果显示英文的默认文章,也可以在页面上添加一个输入框,并邀请您的读者为您翻译

b) 如果显示英文的默认文章,也可以在页面上提供将内容发送到google translate的建议,以及执行上述a)操作


c) 悬赏翻译,然后选择上面的a)和/或b)

实际上这给了我一个想法。在后台管理工具中,如果他们不想手动翻译像故事这样的条目,那么就使用谷歌api自动翻译成他们想要的语言,显然翻译不会那么好,但我认为,至少他们能两全其美。