Zend framework 如何构建类似于Magento';s

Zend framework 如何构建类似于Magento';s,zend-framework,magento,zend-translate,Zend Framework,Magento,Zend Translate,我正在从事Zend框架、MVC和企业网站项目。我想开发一个友好的翻译系统,能够根据上下文翻译每个单词(有时同一个单词有不同的翻译) Zend框架使用Zend_Translate实现i18n和本地化。我们还看到了Magento(使用ZF)的内联翻译系统,用户可以在其中进行翻译 我们想知道这个内联翻译系统是如何工作的,这样我们就可以构建一个经过改进的类似系统 翻译存储在哪里:数据库中还是CSV文件中 当用户在不同页面上进行不同的翻译时,系统如何知道获取同一单词的翻译 我们应该如何构建一个支持内联翻译

我正在从事Zend框架、MVC和企业网站项目。我想开发一个友好的翻译系统,能够根据上下文翻译每个单词(有时同一个单词有不同的翻译)

Zend框架使用Zend_Translate实现i18n和本地化。我们还看到了Magento(使用ZF)的内联翻译系统,用户可以在其中进行翻译

我们想知道这个内联翻译系统是如何工作的,这样我们就可以构建一个经过改进的类似系统

  • 翻译存储在哪里:数据库中还是CSV文件中

  • 当用户在不同页面上进行不同的翻译时,系统如何知道获取同一单词的翻译

  • 我们应该如何构建一个支持内联翻译的页面

  • 系统如何处理静态文本与动态(数据库驱动)文本

  • 内联翻译似乎会使网站速度非常慢。Magento如何解决这个问题


  • 如果你有更多的观点需要解释,请写下来。谢谢

    从这里开始(将来,这可能不止是一个逻辑问题):

  • Magento将基本翻译(由程序员提供)存储在CSV文件中,但内联翻译存储在数据库中

  • Magento的翻译操作的是整个字符串,而不是单词。通过为翻译提供一个完整的句子,就可以实现惯用翻译。很明显,这种权衡是每个句子都必须翻译,而不是每个单词

  • Magento对此的回答是在对定位器的调用中包装所有可本地化字符串。Magento模板通常如下所示(双下划线函数映射到“转换为当前语言环境”函数):

    打印$this->(“请翻译此字符串”)

  • Magento中的动态文本(如产品说明)通常不会被翻译,但如果您想这样做,只需将正确的字符串传递给翻译程序即可,如下所示:

    print$this->\uuuu($someString)

  • 翻译不太可能影响或破坏您的站点(查看数据库查询以了解大多数性能问题),但这仍然是一个合理的问题。Magento做了一些事情来帮助我们。首先,它将CSV文件的序列化版本存储在缓存中,以便更高效地读取CSV。其次,Magento提供页面缓存,以便可以存储整个页面的输出(假设它将以相同的方式呈现),并为页面的较小部分提供块级缓存。在这两者之间,你的身体大部分都很好

  • 希望有帮助

    谢谢,

    当所有的东西都用粗体字写的时候,什么都不是。