登录 注册

登录

问题 Jcal Pro utf-8汉化版中几点小问题. (问题解决啦)

更多
2007年08月16日 05:40 - 2007年08月18日 05:13 #1 作者: miqing
我安装了Jcal Pro, 很不错的软件, 汉化的也很漂亮. 不过我发现再某几个小地方有乱码, 还是GB2312, 比如:

设定->环境
Date/time in 24-hour format: 2007年 08月 15日,ЇƚȽ 15:29
Date/time in 12-hour format: 2007年 08月 15日,ЇƚȽ ςΧ 03ʱ29?ֳ4ë

月视图
2007年 08月 15日,ЇƚȽ

这些乱码用GB2312看就是星期, 下午, 时, 分, 秒什么的. 不知老白能否指点一二, 应该怎样修正这个小问题呢? 谢谢!
最后修改: 2007年08月18日 05:13 由 zend99.

登录 或者   注册一个会员帐号 来参与讨论

更多
2007年08月16日 06:59 #2 作者: Joomla之门
感谢提醒!

打开语言文件 index.php,就能看到这些乱码对应的3行字串大概位于 81、82、85行,分别是:
	,'full_date_time_24hour' => '%Y年 %m月 %d日,%A %R' // e.g. Wednesday, June 05, 2002 At 21:05
	,'full_date_time_12hour' => '%Y年 %m月 %d日,%A %r' // e.g. Wednesday, June 05, 2002 At 9:05 pm
	,'mini_date' => '%Y %m %d, %a' 

可以看出,实际上后面的星期、时间、上下午都是由 %A、%R、%r、%a 这几个常量组成的。这是php语言中固定的常量,一般都在服务器端已经设置好,我们没有办法更改。也就是说,因为服务器端对这些字串的定义是gb2312编码,因此导致这些字符就出错。

这与汉化无关。由于阿拉伯数字属于 ASCII 码,因此无论什么编码都是正常显示。如果要使后面的星期也正常显示,有两个方案:

1、修改服务器端有关配置;

2、修改语言文件中的日期/时间常量。

由于我对php语言所知甚少,所以不知道如何修改才能正常显示。目前你们所用的版本中,这些常量都是保持了原来的样子,我只给前面的年、月、日添加了汉字。

如果哪位了解php语言的日期/时间函数,请指点一下,谢谢!

付费下载 Joomla 3 扩展汉化版: 我要付费支持 Joomla 之门!

登录 或者   注册一个会员帐号 来参与讨论

更多
2007年08月16日 12:49 #3 作者: miqing
感谢老白的帮忙, 偶搞了半天最后发现这个乱码还和语言文件前面"local"的设置有关, 虽然我的服务器上的数据库用的utf-8字符但是返回来的常量不知为何会显示成GB2312的. 我后来换成了英文版的发现一切也都很漂亮除了事件标题的首字出现乱码外(事件描述的首字就没问题), 于是我就用了个圆点加在事件标题的前面, 终于圆满了.不管怎么说,Jcal做的不错,老白辛苦了(看了翻译文件感觉你真是joomla的爱好者,呵呵). 另外偶觉得iCal做的也不错, 界面功能都很强, 可以和google的日历同步, 可惜作者的论坛上很多人反应有许多小bug, 遗憾. 先用这个Jcal Pro的英文版啦.

登录 或者   注册一个会员帐号 来参与讨论

更多
2007年08月16日 23:32 #4 作者: Joomla之门
你对我所说的“服务器端设置”理解有误。这与你的服务器数据库设置没有关系。这个日期/时间函数常量是整个服务器环境配置里面的参数,是空间商设定的,与你的数据库无关。

你的服务器应该是在国内的,他们把服务器端设定为 gb2312 编码的常量,因此你的utf-8编码的页面里面就是乱码。

付费下载 Joomla 3 扩展汉化版: 我要付费支持 Joomla 之门!

登录 或者   注册一个会员帐号 来参与讨论

更多
2007年08月17日 10:16 #5 作者: miqing
我租用的是Bluehost的空间, 服务器不应该在国内啊. ???

登录 或者   注册一个会员帐号 来参与讨论

更多
2007年08月17日 19:14 #6 作者: Joomla之门
哦,是 Bluehost 的空间啊?那就奇怪了,他们的编码很可能是 ISO-8859-1 或者 latin1,你用 gb2312 时竟然是正常中文?似乎于理不通。

在中文语言文件的 locale 设置中,我设置的编码是“utf-8”,地区是 zh-CN。难道是这个原因?困惑中……

付费下载 Joomla 3 扩展汉化版: 我要付费支持 Joomla 之门!

登录 或者   注册一个会员帐号 来参与讨论

更多
2007年08月18日 04:35 #7 作者: miqing
今天更奇怪的事情发生了, 我装CalDate(用小日历图片显示发帖时间那个mambot), 结果依然是"月"这个字显示的编码是GB2312. 我的joomla是从台湾网站上下载简体utf-8版.我想一定是某个相同的原因, 只不过目前还不知道问题出自哪儿

登录 或者   注册一个会员帐号 来参与讨论

更多
2007年08月18日 05:11 #8 作者: miqing
老大! 我终于发现为什么了.

我下载的是台湾joomla官网的简体utf-8版, 但是这一版在管理界面中全球设定里对于"默认的国家地区设定"这一项默认填写的是zh_CN,我刚才灵机一动把这项变成"zh_CN.utf-8",一切全搞定了.

再回到Jcal Pro的问题,回去一看发现星期几的显示仍然是乱码,我研究了老白的翻译文件,发现在星期几这个常量的前面, 老白一律用了中文标点","而不是",",对这种技术层面一知半解的我把这个标点改回英文标点, 发现仍然不解决问题, 后来发现老白在"事件总数,类别总数"这里用的也是中文标点, 我想老白一定是想把这种东西搞得中文气息浓一些, 所以故意用了中文标点. 菜鸟有菜鸟解决的办法, 我灵机又一动会不会是老白在local设定方面和台湾简体utf-8出现同样的设置呢,于是我把老白在local里放置的"cn""zh_CN"什么的全都去掉,只留下"zh_CN.utf-8". 这下真的是全都搞定了,所有文字都没有乱码啦. 高兴!

建议老白重新调整一下这个翻译文件, 使它变成完美版. 另外,刚才使用了老白翻译的PonyGallery ML版, 真是赞啊! 辛苦了!

登录 或者   注册一个会员帐号 来参与讨论

更多
2007年08月18日 07:11 #9 作者: Joomla之门
感谢你的测试,我当时汉化时可能对 locale 这里没有处理好。现在都修改为 zh_CN 吧。马上更新下载栏目,再次感谢你的热情帮助!

付费下载 Joomla 3 扩展汉化版: 我要付费支持 Joomla 之门!

登录 或者   注册一个会员帐号 来参与讨论

更多
2007年08月25日 01:05 #10 作者: 那仨牛

感谢老白的帮忙, 偶搞了半天最后发现这个乱码还和语言文件前面"local"的设置有关, 虽然我的服务器上的数据库用的utf-8字符但是返回来的常量不知为何会显示成GB2312的. 我后来换成了英文版的发现一切也都很漂亮除了事件标题的首字出现乱码外(事件描述的首字就没问题), 于是我就用了个圆点加在事件标题的前面, 终于圆满了.不管怎么说,Jcal做的不错,老白辛苦了(看了翻译文件感觉你真是joomla的爱好者,呵呵). 另外偶觉得iCal做的也不错, 界面功能都很强, 可以和google的日历同步, 可惜作者的论坛上很多人反应有许多小bug, 遗憾. 先用这个Jcal Pro的英文版啦.


不是正解啊,事实上首字乱码是因为在“设置-一般设定”中开启了“Capitalize Event Titles”这一项,选否,汉字事件标题就不会有乱码了。英文事件标题自己把首字母变大写就得了。

登录 或者   注册一个会员帐号 来参与讨论

更多
2007年08月25日 07:26 #11 作者: Joomla之门
呵呵,牛人啊!

这个说法有道理,虽然我没有测试,但是可以想象。看来在语言文件的 Locale 那里设置 zh_CN-utf8 也是可以的。

付费下载 Joomla 3 扩展汉化版: 我要付费支持 Joomla 之门!

登录 或者   注册一个会员帐号 来参与讨论