本来 Zen Cart后台中文化 之教程 满网皆是,
操作方法也很容易 就是几步复制粘贴就完事儿, 但是网上大多教程都是复制来粘贴去,
压根儿就没把其中的要点 提示性的指出, 结果造成按哪些教程操作后的网店,
在实际运营中 会出现诸多语言不匹配的问题, 出现最大最多的就是邮件通知也中文化的问题,
这里再一次的鄙视一下哪些从不验证技术应用类文章可行性的复制党和采集党们一下,
Zen Cart后台中文化 真正的实现 需要两部分 一是 对应的语言文件覆盖与修改
二是 数据库的修改 两者中 后者 如果感觉有一定的复杂性 操作上有难度, 可以忽略掉,
但是 在涉及商店配置项目中, 将无法显示中文菜单,
好了 废话啰嗦完, 开始进入正题,
操作如下:
第一步 都知道的 覆盖对应的语言文件,
进入 你的后台目录/includes/languages/ 下,
将 schinese.php 和 schinese 文件夹 复制一份备用,
以替换后台英文为例, 将此路径下的 english.php 和 english 文件夹更名, 以备后用,
将上面的复制备用的 schinese.php 文件 和 schinese 文件夹 更名为 english.php 和 english,
这样, 就实现了后台中文化, 但是问题远没有结束,
如果仅这样 就会导致 上面提到的网店应用诸多语言项不匹配问题,
继续如下操作, 打开 更名后的 english.php 文件(注: 实际此文件现在为中文语言文件),
将 下面 代码替换为 真英文语言声明文件中的对应的代码:
-
setlocale(LC_TIME, 'zh_CN.UTF-8');
-
define('DATE_FORMAT_SHORT', '%Y/%m/%d');
-
define('DATE_FORMAT_LONG', '%Y年 %m月 %d日');
-
define('DATE_FORMAT', 'Y/m/d');
-
define('PHP_DATE_TIME_FORMAT', 'Y/m/d H:i:s');
-
define('DATE_TIME_FORMAT', DATE_FORMAT_SHORT . ' %H:%M:%S');
-
define('DATE_FORMAT_SPIFFYCAL', 'yyyy/MM/dd');
替换为
-
setlocale(LC_TIME, 'en_US.UTF-8');
-
define('DATE_FORMAT_SHORT', '%m/%d/%Y');
-
define('DATE_FORMAT_LONG', '%A %d %B, %Y');
-
define('DATE_FORMAT', 'm/d/Y');
-
define('PHP_DATE_TIME_FORMAT', 'm/d/Y H:i:s');
-
define('DATE_TIME_FORMAT', DATE_FORMAT_SHORT . ' %H:%M:%S');
-
define('DATE_FORMAT_SPIFFYCAL', 'MM/dd/yyyy');
同时 再注意 上面代码中的 这一句
-
setlocale(LC_TIME, 'en_US.UTF-8');
勿必保证此处声明的编码与当前程序后台页面声明编码一至, 不然就会出现乱码
同时保存文件时 一定要注意保存的文件编码格式要与此处的声明的编码一至, 不然还会出现乱码,
这里继续复习一下 Zen Cart的各种乱码出现原因,
勿必保证三码一至 缺一不可 很重要, 切记!!!
然后 继续将下面这几个文件 使用原英文语言包下的文件替换回去,
这几个文件分别为:
你的管理目录/includes/languages/原英文语言包文件夹/email_extras.php
你的管理目录/includes/languages/原英文语言包文件夹/email_welcome.php
你的管理目录/includes/languages/原英文语言包文件夹/email_history.php
注意: 有的同学可能找不齐这三个文件, 没关系, 别死抱着条条框框不放,
不是所有的版本程序这三个文件都有, 但至少有两个email_开头的文件
然后呢 还没完事儿, 动爪儿 继续改文件,
打开 你的管理目录/includes/languages/替换后的英文文件夹/orders.php
查找
-
define('EMAIL_SEPARATOR', '------------------------------------------------------');
-
define('EMAIL_TEXT_SUBJECT', '订单更新');
-
define('EMAIL_TEXT_ORDER_NUMBER', '订单号码:');
-
define('EMAIL_TEXT_INVOICE_URL', '详细发票:');
-
define('EMAIL_TEXT_DATE_ORDERED', '订单日期:');
-
define('EMAIL_TEXT_COMMENTS_UPDATE', '<em>您订单的备注为: </em>');
-
define('EMAIL_TEXT_STATUS_UPDATED', '您的订单状态更新为:' . "\n");
-
define('EMAIL_TEXT_STATUS_LABEL', '<strong>新状态:</strong> %s' . "\n\n");
-
define('EMAIL_TEXT_STATUS_PLEASE_REPLY', '如果您有任何疑问, 请回复电子邮件.' . "\n");
将这段替换为 原英文对应文件 对应区段的代码 即下面代码:
-
define('EMAIL_SEPARATOR', '------------------------------------------------------');
-
define('EMAIL_TEXT_SUBJECT', 'Order Update');
-
define('EMAIL_TEXT_ORDER_NUMBER', 'Order Number:');
-
define('EMAIL_TEXT_INVOICE_URL', 'Detailed Invoice:');
-
define('EMAIL_TEXT_DATE_ORDERED', 'Date Ordered:');
-
define('EMAIL_TEXT_COMMENTS_UPDATE', '<em>The comments for your order are: </em>');
-
define('EMAIL_TEXT_STATUS_UPDATED', 'Your order has been updated to the following status:' . "\n");
-
define('EMAIL_TEXT_STATUS_LABEL', '<strong>New status:</strong> %s' . "\n\n");
-
define('EMAIL_TEXT_STATUS_PLEASE_REPLY', 'Please reply to this email if you have any questions.' . "\n");
如上操作后 就完成了后台中文化的全部修改, 并且不会影响到程序应用语言匹配问题.
然后下面开始第二步, 数据库的修改