{ Hello Magento 2 }

解决 Magento 2 应用问题,更注重深度挖掘。(ง •̀_•́)ง

0%

Magento 2 中文化问题(原创)

转载请注明出处 Magento 作为多语言的电商系统,提供了很全面的多语言支持,下面我将总结一下目前我所了解的 Magento 中文化的知识,欢迎补充!谢绝转载。以下中文化指的的简体中文。

设置

首先我们从简单的使用谈起。 如果你希望你的前台是中文,那么请在后台 Stores > Configuration > General > Local 中设置 Local 为 Chinese(China) 我们知道 *Stores > Configuration 的设置是有作用域的,在左上角如下图, Magento 2 后台设置 你的设置会应用到选定的 Store view 上,这样就实现了不同的 store view 或 website store 可以使用不同的语言。 如果你希望你的账户后台是中文,那么请在后台你的账户 Account Setting > Interface Local 中设置 Interface Local 为 Chinese(China) 既然是账户中的设置,那么不同的账户当然可以设置为不同的语言,这样也是非常体贴到位的。

中文包

上面的设置都到位了以后,你会发现毛线变化也没有,这很正常,因为你还缺少中文包。Magento 2 官方的语言包地址是 https://crowdin.com/project/magento-2 从这里下载的语言包,打开后会发现他是由许多个文件夹组成的,并非单个的包。你从其他地方下载的语言包大多数都是这里来的,有的添加了使用说明,告诉你把他们复制到你的目录下。这个说法不完全正确。 首先这个语言包是按照 github 上的目录结构组织的,如果你不是通过 composer 或者 git 安装的 Magento 2 ,我的意思是 Magento 的模块都在 vendor 目录下,那么很明显,这个包不适合你。复制不能让语言文件到达相应的目录。另一个问题是,如果你使用的是简体中文,那么简体中文的翻译文件必须是 zh_Hans_CN.csv ,但是这个包的翻译文件是 zh_CN.csv,所以即使你的目录结构是正确的,还是没有效果。 如果你仔细看上面的官方地址,你会看到

1
To build and download translations go to http://107.170.242.99/.

那就戳进去看看咯,这个地址提供了单个的包,找到 zh_CN 然后下载后改名为 zh_Hans_CN.csv 然后丢到相应的位置就可以了。

中文包的位置

接下来我们来说位置。Magento 2 的 Component 主要有三种:module、theme、lanaguage package。在 module 和 theme 中 都有 i18n 这个文件夹(如果没有可以自己建),这个文件夹负责放翻译文件。 经过测试,博主发现,module 中 i18n 下的翻译文件会被应用到前台和后台(假设你前后台都是简体中文的话),但是 theme 中的翻译只会被应用到前台。所以理论上讲,你下载了上面的包改名后丢到任意的 module 中,都是可以的。 至于 language package ,他当然前后台都得负责了,关于 language package 的继承问题,还是以后用到的时候再探索吧。 博主的建议是把整站的中文包丢到 language package 里面比较好。就是说 Magento 自带模块的中文翻译放到 language package 中,你购买的主题,插件什么的中文包放在自己对应的目录下,这样会清晰很多。 Magento 拥有中文的 language package,请各位寻找下,如果包都在 vendor 下,那么在该目录下找名字叫 language-zh_hans_cn 的,如果你是 git 上那种目录结构,那么在 app/i18n/Magento/zh_Hans_CN 下 好了,把你的包丢进去,刷新缓存,有效果了吧?

存在的问题

官方的语言包托管在 Crowdin 上,如果你注册一下,也可以参与翻译,反正就是给有兴趣锻炼翻译的人准备的,而且会有机器翻译提示,质量不是很好。博主查看了语言包的内容,有些实在是风马牛不相及,当然不相关的还是很少的。 另一个问题是 Magento 2 每次有新版本,那么需要翻译的字段都会有一些差异或者是增减。很明显,如果等待官方的更新的话,估计是不太可能了。 然后就是翻译的结构问题。打个比方来说,英文中使用 127 records found 这里的 127 不在翻译短语中,翻译短语是records found,翻成中文就是 找到的记录 ,连起来变成 127 找到的记录, 是不是很别扭?因为中英文的句子结构不同。看起来这种事情也没有更好的解决办法了。 最后一个问题就是翻译的情境问题,在 csv 里面你可不知道这个短语在什么情境下面,所以翻译可能不是很贴切,有一些词汇还和业务逻辑有关,如果不是很了解业务逻辑,还真是不可能找到合适的词汇。 好吧,说了这么多,其实总结起来就是中文化是要长期迭代的过程。需要大家的共同努力。 博主根据上面的官方翻译文件进行了部分校正,发布在 github ,大家可以去下载 地址是:https://github.com/PiscesThankIT/zh_Hans_CN 我的想法是,既然我们有了一个还不错的基础包,请下载使用的人,在发现有需要改进的词汇或者问题时,在我的 github 下给我提评论,或者在我的博客上评论,或者将你更改后的文件发给我(1518525862@qq.com),我更正后更新到 github 上,这样我们就有一个正向的循环,大家都能受益。

如何更正中文包

很多朋友不知道如何修改 csv 文件。csv 文件就是纯文本文件,只是用逗号分隔符来分割字段。你完全可以用记事本打开,不过记事本打开实在是很不好查看。默认情况下,你的电脑一定会替你用 EXCEL 打开, 用它打开有中文是会乱码的,要想不乱码,方法有点复杂,修改又有麻烦,所以博主还是放弃了这个念头。 你可以用任何编辑器打开,比如 notepad sublime 之类。博主觉得 notepad 编辑 csv 比较好。他的文件搜索在搜模板文件的时候真的很好用(题外话)。 有朋友推荐使用 csv 的编辑器,当然针对 csv 的编辑器,那查看起来真是很舒服的,but,大部分 csv 编辑器中文依然会乱码,因为不支持 unicode 编码的方式吧。博主找到一个很好用的,可惜免费版不能进行修改,破解版刚下载就提示有毒,吓得宝宝还是不要用了。这个编辑器的名字叫 Ron’s Editor ,不差钱的朋友可以支持下开发者哈。 回到正题,我们现在已经有合适的编辑器来编辑 csv 文件了。打开它,会发现至少有两栏。

1
"Report Bugs",报告错误,module,Magento_Backend

相信不用说你也知道了,就是第一栏翻译成第二栏呗。后面两个栏,博主还没有搞清楚具体的作用。官方文档说是 lanaguage package 要有四栏,不过博主用两栏测试,效果也没有什么差别。这个再说再说。。 好了,把翻译不到位的改成你要的短语,然后清缓存,就可以看到效果了。