php – 使用zend框架的多语言内容管理网站(CMS)
虽然我找到了很多与此问题相关的资源,但它们都没有使用Zend Framework正确地给出多语言CMS的答案.
zend框架中有许多zend translate adapters可用.但是最需要数据库(mysql)驱动的网站的那个(zend sql adapter)还没有发布. 对于那些不是数据库驱动的多语言网站,内容可以放在文件中(xml,mo或任何其他),其中一个zend翻译适配器用于处理内容以显示正确的语言. 我们将如何处理数据库驱动的多语言网站?以前我们习惯使用PHP设计精良的多语言数据库,将每篇文章(页面)保存在表格中,并包含所有必需的翻译.如果我们通过使用zend框架来做同样的事情,那会是过度杀戮还是慢速网站?我们仍然使用zend缓存来加快速度,但我们无法利用zend translate.稍后,当sql的zend translate适配器可用时,使用zend translate可以很容易地切换多语言内容管理系统. 有没人试过这个?什么可能是职业选手和玉米? 另一个解决方案是保持我们良好的设计多语言数据库,并在管理区域中使用GUI在每个更改管理员生成基于xml的语言文件.然后使用zend translate adapter之一来处理这些xml文件.我想这可能是矫枉过正的,用大炮杀死一只鸟:) 当我谈论将整个页面的内容放在数据库中时.它可以包含一些html标签,如b,span,br,p等.zend翻译可以如何处理内容与html标签? 如果某人之前已经实现了这一点,那么使用zend框架处理多语言内容管理网站的最佳方式可能是什么. 任何专家意见!
这些都是错误的假设.不是说,DB驱动的应用程序需要使用DB驱动的翻译系统.您可以轻松使用静态文件系统.
我认为你有点误 – 我知道你想使用翻译来获取页面的动态内容(文章).翻译的目的是使视图国际化 – 静态内容.我的意思是登录或注册或欢迎文本等等.这些确实应该在文件中(考虑文件是静态缓存)而不是在DB中,因为它会产生巨大的负载(无论如何都应该缓存DB).存储在数据库中的文章是另一回事,您想要实现的是多语言页面内容.您可以轻松处理,无需翻译(请记住,翻译适用于视图!),只需在表格中添加国家/语言标志,并通过模型检索合适的(按给定语言过滤)数据.它非常简单,不需要任何后端进行翻译. 我不确定Translate是如何工作的,但我可以假设它检查语言然后加载整个翻译文件并将其作为集合(或简单的关联数组)存储在脚本内存中,以提供快速而强大的翻译机制(注意,那它不需要为每个给定的密钥调用DB或文件,因为它们都将在内存中).保持整个页面,这样的文章根本没有意义,主要是因为你每页只需要1-2篇文章(为什么浪费内存呢?)有时候会有数百个本地化的视图字符串(所以你不想为每个人调用数据库或文件)
|