我们正忙于一个需要支持多语言的 CakePHP 项目。但是有一个问题....有些页面不支持其他语言。因此,对于意大利版本的网站,有些西班牙语页面需要隐藏。在 CakePHP 中有什么更好的解决方案?
我们可以在您切换语言后立即切换数据库,但问题是如果我们这样做,我们将丢失用户等重要数据。并且仅针对西班牙语帖子搜索包含西班牙语、意大利语、德语、英语、荷兰和瑞典语帖子的数据库可能会超负荷。或者,如果我们索引语言列,也许这不是问题……但我不知道。
那么有人知道更好的解决方案吗?
绝对不是多个数据库 IMO。相反,请尝试将您的记录与其内容分开。
例子:
articles
表包含非特定语言的数据,如文章 ID、创建日期、修改日期...等
article_contents
包含特定于语言的数据,如标题、副标题、内容、作者...等以及一个article_id
字段和一个language
字段。
然后,如果您在意大利网站上,您可以使用 INNER JOIN 拉到与您想要的语言匹配的内容。
或者有很多方法取决于您应该如何提取数据的设置,但希望将通用数据与特定语言数据分离的想法有所帮助。
代替
echo 'Localization';
做
echo __('Localization');
http://book.cakephp.org/2.0/en/core-libraries/internationalization-and-localization.html