有很多方法可以解决这个问题。它们都不是“最好的方法”,而且它们都存在短期或长期的问题。首先要说的是,多语言网站并不容易,翻译人员和可爱的人但很难与之合作,大多数程序员仅将问题视为技术问题。在此答案的范围之外,还有另一个维度,即您是在翻译还是本地化。这涉及查看目标受众的文化习俗,然后根据该文化定制语言、风格、布局、颜色、字体等。最后不要使用 MT,机器翻译,
对。解决方案。在您不想重写站点的基础上,只需克隆您拥有的站点并将副本翻译成目标语言。假设代码库是稳定的,您可以使用 VCS 来管理任何代码更改。您可以调整站点的各个部分以适应目标语言,例如法语文本平均比等效的英语文本大 30%,因此使用一个站点来提供这意味着您可能(将)遇到格式问题并需要交换一个根据语言输入和输出不同的 css 文件。这似乎是一种笨拙的方法,但是这些网站将存在多长时间?这样做的管理开销可能比其他选项要少。
第二种方式,无需重建。用标签替换当前站点中的所有内容,然后将不同的语言放入文件或数据库表中,嗅探用户所需的语言(您是否有注册用户可以进行偏好设置或者您是否想要获取浏览器语言标签,或者是它将是 URL dot-com dot-fr,dot-de 做出选择),然后用目标语言替换标签。然后,您需要分别解决尺寸问题和图像问题。当 Symfony 和 Zend 等框架实现 l10n 时,此解决方案有效。
然后您可以使用框架或 gettext 进行重建,并且可能有一个更简洁的解决方案,但请记住框架旨在解决其他问题,而不是翻译,并且翻译组件已作为部分解决方案而不是完整解决方案进入框架。
所有解决方案的最大问题是持续维护。因为您不仅有一个代码库,还有多个语言库需要维护。除非你们所有的解决方案都非常聪明和有效,否则持续的任务将很困难。