壹佰网|ERP100 - 企业信息化知识门户

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9841|回复: 27

解决 webERP系统界面汉化 + 数据库返回乱码问题

    [复制链接]
发表于 2010/5/24 18:49:40 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。如果您注册时有任何问题请联系客服QQ: 83569622  。

您需要 登录 才可以下载或查看,没有帐号?注册

x
本帖最后由 Alec_H 于 2010/5/25 12:25 编辑

初使用webERP之时 webERP系统界面汉化数据库返回乱码问题 曾经也困扰我多时,确实十分痛苦。
posotest朋友要求
吸取前人之鉴并补充自己经验写下此贴,希望朋友们能少走我走过的弯路。


一、界面汉化

1. 下载史上最完整的汉化包(汉化by Alec),下载地址 http://bbs.erp100.com/thread-70432-1-1.html
   将中文包里的zh_cn目录拷贝到weberp\locale\目录下.
2. weberp根目录打开config.php,将(defaultlanguage)缺省语言改为 zh_cn 即 $DefaultLanguage ='zh_CN';
3. weberp根目录打开Logout.php ,将 charset后面的编码改为gb2312 即 charset=<?php echo _('gb2312'); ?>" />
4. 打开weberp\includes\FailedLogin.php ,将 charset后面的编码改为gb2312 即 charset=gb2312
5. 打开weberp\includes\Login.php ,将 charset后面的编码改为gb2312 即 charset=<?php echo _('gb2312'); ?>" />
6. 打开weberp\includes\header.inc , 将两处 . _('Manual')  加个空格,即改为  . _('Manual ') (如果不是用Alec的汉化包,此处可修改,也可不修改)
7. 将浏览器编码改为gb2312或gbk (此步骤一般不用进行设置,我们的浏览器编码一般默认已经是gb2312了)



二、解决数据库返回数据显示中文乱码问题

1. 用批查找替换工具,查找所有文件(不包括doc目录下)iso-8859-15 替换为gb2312,再查找所有文件(不包括doc目录下) iso-8859-1 并替换为gb2312

2. 打开/includes/ConnectDB_mysqli.inc
找到
if ( !$db ) {
echo '<BR>' . _('The configuration in the file config.php for the database user name and password do not provide the information required to connect to the database server');
exit;
}
在其后面加上这一句
mysqli_query($db, 'SET NAMES gb2312');

3. 打开/includes/header.inc替换所有_('ISO-8859-1')、_('ISO-8859-15')、_('utf')为_('gb2312')。

4. 打开/SystemParameters.php,替换htmlentities($_SESSION['RomalpaClause'])为 htmlentities($_SESSION['RomalpaClause'], ENT_NOQUOTES, gb2312)

5. 以文本方式打开webERP\sql\mysql\weberp-new.sql 或 webERP\sql\mysql\weberp-demo.sql 并批量替换 latin1 为 gb2312

6. 删除数据库的全部107个数据表,修改连接校对为gb2312_chinese_ci 或 utf8_general_ci
   或者用phpMyAdmin新建空白数据库,连接校对为gb2312_chinese_ci 或 utf8_general_ci


7. 用phpMyAdmin导入修改后的webERP\sql\mysql\weberp-new.sql 或 webERP\sql\mysql\weberp-demo.sql
   




解决方法见附件
(解决) webERP系统界面汉化 + 数据库返回乱码问题 之说明.rar (1.23 KB, 下载次数: 61)
 楼主| 发表于 2010/5/24 18:57:57 | 显示全部楼层
希望能对朋友们有所帮助。需要的话,我可以整理一些修改文件给大家。
发表于 2010/5/25 11:08:13 | 显示全部楼层
试试看。。谢谢楼主
发表于 2010/5/25 15:46:46 | 显示全部楼层
很完美!
 楼主| 发表于 2010/5/26 14:07:30 | 显示全部楼层
谢谢,多加交流
发表于 2010/5/26 20:55:02 | 显示全部楼层
再试试看,
发表于 2010/5/26 21:44:53 | 显示全部楼层
WEBERP非常奇怪,在UNIX下不论怎么汉化始终都是显示英文界面,折腾了N久都一样,唯有官方的UTF-8开发分支可以正常显示中文界面。奇怪!

点评

是很奇怪喔,朋友,可以把你的具体运行环境列表出来吗?有条件的话测试测试  发表于 2010/5/28 14:46
发表于 2010/5/27 16:16:15 | 显示全部楼层
有utf8版的汉化包吗.
发表于 2010/6/1 21:02:25 | 显示全部楼层
WEBERP非常奇怪,在UNIX下不论怎么汉化始终都是显示英文界面,折腾了N久都一样,唯有官方的UTF-8开发分支可 ...
macafee 发表于 2010/5/26 21:44

系统FREEBSD8.0,APACHE2.2,PHP5.2.12,MYSQL5.5
发表于 2010/6/9 11:32:44 | 显示全部楼层
谢谢楼主!非常好!
发表于 2010/6/28 21:03:09 | 显示全部楼层
搞不通!按照楼主的步骤来做!3.12版本的,每步都完全遵照,出来的界面选择了zn_CN还是完全是英文,奇怪了?

点评

是不是用户设置没有选择中文语言呢?  发表于 2010/6/29 18:08
发表于 2010/6/29 01:07:53 | 显示全部楼层
以下说明太含糊:
>二、解决数据库返回数据显示中文乱码问题
>
>1. 用批查找替换工具,查找所有文件(不包括doc目录下)iso-8859-15 替换为gb2312,再查找所有文件(不包括doc目录下) iso-8859-1 并替换为gb2312

grep -R -n -i ISO-8859-1 *  得到:
www-data@nas:~/we3113$ grep -R -n -i ISO-8859-1 *
doc/Manual/ManualAPIFunctions.php:15:echo '<meta http-equiv="Content-Type" content="text/html; charset=' . _('iso-8859-1') . '">';
doc/Manual/ManualMultilanguage.html:16:<br>It is especially important to ensure that the string "ISO-8859-1" (at the time of writing around line 19400 in the messages.po file) is translated to be the character set that you wish your translation to use. webERP uses the translated string here to send appropriate html headers so your browser knows how to interpret the characters sent.
doc/Manual/ManualMultilanguage.html:78:        * ISO-8859-1 for Afrikaans, Albanian, Basque, Catalan, Dutch, English, Estonian, Faroese, Finnish, French, Galician, German, Greenlandic, Icelandic, Indonesian, Irish, Italian, Malay, Norwegian, Portuguese, Spanish, Swedish,
doc/Manual/ManualMultilanguage.html:86:        <BR>* ISO-8859-13 for Latvian, Lithuanian,
doc/Manual/ManualMultilanguage.html:87:        <BR>* ISO-8859-15 for Basque, Catalan, Dutch, English, Finnish, French, Galician, German, Irish, Italian, Portuguese, Spanish, Swedish,
locale/en_GB/LC_MESSAGES/messages.po:1019:msgid "ISO-8859-1"
locale/en_GB/LC_MESSAGES/messages.po:25287:msgid "iso-8859-1"
locale/zh_CN/messages.po:1761:msgid "ISO-8859-1"
locale/zh_CN/messages.po:30399:msgid "iso-8859-1"
Binary file locale/zh_CN/messages.mo matches
locale/en_US/LC_MESSAGES/messages.po:17:"Content-Type: text/plain; charset=ISO-8859-1\n"
locale/en_US/LC_MESSAGES/messages.po:779:msgid "iso-8859-1"
Binary file locale/en_US/LC_MESSAGES/messages.mo matches
xmlrpc/Changelog:304:   fix serialization of messages to ISO-8859-1 charset with php 5 (by adding
xmlrpc/Changelog:309:   fix serialization of responses to ISO-8859-1 charset with php 5 (by adding
xmlrpc/Changelog:1103:  $xmlrpc_internalencoding, (defaulting to ISO-8859-1) defines what charset the
xmlrpc/Changelog:1107:  server and client and ISO-8859-1 for internal string handling.
xmlrpc/Changelog:1108:  ISO-8859-1 is, AFAIK, PHP internal encoding for all installs except
xmlrpc/Changelog:1173:  non-USASCII codesets like UTF-8, ISO-8859-1, etc) that caused
xmlrpc/NEWS:125:* fixed bug: serializing to ISO-8859-1 with php 5 would raise an error if non-ascii
xmlrpc/NEWS:152:  Values allowed: ISO-8859-1 and UTF-8
xmlrpc/lib/xmlrpcs.inc:462:             * can be: a supported xml encoding (only UTF-8 and ISO-8859-1 at present, unless mbstring is enabled),
xmlrpc/lib/xmlrpcs.inc:489:                     $this->accepted_charset_encodings = array('UTF-8', 'ISO-8859-1', 'US-ASCII');
xmlrpc/lib/xmlrpcs.inc:842:                                     $known_charsets = array($GLOBALS['xmlrpc_internalencoding'], 'UTF-8', 'ISO-8859-1', 'US-ASCII');
xmlrpc/lib/xmlrpcs.inc:912:                             if (!in_array($req_encoding, array('UTF-8', 'ISO-8859-1', 'US-ASCII')))
xmlrpc/lib/xmlrpcs.inc:915:                             //if (!is_valid_charset($req_encoding, array('UTF-8', 'ISO-8859-1', 'US-ASCII')))
xmlrpc/lib/xmlrpcs.inc:931:                     // G. Giunta 2005/02/13: PHP internally uses ISO-8859-1, so we have to tell
xmlrpc/lib/xmlrpcs.inc:937:                     if (!in_array($GLOBALS['xmlrpc_internalencoding'], array('UTF-8', 'ISO-8859-1', 'US-ASCII')))
xmlrpc/lib/xmlrpc.inc:149:      /// These will NOT be present in true ISO-8859-1, but will save the unwary
xmlrpc/lib/xmlrpc.inc:231:      $GLOBALS['xmlrpc_internalencoding']='ISO-8859-1';
xmlrpc/lib/xmlrpc.inc:286:                      case 'ISO-8859-1_':
xmlrpc/lib/xmlrpc.inc:287:                      case 'ISO-8859-1_US-ASCII':
xmlrpc/lib/xmlrpc.inc:291:                      case 'ISO-8859-1_UTF-8':
xmlrpc/lib/xmlrpc.inc:295:                      case 'ISO-8859-1_ISO-8859-1':
xmlrpc/lib/xmlrpc.inc:299:                      case 'US-ASCII_ISO-8859-1':
xmlrpc/lib/xmlrpc.inc:306:                      case 'UTF-8_ISO-8859-1':
xmlrpc/lib/xmlrpc.inc:394:                      case 'CP1252_ISO-8859-1':
xmlrpc/lib/xmlrpc.inc:953:                      $this->accepted_charset_encodings = array('UTF-8', 'ISO-8859-1', 'US-ASCII');
xmlrpc/lib/xmlrpc.inc:2558:                     if (!in_array($resp_encoding, array('UTF-8', 'ISO-8859-1', 'US-ASCII')))
xmlrpc/lib/xmlrpc.inc:2561:                     //if (!is_valid_charset($resp_encoding, array('UTF-8', 'ISO-8859-1', 'US-ASCII')))
xmlrpc/lib/xmlrpc.inc:2568:                     // G. Giunta 2005/02/13: PHP internally uses ISO-8859-1, so we have to tell
xmlrpc/lib/xmlrpc.inc:2574:                     if (!in_array($GLOBALS['xmlrpc_internalencoding'], array('UTF-8', 'ISO-8859-1', 'US-ASCII')))
xmlrpc/lib/xmlrpc.inc:3471:             if (!in_array($GLOBALS['xmlrpc_internalencoding'], array('UTF-8', 'ISO-8859-1', 'US-ASCII')))
xmlrpc/lib/xmlrpc.inc:3668:                     // no encoding specified: as per HTTP1.1 assume it is iso-8859-1?
xmlrpc/lib/xmlrpc.inc:3685:                     'US-ASCII' => array ('ISO-8859-1', 'ISO-8859-2', 'ISO-8859-3', 'ISO-8859-4',
xmlrpc/lib/xmlrpc.inc:3687:                             'ISO-8859-9', 'ISO-8859-10', 'ISO-8859-11', 'ISO-8859-12',
xmlrpc/lib/xmlrpc.inc:3688:                             'ISO-8859-13', 'ISO-8859-14', 'ISO-8859-15', 'UTF-8',
www-data@nas:~/we3113$
发表于 2010/6/29 01:14:01 | 显示全部楼层
文件: xmlrpc/lib/xmlrpc.inc:231:      $GLOBALS['xmlrpc_internalencoding']='ISO-8859-1';
xmlrpc/lib/xmlrpc.inc:286:                      case 'ISO-8859-1_':
xmlrpc/lib/xmlrpc.inc:287:                      case 'ISO-8859-1_US-ASCII':
xmlrpc/lib/xmlrpc.inc:291:                      case 'ISO-8859-1_UTF-8':
xmlrpc/lib/xmlrpc.inc:295:                      case 'ISO-8859-1_ISO-8859-1':
xmlrpc/lib/xmlrpc.inc:299:                      case 'US-ASCII_ISO-8859-1':
xmlrpc/lib/xmlrpc.inc:306:                      case 'UTF-8_ISO-8859-1':
xmlrpc/lib/xmlrpc.inc:394:                      case 'CP1252_ISO-8859-1':
xmlrpc/lib/xmlrpc.inc:953:                      $this->accepted_charset_encodings = array('UTF-8', 'ISO-

有很多ISO-8859-1和ISO-8859-15,不知道是不是全部都替换?
发表于 2010/8/7 11:26:15 | 显示全部楼层
搞不通!按照楼主的步骤来做!3.12版本的,每步都完全遵照,出来的界面选择了zn_CN还是完全是英文,奇怪了? ...
cxzeng 发表于 2010/6/28 21:03



现在已经解决了:
环境: 初始Ubuntu 10.04安装的是English 服务器版本,修改 /etc/default/locale 内容从en_GB.UTF-8 成: LANG="zh_CN.UTF-8";
然后 dpkg reconfig 一下,自动下载zh_CN.UTF-8 的中文语言支持包;
然后把 webERP的安装目录下的 locale/zh_CN 改成 zh_CN.UTF-8 就可以了;说明: 所有东西都用官网上的UTF-8: PHP,, *.sql, messeger.mo 都是utf-8中文的。
登陆后 用户语言设置从en_GB 改成 zh_CN_UTF-8 (另外,数据库的表 www_users 要改字段 lang 宽度从5变成11,否则无法装的下zh_CN.UTF-8 一共11个字节)
发表于 2010/8/22 15:55:28 | 显示全部楼层
你好,按照你的方法,PDF打印会报错,错误如下:
Fatal error: Call to undefined method Cpdf:DF_Language() in C:\xampp\htdocs\weberp\includes\class.pdf.php on line 37
发表于 2010/9/14 16:52:22 | 显示全部楼层
dingd              ing
发表于 2010/9/19 07:36:53 | 显示全部楼层
非常好,谢谢分享!
发表于 2010/9/19 15:36:34 | 显示全部楼层
为什么不用UTF-8编码?
发表于 2010/11/5 14:56:03 | 显示全部楼层
我数据库不能导入呀。导入错误了,真是悲剧。
发表于 2011/1/15 15:16:30 | 显示全部楼层
测试中,官方的bug太多了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|小黑屋|手机版|壹佰网 ERP100 ( 京ICP备19053597号-2 )

Copyright © 2005-2012 北京海之大网络技术有限责任公司 服务器托管由互联互通
手机:13911575376
网站技术点击发送消息给对方83569622   广告&合作 点击发送消息给对方27675401   点击发送消息给对方634043306   咨询及人才点击发送消息给对方138011526

GMT+8, 2025/11/29 12:11 , Processed in 0.027231 second(s), 18 queries , File On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表