Joomla!
http://forum.joomla.org/

ExtCalendar v2 的尴尬
http://forum.joomla.org/viewtopic.php?f=98&t=91559
Page 1 of 1

Author:  baijianpeng [ Sun Sep 03, 2006 12:43 am ]
Post subject:  ExtCalendar v2 的尴尬

不知道这里有没有人用 ExtCalendar v2 组件? 我今天早上刚刚安装上。基于台湾 which 制作的繁体中文汉化for 0.9.1 版本,我稍作修改制作了针对最新版 0.9.2 版本的简体中文汉化版。

安装后发现三个问题:

1、在迷你日历上,星期显示为乱码;

2、在主日历右上角显示的简短日历中,(星期)7 显示为 0 !

3、在事件描述中,默认文字排列为居中,不便阅读。

以上问题可到我的“杏林书香网” http://www.tcmbook.net 查看“现场演示”。

不知道哪位高手有修正办法?谢谢 !

Author:  blank [ Sat Sep 09, 2006 1:46 pm ]
Post subject:  Re: ExtCalendar v2 的尴尬

1、在迷你日历上,星期显示为乱码;
这个可以很简单的解决
其他 倒还没在意

Author:  blank [ Sun Sep 10, 2006 4:41 am ]
Post subject:  Re: ExtCalendar v2 的尴尬

思路:不能正确显示星期,在此之前是不能正确取得我们所要的日期 
看一下这个迷你 日期的模块 
改几个语句 就成了
在这个模块文件的560行左右 
有个
  for ($i=0;$i语句
里面的第一个$params = array('{WEEK_DAY}'就是 显示星期几的
好办
给这个循环之前加个 数组

$d1 = array("日","一","二","三","四","五","六");
再将
$params = array('{WEEK_DAY}' => $d1[$i],
就行了,
当然这样是比较简单的修改
要从星期日 开始 
从星期一开始显示 将$d1中的“日”移动到 最后就行了

Author:  baijianpeng [ Sun Sep 10, 2006 3:10 pm ]
Post subject:  Re: ExtCalendar v2 的尴尬

恕我直言,这个方法似乎只是“表面上”显示了中文的星期名称,但是与内在的“日历机制”没有关系。我解释一下:

我按照你的指教,将 554 行左右那段代码修改为

Code:
    // print weekday labels
      echo $weekday_header_row;
      $d1 = array( "日","一","二","三","四","五","六");
    for ($i=0;$i<count($info_data['weekdays']);$i++)
    {
         $params = array('{WEEK_DAY}' => $d1[$i],

         );
         echo minical_template_eval($weekday_cell_row, $params);
      }
      echo $weekday_footer_row;


结果是,迷你日历上的星期名称都正确显示了中文。我高兴之余,觉得把星期天放在第一位不符合中国习惯,于是按你说的将“日”移动到了末尾,再刷新页面测试,发现出现了有趣的现象:星期名称是从一到七了,但是日历内的日子并没有跟着调整,呵呵,看看我的截图你就明白了:9月10日,也就是今天,变成了星期一!

很明显,这样调整的方法只是改变了“星期名称”这一行字符的显示顺序,并没有与内部数据达成一致。我认为这种修改方法与“剪箭杆”的治疗方法有异曲同工之妙。

据台湾朋友提示,这个问题可能是因为服务器上对于日期的定义在php文件中用了gb2312代码来编写,而我们的模块使用utf-8编码来读取,因此产生了错误。

我不知道该怎么解决——很显然空间提供商不可能为我修改代码,毕竟还有很多用户在用gb2312编码。只有等待作者在新版本中想办法了。

谢谢你的指教!希望你继续努力,攻破这个难题。

Author:  Autoit [ Sun Sep 10, 2006 4:27 pm ]
Post subject:  Re: ExtCalendar v2 的尴尬

如果是编码问题的话,可以这样:
require_once( $mosConfig_absolute_path . '/includes/utf8.php' );
.............

...............

................
 
$params = array('{WEEK_DAY}
$params =default_to_utf8($params);

...............

或者用 iconv 函数看看.

Author:  baijianpeng [ Sun Sep 10, 2006 11:13 pm ]
Post subject:  Re: ExtCalendar v2 的尴尬

AutoIt 这个方法我看得一头雾水,因为没有行号,也没有查找替换,我不知道该放哪里。我把第一句代码放在文件首行,把后面两句代码放在那个大括号里面,结果前台出错了,不知道是不是因为我放的位置不正确?建议 AutoIt 在本地测试一下,这个组件值得完善,功能很不错的,比原来名声很响的 gigCalendar 好用、好看。

另外,我想起一件事:这个组件我根据台湾which制作的繁体中文语言转换生成了一个简体语言文件并应用了,这样后台、前台的界面基本上都是简体中文的。我翻译时发现一个现象,改变语言文件中的某个日期变量就能在miniCalendar 看到相应的变化。会不会这个迷你日历跟语言文件也有一定联系?

希望高手能够仔细研究一下这个问题。我把简体中文语言文件附于本帖,解压到 components/com_extcalendar/languages 目录下即可。

Author:  Autoit [ Mon Sep 11, 2006 12:47 am ]
Post subject:  Re: ExtCalendar v2 的尴尬

;) 其实这是汉化者要完成的事情!  否则就不是汉化了!

mod_extcalendar_minical.php

line 447  :

Code:
$info_data['weekdays'][$i]['name'] = minical_sub_string($lang_date_format['day_of_week'][$array_index],2,'');


change:

Code:
$info_data['weekdays'][$i]['name'] = minical_sub_string($lang_date_format['day_of_week'][$array_index],4,'');

Author:  blank [ Mon Sep 11, 2006 1:34 am ]
Post subject:  Re: ExtCalendar v2 的尴尬

其实这个是编码搞的
原因在于strftime()函数
他返回的是一个本地编码的值
而不是UTF-8的编码
我改那个文件 只是表面 功夫
如果你要从星期一开始的话
我也提到 了
Quote:
从星期一开始显示 将$d1中的“日”移动到 最后就行了

还有你注意 一下
你看看逐日查看
你的日期还有乱码
就是那个strftime()的函数的问题

Author:  baijianpeng [ Mon Sep 11, 2006 6:04 am ]
Post subject:  Re: ExtCalendar v2 的尴尬

AutoIt 的方法这次成功了,感谢!呵呵,虽然我能汉化英文字串,但是代码方面还要仰仗你们这些编程高手啊,大家多支持我啊!

我大胆猜一下:是不是把2改成4,意味着取字头前4个字节,也就是两个双字节?因为我记得utf-8编码好像是4字节的。原来的2看来是截断了我们在语言文件中定义的星期名称,是吧?

Blank 指出了问题的关键,虽然我看不懂代码,但是你说的在理。这个取日期的函数一旦错误,怎么设置汉化字串都没用。

感谢两位高手的关注,现在日历总算是正常显示了。AutoIt 给出的方案很好,如果把星期一作为第一天的话,日子显示的顺序自动随之调整!看来问题就出在“截取字头”时使用了双字节而不是 utf-8 的4字节!

总之,还是要感谢你们,否则我绝对做不出来的。Blank发现的那个“逐日查看”出现乱码的问题,还请你们多多费心。一旦这个东东完美汉化,我准备大力推荐,功能真是很好!

Author:  blank [ Mon Sep 11, 2006 6:48 am ]
Post subject:  Re: ExtCalendar v2 的尴尬

我也装了个
在原来的基础上加了阴历显示,自己先得意一把,我觉这个东东私人用比较好,不用把自己的东东都 放在网上给人看吧,或者在单位内部站点上用比较好, :-\

Author:  baijianpeng [ Mon Sep 11, 2006 12:17 pm ]
Post subject:  Re: ExtCalendar v2 的尴尬

呵呵,刚才为了看你的“阴历”还专门去你网站逛了一下。你安装汉化文件的方法也不标准,不需要覆盖 english 目录下的文件,另外建一个 simplified_chinese 目录,把中文版的 index.php 放进去就行了。这个程序自动挂载中文(当前,前提是你网站的“全站设定”中设置语言为简体中文)。

你的“阴历”效果不错!可否共享一下?谢谢!

Author:  Autoit [ Mon Sep 11, 2006 1:57 pm ]
Post subject:  Re: ExtCalendar v2 的尴尬

blank 高呀, 俺是没想那么多,

他默认 2 是取2个字节, 所以显示的英文的字母都是 两个.

而Utf-8格式的编码是 3个字节. 所以那里改成大于等于3都是可以的! 因为只一个字哦. 如果两个了就要大于等于 6 就行...

我上次写是 是随手写上的. 让你产生误解了呵呵...

Author:  blank [ Mon Sep 11, 2006 2:11 pm ]
Post subject:  Re: ExtCalendar v2 的尴尬

Quote:
,不需要覆盖 english 目录下的文件,另外建一个 simplified_chinese 目录,把中文版的 index.php 放进去就行了。这个程序自动挂载中文(当前,前提是你网站的“全站设定”中设置语言为简体中文)。

汗一下
我全站设定中原来也是E文的
最早没有汉化出来自己搞的
后来一直延续下来
不想改了
阴历那个到时再写文章 
说说怎么改

Page 1 of 1 All times are UTC
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/