你现在的位置:首页 > PHP网站建设知识库 > magento > 正文

magento目录商品属性多语言实现原理解析

magento系统可以支持多语言,目录、商品、属性等皆可以支持多种语言,那么他们之间是怎么实现的呢?现将原理解析如下:

1.在Magento系统中,首先可以新建多个店铺,在数据库中,每个店铺都有自己的店铺ID,即store_id。每一个店铺都可以绑定对应的语言,Magento系统会自动到app/local目录下搜索对应的目录包,如果不存在,则使用默认的语言包。这样在前端显示的语言就可以将一些比如我的帐号、登录、注册等固定的语言文字多语言化。但是,对于可以配置的目录、商品以及商品各种属性等用户输入的内容,如在前端显示“颜色:黑色”,依然还不行。

2.对于每一个Magento目录和商品,Magento都是在内部存储他的属性和值的对应关系。在新建一个新的属性的时候,这个标签有一种默认语言,其他店铺在前台显示根据不同的store_id显示在前台不同的语言,可以在后台编辑属性的时候分别指定不同的store_id如何显示,Magento系统会存储在eav_attribute_label表中。如color这个属性,在英文版下显示Color,在中文版下显示颜色。eav_attribute_label表中分别是attribute_label_id 、attribute_id、store_id 、value四个字段组成。但是在前端显示“颜色:黑色”,暂时只能显示前半部分。

3.对于每一个目录和商品,系统首先让你配置默认系统的相关属性值,然后你可以在店铺视图下修改该产品在该店铺下的显示内容,系统会将内容存储到catalog_product_entity_varchar表中(实际上会是catalog_product_entity_*多个表),该数据表的格式是value_id、entity_type_id、attribute_id、store_id、entity_id、value。这样前端就能完整显示“颜色:黑色”了。

4.对于目录和商品的标题,标题只是属性的一种,其实已经囊括在第2、3条当中了。